diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9d02a90df..34e1e5ca9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,6 +18,8 @@ Things you should also avoid include: This should go without saying, but please don't PR code that was never actually tested or has obvious compiler errors in it. +**Addendum:** Because apparently some people think that testing is somehow optional, it is now **mandatory** to test the code both on a client and on a server. If the PR contains compat code, the game has to work **with and without** the mod that the compat is for. + ## Communication If you're planning on adding some new thing or doing a grand change, it's best to ask whether that's a good idea before spending 50 hours on a project that won't end up getting merged, due to issues that could have been entirely avoidable with communication. diff --git a/changelog b/changelog index e6f256dbe..8bf2eb32a 100644 --- a/changelog +++ b/changelog @@ -1,16 +1,5 @@ ## Changed -* Chlorophyte rounds now deal 2x more damage than their standard counterparts instead of 1.5x -* Chlorophyte rounds now penetrate multiple enemies -* Decreased chlorophyte targeting range from 200 to 30 blocks -* Josh now has recoil and reload animations -* Anvil recipes for upgrading ammo types have been adjusted to match the crafting batch size -* Adjusted the corium block destruction function to be more in line with the recent concrete nerfs -* Reduced the blast resistance threshold for FEL, making concrete once again resistant to lasers -* Crafting bullet assemblies now only yields one item, it's that one assembly that turns into a full set of bullets after being pressed once. This should reduce the amount of press operations by up to a factor of 64. -* 5mm assemblies now yield 64 instead of 32 bullets -* The production complexity and time for making thermoelectric elements in the assembler has been reduced -* Thermoelectric elements can now also be made in a tier 2 anvil - -## Fixed -* Fixed logspam when pollution handler tries to save the pollution data for dimensions that have never been loaded before -* Fixed dead leaves layer not being replacable by other blocks \ No newline at end of file +* The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates + * Mud production rates have been halved, to prevent currently working setups from exploding instantly + * This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick. +* Watz pellets now have a 50% smaller yield, halving the expected time until depletion diff --git a/gradle.properties b/gradle.properties index 444f62413..e134592d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4707 +mod_build_number=4837 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ @@ -8,11 +8,12 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ \ various machines, models, weapons), Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ - \ (calculator, chunk-based fallout, bendable cranes), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ - \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings), Nos (models),\ - \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ - \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ - \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ - \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ - \ particle emitter), sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ - \ SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC), 70k (textures), Maksymisio (polish localization) + \ (calculator, chunk-based fallout, bendable cranes, pipe improvements), haru315 (spiral point algorithm),\ + \ Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002\ + \ (project settings), Nos (models), Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie\ + \ (reacher radiation function), Toshayo (satellite loot system, project settings, gradle curse task), Silly541\ + \ (config for safe ME drives), Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1\ + \ (OpenComputers integration), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine),\ + \ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\ + \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ + \ 70k (textures), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks) diff --git a/src/main/java/api/hbm/energy/IEnergyUser.java b/src/main/java/api/hbm/energy/IEnergyUser.java index a4a0a4ed5..4ca8e369a 100644 --- a/src/main/java/api/hbm/energy/IEnergyUser.java +++ b/src/main/java/api/hbm/energy/IEnergyUser.java @@ -28,15 +28,17 @@ public interface IEnergyUser extends IEnergyConnector { @Override public default long transferPower(long power) { - this.setPower(this.getPower() + power); - - if(this.getPower() > this.getMaxPower()) { + if(this.getPower() + power > this.getMaxPower()) { - long overshoot = this.getPower() - this.getMaxPower(); + long overshoot = this.getPower() + power - this.getMaxPower(); this.setPower(this.getMaxPower()); return overshoot; } + if(this.getPower() + power < 0) return 0; //safeguard for negative energy or overflows + + this.setPower(this.getPower() + power); + return 0; } diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index 172e22dde..6d55c2f0c 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -138,10 +138,17 @@ public class PowerNet implements IPowerNet { cleanup(this.subscribers); lastCleanup = System.currentTimeMillis(); }*/ + + List cache = new ArrayList(); + if(trackingInstances != null && !trackingInstances.isEmpty()) { + cache.addAll(trackingInstances); + } trackingInstances = new ArrayList(); trackingInstances.add(this); - return fairTransfer(this.subscribers, power); + long result = fairTransfer(this.subscribers, power); + trackingInstances.addAll(cache); + return result; } public static void cleanup(List subscribers) { @@ -153,6 +160,8 @@ public class PowerNet implements IPowerNet { public static long fairTransfer(List subscribers, long power) { + if(power <= 0) return 0; + if(subscribers.isEmpty()) return power; @@ -196,6 +205,11 @@ public class PowerNet implements IPowerNet { long given = (long) Math.floor(fraction * power); totalGiven += (given - con.transferPower(given)); + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } } power -= totalGiven; @@ -208,6 +222,8 @@ public class PowerNet implements IPowerNet { PowerNet net = trackingInstances.get(i); net.totalTransfer = net.totalTransfer.add(BigInteger.valueOf(totalTransfer)); } + + trackingInstances.clear(); } return power; diff --git a/src/main/java/api/hbm/entity/IRadarDetectable.java b/src/main/java/api/hbm/entity/IRadarDetectable.java index f89fc99d4..0c3700b99 100644 --- a/src/main/java/api/hbm/entity/IRadarDetectable.java +++ b/src/main/java/api/hbm/entity/IRadarDetectable.java @@ -1,5 +1,6 @@ package api.hbm.entity; +@Deprecated //Use IRadarDetectableNT instead, old interface will still work though public interface IRadarDetectable { public static enum RadarTargetType { @@ -15,7 +16,7 @@ public interface IRadarDetectable { MISSILE_20("Size 20 Custom Missile"), //size 20 custom missiles MISSILE_AB("Anti-Ballistic Missile"), //anti ballistic missile PLAYER("Player"), //airborne players - ARTILLERY("Artillery Shell"); //airborne players + ARTILLERY("Artillery Shell"); //artillery shells public String name; diff --git a/src/main/java/api/hbm/entity/IRadarDetectableNT.java b/src/main/java/api/hbm/entity/IRadarDetectableNT.java new file mode 100644 index 000000000..0b327620c --- /dev/null +++ b/src/main/java/api/hbm/entity/IRadarDetectableNT.java @@ -0,0 +1,45 @@ +package api.hbm.entity; + +public interface IRadarDetectableNT { + + public static final int TIER0 = 0; + public static final int TIER1 = 1; + public static final int TIER2 = 2; + public static final int TIER3 = 3; + public static final int TIER4 = 4; + public static final int TIER10 = 5; + public static final int TIER10_15 = 6; + public static final int TIER15 = 7; + public static final int TIER15_20 = 8; + public static final int TIER20 = 9; + public static final int TIER_AB = 10; + public static final int PLAYER = 11; + public static final int ARTY = 12; + /** Reserved type that shows a unique purple blip. Used for when nothing else applies. */ + public static final int SPECIAL = 13; + + /** Name use for radar display, uses I18n for lookup */ + public String getUnlocalizedName(); + /** The type of dot to show on the radar as well as the redstone level in tier mode */ + public int getBlipLevel(); + /** Whether the object can be seen by this type of radar */ + public boolean canBeSeenBy(Object radar); + /** Whether the object is currently visible, as well as whether the radar's setting allow for picking this up */ + public boolean paramsApplicable(RadarScanParams params); + /** Whether this radar entry should be counted for the redstone output */ + public boolean suppliesRedstone(RadarScanParams params); + + public static class RadarScanParams { + public boolean scanMissiles = true; + public boolean scanShells = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + + public RadarScanParams(boolean m, boolean s, boolean p, boolean smart) { + this.scanMissiles = m; + this.scanShells = s; + this.scanPlayers = p; + this.smartMode = smart; + } + } +} diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java new file mode 100644 index 000000000..5dcc56845 --- /dev/null +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -0,0 +1,66 @@ +package api.hbm.entity; + +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; + +public class RadarEntry { + + /** Name use for radar display, uses I18n for lookup */ + public String unlocalizedName; + /** The type of dot to show on the radar as well as the redstone level in tier mode */ + public int blipLevel; + public int posX; + public int posY; + public int posZ; + public int dim; + public int entityID; + /** Whether this radar entry should be counted for the redstone output */ + public boolean redstone; + + public RadarEntry() { } //blank ctor for packets + + public RadarEntry(String name, int level, int x, int y, int z, int dim, int entityID, boolean redstone) { + this.unlocalizedName = name; + this.blipLevel = level; + this.posX = x; + this.posY = y; + this.posZ = z; + this.dim = dim; + this.entityID = entityID; + this.redstone = redstone; + } + + public RadarEntry(IRadarDetectableNT detectable, Entity entity, boolean redstone) { + this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), redstone); + } + + public RadarEntry(IRadarDetectable detectable, Entity entity) { + this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), entity.motionY < 0); + } + + public RadarEntry(EntityPlayer player) { + this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension, player.getEntityId(), true); + } + + public void fromBytes(ByteBuf buf) { + this.unlocalizedName = ByteBufUtils.readUTF8String(buf); + this.blipLevel = buf.readShort(); + this.posX = buf.readInt(); + this.posY = buf.readInt(); + this.posZ = buf.readInt(); + this.dim = buf.readShort(); + this.entityID = buf.readInt(); + } + + public void toBytes(ByteBuf buf) { + ByteBufUtils.writeUTF8String(buf, this.unlocalizedName); + buf.writeShort(this.blipLevel); + buf.writeInt(this.posX); + buf.writeInt(this.posY); + buf.writeInt(this.posZ); + buf.writeShort(this.dim); + buf.writeInt(this.entityID); + } +} diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 7c4a36a92..a0b5a47f0 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -37,8 +37,11 @@ public interface IFluidUser extends IFluidConnector { if(con.canConnect(type, dir.getOpposite())) { long toSend = this.getTotalFluidForSend(type, pressure); - long transfer = toSend - con.transferFluid(type, pressure, toSend); - this.removeFluidForTransfer(type, pressure, transfer); + + if(toSend > 0) { + long transfer = toSend - con.transferFluid(type, pressure, toSend); + this.removeFluidForTransfer(type, pressure, transfer); + } red = true; } } diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 019aa3dcd..cab1fd29f 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -106,6 +106,8 @@ public class PipeNet implements IPipeNet { public static long fairTransfer(List subList, FluidType type, int pressure, long fill) { + if(fill <= 0) return 0; + List weight = new ArrayList(); long totalReq = 0; @@ -127,14 +129,22 @@ public class PipeNet implements IPipeNet { long given = (long) Math.floor(fraction * fill); - totalGiven += (given - con.transferFluid(type, pressure, given)); - - if(trackingInstances != null) { - for(int j = 0; j < trackingInstances.size(); j++) { - PipeNet net = trackingInstances.get(j); - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSS"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - log(net, sdf.format(new Date(System.currentTimeMillis())) + " Sending " + given + "mB to " + conToString(con)); + if(given > 0) { + + totalGiven += (given - con.transferFluid(type, pressure, given)); + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } + + if(trackingInstances != null) { + for(int j = 0; j < trackingInstances.size(); j++) { + PipeNet net = trackingInstances.get(j); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSS"); + sdf.setTimeZone(TimeZone.getTimeZone("UTC")); + log(net, sdf.format(new Date(System.currentTimeMillis())) + " Sending " + given + "mB to " + conToString(con)); + } } } } diff --git a/src/main/java/com/hbm/blocks/BlockFallingNT.java b/src/main/java/com/hbm/blocks/BlockFallingNT.java new file mode 100644 index 000000000..f880d7268 --- /dev/null +++ b/src/main/java/com/hbm/blocks/BlockFallingNT.java @@ -0,0 +1,96 @@ +package com.hbm.blocks; + +import java.util.Random; + +import com.hbm.entity.item.EntityFallingBlockNT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class BlockFallingNT extends Block { + + public static boolean fallInstantly; + + public BlockFallingNT() { + super(Material.sand); + this.setCreativeTab(CreativeTabs.tabBlock); + } + + public BlockFallingNT(Material mat) { + super(mat); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if(!world.isRemote) { + this.fall(world, x, y, z); + } + } + + protected void fall(World world, int x, int y, int z) { + + if(canFallThrough(world, x, y - 1, z) && y >= 0) { + byte range = 32; + + if(!fallInstantly && world.checkChunksExist(x - range, y - range, z - range, x + range, y + range, z + range)) { + if(!world.isRemote) { + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, x + 0.5D, y + 0.5D, z + 0.5D, this, world.getBlockMetadata(x, y, z)); + this.modifyFallingBlock(entityfallingblock); + world.spawnEntityInWorld(entityfallingblock); + } + } else { + world.setBlockToAir(x, y, z); + + while(canFallThrough(world, x, y - 1, z) && y > 0) { + --y; + } + + if(y > 0) { + world.setBlock(x, y, z, this); + } + } + } + } + + protected void modifyFallingBlock(EntityFallingBlockNT falling) { } + + @Override + public int tickRate(World world) { + return 2; + } + + public static boolean canFallThrough(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); + + if(block.isAir(world, x, y, z)) { + return true; + } else if(block == Blocks.fire) { + return true; + } else { + Material material = block.getMaterial(); + return material == Material.water ? true : material == Material.lava; + } + } + + public void onLand(World world, int x, int y, int z, int meta) { } + + @SideOnly(Side.CLIENT) public boolean shouldOverrideRenderer() { return false; } + @SideOnly(Side.CLIENT) public void overrideRenderer(EntityFallingBlockNT falling, RenderBlocks renderBlocks, Tessellator tessellator) { } +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index dd5bf106a..24fef696d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1,38 +1,37 @@ package com.hbm.blocks; -import com.hbm.blocks.generic.*; -import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; -import com.hbm.blocks.generic.BlockMotherOfAllOres.ItemRandomOreBlock; import com.hbm.blocks.BlockEnums.*; import com.hbm.blocks.bomb.*; import com.hbm.blocks.fluid.*; import com.hbm.blocks.gas.*; +import com.hbm.blocks.generic.*; +import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; +import com.hbm.blocks.generic.BlockMotherOfAllOres.ItemRandomOreBlock; import com.hbm.blocks.machine.*; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; -import com.hbm.blocks.rail.RailNarrowCurve; -import com.hbm.blocks.rail.RailNarrowStraight; -import com.hbm.blocks.rail.RailStandardBuffer; -import com.hbm.blocks.rail.RailStandardCurve; -import com.hbm.blocks.rail.RailStandardRamp; -import com.hbm.blocks.rail.RailStandardStraight; -import com.hbm.blocks.siege.*; +import com.hbm.blocks.rail.*; +import com.hbm.blocks.siege.SiegeCircuit; +import com.hbm.blocks.siege.SiegeHole; +import com.hbm.blocks.siege.SiegeInternal; +import com.hbm.blocks.siege.SiegeShield; import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; import com.hbm.items.block.*; -import com.hbm.items.bomb.*; +import com.hbm.items.bomb.ItemPrototypeBlock; import com.hbm.items.special.ItemOreBlock; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; - import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; -import net.minecraft.block.material.*; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.block.material.MaterialLiquid; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemBlock; import net.minecraftforge.fluids.Fluid; @@ -133,6 +132,8 @@ public class ModBlocks { public static Block cluster_depth_iron; public static Block cluster_depth_titanium; public static Block cluster_depth_tungsten; + + public static Block stone_keyhole; public static Block stone_depth_nether; public static Block ore_depth_nether_neodymium; @@ -304,6 +305,7 @@ public class ModBlocks { public static Block deco_emitter; public static Block part_emitter; public static Block deco_loot; + public static Block pedestal; public static Block bobblehead; public static Block snowglobe; @@ -426,12 +428,8 @@ public class ModBlocks { public static Block brick_jungle_glyph; public static Block brick_jungle_circle; - public static Block brick_dungeon; - public static Block brick_dungeon_flat; - public static Block brick_dungeon_tile; - public static Block brick_dungeon_circle; - public static Block brick_forgotten; + public static Block brick_red; public static Block deco_computer; @@ -596,7 +594,6 @@ public class ModBlocks { public static Block boxcar; public static Block boat; - public static Block bomber; public static Block seal_frame; public static Block seal_controller; @@ -608,9 +605,19 @@ public class ModBlocks { public static Block fire_door; public static Block transition_seal; + // 1.12.2 Doors + public static Block secure_access_door; + public static Block large_vehicle_door; + public static Block qe_containment; + public static Block qe_sliding_door; + public static Block round_airlock_door; + public static Block sliding_seal_door; + public static Block water_door; + public static Block door_metal; public static Block door_office; public static Block door_bunker; + public static Block door_red; public static Block barbed_wire; public static Block barbed_wire_fire; @@ -657,9 +664,11 @@ public class ModBlocks { public static Block nuke_custom; public static Block nuke_solinium; public static Block nuke_n2; - public static Block nuke_n45; public static Block nuke_fstbmb; public static Block bomb_multi; + + public static Block pump_steam; + public static Block pump_electric; public static Block heater_firebox; public static Block heater_oven; @@ -717,8 +726,9 @@ public class ModBlocks { public static Block machine_generator; public static Block machine_industrial_generator; - + public static Block machine_cyclotron; + public static Block machine_exposure_chamber; public static Block hadron_plating; public static Block hadron_plating_blue; @@ -771,14 +781,17 @@ public class ModBlocks { public static Block capacitor_gold; public static Block capacitor_niobium; public static Block capacitor_tantalium; + public static Block capacitor_schrabidate; - public static Block machine_coal_off; - public static Block machine_coal_on; + @Deprecated public static Block machine_coal_off; + @Deprecated public static Block machine_coal_on; + public static Block machine_wood_burner; public static Block red_wire_coated; public static Block red_cable; public static Block red_cable_classic; public static Block red_cable_paintable; + public static Block red_cable_gauge; public static Block red_connector; public static Block red_pylon; public static Block red_pylon_large; @@ -799,8 +812,10 @@ public class ModBlocks { public static Block radio_torch_sender; public static Block radio_torch_receiver; public static Block radio_torch_counter; + public static Block radio_telex; public static Block conveyor; + public static Block conveyor_express; //public static Block conveyor_classic; public static Block conveyor_double; public static Block conveyor_triple; @@ -813,6 +828,13 @@ public class ModBlocks { public static Block crane_boxer; public static Block crane_unboxer; public static Block crane_splitter; + + public static Block drone_waypoint; + public static Block drone_crate; + public static Block drone_waypoint_request; + public static Block drone_dock; + public static Block drone_crate_provider; + public static Block drone_crate_requester; public static Block fan; @@ -874,6 +896,7 @@ public class ModBlocks { public static Block cm_circuit; public static Block cm_port; public static Block custom_machine; + public static Block cm_anchor; public static Block pwr_fuel; public static Block pwr_control; @@ -886,13 +909,13 @@ public class ModBlocks { public static Block pwr_controller; public static Block pwr_block; - public static Block reactor_element; - public static Block reactor_control; - public static Block reactor_hatch; - public static Block reactor_ejector; - public static Block reactor_inserter; - public static Block reactor_conductor; - public static Block reactor_computer; + @Deprecated public static Block reactor_element; + @Deprecated public static Block reactor_control; + @Deprecated public static Block reactor_hatch; + @Deprecated public static Block reactor_ejector; + @Deprecated public static Block reactor_inserter; + @Deprecated public static Block reactor_conductor; + @Deprecated public static Block reactor_computer; public static Block fusion_conductor; public static Block fusion_center; @@ -974,6 +997,7 @@ public class ModBlocks { public static Block machine_flare; public static Block chimney_brick; + public static Block chimney_industrial; public static Block machine_refinery; public static Block machine_vacuum_distill; @@ -1004,6 +1028,7 @@ public class ModBlocks { public static Block machine_condenser; public static Block machine_tower_small; public static Block machine_tower_large; + public static Block machine_condenser_powered; public static Block machine_electrolyser; @@ -1021,6 +1046,7 @@ public class ModBlocks { public static Block machine_assembler; public static Block machine_assemfac; + public static Block machine_arc_welder; public static Block machine_chemplant; public static Block machine_chemfac; @@ -1039,8 +1065,9 @@ public class ModBlocks { public static Block launch_table; public static Block soyuz_launcher; - + public static Block machine_radar; + public static Block radar_screen; public static Block machine_turbofan; public static Block machine_turbinegas; @@ -1050,6 +1077,7 @@ public class ModBlocks { public static Block press_preheater; public static Block machine_press; public static Block machine_epress; + public static Block machine_conveyor_press; public static Block machine_siren; @@ -1076,8 +1104,9 @@ public class ModBlocks { public static Block machine_waste_drum; public static Block machine_storage_drum; - + public static Block machine_autocrafter; + public static Block machine_funnel; public static Block anvil_iron; public static Block anvil_lead; @@ -1142,9 +1171,14 @@ public class ModBlocks { public static Block rail_narrow_straight; public static Block rail_narrow_curve; public static Block rail_large_straight; + public static Block rail_large_straight_short; public static Block rail_large_curve; + public static Block rail_large_curve_7; + public static Block rail_large_curve_9; public static Block rail_large_ramp; public static Block rail_large_buffer; + public static Block rail_large_switch; + public static Block rail_large_switch_flipped; public static Block statue_elb; public static Block statue_elb_g; @@ -1256,19 +1290,6 @@ public class ModBlocks { public static Material materialGas = new MaterialGas(); - public static Block.SoundType soundTypeGrate = new ModSoundType("metalBlock", 0.5F, 1.0F) { - - @Override - public String func_150496_b() { - return Block.soundTypeMetal.func_150496_b(); - } - - @Override - public String getBreakSound() { - return "dig.stone"; - } - }; - private static void initializeBlock() { test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(null); @@ -1355,6 +1376,8 @@ public class ModBlocks { cluster_depth_tungsten = new BlockDepthOre().setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten"); ore_alexandrite = new BlockDepthOre().setBlockName("ore_alexandrite").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_alexandrite"); + stone_keyhole = new BlockKeyhole().setBlockName("stone_keyhole").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":stone_keyhole"); + ore_random = new BlockMotherOfAllOres().setBlockName("ore_random").setCreativeTab(MainRegistry.blockTab); ore_bedrock = new BlockBedrockOreTE().setBlockName("ore_bedrock").setCreativeTab(null); ore_volcano = new BlockFissure().setBlockName("ore_volcano").setLightLevel(1F).setCreativeTab(MainRegistry.blockTab); @@ -1531,6 +1554,7 @@ public class ModBlocks { deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top"); deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); @@ -1541,8 +1565,8 @@ public class ModBlocks { asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); - reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(25.0F); - reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); + reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(2.0F).setResistance(25.0F); + reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(2.0F).setResistance(25.0F); reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); @@ -1649,13 +1673,9 @@ public class ModBlocks { brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); - - brick_dungeon = new BlockGeneric(Material.rock).setBlockName("brick_dungeon").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon"); - brick_dungeon_flat = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_flat").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_flat"); - brick_dungeon_tile = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_tile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_tile"); - brick_dungeon_circle = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_circle"); brick_forgotten = new BlockGeneric(Material.rock).setBlockName("brick_forgotten").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1000000).setBlockTextureName(RefStrings.MODID + ":brick_forgotten"); + brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000); deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -1669,33 +1689,33 @@ public class ModBlocks { steel_roof = new DecoBlock(Material.iron).setBlockName("steel_roof").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_roof"); steel_beam = new DecoBlock(Material.iron).setBlockName("steel_beam").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); steel_scaffold = new BlockScaffold().setBlockName("steel_scaffold").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel_orig"); - steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); - steel_grate_wide = new BlockGrate(Material.iron).setBlockName("steel_grate_wide").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); + steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); + steel_grate_wide = new BlockGrate(Material.iron).setBlockName("steel_grate_wide").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); - deco_pipe = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 0).setBlockName("deco_pipe").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 0).setBlockName("deco_pipe").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc"); geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger"); @@ -1722,8 +1742,8 @@ public class ModBlocks { mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); - glyphid_base = new BlockBase(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F); - glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); + glyphid_base = new BlockGlyphid(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); + glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_eggs_alt"); plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); @@ -1783,7 +1803,6 @@ public class ModBlocks { nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":custom"); nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); - nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":code"); nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); @@ -1819,6 +1838,9 @@ public class ModBlocks { semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); fissure_bomb = new BlockFissureBomb().setBlockName("fissure_bomb").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":fissure_bomb"); + + pump_steam = new MachinePump().setBlockName("pump_steam").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + pump_electric = new MachinePump().setBlockName("pump_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_oven = new HeaterOven().setBlockName("heater_oven").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); @@ -1873,6 +1895,7 @@ public class ModBlocks { machine_generator = new MachineGenerator(Material.iron).setBlockName("machine_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":industrial_generator"); machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); + machine_exposure_chamber = new MachineExposureChamber(Material.iron).setBlockName("machine_exposure_chamber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); hadron_plating = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating"); @@ -1881,7 +1904,7 @@ public class ModBlocks { hadron_plating_yellow = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_yellow"); hadron_plating_striped = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_striped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_striped"); hadron_plating_voltz = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_voltz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_voltz"); - hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass"); + hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass"); hadron_coil_alloy = new BlockHadronCoil(Material.iron, 10).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_alloy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_alloy"); hadron_coil_gold = new BlockHadronCoil(Material.iron, 25).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_gold"); hadron_coil_neodymium = new BlockHadronCoil(Material.iron, 50).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_neodymium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_neodymium"); @@ -1898,7 +1921,7 @@ public class ModBlocks { hadron_power_10g = new BlockHadronPower(Material.iron, 10000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power"); hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); hadron_analysis = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis"); - hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); + hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access"); hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core"); hadron_cooler = new BlockHadronCooler(Material.iron).setBlockName("hadron_cooler").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); @@ -1922,10 +1945,12 @@ public class ModBlocks { capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium"); - capacitor_tantalium = new MachineCapacitor(Material.iron, 100_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); - machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -1951,6 +1976,7 @@ public class ModBlocks { red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_neo"); red_cable_classic = new BlockCable(Material.iron).setBlockName("red_cable_classic").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_classic"); red_cable_paintable = new BlockCablePaintable().setBlockName("red_cable_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + red_cable_gauge = new BlockCableGauge().setBlockName("red_cable_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector"); red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large"); @@ -1961,9 +1987,9 @@ public class ModBlocks { machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); - fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); - fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); - fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); + fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_paintable = new FluidDuctPaintable().setBlockName("fluid_duct_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1971,8 +1997,10 @@ public class ModBlocks { radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_counter = new RadioTorchCounter().setBlockName("radio_torch_counter").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_counter"); + radio_telex = new RadioTelex().setBlockName("radio_telex").setHardness(3F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radio_telex"); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_express = new BlockConveyorExpress().setBlockName("conveyor_express").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_express"); //conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); @@ -1988,6 +2016,13 @@ public class ModBlocks { fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint"); + drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); + drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock"); + drone_crate_provider = new DroneDock().setBlockName("drone_crate_provider").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_provider"); + drone_crate_requester = new DroneDock().setBlockName("drone_crate_requester").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_requester"); + chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); ladder_sturdy = new BlockNTMLadder().setBlockName("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_sturdy"); @@ -2043,6 +2078,7 @@ public class ModBlocks { cm_circuit = new BlockCM(Material.iron, EnumCMCircuit.class, true, true).setBlockName("cm_circuit").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_circuit"); cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); + cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); @@ -2055,20 +2091,19 @@ public class ModBlocks { pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); - reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); - reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); - reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_ejector = new BlockRotatable(Material.iron).setBlockName("reactor_ejector").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_inserter = new BlockRotatable(Material.iron).setBlockName("reactor_inserter").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); - reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); + reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); + reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); + reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + reactor_ejector = new BlockRotatable(Material.iron).setBlockName("reactor_ejector").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + reactor_inserter = new BlockRotatable(Material.iron).setBlockName("reactor_inserter").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); + reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); - //fusion_core = new FusionCore(Material.iron).setBlockName("fusion_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_core_side"); plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma"); iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); @@ -2113,17 +2148,24 @@ public class ModBlocks { seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3"); - vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); - blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); + vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); + blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); - sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(150.0F).setResistance(7500.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door"); - - fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); - transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); + sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(10.0F).setResistance(750.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door"); + fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); + transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); + secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(20.0F).setResistance(2_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + large_vehicle_door = new BlockDoorGeneric(Material.iron, DoorDecl.LARGE_VEHICLE_DOOR).setBlockName("large_vehicle_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + qe_containment = new BlockDoorGeneric(Material.iron, DoorDecl.QE_CONTAINMENT).setBlockName("qe_containment").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + qe_sliding_door = new BlockDoorGeneric(Material.iron, DoorDecl.QE_SLIDING).setBlockName("qe_sliding_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + round_airlock_door = new BlockDoorGeneric(Material.iron, DoorDecl.ROUND_AIRLOCK_DOOR).setBlockName("round_airlock_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + sliding_seal_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDING_SEAL_DOOR).setBlockName("sliding_seal_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + water_door = new BlockDoorGeneric(Material.iron, DoorDecl.WATER_DOOR).setBlockName("water_door").setHardness(5.0F).setResistance(50.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office"); door_bunker = new BlockModDoor(Material.iron).setBlockName("door_bunker").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_bunker"); + door_red = new BlockModDoor(Material.iron).setBlockName("door_red").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_red"); barbed_wire = new BarbedWire(Material.iron).setBlockName("barbed_wire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_model"); barbed_wire_fire = new BarbedWire(Material.iron).setBlockName("barbed_wire_fire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_fire_model"); @@ -2143,6 +2185,7 @@ public class ModBlocks { launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); + radar_screen = new MachineRadarScreen(Material.iron).setBlockName("radar_screen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_missile_assembly = new MachineMissileAssembly(Material.iron).setBlockName("machine_missile_assembly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_missile_assembly"); compact_launcher = new CompactLauncher(Material.iron).setBlockName("compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":compact_launcher"); @@ -2208,10 +2251,15 @@ public class ModBlocks { rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_straight_short = new RailStandardStraightShort().setBlockName("rail_large_straight_short").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurveBase().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_7 = new RailStandardCurveWide7().setBlockName("rail_large_curve_7").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_9 = new RailStandardCurveWide9().setBlockName("rail_large_curve_9").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); + rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_switch_flipped = new RailStandardSwitchFlipped().setBlockName("rail_large_switch_flipped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); @@ -2231,7 +2279,6 @@ public class ModBlocks { boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); - bomber = new DecoBlock(Material.iron).setBlockName("bomber").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":code"); machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); @@ -2239,6 +2286,7 @@ public class ModBlocks { oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); chimney_brick = new MachineChimneyBrick(Material.iron).setBlockName("chimney_brick").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + chimney_industrial = new MachineChimneyIndustrial(Material.iron).setBlockName("chimney_industrial").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext.machine"); machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); machine_vacuum_distill = new MachineVacuumDistill(Material.iron).setBlockName("machine_vacuum_distill").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2247,13 +2295,14 @@ public class ModBlocks { machine_catalytic_reformer = new MachineCatalyticReformer(Material.iron).setBlockName("machine_catalytic_reformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_drill"); + machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_drill"); machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe"); machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser"); barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade"); machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler"); machine_assemfac = new MachineAssemfac(Material.iron).setBlockName("machine_assemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_arc_welder = new MachineArcWelder(Material.iron).setBlockName("machine_arc_welder").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2265,11 +2314,12 @@ public class ModBlocks { press_preheater = new BlockBase(Material.iron).setBlockName("press_preheater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":press_preheater"); machine_press = new MachinePress(Material.iron).setBlockName("machine_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_press"); machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress"); + machine_conveyor_press = new MachineConveyorPress(Material.iron).setBlockName("machine_conveyor_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium"); reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off"); machine_boiler_on = new MachineBoiler(true).setBlockName("machine_boiler_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_boiler_on"); @@ -2283,6 +2333,7 @@ public class ModBlocks { machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser"); machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); + machine_condenser_powered = new MachineCondenserPowered(Material.iron).setBlockName("machine_condenser_powered").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); machine_deuterium_extractor = new MachineDeuteriumExtractor(Material.iron).setBlockName("machine_deuterium_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deuterium_extractor_side"); machine_deuterium_tower = new DeuteriumTower(Material.iron).setBlockName("machine_deuterium_tower").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); @@ -2294,6 +2345,7 @@ public class ModBlocks { machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); + machine_funnel = new MachineFunnel().setBlockName("machine_funnel").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); @@ -2550,6 +2602,9 @@ public class ModBlocks { register(ore_bedrock); register(ore_volcano); + //Secret + register(stone_keyhole); + //Crystals GameRegistry.registerBlock(crystal_power, crystal_power.getUnlocalizedName()); GameRegistry.registerBlock(crystal_energy, crystal_energy.getUnlocalizedName()); @@ -2704,6 +2759,7 @@ public class ModBlocks { GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName()); GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName()); GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName()); + GameRegistry.registerBlock(pedestal, pedestal.getUnlocalizedName()); GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName()); @@ -2842,11 +2898,8 @@ public class ModBlocks { GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon, brick_dungeon.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_flat, brick_dungeon_flat.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_tile, brick_dungeon_tile.getUnlocalizedName()); - GameRegistry.registerBlock(brick_dungeon_circle, brick_dungeon_circle.getUnlocalizedName()); GameRegistry.registerBlock(brick_forgotten, brick_forgotten.getUnlocalizedName()); + GameRegistry.registerBlock(brick_red, brick_red.getUnlocalizedName()); GameRegistry.registerBlock(deco_computer, ItemBlockBase.class, deco_computer.getUnlocalizedName()); GameRegistry.registerBlock(filing_cabinet, ItemBlockBase.class, filing_cabinet.getUnlocalizedName()); GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); @@ -2891,8 +2944,8 @@ public class ModBlocks { GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); - GameRegistry.registerBlock(glyphid_base, glyphid_base.getUnlocalizedName()); - GameRegistry.registerBlock(glyphid_spawner, glyphid_spawner.getUnlocalizedName()); + register(glyphid_base); + register(glyphid_spawner); GameRegistry.registerBlock(moon_turf, moon_turf.getUnlocalizedName()); //Waste @@ -2941,7 +2994,6 @@ public class ModBlocks { GameRegistry.registerBlock(nuke_fleija, nuke_fleija.getUnlocalizedName()); GameRegistry.registerBlock(nuke_solinium, nuke_solinium.getUnlocalizedName()); GameRegistry.registerBlock(nuke_n2, nuke_n2.getUnlocalizedName()); - GameRegistry.registerBlock(nuke_n45, nuke_n45.getUnlocalizedName()); GameRegistry.registerBlock(nuke_fstbmb, nuke_fstbmb.getUnlocalizedName()); GameRegistry.registerBlock(nuke_custom, nuke_custom.getUnlocalizedName()); @@ -3048,6 +3100,14 @@ public class ModBlocks { GameRegistry.registerBlock(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName()); GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName()); + GameRegistry.registerBlock(door_red, door_red.getUnlocalizedName()); + GameRegistry.registerBlock(secure_access_door, secure_access_door.getUnlocalizedName()); + GameRegistry.registerBlock(large_vehicle_door, large_vehicle_door.getUnlocalizedName()); + GameRegistry.registerBlock(qe_containment, qe_containment.getUnlocalizedName()); + GameRegistry.registerBlock(qe_sliding_door, qe_sliding_door.getUnlocalizedName()); + GameRegistry.registerBlock(round_airlock_door, round_airlock_door.getUnlocalizedName()); + GameRegistry.registerBlock(sliding_seal_door, sliding_seal_door.getUnlocalizedName()); + GameRegistry.registerBlock(water_door, water_door.getUnlocalizedName()); //Crates register(crate_iron); @@ -3061,13 +3121,10 @@ public class ModBlocks { //Junk GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName()); GameRegistry.registerBlock(boat, boat.getUnlocalizedName()); - GameRegistry.registerBlock(bomber, bomber.getUnlocalizedName()); //Machines - //GameRegistry.registerBlock(observer_off, observer_off.getUnlocalizedName()); - //GameRegistry.registerBlock(observer_on, observer_on.getUnlocalizedName()); - - GameRegistry.registerBlock(machine_autocrafter, ItemBlockBase.class, machine_autocrafter.getUnlocalizedName()); + register(machine_autocrafter); + register(machine_funnel); GameRegistry.registerBlock(anvil_iron, ItemBlockBase.class, anvil_iron.getUnlocalizedName()); GameRegistry.registerBlock(anvil_lead, ItemBlockBase.class, anvil_lead.getUnlocalizedName()); @@ -3084,6 +3141,9 @@ public class ModBlocks { GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); + register(machine_conveyor_press); + register(pump_steam); + register(pump_electric); register(heater_firebox); register(heater_oven); register(machine_ashpit); @@ -3126,6 +3186,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_off, machine_coal_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_on, machine_coal_on.getUnlocalizedName()); + register(machine_wood_burner); register(machine_diesel); register(machine_selenium); register(machine_combustion_engine); @@ -3137,6 +3198,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_industrial_generator, machine_industrial_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_radgen, machine_radgen.getUnlocalizedName()); GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName()); + GameRegistry.registerBlock(machine_exposure_chamber, machine_exposure_chamber.getUnlocalizedName()); GameRegistry.registerBlock(machine_rtg_grey, machine_rtg_grey.getUnlocalizedName()); GameRegistry.registerBlock(machine_geo, machine_geo.getUnlocalizedName()); GameRegistry.registerBlock(machine_amgen, machine_amgen.getUnlocalizedName()); @@ -3205,6 +3267,7 @@ public class ModBlocks { GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); GameRegistry.registerBlock(red_cable_classic, red_cable_classic.getUnlocalizedName()); GameRegistry.registerBlock(red_cable_paintable, red_cable_paintable.getUnlocalizedName()); + register(red_cable_gauge); GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(red_connector, ItemBlockBase.class, red_connector.getUnlocalizedName()); GameRegistry.registerBlock(red_pylon, ItemBlockBase.class, red_pylon.getUnlocalizedName()); @@ -3226,6 +3289,7 @@ public class ModBlocks { register(radio_torch_sender); register(radio_torch_receiver); register(radio_torch_counter); + register(radio_telex); register(crane_extractor); register(crane_inserter); @@ -3234,11 +3298,18 @@ public class ModBlocks { register(crane_boxer); register(crane_unboxer); register(conveyor); + register(conveyor_express); register(conveyor_double); register(conveyor_triple); register(conveyor_chute); register(conveyor_lift); register(crane_splitter); + register(drone_waypoint); + register(drone_crate); + register(drone_waypoint_request); + register(drone_dock); + register(drone_crate_provider); + register(drone_crate_requester); register(fan); register(piston_inserter); @@ -3271,6 +3342,7 @@ public class ModBlocks { register(capacitor_gold); register(capacitor_niobium); register(capacitor_tantalium); + register(capacitor_schrabidate); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); @@ -3286,6 +3358,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_assemfac, machine_assemfac.getUnlocalizedName()); GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); GameRegistry.registerBlock(machine_chemfac, machine_chemfac.getUnlocalizedName()); + register(machine_arc_welder); register(machine_mixer); register(machine_fluidtank); register(machine_bat9000); @@ -3301,6 +3374,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName()); GameRegistry.registerBlock(machine_tower_small, machine_tower_small.getUnlocalizedName()); GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName()); + register(machine_condenser_powered); GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName()); GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName()); @@ -3317,6 +3391,7 @@ public class ModBlocks { register(machine_fracking_tower); register(machine_flare); register(chimney_brick); + register(chimney_industrial); register(machine_refinery); register(machine_vacuum_distill); register(machine_fraction_tower); @@ -3383,6 +3458,7 @@ public class ModBlocks { register(cm_tank); register(cm_circuit); register(cm_port); + register(cm_anchor); //PWR register(pwr_fuel); @@ -3461,6 +3537,7 @@ public class ModBlocks { GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName()); GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); + GameRegistry.registerBlock(radar_screen, radar_screen.getUnlocalizedName()); //Guide GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); @@ -3481,9 +3558,14 @@ public class ModBlocks { register(rail_narrow_straight); register(rail_narrow_curve); register(rail_large_straight); + register(rail_large_straight_short); register(rail_large_curve); + register(rail_large_curve_7); + register(rail_large_curve_9); register(rail_large_ramp); register(rail_large_buffer); + register(rail_large_switch); + register(rail_large_switch_flipped); //Crate GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/ModSoundType.java b/src/main/java/com/hbm/blocks/ModSoundType.java index 331a7e27a..0bd8e8a46 100644 --- a/src/main/java/com/hbm/blocks/ModSoundType.java +++ b/src/main/java/com/hbm/blocks/ModSoundType.java @@ -2,18 +2,168 @@ package com.hbm.blocks; import net.minecraft.block.Block; +import java.util.Random; + public class ModSoundType extends Block.SoundType { + protected final String placeSound; + protected final String breakSound; + protected final String stepSound; - public ModSoundType(String name, float volume, float pitch) { - super(name, volume, pitch); + protected ModSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + super("", volume, pitch); + this.placeSound = placeSound; + this.breakSound = breakSound; + this.stepSound = stepSound; } + public ModEnvelopedSoundType enveloped() { + return new ModEnvelopedSoundType(placeSound, breakSound, stepSound, volume, frequency); + } + + public ModEnvelopedSoundType enveloped(Random random) { + return new ModEnvelopedSoundType(placeSound, breakSound, stepSound, volume, frequency, random); + } + + @Override + public String func_150496_b() { + return placeSound; + } + + @Override public String getBreakSound() { - return "hbm:" + super.getBreakSound(); + return breakSound; } + @Override public String getStepResourcePath() { - return "hbm:" + super.getStepResourcePath(); + return stepSound; } + // creates a sound type with vanilla-like sound strings name-spaced to the mod + public static ModSoundType mod(String soundName, float volume, float pitch) { + return new ModSoundType(modDig(soundName), modDig(soundName), modStep(soundName), volume, pitch); + } + + // these permutations allow creating a sound type with one of the three sounds being custom + // and the other ones defaulting to vanilla-like sound strings name-spaced to the mod + + public static ModSoundType customPlace(String soundName, String placeSound, float volume, float pitch) { + return new ModSoundType(placeSound, modDig(soundName), modStep(soundName), volume, pitch); + } + + public static ModSoundType customBreak(String soundName, String breakSound, float volume, float pitch) { + return new ModSoundType(modDig(soundName), breakSound, modStep(soundName), volume, pitch); + } + + public static ModSoundType customStep(String soundName, String stepSound, float volume, float pitch) { + return new ModSoundType(modDig(soundName), modDig(soundName), stepSound, volume, pitch); + } + + public static ModSoundType customDig(String soundName, String digSound, float volume, float pitch) { + return new ModSoundType(digSound, digSound, modStep(soundName), volume, pitch); + } + + // these permutations copy sounds from an existing sound type and modify one of the sounds, + // but with a manual path for the custom sound + + public static ModSoundType customPlace(Block.SoundType from, String placeSound, float volume, float pitch) { + return new ModSoundType(placeSound, from.getBreakSound(), from.getStepResourcePath(), volume, pitch); + } + + public static ModSoundType customBreak(Block.SoundType from, String breakSound, float volume, float pitch) { + return new ModSoundType(from.func_150496_b(), breakSound, from.getStepResourcePath(), volume, pitch); + } + + public static ModSoundType customStep(Block.SoundType from, String stepSound, float volume, float pitch) { + return new ModSoundType(from.func_150496_b(), from.getBreakSound(), stepSound, volume, pitch); + } + + public static ModSoundType customDig(Block.SoundType from, String dig, float volume, float pitch) { + return new ModSoundType(dig, dig, from.getStepResourcePath(), volume, pitch); + } + + // customizes all sounds + public static ModSoundType placeBreakStep(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + return new ModSoundType(placeSound, breakSound, stepSound, volume, pitch); + } + + private static String modDig(String soundName) { + return "hbm:dig." + soundName; + } + + private static String modStep(String soundName) { + return "hbm:step." + soundName; + } + + public static class ModEnvelopedSoundType extends ModSoundType { + private final Random random; + + ModEnvelopedSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch, Random random) { + super(placeSound, breakSound, stepSound, volume, pitch); + this.random = random; + } + + ModEnvelopedSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + this(placeSound, breakSound, stepSound, volume, pitch, new Random()); + } + + // a bit of a hack, but most of the time, playSound is called with the sound path queried first, and then volume and pitch + private SubType probableSubType = SubType.PLACE; + + @Override + public String func_150496_b() { + probableSubType = SubType.PLACE; + return super.func_150496_b(); + } + + @Override + public String getBreakSound() { + probableSubType = SubType.BREAK; + return super.getBreakSound(); + } + + @Override + public String getStepResourcePath() { + probableSubType = SubType.STEP; + return super.getStepResourcePath(); + } + + private Envelope volumeEnvelope = null; + private Envelope pitchEnvelope = null; + + public ModEnvelopedSoundType volumeFunction(Envelope volumeEnvelope) { + this.volumeEnvelope = volumeEnvelope; + return this; + } + + public ModEnvelopedSoundType pitchFunction(Envelope pitchEnvelope) { + this.pitchEnvelope = pitchEnvelope; + return this; + } + + @Override + public float getVolume() { + if (volumeEnvelope == null) + return super.getVolume(); + else + return volumeEnvelope.compute(super.getVolume(), random, probableSubType); + } + + @Override + public float getPitch() { + if (pitchEnvelope == null) + return super.getPitch(); + else + return pitchEnvelope.compute(super.getPitch(), random, probableSubType); + } + + @FunctionalInterface + public interface Envelope { + float compute(float in, Random rand, SubType type); + } + } + + public enum SubType { + PLACE, BREAK, STEP + } } diff --git a/src/main/java/com/hbm/blocks/ModSoundTypes.java b/src/main/java/com/hbm/blocks/ModSoundTypes.java new file mode 100644 index 000000000..85f42f310 --- /dev/null +++ b/src/main/java/com/hbm/blocks/ModSoundTypes.java @@ -0,0 +1,13 @@ +package com.hbm.blocks; + +import com.hbm.main.MainRegistry; +import net.minecraft.block.Block; + +public class ModSoundTypes { + + public static final ModSoundType grate = ModSoundType.customStep(Block.soundTypeStone, "hbm:step.metalBlock", 0.5F, 1.0F); + public static final ModSoundType pipe = ModSoundType.customDig(Block.soundTypeMetal, "hbm:block.pipePlaced", 0.85F, 0.85F).enveloped(MainRegistry.instance.rand).pitchFunction((in, rand, type) -> { + if(type == ModSoundType.SubType.BREAK) in -= 0.15F; + return in + rand.nextFloat() * 0.2F; + }); +} diff --git a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java index b6ea8e4eb..680ea9030 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java @@ -145,8 +145,8 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { if(tool == ToolType.DEFUSER) { if(!world.isRemote) { - world.func_147480_a(x, y, z, true); - this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + world.func_147480_a(x, y, z, false); + this.dropBlockAsItem(world, x, y, z, 0, 0); } return true; } diff --git a/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java b/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java index 10f7547aa..eb9764411 100644 --- a/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java +++ b/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java @@ -123,7 +123,7 @@ public class CompactLauncher extends BlockContainer implements IMultiblock, IBom TileEntityCompactLauncher entity = (TileEntityCompactLauncher) world.getTileEntity(x, y, z); if(entity.canLaunch()) { - entity.launch(); + entity.launchFromDesignator(); return BombReturnCode.LAUNCHED; } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 675fbfd38..78436a540 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -2,38 +2,27 @@ package com.hbm.blocks.bomb; import java.util.Random; -import org.apache.logging.log4j.Level; - import com.hbm.blocks.ModBlocks; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.missile.*; import com.hbm.interfaces.IBomb; -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityLaunchPad; -import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class LaunchPad extends BlockContainer implements IBomb { - public TileEntityLaunchPad tetn = new TileEntityLaunchPad(); public static boolean keepInventory = false; private final static Random field_149933_a = new Random(); @@ -46,11 +35,6 @@ public class LaunchPad extends BlockContainer implements IBomb { return new TileEntityLaunchPad(); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.launch_pad); - } - @Override public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { if(!keepInventory) { @@ -132,186 +116,16 @@ public class LaunchPad extends BlockContainer implements IBomb { return false; } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - } - - /* - * @Override public void setBlockBoundsBasedOnState(IBlockAccess - * p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { float f - * = 0.0625F; this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); } - * - * @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World - * world, int x, int y, int z) { float f = 0.0625F; - * this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); return - * AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, - * x + this.maxX, y + this.maxY, z + this.maxZ); } - */ - @Override @SideOnly(Side.CLIENT) public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) { return Item.getItemFromBlock(ModBlocks.launch_pad); } - @Spaghetti("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA *takes breath* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") @Override public BombReturnCode explode(World world, int x, int y, int z) { - TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z); - - if(entity.slots[0] == null || world.isRemote) - return BombReturnCode.ERROR_MISSING_COMPONENT; - - if(entity.slots[1] != null && entity.slots[1].getItem() instanceof IDesignatorItem && entity.power >= 75000) { - - if(!((IDesignatorItem)entity.slots[1].getItem()).isReady(world, entity.slots[1], x, y, z)) - return BombReturnCode.ERROR_MISSING_COMPONENT; - - int xCoord = entity.slots[1].stackTagCompound.getInteger("xCoord"); - int zCoord = entity.slots[1].stackTagCompound.getInteger("zCoord"); - - if(xCoord == entity.xCoord && zCoord == entity.zCoord) { - xCoord += 1; - } - - Entity missile = null; - - if(entity.slots[0].getItem() == ModItems.missile_generic) { - missile = new EntityMissileGeneric(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_incendiary) { - missile = new EntityMissileIncendiary(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_cluster) { - missile = new EntityMissileCluster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_buster) { - missile = new EntityMissileBunkerBuster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_strong) { - missile = new EntityMissileStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_incendiary_strong) { - missile = new EntityMissileIncendiaryStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_cluster_strong) { - missile = new EntityMissileClusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_buster_strong) { - missile = new EntityMissileBusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_burst) { - missile = new EntityMissileBurst(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_inferno) { - missile = new EntityMissileInferno(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_rain) { - missile = new EntityMissileRain(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_drill) { - missile = new EntityMissileDrill(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_nuclear) { - missile = new EntityMissileNuclear(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_endo) { - missile = new EntityMissileEndo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_exo) { - missile = new EntityMissileExo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_nuclear_cluster) { - missile = new EntityMissileMirv(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_doomsday) { - missile = new EntityMissileDoomsday(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_taint) { - missile = new EntityMissileTaint(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_micro) { - missile = new EntityMissileMicro(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_bhole) { - missile = new EntityMissileBHole(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_schrabidium) { - missile = new EntityMissileSchrabidium(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_emp) { - missile = new EntityMissileEMP(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_emp_strong) { - missile = new EntityMissileEMPStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_volcano) { - missile = new EntityMissileVolcano(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_shuttle) { - missile = new EntityMissileShuttle(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - - if(missile != null) { - world.spawnEntityInWorld(missile); - world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - entity.power -= 75000; - entity.slots[0] = null; - - if(GeneralConfig.enableExtendedLogging) - MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!"); - return BombReturnCode.LAUNCHED; - } - } - - if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) { - EntityCarrier missile = new EntityCarrier(world); - missile.posX = x + 0.5F; - missile.posY = y + 1F; - missile.posZ = z + 0.5F; - - if(entity.slots[1] != null) - missile.setPayload(entity.slots[1]); - - world.spawnEntityInWorld(missile); - entity.power -= 75000; - - entity.slots[0] = null; - entity.slots[1] = null; - world.playSoundEffect(x, y, z, "hbm:entity.rocketTakeoff", 100.0F, 1.0F); - return BombReturnCode.LAUNCHED; - } - - if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) { - EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(world); - missile.posX = x + 0.5F; - missile.posY = y + 0.5F; - missile.posZ = z + 0.5F; - - world.spawnEntityInWorld(missile); - entity.power -= 75000; - - entity.slots[0] = null; - world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - return BombReturnCode.LAUNCHED; - } - - return BombReturnCode.ERROR_MISSING_COMPONENT; + return entity.launchFromDesignator(); } } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchTable.java b/src/main/java/com/hbm/blocks/bomb/LaunchTable.java index 3170cea1c..e5f194f59 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchTable.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchTable.java @@ -163,7 +163,7 @@ public class LaunchTable extends BlockContainer implements IMultiblock, IBomb { TileEntityLaunchTable entity = (TileEntityLaunchTable) world.getTileEntity(x, y, z); if(entity.canLaunch()) { - entity.launch(); + entity.launchFromDesignator(); return BombReturnCode.LAUNCHED; } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN45.java b/src/main/java/com/hbm/blocks/bomb/NukeN45.java deleted file mode 100644 index df47fae70..000000000 --- a/src/main/java/com/hbm/blocks/bomb/NukeN45.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.hbm.blocks.bomb; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IBomb; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class NukeN45 extends BlockContainer implements IBomb { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory = false; - - public NukeN45(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityNukeN45(); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - if(!keepInventory) { - ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if(tileentityfurnace != null) { - for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if(j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if(itemstack.hasTagCompound()) { - entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(x, y, z); - if(entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.nuke_n45); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public BombReturnCode explode(World world, int x, int y, int z) { - - if(!world.isRemote) { - TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(x, y, z); - - if(entity.getType() == 100) { - entity.primed = true; - return BombReturnCode.TRIGGERED; - } else if(!entity.primed && entity.getType() > 0) { - int t = entity.getType(); - entity.clearSlots(); - entity.explode(world, x, y, z, t); - return BombReturnCode.DETONATED; - } - - return BombReturnCode.ERROR_MISSING_COMPONENT; - } - - return BombReturnCode.UNDEFINED; - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java index f7612ee69..a2925f119 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java @@ -12,6 +12,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -38,11 +39,31 @@ public class BlockAmmoCrate extends Block { public IIcon getIcon(int side, int metadata) { return side == 0 ? this.iconBottom : (side == 1 ? this.iconTop : this.blockIcon); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; + } + return false; + } Random rand = new Random(); - @Override - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { ArrayList ret = new ArrayList(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 6d5b525cc..040c22cba 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -145,7 +145,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I text.add("Tier: " + ore.tier); if(ore.acidRequirement != null) { - text.add("Requires: " + ore.acidRequirement.fill + "mB " + I18nUtil.resolveKey(ore.acidRequirement.type.getUnlocalizedName())); + text.add("Requires: " + ore.acidRequirement.fill + "mB " + ore.acidRequirement.type.getLocalizedName()); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 1ec769c03..afd48197b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -191,7 +191,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), - MICROWAVE( "Microwave", "Microwave", "OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), + MICROWAVE( "Microwave", "Microwave", "OC Compatibility", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); public String name; //the title of the tooltip diff --git a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java index f9b27c5a8..67e8c5e9b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java @@ -11,9 +11,7 @@ import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCanCrate extends Block { @@ -21,79 +19,77 @@ public class BlockCanCrate extends Block { public BlockCanCrate(Material p_i45394_1_) { super(p_i45394_1_); } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override - public int getRenderType(){ + public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - @Override + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { - - if(world.isRemote) - { - player.addChatMessage(new ChatComponentText("The one crate you are allowed to smash!")); + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; } - - return true; - } - - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - ArrayList ret = new ArrayList(); - - int count = quantityDropped(metadata, fortune, world.rand); - for(int i = 0; i < count; i++) { - Item item = getItemDropped(metadata, world.rand, fortune); - if(item != null) - ret.add(new ItemStack(item, 1, damageDropped(metadata, world.rand, item))); - } - - return ret; - } - - //pain - public int damageDropped(int meta, Random rand, Item item) { - if(item != ModItems.canned_conserve) - return damageDropped(meta); - else - return Math.abs(rand.nextInt() % EnumFoodType.values().length); - } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - - List items = new ArrayList(); - for(int a = 0; a < EnumFoodType.values().length; a++) - items.add(ModItems.canned_conserve); - items.add(ModItems.can_smart); - items.add(ModItems.can_creature); - items.add(ModItems.can_redbomb); - items.add(ModItems.can_mrsugar); - items.add(ModItems.can_overcharge); - items.add(ModItems.can_luna); - items.add(ModItems.can_breen); - items.add(ModItems.can_bepis); - items.add(ModItems.pudding); - - return items.get(rand.nextInt(items.size())); - } - - @Override - public int quantityDropped(Random rand) { - - return 5 + rand.nextInt(4); - } + return false; + } + Random rand = new Random(); + + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { + ArrayList ret = new ArrayList(); + + int count = getContentAmount(world.rand); + for(int i = 0; i < count; i++) { + ret.add(getRandomItem(world.rand)); + } + + return ret; + } + + public ItemStack getRandomItem(Random rand) { + + List items = new ArrayList(); + for(int a = 0; a < EnumFoodType.values().length; a++) + items.add(new ItemStack(ModItems.canned_conserve, 1, a)); + items.add(new ItemStack(ModItems.can_smart)); + items.add(new ItemStack(ModItems.can_creature)); + items.add(new ItemStack(ModItems.can_redbomb)); + items.add(new ItemStack(ModItems.can_mrsugar)); + items.add(new ItemStack(ModItems.can_overcharge)); + items.add(new ItemStack(ModItems.can_luna)); + items.add(new ItemStack(ModItems.can_breen)); + items.add(new ItemStack(ModItems.can_bepis)); + items.add(new ItemStack(ModItems.pudding)); + + return items.get(rand.nextInt(items.size())); + } + + public int getContentAmount(Random rand) { + return 5 + rand.nextInt(4); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 7921a0e71..412b7ed2d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -14,7 +14,6 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCrate extends BlockFalling { @@ -29,25 +28,17 @@ public class BlockCrate extends BlockFalling { super(p_i45394_1_); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return null; - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { - dropItems(world, x, y, z); - world.setBlockToAir(x, y, z); - world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); - return true; - } else { - if(world.isRemote) { - player.addChatMessage(new ChatComponentText("I'll need a crate opening device to get the loot, smashing the whole thing won't work...")); + if(!world.isRemote) { + dropItems(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); } + return true; } - - return true; + return false; } public void setDrops() { diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java index d98221129..ac7a1cdb5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java @@ -58,9 +58,9 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro } else { TileEntity entity = world.getTileEntity(x, y, z); if(entity instanceof TileEntityLockableBase) { //annoying accommodations for the filing cabinet, but whatever, could potentially be useful - if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) + if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) { return false; - else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { + } else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } @@ -99,13 +99,13 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - - float f3 = 0.05F; - entityitem.motionX = (float) rand.nextGaussian() * f3; - entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) rand.nextGaussian() * f3; - world.spawnEntityInWorld(entityitem); } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index ea3780a27..5d44d76f0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -91,6 +91,11 @@ public class BlockDoorGeneric extends BlockDummyable { // return; //super.addCollisionBoxesToList(worldIn, x, y, z, entityBox, collidingBoxes, entityIn); } + + @Override //should fix AI pathfinding + public boolean getBlocksMovement(IBlockAccess world, int x, int y, int z) { //btw the method name is the exact opposite of that it's doing, check net.minecraft.pathfinding.PathNavigate#512 + return hasExtra(world.getBlockMetadata(x, y, z)); //if it's open + } @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){ diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java new file mode 100644 index 000000000..e94c67f14 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java @@ -0,0 +1,77 @@ +package com.hbm.blocks.generic; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.IBlockMulti; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockGlyphid extends Block implements IBlockMulti { + + public IIcon[] iconsStandard = new IIcon[2]; + public IIcon[] iconsInfested = new IIcon[2]; + + public BlockGlyphid(Material mat) { + super(mat); + this.setCreativeTab(MainRegistry.blockTab); + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + IIcon[] icons = this.getIconArray(world.getBlockMetadata(x, y, z)); + return icons[(int)(Math.abs(i) % icons.length)]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + IIcon[] icons = this.getIconArray(meta); + return icons[meta % icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + iconsStandard[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base"); + iconsStandard[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_alt"); + iconsInfested[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested"); + iconsInfested[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_infested_alt"); + } + + protected IIcon[] getIconArray(int meta) { + if(meta == 1) return this.iconsInfested; + return this.iconsStandard; + } + + @Override + public int getSubCount() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) list.add(new ItemStack(item, 1, i)); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index f02a8efba..e4d07db08 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -1,33 +1,40 @@ package com.hbm.blocks.generic; -import java.util.List; -import java.util.Random; +import java.util.*; +import java.util.function.Function; +import com.hbm.blocks.IBlockMulti; import com.hbm.config.MobConfig; -import com.hbm.entity.mob.EntityGlyphid; -import com.hbm.entity.mob.EntityGlyphidBehemoth; -import com.hbm.entity.mob.EntityGlyphidBlaster; -import com.hbm.entity.mob.EntityGlyphidBombardier; -import com.hbm.entity.mob.EntityGlyphidBrawler; -import com.hbm.entity.mob.EntityGlyphidBrenda; -import com.hbm.entity.mob.EntityGlyphidNuclear; -import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.entity.mob.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.util.Tuple.Pair; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; -public class BlockGlyphidSpawner extends BlockContainer { +public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { + + public IIcon[] icons = new IIcon[2]; - public BlockGlyphidSpawner(Material p_i45386_1_) { - super(p_i45386_1_); + public BlockGlyphidSpawner(Material mat) { + super(mat); + this.setCreativeTab(MainRegistry.blockTab); } @Override @@ -35,6 +42,44 @@ public class BlockGlyphidSpawner extends BlockContainer { return ModItems.egg_glyphid; } + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[meta % icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_alt"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_eggs_infested"); + } + + @Override + public int getSubCount() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) list.add(new ItemStack(item, 1, i)); + } + + private static final ArrayList, int[]>> spawnMap = new ArrayList<>(); + + static { + // big thanks to martin for the suggestion of using functions + spawnMap.add(new Pair<>(EntityGlyphid::new, MobConfig.glyphidChance)); + spawnMap.add(new Pair<>(EntityGlyphidBombardier::new, MobConfig.bombardierChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrawler::new, MobConfig.brawlerChance)); + spawnMap.add(new Pair<>(EntityGlyphidDigger::new, MobConfig.diggerChance)); + spawnMap.add(new Pair<>(EntityGlyphidBlaster::new, MobConfig.blasterChance)); + spawnMap.add(new Pair<>(EntityGlyphidBehemoth::new, MobConfig.behemothChance)); + spawnMap.add(new Pair<>(EntityGlyphidBrenda::new, MobConfig.brendaChance)); + spawnMap.add(new Pair<>(EntityGlyphidNuclear::new, MobConfig.johnsonChance)); + } + @Override public int quantityDropped(int meta, int fortune, Random rand) { return 1 + rand.nextInt(3) + fortune; @@ -46,47 +91,95 @@ public class BlockGlyphidSpawner extends BlockContainer { } public static class TileEntityGlpyhidSpawner extends TileEntity { - + + boolean initialSpawn = true; + @Override public void updateEntity() { - - if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { - - int count = 0; - - for(Object e : worldObj.loadedEntityList) { - if(e instanceof EntityGlyphid) { - count++; - if(count >= MobConfig.spawnMax) return; - } - } - float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); - List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); - - if(list.size() < 3) { - EntityGlyphid glyphid = createGlyphid(soot); - glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - this.worldObj.spawnEntityInWorld(glyphid); - } - - if(worldObj.rand.nextInt(20) == 0 && soot >= MobConfig.scoutThreshold) { - EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); - scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); - this.worldObj.spawnEntityInWorld(scout); + if(!worldObj.isRemote && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { + + if(initialSpawn || worldObj.getTotalWorldTime() % MobConfig.swarmCooldown == 0) { + + int count = 0; + + for(Object e : worldObj.loadedEntityList) { + if(e instanceof EntityGlyphid) { + count++; + if(count >= MobConfig.spawnMax) return; + } + } + + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 5, yCoord + 1, zCoord - 5, xCoord + 6, yCoord + 7, zCoord + 6)); + float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); + + if(list.size() <= 3) { + + ArrayList currentSwarm = createSwarm(soot, this.getBlockMetadata()); + + for(EntityGlyphid glyphid : currentSwarm) { + trySpawnEntity(glyphid); + } + + if(!initialSpawn && worldObj.rand.nextInt(MobConfig.scoutSwarmSpawnChance + 1) == 0 && soot >= MobConfig.scoutThreshold) { + EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); + if(this.getBlockMetadata() == 1) scout.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); + trySpawnEntity(scout); + } + + initialSpawn = false; + } } } } - public EntityGlyphid createGlyphid(float soot) { - Random rand = new Random(); - - if(soot < MobConfig.tier2Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); - if(soot < MobConfig.tier3Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); - if(soot < MobConfig.tier4Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); - if(soot < MobConfig.tier5Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); + public void trySpawnEntity(EntityGlyphid glyphid) { + double offsetX = glyphid.getRNG().nextGaussian() * 3; + double offsetZ = glyphid.getRNG().nextGaussian() * 3; - return rand.nextInt(3) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidNuclear(worldObj); + for(int i = 0; i < 7; i++) { + glyphid.setLocationAndAngles(xCoord + 0.5 + offsetX, yCoord - 2 + i, zCoord + 0.5 + offsetZ, worldObj.rand.nextFloat() * 360.0F, 0.0F); + if(glyphid.getCanSpawnHere()) { + worldObj.spawnEntityInWorld(glyphid); + return; + } + } + } + + public ArrayList createSwarm(float soot, int meta) { + + Random rand = new Random(); + ArrayList currentSpawns = new ArrayList<>(); + int swarmAmount = (int) Math.min(MobConfig.baseSwarmSize * Math.max(MobConfig.swarmScalingMult * (soot / MobConfig.sootStep), 1), 10); + int cap = 100; + + while(currentSpawns.size() <= swarmAmount && cap >= 0) { + // (dys)functional programing + for(Pair, int[]> glyphid : spawnMap) { + int[] chance = glyphid.getValue(); + int adjustedChance = (int) (chance[0] + (chance[1] - chance[1] / Math.max(((soot + 1) / 3), 1))); + if(soot >= chance[2] && rand.nextInt(100) <= adjustedChance) { + EntityGlyphid entity = glyphid.getKey().apply(worldObj); + if(meta == 1) entity.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); + currentSpawns.add(entity); + } + } + + cap--; + } + return currentSpawns; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("initialSpawn", initialSpawn); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.initialSpawn = nbt.getBoolean("initialSpawn"); } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java new file mode 100644 index 000000000..f1c96e0b7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -0,0 +1,245 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModDoor; +import com.hbm.main.MainRegistry; +import com.hbm.util.WeightedRandomObject; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockStone; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.WeightedRandom; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockKeyhole extends BlockStone { + + protected IIcon iconTop; + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon("stone"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.iconTop : this.blockIcon; + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + return new ItemStack(Blocks.stone); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.key_red && side != 0 && side != 1) { + if(world.isRemote) return true; + ForgeDirection dir = ForgeDirection.getOrientation(side); + generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4); + int b = 0; + if(side == 2) b = 1; + if(side == 5) b = 2; + if(side == 3) b = 3; + if(side == 4) b = 0; + ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red); + world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F); + player.triggerAchievement(MainRegistry.achRedRoom); + return true; + } + + return false; + } + + protected static void generateRoom(World world, int x, int y, int z) { + + int size = 9; + int height = 5; + int width = size / 2; + + //Outer Edges, top and bottom + for(int i = -width; i <= width; i++) { + world.setBlock(x + i, y, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + i, y + height - 1, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3); + } + + for(int i = 1; i <= height - 2; i++) { + //Outer edges, sides + world.setBlock(x + width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x + width, y + i, z - width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z + width, ModBlocks.brick_red, 6, 3); + world.setBlock(x - width, y + i, z - width, ModBlocks.brick_red, 6, 3); + + //Walls + for(int j = -width + 1; j <= width - 1; j++) { + world.setBlock(x + width, y + i, z + j, ModBlocks.brick_red, 4, 3); + world.setBlock(x - width, y + i, z + j, ModBlocks.brick_red, 5, 3); + world.setBlock(x + j, y + i, z + width, ModBlocks.brick_red, 2, 3); + world.setBlock(x + j, y + i, z - width, ModBlocks.brick_red, 3, 3); + } + } + + for(int i = -width + 1; i <= width - 1; i++) { + for(int j = -width + 1; j <= width - 1; j++) { + //Floor and ceiling + world.setBlock(x + i, y, z + j, ModBlocks.brick_red, 1, 3); + world.setBlock(x + i, y + height - 1, z + j, ModBlocks.brick_red, 0, 3); + + for(int k = 1; k <= height - 2; k++) { + world.setBlock(x + i, y + k, z + j, Blocks.air); + } + } + } + + //Torches + int torchDist = width - 1; + int torchOff = torchDist - 1; + world.setBlock(x + torchDist, y + 2, z + torchOff, Blocks.torch); + world.setBlock(x + torchDist, y + 2, z - torchOff, Blocks.torch); + world.setBlock(x - torchDist, y + 2, z + torchOff, Blocks.torch); + world.setBlock(x - torchDist, y + 2, z - torchOff, Blocks.torch); + world.setBlock(x + torchOff, y + 2, z + torchDist, Blocks.torch); + world.setBlock(x - torchOff, y + 2, z + torchDist, Blocks.torch); + world.setBlock(x + torchOff, y + 2, z - torchDist, Blocks.torch); + world.setBlock(x - torchOff, y + 2, z - torchDist, Blocks.torch); + + //Cobwebs + if(world.rand.nextInt(4) == 0) { + for(int i = -width + 1; i <= width - 1; i++) { + for(int j = -width + 1; j <= width - 1; j++) { + if(world.rand.nextBoolean()) world.setBlock(x + i, y + height - 2, z + j, Blocks.web); + } + } + } + + //Pillars + if(world.rand.nextInt(4) == 0) { + for(int i = 1; i <= height - 2; i++) { + world.setBlock(x + width - 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x + width - 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x - width + 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3); + world.setBlock(x - width + 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3); + } + } + + //Fire + if(world.rand.nextInt(4) == 0) { + world.setBlock(x + width - 1, y, z + width - 1, Blocks.netherrack); + world.setBlock(x + width - 1, y, z - width + 1, Blocks.netherrack); + world.setBlock(x - width + 1, y, z + width - 1, Blocks.netherrack); + world.setBlock(x - width + 1, y, z - width + 1, Blocks.netherrack); + world.setBlock(x + width - 1, y + 1, z + width - 1, Blocks.fire); + world.setBlock(x + width - 1, y + 1, z - width + 1, Blocks.fire); + world.setBlock(x - width + 1, y + 1, z + width - 1, Blocks.fire); + world.setBlock(x - width + 1, y + 1, z - width + 1, Blocks.fire); + } + + //Circle + if(world.rand.nextInt(4) == 0) { + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + if(i != 0 || j != 0) world.setBlock(x + i, y, z + j, ModBlocks.concrete_colored, 14, 3); + } + } + } + + //Lava + if(world.rand.nextInt(4) == 0) { + world.setBlock(x + width - 2, y, z + width - 1, Blocks.lava); + world.setBlock(x + width - 3, y, z + width - 1, Blocks.lava); + world.setBlock(x - width + 2, y, z + width - 1, Blocks.lava); + world.setBlock(x - width + 3, y, z + width - 1, Blocks.lava); + world.setBlock(x + width - 2, y, z - width + 1, Blocks.lava); + world.setBlock(x + width - 3, y, z - width + 1, Blocks.lava); + world.setBlock(x - width + 2, y, z - width + 1, Blocks.lava); + world.setBlock(x - width + 3, y, z - width + 1, Blocks.lava); + world.setBlock(x + width - 1, y, z + width - 2, Blocks.lava); + world.setBlock(x + width - 1, y, z + width - 3, Blocks.lava); + world.setBlock(x + width - 1, y, z - width + 2, Blocks.lava); + world.setBlock(x + width - 1, y, z - width + 3, Blocks.lava); + world.setBlock(x - width + 1, y, z + width - 2, Blocks.lava); + world.setBlock(x - width + 1, y, z + width - 3, Blocks.lava); + world.setBlock(x - width + 1, y, z - width + 2, Blocks.lava); + world.setBlock(x - width + 1, y, z - width + 3, Blocks.lava); + } + + int rand = world.rand.nextInt(20); + + if(rand == 0) { + world.setBlock(x, y + 1, z, ModBlocks.deco_loot); + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y + 1, z); + loot.addItem(new ItemStack(ModItems.trenchmaster_helmet), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_plate), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_legs), 0, 0, 0); + loot.addItem(new ItemStack(ModItems.trenchmaster_boots), 0, 0, 0); + } else { + spawnPedestalItem(world, x, y + 1, z); + } + + //Clear dropped items + List items = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x + 0.5, y, z + 0.5, x + 0.5, y + height, z + 0.5).expand(size / 2D, 0, size / 2D)); + for(EntityItem item : items) item.setDead(); + } + + public static List pedestalItems; + + public static void spawnPedestalItem(World world, int x, int y, int z) { + world.setBlock(x, y, z, ModBlocks.pedestal); + TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); + if(pedestalItems == null) initPedestal(); + pedestal.item = ((WeightedRandomObject) WeightedRandom.getRandomItem(world.rand, pedestalItems)).asStack().copy(); + } + + public static void initPedestal() { + pedestalItems = new ArrayList(); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ballistic_gauntlet), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.night_vision), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.protection_charm), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.armor_polish), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.bandaid), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.serum), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.quartz_plutonium), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.morning_glory), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.lodestone), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.spider_milk), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ink), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.heart_container), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.black_diamond), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wd40), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5)); + + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.radaway_flush), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gem_alexandrite), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.crackpipe), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.flask_infusion), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModBlocks.boxcar), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.book_of_), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gun_revolver_pip), 5)); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java index b90c1ad44..843a7c7b7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.deco.TileEntityLanternBehemoth; @@ -48,7 +49,14 @@ public class BlockLanternBehemoth extends BlockDummyable implements IToolable, I public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { if(tool != ToolType.TORCH) return false; - return IRepairable.tryRepairMultiblock(world, x, y, z, this, player); + boolean didRepair = IRepairable.tryRepairMultiblock(world, x, y, z, this, player); + + if(didRepair) { + HbmPlayerProps data = HbmPlayerProps.getData(player); + data.reputation++; + } + + return didRepair; } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockLoot.java b/src/main/java/com/hbm/blocks/generic/BlockLoot.java index db0a966f7..6ce450275 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLoot.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLoot.java @@ -48,19 +48,6 @@ public class BlockLoot extends BlockContainer { return null; } - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - - /*TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); - - if(loot != null && loot.items.isEmpty()) { - loot.addItem(new ItemStack(ModItems.gun_lever_action), 0, 0, 0); - }*/ - - //LootGenerator.lootCapStash(world, x, y, z); - } - @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockModDoor.java b/src/main/java/com/hbm/blocks/generic/BlockModDoor.java index 2d003020c..b0ccc6634 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockModDoor.java +++ b/src/main/java/com/hbm/blocks/generic/BlockModDoor.java @@ -319,6 +319,8 @@ public class BlockModDoor extends Block { return ModItems.door_metal; else if (this == ModBlocks.door_office) return ModItems.door_office; + else if (this == ModBlocks.door_red) + return ModItems.door_red; else return ModItems.door_bunker; } @@ -379,6 +381,8 @@ public class BlockModDoor extends Block { return ModItems.door_metal; else if (this == ModBlocks.door_office) return ModItems.door_office; + else if (this == ModBlocks.door_red) + return ModItems.door_red; else return ModItems.door_bunker; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java new file mode 100644 index 000000000..9f4ace30b --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -0,0 +1,148 @@ +package com.hbm.blocks.generic; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockPedestal extends BlockContainer { + + protected IIcon iconSide; + + public BlockPedestal() { + super(Material.rock); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPedestal(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":pedestal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 || side == 1 ? this.blockIcon : this.iconSide; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) return true; + if(player.isSneaking()) return false; + + TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); + + if(pedestal.item == null && player.getHeldItem() != null) { + pedestal.item = player.getHeldItem().copy(); + player.inventory.mainInventory[player.inventory.currentItem] = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } else if(pedestal.item != null && player.getHeldItem() == null) { + player.inventory.mainInventory[player.inventory.currentItem] = pedestal.item.copy(); + pedestal.item = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } + + return false; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + if(!world.isRemote) { + TileEntityPedestal entity = (TileEntityPedestal) world.getTileEntity(x, y, z); + if(entity != null && entity.item != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, entity.item.copy()); + world.spawnEntityInWorld(item); + } + } + + super.breakBlock(world, x, y, z, block, meta); + } + + public static class TileEntityPedestal extends TileEntity { + + public ItemStack item; + + @Override + public boolean canUpdate() { + return false; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.item = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + if(this.item != null) { + NBTTagCompound stack = new NBTTagCompound(); + this.item.writeToNBT(stack); + nbt.setTag("item", stack); + } + } + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java b/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java new file mode 100644 index 000000000..fefb2387d --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockRedBrick.java @@ -0,0 +1,52 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockRedBrick extends Block { + + protected IIcon iconFront; + protected IIcon iconTop; + + public BlockRedBrick(Material material) { + super(material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":brick_red"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":brick_red_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":brick_base"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == meta ? (side == 0 || side == 1 ? this.iconTop : this.iconFront) : this.blockIcon; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java index a4c146f6a..5eecc281b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java @@ -13,7 +13,6 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.inventory.RecipesCommon.OreDictStack; -import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.Tuple.Pair; @@ -151,7 +150,7 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO public static HashMap, Pair> conversions = new HashMap(); public static void registerRecipes() { - conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new ComparableStack(ModItems.bolt_dura_steel, 4)}, new MetaBlock(ModBlocks.watz_end, 1))); + conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.watz_end, 1))); conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_conductor, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_conductor, 1))); } diff --git a/src/main/java/com/hbm/blocks/generic/DecoBlock.java b/src/main/java/com/hbm/blocks/generic/DecoBlock.java index ee8dbf8be..6d946cc3f 100644 --- a/src/main/java/com/hbm/blocks/generic/DecoBlock.java +++ b/src/main/java/com/hbm/blocks/generic/DecoBlock.java @@ -3,7 +3,6 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.deco.TileEntityDecoBlock; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -28,17 +27,11 @@ public class DecoBlock extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - - if(this == ModBlocks.bomber) - return new TileEntityBomber(); - - if(this == ModBlocks.steel_scaffold || this == ModBlocks.steel_beam) - return null; - + if(this == ModBlocks.steel_scaffold || this == ModBlocks.steel_beam) return null; return new TileEntityDecoBlock(); } - public static int renderIDBeam = RenderingRegistry.getNextAvailableRenderId(); + public static int renderIDBeam = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType(){ @@ -59,158 +52,136 @@ public class DecoBlock extends BlockContainer { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - if(this == ModBlocks.bomber) - return null; - return Item.getItemFromBlock(this); - } + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(this); + } @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - if(i == 0) - { + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } } @Override - public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) - { + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_); - float f = 0.0625F; - - if(this == ModBlocks.steel_wall) - { - switch(te) - { + float f = 0.0625F; + + if(this == ModBlocks.steel_wall) { + switch(te) { case 4: - this.setBlockBounds(14*f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(14 * f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 14*f, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 14 * f, 1.0F, 1.0F, 1.0F); + break; case 5: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 2*f, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 2 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2*f); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2 * f); + break; } - } - - if(this == ModBlocks.steel_corner) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - - if(this == ModBlocks.steel_roof) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1*f, 1.0F); - } - - if(this == ModBlocks.steel_beam) - { - this.setBlockBounds(7*f, 0.0F, 7*f, 9*f, 1.0F, 9*f); - } - - if(this == ModBlocks.steel_scaffold) - { - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { + } + + if(this == ModBlocks.steel_corner) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + if(this == ModBlocks.steel_roof) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1 * f, 1.0F); + } + + if(this == ModBlocks.steel_beam) { + this.setBlockBounds(7 * f, 0.0F, 7 * f, 9 * f, 1.0F, 9 * f); + } + + if(this == ModBlocks.steel_scaffold) { + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + switch(te) { case 4: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; case 5: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; } - } - - //this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - + } + + // this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { int te = world.getBlockMetadata(x, y, z); - float f = 0.0625F; - - if(this == ModBlocks.steel_wall) - { - switch(te) - { + float f = 0.0625F; + + if(this == ModBlocks.steel_wall) { + switch(te) { case 4: - this.setBlockBounds(14*f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(14 * f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 14*f, 1.0F, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 14 * f, 1.0F, 1.0F, 1.0F); + break; case 5: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 2*f, 1.0F, 1.0F); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 2 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2*f); - break; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 2 * f); + break; } - } - - if(this == ModBlocks.steel_corner) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - - if(this == ModBlocks.steel_roof) - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1*f, 1.0F); - } - - if(this == ModBlocks.steel_beam) - { - this.setBlockBounds(7*f, 0.0F, 7*f, 9*f, 1.0F, 9*f); - } - - if(this == ModBlocks.steel_scaffold) - { - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - switch(te) - { + } + + if(this == ModBlocks.steel_corner) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + if(this == ModBlocks.steel_roof) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1 * f, 1.0F); + } + + if(this == ModBlocks.steel_beam) { + this.setBlockBounds(7 * f, 0.0F, 7 * f, 9 * f, 1.0F, 9 * f); + } + + if(this == ModBlocks.steel_scaffold) { + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + switch(te) { case 4: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 2: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; case 5: - this.setBlockBounds(2*f, 0.0F, 0.0F, 14*f, 1.0F, 1.0F); - break; + this.setBlockBounds(2 * f, 0.0F, 0.0F, 14 * f, 1.0F, 1.0F); + break; case 3: - this.setBlockBounds(0.0F, 0.0F, 2*f, 1.0F, 1.0F, 14*f); - break; + this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f); + break; } - } - + } + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java new file mode 100644 index 000000000..44f60003b --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java @@ -0,0 +1,46 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockCMAnchor extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public BlockCMAnchor() { + super(Material.iron); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":cmt_terminal_front"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cmt_terminal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 7444f30f1..41ab8cba8 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -7,12 +7,13 @@ import java.util.Random; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; -import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -28,6 +29,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -72,7 +76,19 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - } else { + } else if(player.isSneaking()){ + TileEntityBarrel mileEntity = (TileEntityBarrel) world.getTileEntity(x, y, z); + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, x, y, z, player.getHeldItem()); + + mileEntity.tank.setTankType(type); + mileEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + return true; + + }else { return false; } } @@ -183,9 +199,9 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java index ae323e1bf..1cb88488a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ITooltipProvider; import com.hbm.render.block.ct.CT; @@ -53,6 +54,6 @@ public class BlockHadronCoil extends Block implements IBlockCT, ITooltipProvider @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(I18nUtil.resolveKey("info.coil") + ": " + String.format("%,d", factor)); + list.add(I18nUtil.resolveKey("info.coil") + ": " + String.format(Locale.US, "%,d", factor)); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index d8e2f6773..03fc8c597 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Random; import com.hbm.blocks.IBlockMulti; @@ -265,7 +266,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo if(full) { title = storage.type.getDisplayName(); - text.add(String.format("%,d", storage.getStockpile()) + " / " + String.format("%,d", storage.getCapacity())); + text.add(String.format(Locale.US, "%,d", storage.getStockpile()) + " / " + String.format(Locale.US, "%,d", storage.getCapacity())); double percent = (double) storage.getStockpile() / (double) storage.getCapacity(); int charge = (int) Math.floor(percent * 10_000D); @@ -286,7 +287,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo if(type != null) { list.add(EnumChatFormatting.GOLD + type.getDisplayName()); - list.add(String.format("%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format("%,d", getCapacity(stack.getItemDamage()))); + list.add(String.format(Locale.US, "%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format(Locale.US, "%,d", getCapacity(stack.getItemDamage()))); } } diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index b7530f2d2..85dc20517 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -78,7 +77,7 @@ public class DeuteriumTower extends BlockDummyable implements ILookOverlay { text.add((tower.power < tower.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java index 5b3df59dd..69a7e5871 100644 --- a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java +++ b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java @@ -8,6 +8,7 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityFWatzCore; +import api.hbm.energy.IEnergyConnectorBlock; import api.hbm.fluid.IFluidConnectorBlock; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -26,7 +27,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class FWatzHatch extends Block implements IFluidConnectorBlock { +public class FWatzHatch extends Block implements IEnergyConnectorBlock, IFluidConnectorBlock { @SideOnly(Side.CLIENT) private IIcon iconFront; @@ -158,4 +159,9 @@ public class FWatzHatch extends Block implements IFluidConnectorBlock { public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { return type == Fluids.AMAT || type == Fluids.ASCHRAB; } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { + return true; + } } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java index 7d458daf5..c66fad6b7 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import api.hbm.block.IToolable; import com.hbm.blocks.BlockDummyable; @@ -75,7 +76,7 @@ public class HeaterElectric extends BlockDummyable implements ILookOverlay, IToo TileEntityHeaterElectric heater = (TileEntityHeaterElectric) te; List text = new ArrayList(); - text.add(String.format("%,d", heater.heatEnergy) + " TU"); + text.add(String.format(Locale.US, "%,d", heater.heatEnergy) + " TU"); text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + heater.getConsumption() + " HE/t"); text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + heater.getHeatGen() + " TU/t"); diff --git a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java index fa585caeb..ddc4c63dc 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -63,7 +64,7 @@ public class HeaterHeatex extends BlockDummyable implements ILookOverlay, IToolt TileEntityHeaterHeatex heater = (TileEntityHeaterHeatex) te; List text = new ArrayList(); - text.add(String.format("%,d", heater.heatEnergy) + " TU"); + text.add(String.format(Locale.US, "%,d", heater.heatEnergy) + " TU"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java index eb9c13e53..0ddca5005 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -97,7 +98,7 @@ public class HeaterOilburner extends BlockDummyable implements ILookOverlay, ITo FluidType type = heater.tank.getTankType(); if(type.hasTrait(FT_Flammable.class)) { int heat = (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() * heater.setting / 1000); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + String.format("%,d", heat) + " TU/t"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", heat) + " TU/t"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java new file mode 100644 index 000000000..9cc28da0c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java @@ -0,0 +1,38 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineArcWelder extends BlockDummyable { + + public MachineArcWelder(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineArcWelder(); + return new TileEntityProxyCombo().inventory().power().fluid(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 1, 1}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java index f4fabf399..1c922fab5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java @@ -24,10 +24,8 @@ import net.minecraft.world.World; public class MachineAutocrafter extends BlockContainer { - @SideOnly(Side.CLIENT) - private IIcon iconTop; - @SideOnly(Side.CLIENT) - private IIcon iconBottom; + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; public MachineAutocrafter() { super(Material.iron); @@ -67,48 +65,48 @@ public class MachineAutocrafter extends BlockContainer { } } - private final Random field_149933_a = new Random(); + private final Random rand = new Random(); @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { - ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + ISidedInventory tile = (ISidedInventory) world.getTileEntity(x, y, z); - if(tileentityfurnace != null) { + if(tile != null) { - for(int i1 = 10; i1 < tileentityfurnace.getSizeInventory(); ++i1) { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + for(int i1 = 10; i1 < tile.getSizeInventory(); ++i1) { + ItemStack itemstack = tile.getStackInSlot(i1); if(itemstack != null) { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; while(itemstack.stackSize > 0) { - int j1 = this.field_149933_a.nextInt(21) + 10; + int j1 = this.rand.nextInt(21) + 10; if(j1 > itemstack.stackSize) { j1 = itemstack.stackSize; } itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); } float f3 = 0.05F; - entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); } } } - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); + world.func_147453_f(x, y, z, block); } - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + super.breakBlock(world, x, y, z, block, meta); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index 0aeca216d..8e38ba3e7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; @@ -62,7 +61,7 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay, IToo if(saw.acceptedFuels.contains(type)) { saw.tank.setTankType(type); saw.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); return true; } } @@ -84,7 +83,7 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay, IToo TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) te; List text = new ArrayList(); - text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); + text.add(saw.tank.getTankType().getLocalizedName() + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 54aecbef7..300f9b019 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -6,13 +6,14 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -20,6 +21,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -88,7 +92,26 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); //we can do this because nobody is stopping me from doing this return true; - } else { + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineBAT9000 trialEntity = (TileEntityMachineBAT9000) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(trialEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + trialEntity.tank.setTankType(type); + trialEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + + return true; + }else { return true; } } @@ -117,8 +140,8 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineBoiler.java index 24bd24f16..2f65df9e8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBoiler.java @@ -147,30 +147,10 @@ public class MachineBoiler extends BlockContainer { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityMachineBoiler) { - - TileEntityMachineBoiler entity = (TileEntityMachineBoiler) te; - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - } - - if(te instanceof TileEntityMachineBoilerElectric) { - - TileEntityMachineBoilerElectric entity = (TileEntityMachineBoilerElectric) te; - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - } + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } else { return false; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index 247ee608d..c8d9bd49d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -71,7 +70,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); cracker.tanks[0].setTankType(type); cracker.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); return true; } @@ -130,7 +129,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + cracker.tanks[i].getTankType().getLocalizedName() + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java index ab6bf4bbc..7c8f40bc2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java @@ -1,15 +1,20 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityChimneyBrick; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineChimneyBrick extends BlockDummyable { +public class MachineChimneyBrick extends BlockDummyable implements ITooltipProvider { public MachineChimneyBrick(Material mat) { super(mat); @@ -41,4 +46,9 @@ public class MachineChimneyBrick extends BlockDummyable { this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java new file mode 100644 index 000000000..036273535 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java @@ -0,0 +1,54 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityChimneyIndustrial; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineChimneyIndustrial extends BlockDummyable implements ITooltipProvider { + + public MachineChimneyIndustrial(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityChimneyIndustrial(); + if(meta >= 6) return new TileEntityProxyCombo().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {22, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCoal.java b/src/main/java/com/hbm/blocks/machine/MachineCoal.java index 5a56ecf5a..4b28a5e94 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCoal.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCoal.java @@ -1,257 +1,21 @@ package com.hbm.blocks.machine; -import java.util.Random; - -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineCoal; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +@Deprecated public class MachineCoal extends BlockContainer { - private final Random field_149933_a = new Random(); - private final boolean isActive; - private static boolean keepInventory; - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - public MachineCoal(boolean blockState) { super(Material.iron); - isActive = blockState; } - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_coal_front_on" : ":machine_coal_front_off")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_coal_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_coal_off); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - this.setDefaultDirection(world, x, y, z); - } - - private void setDefaultDirection(World world, int x, int y, int z) { - if(!world.isRemote) - { - Block block1 = world.getBlock(x, y, z - 1); - Block block2 = world.getBlock(x, y, z + 1); - Block block3 = world.getBlock(x - 1, y, z); - Block block4 = world.getBlock(x + 1, y, z); - - byte b0 = 3; - - if(block1.func_149730_j() && !block2.func_149730_j()) - { - b0 = 3; - } - if(block2.func_149730_j() && !block1.func_149730_j()) - { - b0 = 2; - } - if(block3.func_149730_j() && !block4.func_149730_j()) - { - b0 = 5; - } - if(block4.func_149730_j() && !block3.func_149730_j()) - { - b0 = 4; - } - - world.setBlockMetadataWithNotify(x, y, z, b0, 2); - } - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - - if(itemStack.hasDisplayName()) - { - ((TileEntityMachineCoal)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineCoal entity = (TileEntityMachineCoal) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityMachineCoal(); } - - public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) { - int i = world.getBlockMetadata(x, y, z); - TileEntity entity = world.getTileEntity(x, y, z); - keepInventory = true; - - if(isProcessing) - { - world.setBlock(x, y, z, ModBlocks.machine_coal_on); - }else{ - world.setBlock(x, y, z, ModBlocks.machine_coal_off); - } - - keepInventory = false; - world.setBlockMetadataWithNotify(x, y, z, i, 2); - - if(entity != null) { - entity.validate(); - world.setTileEntity(x, y, z, entity); - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineCoal tileentityfurnace = (TileEntityMachineCoal)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand) - { - if (isActive) - { - int l = p_149734_1_.getBlockMetadata(x, y, z); - float f = x + 0.5F; - float f1 = y + 0.0F + rand.nextFloat() * 6.0F / 16.0F; - float f2 = z + 0.5F; - float f3 = 0.52F; - float f4 = rand.nextFloat() * 0.6F - 0.3F; - - if (l == 4) - { - p_149734_1_.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 5) - { - p_149734_1_.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 2) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - } - else if (l == 3) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - } - } - } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index e498acde6..8bbe97b99 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; @@ -39,7 +38,7 @@ public class MachineCondenser extends BlockContainer implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < condenser.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET +condenser.tanks[i].getTankType().getLocalizedName() + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java new file mode 100644 index 000000000..842c084b7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityCondenserPowered; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineCondenserPowered extends BlockDummyable implements ILookOverlay { + + public MachineCondenserPowered(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int meta) { + if(meta >= 12) return new TileEntityCondenserPowered(); + if(meta >= 6) return new TileEntityProxyCombo().power().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 1, 1, 3, 3}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x = x + dir.offsetX * o; + z = z + dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + rot.offsetX * 3, y + 1, z + rot.offsetZ * 3); + this.makeExtra(world, x - rot.offsetX * 3, y + 1, z - rot.offsetZ * 3); + this.makeExtra(world, x + dir.offsetX + rot.offsetX, y + 1, z + dir.offsetZ + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX - rot.offsetX, y + 1, z + dir.offsetZ - rot.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y + 1, z - dir.offsetZ + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX - rot.offsetX, y + 1, z - dir.offsetZ - rot.offsetZ); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityCondenserPowered)) return; + + TileEntityCondenserPowered tower = (TileEntityCondenserPowered) te; + List text = new ArrayList(); + + text.add(BobMathUtil.getShortNumber(tower.power) + "HE / " + BobMathUtil.getShortNumber(tower.maxPower) + "HE"); + + for(int i = 0; i < tower.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java new file mode 100644 index 000000000..1bddf1a9d --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java @@ -0,0 +1,173 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.machine.ItemStamp; +import com.hbm.tileentity.machine.TileEntityConveyorPress; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import api.hbm.block.IToolable; +import api.hbm.conveyor.IConveyorBelt; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineConveyorPress extends BlockDummyable implements IConveyorBelt, ILookOverlay, IToolable, ITooltipProvider { + + public MachineConveyorPress(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityConveyorPress(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return false; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemStamp && press.slots[0] == null) { + press.slots[0] = player.getHeldItem().copy(); + press.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + press.markChanged(); + world.markBlockForUpdate(x, y, z); + return true; + } + } + + return false; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.SCREWDRIVER) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return false; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + + if(press.slots[0] == null) return false; + + if(!player.inventory.addItemStackToInventory(press.slots[0].copy())) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, press.slots[0].copy()); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + + press.slots[0] = null; + press.markChanged(); + + return true; + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed); + Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord)); + double len = motion.lengthVector(); + Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); + return ret; + } + + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) { + int meta = world.getBlockMetadata(x, y - 1, z) - offset; + return ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + double posX = x + 0.5; + double posZ = z + 0.5; + if(dir.offsetX != 0) posX = itemPos.xCoord; + if(dir.offsetZ != 0) posZ = itemPos.zCoord; + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } + + @Override + public boolean canItemStay(World world, int x, int y, int z, Vec3 itemPos) { + return world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y - 1, z) >= 12; + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + List text = new ArrayList(); + + text.add(BobMathUtil.getShortNumber(press.power) + "HE / " + BobMathUtil.getShortNumber(press.maxPower) + "HE"); + text.add("Installed stamp: " + ((press.syncStack == null || press.syncStack.getItem() == null) ? (EnumChatFormatting.RED + "NONE") : press.syncStack.getDisplayName())); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java index 285f2f838..6ace99312 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java @@ -25,7 +25,7 @@ public class MachineCyclotron extends BlockDummyable { return new TileEntityMachineCyclotron(); if(meta >= 6) - return new TileEntityProxyCombo(false, true, true); + return new TileEntityProxyCombo().inventory().power().fluid(); return null; } @@ -93,12 +93,16 @@ public class MachineCyclotron extends BlockDummyable { super.fillSpace(world, x, y, z, dir, o); this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o); this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o - 1); this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o); this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o - 1); this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o + 2); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 2); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o + 2); this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o - 2); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 2); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o - 2); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index a8e0dc586..08c921a35 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; @@ -67,7 +66,7 @@ public class MachineDeuteriumExtractor extends BlockContainer implements ILookOv text.add((extractor.power < extractor.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); for(int i = 0; i < extractor.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + extractor.tanks[i].getTankType().getLocalizedName() + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java new file mode 100644 index 000000000..8efe19ae1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineExposureChamber extends BlockDummyable { + + public MachineExposureChamber(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineExposureChamber(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 2, 2, 2, 2}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, 0, 0, 0, -3, 8}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 2, z, new int[] {0, 0, 1, -1, -3, 6}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 2, z, new int[] {0, 0, -1, 1, -3, 6}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, 1, -1, 0, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, -1, 1, 0, 1}, this, dir); + + this.makeExtra(world, x + rot.offsetX * 7 + dir.offsetX, y, z + rot.offsetZ * 7 + dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 7 - dir.offsetX, y, z + rot.offsetZ * 7 - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8 + dir.offsetX, y, z + rot.offsetZ * 8 + dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8 - dir.offsetX, y, z + rot.offsetZ * 8 - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8, y, z + rot.offsetZ * 8); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, 0, 0, 0, -3, 8}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {0, 0, 1, -1, -3, 6}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {0, 0, -1, 1, -3, 6}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, 1, -1, 0, 1}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, -1, 1, 0, 1}, x, y, z, dir)) return false; + + return true; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return super.standardOpenBehavior(world, x, y, z, player, 0); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index e24b46847..32274741c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -7,15 +7,16 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.entity.projectile.EntityBombletZeta; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -28,6 +29,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.Explosion; import net.minecraft.world.World; @@ -62,7 +66,8 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP if(world.isRemote) { return true; - } else if(!player.isSneaking()) { + } + else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -75,9 +80,30 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); } return true; - } else { + } + else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tank != null) { + if(tank.hasExploded) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + tank.tank.setTankType(type); + tank.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + return true; + }else { return true; } + } @Override @@ -99,7 +125,7 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java index 9383b3565..7c6281110 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFrackingTower; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -113,7 +112,7 @@ public class MachineFrackingTower extends BlockDummyable implements IPersistentI for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index af24b1d28..5c60f53df 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -74,7 +73,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); frac.tanks[0].setTankType(type); frac.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } return true; @@ -116,7 +115,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + cracker.tanks[i].getTankType().getLocalizedName() + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFunnel.java b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java new file mode 100644 index 000000000..7506e2218 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineFunnel.java @@ -0,0 +1,138 @@ +package com.hbm.blocks.machine; + +import java.util.List; +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.rail.IRenderBlock; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class MachineFunnel extends BlockContainer implements ITooltipProvider, IRenderBlock { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public MachineFunnel() { + super(Material.iron); + } + + @Override public int getRenderType() { return renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_funnel_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMachineFunnel(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof TileEntityMachineFunnel) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } + + private final Random rand = new Random(); + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + ISidedInventory tile = (ISidedInventory) world.getTileEntity(x, y, z); + if(tile != null) { + for(int i1 = 0; i1 < tile.getSizeInventory(); ++i1) { + ItemStack itemstack = tile.getStackInSlot(i1); + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + if(j1 > itemstack.stackSize) j1 = itemstack.stackSize; + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + world.func_147453_f(x, y, z, block); + } + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslatef(0F, -0.5F, 0F); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Top", block.getIcon(1, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Bottom", block.getIcon(0, 0), tessellator, 0, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.funnel, "Side", block.getIcon(2, 0), tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index a8779573e..66c2396d0 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -69,7 +69,7 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { boiler.tanks[0].setTankType(type); boiler.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } return true; } @@ -175,9 +175,9 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(boiler.hasExploded) return; List text = new ArrayList(); - text.add(String.format("%,d", boiler.heat) + "TU"); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[0].getFill()) + " / " + String.format("%,d", boiler.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[1].getFill()) + " / " + String.format("%,d", boiler.tanks[1].getMaxFill()) + "mB"); + text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + boiler.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + boiler.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java index 00b06f50d..7869a74bd 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java @@ -64,7 +64,7 @@ public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILook if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { boiler.tanks[0].setTankType(type); boiler.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } return true; } @@ -112,9 +112,9 @@ public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILook TileEntityHeatBoilerIndustrial boiler = (TileEntityHeatBoilerIndustrial) te; List text = new ArrayList(); - text.add(String.format("%,d", boiler.heat) + "TU"); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[0].getFill()) + " / " + String.format("%,d", boiler.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[1].getFill()) + " / " + String.format("%,d", boiler.tanks[1].getMaxFill()) + "mB"); + text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + boiler.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + boiler.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index 6f31472b9..b6a628c78 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -16,6 +16,9 @@ import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -82,6 +85,8 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); heatex.input.setTankType(type); heatex.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + return true; } @@ -107,11 +112,11 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { TileEntityMachineHephaestus heatex = (TileEntityMachineHephaestus) te; List text = new ArrayList(); - text.add(String.format("%,d", heatex.bufferedHeat) + " TU"); + text.add(String.format(Locale.US, "%,d", heatex.bufferedHeat) + " TU"); for(int i = 0; i < heatex.getAllTanks().length; i++) { FluidTank tank = heatex.getAllTanks()[i]; - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tank.getTankType().getLocalizedName() + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java index 8c00aeffb..5f3de0132 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java @@ -72,6 +72,8 @@ public class MachineIGenerator extends BlockDummyable { public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); this.makeExtra(world, x + dir.offsetX * (o - 3), y, z + dir.offsetZ * (o - 3)); + this.makeExtra(world, x + dir.offsetX * (o - 2), y, z + dir.offsetZ * (o - 2)); + this.makeExtra(world, x + dir.offsetX * (o - 1), y, z + dir.offsetZ * (o - 1)); this.makeExtra(world, x + dir.offsetX * (o + 2), y, z + dir.offsetZ * (o + 2)); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java index bdd36a179..65fc71706 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java @@ -12,7 +12,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -87,7 +86,7 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index b1ddbb028..445956358 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -5,13 +5,14 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -19,6 +20,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -61,7 +65,26 @@ public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvi FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; - } else { + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineOrbus kyleEntity = (TileEntityMachineOrbus) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(kyleEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + kyleEntity.tank.setTankType(type); + kyleEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + + return true; + } else { return true; } } @@ -91,8 +114,8 @@ public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvi @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePump.java b/src/main/java/com/hbm/blocks/machine/MachinePump.java new file mode 100644 index 000000000..1d2198029 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachinePump.java @@ -0,0 +1,108 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachinePumpBase; +import com.hbm.tileentity.machine.TileEntityMachinePumpElectric; +import com.hbm.tileentity.machine.TileEntityMachinePumpSteam; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachinePump extends BlockDummyable implements ITooltipProvider, ILookOverlay { + + public MachinePump() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) { + if(this == ModBlocks.pump_steam) return new TileEntityMachinePumpSteam(); + if(this == ModBlocks.pump_electric) return new TileEntityMachinePumpElectric(); + } + if(meta >= 6) { + if(this == ModBlocks.pump_steam) return new TileEntityProxyCombo().fluid(); + if(this == ModBlocks.pump_electric) return new TileEntityProxyCombo().fluid().power(); + } + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {3, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ - 1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachinePumpBase)) return; + + List text = new ArrayList(); + + if(te instanceof TileEntityMachinePumpSteam) { + TileEntityMachinePumpSteam pump = (TileEntityMachinePumpSteam) te; + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + pump.steam.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.steam.getFill()) + " / " + String.format(Locale.US, "%,d", pump.steam.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.lps.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.lps.getFill()) + " / " + String.format(Locale.US, "%,d", pump.lps.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.water.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); + } + + if(te instanceof TileEntityMachinePumpElectric) { + TileEntityMachinePumpElectric pump = (TileEntityMachinePumpElectric) te; + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", pump.power) + " / " + String.format(Locale.US, "%,d", pump.maxPower) + "HE"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.water.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); + } + + if(pos[1] > 70) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! ALTITUDE ! ! !"); + } + + if(!((TileEntityMachinePumpBase) te).onGround) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! NO VALID GROUND ! ! !"); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java index 89169d863..56f05147d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -100,7 +99,7 @@ public class MachinePumpjack extends BlockDummyable implements IPersistentInfoPr for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadar.java b/src/main/java/com/hbm/blocks/machine/MachineRadar.java index 9a7ccb8f6..a06effd14 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRadar.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRadar.java @@ -1,8 +1,7 @@ package com.hbm.blocks.machine; -import com.hbm.config.WeaponConfig; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineRadar; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.BlockContainer; @@ -10,6 +9,8 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -21,7 +22,7 @@ public class MachineRadar extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineRadar(); + return new TileEntityMachineRadarNT(); } @Override @@ -42,41 +43,35 @@ public class MachineRadar extends BlockContainer { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(y < WeaponConfig.radarAltitude) { + if(y < TileEntityMachineRadarNT.radarAltitude) { if(world.isRemote) - player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.")); + player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); return true; } - if(world.isRemote) - { + if(world.isRemote && !player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - } else if(!player.isSneaking()) - { - TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } + } else if(!player.isSneaking()) { return true; } else { return false; } } - public boolean canProvidePower() - { - return true; - } + @Override + public boolean canProvidePower() { + return true; + } - public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) - { - TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); - return entity.getRedPower(); - } + @Override + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) { + TileEntityMachineRadarNT entity = (TileEntityMachineRadarNT) world.getTileEntity(x, y, z); + return entity.getRedPower(); + } - public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) - { - return isProvidingWeakPower(world, x, y, z, m); - } + @Override + public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) { + return isProvidingWeakPower(world, x, y, z, m); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java b/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java new file mode 100644 index 000000000..6f1df1a14 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java @@ -0,0 +1,56 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineRadarScreen extends BlockDummyable { + + public MachineRadarScreen(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return meta >= 12 ? new TileEntityMachineRadarScreen() : null; + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) return false; + + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(screen.linked && world.getTileEntity(screen.refX, screen.refY, screen.refZ) instanceof TileEntityMachineRadarNT) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, screen.refX, screen.refY, screen.refZ); + } + + return false; + } else if(!player.isSneaking()) { + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java index 10fab37d0..4a720413d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java @@ -14,7 +14,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -116,7 +115,7 @@ public class MachineRefinery extends BlockDummyable implements IPersistentInfoPr for(int i = 0; i < 5; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java index 7277b011d..b3e1c8cd2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -72,8 +73,8 @@ public class MachineSteamEngine extends BlockDummyable implements ILookOverlay, TileEntitySteamEngine engine = (TileEntitySteamEngine) te; List text = new ArrayList(); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[0].getFill()) + " / " + String.format("%,d", engine.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[1].getFill()) + " / " + String.format("%,d", engine.tanks[1].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + engine.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", engine.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + engine.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", engine.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java index 3b5ccd587..f702e0b4f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; @@ -61,7 +62,7 @@ public class MachineTeleporter extends BlockContainer implements ILookOverlay { if(tele.targetY == -1) { text.add(EnumChatFormatting.RED + "No destination set!"); } else { - text.add((tele.power >= tele.consumption ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + String.format("%,d", tele.power) + " / " + String.format("%,d", tele.maxPower)); + text.add((tele.power >= tele.consumption ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + String.format(Locale.US, "%,d", tele.power) + " / " + String.format(Locale.US, "%,d", tele.maxPower)); text.add("Destination: " + tele.targetX + " / " + tele.targetY + " / " + tele.targetZ + " (D: " + tele.targetDim + ")"); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index b15c2dc74..4279cc746 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -78,7 +77,7 @@ public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index f13cc49df..6b9bc5947 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -75,7 +74,7 @@ public class MachineTowerSmall extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java index b89931cf7..a17cf0fcc 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java @@ -6,11 +6,9 @@ import com.hbm.util.I18nUtil; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; -import com.hbm.inventory.fluid.Fluids; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -87,17 +85,16 @@ public class MachineTurbineGas extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); if(hitCheck(dir, pos[0], pos[1], pos[2], -1, -1, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, -1, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase(Locale.US))); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase(Locale.US))); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(Fluids.SMOKE.getUnlocalizedName())); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[0].getTankType().getLocalizedName()); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[1].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], -1, 4, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, 4, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[2].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[2].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, 5, 1, x, y, z)) { - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[3].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + turbine.tanks[3].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, -4, 1, x, y, z)) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java new file mode 100644 index 000000000..246fb20b0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java @@ -0,0 +1,58 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineWoodBurner extends BlockDummyable implements ITooltipProvider { + + public MachineWoodBurner(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineWoodBurner(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return new TileEntityProxyCombo().inventory(); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y, z - dir.offsetZ + rot.offsetZ); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java index 099748d19..c71865430 100644 --- a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java +++ b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java @@ -4,12 +4,16 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.hbm.blocks.BlockFallingNT; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -17,9 +21,10 @@ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockFalling; import net.minecraft.block.material.Material; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -31,8 +36,9 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; -public class NTMAnvil extends BlockFalling implements ITooltipProvider, IGUIProvider { +public class NTMAnvil extends BlockFallingNT implements ITooltipProvider, IGUIProvider { public final int tier; @@ -180,4 +186,29 @@ public class NTMAnvil extends BlockFalling implements ITooltipProvider, IGUIProv public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIAnvil(player.inventory, ((NTMAnvil)world.getBlock(x, y, z)).tier); } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldOverrideRenderer() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void overrideRenderer(EntityFallingBlockNT falling, RenderBlocks renderBlocks, Tessellator tessellator) { + + float rotation = 0; + if(falling.getMeta() == 2) rotation = 90F / 180F * (float) Math.PI; + if(falling.getMeta() == 3) rotation = 270F / 180F * (float) Math.PI; + if(falling.getMeta() == 4) rotation = 180F / 180F * (float)Math.PI; + + tessellator.addTranslation(0F, -0.5F, 0F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Top", getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Bottom", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Front", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Back", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Left", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Right", getIcon(0, 0), tessellator, rotation, true); + tessellator.addTranslation(0F, 0.5F, 0F); + } } diff --git a/src/main/java/com/hbm/blocks/machine/ReactorCore.java b/src/main/java/com/hbm/blocks/machine/ReactorCore.java index 2475ec52f..847ece06f 100644 --- a/src/main/java/com/hbm/blocks/machine/ReactorCore.java +++ b/src/main/java/com/hbm/blocks/machine/ReactorCore.java @@ -2,13 +2,8 @@ package com.hbm.blocks.machine; import java.util.Random; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -23,72 +18,6 @@ public class ReactorCore extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineReactorLarge(); + return null; } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineReactorLarge tileentityfurnace = (TileEntityMachineReactorLarge)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - /*@Override - public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, int p_149723_3_, int p_149723_4_, Explosion p_149723_5_) - { - if (!p_149723_1_.isRemote) - { - TileEntityMachineReactorLarge entity = (TileEntityMachineReactorLarge) p_149723_1_.getTileEntity(p_149723_2_, p_149723_3_, p_149723_4_); - if(entity != null && entity.isLoaded) - { - entity.explode(); - } - } - }*/ - } diff --git a/src/main/java/com/hbm/blocks/machine/Watz.java b/src/main/java/com/hbm/blocks/machine/Watz.java index 4f195b722..48dfd23e2 100644 --- a/src/main/java/com/hbm/blocks/machine/Watz.java +++ b/src/main/java/com/hbm/blocks/machine/Watz.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityWatz; @@ -93,7 +94,7 @@ public class Watz extends BlockDummyable { if(i >= 12 && drop) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_end, 48))); - for(int j = 0; j < 3; j++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.bolt_dura_steel, 64))); + for(int j = 0; j < 3; j++) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, Mats.MAT_DURA.make(ModItems.bolt))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_element, 36))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.watz_cooler, 26))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_watz_core, 1))); diff --git a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java new file mode 100644 index 000000000..54921d0c7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java @@ -0,0 +1,143 @@ +package com.hbm.blocks.network; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.RenderBlockMultipass; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.TileEntityCableBaseNT; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, ILookOverlay, ITooltipProvider { + + @SideOnly(Side.CLIENT) protected IIcon overlayGauge; + + public BlockCableGauge() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCableGauge(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(RefStrings.MODID + ":deco_red_copper"); + this.overlayGauge = reg.registerIcon(RefStrings.MODID + ":cable_gauge"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + if(RenderBlockMultipass.currentPass == 0) { + return blockIcon; + } + + return side == world.getBlockMetadata(x, y, z) ? this.overlayGauge : this.blockIcon; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public int getPasses() { + return 2; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityCableGauge)) + return; + + TileEntityCableGauge duct = (TileEntityCableGauge) te; + + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(duct.deltaTick) + "HE/t"); + text.add(BobMathUtil.getShortNumber(duct.deltaLastSecond) + "HE/s"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public int getRenderType(){ + return IBlockMultiPass.getRenderType(); + } + + public static class TileEntityCableGauge extends TileEntityCableBaseNT implements INBTPacketReceiver { + + private BigInteger lastMeasurement = BigInteger.valueOf(10); + private long deltaTick = 0; + private long deltaSecond = 0; + private long deltaLastSecond = 0; + + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote) { + + if(network != null) { + BigInteger total = network.getTotalTransfer(); + BigInteger delta = total.subtract(this.lastMeasurement); + this.lastMeasurement = total; + + try { + this.deltaTick = delta.longValueExact(); + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.deltaLastSecond = this.deltaSecond; + this.deltaSecond = 0; + } + this.deltaSecond += deltaTick; + + } catch(Exception ex) { } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("deltaT", deltaTick); + data.setLong("deltaS", deltaLastSecond); + INBTPacketReceiver.networkPack(this, data, 25); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.deltaTick = Math.max(nbt.getLong("deltaT"), 0); + this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java b/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java new file mode 100644 index 000000000..0041da992 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java @@ -0,0 +1,12 @@ +package com.hbm.blocks.network; + +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class BlockConveyorExpress extends BlockConveyorBendable { + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + return super.getTravelLocation(world, x, y, z, itemPos, speed * 3); + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java index b14fa899e..88e054bfd 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java @@ -97,7 +97,7 @@ public class BlockFluidDuct extends BlockContainer implements ILookOverlay { TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java index 08031fe84..3674da7d1 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java @@ -82,7 +82,7 @@ public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPa TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/DroneCrate.java b/src/main/java/com/hbm/blocks/network/DroneCrate.java new file mode 100644 index 000000000..94641ed8f --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneCrate.java @@ -0,0 +1,133 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityDroneCrate; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class DroneCrate extends BlockContainer implements ILookOverlay, ITooltipProvider { + + private static Random rand = new Random(); + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public DroneCrate() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneCrate(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(RefStrings.MODID + ":drone_crate_side"); + this.iconTop = reg.registerIcon(RefStrings.MODID + ":drone_crate_top"); + this.iconBottom = reg.registerIcon(RefStrings.MODID + ":drone_crate_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.drone_linker) return false; + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntityDroneCrate tileentityfurnace = (TileEntityDroneCrate) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntityDroneCrate tile = (TileEntityDroneCrate) world.getTileEntity(x, y, z); + List text = new ArrayList(); + + if(tile.nextY != -1) { + text.add("Next waypoint: " + tile.nextX + " / " + tile.nextY + " / " + tile.nextZ); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/DroneDock.java b/src/main/java/com/hbm/blocks/network/DroneDock.java new file mode 100644 index 000000000..592f5a194 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneDock.java @@ -0,0 +1,64 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityDroneDock; +import com.hbm.tileentity.network.TileEntityDroneProvider; +import com.hbm.tileentity.network.TileEntityDroneRequester; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class DroneDock extends BlockContainer { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public DroneDock() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(this == ModBlocks.drone_dock) return new TileEntityDroneDock(); + if(this == ModBlocks.drone_crate_provider) return new TileEntityDroneProvider(); + if(this == ModBlocks.drone_crate_requester) return new TileEntityDroneRequester(); + + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(this.textureName + "_side"); + this.iconTop = reg.registerIcon(this.textureName + "_top"); + this.iconBottom = reg.registerIcon(this.textureName + "_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/DroneWaypoint.java b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java new file mode 100644 index 000000000..28e9e338b --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java @@ -0,0 +1,141 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.ModItems; +import com.hbm.tileentity.network.TileEntityDroneWaypoint; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class DroneWaypoint extends BlockContainer implements ILookOverlay, ITooltipProvider { + + public DroneWaypoint() { + super(Material.circuits); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneWaypoint(); + } + + @Override + public int getRenderType() { + return RadioTorchBase.renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return null; + } + + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 vec0, Vec3 vec1) { + + int meta = world.getBlockMetadata(x, y, z) & 7; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + this.setBlockBounds( + dir.offsetX == 1 ? 0F : 0.375F, + dir.offsetY == 1 ? 0F : 0.375F, + dir.offsetZ == 1 ? 0F : 0.375F, + dir.offsetX == -1 ? 1F : 0.625F, + dir.offsetY == -1 ? 1F : 0.625F, + dir.offsetZ == -1 ? 1F : 0.625F + ); + + return super.collisionRayTrace(world, x, y, z, vec0, vec1); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(meta); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(!b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) && (!b.renderAsNormalBlock() || b.isAir(world, x, y, z))) { + this.dropBlockAsItem(world, x, y, z, meta, 0); + world.setBlockToAir(x, y, z); + } + } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.drone_linker) return false; + + if(world.isRemote) return true; + + TileEntityDroneWaypoint tile = (TileEntityDroneWaypoint) world.getTileEntity(x, y, z); + tile.addHeight(player.isSneaking() ? - 1 : 1); + return true; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntityDroneWaypoint tile = (TileEntityDroneWaypoint) world.getTileEntity(x, y, z); + List text = new ArrayList(); + + text.add("Waypoint distance: " + tile.height); + + if(tile.nextY != -1) { + text.add("Next waypoint: " + tile.nextX + " / " + tile.nextY + " / " + tile.nextZ); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java b/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java new file mode 100644 index 000000000..a02b63a3c --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java @@ -0,0 +1,100 @@ +package com.hbm.blocks.network; + +import com.hbm.tileentity.network.TileEntityDroneWaypointRequest; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class DroneWaypointRequest extends BlockContainer { + + public DroneWaypointRequest() { + super(Material.circuits); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneWaypointRequest(); + } + + @Override + public int getRenderType() { + return RadioTorchBase.renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return null; + } + + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 vec0, Vec3 vec1) { + + int meta = world.getBlockMetadata(x, y, z) & 7; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + this.setBlockBounds( + dir.offsetX == 1 ? 0F : 0.375F, + dir.offsetY == 1 ? 0F : 0.375F, + dir.offsetZ == 1 ? 0F : 0.375F, + dir.offsetX == -1 ? 1F : 0.625F, + dir.offsetY == -1 ? 1F : 0.625F, + dir.offsetZ == -1 ? 1F : 0.625F + ); + + return super.collisionRayTrace(world, x, y, z, vec0, vec1); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(meta); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(!b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) && (!b.renderAsNormalBlock() || b.isAir(world, x, y, z))) { + this.dropBlockAsItem(world, x, y, z, meta, 0); + world.setBlockToAir(x, y, z); + } + } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index 75d01ab6f..f05d3733a 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -305,7 +305,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java index 3426cf93e..42a24fe85 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java @@ -78,9 +78,9 @@ public class FluidDuctBoxExhaust extends FluidDuctBox { @Override public void printHook(Pre event, World world, int x, int y, int z) { List text = new ArrayList(); - text.add(I18nUtil.resolveKey(Fluids.SMOKE.getUnlocalizedName())); - text.add(I18nUtil.resolveKey(Fluids.SMOKE_LEADED.getUnlocalizedName())); - text.add(I18nUtil.resolveKey(Fluids.SMOKE_POISON.getUnlocalizedName())); + text.add(Fluids.SMOKE.getLocalizedName()); + text.add(Fluids.SMOKE_LEADED.getLocalizedName()); + text.add(Fluids.SMOKE_POISON.getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 948befc56..9c17a38c0 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -3,6 +3,7 @@ package com.hbm.blocks.network; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ILookOverlay; @@ -95,9 +96,9 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL TileEntityPipeGauge duct = (TileEntityPipeGauge) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); - text.add(String.format("%,d", duct.deltaTick) + " mB/t"); - text.add(String.format("%,d", duct.deltaLastSecond) + " mB/s"); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); + text.add(String.format(Locale.US, "%,d", duct.deltaTick) + " mB/t"); + text.add(String.format(Locale.US, "%,d", duct.deltaLastSecond) + " mB/s"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } @@ -155,19 +156,19 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL return "ntm_fluid_gauge"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTransfer(Context context, Arguments args) { return new Object[] {deltaTick, deltaSecond}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {getType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {deltaTick, deltaSecond, getType().getName(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java index a9415a219..6777195d8 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java @@ -160,7 +160,7 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 485fbc06b..e58d7ab02 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -7,6 +7,7 @@ import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; @@ -18,11 +19,13 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -70,7 +73,42 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo public int damageDropped(int meta) { return rectify(meta); } + /* + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); // Get the block at the specified coordinates + int blockMetadata = world.getBlockMetadata(x, y, z); // Get the metadata of the block at the specified coordinates + TileEntity tileEntity = world.getTileEntity(x, y, z); // Get the tile entity at the specified coordinates + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + + // Get the metadata (FluidType) from the pipe + FluidType fluidType = pipe.getType(); + int metadata = fluidType.getID(); + + // Create an ItemStack with the item and metadata + ItemStack itemStack = new ItemStack(ModItems.fluid_duct, 1, metadata); + System.out.println(metadata); + System.out.println(itemStack); + + return new ItemStack(ModItems.fluid_duct, 1, metadata).getItem(); + } + */ + + @Override + @SideOnly(Side.CLIENT) + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + FluidType fluidType = pipe.getType(); + int retadata = fluidType.getID(); //florf + + return new ItemStack(ModItems.fluid_duct, 1, retadata); + } + return super.getPickBlock(target, world, x, y, z, player); + } @Override public int getRenderType() { return TestPipe.renderID; @@ -201,7 +239,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidSwitch.java b/src/main/java/com/hbm/blocks/network/FluidSwitch.java index c564286c0..f4fc8c82d 100644 --- a/src/main/java/com/hbm/blocks/network/FluidSwitch.java +++ b/src/main/java/com/hbm/blocks/network/FluidSwitch.java @@ -82,7 +82,7 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay { TileEntityFluidValve duct = (TileEntityFluidValve) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java index be6c879e5..5a0b3d5b3 100644 --- a/src/main/java/com/hbm/blocks/network/FluidValve.java +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -82,7 +82,7 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay { TileEntityFluidValve duct = (TileEntityFluidValve) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/RadioTelex.java b/src/main/java/com/hbm/blocks/network/RadioTelex.java new file mode 100644 index 000000000..8b7614b51 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTelex.java @@ -0,0 +1,46 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityRadioTelex; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class RadioTelex extends BlockDummyable { + + public RadioTelex() { + super(Material.wood); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityRadioTelex(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + return true; + } else { + return !player.isSneaking(); + } + } +} diff --git a/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java new file mode 100644 index 000000000..9cf026cd1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/BlockRailWaypointSystem.java @@ -0,0 +1,201 @@ +package com.hbm.blocks.rail; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.BobMathUtil; +import com.hbm.util.ChatBuilder; +import com.hbm.util.ParticleUtil; +import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.material.Material; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public abstract class BlockRailWaypointSystem extends BlockDummyable implements IRailNTM { + + public List railDefs = new ArrayList(); + + public BlockRailWaypointSystem(Material mat) { + super(mat); + } + + /** Whether the train at position FROM can move towards the waypoint TO along the supplied railDef, also supplies world and core position */ + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + return true; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ); + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + Vec3 trainPos = Vec3.createVectorHelper(trainX, trainY, trainZ); + + //convert nodes to a list of links with in-world positions + Vec3 train = Vec3.createVectorHelper(trainX, trainY, trainZ); + Vec3 core = Vec3.createVectorHelper(cX + 0.5, cY, cZ + 0.5); + List>> links = new ArrayList(); + + for(RailDef def : railDefs) { + List> linkList = new ArrayList(); + links.add(linkList); + + for(int i = 0; i < def.nodes.size() - 1; i++) { + Vec3 vec1 = getPositionFromNode(world, x, y, z, core, def.nodes.get(i), meta); + Vec3 vec2 = getPositionFromNode(world, x, y, z, core, def.nodes.get(i + 1), meta); + ParticleUtil.spawnDroneLine(world, vec1.xCoord, vec1.yCoord, vec1.zCoord, vec2.xCoord - vec1.xCoord, vec2.yCoord - vec1.yCoord, vec2.zCoord - vec1.zCoord, 0xff0000); + linkList.add(new Pair(new Vec3[] {vec1, vec2}, def)); + } + } + + //find closest node + Pair closest = null; + Vec3 startingPos = null; + /** closest chain of link definitions */ + List> cDef = null; + double angularDiff = 0; + double linkAngle = 0; + double dist = Double.MAX_VALUE; + /** direction */ + boolean d = true; + + for(List> chain : links) { + for(Pair link : chain) { + Vec3[] array = link.getKey(); + Vec3 point = getClosestPointOnLink(array[0], array[1], train); + + if(point != null) { + Vec3 delta = point.subtract(train); + double length = delta.lengthVector(); + + if(!canCross(world, cX, cY, cZ, trainPos, point, link.getValue())) continue; + + linkAngle = EntityRailCarBase.generateYaw(array[1], array[0]); + angularDiff = BobMathUtil.angularDifference(linkAngle, -moveAngle); + if(angularDiff < -180) { angularDiff += 180; linkAngle += 180; d = false; } + if(angularDiff > 0) { angularDiff -= 180; linkAngle -= 180; d = false; } + + if(length < dist) { + closest = link; + startingPos = point; + cDef = chain; + dist = length; + } + } + } + } + + if(closest == null) { + return Vec3.createVectorHelper(trainX, trainY, trainZ); + } + + double distRemaining = speed; + boolean engaged = false; + Vec3 currentPos = startingPos; + for(int i = d ? 0 : cDef.size() - 1; d ? (i < cDef.size()) : (i >= 0); i += d ? 1 : -1) { + + Pair link = cDef.get(i); + Vec3[] array = link.getKey(); + + if(!engaged) { + if(link == closest) { + engaged = true; + } else { + continue; + } + } + + Vec3 nextNode = array[d?1:0]; + Vec3 delta = nextNode.subtract(currentPos); + + if(!canCross(world, cX, cY, cZ, currentPos, nextNode, link.getValue())) break; + + double len = delta.lengthVector(); + if(len >= distRemaining) { + info.overshoot = 0; + double newYaw = EntityRailCarBase.generateYaw(nextNode, currentPos); + if(Math.abs(BobMathUtil.angularDifference(newYaw, moveAngle)) < 45) info.yaw = (float) newYaw; + else info.yaw = (float) moveAngle; + delta.normalize(); + return Vec3.createVectorHelper(currentPos.xCoord - delta.xCoord * distRemaining / len, currentPos.yCoord - delta.yCoord * distRemaining / len, currentPos.zCoord - delta.zCoord * distRemaining / len); + } + + distRemaining -= len; + currentPos = nextNode; + } + + info.overshoot = distRemaining; + info.pos = new BlockPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord); + + return currentPos; + } + + public Vec3 getClosestPointOnLink(Vec3 pointA, Vec3 pointB, Vec3 pointP) { + Vec3 ap = Vec3.createVectorHelper(pointP.xCoord - pointA.xCoord, 0, pointP.zCoord - pointA.zCoord); + Vec3 ab = Vec3.createVectorHelper(pointB.xCoord - pointA.xCoord, 0, pointB.zCoord - pointA.zCoord); + + double magAB = ab.xCoord * ab.xCoord + ab.zCoord * ab.zCoord; + double dotProd = ap.xCoord * ab.xCoord + ap.zCoord * ab.zCoord; + double dist = dotProd / magAB; + + if(dist < 0) return pointA; + if(dist > 1) return pointB; + if(dist < 0 || dist > 1) return null; + + return Vec3.createVectorHelper(pointA.xCoord + ab.xCoord * dist, pointA.yCoord + (pointB.yCoord - pointA.yCoord) * dist, pointA.zCoord + ab.zCoord * dist); + } + + /** Creates the in-world position for a node based on the node itself and the core position */ + public Vec3 getPositionFromNode(World world, int x, int y, int z, Vec3 core, Vec3 node, int meta) { + float rotation = 0; + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + Vec3 copy = Vec3.createVectorHelper(node.xCoord, node.yCoord, node.zCoord); + copy.rotateAroundY(rotation); + return core.addVector(copy.xCoord, copy.yCoord, copy.zCoord); + } + + public class RailDef { + String name; + public List nodes = new ArrayList(); + + public RailDef(String name) { + this.name = name; + } + } +} diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 120c3b586..bd1d91f2f 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -17,7 +17,7 @@ public interface IRailNTM { * Inherently safer than simply adding the motion to the position and then snapping, since that may lead to derailing. * The motion has to be calculated from the train's rotation (rotated 180° when going backwards), the scalar doesn't matter since it's only used for determining orientation in a clear way. * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. - * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. + * Also features RailContext which determines overshoot and the final yaw rotation * */ public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context); @@ -46,8 +46,10 @@ public interface IRailNTM { public static class MoveContext { public RailCheckType type; public double collisionBogieDistance; - public boolean collision = false; //if a buffer stop or similar applies - public double overshoot; //how much of the travel distance was cut short + /** if a buffer stop or similar applies */ + public boolean collision = false; + /** how much of the travel distance was cut short */ + public double overshoot; public MoveContext(RailCheckType type, double collisionBogieDistance) { this.type = type; diff --git a/src/main/java/com/hbm/blocks/rail/IRenderBlock.java b/src/main/java/com/hbm/blocks/rail/IRenderBlock.java new file mode 100644 index 000000000..7cf90e9fd --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/IRenderBlock.java @@ -0,0 +1,16 @@ +package com.hbm.blocks.rail; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public interface IRenderBlock { + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @SideOnly(Side.CLIENT) public void renderInventory(Tessellator tessellator, Block block, int metadata); + @SideOnly(Side.CLIENT) public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z); +} diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index ac317b65d..861bda8c0 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowCurve extends BlockDummyable implements IRailNTM { +public class RailNarrowCurve extends BlockDummyable implements IRailNTM, IRenderBlock { public RailNarrowCurve() { super(Material.iron); @@ -25,8 +33,6 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -141,4 +147,27 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index 624087974..45bf500c8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailNarrowStraight extends BlockDummyable implements IRailNTM { +public class RailNarrowStraight extends BlockDummyable implements IRailNTM, IRenderBlock { public RailNarrowStraight() { super(Material.iron); @@ -25,8 +33,6 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -112,4 +118,23 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.NARROW; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + float rotation = 0; + if(meta == 2 || meta == 3 || meta == 12 || meta == 13) rotation = 90F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index bb503060a..07e07c6b2 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -1,19 +1,27 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardBuffer extends BlockDummyable implements IRailNTM { +public class RailStandardBuffer extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardBuffer() { super(Material.iron); @@ -24,8 +32,6 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -134,4 +140,36 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.STANDARD; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 12) rotation = (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java similarity index 81% rename from src/main/java/com/hbm/blocks/rail/RailStandardCurve.java rename to src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java index 10bed1608..101c7801f 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveBase.java @@ -1,22 +1,32 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardCurve extends BlockDummyable implements IRailNTM { +public class RailStandardCurveBase extends BlockDummyable implements IRailNTM, IRenderBlock { + + protected int width = 4; - public RailStandardCurve() { + public RailStandardCurveBase() { super(Material.iron); } @@ -25,8 +35,6 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -53,8 +61,8 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { ForgeDirection dir = ForgeDirection.getOrientation(meta); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - double turnRadius = 4D; - double axisDist = 4.5D; + double turnRadius = width; + double axisDist = width + 0.5D; Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; @@ -99,7 +107,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { double angleOvershoot = effAngle - 90D; moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * width + rot.offsetX * (width + 1), y, cZ - dir.offsetZ * width + rot.offsetZ * (width + 1))).yaw((float) moveAngle); return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); } @@ -124,7 +132,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { @Override public int[] getDimensions() { - return new int[] {0, 0, 4, 0, 4, 0}; + return new int[] {0, 0, width, 0, width, 0}; } @Override @@ -198,4 +206,29 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { BlockDummyable.safeRem = false; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.3, 0.3, 0.3); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(2, 0, 2); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java new file mode 100644 index 000000000..99c370760 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide7.java @@ -0,0 +1,113 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveWide7 extends RailStandardCurveBase { + + public RailStandardCurveWide7() { + super(); + this.width = 6; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && + world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && + world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && + world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && + world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && + world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && + world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && + world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && + world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && + world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && + world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2, y, z + dZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX, y, z + dZ * 4 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 2, y, z + dZ * 4 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 2, y, z + dZ * 5 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 4, y, z + dZ * 6 + rZ * 4, this, dir.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 5, y, z + dZ * 5 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 6, y, z + dZ * 5 + rZ * 6, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 5, y, z + dZ * 6 + rZ * 5, this, rot.ordinal(), 3); + world.setBlock(x + dX * 6 + rX * 6, y, z + dZ * 6 + rZ * 6, this, rot.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.225, 0.225, 0.225); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(3, 0, 3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide7, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java new file mode 100644 index 000000000..bb48b111b --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurveWide9.java @@ -0,0 +1,148 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurveWide9 extends RailStandardCurveBase { + + public RailStandardCurveWide9() { + super(); + this.width = 8; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + int[][] dim = new int[][] { + {1, 0}, + {2, 0}, + {0, 1}, + {1, 1}, + {2, 1}, + {3, 1}, + {4, 1}, + {2, 2}, + {3, 2}, + {4, 2}, + {5, 2}, + {4, 3}, + {5, 3}, + {5, 4}, + {6, 3}, + {6, 4}, + {7, 4}, + {6, 5}, + {7, 5}, + {6, 6}, + {7, 6}, + {7, 7}, + {7, 8}, + {8, 6}, + {8, 7}, + {8, 8}, + }; + + for(int[] array : dim) { + if(!world.getBlock(x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1]).isReplaceable(world, x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1])) return false; + } + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + int d = dir.ordinal(); + int r = rot.ordinal(); + + int[][] dim = new int[][] { + {1, 0, d}, + {2, 0, d}, + {0, 1, r}, + {1, 1, d}, + {2, 1, d}, + {3, 1, d}, + {4, 1, d}, + {2, 2, r}, + {3, 2, r}, + {4, 2, r}, + {5, 2, d}, + {4, 3, r}, + {5, 3, r}, + {5, 4, r}, + {6, 3, d}, + {6, 4, d}, + {7, 4, d}, + {6, 5, r}, + {7, 5, r}, + {6, 6, r}, + {7, 6, r}, + {7, 7, r}, + {7, 8, r}, + {8, 6, d}, + {8, 7, d}, + {8, 8, d}, + }; + + for(int[] array : dim) { + world.setBlock(x + dX * array[0] + rX * array[1], y, z + dZ * array[0] + rZ * array[1], this, array[2], 3); + } + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glScaled(0.175, 0.175, 0.175); + GL11.glRotated(45, 0, 1, 0); + GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(4, 0, 4); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve_wide9, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index d6911418c..aab9ed31d 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -1,21 +1,29 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardRamp extends BlockDummyable implements IRailNTM { +public class RailStandardRamp extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardRamp() { super(Material.iron); @@ -31,8 +39,6 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -135,4 +141,36 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir); MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, -1, 2, 2, 1, 0}, this, dir); } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index b68aedd68..3fc0ff745 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -1,20 +1,28 @@ package com.hbm.blocks.rail; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; import net.minecraftforge.common.util.ForgeDirection; -public class RailStandardStraight extends BlockDummyable implements IRailNTM { +public class RailStandardStraight extends BlockDummyable implements IRailNTM, IRenderBlock { public RailStandardStraight() { super(Material.iron); @@ -25,8 +33,6 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { return null; } - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - @Override public int getRenderType() { return renderID; @@ -117,4 +123,34 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z) { return TrackGauge.STANDARD; } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java new file mode 100644 index 000000000..44ed16f6a --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraightShort.java @@ -0,0 +1,152 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardStraightShort extends BlockDummyable implements IRailNTM, IRenderBlock { + + public RailStandardStraightShort() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + vec.xCoord = MathHelper.clamp_double(targetX, cX, cX + 1); + vec.yCoord = y + 0.1875; + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 1 : -1), y, cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; + vec.yCoord = y + 0.1875; + vec.zCoord = MathHelper.clamp_double(targetZ, cZ,cZ + 1); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 1 : -1))); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.7, 0.7, 0.7); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight_short, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java new file mode 100644 index 000000000..d35adb57d --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitch.java @@ -0,0 +1,271 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardSwitch extends BlockRailWaypointSystem implements IRenderBlock { + + @SideOnly(Side.CLIENT) private IIcon iconSign; + + public RailStandardSwitch() { + super(Material.iron); + + RailDef main = new RailDef("main"); + RailDef side = new RailDef("side"); + railDefs.add(main); + railDefs.add(side); + + main.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + + side.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-6.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-5.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-4.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-3.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-2.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-1.5, 0.1875, 4.5)); + side.nodes.add(Vec3.createVectorHelper(-0.5, 0.1875, 4.25)); + side.nodes.add(Vec3.createVectorHelper(0.5, 0.1875, 3.9375)); + side.nodes.add(Vec3.createVectorHelper(1.5, 0.1875, 3.375)); + side.nodes.add(Vec3.createVectorHelper(2.5, 0.1875, 2.4625)); + side.nodes.add(Vec3.createVectorHelper(3.5, 0.1875, 1.75)); + side.nodes.add(Vec3.createVectorHelper(4.5, 0.1875, 1.1875)); + side.nodes.add(Vec3.createVectorHelper(5.5, 0.1875, 0.875)); + side.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.625)); + side.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + side.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSign = iconRegister.registerIcon(RefStrings.MODID + ":rail_switch_sign"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRailSwitch(); + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 7, 7, 1, 0}; + } + + @Override + public int getOffset() { + return 7; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + TileEntityRailSwitch tile = (TileEntityRailSwitch) world.getTileEntity(x, y, z); + if(tile == null) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata() - 10); + + if(dir == Library.POS_X) if(from.xCoord < to.xCoord) return true; + if(dir == Library.NEG_X) if(from.xCoord > to.xCoord) return true; + if(dir == Library.POS_Z) if(from.zCoord < to.zCoord) return true; + if(dir == Library.NEG_Z) if(from.zCoord > to.zCoord) return true; + + if(dir == Library.POS_X) if(to.xCoord < x + 0.5 + 7) return true; + if(dir == Library.NEG_X) if(to.xCoord > x + 0.5 - 7) return true; + if(dir == Library.POS_Z) if(to.zCoord < z + 0.5 + 7) return true; + if(dir == Library.NEG_Z) if(to.zCoord > z + 0.5 - 7) return true; + + if(tile.isSwitched) { + if("side".equals(def.name)) return true; + } else { + if("main".equals(def.name)) return true; + } + + return false; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) return true; + if(player.isSneaking()) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.train) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + sw.isSwitched = !sw.isSwitched; + sw.markDirty(); + world.markBlockForUpdate(pos[0], pos[1], pos[2]); + } + } + + return true; + } + + @Override + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return super.snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) if(!world.getBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2).isReplaceable(world, x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2)) return false; + for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3).isReplaceable(world, x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3)) return false; + if(!world.getBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4).isReplaceable(world, x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4)) return false; + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i)).isReplaceable(world, x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i))) return false; + if(!world.getBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5).isReplaceable(world, x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5)) return false; + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i)).isReplaceable(world, x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i))) return false; + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) world.setBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2, this, rot.ordinal(), 3); + for(int i = 0; i < 2; i++) world.setBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4, this, rot.ordinal(), 3); + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i), this, dir.ordinal(), 3); + world.setBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5, this, rot.ordinal(), 3); + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i), this, dir.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, -0.1875); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.1, 0.1, 0.1); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, "Rail", this.blockIcon, tessellator, rotation, true); + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + } + + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } + + public static class TileEntityRailSwitch extends TileEntity { + public boolean isSwitched = false; + + @Override public boolean canUpdate() { return false; } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isSwitched = nbt.getBoolean("isSwitched"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isSwitched", this.isSwitched); + } + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java new file mode 100644 index 000000000..25cc227e1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardSwitchFlipped.java @@ -0,0 +1,237 @@ +package com.hbm.blocks.rail; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardSwitchFlipped extends BlockRailWaypointSystem implements IRenderBlock { + + @SideOnly(Side.CLIENT) private IIcon iconSign; + + public RailStandardSwitchFlipped() { + super(Material.iron); + + RailDef main = new RailDef("main"); + RailDef side = new RailDef("side"); + railDefs.add(main); + railDefs.add(side); + + main.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + main.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + + side.nodes.add(Vec3.createVectorHelper(-8.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-7.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-6.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-5.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-4.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-3.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-2.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-1.5, 0.1875, -3.5)); + side.nodes.add(Vec3.createVectorHelper(-0.5, 0.1875, -3.25)); + side.nodes.add(Vec3.createVectorHelper(0.5, 0.1875, -2.9375)); + side.nodes.add(Vec3.createVectorHelper(1.5, 0.1875, -2.375)); + side.nodes.add(Vec3.createVectorHelper(2.5, 0.1875, -1.4625)); + side.nodes.add(Vec3.createVectorHelper(3.5, 0.1875, -0.75)); + side.nodes.add(Vec3.createVectorHelper(4.5, 0.1875, -0.1875)); + side.nodes.add(Vec3.createVectorHelper(5.5, 0.1875, 0.175)); + side.nodes.add(Vec3.createVectorHelper(6.5, 0.1875, 0.375)); + side.nodes.add(Vec3.createVectorHelper(7.5, 0.1875, 0.5)); + side.nodes.add(Vec3.createVectorHelper(8.5, 0.1875, 0.5)); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconSign = iconRegister.registerIcon(RefStrings.MODID + ":rail_switch_sign_flipped"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRailSwitch(); + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 7, 7, 1, 0}; + } + + @Override + public int getOffset() { + return 7; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public boolean canCross(World world, int x, int y, int z, Vec3 from, Vec3 to, RailDef def) { + TileEntityRailSwitch tile = (TileEntityRailSwitch) world.getTileEntity(x, y, z); + if(tile == null) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata() - 10); + + if(dir == Library.POS_X) if(from.xCoord < to.xCoord) return true; + if(dir == Library.NEG_X) if(from.xCoord > to.xCoord) return true; + if(dir == Library.POS_Z) if(from.zCoord < to.zCoord) return true; + if(dir == Library.NEG_Z) if(from.zCoord > to.zCoord) return true; + + if(dir == Library.POS_X) if(to.xCoord < x + 0.5 + 7) return true; + if(dir == Library.NEG_X) if(to.xCoord > x + 0.5 - 7) return true; + if(dir == Library.POS_Z) if(to.zCoord < z + 0.5 + 7) return true; + if(dir == Library.NEG_Z) if(to.zCoord > z + 0.5 - 7) return true; + + if(tile.isSwitched) { + if("side".equals(def.name)) return true; + } else { + if("main".equals(def.name)) return true; + } + + return false; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) return true; + if(player.isSneaking()) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.train) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + sw.isSwitched = !sw.isSwitched; + sw.markDirty(); + world.markBlockForUpdate(pos[0], pos[1], pos[2]); + } + } + + return true; + } + + @Override + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return super.snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + if(!super.checkRequirement(world, x, y, z, dir, o)) return false; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) if(!world.getBlock(x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2).isReplaceable(world, x + dX * (2 + i) + rX * 2, y, z + dZ * (2 + i) + rZ * 2)) return false; + for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3).isReplaceable(world, x + dX * (4 + i) + rX * 3, y, z + dZ * (4 + i) + rZ * 3)) return false; + if(!world.getBlock(x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4).isReplaceable(world, x + dX * 5 + rX * 4, y, z + dZ * 5 + rZ * 4)) return false; + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i)).isReplaceable(world, x + dX * (6 + j) + rX * (3 + i), y, z + dZ * (6 + j) + rZ * (3 + i))) return false; + if(!world.getBlock(x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5).isReplaceable(world, x + dX * 7 + rX * 5, y, z + dZ * 7 + rZ * 5)) return false; + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) if(!world.getBlock(x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i)).isReplaceable(world, x + dX * (8 + j) + rX * (4 + i), y, z + dZ * (8 + j) + rZ * (4 + i))) return false; + + return true; + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + for(int i = 0; i < 4; i++) world.setBlock(x + dX * (2 + i) + rX * 1, y, z + dZ * (2 + i) + rZ * 1, this, rot.ordinal(), 3); + for(int i = 0; i < 2; i++) world.setBlock(x + dX * (4 + i) + rX * 2, y, z + dZ * (4 + i) + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 5 + rX * 3, y, z + dZ * 5 + rZ * 3, this, rot.ordinal(), 3); + for(int j = 0; j < 2; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (6 + j) + rX * (2 + i), y, z + dZ * (6 + j) + rZ * (2 + i), this, dir.ordinal(), 3); + world.setBlock(x + dX * 7 + rX * 4, y, z + dZ * 7 + rZ * 4, this, rot.ordinal(), 3); + for(int j = 0; j < 7; j++) for(int i = 0; i < 2; i++) world.setBlock(x + dX * (8 + j) + rX * (3 + i), y, z + dZ * (8 + j) + rZ * (3 + i), this, dir.ordinal(), 3); + + BlockDummyable.safeRem = false; + } + + @Override + @SideOnly(Side.CLIENT) + public void renderInventory(Tessellator tessellator, Block block, int metadata) { + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.1, 0.1, 0.1); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, 0, false); + tessellator.draw(); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderWorld(Tessellator tessellator, Block block, int meta, IBlockAccess world, int x, int y, int z) { + if(meta < 12) return; + float rotation = 0; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, "Rail", this.blockIcon, tessellator, rotation, true); + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityRailSwitch) { + TileEntityRailSwitch sw = (TileEntityRailSwitch) tile; + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rail_standard_switch_flipped, sw.isSwitched ? "SignTurn" : "SignStraight", this.iconSign, tessellator, rotation, true); + } + + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + } +} diff --git a/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java b/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java index 2be4012a6..f32cf05e1 100644 --- a/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java +++ b/src/main/java/com/hbm/blocks/test/TestBombAdvanced.java @@ -1,6 +1,6 @@ package com.hbm.blocks.test; -import com.hbm.entity.logic.EntityNukeExplosionNT; +import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityTestBombAdvanced; @@ -133,7 +133,6 @@ public class TestBombAdvanced extends BlockContainer { }*/ world.setBlock(x, y, z, Blocks.air); - world.spawnEntityInWorld(EntityNukeExplosionNT.statFacMKV(world, x + 0.5, y + 0.5, z + 0.5, 100)); - //world.spawnEntityInWorld(EntityNukeExplosionMK4.statFacNoRad(world, 50, x, y, z)); + world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 50, x, y, z)); } } diff --git a/src/main/java/com/hbm/commands/CommandRadiation.java b/src/main/java/com/hbm/commands/CommandRadiation.java new file mode 100644 index 000000000..90b4476d3 --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandRadiation.java @@ -0,0 +1,41 @@ +package com.hbm.commands; + +import com.hbm.handler.radiation.ChunkRadiationManager; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; + +public class CommandRadiation extends CommandBase { + + @Override + public String getCommandName() { + return "ntmrad"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmrad "; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + + if(args.length == 1 && "clear".equals(args[0])) { + ChunkRadiationManager.proxy.clearSystem(sender.getEntityWorld()); + sender.addChatMessage(new ChatComponentText("Cleared radiation data!")); + return; + } + + if(args.length == 2 && "set".equals(args[0])) { + float amount = (float) this.parseDoubleBounded(sender, args[1], 0D, 100_000D); + ChunkRadiationManager.proxy.setRadiation(sender.getEntityWorld(), sender.getPlayerCoordinates().posX, sender.getPlayerCoordinates().posY, sender.getPlayerCoordinates().posZ, amount); + sender.addChatMessage(new ChatComponentText("Radiation set.")); + return; + } + + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + getCommandUsage(sender))); + } + +} diff --git a/src/main/java/com/hbm/commands/CommandSatellites.java b/src/main/java/com/hbm/commands/CommandSatellites.java index 82f474b70..6f1a803cd 100644 --- a/src/main/java/com/hbm/commands/CommandSatellites.java +++ b/src/main/java/com/hbm/commands/CommandSatellites.java @@ -13,6 +13,7 @@ import net.minecraft.util.EnumChatFormatting; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.stream.Collectors; public class CommandSatellites extends CommandBase { @@ -23,7 +24,7 @@ public class CommandSatellites extends CommandBase { @Override public String getCommandUsage(ICommandSender iCommandSender) { - return String.format( + return String.format(Locale.US, "%s/%s orbit %s- Launch the held satellite\n" + "%s/%s descend %s- Deletes satellite by frequency.", EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE, diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index e1d6ed63c..578f98bef 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -1,5 +1,7 @@ package com.hbm.config; +import java.util.Locale; + import com.hbm.main.MainRegistry; import net.minecraftforge.common.config.Configuration; @@ -31,7 +33,7 @@ public class CommonConfig { if(value < 0) { MainRegistry.logger.error("Fatal error config: Randomizer value has been below zero, despite bound having to be positive integer!"); - MainRegistry.logger.error(String.format("Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); + MainRegistry.logger.error(String.format(Locale.US, "Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); return def; } @@ -42,7 +44,7 @@ public class CommonConfig { if(value <= 0) { MainRegistry.logger.error("Fatal error config: Randomizer value has been set to zero, despite bound having to be positive integer!"); - MainRegistry.logger.error(String.format("Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); + MainRegistry.logger.error(String.format(Locale.US, "Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); return def; } @@ -72,7 +74,11 @@ public class CommonConfig { prop.comment = comment; return prop.getString(); } - + public static int[] createConfigIntList(Configuration config, String category, String name, String comment, int[] def){ + Property prop = config.get(category, name, def); + prop.comment = comment; + return prop.getIntList(); + } public static String[] createConfigStringList(Configuration config, String category, String name, String comment) { Property prop = config.get(category, name, new String[] { "PLACEHOLDER" }); prop.comment = comment; diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 97bdee342..0c39c8180 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -33,6 +33,8 @@ public class GeneralConfig { public static boolean enableKeybindOverlap = true; public static int hintPos = 0; + public static boolean enableExpensiveMode = false; + public static boolean enable528 = false; public static boolean enable528ReasimBoilers = true; public static boolean enable528ColtanDeposit = true; @@ -40,6 +42,7 @@ public class GeneralConfig { public static boolean enable528BedrockDeposit = true; public static boolean enable528BedrockSpawn = false; public static boolean enable528BosniaSimulator = true; + public static boolean enable528BedrockReplacement = true; public static int coltanRate = 2; public static int bedrockRate = 50; @@ -90,6 +93,8 @@ public class GeneralConfig { enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true); enableKeybindOverlap = config.get(CATEGORY_GENERAL, "1.34_enableKeybindOverlap", true, "If enabled, will handle keybinds that would otherwise be ignored due to overlapping.").getBoolean(true); + enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false); + final String CATEGORY_528 = CommonConfig.CATEGORY_528; config.addCustomCategoryComment(CATEGORY_528, "CAUTION\n" @@ -104,6 +109,7 @@ public class GeneralConfig { enable528BedrockDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockDepsoit", "Enables bedrock coltan ores in the coltan deposit. These ores can be drilled to extract infinite coltan, albeit slowly.", true); enable528BedrockSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockSpawning", "Enables the bedrock coltan ores as a rare spawn. These will be rarely found anywhere in the world.", false); enable528BosniaSimulator = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBosniaSimulator", "Enables anti tank mines spawning all over the world.", true); + enable528BedrockReplacement = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528BedrockReplacement", "Replaces certain bedrock ores with ones that require additional processing.", true); coltanRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_oreColtanFrequency", "Determines how many coltan ore veins are to be expected in a chunk. These values do not affect the frequency in deposits, and only apply if random coltan spanwing is enabled.", 2); bedrockRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_bedrockColtanFrequency", "Determines how often (1 in X) bedrock coltan ores spawn. Applies for both the bedrock ores in the coltan deposit (if applicable) and the random bedrock ores (if applicable)", 50); diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 8ce250f40..1d57e39c8 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -30,14 +30,42 @@ public class MobConfig { public static boolean enableHives = true; public static int hiveSpawn = 256; - public static double scoutThreshold = 0.1; - public static double tier2Threshold = 1; - public static double tier3Threshold = 10; - public static double tier4Threshold = 50; - public static double tier5Threshold = 100; + public static double scoutThreshold = 5; + public static int scoutSwarmSpawnChance = 2; + public static boolean waypointDebug = false; + public static int largeHiveChance = 5; + public static int largeHiveThreshold = 30; + + public static int swarmCooldown = 120 * 20; + + public static int baseSwarmSize = 5; + public static double swarmScalingMult = 1.2; + public static int sootStep = 50; + + public static int[] glyphidChance = {50, -40, 0}; + public static int[] brawlerChance = {5, 35, 1}; + public static int[] bombardierChance = {20, -15, 1}; + public static int[] blasterChance = {-15, 40, 5}; + public static int[] diggerChance = {-15, 25, 5}; + public static int[] behemothChance = {-30, 45, 10}; + public static int[] brendaChance = {-50, 60, 20}; + public static int[] johnsonChance = {-50, 60, 50}; + public static double spawnMax = 50; + public static boolean enableInfestation = true; + public static double baseInfestChance = 5; public static double targetingThreshold = 1; - + + public static boolean rampantMode = false; + public static boolean rampantNaturalScoutSpawn = false; + public static double rampantScoutSpawnThresh = 20; + public static int rampantScoutSpawnChance = 600; + public static boolean scoutInitialSpawn = false; + public static boolean rampantExtendedTargetting = false; + public static boolean rampantDig = false; + public static boolean rampantGlyphidGuidance = false; + public static double rampantSmokeStackOverride = 0.4; + public static double pollutionMult = 3; public static void loadFromConfig(Configuration config) { @@ -69,12 +97,83 @@ public class MobConfig { enableHives = CommonConfig.createConfigBool(config, CATEGORY, "12.G00_enableHives", "Whether glyphid hives should spawn", true); hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 256); - scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 0.1); - tier2Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G03_tier2Threshold", "Minimum amount of soot for tier 2 glyphids to spawn", 1); - tier3Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G04_tier3Threshold", "Minimum amount of soot for tier 3 glyphids to spawn", 10); - tier4Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G05_tier4Threshold", "Minimum amount of soot for tier 4 glyphids to spawn", 50); - tier5Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G06_tier5Threshold", "Minimum amount of soot for tier 5 glyphids to spawn", 100); + scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 1); spawnMax = CommonConfig.createConfigDouble(config, CATEGORY, "12.G07_spawnMax", "Maximum amount of glyphids being able to exist at once through natural spawning", 50); targetingThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G08_targetingThreshold", "Minimum amount of soot required for glyphids' extended targeting range to activate", 1D); + + scoutSwarmSpawnChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G10_scoutSwarmSpawn", "How likely are scouts to spawn in swarms, 1 in x chance format", 2); + + largeHiveChance = CommonConfig.createConfigInt(config, CATEGORY,"12.G11_largeHiveChance", "The chance for a large hive to spawn, formula: 1/x", 5); + largeHiveThreshold = CommonConfig.createConfigInt(config, CATEGORY,"12.G12_largeHiveThreshold", "The soot threshold for a large hive to spawn", 20); + + waypointDebug = CommonConfig.createConfigBool(config, CATEGORY,"12.G13_waypointDebug", "Allows glyphid waypoints to be seen, mainly used for debugging, also useful as an aid against them", false); + + //Infested structures + enableInfestation= CommonConfig.createConfigBool(config, CATEGORY, "12.I01_enableInfestation", "Whether structures infested with glyphids should spawn", true); + baseInfestChance = CommonConfig.createConfigDouble(config, CATEGORY, "12.I02_baseInfestChance", "The chance for infested structures to spawn", 5); + + //Glyphid spawn stuff + config.addCustomCategoryComment(CATEGORY, + "General Glyphid spawn logic configuration\n" + + "\n" + + "The first number is the base chance which applies at 0 soot,\n" + + "the second number is the modifier that applies with soot based on the formular below,\n" + + "the third number is a hard minimum of soot for this type to spawn.\n" + + "Negative base chances mean that glyphids won't spawn outright, negative modifiers mean that the type becomes less likely with higher soot.\n" + + "The formula for glyphid spawning chance is: (base chance + (modifier - modifier / max( (soot + 1)/3, 3 )))\n" + + "The formula for glyphid swarm scaling is: (baseSwarmSize * Math.max(swarmScalingMult * soot/sootStep, 1))"); + + + baseSwarmSize = CommonConfig.createConfigInt(config, CATEGORY, "12.GS01_baseSwarmSize", "The basic, soot-less swarm size", 5); + swarmScalingMult = CommonConfig.createConfigDouble(config, CATEGORY, "12.GS02_swarmScalingMult", "By how much should swarm size scale by per soot amount determined below", 1.2); + sootStep = CommonConfig.createConfigInt(config, CATEGORY, "12.GS03_sootStep", "The soot amount the above multiplier applies to the swarm size", 50); + swarmCooldown = CommonConfig.createConfigInt(config, CATEGORY, "12.GS04_swarmCooldown", "How often do glyphid swarms spawn, in seconds", 120) * 20; + + glyphidChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC01_glyphidChance", "Base Spawn chance and soot modifier for a glyphid grunt", new int[]{50, -45, 0}); + brawlerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC02_brawlerChance", "Base Spawn chance and soot modifier for a glyphid brawler", new int[]{10, 30, 1}); + bombardierChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC03_bombardierChance", "Base Spawn chance and soot modifier for a glyphid bombardier", new int[]{20, -15, 1}); + blasterChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC04_blasterChance", "Base Spawn chance and soot modifier for a glyphid blaster", new int[]{-5, 40, 5}); + diggerChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC05_diggerChance", "Base Spawn chance and soot modifier for a glyphid digger", new int[]{-15, 25, 5}); + behemothChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC06_behemothChance", "Base Spawn chance and soot modifier for a glyphid behemoth", new int[]{-30, 45, 10}); + brendaChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC07_brendaChance", "Base Spawn chance and soot modifier for a glyphid brenda", new int[]{-50, 60, 20}); + johnsonChance = CommonConfig.createConfigIntList(config, CATEGORY, "12.GC08_johnsonChance", "Base Spawn chance and soot modifier for Big Man Johnson", new int[]{-50, 60, 50}); + + String rampantDesc = "Rampant Mode changes glyphid behavior and spawning to be more aggressive, changes include:\n" + + "\n" + + "Glyphid Scouts will naturally spawn alongside normal mobs if soot levels are above a certain threshold\n" + + "Glyphids will always have the extended targetting enabled\n" + + "Glyphids can dig to waypoints\n" + + "The Glyphids will expand always toward your base\n" + + "Scouts will spawn from the start, making glyphids start expanding off the bat\n" + + "Smokestacks have reduced efficiency, only reducing soot by 40%\n"; + + config.addCustomCategoryComment(CATEGORY,rampantDesc); + + rampantMode = CommonConfig.createConfigBool(config, CATEGORY, "12.R01_rampantMode", "The main rampant mode toggle, enables all other features associated with it", false); + + config.addCustomCategoryComment(CATEGORY, "The individual features of rampant can be used regardless of whether the main rampant toggle is enabled or not"); + + rampantNaturalScoutSpawn = CommonConfig.createConfigBool(config, CATEGORY,"12.R02_rampantScoutSpawn", "Whether scouts should spawn natually in highly polluted chunks", false); + rampantScoutSpawnThresh = CommonConfig.createConfigDouble(config, CATEGORY, "12.R02.1_rampantScoutSpawnThresh", "How much soot is needed for scouts to naturally spawn", 20); + rampantScoutSpawnChance = CommonConfig.createConfigInt(config, CATEGORY, "12.R02.2_rampantScoutSpawnChance", "How often scouts naturally spawn per mob population, 1/x format, the bigger the number, the more uncommon the scouts", 600); + rampantExtendedTargetting = CommonConfig.createConfigBool(config, CATEGORY,"12.R03_rampantExtendedTargeting", "Whether Glyphids should have the extended targetting always enabled", false); + rampantDig = CommonConfig.createConfigBool(config, CATEGORY,"12.R04_rampantDig", "Whether Glyphids should be able to dig to waypoints", false); + rampantGlyphidGuidance = CommonConfig.createConfigBool(config, CATEGORY,"12.R05_rampantGlyphidGuidance", "Whether Glyphids should always expand toward a player's spawnpoint", false); + rampantSmokeStackOverride = CommonConfig.createConfigDouble(config, CATEGORY, "12.R06_rampantSmokeStackOverride", "How much should the smokestack multiply soot by when on rampant mode", 0.4); + scoutInitialSpawn = CommonConfig.createConfigBool(config, CATEGORY,"12.R07_scoutInitialSpawn", "Whether glyphid scouts should be able to spawn on the first swarm of a hive, causes glyphids to expand significantly faster", false); + pollutionMult = CommonConfig.createConfigDouble(config, CATEGORY, "12.R08_pollutionMult", "A multiplier for soot emitted, whether you want to increase or decrease it", 1); + + if(rampantMode){ + rampantNaturalScoutSpawn = true; + rampantExtendedTargetting = true; + rampantDig = true; + rampantGlyphidGuidance = true; + scoutSwarmSpawnChance = 1; + scoutThreshold = 0.1; + if(pollutionMult == 1) { + pollutionMult = 2; + } + RadiationConfig.sootFogThreshold *= pollutionMult; + } } } diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index 25be90304..83cf7a10d 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -31,6 +31,7 @@ public class RadiationConfig { public static double buffMobThreshold = 15D; public static double sootFogThreshold = 35D; public static double sootFogDivisor = 120D; + public static double smokeStackSootMult = 0.8; public static void loadFromConfig(Configuration config) { @@ -68,5 +69,6 @@ public class RadiationConfig { buffMobThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_05_buffMobThreshold", "The amount of soot required to buff naturally spawning mobs", 15D); sootFogThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_06_sootFogThreshold", "How much soot is required for smog to become visible", 35D); sootFogDivisor = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_07_sootFogDivisor", "The divisor for smog, higher numbers will require more soot for the same smog density", 120D); + smokeStackSootMult = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_08_smokeStackSootMult", "How much does smokestack multiply soot by, with decimal values reducing the soot", 0.8); } } diff --git a/src/main/java/com/hbm/config/StructureConfig.java b/src/main/java/com/hbm/config/StructureConfig.java index 2f22d7281..9d6ad3cc0 100644 --- a/src/main/java/com/hbm/config/StructureConfig.java +++ b/src/main/java/com/hbm/config/StructureConfig.java @@ -1,5 +1,7 @@ package com.hbm.config; +import java.util.Locale; + import com.hbm.main.MainRegistry; import net.minecraftforge.common.config.Configuration; @@ -28,7 +30,7 @@ public class StructureConfig { if(structureMinChunks > structureMaxChunks) { MainRegistry.logger.error("Fatal error config: Minimum value has been set higher than the maximum value!"); - MainRegistry.logger.error(String.format("Errored values will default back to %1$d and %2$d respectively, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", 8, 24)); + MainRegistry.logger.error(String.format(Locale.US, "Errored values will default back to %1$d and %2$d respectively, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", 8, 24)); structureMinChunks = 8; structureMaxChunks = 24; } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 7e389cec0..46add586c 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -26,8 +26,8 @@ public class WorldConfig { public static int cinnebarSpawn = 1; public static int oilcoalSpawn = 128; public static int gassshaleSpawn = 5; - public static int gasbubbleSpawn = 4; - public static int explosivebubbleSpawn = 8; + public static int gasbubbleSpawn = 12; + public static int explosivebubbleSpawn = 0; public static int cobaltSpawn = 2; public static int oilSpawn = 100; public static int bedrockOilSpawn = 200; @@ -133,10 +133,10 @@ public class WorldConfig { rareSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.14_rareEarthSpawnRate", "Amount of rare earth ore veins per chunk", 6); oilcoalSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.15_oilCoalSpawnRate", "Spawns an oily coal vein every nTH chunk", 128); gassshaleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.16_gasShaleSpawnRate", "Amount of oil shale veins per chunk", 5); - gasbubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.17_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk", 4); + gasbubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.17_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk", 12); cinnebarSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cinnebarSpawnRate", "Amount of cinnebar ore veins per chunk", 1); cobaltSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cobaltSpawnRate", "Amount of cobalt ore veins per chunk", 2); - explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 8); + explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 0); alexandriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.20_alexandriteSpawnRate", "Spawns an alexandrite vein every nTH chunk", 100); oilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.21_oilSpawnRate", "Spawns an oil bubble every nTH chunk", 100); bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 200); diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 3aaa6019e..0ffd281b3 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -44,19 +44,18 @@ public class ArmorRecipes { addChest( CMB.ingot(), ModItems.cmb_plate); addLegs( CMB.ingot(), ModItems.cmb_legs); addBoots( CMB.ingot(), ModItems.cmb_boots); - addHelmet( CO.ingot(), ModItems.cobalt_helmet); - addChest( CO.ingot(), ModItems.cobalt_plate); - addLegs( CO.ingot(), ModItems.cobalt_legs); - addBoots( CO.ingot(), ModItems.cobalt_boots); addHelmet( ModItems.rag, ModItems.robes_helmet); addChest( ModItems.rag, ModItems.robes_plate); addLegs( ModItems.rag, ModItems.robes_legs); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ModItems.plate_polymer }); - - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_helmet, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_plate, 1), new Object[] { " E ", "ECE"," E ", 'E', CO.billet(), 'C', ModItems.steel_plate }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_legs, 1), new Object[] { "ECE", "E E", 'E', CO.billet(), 'C', ModItems.steel_legs }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_boots, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_boots }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_helmet, 1), new Object[] { "EEE", "EE ", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_plate, 1), new Object[] { "EE ", "EEE", "EEE", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_legs, 1), new Object[] { "EE ", "EEE", "E E", 'E', DNT.ingot() }); @@ -64,7 +63,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.zirconium_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ZR.ingot() }); //Power armor - CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ModItems.plate_polymer, 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ANY_RUBBER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); @@ -125,7 +124,7 @@ public class ArmorRecipes { //Jetpacks CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "ACA", "TLT", "D D", 'A', AL.plate(), 'C', ModItems.circuit_targeting_tier1, 'T', ModItems.tank_steel, 'L', Items.leather, 'D', ModItems.thruster_small }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_break, 1), new Object[] { "ICI", "TJT", "I I", 'C', ModItems.circuit_targeting_tier2, 'T', ModItems.ingot_dura_steel, 'J', ModItems.jetpack_fly, 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', ModItems.circuit_targeting_tier3, 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', ModItems.bolt_dura_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_vector, 1), new Object[] { "TCT", "MJM", "B B", 'C', ModItems.circuit_targeting_tier3, 'T', ModItems.tank_steel, 'J', ModItems.jetpack_break, 'M', ModItems.motor, 'B', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PCP", "DJD", "PAP", 'C', ModItems.circuit_targeting_tier4, 'P', BIGMT.plate(), 'D', DESH.ingot(), 'J', ModItems.jetpack_vector, 'A', ModItems.board_copper }); //Hazmat @@ -154,19 +153,19 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.paa_boots, 1), new Object[] { "E E", "N N", 'E', ModItems.plate_paa, 'N', OreDictManager.getReflector() }); //Liquidator Suit - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "III", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_empty }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "III", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_empty }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); //Masks CraftingManager.addRecipeAuto(new ItemStack(ModItems.goggles, 1), new Object[] { "P P", "GPG", 'G', KEY_ANYPANE, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', STEEL.plate(), 'F', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_olde, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', Items.leather, 'F', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_of_infamy, 1), new Object[] { "III", "III", " I ", 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ANY_RUBBER.ingot(), 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag_damp }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss }); diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 971b29fa1..e7be64e7e 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -50,9 +50,9 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.balefire_and_ham, 1), new Object[] { ModItems.balefire_scrambled, Items.cooked_beef }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.med_ipecac, 1), new Object[] { Items.glass_bottle, Items.nether_wart }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.med_ptsd, 1), new Object[] { ModItems.med_ipecac }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), DIAMOND.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), EMERALD.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { KEY_ANYPANE, new ItemStack(Items.dye, 1, 3), Items.milk_bucket, KNO.block(), S.dust(), S.dust(), S.dust(), P_RED.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), DIAMOND.dust(), Items.wheat, STEEL.bolt(), ModItems.wire_copper, STEEL.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), EMERALD.dust(), Items.wheat, STEEL.bolt(), ModItems.wire_copper, STEEL.plate() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { KEY_ANYPANE, new ItemStack(Items.dye, 1, 3), Items.milk_bucket, Fluids.NITROGLYCERIN.getDict(1_000) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loops), new Object[] { ModItems.flame_pony, Items.wheat, Items.sugar }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loop_stew), new Object[] { ModItems.loops, ModItems.can_smart, Items.bowl }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.coffee), new Object[] { COAL.dust(), Items.milk_bucket, Items.potionitem, Items.sugar }); @@ -105,12 +105,13 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_awesome, 1), new Object[] { "SNS", "PCP", "SNS", 'C', ModItems.syringe_empty, 'S', S.dust(), 'P', PU239.nugget(), 'N', PU238.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_empty, 6), new Object[] { "P", "C", "B", 'B', Blocks.iron_bars, 'C', ModItems.rod_empty, 'P', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_stimpak, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.nether_wart, 'S', ModItems.syringe_metal_empty }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.syringe_metal_stimpak, 1), new Object[] { ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small, ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_medx, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.quartz, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_psycho, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.glowstone_dust, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.syringe_taint), new Object[] { ModItems.bottle2_empty, ModItems.syringe_metal_empty, ModItems.ducttape, ModItems.powder_magic, SA326.nugget(), Items.potionitem }); //Medicine @@ -134,12 +135,12 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', Items.leather, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); //IV Bags - CraftingManager.addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "S", "I", "S", 'S', ModItems.plate_polymer, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "S", "I", "S", 'S', ANY_RUBBER.ingot(), 'I', IRON.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.iv_xp_empty, 1), new Object[] { ModItems.iv_empty, ModItems.powder_magic }); //Radaway @@ -149,7 +150,7 @@ public class ConsumableRecipes { //Cladding CraftingManager.addShapelessAuto(new ItemStack(ModItems.cladding_paint, 1), new Object[] { PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), Items.clay_ball, Items.glass_bottle }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ModItems.plate_polymer, 'C', COAL.dust(), 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ANY_RUBBER.ingot(), 'C', COAL.dust(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_lead, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_rubber, 'P', PB.plate(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_desh, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_lead, 'P', ModItems.plate_desh, 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_ghiorsium, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_desh, 'P', ModItems.ingot_gh336, 'D', ModItems.ducttape }); @@ -162,24 +163,24 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_ghiorsium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', GH336.ingot(), 'S', U238.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_polonium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', PO210.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_era, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', ModItems.ingot_semtex }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ModItems.plate_polymer, 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ANY_RUBBER.ingot(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_yharonite, 1), new Object[] { "YIY", "IYI", "YIY", 'Y', ModItems.billet_yharonite, 'I', ModItems.insert_du }); //Servos - CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', ModItems.bolt_dura_steel, 'P', ALLOY.plate(), 'S', ModItems.servo_set }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', STEEL.bolt(), 'P', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', DURA.bolt(), 'P', ALLOY.plate(), 'S', ModItems.servo_set }); //Helmet Mods - CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'F', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'F', IRON.plate() }); //Boot Mods - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ModItems.plate_polymer, 'I', IRON.plate(), 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ANY_RUBBER.ingot(), 'I', IRON.plate(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_slime, 1), new Object[] { "SPS", "DSD", "SPS", 'S', KEY_SLIME, 'P', ModItems.pads_rubber, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'S', ModItems.pads_slime }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'S', ModItems.pads_slime }); //Special Mods CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 039644891..ebd11b692 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -1,6 +1,7 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; @@ -417,6 +418,8 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.ingot_mercury, 8), new Object[] { "#", '#', ModItems.bottle_mercury }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire, 1), new Object[] { "###", "###", "###", '#', ModItems.egg_balefire_shard }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 9), new Object[] { "#", '#', ModItems.egg_balefire }); + GameRegistry.addRecipe(new ItemStack(ModItems.nitra, 1), new Object[] { "##", "##", '#', ModItems.nitra_small }); + GameRegistry.addRecipe(new ItemStack(ModItems.nitra_small, 4), new Object[] { "#", '#', ModItems.nitra }); add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); @@ -446,6 +449,7 @@ public class MineralRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.ore() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), KEY_SAND }); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_IRON), new ItemStack(ModItems.powder_iron)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_COPPER), new ItemStack(ModItems.powder_copper)); diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index 62cd42f2d..089d08aae 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -152,8 +152,8 @@ public class RodRecipes { CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEA242), new Object[] { "F", "I", "F", 'F', AM242.billet(), 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES326), new Object[] { "F", "I", "F", 'F', SA326.billet(), 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES327), new Object[] { "F", "I", "F", 'F', SA327.billet(), 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_AM_MIX), new Object[] { "F", "I", "B", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer, 'B', BI.billet() }); - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_PU241), new Object[] { "F", "I", "B", 'F', PU241.billet(), 'I', ModItems.plate_polymer, 'B', BI.billet() }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_AM_MIX), new Object[] { "NFN", "NIN", "NBN", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer, 'B', BI.billet(), 'N', ModItems.nugget_plutonium_fuel }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_PU241), new Object[] { "NFN", "NIN", "NBN", 'F', PU241.billet(), 'I', ModItems.plate_polymer, 'B', BI.billet(), 'N', ModItems.nugget_uranium_fuel }); } public static void registerInit() { diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 60a709ce0..e3da94819 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -108,6 +108,7 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.powder_bismuth, new ItemStack(ModItems.ingot_bismuth), 1.0F); GameRegistry.addSmelting(ModItems.powder_calcium, new ItemStack(ModItems.ingot_calcium), 1.0F); GameRegistry.addSmelting(ModItems.powder_cadmium, new ItemStack(ModItems.ingot_cadmium), 1.0F); + GameRegistry.addSmelting(ModItems.ball_resin, new ItemStack(ModItems.ingot_biorubber), 0.1F); GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F); GameRegistry.addSmelting(ModItems.rag_damp, new ItemStack(ModItems.rag), 0.1F); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index f418904f6..8b8f2c27c 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -6,6 +6,7 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; +import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; @@ -61,12 +62,12 @@ public class ToolRecipes { addShovel( DESH.ingot(), ModItems.desh_shovel); addHoe( DESH.ingot(), ModItems.desh_hoe); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK }); //Drax @@ -75,10 +76,10 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax_mk3, 1), new Object[] { "ECE", "CDC", "SBS", 'E', ModBlocks.block_euphemium_cluster, 'C', ModItems.crystal_schrabidium, 'D', ModItems.drax_mk2, 'S', ModItems.circuit_targeting_tier6, 'B', ItemBattery.getFullBattery(ModItems.battery_spark) }); //Super pickaxes - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_pickaxe, 'F', ModItems.bolt_dura_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_pickaxe, 'F', ModItems.bolt_dura_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.ingot_bismuth, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.volcanic_pickaxe, 1), new Object[] { " BM", "BPB", "TB ", 'B', ModItems.gem_volcanic, 'M', ModItems.ingot_meteorite, 'P', ModItems.starmetal_pickaxe, 'T', W.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.bismuth_pickaxe, 'F', DURA.bolt() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.chlorophyte_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_steel, 'D', ModItems.powder_chlorophyte, 'A', FIBER.ingot(), 'P', ModItems.volcanic_pickaxe, 'F', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mese_pickaxe, 1), new Object[] { " SD", "APS", "FA ", 'S', ModItems.blades_desh, 'D', ModItems.powder_dineutronium, 'A', ModItems.plate_paa, 'P', ModItems.chlorophyte_pickaxe, 'F', ModItems.shimmer_handle }); //Chainsaws @@ -88,6 +89,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.crowbar, 1), new Object[] { "II", " I", " I", 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bottle_opener, 1), new Object[] { "S", "P", 'S', STEEL.plate(), 'P', KEY_PLANKS }); + CraftingManager.addRecipeAuto(new ItemStack(Items.saddle, 1), new Object[] { "LLL", "LRL", " S ", 'S', STEEL.ingot(), 'L', Items.leather, 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE) }); //Matches CraftingManager.addRecipeAuto(new ItemStack(ModItems.matchstick, 16), new Object[] { "I", "S", 'I', S.dust(), 'S', KEY_STICK }); @@ -109,23 +111,24 @@ public class ToolRecipes { //Utility CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', IRON.plate(), 'A', STEEL.plate(), 'B', ModItems.circuit_red_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.designator, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', POLYMER.ingot(), 'A', PB.plate(), 'B', ModItems.circuit_gold, 'C', ModItems.designator }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', ANY_PLASTIC.ingot(), 'A', PB.plate(), 'B', ModItems.circuit_gold, 'C', ModItems.designator }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_arty_range, 1), new Object[] { "M", "C", "P", 'M', ModItems.magnetron, 'C', ModItems.circuit_gold, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', ModItems.circuit_gold }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', ModItems.wire_gold, 'I', CU.ingot(), 'C', ModItems.circuit_red_copper, 'P', STEEL.plate528() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate528(), 'G', GOLD.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ModItems.plate_polymer, 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate528(), 'G', GOLD.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', POLYMER.ingot(), 'S', STEEL.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', W.bolt(), 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); - + CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); @@ -153,6 +156,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.WOOD, EnumMinecart.EMPTY), new Object[] { "P P", "WPW", 'P',KEY_SLAB, 'W', KEY_PLANKS }); CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); CraftingManager.addShapelessAuto(ItemModMinecart.createCartItem(EnumCartBase.PAINTED, EnumMinecart.EMPTY), new Object[] { ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), KEY_RED }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.boat_rubber), new Object[] { "L L", "LLL", 'L', ANY_RUBBER.ingot() }); for(EnumCartBase base : EnumCartBase.values()) { @@ -180,21 +184,24 @@ public class ToolRecipes { addShovel( SA326.ingot(), ModItems.schrabidium_shovel); addHoe( SA326.ingot(), ModItems.schrabidium_hoe); } else { + /* CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_sword, 1), new Object[] { " I ", " I ", "SBS", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_sword }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_pickaxe, 1), new Object[] { "III", " B ", " S ", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_pickaxe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_axe, 1), new Object[] { "II", "IB", " S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_axe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_shovel, 1), new Object[] { "I", "B", "S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_shovel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_hoe, 1), new Object[] { "II", " B", " S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_hoe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_sword, 1), new Object[] { " I ", " I ", "SBS", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_sword }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_pickaxe, 1), new Object[] { "III", " B ", " S ", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_pickaxe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_axe, 1), new Object[] { "II", "IB", " S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_axe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_shovel, 1), new Object[] { "I", "B", "S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_shovel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_hoe, 1), new Object[] { "II", " B", " S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_hoe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', SA326.block(), 'W', ModItems.desh_sword, 'S', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "BSB", " W ", " P ", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_pickaxe, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "BS", "BW", " P", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_axe, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "B", "W", "P", 'B', SA326.block(), 'W', ModItems.desh_shovel, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "IW", " S", " S", 'I', SA326.ingot(), 'W', ModItems.desh_hoe, 'S', POLYMER.ingot() }); + + */ + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_sword, 1), new Object[] { " I ", " B ", "ISI", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_sword }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_pickaxe, 1), new Object[] { "ISI", " B ", " I ", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_pickaxe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_axe, 1), new Object[] { "IS", "IB", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_axe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_shovel, 1), new Object[] { "I", "B", "I", 'I', STAR.ingot(), 'B', ModItems.cobalt_decorated_shovel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_hoe, 1), new Object[] { "IS", " B", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_hoe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', SA326.block(), 'W', ModItems.desh_sword, 'S', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "BSB", " W ", " P ", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_pickaxe, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "BS", "BW", " P", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_axe, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "B", "W", "P", 'B', SA326.block(), 'W', ModItems.desh_shovel, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "IW", " S", " S", 'I', SA326.ingot(), 'W', ModItems.desh_hoe, 'S', ANY_PLASTIC.ingot() }); } } diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 0b55c4ab6..e671dc1ca 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -46,12 +46,12 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_thruster_15_balefire_large_rad, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.board_copper, 'T', ModItems.mp_thruster_15_balefire_large }); //Missile fuselages - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_solid }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_solid }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_solid }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_desh, 1), new Object[] { "CCC", "CTC", "CCC", 'C', DESH.ingot(), 'T', ModItems.mp_fuselage_15_solid }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_kerosene }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_long_kerosene }); @@ -61,11 +61,11 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_warhead_15_boxcar, 1), new Object[] { "SNS", "CBC", "SFS", 'S', STAR.ingot(), 'N', ModBlocks.det_nuke, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.boxcar, 'F', ModItems.tritium_deuterium_cake }); //Missile chips - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier1, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier2, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier3, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier4, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier5, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier1, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier2, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier3, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier4, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier5, 'S', ModBlocks.steel_scaffold }); //Turrets CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', ModItems.circuit_red_copper, 'D', ModItems.crt_display }); @@ -75,7 +75,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "SSS", " MW", 'S', ModItems.hull_small_steel, 'W', CU.plate(), 'M', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', ModItems.hull_small_steel, 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', ModItems.bolt_tungsten }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', STEEL.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "HHR", "WLW", 'H', ModItems.hull_small_aluminium, 'R', ModItems.mechanism_rifle_1, 'W', KEY_LOG, 'L', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', ModItems.circuit_red_copper, 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 4), new Object[] { "SS ", "STI", " IR", 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt), 'I', AL.plate(), 'R', REDSTONE.dust() }); @@ -88,17 +88,18 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_blackjack, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_silver, 1), new Object[] { "SSP", " TI", 'S', AL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_red, 1), new Object[] { "R ", " B", 'R', ModItems.key_red, 'B', ModItems.gun_revolver_blackjack }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uac_pistol, 1), new Object[] { "IIM", " BI", 'B', DURA.bolt(), 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'R', ModItems.wire_red_copper, 'T', TI.plate(), 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bio_revolver, 1), new Object[] { "SSM", "BTW", 'S', STEEL.plate(), 'M', ModItems.mechanism_revolver_2, 'B', B.ingot(), 'T', ModItems.bolt_tungsten, 'W', KEY_LOG }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bio_revolver, 1), new Object[] { "SSM", "BTW", 'S', STEEL.plate(), 'M', ModItems.mechanism_revolver_2, 'B', B.ingot(), 'T', W.bolt(), 'W', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "RWC", "HHT", "RLC", 'R', RUBBER.ingot(), 'W', ModItems.wrench, 'C', CU.plate(), 'H', ModItems.hull_small_steel, 'T', ModItems.tank_steel, 'L', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', ModItems.hull_small_steel, 'P', Item.getItemFromBlock(Blocks.piston), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_polymer, 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bf_ammo, 1), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ANY_RUBBER.ingot(), 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1, AmmoFatman.BALEFIRE.ordinal()), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'S', KEY_STICK, 'M', ModItems.mechanism_revolver_2 }); @@ -143,9 +144,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b93), new Object[] { "PCE", "SEB", "PCE", 'P', ModItems.plate_dineutronium, 'C', ModItems.weaponized_starblaster_cell, 'E', ModItems.component_emitter, 'B', ModItems.gun_b92, 'S', ModItems.singularity_spark }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92_ammo, 1), new Object[] { "PSP", "ESE", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'E', ModItems.powder_spark_mix }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()), GunB92Cell.getFullCell(), ModItems.wire_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "SMS", " PB", " P ", 'S', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', STEEL.plate(), 'B', ModItems.bolt_dura_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "SMS", " PB", " P ", 'S', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', STEEL.plate(), 'B', DURA.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', ModItems.bolt_tungsten }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', W.bolt() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); @@ -153,10 +154,10 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', BE.block(), 'I', DESH.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ModItems.plate_polymer, 'W', ModItems.wire_aluminium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ANY_RUBBER.ingot(), 'W', ModItems.wire_aluminium }); //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', STEEL.bolt(), 'T', ModItems.tank_steel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', STEEL.bolt(), 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 }); @@ -165,6 +166,20 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 0), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 1), new Object[] { " T ", "TST", " T ", 'T', FERRO.ingot(), 'S', BIGMT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 2), new Object[] { " T ", "TST", " T ", 'T', RUBBER.ingot(), 'S', ANY_PLASTIC.ingot() }); + + //TODO: somehow add more variance, 4 gauge is still missing + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_22lr, 16), new Object[] { ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_9mm, 16), new Object[] { ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_5mm, 16), new Object[] { ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_357, 16, Ammo357Magnum.LEAD.ordinal()), new Object[] { ModItems.nitra, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_44, 16), new Object[] { ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_45, 16), new Object[] { ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50ae, 16), new Object[] { ModItems.nitra, ModItems.nitra }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_556, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_20gauge, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_12gauge, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_762, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50bmg, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra, ModItems.nitra }); //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); @@ -192,15 +207,15 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 1), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); CraftingManager.addShapelessAuto(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); @@ -210,8 +225,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 1), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ANY_RUBBER.ingot(), 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); + CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 1), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); @@ -314,14 +329,14 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ), 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); //Flamer fuel - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', Fluids.DIESEL.getDict(1000) }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_napalm }); + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', Fluids.DIESEL.getDict(1000) }); + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', ModItems.canister_napalm }); CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.PHOSPHORUS), new Object[] { "CPC", "CDC", "CPC", 'C', COAL.dust(), 'P', P_WHITE.ingot(), 'D', ModItems.ammo_fuel }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.pellet_gas }); + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', ModItems.pellet_gas }); CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.VAPORIZER), new Object[] { "PSP", "SNS", "PSP", 'P', P_WHITE.ingot(), 'S', ModItems.crystal_sulfur, 'N', ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM) }); //Fire Extingusisher Tanks - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM), new Object[] { " N ", "NFN", " N ", 'N', KNO.dust(), 'F', ModItems.ammo_fireext }); CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND), new Object[] { "NNN", "NFN", "NNN", 'N', ModBlocks.sand_boron, 'F', ModItems.ammo_fireext }); @@ -350,6 +365,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_kyiv), new Object[] { ModItems.canister_napalm, ModItems.bottle2_empty, ModItems.rag }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.disperser_canister_empty, 4), new Object[] { " P ", "PGP", " P ", 'P', ANY_HARDPLASTIC.ingot(), 'G', ModBlocks.glass_boron }); //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); @@ -369,7 +385,7 @@ public class WeaponRecipes { //IF Grenades CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_generic, 1), new Object[] { " C ", "PTP", " P ", 'C', ModItems.coil_tungsten, 'P', STEEL.plate(), 'T', Blocks.tnt }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_he, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.gunpowder }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_sticky, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', KEY_SLIME }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_impact, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', REDSTONE.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_concussion, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.glowstone_dust }); @@ -379,7 +395,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_mystery, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_magic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_spark, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_spark_mix }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_hopwire, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_power }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', Blocks.obsidian, 'B', BIGMT.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', ModItems.undefined, 'B', BIGMT.ingot() }); //Mines CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', ModItems.circuit_targeting_tier2, 'P', IRON.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); diff --git a/src/main/java/com/hbm/creativetabs/MachineTab.java b/src/main/java/com/hbm/creativetabs/MachineTab.java index 13f3c934f..a24abc8a6 100644 --- a/src/main/java/com/hbm/creativetabs/MachineTab.java +++ b/src/main/java/com/hbm/creativetabs/MachineTab.java @@ -15,8 +15,8 @@ public class MachineTab extends CreativeTabs { @Override public Item getTabIconItem() { - if(ModBlocks.reactor_element != null) - return Item.getItemFromBlock(ModBlocks.reactor_element); + if(ModBlocks.pwr_controller != null) + return Item.getItemFromBlock(ModBlocks.pwr_controller); return Items.iron_pickaxe; } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index c9eb1c210..36892a6b0 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -9,6 +9,11 @@ import com.hbm.entity.grenade.*; import com.hbm.entity.item.*; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; @@ -26,6 +31,8 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeDictionary.Type; public class EntityMappings { @@ -51,6 +58,7 @@ public class EntityMappings { addEntity(EntityGrenadeNuke.class, "entity_grenade_nuke", 500); addEntity(EntitySchrab.class, "entity_schrabnel", 500); addEntity(EntityMissileGeneric.class, "entity_missile_generic", 1000); + addEntity(EntityMissileDecoy.class, "entity_missile_decoy", 1000); addEntity(EntityMissileStrong.class, "entity_missile_strong", 1000); addEntity(EntityMissileNuclear.class, "entity_missile_nuclear", 1000); addEntity(EntityMissileCluster.class, "entity_missile_cluster", 1000); @@ -174,6 +182,8 @@ public class EntityMappings { addEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 1000); addEntity(EntityMovingItem.class, "entity_c_item", 1000); addEntity(EntityMovingPackage.class, "entity_c_package", 1000); + addEntity(EntityDeliveryDrone.class, "entity_delivery_drone", 250, false); + addEntity(EntityRequestDrone.class, "entity_request_drone", 250, false); addEntity(EntityCloudTom.class, "entity_moonstone_blast", 1000); addEntity(EntityBeamVortex.class, "entity_vortex_beam", 1000); addEntity(EntityFireworks.class, "entity_firework_ball", 1000); @@ -183,7 +193,6 @@ public class EntityMappings { addEntity(EntityBlockSpider.class, "entity_taintcrawler", 1000); addEntity(EntityRBMKDebris.class, "entity_rbmk_debris", 1000); addEntity(EntityUFO.class, "entity_ntm_ufo", 1000); - addEntity(EntityNukeExplosionNT.class, "entity_ntm_explosion_nt", 1000); addEntity(EntityQuasar.class, "entity_digamma_quasar", 250); addEntity(EntitySpear.class, "entity_digamma_spear", 1000); addEntity(EntityMissileVolcano.class, "entity_missile_volcano", 1000); @@ -212,6 +221,9 @@ public class EntityMappings { addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 250, false); addEntity(EntityAcidBomb.class, "entity_acid_bomb", 1000); + addEntity(EntityFallingBlockNT.class, "entity_falling_block_nt", 1000); + addEntity(EntityBoatRubber.class, "entity_rubber_boat", 250, false); + addEntity(EntityMissileStealth.class, "entity_missile_stealth", 1000); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); @@ -221,7 +233,10 @@ public class EntityMappings { addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false); addEntity(TrainTunnelBore.class, "entity_ntm_tunnel_bore", 250, false); - + + addEntity(EntityDisperserCanister.class, "entity_disperser", 250); + addEntity(EntityWaypoint.class, "entity_waypoint", 250, false); + addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); addMob(EntityCreeperPhosgene.class, "entity_mob_phosgene_creeper", 0xE3D398, 0xB8A06B); @@ -234,6 +249,7 @@ public class EntityMappings { addMob(EntityMaskMan.class, "entity_mob_mask_man", 0x818572, 0xC7C1B7); addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); + addMob(EntityPigeon.class, "entity_pigeon", 0xC8C9CD, 0x858894); addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); @@ -249,10 +265,15 @@ public class EntityMappings { addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0); + addMob(EntityGlyphidDigger.class, "entity_glyphid_digger", 0x273038, 0x724A21); + addMob(EntityPlasticBag.class, "entity_plastic_bag", 0xd0d0d0, 0x808080); + addMob(EntityParasiteMaggot.class, "entity_parasite_maggot", 0xd0d0d0, 0x808080); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperGold.class, 1, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); + addSpawn(EntityPlasticBag.class, 1, 1, 3, EnumCreatureType.waterCreature, BiomeDictionary.getBiomesForType(Type.OCEAN)); + addSpawn(EntityPigeon.class, 1, 5, 10, EnumCreatureType.creature, BiomeDictionary.getBiomesForType(Type.PLAINS)); int id = 0; for(Quartet, String, Integer, Boolean> entry : entityMappings) { diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 51ee981cb..35b0c595a 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -4,12 +4,14 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.config.FalloutConfigJSON; import com.hbm.config.FalloutConfigJSON.FalloutEntry; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.saveddata.AuxSavedData; +import com.hbm.world.WorldUtil; +import com.hbm.world.biome.BiomeGenCrater; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; @@ -58,8 +60,10 @@ public class EntityFalloutRain extends Entity { for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { stomp(x, z, Math.hypot(x - posX, z - posZ) * 100 / getScale()); + //WorldUtil.setBiome(worldObj, x, z, BiomeGenCrater.craterBiome); } } + //WorldUtil.syncBiomeChange(worldObj, chunkPosX, chunkPosZ); } else if (!outerChunksToProcess.isEmpty()) { long chunkPos = outerChunksToProcess.remove(outerChunksToProcess.size() - 1); @@ -70,9 +74,11 @@ public class EntityFalloutRain extends Entity { double distance = Math.hypot(x - posX, z - posZ); if(distance <= getScale()) { stomp(x, z, distance * 100 / getScale()); + //WorldUtil.setBiome(worldObj, x, z, BiomeGenCrater.craterBiome); } } } + //WorldUtil.syncBiomeChange(worldObj, chunkPosX, chunkPosZ); } else { setDead(); @@ -161,6 +167,10 @@ public class EntityFalloutRain extends Entity { for(FalloutEntry entry : FalloutConfigJSON.entries) { + if(b == Blocks.grass) { + break; + } + if(entry.eval(worldObj, x, y, z, b, meta, dist)) { if(entry.isSolid()) { depth++; @@ -178,8 +188,8 @@ public class EntityFalloutRain extends Entity { for(int i = 0; i <= depth; i++) { hardness = worldObj.getBlock(x, y + i, z).getBlockHardness(worldObj, x, y + i, z); if(hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0) { - EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); - entityfallingblock.field_145813_c = false; //turn off block drops because block dropping was coded by a mule with dementia + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); + entityfallingblock.canDrop = false; //turn off block drops because block dropping was coded by a mule with dementia worldObj.spawnEntityInWorld(entityfallingblock); } } diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index ceb2dc014..0348b4fd2 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -2,15 +2,12 @@ package com.hbm.entity.effect; import java.util.List; +import com.hbm.entity.mob.EntityGlyphid; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FT_Poison; -import com.hbm.inventory.fluid.trait.FT_Toxin; -import com.hbm.inventory.fluid.trait.FT_VentRadiation; +import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; @@ -25,13 +22,16 @@ import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class EntityMist extends Entity { @@ -40,12 +40,16 @@ public class EntityMist extends Entity { super(world); this.noClip = true; } - + public int maxAge = 150; public EntityMist setArea(float width, float height) { this.dataWatcher.updateObject(11, width); this.dataWatcher.updateObject(12, height); return this; } + public EntityMist setDuration(int duration){ + this.maxAge = duration; + return this; + } @Override protected void entityInit() { @@ -74,7 +78,7 @@ public class EntityMist extends Entity { if(!worldObj.isRemote) { - if(this.ticksExisted > this.getMaxAge()) { + if(this.ticksExisted >= this.getMaxAge()) { this.setDead(); } @@ -128,7 +132,7 @@ public class EntityMist extends Entity { EntityLivingBase living = e instanceof EntityLivingBase ? (EntityLivingBase) e : null; if(type.temperature >= 100) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_boil), 5F + (type.temperature - 100) * 0.02F); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_boil), 0.2F + (type.temperature - 100) * 0.02F); if(type.temperature >= 500) { e.setFire(10); //afterburn for 10 seconds @@ -136,7 +140,7 @@ public class EntityMist extends Entity { } if(type.temperature < -20) { if(living != null) { //only living things are affected - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_cryolator), 5F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_cryolator), 0.2F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); living.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 100, 4)); } @@ -160,11 +164,11 @@ public class EntityMist extends Entity { if(type.hasTrait(FT_Corrosive.class)) { FT_Corrosive trait = type.getTrait(FT_Corrosive.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_acid), trait.getRating() / 20F); if(living != null) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(living, ModDamageSource.acid, trait.getRating() / 60F); for(int i = 0; i < 4; i++) { - ArmorUtil.damageSuit(living, i, trait.getRating() / 5); + ArmorUtil.damageSuit(living, i, trait.getRating() / 50); } } } @@ -191,14 +195,37 @@ public class EntityMist extends Entity { trait.affect(living, intensity); } } + + if(type == Fluids.ENDERJUICE && living != null){ + teleportRandomly(living); + } + + if(type.hasTrait(FT_Pheromone.class)){ + + FT_Pheromone pheromone = type.getTrait(FT_Pheromone.class); + + if(living != null) { + if ((living instanceof EntityGlyphid && pheromone.getType() == 1) || (living instanceof EntityPlayer && pheromone.getType() == 2)) { + int mult = pheromone.getType(); + + living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.regeneration.id, mult * 2 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.resistance.id, mult * 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, mult * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, mult * 60 * 20, 0)); + + } + } + } } protected boolean isExtinguishing(FluidType type) { - return this.getStyleFromType(type) == SprayStyle.MIST && this.getType().temperature < 50 && !type.hasTrait(FT_Flammable.class); + return this.getType().temperature < 50 && !type.hasTrait(FT_Flammable.class); } public int getMaxAge() { - return getStyleFromType(this.getType()) == SprayStyle.GAS ? 600 : 150; + return maxAge; } @Override @@ -242,10 +269,76 @@ public class EntityMist extends Entity { return SprayStyle.NULL; } - + public static enum SprayStyle { MIST, //liquids that have been sprayed into a mist GAS, //things that were already gaseous NULL } + + //terribly copy-pasted from EntityChemical.class, whose method was terribly copy-pasted from EntityEnderman.class + //the fun never ends + public void teleportRandomly(Entity e) { + double x = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; + double y = this.posY + (double) (this.rand.nextInt(64) - 32); + double z = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; + this.teleportTo(e, x, y, z); + } + + public void teleportTo(Entity e, double x, double y, double z) { + + double targetX = e.posX; + double targetY = e.posY; + double targetZ = e.posZ; + e.posX = x; + e.posY = y; + e.posZ = z; + boolean flag = false; + int i = MathHelper.floor_double(e.posX); + int j = MathHelper.floor_double(e.posY); + int k = MathHelper.floor_double(e.posZ); + + if(e.worldObj.blockExists(i, j, k)) { + boolean flag1 = false; + + while(!flag1 && j > 0) { + Block block = e.worldObj.getBlock(i, j - 1, k); + + if(block.getMaterial().blocksMovement()) { + flag1 = true; + } else { + --e.posY; + --j; + } + } + + if(flag1) { + e.setPosition(e.posX, e.posY, e.posZ); + + if(e.worldObj.getCollidingBoundingBoxes(e, e.boundingBox).isEmpty() && !e.worldObj.isAnyLiquid(e.boundingBox)) { + flag = true; + } + } + } + + if(!flag) { + e.setPosition(targetX, targetY, targetZ); + } else { + short short1 = 128; + + for(int l = 0; l < short1; ++l) { + double d6 = (double) l / ((double) short1 - 1.0D); + float f = (this.rand.nextFloat() - 0.5F) * 0.2F; + float f1 = (this.rand.nextFloat() - 0.5F) * 0.2F; + float f2 = (this.rand.nextFloat() - 0.5F) * 0.2F; + double d7 = targetX + (e.posX - targetX) * d6 + (this.rand.nextDouble() - 0.5D) * (double) e.width * 2.0D; + double d8 = targetY + (e.posY - targetY) * d6 + this.rand.nextDouble() * (double) e.height; + double d9 = targetZ + (e.posZ - targetZ) * d6 + (this.rand.nextDouble() - 0.5D) * (double) e.width * 2.0D; + e.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2); + } + + e.worldObj.playSoundEffect(targetX, targetY, targetZ, "mob.endermen.portal", 1.0F, 1.0F); + e.playSound("mob.endermen.portal", 1.0F, 1.0F); + } + } } diff --git a/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java new file mode 100644 index 000000000..3316c8015 --- /dev/null +++ b/src/main/java/com/hbm/entity/grenade/EntityDisperserCanister.java @@ -0,0 +1,75 @@ +package com.hbm.entity.grenade; + +import com.hbm.entity.effect.EntityMist; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityDisperserCanister extends EntityGrenadeBase { + + public EntityDisperserCanister(World p_i1773_1_) { + super(p_i1773_1_); + } + + public EntityDisperserCanister(World p_i1774_1_, EntityLivingBase p_i1774_2_) { + super(p_i1774_1_, p_i1774_2_); + } + + public EntityDisperserCanister(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } + + public EntityDisperserCanister setFluid(int id) { + this.dataWatcher.updateObject(12, id); + return this; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(12, 0); + this.dataWatcher.addObject(13, 0); + } + + public EntityDisperserCanister setType(int id) { + this.dataWatcher.updateObject(13, id); + return this; + } + + public FluidType getFluid() { + return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(12)); + } + + public Item getType() { + return Item.getItemById(this.dataWatcher.getWatchableObjectInt(13)); + } + + @Override + public void explode() { + if(!worldObj.isRemote) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(getFluid()); + mist.setPosition(posX, posY, posZ); + mist.setArea(10, 5); + mist.setDuration(80); + worldObj.spawnEntityInWorld(mist); + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("fluid", this.dataWatcher.getWatchableObjectInt(12)); + nbt.setInteger("item", this.dataWatcher.getWatchableObjectInt(13)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(12, nbt.getInteger("fluid")); + this.dataWatcher.updateObject(13, nbt.getInteger("item")); + + } +} diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java index 9b0062987..03b16f48c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBase.java @@ -13,6 +13,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; +@Deprecated public abstract class EntityGrenadeBase extends EntityThrowable { public EntityGrenadeBase(World p_i1773_1_) { @@ -31,24 +32,20 @@ public abstract class EntityGrenadeBase extends EntityThrowable { public void onUpdate() { super.onUpdate(); - - this.prevRotationPitch = this.rotationPitch; - - this.rotationPitch -= Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() * 25; - - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } + this.prevRotationPitch = this.rotationPitch; + this.rotationPitch -= Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() * 25; + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } - this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; } @Override diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java index 601381cee..98da6e84c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java @@ -8,52 +8,51 @@ import com.hbm.items.weapon.ItemGrenade; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityGrenadeIFNull extends EntityGrenadeBouncyBase { - public EntityGrenadeIFNull(World p_i1773_1_) - { - super(p_i1773_1_); - } + public EntityGrenadeIFNull(World world) { + super(world); + } - public EntityGrenadeIFNull(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } + public EntityGrenadeIFNull(World world, EntityLivingBase thrower) { + super(world, thrower); + } - public EntityGrenadeIFNull(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } + public EntityGrenadeIFNull(World world, double x, double y, double z) { + super(world, x, y, z); + } - @Override - public void explode() { - - if (!this.worldObj.isRemote) - { - this.setDead(); + @Override + public void explode() { - for(int a = -3; a <= 3; a++) - for(int b = -3; b <= 3; b++) - for(int c = -3; c <= 3; c++) - worldObj.setBlockToAir((int)posX + a, (int)posY + b, (int)posZ + c); - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox((int)posX + 0.5 - 3, (int)posY + 0.5 - 3, (int)posZ + 0.5 - 3, (int)posX + 0.5 + 3, (int)posY + 0.5 + 3, (int)posZ + 0.5 + 3)); - - for(Object o : list) { - if(o instanceof EntityLivingBase) { - EntityLivingBase e = (EntityLivingBase)o; - - e.setHealth(0); - } else if(o instanceof Entity) { - Entity e = (Entity)o; - - e.setDead(); - } - } - } - } + if(!this.worldObj.isRemote) { + this.setDead(); + + int range = 5; + + for(int a = -range; a <= range; a++) + for(int b = -range; b <= range; b++) + for(int c = -range; c <= range; c++) + worldObj.setBlockToAir((int) Math.floor(posX + a), (int) Math.floor(posY + b), (int) Math.floor(posZ + c)); + + List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, + AxisAlignedBB.getBoundingBox((int) posX + 0.5 - 3, (int) posY + 0.5 - 3, (int) posZ + 0.5 - 3, (int) posX + 0.5 + 3, (int) posY + 0.5 + 3, (int) posZ + 0.5 + 3)); + + for(Object o : list) { + if(o instanceof EntityLivingBase) { + EntityLivingBase e = (EntityLivingBase) o; + e.setHealth(0); + e.onDeath(DamageSource.outOfWorld); + } else if(o instanceof Entity) { + Entity e = (Entity) o; + e.setDead(); + } + } + } + } @Override protected int getMaxTimer() { diff --git a/src/main/java/com/hbm/entity/item/EntityBoatRubber.java b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java new file mode 100644 index 000000000..bcf638c7a --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java @@ -0,0 +1,491 @@ +package com.hbm.entity.item; + +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.util.TrackerUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.entity.item.EntityBoat; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +public class EntityBoatRubber extends Entity { + + private boolean isBoatEmpty; + private double speedMultiplier; + private int boatPosRotationIncrements; + private double boatX; + private double boatY; + private double boatZ; + private double boatYaw; + private double boatPitch; + @SideOnly(Side.CLIENT) private double velocityX; + @SideOnly(Side.CLIENT) private double velocityY; + @SideOnly(Side.CLIENT) private double velocityZ; + public float prevRenderYaw; + + public EntityBoatRubber(World world) { + super(world); + this.isBoatEmpty = true; + this.speedMultiplier = 0.07D; + this.preventEntitySpawning = true; + this.setSize(1.5F, 0.6F); + this.yOffset = this.height / 2.0F; + } + + public EntityBoatRubber(World world, double x, double y, double z) { + this(world); + this.setPosition(x, y + (double) this.yOffset, z); + this.motionX = 0.0D; + this.motionY = 0.0D; + this.motionZ = 0.0D; + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + } + + protected void entityInit() { + this.dataWatcher.addObject(17, new Integer(0)); + this.dataWatcher.addObject(18, new Integer(1)); + this.dataWatcher.addObject(19, new Float(0.0F)); + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return entity.boundingBox; + } + @Override + public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } + @Override + public boolean canBePushed() { + return true; + } + @Override + public double getMountedYOffset() { + return (double) this.height * 0.0D - 0.3D; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(this.isEntityInvulnerable()) { + return false; + } else if(!this.worldObj.isRemote && !this.isDead) { + this.setForwardDirection(-this.getForwardDirection()); + this.setTimeSinceHit(10); + this.setDamageTaken(this.getDamageTaken() + amount * 10.0F); + this.setBeenAttacked(); + boolean hitByCreative = source.getEntity() instanceof EntityPlayer && ((EntityPlayer) source.getEntity()).capabilities.isCreativeMode; + + if(hitByCreative || this.getDamageTaken() > 40.0F) { + if(this.riddenByEntity != null) { + this.riddenByEntity.mountEntity(this); + } + + if(!hitByCreative) { + this.dropBoat(); + } + + this.setDead(); + } + + return true; + } else { + return true; + } + } + + @Override + @SideOnly(Side.CLIENT) + public void performHurtAnimation() { + this.setForwardDirection(-this.getForwardDirection()); + this.setTimeSinceHit(10); + this.setDamageTaken(this.getDamageTaken() * 11.0F); + } + + @Override + public boolean canBeCollidedWith() { + return !this.isDead; + } + + @Override + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int interp) { + if(this.isBoatEmpty) { + this.boatPosRotationIncrements = interp; + } else { + double d3 = x - this.posX; + double d4 = y - this.posY; + double d5 = z - this.posZ; + double d6 = d3 * d3 + d4 * d4 + d5 * d5; + + if(d6 <= 1.0D) { + return; + } + + this.boatPosRotationIncrements = 3; + } + + this.boatX = x; + this.boatY = y; + this.boatZ = z; + this.boatYaw = (double) yaw; + this.boatPitch = (double) pitch; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + @SideOnly(Side.CLIENT) + public void setVelocity(double x, double y, double z) { + this.velocityX = this.motionX = x; + this.velocityY = this.motionY = y; + this.velocityZ = this.motionZ = z; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(this.getTimeSinceHit() > 0) { + this.setTimeSinceHit(this.getTimeSinceHit() - 1); + } + + if(this.getDamageTaken() > 0.0F) { + this.setDamageTaken(this.getDamageTaken() - 1.0F); + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + byte b0 = 5; + double d0 = 0.0D; + + for(int i = 0; i < b0; ++i) { + double d1 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double) (i + 0) / (double) b0 - 0.125D; + double d3 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double) (i + 1) / (double) b0 - 0.125D; + AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox(this.boundingBox.minX, d1, this.boundingBox.minZ, this.boundingBox.maxX, d3, this.boundingBox.maxZ); + + if(this.worldObj.isAABBInMaterial(axisalignedbb, Material.water)) { + d0 += 1.0D / (double) b0; + } + } + + if(this.worldObj.isRemote && this.isBoatEmpty) { + if(this.boatPosRotationIncrements > 0) { + double x = this.posX + (this.boatX - this.posX) / (double) this.boatPosRotationIncrements; + double y = this.posY + (this.boatY - this.posY) / (double) this.boatPosRotationIncrements; + double z = this.posZ + (this.boatZ - this.posZ) / (double) this.boatPosRotationIncrements; + double yaw = MathHelper.wrapAngleTo180_double(this.boatYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + yaw / (double) this.boatPosRotationIncrements); + this.rotationPitch = (float) ((double) this.rotationPitch + (this.boatPitch - (double) this.rotationPitch) / (double) this.boatPosRotationIncrements); + --this.boatPosRotationIncrements; + this.setPosition(x, y, z); + + } else { + double x = this.posX + this.motionX; + double y = this.posY + this.motionY; + double z = this.posZ + this.motionZ; + this.setPosition(x, y, z); + + if(this.onGround) { + this.motionX *= 0.5D; + this.motionY *= 0.5D; + this.motionZ *= 0.5D; + } + + this.passiveDeccelerate(); + } + } else { + if(d0 < 1.0D) { + double d2 = d0 * 2.0D - 1.0D; + this.motionY += 0.04D * d2; + } else { + if(this.motionY < 0.0D) { + this.motionY /= 2.0D; + } + + this.motionY += 0.007000000216066837D; + } + + double prevSpeedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + + this.isAirBorne = false; + + if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase) { + EntityLivingBase entitylivingbase = (EntityLivingBase) this.riddenByEntity; + + if(entitylivingbase.moveForward != 0 || entitylivingbase.moveStrafing != 0) { + + Vec3 dir = Vec3.createVectorHelper(0, 0, 1); + dir.rotateAroundY((float) -((this.rotationYaw + 90) * Math.PI / 180D)); + this.motionX += dir.xCoord * this.speedMultiplier * entitylivingbase.moveForward * 0.05D; + this.motionZ += dir.zCoord * this.speedMultiplier * entitylivingbase.moveForward * 0.05D; + + float prevYaw = this.rotationYaw; + this.rotationYaw -= entitylivingbase.moveStrafing * 3; + + Vec3 newMotion = Vec3.createVectorHelper(motionX, 0, motionZ); + newMotion.rotateAroundY((float) (-(this.rotationYaw - prevYaw) * Math.PI / 180D)); + this.motionX = newMotion.xCoord; + this.motionZ = newMotion.zCoord; + + //HOLY HELL! if we don't shit ourselves over packets and send them at proper intervals, entities are suddenly smooth! who would have thought! mojang certainly didn't! + EntityTrackerEntry entry = TrackerUtil.getTrackerEntry((WorldServer) worldObj, this.getEntityId()); + entry.lastYaw = MathHelper.floor_float(this.rotationYaw * 256.0F / 360.0F) + 10; //force-trigger rotation update + } + } else { + this.motionX *= 0.95D; + this.motionY *= 0.95D; + this.motionZ *= 0.95D; + } + + double speedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if(speedSq > 0.5D) { + double d4 = 0.5D / speedSq; + this.motionX *= d4; + this.motionZ *= d4; + speedSq = 0.5D; + } + + if(speedSq > prevSpeedSq && this.speedMultiplier < 0.5D) { + this.speedMultiplier += (0.5D - this.speedMultiplier) / 50.0D; + + if(this.speedMultiplier > 0.5D) { + this.speedMultiplier = 0.5D; + } + } else { + this.speedMultiplier -= (this.speedMultiplier - 0.07D) / 35.0D; + + if(this.speedMultiplier < 0.07D) { + this.speedMultiplier = 0.07D; + } + } + + for(int index = 0; index < 4; ++index) { + int x = MathHelper.floor_double(this.posX + ((double) (index % 2) - 0.5D) * 0.8D); + int z = MathHelper.floor_double(this.posZ + ((double) (index / 2) - 0.5D) * 0.8D); + + for(int yOff = 0; yOff < 2; ++yOff) { + int y = MathHelper.floor_double(this.posY) + yOff; + Block block = this.worldObj.getBlock(x, y, z); + + if(block == Blocks.snow_layer) { + this.worldObj.setBlockToAir(x, y, z); + this.isCollidedHorizontally = false; + } else if(block == Blocks.waterlily) { + this.worldObj.func_147480_a(x, y, z, true); + this.isCollidedHorizontally = false; + } + } + } + + if(this.onGround) { + this.motionX *= 0.5D; + this.motionY *= 0.5D; + this.motionZ *= 0.5D; + } + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + + if(this.isCollidedHorizontally && prevSpeedSq > 0.2D) { + this.motionX *= 0.25D; + this.motionY *= 0.25D; + this.motionZ *= 0.25D; + + } else { + this.passiveDeccelerate(); + } + + this.rotationPitch = 0.0F; + + if(!(this.riddenByEntity instanceof EntityLivingBase)) { + double yaw = (double) this.rotationYaw; + double deltaX = this.prevPosX - this.posX; + double deltaZ = this.prevPosZ - this.posZ; + + if(deltaX * deltaX + deltaZ * deltaZ > 0.001D) { + yaw = (double) ((float) (Math.atan2(deltaZ, deltaX) * 180.0D / Math.PI)); + } + + double rotationSpeed = MathHelper.wrapAngleTo180_double(yaw - (double) this.rotationYaw); + + if(rotationSpeed > 20.0D) { + rotationSpeed = 20.0D; + } + + if(rotationSpeed < -20.0D) { + rotationSpeed = -20.0D; + } + + this.rotationYaw = (float) ((double) this.rotationYaw + rotationSpeed); + } + + this.setRotation(this.rotationYaw, this.rotationPitch); + + if(!this.worldObj.isRemote) { + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.2D, 0.0D, 0.2D)); + + if(list != null && !list.isEmpty()) { + for(int k1 = 0; k1 < list.size(); ++k1) { + Entity entity = (Entity) list.get(k1); + + if(entity != this.riddenByEntity && entity.canBePushed() && (entity instanceof EntityBoatRubber || entity instanceof EntityBoat)) { + entity.applyEntityCollision(this); + } + } + } + + if(this.riddenByEntity != null && this.riddenByEntity.isDead) { + this.riddenByEntity = null; + } + } + } + + double moX = this.prevPosX - this.posX; + double moZ = this.prevPosZ - this.posZ; + double prevSpeedSq = Math.sqrt(moX * moX + moZ * moZ); + + if(prevSpeedSq > 0.2625D) { + double cosYaw = Math.cos(this.rotationYaw * Math.PI / 180.0D); + double sinYaw = Math.sin(this.rotationYaw * Math.PI / 180.0D); + + for(double j = 0; j < 1.0D + prevSpeedSq * 60.0D; ++j) { + double offset = (double) (this.rand.nextFloat() * 2.0F - 1.0F); + double side = (double) (this.rand.nextInt(2) * 2 - 1) * 0.7D; + double magX; + double magZ; + + if(this.rand.nextBoolean()) { + magX = this.posX - cosYaw * offset * 0.8D + sinYaw * side; + magZ = this.posZ - sinYaw * offset * 0.8D - cosYaw * side; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, moX, 0.1, moZ); + } else { + magX = this.posX + cosYaw + sinYaw * offset * 0.7D; + magZ = this.posZ + sinYaw - cosYaw * offset * 0.7D; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, moX, 0.1, moZ); + } + } + } + } + + protected void passiveDeccelerate() { + this.motionX *= 0.99D; + this.motionY *= 0.95D; + this.motionZ *= 0.99D; + } + + @Override + public void updateRiderPosition() { + if(this.riddenByEntity != null) { + double offX = Math.cos((double) this.rotationYaw * Math.PI / 180.0D) * 0.4D; + double offZ = Math.sin((double) this.rotationYaw * Math.PI / 180.0D) * 0.4D; + this.riddenByEntity.setPosition(this.posX + offX, this.posY + this.getMountedYOffset() + this.riddenByEntity.getYOffset(), this.posZ + offZ); + + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) this.riddenByEntity; + player.renderYawOffset = MathHelper.wrapAngleTo180_float(this.rotationYaw + 90F); + } + } + } + + @Override protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } + @Override protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + @Override + public boolean interactFirst(EntityPlayer player) { + if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != player) { + return true; + } else { + if(!this.worldObj.isRemote) { + player.mountEntity(this); + } + + return true; + } + } + + @Override + protected void updateFallState(double fall, boolean onGround) { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + + if(onGround) { + if(this.fallDistance > 5.0F) { + this.fall(this.fallDistance); + + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + this.dropBoat(); + } + + this.fallDistance = 0.0F; + } + } else if(this.worldObj.getBlock(x, y - 1, z).getMaterial() != Material.water && fall < 0.0D) { + this.fallDistance = (float) ((double) this.fallDistance - fall); + } + } + + public void dropBoat() { + this.func_145778_a(ModItems.boat_rubber, 1, 0.0F); + } + + public void setDamageTaken(float amount) { + this.dataWatcher.updateObject(19, Float.valueOf(amount)); + } + + public float getDamageTaken() { + return this.dataWatcher.getWatchableObjectFloat(19); + } + + public void setTimeSinceHit(int time) { + this.dataWatcher.updateObject(17, Integer.valueOf(time)); + } + + public int getTimeSinceHit() { + return this.dataWatcher.getWatchableObjectInt(17); + } + + public void setForwardDirection(int dir) { + this.dataWatcher.updateObject(18, Integer.valueOf(dir)); + } + + public int getForwardDirection() { + return this.dataWatcher.getWatchableObjectInt(18); + } + + @SideOnly(Side.CLIENT) + public void setIsBoatEmpty(boolean empty) { + this.isBoatEmpty = empty; + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java new file mode 100644 index 000000000..531c19d3d --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -0,0 +1,197 @@ +package com.hbm.entity.item; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, IChunkLoader { + + protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; + public FluidStack fluid; + + private Ticket loaderTicket; + public boolean isChunkLoading = false; + + public EntityDeliveryDrone(World world) { + super(world); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(11, new Byte((byte) 0)); + } + + public EntityDeliveryDrone setChunkLoading() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + return this; + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); + } + + super.onUpdate(); + } + + @Override + public double getSpeed() { + return this.dataWatcher.getWatchableObjectByte(11) == 1 ? 0.375 : 0.125; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + + NBTTagList nbttaglist = new NBTTagList(); + + for(int i = 0; i < this.slots.length; ++i) { + if(this.slots[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + this.slots[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + nbt.setTag("Items", nbttaglist); + + if(fluid != null) { + nbt.setString("fluidType", fluid.type.getName()); + nbt.setInteger("fluidAmount", fluid.fill); + } + + nbt.setByte("load", this.dataWatcher.getWatchableObjectByte(11)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + + NBTTagList nbttaglist = nbt.getTagList("Items", 10); + this.slots = new ItemStack[this.getSizeInventory()]; + + for(int i = 0; i < nbttaglist.tagCount(); ++i) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if(j >= 0 && j < this.slots.length) { + this.slots[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + + if(nbt.hasKey("fluidType")) { + this.fluid = new FluidStack(Fluids.fromName(nbt.getString("fluidType")), nbt.getInteger("fluidAmount")); + } + + this.dataWatcher.updateObject(11, nbt.getByte("load")); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return slots[slot]; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(this.slots[slot] != null) { + ItemStack itemstack; + + if(this.slots[slot].stackSize <= amount) { + itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + itemstack = this.slots[slot].splitStack(amount); + + if(this.slots[slot].stackSize == 0) { + this.slots[slot] = null; + } + + return itemstack; + } + } else { + return null; + } + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + if(this.slots[slot] != null) { + ItemStack itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + this.slots[slot] = stack; + + if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { + stack.stackSize = this.getInventoryStackLimit(); + } + } + + @Override public int getSizeInventory() { return 18; } + @Override public String getInventoryName() { return "container.drone"; } + @Override public int getInventoryStackLimit() { return 64; } + @Override public boolean hasCustomInventoryName() { return false; } + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return false; } + + @Override public void markDirty() { } + @Override public void openInventory() { } + @Override public void closeInventory() { } + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + clearChunkLoader(); + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(newChunkX, newChunkZ)); + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + } + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loaderTicket.getChunkList()) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityDroneBase.java b/src/main/java/com/hbm/entity/item/EntityDroneBase.java new file mode 100644 index 000000000..5cc0e4e97 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityDroneBase.java @@ -0,0 +1,163 @@ +package com.hbm.entity.item; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityDroneBase extends Entity { + + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + @SideOnly(Side.CLIENT) protected double velocityX; + @SideOnly(Side.CLIENT) protected double velocityY; + @SideOnly(Side.CLIENT) protected double velocityZ; + + public double targetX = -1; + public double targetY = -1; + public double targetZ = -1; + + public EntityDroneBase(World world) { + super(world); + this.setSize(1.5F, 2.0F); + } + + public void setTarget(double x, double y, double z) { + this.targetX = x; + this.targetY = y; + this.targetZ = z; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public boolean canAttackWithItem() { + return true; + } + + @Override + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer) { + this.setDead(); + } + + return false; + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, new Byte((byte) 0)); + } + + /** + * 0: Empty
+ * 1: Crate
+ * 2: Barrel
+ */ + public void setAppearance(int style) { + this.dataWatcher.updateObject(10, (byte) style); + } + + public int getAppearance() { + return this.dataWatcher.getWatchableObjectByte(10); + } + + @Override + public void onUpdate() { + + if(worldObj.isRemote) { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + + worldObj.spawnParticle("smoke", posX + 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX - 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ + 1.125, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ - 1.125, 0, -0.2, 0); + } else { + + this.motionX = 0; + this.motionY = 0; + this.motionZ = 0; + + if(this.targetY != -1) { + + Vec3 dist = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ); + double speed = getSpeed(); + + if(dist.lengthVector() >= speed) { + dist = dist.normalize(); + this.motionX = dist.xCoord * speed; + this.motionY = dist.yCoord * speed; + this.motionZ = dist.zCoord * speed; + } + } + + this.moveEntity(motionX, motionY, motionZ); + } + } + + public double getSpeed() { + return 0.125D; + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double motionX, double motionY, double motionZ) { + this.velocityX = this.motionX = motionX; + this.velocityY = this.motionY = motionY; + this.velocityZ = this.motionZ = motionZ; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + + nbt.setDouble("tX", targetX); + nbt.setDouble("tY", targetY); + nbt.setDouble("tZ", targetZ); + + nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("tY")) { + this.targetX = nbt.getDouble("tX"); + this.targetY = nbt.getDouble("tY"); + this.targetZ = nbt.getDouble("tZ"); + } + + this.dataWatcher.updateObject(10, nbt.getByte("app")); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java new file mode 100644 index 000000000..cabc90143 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java @@ -0,0 +1,286 @@ +package com.hbm.entity.item; + +import java.util.ArrayList; +import java.util.Iterator; + +import com.hbm.blocks.BlockFallingNT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFalling; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import net.minecraft.crash.CrashReportCategory; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class EntityFallingBlockNT extends Entity { + + private Block fallingBlock; + private int fallingMeta = -1; + public int fallingTicks; + public boolean canDrop; + private boolean destroyOnLand; + private boolean canHurtEntities; + private int damageCap; + private float damageAmount; + public NBTTagCompound tileNBT; + + public EntityFallingBlockNT(World world) { + super(world); + this.canDrop = true; + this.damageCap = 40; + this.damageAmount = 2.0F; + this.setSize(0.98F, 0.98F); + this.yOffset = this.height / 2.0F; + } + + public EntityFallingBlockNT(World world, double x, double y, double z, Block block) { + this(world, x, y, z, block, 0); + } + + public EntityFallingBlockNT(World world, double x, double y, double z, Block block, int meta) { + super(world); + this.canDrop = true; + this.damageCap = 40; + this.damageAmount = 2.0F; + this.fallingBlock = block; + this.dataWatcher.updateObject(10, Block.getIdFromBlock(fallingBlock)); + this.fallingMeta = meta; + this.dataWatcher.updateObject(11, fallingMeta); + this.preventEntitySpawning = true; + this.setPosition(x, y, z); + this.motionX = 0.0D; + this.motionY = 0.0D; + this.motionZ = 0.0D; + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + } + + @Override protected void entityInit() { + this.dataWatcher.addObject(10, new Integer(0)); + this.dataWatcher.addObject(11, new Integer(0)); + } + + public Block getBlock() { + if(this.fallingBlock != null) return this.fallingBlock; + + this.fallingBlock = Block.getBlockById(this.dataWatcher.getWatchableObjectInt(10)); + return this.fallingBlock; + } + + public int getMeta() { + if(this.fallingMeta != -1) return this.fallingMeta; + this.fallingMeta = 0; + + this.fallingMeta = this.dataWatcher.getWatchableObjectInt(11); + return this.fallingMeta; + } + + @Override protected boolean canTriggerWalking() { return false; } + @Override public boolean canBeCollidedWith() { return !this.isDead; } + + public void onUpdate() { + + if(this.getBlock().getMaterial() == Material.air) { + this.setDead(); + } else { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + ++this.fallingTicks; + this.motionY -= 0.04D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.98D; + this.motionY *= 0.98D; + this.motionZ *= 0.98D; + + if(!this.worldObj.isRemote) { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + + if(this.fallingTicks == 1) { + if(this.worldObj.getBlock(x, y, z) != this.getBlock()) { + this.setDead(); + return; + } + + this.worldObj.setBlockToAir(x, y, z); + } + + if(this.onGround) { + this.motionX *= 0.7D; + this.motionZ *= 0.7D; + this.motionY *= -0.5D; + + if(this.worldObj.getBlock(x, y, z) != Blocks.piston_extension) { + this.setDead(); + + if(!this.destroyOnLand && replacementCheck(x, y, z) && this.worldObj.setBlock(x, y, z, this.getBlock(), this.getMeta(), 3)) { + + if(this.getBlock() instanceof BlockFalling) ((BlockFalling) this.getBlock()).func_149828_a(this.worldObj, x, y, z, this.getMeta()); + if(this.getBlock() instanceof BlockFallingNT) ((BlockFallingNT) this.getBlock()).onLand(this.worldObj, x, y, z, this.getMeta()); + + if(this.tileNBT != null && this.getBlock() instanceof ITileEntityProvider) { + TileEntity tileentity = this.worldObj.getTileEntity(x, y, z); + + if(tileentity != null) { + NBTTagCompound nbt = new NBTTagCompound(); + tileentity.writeToNBT(nbt); + Iterator it = this.tileNBT.func_150296_c().iterator(); + + while(it.hasNext()) { + String s = (String) it.next(); + NBTBase nbtbase = this.tileNBT.getTag(s); + + if(!s.equals("x") && !s.equals("y") && !s.equals("z")) { + nbt.setTag(s, nbtbase.copy()); + } + } + + tileentity.readFromNBT(nbt); + tileentity.markDirty(); + } + } + } else if(this.canDrop && !this.destroyOnLand) { + this.entityDropItem(new ItemStack(this.getBlock(), 1, this.getBlock().damageDropped(this.getMeta())), 0.0F); + } + } + } else if(this.fallingTicks > 100 && !this.worldObj.isRemote && (y < 1 || y > 256) || this.fallingTicks > 600) { + if(this.canDrop) { + this.entityDropItem(new ItemStack(this.getBlock(), 1, this.getBlock().damageDropped(this.getMeta())), 0.0F); + } + + this.setDead(); + } + } + } + } + + public boolean replacementCheck(int x, int y, int z) { + return worldObj.getBlock(x, y, z).isReplaceable(worldObj, x, y, z) && this.getBlock().canBlockStay(worldObj, x, y, z); + } + + @Override + protected void fall(float fallDistance) { + + if(this.canHurtEntities) { + int fall = MathHelper.ceiling_float_int(fallDistance - 1.0F); + + if(fall > 0) { + ArrayList arraylist = new ArrayList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox)); + boolean isAnvil = this.getBlock() == Blocks.anvil; + DamageSource damagesource = isAnvil ? DamageSource.anvil : DamageSource.fallingBlock; + Iterator iterator = arraylist.iterator(); + + while(iterator.hasNext()) { + Entity entity = (Entity) iterator.next(); + entity.attackEntityFrom(damagesource, (float) Math.min(MathHelper.floor_float((float) fall * this.damageAmount), this.damageCap)); + } + + if(isAnvil && (double) this.rand.nextFloat() < 0.05D + (double) fall * 0.05D) { + int j = this.getMeta() >> 2; + int k = this.getMeta() & 3; + ++j; + + if(j > 2) { + this.destroyOnLand = true; + } else { + this.fallingMeta = k | j << 2; + } + } + } + } + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setByte("Tile", (byte) Block.getIdFromBlock(this.fallingBlock)); + nbt.setInteger("TileID", Block.getIdFromBlock(this.fallingBlock)); + nbt.setByte("Data", (byte) this.fallingMeta); + nbt.setByte("Time", (byte) this.fallingTicks); + nbt.setBoolean("DropItem", this.canDrop); + nbt.setBoolean("HurtEntities", this.canHurtEntities); + nbt.setFloat("FallHurtAmount", this.damageAmount); + nbt.setInteger("FallHurtMax", this.damageCap); + + if(this.tileNBT != null) { + nbt.setTag("TileEntityData", this.tileNBT); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("TileID", 99)) { + this.fallingBlock = Block.getBlockById(nbt.getInteger("TileID")); + } else { + this.fallingBlock = Block.getBlockById(nbt.getByte("Tile") & 255); + } + + this.fallingMeta = nbt.getByte("Data") & 255; + this.fallingTicks = nbt.getByte("Time") & 255; + + if(nbt.hasKey("HurtEntities", 99)) { + this.canHurtEntities = nbt.getBoolean("HurtEntities"); + this.damageAmount = nbt.getFloat("FallHurtAmount"); + this.damageCap = nbt.getInteger("FallHurtMax"); + } else if(this.fallingBlock == Blocks.anvil) { + this.canHurtEntities = true; + } + + if(nbt.hasKey("DropItem", 99)) { + this.canDrop = nbt.getBoolean("DropItem"); + } + + if(nbt.hasKey("TileEntityData", 10)) { + this.tileNBT = nbt.getCompoundTag("TileEntityData"); + } + + if(this.fallingBlock.getMaterial() == Material.air) { + this.fallingBlock = Blocks.sand; + } + } + + public void func_145806_a(boolean p_145806_1_) { + this.canHurtEntities = p_145806_1_; + } + + @Override + public void addEntityCrashInfo(CrashReportCategory report) { + super.addEntityCrashInfo(report); + report.addCrashSection("Immitating block ID", Integer.valueOf(Block.getIdFromBlock(this.fallingBlock))); + report.addCrashSection("Immitating block data", Integer.valueOf(this.fallingMeta)); + } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + @SideOnly(Side.CLIENT) + public World getWorldForRender() { + return this.worldObj; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean canRenderOnFire() { + return false; + } + + public Block getBlockForRender() { + return this.getBlock(); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java new file mode 100644 index 000000000..0b5294516 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -0,0 +1,232 @@ +package com.hbm.entity.item; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDrone.EnumDroneType; +import com.hbm.tileentity.network.TileEntityDroneDock; +import com.hbm.tileentity.network.TileEntityDroneProvider; +import com.hbm.tileentity.network.TileEntityDroneRequester; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityRequestDrone extends EntityDroneBase { + + public ItemStack heldItem; + public List program = new ArrayList(); + int nextActionTimer = 0; + + public static enum DroneProgram { + UNLOAD, DOCK + } + + public EntityRequestDrone(World world) { + super(world); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() < 0.01) { + + if(nextActionTimer > 0) { + nextActionTimer--; + } else { + + if(program.isEmpty()) { + this.setDead(); //self-destruct if no further operations are pending + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + return; + } + + Object next = program.get(0); + program.remove(0); + + if(next instanceof BlockPos) { + BlockPos pos = (BlockPos) next; + this.setTarget(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); + } else if(next instanceof AStack && heldItem == null) { + + AStack aStack = (AStack) next; + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + + if(tile instanceof TileEntityDroneProvider) { + TileEntityDroneProvider provider = (TileEntityDroneProvider) tile; + + for(int i = 0; i < provider.slots.length; i++) { + ItemStack stack = provider.slots[i]; + + if(stack != null && aStack.matchesRecipe(stack, true)) { + this.heldItem = stack.copy(); + this.setAppearance(1); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:item.unpack", 0.5F, 0.75F); + provider.slots[i] = null; + provider.markDirty(); + break; + } + } + } + nextActionTimer = 5; + } else if(next == DroneProgram.UNLOAD && this.heldItem != null) { + + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + if(tile instanceof TileEntityDroneRequester) { + TileEntityDroneRequester requester = (TileEntityDroneRequester) tile; + + for(int i = 9; i < 18; i++) { + ItemStack stack = requester.slots[i]; + if(stack != null && stack.getItem() == heldItem.getItem() && stack.getItemDamage() == heldItem.getItemDamage()) { + int toTransfer = Math.min(stack.getMaxStackSize() - stack.stackSize, heldItem.stackSize); + requester.slots[i].stackSize += toTransfer; + this.heldItem.stackSize -= toTransfer; + } + } + + if(this.heldItem.stackSize <= 0) this.heldItem = null; + + if(this.heldItem != null) for(int i = 9; i < 18; i++) { + if(requester.slots[i] == null) { + requester.slots[i] = this.heldItem.copy(); + this.heldItem = null; + break; + } + } + + if(this.heldItem == null) { + this.setAppearance(0); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:item.unpack", 0.5F, 0.75F); + } + + requester.markDirty(); + } + nextActionTimer = 5; + } else if(next == DroneProgram.DOCK) { + + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + if(tile instanceof TileEntityDroneDock) { + TileEntityDroneDock dock = (TileEntityDroneDock) tile; + + for(int i = 0; i < dock.slots.length; i++) { + if(dock.slots[i] == null) { + this.setDead(); + dock.slots[i] = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); + this.worldObj.playSoundEffect(dock.xCoord + 0.5, dock.yCoord + 0.5, dock.zCoord + 0.5, "hbm:block.storageClose", 2.0F, 1.0F); + break; + } + } + } + + if(!this.isDead) { + this.setDead(); + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + } + } + } + } + } + } + + @Override + public double getSpeed() { + return 0.5D; + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + + if(nbt.hasKey("held")) { + NBTTagCompound stack = nbt.getCompoundTag("held"); + this.heldItem = ItemStack.loadItemStackFromNBT(stack); + } + + nextActionTimer = 5; + + this.dataWatcher.updateObject(10, nbt.getByte("app")); + + int size = nbt.getInteger("programSize"); + + for(int i = 0; i < size; i++) { + NBTTagCompound data = nbt.getCompoundTag("program" + i); + String pType = data.getString("type"); + + if("pos".equals(pType)) { + int[] pos = data.getIntArray("pos"); + this.program.add(new BlockPos(pos[0], pos[1], pos[2])); + } else if("unload".equals(pType)) { + this.program.add(DroneProgram.UNLOAD); + } else if("dock".equals(pType)) { + this.program.add(DroneProgram.DOCK); + } else if("comp".equals(pType)) { + ComparableStack comp = new ComparableStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getInteger("meta")); + this.program.add(comp); + } else if("dict".equals(pType)) { + OreDictStack dict = new OreDictStack(nbt.getString("dict")); + this.program.add(dict); + } + } + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + + if(heldItem != null) { + NBTTagCompound stack = new NBTTagCompound(); + this.heldItem.writeToNBT(stack); + nbt.setTag("held", stack); + } + + nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + + int size = this.program.size(); + nbt.setInteger("programSize", size); + + for(int i = 0; i < size; i++) { + NBTTagCompound data = new NBTTagCompound(); + Object p = this.program.get(i); + + if(p instanceof BlockPos) { + BlockPos pos = (BlockPos) p; + data.setString("type", "pos"); + data.setIntArray("pos", new int[] {pos.getX(), pos.getY(), pos.getZ()}); + } else if(p instanceof AStack) { + + // neither of these wretched fungii works correctly, but so long as the pathing works (which it does), it means that the drone will + // eventually return to the dock and not got lost, and simply retry the task + if(p instanceof ComparableStack) { + ComparableStack comp = (ComparableStack) p; + data.setString("type", "comp"); + data.setInteger("id", Item.getIdFromItem(comp.item)); + data.setInteger("meta", comp.meta); + } else { + OreDictStack dict = (OreDictStack) p; + data.setString("type", "dict"); + data.setString("dict", dict.name); + } + + } else if(p == DroneProgram.UNLOAD) { + data.setString("type", "unload"); + + } else if(p == DroneProgram.DOCK) { + data.setString("type", "dock"); + + } + + nbt.setTag("program" + i, data); + } + } +} diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java deleted file mode 100644 index 014e0e3fc..000000000 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionNT.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.entity.logic; - -import com.hbm.explosion.nt.IExplosionLogic; -import com.hbm.explosion.nt.Mark5Ausf2; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -@Deprecated -public class EntityNukeExplosionNT extends Entity { - - private IExplosionLogic explosion; - - public EntityNukeExplosionNT(World world) { - super(world); - } - - public EntityNukeExplosionNT loadLogic(IExplosionLogic explosion) { - this.explosion = explosion; - return this; - } - - @Override - public void onUpdate() { - - if(!worldObj.isRemote) { - if(this.explosion == null || this.explosion.isDone()) { - this.setDead(); - return; - } - - this.explosion.updateLogic(); - } - } - - public static EntityNukeExplosionNT statFacMKV(World world, double x, double y, double z, float power) { - EntityNukeExplosionNT essploshun = new EntityNukeExplosionNT(world); - essploshun.setPositionAndRotation(x, y, z, 0, 0); - essploshun.loadLogic(new Mark5Ausf2(world, power, (float) x, (float) y, (float) z)); - return essploshun; - } - - @Override - protected void entityInit() { } - - @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } - - @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } -} diff --git a/src/main/java/com/hbm/entity/logic/EntityWaypoint.java b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java new file mode 100644 index 000000000..33712524e --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityWaypoint.java @@ -0,0 +1,134 @@ +package com.hbm.entity.logic; + +import com.hbm.config.MobConfig; +import com.hbm.entity.mob.EntityGlyphid; +import static com.hbm.entity.mob.EntityGlyphid.*; +import com.hbm.entity.mob.EntityGlyphidNuclear; +import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.main.MainRegistry; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +import java.util.List; + +public class EntityWaypoint extends Entity { + public EntityWaypoint(World world) { + super(world); + this.isImmuneToFire = true; + this.noClip = true; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, 0); + // this.dataWatcher.addObject(11, 0); + + } + + public int maxAge = 2400; + public int radius = 3; + public boolean highPriority = false; + protected EntityWaypoint additional; + + public void setHighPriority() { + highPriority = true; + } + + public int getWaypointType() { + return this.dataWatcher.getWatchableObjectInt(10); + } + + public void setAdditionalWaypoint(EntityWaypoint waypoint) { + additional = waypoint; + } + + public void setWaypointType(int waypointType) { + this.dataWatcher.updateObject(10, waypointType); + } + + boolean hasSpawned = false; + + public int getColor() { + switch(getWaypointType()) { + + case TASK_RETREAT_FOR_REINFORCEMENTS: return 0x5FA6E8; + case TASK_BUILD_HIVE: + case TASK_INITIATE_RETREAT: return 0x127766; + default: return 0x566573; + } + } + + AxisAlignedBB bb; + + @Override + public void onEntityUpdate() { + if(ticksExisted >= maxAge) { + this.setDead(); + } + + bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); + + if(!worldObj.isRemote) { + + if(ticksExisted % 40 == 0) { + + List targets = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + + for(Entity e : targets) { + if(e instanceof EntityGlyphid) { + + EntityGlyphid bug = ((EntityGlyphid) e); + + if(additional != null && !hasSpawned) { + worldObj.spawnEntityInWorld(additional); + hasSpawned = true; + } + + boolean exceptions = bug.getWaypoint() != this || e instanceof EntityGlyphidScout || e instanceof EntityGlyphidNuclear; + + if(!exceptions) + bug.setCurrentTask(getWaypointType(), additional); + + if(getWaypointType() == TASK_BUILD_HIVE) { + if(e instanceof EntityGlyphidScout) + setDead(); + } else { + setDead(); + } + + } + } + } + } else if(MobConfig.waypointDebug) { + + double x = bb.minX + (rand.nextDouble() - 0.5) * (bb.maxX - bb.minX); + double y = bb.minY + rand.nextDouble() * (bb.maxY - bb.minY); + double z = bb.minZ + (rand.nextDouble() - 0.5) * (bb.maxZ - bb.minZ); + + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 0.5F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 2F); + fx.setInteger("life", 50 + worldObj.rand.nextInt(10)); + fx.setInteger("color", getColor()); + fx.setDouble("posX", x); + fx.setDouble("posY", y); + fx.setDouble("posZ", z); + MainRegistry.proxy.effectNT(fx); + } + + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + this.setWaypointType(nbt.getInteger("type")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("type", getWaypointType()); + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index b350038be..3dbb048d8 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -1,156 +1,232 @@ package com.hbm.entity.missile; +import java.util.ArrayList; import java.util.List; -import com.hbm.entity.particle.EntitySmokeFX; +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityMissileAntiBallistic extends Entity implements IRadarDetectable { +public class EntityMissileAntiBallistic extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable, IRadarDetectableNT { - int activationTimer; + private Ticket loaderTicket; + public Entity tracking; + public double velocity; + protected int activationTimer; + + public static double baseSpeed = 1.5D; - public EntityMissileAntiBallistic(World p_i1582_1_) { - super(p_i1582_1_); - } - - @Override - public void onUpdate() { - - if(activationTimer < 40) { - activationTimer++; - - motionY = 1.5D; - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - - if(!this.worldObj.isRemote && this.posY < 400) - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - } else { - - if(activationTimer == 40) { - ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, posZ, 15); - activationTimer = 100; - } - - for(int i = 0; i < 5; i++) { - - targetMissile(); - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - - if(!this.worldObj.isRemote && this.posY < 400) - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 5, posY - 5, posZ - 5, posX + 5, posY + 5, posZ + 5)); - - for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, true); - this.setDead(); - return; - } - } - } - } - - if(this.posY > 2000) - this.setDead(); - - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10F, true, true, true); - } - this.setDead(); - return; - } - - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; - } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - } - - private void targetMissile() { - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 500, 0, posZ - 500, posX + 500, 5000, posZ + 500)); - - Entity target = null; - double closest = 1000D; - - for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { - double dis = Math.sqrt(Math.pow(e.posX - posX, 2) + Math.pow(e.posY - posY, 2) + Math.pow(e.posZ - posZ, 2)); - - if(dis < closest) { - closest = dis; - target = e; - } - } - } - - if(target != null) { - - Vec3 vec = Vec3.createVectorHelper(target.posX - posX, target.posY - posY, target.posZ - posZ); - - vec.normalize(); - - this.motionX = vec.xCoord * 0.065D; - this.motionY = vec.yCoord * 0.065D; - this.motionZ = vec.zCoord * 0.065D; - } + public EntityMissileAntiBallistic(World world) { + super(world); + this.setSize(1.5F, 1.5F); + this.motionY = baseSpeed; } @Override protected void entityInit() { - + super.entityInit(); + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); } @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - + protected double motionMult() { + return velocity; } @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + public boolean doesImpactEntities() { + return false; + } + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(velocity < 6) velocity += 0.1; + + if(activationTimer < 40) { + activationTimer++; + motionY = baseSpeed; + } else { + Entity prevTracking = this.tracking; + + if(this.tracking == null || this.tracking.isDead) this.targetMissile(); + + if(prevTracking == null && this.tracking != null) { + ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 24, 3F); + } + + if(this.tracking != null) { + this.aimAtTarget(); + } else { + if(this.ticksExisted > 600) this.setDead(); + } + } + + loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); + + if(this.posY > 2000 && (this.tracking == null || this.tracking.isDead)) this.setDead(); + + } else { + + Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); + } + + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + /** Detects and caches nearby EntityMissileBaseNT */ + protected void targetMissile() { + + Entity closest = null; + double dist = 1_000; + + for(Entity e : TileEntityMachineRadarNT.matchingEntities) { + if(e.dimension != this.dimension) continue; + if(!(e instanceof EntityMissileBaseNT)) continue; //can only lock onto missiles + if(e instanceof EntityMissileStealth) continue; //cannot lack onto missiles with stealth coating + + Vec3 vec = Vec3.createVectorHelper(e.posX - posX, e.posY - posY, e.posZ - posZ); + + if(vec.lengthVector() < dist) { + closest = e; + } + } + + this.tracking = closest; + } + + /** Predictive targeting system */ + protected void aimAtTarget() { + + Vec3 delta = Vec3.createVectorHelper(tracking.posX - posX, tracking.posY - posY, tracking.posZ - posZ); + double intercept = delta.lengthVector() / (this.baseSpeed * this.velocity); + Vec3 predicted = Vec3.createVectorHelper(tracking.posX + (tracking.posX - tracking.lastTickPosX) * intercept, tracking.posY + (tracking.posY - tracking.lastTickPosY) * intercept, tracking.posZ + (tracking.posZ - tracking.lastTickPosZ) * intercept); + Vec3 motion = Vec3.createVectorHelper(predicted.xCoord - posX, predicted.yCoord - posY, predicted.zCoord - posZ).normalize(); + + if(delta.lengthVector() < 10 && activationTimer >= 40) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, false); + + } + + this.motionX = motion.xCoord * baseSpeed; + this.motionY = motion.yCoord * baseSpeed; + this.motionZ = motion.zCoord * baseSpeed; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + if(this.activationTimer >= 40) { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 20F, true, false, false); + } + } + + @Override + public double getGravityVelocity() { + return 0.0D; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.velocity = nbt.getDouble("veloc"); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setDouble("veloc", this.velocity); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote) { + + if(ticket != null) { + + if(loaderTicket == null) { + + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + } + + List loadedChunks = new ArrayList(); + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + + loadedChunks.clear(); + for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) loadedChunks.add(new ChunkCoordIntPair(newChunkX + i, newChunkZ + j)); + + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } } @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 500000; + return true; } @Override @@ -158,4 +234,28 @@ public class EntityMissileAntiBallistic extends Entity implements IRadarDetectab return RadarTargetType.MISSILE_AB; } + @Override + public String getUnlocalizedName() { + return "radar.target.abm"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER_AB; + } + + @Override + public boolean canBeSeenBy(Object radar) { + return true; + } + + @Override + public boolean paramsApplicable(RadarScanParams params) { + return params.scanMissiles; + } + + @Override + public boolean suppliesRedstone(RadarScanParams params) { + return false; + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java b/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java deleted file mode 100644 index dcc595d05..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.effect.EntityBlackHole; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBHole extends EntityMissileBaseAdvanced { - - public EntityMissileBHole(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBHole(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if (!this.worldObj.isRemote) - { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 1.5F, true); - - EntityBlackHole bl = new EntityBlackHole(this.worldObj, 1.5F); - bl.posX = this.posX; - bl.posY = this.posY; - bl.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(bl); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.grenade_black_hole, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java deleted file mode 100644 index 69d128a51..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ /dev/null @@ -1,289 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.IChunkLoader; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacket; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.entity.IRadarDetectable; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; - -public abstract class EntityMissileBaseAdvanced extends Entity implements IChunkLoader, IRadarDetectable { - - int startX; - int startZ; - int targetX; - int targetZ; - public int velocity; - double decelY; - double accelXZ; - boolean isCluster = false; - private Ticket loaderTicket; - public int health = 50; - - public EntityMissileBaseAdvanced(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - startX = (int) posX; - startZ = (int) posZ; - targetX = (int) posX; - targetZ = (int) posZ; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { - if(this.isEntityInvulnerable()) { - return false; - } else { - if(!this.isDead && !this.worldObj.isRemote) { - health -= p_70097_2_; - - if(this.health <= 0) { - this.setDead(); - this.killMissile(); - } - } - - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); - ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); - } - - public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, int b) { - super(world); - this.ignoreFrustumCheck = true; - this.setLocationAndAngles(x, y, z, 0, 0); - startX = (int) x; - startZ = (int) z; - targetX = a; - targetZ = b; - this.motionY = 2; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - accelXZ = decelY = 1 / vector.lengthVector(); - decelY *= 2; - - velocity = 1; - - this.setSize(1.5F, 1.5F); - } - - @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - motionX = nbt.getDouble("moX"); - motionY = nbt.getDouble("moY"); - motionZ = nbt.getDouble("moZ"); - posX = nbt.getDouble("poX"); - posY = nbt.getDouble("poY"); - posZ = nbt.getDouble("poZ"); - decelY = nbt.getDouble("decel"); - accelXZ = nbt.getDouble("accel"); - targetX = nbt.getInteger("tX"); - targetZ = nbt.getInteger("tZ"); - startX = nbt.getInteger("sX"); - startZ = nbt.getInteger("sZ"); - velocity = nbt.getInteger("veloc"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setDouble("moX", motionX); - nbt.setDouble("moY", motionY); - nbt.setDouble("moZ", motionZ); - nbt.setDouble("poX", posX); - nbt.setDouble("poY", posY); - nbt.setDouble("poZ", posZ); - nbt.setDouble("decel", decelY); - nbt.setDouble("accel", accelXZ); - nbt.setInteger("tX", targetX); - nbt.setInteger("tZ", targetZ); - nbt.setInteger("sX", startX); - nbt.setInteger("sZ", startZ); - nbt.setInteger("veloc", velocity); - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - public void onUpdate() { - - if(velocity < 1) - velocity = 1; - if(this.ticksExisted > 40) - velocity = 3; - else if(this.ticksExisted > 20) - velocity = 2; - - this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); - - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - //TODO: instead of crappy skipping, implement a hitscan - for(int i = 0; i < velocity; i++) { - //this.posX += this.motionX; - //this.posY += this.motionY; - //this.posZ += this.motionZ; - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - - this.rotation(); - - this.motionY -= decelY; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - - if(motionY > 0) { - motionX += vector.xCoord; - motionZ += vector.zCoord; - } - - if(motionY < 0) { - motionX -= vector.xCoord; - motionZ -= vector.zCoord; - } - - if(!this.worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY, posZ, 2), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 300)); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && - this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && - this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - onImpact(); - } - this.killAndClear(); - return; - } - - loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); - - if(motionY < -1 && this.isCluster && !worldObj.isRemote) { - cluster(); - this.setDead(); - return; - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return true; - } - - public abstract void onImpact(); - - public abstract List getDebris(); - - public abstract ItemStack getDebrisRareDrop(); - - public void cluster() { } - - public void init(Ticket ticket) { - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!worldObj.isRemote && loaderTicket != null) { - - clearChunkLoader(); - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); - - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - - public void killAndClear() { - this.setDead(); - this.clearChunkLoader(); - } - - public void clearChunkLoader() { - if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - } - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java new file mode 100644 index 000000000..70ac4e39c --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -0,0 +1,323 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.projectile.EntityThrowableInterp; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCross; +import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.main.MainRegistry; + +import api.hbm.entity.IRadarDetectableNT; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public abstract class EntityMissileBaseNT extends EntityThrowableInterp implements IChunkLoader, IRadarDetectableNT { + + public int startX; + public int startZ; + public int targetX; + public int targetZ; + public double velocity; + public double decelY; + public double accelXZ; + public boolean isCluster = false; + private Ticket loaderTicket; + public int health = 50; + + public EntityMissileBaseNT(World world) { + super(world); + this.ignoreFrustumCheck = true; + startX = (int) posX; + startZ = (int) posZ; + targetX = (int) posX; + targetZ = (int) posZ; + } + + public EntityMissileBaseNT(World world, float x, float y, float z, int a, int b) { + super(world); + this.ignoreFrustumCheck = true; + this.setLocationAndAngles(x, y, z, 0, 0); + startX = (int) x; + startZ = (int) z; + targetX = a; + targetZ = b; + this.motionY = 2; + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + accelXZ = decelY = 1 / vector.lengthVector(); + decelY *= 2; + velocity = 0; + + this.setSize(1.5F, 1.5F); + } + + @Override + public boolean canBeSeenBy(Object radar) { + return true; + } + + @Override + public boolean paramsApplicable(RadarScanParams params) { + if(!params.scanMissiles) return false; + return true; + } + + @Override + public boolean suppliesRedstone(RadarScanParams params) { + if(params.smartMode && this.motionY >= 0) return false; + return true; + } + + @Override + protected void entityInit() { + super.entityInit(); + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + } + + @Override + protected double motionMult() { + return velocity; + } + + @Override + public boolean doesImpactEntities() { + return false; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(velocity < 4) velocity += 0.025; + + if(!worldObj.isRemote) { + + if(hasPropulsion()) { + this.motionY -= decelY * velocity; + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + vector = vector.normalize(); + vector.xCoord *= accelXZ; + vector.zCoord *= accelXZ; + + if(motionY > 0) { + motionX += vector.xCoord * velocity; + motionZ += vector.zCoord * velocity; + } + + if(motionY < 0) { + motionX -= vector.xCoord * velocity; + motionZ -= vector.zCoord * velocity; + } + } else { + motionX *= 0.99; + motionZ *= 0.99; + + if(motionY > -1.5) + motionY -= 0.05; + } + + if(motionY < -velocity && this.isCluster) { + cluster(); + this.setDead(); + return; + } + + loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); + } else { + this.spawnContrail(); + } + + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + public boolean hasPropulsion() { + return true; + } + + protected void spawnContrail() { + Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + motionX = nbt.getDouble("moX"); + motionY = nbt.getDouble("moY"); + motionZ = nbt.getDouble("moZ"); + posX = nbt.getDouble("poX"); + posY = nbt.getDouble("poY"); + posZ = nbt.getDouble("poZ"); + decelY = nbt.getDouble("decel"); + accelXZ = nbt.getDouble("accel"); + targetX = nbt.getInteger("tX"); + targetZ = nbt.getInteger("tZ"); + startX = nbt.getInteger("sX"); + startZ = nbt.getInteger("sZ"); + velocity = nbt.getDouble("veloc"); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setDouble("moX", motionX); + nbt.setDouble("moY", motionY); + nbt.setDouble("moZ", motionZ); + nbt.setDouble("poX", posX); + nbt.setDouble("poY", posY); + nbt.setDouble("poZ", posZ); + nbt.setDouble("decel", decelY); + nbt.setDouble("accel", accelXZ); + nbt.setInteger("tX", targetX); + nbt.setInteger("tZ", targetZ); + nbt.setInteger("sX", startX); + nbt.setInteger("sZ", startZ); + nbt.setDouble("veloc", velocity); + } + + public boolean canBeCollidedWith() { + return true; + } + + public boolean attackEntityFrom(DamageSource source, float amount) { + if(this.isEntityInvulnerable()) { + return false; + } else { + if(!this.isDead && !this.worldObj.isRemote) { + health -= amount; + + if(this.health <= 0) { + this.killMissile(); + } + } + + return true; + } + } + + protected void killMissile() { + this.setDead(); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return true; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + this.onImpact(); + this.setDead(); + } + } + + public abstract void onImpact(); + public abstract List getDebris(); + public abstract ItemStack getDebrisRareDrop(); + public void cluster() { } + + @Override + public double getGravityVelocity() { + return 0.0D; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote) { + + if(ticket != null) { + + if(loaderTicket == null) { + + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + } + + List loadedChunks = new ArrayList(); + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX * this.motionMult()) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ * this.motionMult()) / 16D))); + + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + public void explodeStandard(float strength, int resolution, boolean fire, boolean largeSmoke) { + ExplosionVNT xnt = new ExplosionVNT(worldObj, posX, posY, posZ, strength); + xnt.setBlockAllocator(new BlockAllocatorStandard(resolution)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(fire ? new BlockMutatorFire() : null)); + xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(2)); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.setSFX(new ExplosionEffectStandard()); + if(largeSmoke) ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction((int) strength)); + xnt.explode(); + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java b/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java deleted file mode 100644 index b23a22063..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBunkerBuster extends EntityMissileBaseAdvanced { - - public EntityMissileBunkerBuster(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 15; i++) - { - this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true); - } - - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java b/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java deleted file mode 100644 index b9285eb32..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBurst extends EntityMissileBaseAdvanced { - - public EntityMissileBurst(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 4; i++) - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 50.0F, true); - ExplosionLarge.explode(worldObj, posX, posY, posZ, 50.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java deleted file mode 100644 index ac4e903b6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBusterStrong extends EntityMissileBaseAdvanced { - - public EntityMissileBusterStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 20; i++) - { - this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true); - } - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java b/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java deleted file mode 100644 index 38ac71f9a..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileCluster extends EntityMissileBaseAdvanced { - - public EntityMissileCluster(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileCluster(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java deleted file mode 100644 index 81a3cab63..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileClusterStrong extends EntityMissileBaseAdvanced { - - public EntityMissileClusterStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 41841568c..7c82eb017 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; -import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK5; @@ -22,77 +21,25 @@ import com.hbm.items.weapon.ItemMissile.WarheadType; import com.hbm.main.MainRegistry; import api.hbm.entity.IRadarDetectable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarDetectable { +public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLoader, IRadarDetectable { - int startX; - int startZ; - int targetX; - int targetZ; - double velocity; - double decelY; - double accelXZ; - float fuel; - float consumption; - private Ticket loaderTicket; - public int health = 50; - MissileStruct template; + protected float fuel; + protected float consumption; - public EntityMissileCustom(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - startX = (int) posX; - startZ = (int) posZ; - targetX = (int) posX; - targetZ = (int) posZ; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { - if(this.isEntityInvulnerable()) { - return false; - } else { - if(!this.isDead && !this.worldObj.isRemote) { - health -= p_70097_2_; - - if(this.health <= 0) { - this.setDead(); - this.killMissile(); - } - } - - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + public EntityMissileCustom(World world) { + super(world); } public EntityMissileCustom(World world, float x, float y, float z, int a, int b, MissileStruct template) { super(world); this.ignoreFrustumCheck = true; - /* - * this.posX = x; this.posY = y; this.posZ = z; - */ this.setLocationAndAngles(x, y, z, 0, 0); startX = (int) x; startZ = (int) z; @@ -100,21 +47,19 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD targetZ = b; this.motionY = 2; - this.template = template; - - this.dataWatcher.updateObject(9, Item.getIdFromItem(template.warhead)); - this.dataWatcher.updateObject(10, Item.getIdFromItem(template.fuselage)); - if(template.fins != null) - this.dataWatcher.updateObject(11, Item.getIdFromItem(template.fins)); - else - this.dataWatcher.updateObject(11, Integer.valueOf(0)); - this.dataWatcher.updateObject(12, Item.getIdFromItem(template.thruster)); - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); accelXZ = decelY = 1 / vector.lengthVector(); decelY *= 2; + velocity = 0; - velocity = 0.0; + this.dataWatcher.updateObject(9, Item.getIdFromItem(template.warhead)); + this.dataWatcher.updateObject(10, Item.getIdFromItem(template.fuselage)); + this.dataWatcher.updateObject(12, Item.getIdFromItem(template.thruster)); + if(template.fins != null) { + this.dataWatcher.updateObject(11, Item.getIdFromItem(template.fins)); + } else { + this.dataWatcher.updateObject(11, Integer.valueOf(0)); + } ItemMissile fuselage = (ItemMissile) template.fuselage; ItemMissile thruster = (ItemMissile) template.thruster; @@ -126,43 +71,39 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); - - if(template != null) { - this.dataWatcher.addObject(9, Integer.valueOf(Item.getIdFromItem(template.warhead))); - this.dataWatcher.addObject(10, Integer.valueOf(Item.getIdFromItem(template.fuselage))); - - if(template.fins != null) - this.dataWatcher.addObject(11, Integer.valueOf(Item.getIdFromItem(template.fins))); - else - this.dataWatcher.addObject(11, Integer.valueOf(0)); - - this.dataWatcher.addObject(12, Integer.valueOf(Item.getIdFromItem(template.thruster))); - } else { - this.dataWatcher.addObject(9, Integer.valueOf(0)); - this.dataWatcher.addObject(10, Integer.valueOf(0)); - this.dataWatcher.addObject(11, Integer.valueOf(0)); - this.dataWatcher.addObject(12, Integer.valueOf(0)); + protected void killMissile() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + if(this.hasPropulsion()) this.fuel -= this.consumption; } + + super.onUpdate(); } @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - motionX = nbt.getDouble("moX"); - motionY = nbt.getDouble("moY"); - motionZ = nbt.getDouble("moZ"); - posX = nbt.getDouble("poX"); - posY = nbt.getDouble("poY"); - posZ = nbt.getDouble("poZ"); - decelY = nbt.getDouble("decel"); - accelXZ = nbt.getDouble("accel"); - targetX = nbt.getInteger("tX"); - targetZ = nbt.getInteger("tZ"); - startX = nbt.getInteger("sX"); - startZ = nbt.getInteger("sZ"); - velocity = nbt.getInteger("veloc"); + public boolean hasPropulsion() { + return this.fuel > 0; + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(8, Integer.valueOf(this.health)); + this.dataWatcher.addObject(9, Integer.valueOf(0)); + this.dataWatcher.addObject(10, Integer.valueOf(0)); + this.dataWatcher.addObject(11, Integer.valueOf(0)); + this.dataWatcher.addObject(12, Integer.valueOf(0)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); fuel = nbt.getFloat("fuel"); consumption = nbt.getFloat("consumption"); this.dataWatcher.updateObject(9, nbt.getInteger("warhead")); @@ -172,20 +113,8 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setDouble("moX", motionX); - nbt.setDouble("moY", motionY); - nbt.setDouble("moZ", motionZ); - nbt.setDouble("poX", posX); - nbt.setDouble("poY", posY); - nbt.setDouble("poZ", posZ); - nbt.setDouble("decel", decelY); - nbt.setDouble("accel", accelXZ); - nbt.setInteger("tX", targetX); - nbt.setInteger("tZ", targetZ); - nbt.setInteger("sX", startX); - nbt.setInteger("sZ", startZ); - nbt.setDouble("veloc", velocity); + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); nbt.setFloat("fuel", fuel); nbt.setFloat("consumption", consumption); nbt.setInteger("warhead", this.dataWatcher.getWatchableObjectInt(9)); @@ -193,118 +122,28 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD nbt.setInteger("fins", this.dataWatcher.getWatchableObjectInt(11)); nbt.setInteger("thruster", this.dataWatcher.getWatchableObjectInt(12)); } + + @Override + protected void spawnContrail() { - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + String smoke = ""; + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + FuelType type = (FuelType) part.attributes[0]; - for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; + switch(type) { + case BALEFIRE: smoke = "exBalefire"; break; + case HYDROGEN: smoke = "exHydrogen"; break; + case KEROSENE: smoke = "exKerosene"; break; + case SOLID: smoke = "exSolid"; break; + case XENON: break; } - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } + if(!smoke.isEmpty()) for(int i = 0; i < velocity; i++) MainRegistry.proxy.spawnParticle(posX - v.xCoord * i, posY - v.yCoord * i, posZ - v.zCoord * i, smoke, null); } @Override - public void onUpdate() { - this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); - - this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, 0, 0); - - this.rotation(); - - if(fuel > 0 || worldObj.isRemote) { - - fuel -= consumption; - - this.motionY -= decelY * velocity; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ * velocity; - vector.zCoord *= accelXZ * velocity; - - if(motionY > 0) { - motionX += vector.xCoord; - motionZ += vector.zCoord; - } - - if(motionY < 0) { - motionX -= vector.xCoord; - motionZ -= vector.zCoord; - } - - if(velocity < 5) - velocity += 0.01; - } else { - - motionX *= 0.99; - motionZ *= 0.99; - - if(motionY > -1.5) - motionY -= 0.05; - } - - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - onImpact(); - } - this.setDead(); - return; - } - - if(this.worldObj.isRemote) { - - Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ); - v = v.normalize(); - - String smoke = ""; - - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); - FuelType type = (FuelType) part.attributes[0]; - - switch(type) { - case BALEFIRE: - smoke = "exBalefire"; - break; - case HYDROGEN: - smoke = "exHydrogen"; - break; - case KEROSENE: - smoke = "exKerosene"; - break; - case SOLID: - smoke = "exSolid"; - break; - case XENON: - break; - } - - for(int i = 0; i < velocity; i++) - MainRegistry.proxy.spawnParticle(posX - v.xCoord * i, posY - v.yCoord * i, posZ - v.zCoord * i, smoke, null); - } - - loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return distance < 2500000; - } - - public void onImpact() { + public void onImpact() { //TODO: demolish this steaming pile of shit ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); @@ -379,67 +218,54 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } } - public void init(Ticket ticket) { - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); - - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - @Override public RadarTargetType getTargetType() { ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); - PartSize top = part.top; PartSize bottom = part.bottom; - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) - return RadarTargetType.MISSILE_10; - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) - return RadarTargetType.MISSILE_10_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) - return RadarTargetType.MISSILE_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) - return RadarTargetType.MISSILE_15_20; - if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) - return RadarTargetType.MISSILE_20; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return RadarTargetType.MISSILE_10; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return RadarTargetType.MISSILE_10_15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return RadarTargetType.MISSILE_15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_15_20; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_20; - return RadarTargetType.PLAYER; + return RadarTargetType.MISSILE_TIER1; } + + @Override + public String getUnlocalizedName() { + + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + PartSize top = part.top; + PartSize bottom = part.bottom; + + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return "radar.target.custom10"; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return "radar.target.custom1015"; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return "radar.target.custom15"; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return "radar.target.custom1520"; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return "radar.target.custom20"; + + return "radar.target.custom"; + } + + @Override + public int getBlipLevel() { + + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + PartSize top = part.top; + PartSize bottom = part.bottom; + + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return IRadarDetectableNT.TIER10; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return IRadarDetectableNT.TIER10_15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return IRadarDetectableNT.TIER15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return IRadarDetectableNT.TIER15_20; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return IRadarDetectableNT.TIER20; + + return IRadarDetectableNT.TIER1; + } + + @Override public List getDebris() { return new ArrayList(); } + @Override public ItemStack getDebrisRareDrop() { return null; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index 7b1d42a36..552f88379 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -4,10 +4,11 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -public class EntityMissileDoomsday extends EntityMissileBaseAdvanced { +public class EntityMissileDoomsday extends EntityMissileBaseNT { public EntityMissileDoomsday(World p_i1582_1_) { super(p_i1582_1_); @@ -105,7 +106,12 @@ public class EntityMissileDoomsday extends EntityMissileBaseAdvanced { } @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; + public String getUnlocalizedName() { + return "radar.target.doomsday"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER4; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java b/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java deleted file mode 100644 index 3c0ab3442..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileDrill extends EntityMissileBaseAdvanced { - - public EntityMissileDrill(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileDrill(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 30; i++) - { - ExplosionNT explosion = new ExplosionNT(worldObj, this, this.posX, this.posY - i, this.posZ, 10F); - explosion.addAllAttrib(ExAttrib.ERRODE); - explosion.explode(); //an explosion exploded! - } - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 25); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 12); - ExplosionLarge.jolt(worldObj, this.posX, this.posY, this.posZ, 10, 50, 1); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java deleted file mode 100644 index bd6ce0281..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEMP extends EntityMissileBaseAdvanced { - - public EntityMissileEMP(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEMP(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if (!this.worldObj.isRemote) - { - ExplosionNukeGeneric.empBlast(worldObj, (int)posX, (int)posY, (int)posZ, 50); - EntityEMPBlast wave = new EntityEMPBlast(worldObj, 50); - wave.posX = posX; - wave.posY = posY; - wave.posZ = posZ; - worldObj.spawnEntityInWorld(wave); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModBlocks.emp_bomb, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java deleted file mode 100644 index 4253cbaa6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.EntityEMP; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEMPStrong extends EntityMissileBaseAdvanced { - - public EntityMissileEMPStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - EntityEMP emp = new EntityEMP(worldObj); - emp.posX = posX; - emp.posY = posY; - emp.posZ = posZ; - - worldObj.spawnEntityInWorld(emp); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java b/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java deleted file mode 100644 index e1205b606..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionThermo; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEndo extends EntityMissileBaseAdvanced { - - public EntityMissileEndo(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEndo(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.freezer(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_thermo_exo); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java b/src/main/java/com/hbm/entity/missile/EntityMissileExo.java deleted file mode 100644 index 494bebb06..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionThermo; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileExo extends EntityMissileBaseAdvanced { - - public EntityMissileExo(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileExo(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.scorch(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.setEntitiesOnFire(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_thermo_exo); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java b/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java deleted file mode 100644 index b1ad0f37b..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileGeneric extends EntityMissileBaseAdvanced { - - public EntityMissileGeneric(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } - - /*public EntityMissileGeneric(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileGeneric(World p_i1582_1_, int x, int z, double a, double b, double c) { - super(p_i1582_1_, x, z, a, b, c); - } - - @Override - public void onUpdate() - { - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - this.rotation(); - - switch(phase) - { - case 0: - if(loc0 != null) - { - freePizzaGoddammit(loc0); - if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX && - loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY && - loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ) - { - this.phase = 1; - } - } - break; - case 1: - if(loc1 != null) - { - freePizzaGoddammit(loc1); - if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX && - loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY && - loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ) - { - this.phase = 2; - } - } - break; - case 2: - if(loc2 != null) - { - freePizzaGoddammit(loc2); - if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX && - loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY && - loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ) - { - this.phase = 3; - } - } - break; - case 3: - if(loc3 != null) - { - freePizzaGoddammit(loc3); - if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX && - loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY && - loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ) - { - this.phase = 4; - } - } - break; - case 4: - if(loc4 != null) - { - freePizzaGoddammit(loc4); - if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX && - loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY && - loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ) - { - this.phase = 5; - } - } - break; - case 5: - if(loc5 != null) - { - freePizzaGoddammit(loc5); - if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX && - loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY && - loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ) - { - this.phase = 6; - } - } - break; - case 6: - if(loc6 != null) - { - freePizzaGoddammit(loc6); - if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX && - loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY && - loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ) - { - this.phase = 7; - } - } - break; - case 7: - if(loc7 != null) - { - freePizzaGoddammit(loc7); - if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX && - loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY && - loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ) - { - this.phase = 8; - } - } - break; - case 8: - if(target != null) - { - freePizzaGoddammit(target); - if(target.posX + 2 > this.posX && target.posX - 2 < this.posX && - target.posY + 2 > this.posY && target.posY - 2 < this.posY && - target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ) - { - this.phase = -1; - } - } - break; - } - - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - this.setDead(); - } - }*/ - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java deleted file mode 100644 index 709e2e1f3..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileIncendiary extends EntityMissileBaseAdvanced { - - public EntityMissileIncendiary(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 10.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java deleted file mode 100644 index 56e8b86d6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileIncendiaryStrong extends EntityMissileBaseAdvanced { - - public EntityMissileIncendiaryStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 25.0F, true, true, true); - ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java b/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java deleted file mode 100644 index 4109390b0..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileInferno extends EntityMissileBaseAdvanced { - - public EntityMissileInferno(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 35.0F, true, true, true); - ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); - ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java deleted file mode 100644 index a85d7a980..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileMicro extends EntityMissileBaseAdvanced { - - public EntityMissileMicro(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if(!this.worldObj.isRemote) { - ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.PARAMS_HIGH); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java deleted file mode 100644 index e5dbe3db7..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileMirv extends EntityMissileBaseAdvanced { - - public EntityMissileMirv(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_mirv); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java deleted file mode 100644 index f7db04860..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileNuclear extends EntityMissileBaseAdvanced { - - public EntityMissileNuclear(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_nuclear); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java b/src/main/java/com/hbm/entity/missile/EntityMissileRain.java deleted file mode 100644 index 877fe54c4..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileRain extends EntityMissileBaseAdvanced { - - public EntityMissileRain(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileRain(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java deleted file mode 100644 index c197026bc..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileSchrabidium extends EntityMissileBaseAdvanced { - - public EntityMissileSchrabidium(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileSchrabidium(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if(!this.worldObj.isRemote) { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius); - if(!ex.isDead) { - worldObj.spawnEntityInWorld(ex); - - EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); - cloud.posX = this.posX; - cloud.posY = this.posY; - cloud.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(cloud); - } - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.powder_schrabidium, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index c662a383d..7a0b89ef8 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -11,13 +11,14 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class EntityMissileShuttle extends EntityMissileBaseAdvanced { +public class EntityMissileShuttle extends EntityMissileBaseNT { public EntityMissileShuttle(World p_i1582_1_) { super(p_i1582_1_); @@ -61,7 +62,12 @@ public class EntityMissileShuttle extends EntityMissileBaseAdvanced { } @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; + public String getUnlocalizedName() { + return "radar.target.shuttle"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER3; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java new file mode 100644 index 000000000..a04805c51 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java @@ -0,0 +1,33 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMissileStealth extends EntityMissileBaseNT { + + public EntityMissileStealth(World world) { super(world); } + public EntityMissileStealth(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.bolt, 4, Mats.MAT_STEEL.id)); + return list; + } + + @Override public String getUnlocalizedName() { return "radar.target.tier1"; } + @Override public int getBlipLevel() { return IRadarDetectableNT.TIER1; } + @Override public boolean canBeSeenBy(Object radar) { return false; } + + @Override public void onImpact() { this.explodeStandard(20F, 24, false, true); } + @Override public ItemStack getDebrisRareDrop() { return DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC); } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java deleted file mode 100644 index 60d2486d2..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileStrong extends EntityMissileBaseAdvanced { - - public EntityMissileStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java b/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java deleted file mode 100644 index b536b4410..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.BlockTaint; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileTaint extends EntityMissileBaseAdvanced { - - public EntityMissileTaint(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileTaint(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - - for(int i = 0; i < 100; i++) { - int a = rand.nextInt(11) + (int)this.posX - 5; - int b = rand.nextInt(11) + (int)this.posY - 5; - int c = rand.nextInt(11) + (int)this.posZ - 5; - if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) - worldObj.setBlock(a, b, c, ModBlocks.taint); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.powder_magic, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.powder_spark_mix, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java new file mode 100644 index 000000000..f0239aa53 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -0,0 +1,116 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockTaint; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityBlackHole; +import com.hbm.entity.effect.EntityCloudFleija; +import com.hbm.entity.effect.EntityEMPBlast; +import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; + +import com.hbm.items.ItemAmmoEnums.AmmoFatman; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier0 extends EntityMissileBaseNT { + + public EntityMissileTier0(World world) { super(world); } + public EntityMissileTier0(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.wire_aluminium, 4)); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); + list.add(new ItemStack(ModItems.ducttape, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier0"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER0; + } + + public static class EntityMissileMicro extends EntityMissileTier0 { + public EntityMissileMicro(World world) { super(world); } + public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.PARAMS_HIGH); } + @Override public ItemStack getDebrisRareDrop() { return ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH); } + } + + public static class EntityMissileSchrabidium extends EntityMissileTier0 { + public EntityMissileSchrabidium(World world) { super(world); } + public EntityMissileSchrabidium(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius); + if(!ex.isDead) { + worldObj.spawnEntityInWorld(ex); + EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); + cloud.posX = this.posX; + cloud.posY = this.posY; + cloud.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(cloud); + } + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_schrabidium, 1); } + } + + public static class EntityMissileBHole extends EntityMissileTier0 { + public EntityMissileBHole(World world) { super(world); } + public EntityMissileBHole(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 1.5F, true); + EntityBlackHole bl = new EntityBlackHole(this.worldObj, 1.5F); + bl.posX = this.posX; + bl.posY = this.posY; + bl.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(bl); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.grenade_black_hole, 1); } + } + + public static class EntityMissileTaint extends EntityMissileTier0 { + public EntityMissileTaint(World world) { super(world); } + public EntityMissileTaint(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + for(int i = 0; i < 100; i++) { + int a = rand.nextInt(11) + (int) this.posX - 5; + int b = rand.nextInt(11) + (int) this.posY - 5; + int c = rand.nextInt(11) + (int) this.posZ - 5; + if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) worldObj.setBlock(a, b, c, ModBlocks.taint); + } + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_spark_mix, 1); } + } + + public static class EntityMissileEMP extends EntityMissileTier0 { + public EntityMissileEMP(World world) { super(world); } + public EntityMissileEMP(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionNukeGeneric.empBlast(worldObj, (int)posX, (int)posY, (int)posZ, 50); + EntityEMPBlast wave = new EntityEMPBlast(worldObj, 50); + wave.posX = posX; + wave.posY = posY; + wave.posZ = posZ; + worldObj.spawnEntityInWorld(wave); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModBlocks.emp_bomb, 1); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java new file mode 100644 index 000000000..99de6e68e --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -0,0 +1,83 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier1 extends EntityMissileBaseNT { + + public EntityMissileTier1(World world) { super(world); } + public EntityMissileTier1(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.thruster_small, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier1"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER1; + } + + public static class EntityMissileGeneric extends EntityMissileTier1 { + public EntityMissileGeneric(World world) { super(world); } + public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { this.explodeStandard(15F, 24, false, true); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } + } + + public static class EntityMissileDecoy extends EntityMissileTier1 { + public EntityMissileDecoy(World world) { super(world); } + public EntityMissileDecoy(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { worldObj.newExplosion(this, posX, posY, posZ, 4F, false, false); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.ingot_steel); } + @Override public String getUnlocalizedName() { return "radar.target.tier4"; } + @Override public int getBlipLevel() { return IRadarDetectableNT.TIER4; } + } + + public static class EntityMissileIncendiary extends EntityMissileTier1 { + public EntityMissileIncendiary(World world) { super(world); } + public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { this.explodeStandard(15F, 24, true, true); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_small); } + } + + public static class EntityMissileCluster extends EntityMissileTier1 { + public EntityMissileCluster(World world) { super(world); } + public EntityMissileCluster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_small); } + } + + public static class EntityMissileBunkerBuster extends EntityMissileTier1 { + public EntityMissileBunkerBuster(World world) { super(world); } + public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 15; i++) this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true); + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 5); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 5); + ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_small); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java new file mode 100644 index 000000000..421e5ba35 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -0,0 +1,94 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.EntityEMP; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier2 extends EntityMissileBaseNT { + + public EntityMissileTier2(World world) { super(world); } + public EntityMissileTier2(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_steel, 10)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + list.add(new ItemStack(ModItems.thruster_medium, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); + + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier2"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER2; + } + + public static class EntityMissileStrong extends EntityMissileTier2 { + public EntityMissileStrong(World world) { super(world); } + public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { this.explodeStandard(30F, 32, false, true); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + } + + public static class EntityMissileIncendiaryStrong extends EntityMissileTier2 { + public EntityMissileIncendiaryStrong(World world) { super(world); } + public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.explodeStandard(30F, 32, true, true); + ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_medium); } + } + + public static class EntityMissileClusterStrong extends EntityMissileTier2 { + public EntityMissileClusterStrong(World world) { super(world); } + public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_medium); } + } + + public static class EntityMissileBusterStrong extends EntityMissileTier2 { + public EntityMissileBusterStrong(World world) { super(world); } + public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 20; i++) this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true); + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 8); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 8); + ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_medium); } + } + + public static class EntityMissileEMPStrong extends EntityMissileTier2 { + public EntityMissileEMPStrong(World world) { super(world); } + public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + EntityEMP emp = new EntityEMP(worldObj); + emp.posX = posX; + emp.posY = posY; + emp.posZ = posZ; + worldObj.spawnEntityInWorld(emp); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java new file mode 100644 index 000000000..0c7342cc2 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -0,0 +1,130 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNT; +import com.hbm.explosion.ExplosionThermo; +import com.hbm.explosion.ExplosionNT.ExAttrib; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier3 extends EntityMissileBaseNT { + + public EntityMissileTier3(World world) { super(world); } + public EntityMissileTier3(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_steel, 16)); + list.add(new ItemStack(ModItems.plate_titanium, 10)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); + + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier3"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER3; + } + + public static class EntityMissileBurst extends EntityMissileTier3 { + public EntityMissileBurst(World world) { super(world); } + public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.explodeStandard(50F, 48, false, true); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } + } + + public static class EntityMissileInferno extends EntityMissileTier3 { + public EntityMissileInferno(World world) { super(world); } + public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.explodeStandard(50F, 48, true, true); + ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); + ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_large); } + } + + public static class EntityMissileRain extends EntityMissileTier3 { + public EntityMissileRain(World world) { super(world); } + public EntityMissileRain(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_large); } + } + + public static class EntityMissileDrill extends EntityMissileTier3 { + public EntityMissileDrill(World world) { super(world); } + public EntityMissileDrill(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 30; i++) { + ExplosionNT explosion = new ExplosionNT(worldObj, this, this.posX, this.posY - i, this.posZ, 10F); + explosion.addAllAttrib(ExAttrib.ERRODE); + explosion.explode(); //an explosion exploded! + } + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 25); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 12); + ExplosionLarge.jolt(worldObj, this.posX, this.posY, this.posZ, 10, 50, 1); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_large); } + } + + public static class EntityMissileEndo extends EntityMissileTier3 { + public EntityMissileEndo(World world) { super(world); } + public EntityMissileEndo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); + ExplosionThermo.freezer(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); + } + @Override public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 10)); + list.add(new ItemStack(ModItems.plate_steel, 14)); + list.add(new ItemStack(ModItems.plate_aluminium, 8)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); + return list; + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } + } + + public static class EntityMissileExo extends EntityMissileTier3 { + public EntityMissileExo(World world) { super(world); } + public EntityMissileExo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + ExplosionThermo.scorch(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); + ExplosionThermo.setEntitiesOnFire(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); + } + @Override public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 10)); + list.add(new ItemStack(ModItems.plate_steel, 14)); + list.add(new ItemStack(ModItems.plate_aluminium, 8)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); + return list; + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java new file mode 100644 index 000000000..fb56144ad --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -0,0 +1,82 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier4 extends EntityMissileBaseNT { + + public EntityMissileTier4(World world) { super(world); } + public EntityMissileTier4(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 16)); + list.add(new ItemStack(ModItems.plate_steel, 20)); + list.add(new ItemStack(ModItems.plate_aluminium, 12)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); + return list; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier4"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER4; + } + + public static class EntityMissileNuclear extends EntityMissileTier4 { + public EntityMissileNuclear(World world) { super(world); } + public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_nuclear); } + } + + public static class EntityMissileMirv extends EntityMissileTier4 { + public EntityMissileMirv(World world) { super(world); } + public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); + } + @Override public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 16)); + list.add(new ItemStack(ModItems.plate_steel, 20)); + list.add(new ItemStack(ModItems.plate_aluminium, 12)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); + return list; + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_mirv); } + } + + public static class EntityMissileVolcano extends EntityMissileTier4 { + public EntityMissileVolcano(World world) { super(world); } + public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); + for(int x = -1; x <= 1; x++) for(int y = -1; y <= 1; y++) for(int z = -1; z <= 1; z++) worldObj.setBlock((int)Math.floor(posX + x), (int)Math.floor(posY + y), (int)Math.floor(posZ + z), ModBlocks.volcanic_lava_block); + worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_volcano); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java b/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java deleted file mode 100644 index 4a8ccbebf..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileVolcano extends EntityMissileBaseAdvanced { - - public EntityMissileVolcano(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - - for(int x = -1; x <= 1; x++) { - for(int y = -1; y <= 1; y++) { - for(int z = -1; z <= 1; z++) { - worldObj.setBlock((int)Math.floor(posX + x), (int)Math.floor(posY + y), (int)Math.floor(posZ + z), ModBlocks.volcanic_lava_block); - } - } - } - - worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_volcano); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java b/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java index dc6015870..c3636fa8d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperPhosgene.java @@ -37,6 +37,7 @@ public class EntityCreeperPhosgene extends EntityCreeper { mist.setType(Fluids.PHOSGENE); mist.setPosition(posX, posY, posZ); mist.setArea(10, 5); + mist.setDuration(150); worldObj.spawnEntityInWorld(mist); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 599b66f6a..dfe3c6376 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -4,45 +4,102 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; +import com.hbm.entity.logic.EntityWaypoint; import com.hbm.entity.pathfinder.PathFinderUtils; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.*; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.ResourceManager; +import com.hbm.potion.HbmPotion; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; + +import net.minecraft.util.*; + import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; +import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; +import javax.annotation.Nullable; + public class EntityGlyphid extends EntityMob { + //I might have overdone it a little bit + + public boolean hasHome = false; + public int homeX; + public int homeY; + public int homeZ; + protected int currentTask = 0; + + //both of those below are used for digging, so the glyphid remembers what it was doing + protected int previousTask; + protected EntityWaypoint previousWaypoint; + public int taskX; + public int taskY; + public int taskZ; + + //used for digging, bigger glyphids have a longer reach + public int blastSize = Math.min((int) (3 * (getScale())) / 2, 5); + public int blastResToDig = Math.min((int) (50 * (getScale() * 2)), 150); + public boolean shouldDig; + + // Tasks + + /** Idle state, only makes glpyhids wander around randomly */ + public static final int TASK_IDLE = 0; + /** Causes the glyphid to walk to the waypoint, then communicate the FOLLOW task to nearby glyphids */ + public static final int TASK_RETREAT_FOR_REINFORCEMENTS = 1; + /** Task used by scouts, if the waypoint is reached it will construct a new hive */ + public static final int TASK_BUILD_HIVE = 2; + /** Creates a waypoint at the home position and then immediately initiates the RETREAT_FOR_REINFORCEMENTS task */ + public static final int TASK_INITIATE_RETREAT = 3; + /** Will simply walk to the waypoint and enter IDLE once it is reached */ + public static final int TASK_FOLLOW = 4; + /** Causes nuclear glyphids to immediately self-destruct, also signaling nearby scouts to retreat */ + public static final int TASK_TERRAFORM = 5; + /** If any task other than IDLE is interrupted by an obstacle, initiates digging behavior which is also communicated to nearby glyohids */ + public static final int TASK_DIG = 6; + + protected boolean hasWaypoint = false; + /** Yeah, fuck, whatever, anything goes now */ + protected EntityWaypoint taskWaypoint = null; + + //subtypes + public static final int TYPE_NORMAL = 0; + public static final int TYPE_INFECTED = 1; + + //data watcher keys + public static final int DW_WALL = 16; + public static final int DW_ARMOR = 17; + public static final int DW_SUBTYPE = 18; + public EntityGlyphid(World world) { super(world); - /*this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); - this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(8, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));*/ this.setSize(1.75F, 1F); } - + public ResourceLocation getSkin() { return ResourceManager.glyphid_tex; } - + public double getScale() { return 1.0D; } @@ -50,8 +107,9 @@ public class EntityGlyphid extends EntityMob { @Override protected void entityInit() { super.entityInit(); - this.dataWatcher.addObject(16, new Byte((byte) 0)); //wall climbing - this.dataWatcher.addObject(17, new Byte((byte) 0b11111)); //armor + this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing + this.dataWatcher.addObject(DW_ARMOR, new Byte((byte) 0b11111)); //armor + this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) } @Override @@ -61,134 +119,283 @@ public class EntityGlyphid extends EntityMob { this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } - - @Override - protected void dropFewItems(boolean byPlayer, int looting) { - if(rand.nextInt(3) == 0) this.entityDropItem(new ItemStack(ModItems.glyphid_meat, 1 + rand.nextInt(2) + looting), 0F); - } - - @Override - protected Entity findPlayerToAttack() { - if(this.isPotionActive(Potion.blindness)) return null; - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); - return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; - } - - @Override - protected void updateEntityActionState() { - super.updateEntityActionState(); - - if(this.isPotionActive(Potion.blindness)) { - this.entityToAttack = null; - this.setPathToEntity(null); - } else { - - // hell yeah!! - if(useExtendedTargeting() && this.entityToAttack != null && !this.hasPath()) { - this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); - } - } - - } - - public boolean useExtendedTargeting() { - return PollutionHandler.getPollution(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), PollutionType.SOOT) >= MobConfig.targetingThreshold; - } - - @Override - protected boolean canDespawn() { - return entityToAttack == null; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { - byte armor = this.dataWatcher.getWatchableObjectByte(17); - - if(armor != 0) { //if at least one bit of armor is present - - if(amount < getDamageThreshold()) return false; - - int chance = getArmorBreakChance(amount); //chances of armor being broken off - if(this.rand.nextInt(chance) == 0 && amount > 1) { - breakOffArmor(); - amount *= 0.25F; - } - - amount -= getDamageThreshold(); - if(amount < 0) return true; - } - - amount = this.calculateDamage(amount); - } - - if(source.isFireDamage()) amount *= 4F; - - return super.attackEntityFrom(source, amount); - } - - public int getArmorBreakChance(float amount) { - return amount < 10 ? 5 : amount < 20 ? 3 : 2; - } - - public float calculateDamage(float amount) { - - byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor++; - } - } - - amount /= divisor; - - return amount; - } - - public float getDamageThreshold() { - return 0.5F; - } - - public void breakOffArmor() { - byte armor = this.dataWatcher.getWatchableObjectByte(17); - List indices = Arrays.asList(0, 1, 2, 3, 4); - Collections.shuffle(indices); - - for(Integer i : indices) { - byte bit = (byte) (1 << i); - if((armor & bit) > 0) { - armor &= ~bit; - armor = (byte) (armor & 0b11111); - this.dataWatcher.updateObject(17, armor); - worldObj.playSoundAtEntity(this, "mob.zombie.woodbreak", 1.0F, 1.25F); - break; - } - } - } - - @Override - public boolean attackEntityAsMob(Entity victum) { - if(this.isSwingInProgress) return false; - this.swingItem(); - return super.attackEntityAsMob(victum); - } @Override public void onUpdate() { super.onUpdate(); - if(!this.worldObj.isRemote) { - this.setBesideClimbableBlock(this.isCollidedHorizontally); - - if(worldObj.getTotalWorldTime() % 200 == 0) { + if(!worldObj.isRemote) { + if(!hasHome) { + homeX = (int) posX; + homeY = (int) posY; + homeZ = (int) posZ; + hasHome = true; + } + + if(this.isPotionActive(Potion.blindness)) { + onBlinded(); + } + + if(getCurrentTask() == TASK_FOLLOW){ + + //incase the waypoint somehow doesn't exist and it got this task anyway + if(isAtDestination() && !hasWaypoint) { + setCurrentTask(TASK_IDLE, null); + } + //the task cannot be 6 outside of rampant, so this is a non issue p much + } else if (getCurrentTask() == TASK_DIG && ticksExisted % 20 == 0 && isAtDestination()) { + swingItem(); + + ExplosionVNT vnt = new ExplosionVNT(worldObj, taskX, taskY + 2, taskZ, blastSize, this); + vnt.setBlockAllocator(new BlockAllocatorGlyphidDig(blastResToDig)); + vnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + vnt.setEntityProcessor(null); + vnt.setPlayerProcessor(null); + vnt.explode(); + + this.setCurrentTask(previousTask, previousWaypoint); + } + + this.setBesideClimbableBlock(isCollidedHorizontally); + + if(ticksExisted % 100 == 0) { this.swingItem(); } } } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + super.dropFewItems(byPlayer, looting); + Item drop = isBurning() ? ModItems.glyphid_meat_grilled : ModItems.glyphid_meat; + if(rand.nextInt(2) == 0) this.entityDropItem(new ItemStack(drop, ((int) getScale() * 2) + looting), 0F); + } + + @Override + protected Entity findPlayerToAttack() { + if(this.isPotionActive(Potion.blindness)) return null; + + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); + return entityplayer; + } + + @Override + protected void updateWanderPath() { + if(getCurrentTask() == TASK_IDLE) { + super.updateWanderPath(); + } + } + + @Override + protected void updateEntityActionState() { + super.updateEntityActionState(); + + if(!this.isPotionActive(Potion.blindness)) { + if (!this.hasPath()) { + + // hell yeah!! + if(useExtendedTargeting() && this.entityToAttack != null) { + this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, true, true)); + } else if (getCurrentTask() != TASK_IDLE) { + + this.worldObj.theProfiler.startSection("stroll"); + + if (!isAtDestination()) { + + if (taskWaypoint != null) { + + taskX = (int) taskWaypoint.posX; + taskY = (int) taskWaypoint.posY; + taskZ = (int) taskWaypoint.posZ; + + if (taskWaypoint.highPriority) { + setTarget(taskWaypoint); + } + + } + + if(hasWaypoint) { + + if(canDig()) { + + MovingObjectPosition obstacle = findWaypointObstruction(); + if (getScale() >= 1 && getCurrentTask() != TASK_DIG && obstacle != null) { + digToWaypoint(obstacle); + } else { + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + } + + } else { + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + } + } + } + + this.worldObj.theProfiler.endSection(); + } + } + } + } + + protected boolean canDig() { + return MobConfig.rampantDig; + } + + public void onBlinded(){ + this.entityToAttack = null; + this.setPathToEntity(null); + this.fleeingTick = 80; + + if(getScale() >= 1.25){ + if(ticksExisted % 20 == 0) { + for (int i = 0; i < 16; i++) { + float angle = (float) Math.toRadians(360D / 16 * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, 4); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if (mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if (block == ModBlocks.lantern) { + rotationYaw = 360F / 16 * i; + swingItem(); + worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); + } + + } + } + } + } + } + + public boolean useExtendedTargeting() { + return MobConfig.rampantExtendedTargetting || PollutionHandler.getPollution(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), PollutionType.SOOT) >= MobConfig.targetingThreshold; + } + + @Override + protected boolean canDespawn() { + return entityToAttack == null && getCurrentTask() == TASK_IDLE && this.ticksExisted > 100; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(source.getEntity() instanceof EntityGlyphid) { + return false; + } + + if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); + + if(armor != 0) { //if at least one bit of armor is present + + if(amount < getDamageThreshold()) return false; + + //chances of armor being broken off + if(amount > 1 && isArmorBroken(amount)) { + breakOffArmor(); + amount *= 0.25F; + } + + amount -= getDamageThreshold(); + if(amount < 0) return true; + } + + amount = this.calculateDamage(amount); + } + + if(source.isFireDamage()) { + amount *= 0.7F; + } else if(source.getDamageType().equals("player")) { + amount *= 1.5F; + } else if(source == ModDamageSource.acid || source.equals(new DamageSource(ModDamageSource.s_acid))){ + amount = 0; + } else if(source == DamageSource.inWall) { + amount *= 15F; + } + + if(this.isPotionActive(HbmPotion.phosphorus.getId())){ + amount *= 1.5F; + } + + boolean alive = this.getHealth() > 0; + boolean wasAttacked = super.attackEntityFrom(source, amount); + + if(alive && this.getHealth() <= 0) { + if(doesInfectedSpawnMaggots() && this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { + + int j = 2 + this.rand.nextInt(3); + + for(int k = 0; k < j; ++k) { + float f = ((float) (k % 2) - 0.5F) * 0.5F; + float f1 = ((float) (k / 2) - 0.5F) * 0.5F; + EntityParasiteMaggot maggot = new EntityParasiteMaggot(worldObj); + maggot.setLocationAndAngles(this.posX + (double) f, this.posY + 0.5D, this.posZ + (double) f1, this.rand.nextFloat() * 360.0F, 0.0F); + maggot.motionX = f; + maggot.motionZ = f1; + maggot.velocityChanged = true; + this.worldObj.spawnEntityInWorld(maggot); + } + } + } + + return wasAttacked; + } + + public boolean doesInfectedSpawnMaggots() { + return true; + } + + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.6, 2), 100); + } + + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor++; + } + } + + amount /= divisor; + + return amount; + } + + public float getDamageThreshold() { + return 0.5F; + } + + public void breakOffArmor() { + byte armor = this.dataWatcher.getWatchableObjectByte(DW_ARMOR); + List indices = Arrays.asList(0, 1, 2, 3, 4); + Collections.shuffle(indices); + + for(Integer i : indices) { + byte bit = (byte) (1 << i); + if((armor & bit) > 0) { + armor &= ~bit; + armor = (byte) (armor & 0b11111); + this.dataWatcher.updateObject(DW_ARMOR, armor); + worldObj.playSoundAtEntity(this, "mob.zombie.woodbreak", 1.0F, 1.25F); + break; + } + } + } + @Override protected void updateArmSwingProgress() { int i = this.swingDuration(); @@ -206,25 +413,25 @@ public class EntityGlyphid extends EntityMob { this.swingProgress = (float) this.swingProgressInt / (float) i; } - + public int swingDuration() { return 15; } @Override public void setInWeb() { } - + @Override public boolean isOnLadder() { return this.isBesideClimbableBlock(); } - + public boolean isBesideClimbableBlock() { - return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; + return (this.dataWatcher.getWatchableObjectByte(DW_WALL) & 1) != 0; } public void setBesideClimbableBlock(boolean climbable) { - byte watchable = this.dataWatcher.getWatchableObjectByte(16); + byte watchable = this.dataWatcher.getWatchableObjectByte(DW_WALL); if(climbable) { watchable = (byte) (watchable | 1); @@ -232,23 +439,218 @@ public class EntityGlyphid extends EntityMob { watchable &= -2; } - this.dataWatcher.updateObject(16, Byte.valueOf(watchable)); + this.dataWatcher.updateObject(DW_WALL, Byte.valueOf(watchable)); } - + + @Override + public boolean attackEntityAsMob(Entity victim) { + if(this.isSwingInProgress) return false; + this.swingItem(); + + if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED && victim instanceof EntityLivingBase) { + ((EntityLivingBase) victim).addPotionEffect(new PotionEffect(Potion.poison.id, 100, 2)); + ((EntityLivingBase) victim).addPotionEffect(new PotionEffect(Potion.confusion.id, 100, 0)); + } + + return super.attackEntityAsMob(victim); + } + + @Override public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.ARTHROPOD; } + /// TASK SYSTEM START /// + public int getCurrentTask(){ + return currentTask; + } + + public EntityWaypoint getWaypoint(){ + return taskWaypoint; + } + + /** + * Sets a new task for the glyphid to do, a waypoint alongside with that task, and refreshes their waypoint coordinates + * @param task The task the glyphid is to do, refer to carryOutTask() + * @param waypoint The waypoint for the task, can be null + */ + public void setCurrentTask(int task, @Nullable EntityWaypoint waypoint){ + this.currentTask = task; + this.taskWaypoint = waypoint; + this.hasWaypoint = waypoint != null; + if(taskWaypoint != null) { + + taskX = (int) taskWaypoint.posX; + taskY = (int) taskWaypoint.posY; + taskZ = (int) taskWaypoint.posZ; + + if(taskWaypoint.highPriority) { + this.entityToAttack = null; + this.setPathToEntity(null); + } + + } + carryOutTask(); + } + + /** + * Handles the task system, used mainly for things that only need to be done once, such as setting targets + */ + public void carryOutTask(){ + int task = getCurrentTask(); + + switch(task){ + + case TASK_RETREAT_FOR_REINFORCEMENTS: + if(taskWaypoint != null) { + communicate(TASK_FOLLOW, taskWaypoint); + setCurrentTask(TASK_FOLLOW, taskWaypoint); + } + break; + + case TASK_INITIATE_RETREAT: + + if(!worldObj.isRemote && taskWaypoint == null) { + + // Then, Come back later + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + + // First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); + home.setAdditionalWaypoint(additional); + home.setHighPriority(); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + worldObj.spawnEntityInWorld(home); + + this.taskWaypoint = home; + communicate(TASK_FOLLOW, home); + setCurrentTask(TASK_FOLLOW, taskWaypoint); + + break; + } + + break; + + case TASK_DIG: + shouldDig = true; + break; + + default: + break; + + } + + } + + /** Copies tasks and waypoint to nearby glyphids. Does not work on glyphid scouts */ + public void communicate(int task, @Nullable EntityWaypoint waypoint) { + int radius = waypoint != null ? waypoint.radius : 4; + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for(Entity e : bugs) { + if(e instanceof EntityGlyphid && !(e instanceof EntityGlyphidScout)) { + if(((EntityGlyphid) e).getCurrentTask() != task) { + ((EntityGlyphid) e).setCurrentTask(task, waypoint); + } + } + } + } + + /** What each type of glyphid does when it is time to expand the hive. + * @return Whether it has expanded successfully or not + * **/ + public boolean expandHive(){ + return false; + } + + public boolean isAtDestination() { + int destinationRadius = taskWaypoint != null ? (int) Math.pow(taskWaypoint.radius, 2) : 25; + return this.getDistanceSq(taskX, taskY, taskZ) <= destinationRadius; + } + ///TASK SYSTEM END + + ///DIGGING SYSTEM START + + /** Handles the special digging system, used in Rampant mode due to high potential for destroyed bases**/ + public MovingObjectPosition findWaypointObstruction(){ + Vec3 bugVec = Vec3.createVectorHelper(posX, posY + getEyeHeight(), posZ); + Vec3 waypointVec = Vec3.createVectorHelper(taskX, taskY, taskZ); + //incomplete forge docs my beloved + MovingObjectPosition obstruction = worldObj.func_147447_a(bugVec, waypointVec, false, true, false); + if(obstruction != null){ + Block blockHit = worldObj.getBlock(obstruction.blockX, obstruction.blockY, obstruction.blockZ); + if(blockHit.getExplosionResistance(null) <= blastResToDig){ + return obstruction; + } + } + return null; + } + + public void digToWaypoint(MovingObjectPosition obstacle){ + + EntityWaypoint target = new EntityWaypoint(worldObj); + target.setLocationAndAngles(obstacle.blockX, obstacle.blockY, obstacle.blockZ, 0 , 0); + target.radius = 5; + worldObj.spawnEntityInWorld(target); + + previousTask = getCurrentTask(); + previousWaypoint = getWaypoint(); + + setCurrentTask(TASK_DIG, target); + + Vec3 vec = Vec3.createVectorHelper(posX, posY, posZ); + int maxDist = (int) (Math.sqrt(vec.squareDistanceTo(taskX, taskY, taskZ)) * 1.2); + this.setPathToEntity(PathFinderUtils.getPathEntityToCoordPartial(worldObj, this, taskX, taskY, taskZ, maxDist, true, false, true, true)); + + communicate(TASK_DIG, target); + + } + ///DIGGING END + @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); - nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(17)); + nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(DW_ARMOR)); + nbt.setByte("subtype", this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE)); + + nbt.setBoolean("hasHome", hasHome); + nbt.setInteger("homeX", homeX); + nbt.setInteger("homeY", homeY); + nbt.setInteger("homeZ", homeZ); + + nbt.setBoolean("hasWaypoint", hasWaypoint); + nbt.setInteger("taskX", taskX); + nbt.setInteger("taskY", taskY); + nbt.setInteger("taskZ", taskZ); + + nbt.setInteger("task", currentTask); } @Override public void readEntityFromNBT(NBTTagCompound nbt) { super.readEntityFromNBT(nbt); - this.dataWatcher.updateObject(17, nbt.getByte("armor")); + this.dataWatcher.updateObject(DW_ARMOR, nbt.getByte("armor")); + this.dataWatcher.updateObject(DW_SUBTYPE, nbt.getByte("subtype")); + + this.hasHome = nbt.getBoolean("hasHome"); + this.homeX = nbt.getInteger("homeX"); + this.homeY = nbt.getInteger("homeY"); + this.homeZ = nbt.getInteger("homeZ"); + + this.hasWaypoint = nbt.getBoolean("hasWaypoint"); + this.taskX = nbt.getInteger("taskX"); + this.taskY = nbt.getInteger("taskY"); + this.taskZ = nbt.getInteger("taskZ"); + + this.currentTask = nbt.getInteger("task"); + } + + @Override + public boolean getCanSpawnHere() { + return this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL && this.worldObj.checkNoEntityCollision(this.boundingBox) && this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(this.boundingBox); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java index bf3215059..27f2595d9 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -1,8 +1,18 @@ package com.hbm.entity.mob; +import com.hbm.entity.effect.EntityMist; +import com.hbm.entity.projectile.EntityChemical; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -10,7 +20,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { public EntityGlyphidBehemoth(World world) { super(world); - this.setSize(2.25F, 1.25F); + this.setSize(2.5F, 1.5F); } @Override @@ -26,16 +36,78 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(130D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(25D); } + public int timer = 120; + int breathTime = 0; @Override - public int getArmorBreakChance(float amount) { - return amount < 20 ? 10 : amount < 100 ? 5 : amount > 200 ? 1 : 3; + public void onUpdate(){ + super.onUpdate(); + Entity e = this.getEntityToAttack(); + if (e == null) { + timer = 120; + breathTime = 0; + } else { + if (breathTime > 0) { + if(!isSwingInProgress){ + this.swingItem(); + } + acidAttack(); + rotationYaw = prevRotationYaw; + breathTime--; + } else if (--timer <= 0) { + breathTime = 120; + timer = 120; + } + } + + } + @Override + public boolean attackEntityAsMob(Entity victum) { + return super.attackEntityAsMob(victum); } + @Override + public void onDeath(DamageSource source) { + super.onDeath(source); + if (!worldObj.isRemote) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.ACID); + mist.setPosition(posX, posY, posZ); + mist.setArea(10, 4); + mist.setDuration(120); + worldObj.spawnEntityInWorld(mist); + } + } + + + public void acidAttack(){ + if(!worldObj.isRemote && entityToAttack instanceof EntityLivingBase && this.getDistanceToEntity(entityToAttack) < 20) { + this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 20, 6)); + EntityChemical chem = new EntityChemical(worldObj, this); + + chem.setFluid(Fluids.ACID); + worldObj.spawnEntityInWorld(chem); + } + } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.SULFURIC_ACID.getID()), 1); + super.dropFewItems(byPlayer, looting); + } + @Override + public boolean isArmorBroken(float amount) { + // amount < 5 ? 5 : amount < 10 ? 3 : 2; + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.15, 2), 100); + } + @Override + public int swingDuration() { + return 100; + } @Override public float calculateDamage(float amount) { @@ -44,7 +116,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { for(int i = 0; i < 5; i++) { if((armor & (1 << i)) > 0) { - divisor += 3; + divisor += 4; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java index 5e922ab49..ef2ccde88 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java @@ -32,8 +32,8 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { } @Override - public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); } @Override @@ -65,12 +65,12 @@ public class EntityGlyphidBlaster extends EntityGlyphidBombardier { @Override public int getBombCount() { - return 20; + return 10; } @Override public float getSpreadMult() { - return 0.75F; + return 0.5F; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java index 61750f0ee..7fda8206d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java @@ -4,6 +4,8 @@ import com.hbm.entity.projectile.EntityAcidBomb; import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -23,22 +25,26 @@ public class EntityGlyphidBombardier extends EntityGlyphid { protected double lastY; protected double lastZ; + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); + + } @Override public void onUpdate() { super.onUpdate(); + Entity e = this.getEntityToAttack(); + if(!this.worldObj.isRemote && e instanceof EntityLivingBase) { - if(!this.worldObj.isRemote) { - - Entity e = this.getEntityToAttack(); - - if(this.ticksExisted % 20 == 0 && e != null) { + if(this.ticksExisted % 20 == 0) { this.lastTarget = e; this.lastX = e.posX; this.lastY = e.posY; this.lastZ = e.posZ; } - if(this.ticksExisted % 20 == 1 && e != null) { + if(this.ticksExisted % 60 == 1) { boolean topAttack = rand.nextBoolean(); @@ -72,6 +78,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { for(int i = 0; i < getBombCount(); i++) { EntityAcidBomb bomb = new EntityAcidBomb(worldObj, posX, posY + 1, posZ); + bomb.setThrower(this); bomb.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, i * getSpreadMult()); bomb.damage = getBombDamage(); worldObj.spawnEntityInWorld(bomb); @@ -88,7 +95,7 @@ public class EntityGlyphidBombardier extends EntityGlyphid { } public int getBombCount() { - return 10; + return 5; } public float getSpreadMult() { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java index 749230a42..48d274667 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java @@ -32,19 +32,19 @@ public class EntityGlyphidBrawler extends EntityGlyphid { } @Override - public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); } @Override public float calculateDamage(float amount) { byte armor = this.dataWatcher.getWatchableObjectByte(17); - int divisor = 1; + float divisor = 1; for(int i = 0; i < 5; i++) { if((armor & (1 << i)) > 0) { - divisor += 2; + divisor += 3; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java index bdce3e7bc..33926bbde 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -1,10 +1,13 @@ package com.hbm.entity.mob; +import com.hbm.entity.effect.EntityMist; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -30,13 +33,14 @@ public class EntityGlyphidBrenda extends EntityGlyphid { protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(250D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.2D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); } @Override - public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 1000 ? 1 : 10; + public boolean isArmorBroken(float amount) { + // amount < 5 ? 5 : amount < 10 ? 3 : 2; + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); } @Override @@ -62,20 +66,27 @@ public class EntityGlyphidBrenda extends EntityGlyphid { } @Override - public void setDead() { + public void onDeath(DamageSource source) { + super.onDeath(source); if(!this.worldObj.isRemote && this.getHealth() <= 0.0F) { + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.PHEROMONE); + mist.setPosition(posX, posY, posZ); + mist.setArea(14, 6); + mist.setDuration(80); + worldObj.spawnEntityInWorld(mist); for(int i = 0; i < 12; ++i) { EntityGlyphid glyphid = new EntityGlyphid(worldObj); glyphid.setLocationAndAngles(this.posX, this.posY + 0.5D, this.posZ, rand.nextFloat() * 360.0F, 0.0F); - glyphid.addPotionEffect(new PotionEffect(Potion.resistance.id, 5 * 60 * 20, 2)); - glyphid.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 5 * 60 * 20, 0)); - glyphid.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); - glyphid.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 5 * 60 * 20, 19)); this.worldObj.spawnEntityInWorld(glyphid); glyphid.moveEntity(rand.nextGaussian(), 0, rand.nextGaussian()); } } - - super.setDead(); } + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + super.dropFewItems(byPlayer, looting); + if(rand.nextInt(3) == 0) this.entityDropItem(new ItemStack(ModItems.glyphid_gland, 1, Fluids.PHEROMONE.getID()), 1); + } + } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java new file mode 100644 index 000000000..09801fe4b --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidDigger.java @@ -0,0 +1,41 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidDigger extends EntityGlyphid { + + public EntityGlyphidDigger(World world) { + super(world); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_digger_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(35D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); + } + + @Override + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.25, 2), 100); + } + + @Override + protected boolean canDig() { + return true; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index 62a3ae9a6..b8342bf6f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -1,6 +1,7 @@ package com.hbm.entity.mob; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.logic.EntityWaypoint; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; @@ -13,15 +14,21 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +import javax.annotation.Nullable; +import java.util.List; + public class EntityGlyphidNuclear extends EntityGlyphid { public int deathTicks; - public EntityGlyphidNuclear(World world) { super(world); this.setSize(2.5F, 1.75F); @@ -38,17 +45,59 @@ public class EntityGlyphidNuclear extends EntityGlyphid { return 2D; } + @Override + public void onUpdate() { + super.onUpdate(); + if(ticksExisted % 20 == 0) { + if(isAtDestination() && getCurrentTask() == TASK_FOLLOW) { + setCurrentTask(TASK_IDLE, null); + } + + if(getCurrentTask() == TASK_BUILD_HIVE && getAITarget() == null) { + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 10 * 20, 3)); + } + + if(getCurrentTask() == TASK_TERRAFORM) { + this.setHealth(0); + } + } + } + + /** Communicates only with glyphid scouts, unlike the super implementation which does the opposite */ + @Override + public void communicate(int task, @Nullable EntityWaypoint waypoint) { + int radius = waypoint != null ? waypoint.radius : 4; + + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphidScout){ + if(((EntityGlyphid) e).getCurrentTask() != task){ + ((EntityGlyphid) e).setCurrentTask(task, waypoint); + } + } + } + } + + @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); } @Override - public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 1000 ? 1 : 10; + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount * 0.12, 2), 100); } @Override @@ -73,20 +122,60 @@ public class EntityGlyphidNuclear extends EntityGlyphid { return 10F; } + @Override + public boolean doesInfectedSpawnMaggots() { + return false; + } + + public boolean hasWaypoint = false; @Override protected void onDeathUpdate() { ++this.deathTicks; + if(!hasWaypoint) { + // effectively causes neighboring EntityGlyphidScout to retreat + communicate(TASK_INITIATE_RETREAT, null); + hasWaypoint = true; + } + + if(deathTicks == 90){ + int radius = 8; + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox(this.posX, this.posY, this.posZ, this.posX, this.posY, this.posZ).expand(radius, radius, radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); + for (Entity e: bugs){ + if(e instanceof EntityGlyphid){ + addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 20, 6)); + addPotionEffect(new PotionEffect(Potion.fireResistance.id, 15 * 20, 1)); + } + } + } if(this.deathTicks == 100) { if(!worldObj.isRemote) { ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); - vnt.setBlockAllocator(new BlockAllocatorStandard(24)); - vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); - vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); + + if(this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) == TYPE_INFECTED) { + int j = 15 + this.rand.nextInt(6); + for(int k = 0; k < j; ++k) { + float f = ((float) (k % 2) - 0.5F) * 0.5F; + float f1 = ((float) (k / 2) - 0.5F) * 0.5F; + EntityParasiteMaggot maggot = new EntityParasiteMaggot(worldObj); + maggot.setLocationAndAngles(this.posX + (double) f, this.posY + 0.5D, this.posZ + (double) f1, this.rand.nextFloat() * 360.0F, 0.0F); + maggot.motionX = f; + maggot.motionZ = f1; + maggot.velocityChanged = true; + this.worldObj.spawnEntityInWorld(maggot); + } + } else { + vnt.setBlockAllocator(new BlockAllocatorStandard(24)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + } + + vnt.setEntityProcessor(new EntityProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); - + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index 181156e09..7e0378bbd 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -1,36 +1,49 @@ package com.hbm.entity.mob; import com.hbm.blocks.ModBlocks; +import com.hbm.config.MobConfig; +import com.hbm.entity.logic.EntityWaypoint; +import com.hbm.handler.pollution.PollutionHandler; import com.hbm.main.ResourceManager; import com.hbm.world.feature.GlyphidHive; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.*; import net.minecraft.world.World; -public class EntityGlyphidScout extends EntityGlyphid { - - public boolean hasHome = false; - public double homeX; - public double homeY; - public double homeZ; +import java.util.List; +public class EntityGlyphidScout extends EntityGlyphid { + + boolean hasTarget = false; + int timer; + int scoutingRange = 45; + int minDistanceToHive = 8; + boolean useLargeHive = false; + float largeHiveChance = MobConfig.largeHiveChance; + public EntityGlyphidScout(World world) { super(world); this.setSize(1.25F, 0.75F); } - - @Override - public float getDamageThreshold() { - return 0.0F; - } + //extreme measures for anti-scout bullying + @Override + public boolean attackEntityAsMob(Entity victum) { + if(super.attackEntityAsMob(victum) && victum instanceof EntityLivingBase){ + ((EntityLivingBase)victum).addPotionEffect(new PotionEffect(Potion.poison.id, 10 * 20, 3)); + return true; + } + return false; + } + @Override public ResourceLocation getSkin() { return ResourceManager.glyphid_scout_tex; @@ -42,116 +55,261 @@ public class EntityGlyphidScout extends EntityGlyphid { } @Override - public int getArmorBreakChance(float amount) { - return 1; + public boolean isArmorBroken(float amount) { + return this.rand.nextInt(100) <= Math.min(Math.pow(amount, 2), 100); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(16D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.5D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2D); } - + @Override - protected boolean canDespawn() { + public void onUpdate() { + super.onUpdate(); + + if((getCurrentTask() != TASK_BUILD_HIVE || getCurrentTask() != TASK_TERRAFORM) && taskWaypoint == null) { + + if(MobConfig.rampantGlyphidGuidance && PollutionHandler.targetCoords != null){ + if(!hasTarget) { + Vec3 dirVec = playerBaseDirFinder(Vec3.createVectorHelper(posX, posY, posZ), getPlayerTargetDirection()); + + EntityWaypoint target = new EntityWaypoint(worldObj); + target.setLocationAndAngles(dirVec.xCoord, dirVec.yCoord, dirVec.zCoord, 0, 0); + target.maxAge = 300; + target.radius = 6; + worldObj.spawnEntityInWorld(target); + hasTarget = true; + + setCurrentTask(TASK_RETREAT_FOR_REINFORCEMENTS, target); + } + + if(super.isAtDestination()) { + setCurrentTask(TASK_BUILD_HIVE, null) ; + hasTarget = false; + } + + } else { + setCurrentTask(TASK_BUILD_HIVE, null); + } + + } + + if(getCurrentTask() == TASK_BUILD_HIVE || getCurrentTask() == TASK_TERRAFORM) { + + if(!worldObj.isRemote && !hasTarget) { + //Check for whether a big man johnson is nearby, this makes the scout switch into its terraforming task + if(scoutingRange != 60 && hasNuclearGlyphidNearby()){ + setCurrentTask(TASK_TERRAFORM, null); + } + + if(expandHive()) { + this.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 180 * 20, 1)); + hasTarget = true; + } + } + + if (getCurrentTask() == TASK_TERRAFORM && super.isAtDestination() && canBuildHiveHere()) { + communicate(TASK_TERRAFORM, taskWaypoint); + } + + if (ticksExisted % 10 == 0 && isAtDestination()) { + timer++; + + if (!worldObj.isRemote && canBuildHiveHere()) { + if(timer == 1) { + + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + additional.setWaypointType(TASK_IDLE); + + // First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(TASK_RETREAT_FOR_REINFORCEMENTS); + home.setAdditionalWaypoint(additional); + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + home.maxAge = 1200; + home.radius = 6; + + worldObj.spawnEntityInWorld(home); + + this.taskWaypoint = home; + this.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 40 * 20, 10)); + communicate(TASK_RETREAT_FOR_REINFORCEMENTS, taskWaypoint); + + } else if(timer >= 5) { + + worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); + GlyphidHive.generateSmall(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand, this.dataWatcher.getWatchableObjectByte(DW_SUBTYPE) != TYPE_NORMAL, false); + this.setDead(); + + } else { + communicate(TASK_FOLLOW, taskWaypoint); + } + } + } + } + } + + /** Returns true if the position is far enough away from other hives. Also resets the task if unsuccessful. */ + public boolean canBuildHiveHere() { + int length = useLargeHive ? 16 : 8; + + for(int i = 0; i < 8; i++) { + + float angle = (float) Math.toRadians(360D / 16 * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, length); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if(mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if(block == ModBlocks.glyphid_base) { + setCurrentTask(TASK_IDLE, null); + hasTarget = false; + return false; + } + + } + } return true; } @Override - public void onUpdate() { - super.onUpdate(); + public boolean isAtDestination() { + return this.getCurrentTask() == TASK_BUILD_HIVE && super.isAtDestination(); + } + + public boolean hasNuclearGlyphidNearby(){ + int radius = 8; + + AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( + this.posX - radius, + this.posY - radius, + this.posZ - radius, + this.posX + radius, + this.posY + radius, + this.posZ + radius); + + List bugs = worldObj.getEntitiesWithinAABBExcludingEntity(this, bb); - if(!worldObj.isRemote) { - - if(!this.hasHome) { - this.homeX = posX; - this.homeY = posY; - this.homeZ = posZ; - this.hasHome = true; + for (Entity e: bugs){ + if(e instanceof EntityGlyphidNuclear){ + return true; + } + } + return false; + } + + @Override + public boolean expandHive() { + + int nestX = rand.nextInt((homeX + scoutingRange) - (homeX - scoutingRange)) + (homeX - scoutingRange); + int nestZ = rand.nextInt((homeZ + scoutingRange) - (homeZ - scoutingRange)) + (homeZ - scoutingRange); + int nestY = worldObj.getHeightValue(nestX, nestZ); + Block b = worldObj.getBlock(nestX, nestY - 1, nestZ); + + boolean distanceCheck = Vec3.createVectorHelper(nestX - homeX, nestY - homeY, nestZ - homeZ).lengthVector() > minDistanceToHive; + + if(distanceCheck && b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { + + if(b == ModBlocks.basalt) { + useLargeHive = true; + largeHiveChance /= 2; + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3)); } - if(rand.nextInt(20) == 0) fleeingTick = 2; + if(!worldObj.isRemote) { + EntityWaypoint nest = new EntityWaypoint(worldObj); + nest.setWaypointType(getCurrentTask()); + nest.radius = 5; - if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 8) { - - Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - - int accuracy = 16; - for(int i = 0; i < accuracy; i++) { - float angle = (float) Math.toRadians(360D / accuracy * i); - Vec3 rot = Vec3.createVectorHelper(0, 0, 16); - rot.rotateAroundY(angle); - Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); - Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); - MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + if(useLargeHive) + nest.setHighPriority(); + + nest.setLocationAndAngles(nestX, nestY, nestZ, 0, 0); + worldObj.spawnEntityInWorld(nest); + + taskWaypoint = nest; + + // updates the task coordinates + setCurrentTask(getCurrentTask(), taskWaypoint); + communicate(TASK_BUILD_HIVE, taskWaypoint); + } + + return true; + } + + return false; + } + + @Override + public void carryOutTask() { + if (!worldObj.isRemote && taskWaypoint == null) { + switch(getCurrentTask()){ + case TASK_INITIATE_RETREAT: + this.removePotionEffect(Potion.moveSlowdown.id); + this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20 * 20, 4)); + + //then, come back later + EntityWaypoint additional = new EntityWaypoint(worldObj); + additional.setLocationAndAngles(posX, posY, posZ, 0, 0); + additional.setWaypointType(0); - if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { - - Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); - - if(block == ModBlocks.glyphid_base) { - return; - } - } - } - - if(b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { - this.setDead(); - worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); - GlyphidHive.generate(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand); - } + //First, go home and get reinforcements + EntityWaypoint home = new EntityWaypoint(worldObj); + home.setWaypointType(2); + home.setAdditionalWaypoint(additional); + home.setHighPriority(); + home.radius = 6; + home.setLocationAndAngles(homeX, homeY, homeZ, 0, 0); + worldObj.spawnEntityInWorld(home); + + communicate(4, home); + break; + + //terraforming task, only used if a big man johnson is near the scout + case TASK_TERRAFORM: + scoutingRange = 60; + minDistanceToHive = 20; + break; } } + super.carryOutTask(); + + } + + @Override + public boolean useExtendedTargeting() { + return false; } - @Override - protected void updateWanderPath() { - this.worldObj.theProfiler.startSection("stroll"); - boolean flag = false; - int pathX = -1; - int pathY = -1; - int pathZ = -1; - float maxWeight = -99999.0F; + ///RAMPANT MODE STUFFS - for(int l = 0; l < 5; ++l) { - int x = MathHelper.floor_double(this.posX + (double) this.rand.nextInt(25) - 12.0D); - int y = MathHelper.floor_double(this.posY + (double) this.rand.nextInt(11) - 5.0D); - int z = MathHelper.floor_double(this.posZ + (double) this.rand.nextInt(25) - 12.0D); - float weight = this.getBlockPathWeight(x, y, z); - - if(weight > maxWeight) { - maxWeight = weight; - pathX = x; - pathY = y; - pathZ = z; - flag = true; - } + /** Finds the direction from the bug's location to the target and adds it to their current coord + * Used as a performant way to make scouts expand toward the player's spawn point + * @return An adjusted direction vector, to be added into the bug's current position for it to path in the required direction**/ + public static Vec3 playerBaseDirFinder(Vec3 currentLocation, Vec3 target){ + Vec3 dirVec = currentLocation.subtract(target).normalize(); + return Vec3.createVectorHelper( + currentLocation.xCoord + dirVec.xCoord * 10, + currentLocation.yCoord + dirVec.yCoord * 10, + currentLocation.zCoord + dirVec.zCoord * 10 + ); + } + + protected Vec3 getPlayerTargetDirection() { + EntityPlayer player = worldObj.getClosestPlayerToEntity(this, 300); + if(player != null) { + return Vec3.createVectorHelper(player.posX, player.posY, player.posZ); } - - if(flag) { - this.setPathToEntity(this.worldObj.getEntityPathToXYZ(this, pathX, pathY, pathZ, 10.0F, true, false, false, true)); - } - - this.worldObj.theProfiler.endSection(); - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setBoolean("hasHome", hasHome); - nbt.setDouble("homeX", homeX); - nbt.setDouble("homeY", homeY); - nbt.setDouble("homeZ", homeZ); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.hasHome = nbt.getBoolean("hasHome"); - this.homeX = nbt.getDouble("homeX"); - this.homeY = nbt.getDouble("homeY"); - this.homeZ = nbt.getDouble("homeZ"); + return PollutionHandler.targetCoords; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java b/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java new file mode 100644 index 000000000..40cc3b003 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityParasiteMaggot.java @@ -0,0 +1,49 @@ +package com.hbm.entity.mob; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.world.World; + +public class EntityParasiteMaggot extends EntityMob { + + public EntityParasiteMaggot(World world) { + super(world); + this.setSize(0.3F, 0.7F); + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.0D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2.0D); + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected Entity findPlayerToAttack() { + return this.worldObj.getClosestVulnerablePlayerToEntity(this, 16); + } + + @Override + public void onUpdate() { + this.renderYawOffset = this.rotationYaw; + super.onUpdate(); + } + + @Override + protected boolean isValidLightLevel() { + return true; + } + + @Override + public EnumCreatureAttribute getCreatureAttribute() { + return EnumCreatureAttribute.ARTHROPOD; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java new file mode 100644 index 000000000..ad6d203fc --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -0,0 +1,226 @@ +package com.hbm.entity.mob; + +import java.util.function.Predicate; + +import com.hbm.entity.mob.ai.EntityAIEatBread; +import com.hbm.entity.mob.ai.EntityAIStartFlying; +import com.hbm.entity.mob.ai.EntityAIStopFlying; +import com.hbm.entity.mob.ai.EntityAISwimmingConditional; +import com.hbm.entity.mob.ai.EntityAIWanderConditional; +import com.hbm.items.tool.ItemFertilizer; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.FakePlayerFactory; + +public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAnimals { + + public float fallTime; + public float dest; + public float prevDest; + public float prevFallTime; + public float offGroundTimer = 1.0F; + + public EntityPigeon(World world) { + super(world); + Predicate noFlyCondition = x -> { return ((EntityPigeon) x).getFlyingState() == IFlyingCreature.STATE_WALKING; }; + this.tasks.addTask(0, new EntityAIStartFlying(this, this)); + this.tasks.addTask(0, new EntityAIStopFlying(this, this)); + this.tasks.addTask(1, new EntityAISwimmingConditional(this, noFlyCondition)); + this.tasks.addTask(2, new EntityAIEatBread(this, 0.4D)); + this.tasks.addTask(5, new EntityAIWanderConditional(this, 0.2D, noFlyCondition)); + this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + this.tasks.addTask(7, new EntityAILookIdle(this)); + this.setSize(0.5F, 1.0F); + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(amount >= this.getMaxHealth() * 2 && !worldObj.isRemote) { + this.setDead(); + + for(int i = 0; i < 10; i++) { + Vec3 vec = Vec3.createVectorHelper(rand.nextGaussian(), rand.nextGaussian(), rand.nextGaussian()).normalize(); + + EntityItem feather = new EntityItem(worldObj); + feather.setEntityItemStack(new ItemStack(Items.feather)); + feather.setPosition(posX + vec.xCoord, posY + height / 2D + vec.yCoord, posZ + vec.zCoord); + feather.motionX = vec.xCoord * 0.5; + feather.motionY = vec.yCoord * 0.5; + feather.motionZ = vec.zCoord * 0.5; + worldObj.spawnEntityInWorld(feather); + } + + return true; + } + + return super.attackEntityFrom(source, amount); + } + + @Override + public boolean isAIEnabled() { + return true; + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(12, Byte.valueOf((byte) 0)); + this.dataWatcher.addObject(13, Byte.valueOf((byte) 0)); + } + + @Override + protected Item getDropItem() { + return Items.feather; + } + + @Override + protected void func_145780_a(int x, int y, int z, Block block) { + this.playSound("mob.chicken.step", 0.15F, 1.0F); + } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + int j = this.rand.nextInt(3) + this.rand.nextInt(1 + looting); + + for(int k = 0; k < j; ++k) { + this.dropItem(Items.feather, 1); + } + + if(this.isBurning()) { + this.dropItem(Items.cooked_chicken, this.isFat() ? 3 : 1); + } else { + this.dropItem(Items.chicken, this.isFat() ? 3 : 1); + } + } + + @Override + public int getFlyingState() { + return this.dataWatcher.getWatchableObjectByte(12); + } + + @Override + public void setFlyingState(int state) { + this.dataWatcher.updateObject(12, (byte) state); + } + + public boolean isFat() { + return this.dataWatcher.getWatchableObjectByte(13) == 1; + } + + public void setFat(boolean fat) { + this.dataWatcher.updateObject(13, (byte) (fat ? 1 : 0)); + } + + protected String getLivingSound() { + return null; + } + + protected String getHurtSound() { + return null; + } + + protected String getDeathSound() { + return null; + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if(this.getFlyingState() == this.STATE_FLYING) { + int height = worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)); + + boolean ceil = posY - height > 10; + + this.motionY = this.getRNG().nextGaussian() * 0.05 + (ceil ? 0 : 0.04) + (this.isInWater() ? 0.2 : 0); + + if(onGround) this.motionY = Math.abs(this.motionY) + 0.1D; + + this.moveForward = 1.5F; + if(this.getRNG().nextInt(20) == 0) this.rotationYaw += this.getRNG().nextGaussian() * 30; + + if(this.isFat() && this.getRNG().nextInt(50) == 0) { + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "sweat"); + nbt.setInteger("count", 3); + nbt.setInteger("block", Block.getIdFromBlock(Blocks.wool)); + nbt.setInteger("entity", getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(dimension, posX, posY, posZ, 50)); + + int x = (int) Math.floor(posX); + int y = (int) Math.floor(posY) - 1; + int z = (int) Math.floor(posZ); + EntityPlayer player = FakePlayerFactory.getMinecraft((WorldServer)worldObj); + + for(int i = 0; i < 25; i++) { + + if(ItemFertilizer.fertilize(worldObj, x, y - i, z, player, true)) { + worldObj.playAuxSFX(2005, x, y - i, z, 0); + break; + } + } + + if(this.getRNG().nextInt(10) == 0) { + this.setFat(false); + } + } + + } else if(!this.onGround && this.motionY < 0.0D) { + this.motionY *= 0.8D; + } + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + this.prevFallTime = this.fallTime; + this.prevDest = this.dest; + this.dest = (float) ((double) this.dest + (double) (this.onGround ? -1 : 4) * 0.3D); + + if(this.dest < 0.0F) { + this.dest = 0.0F; + } + + if(this.dest > 1.0F) { + this.dest = 1.0F; + } + + if(!this.onGround && this.offGroundTimer < 1.0F) { + this.offGroundTimer = 1.0F; + } + + this.offGroundTimer = (float) ((double) this.offGroundTimer * 0.9D); + + if(!this.onGround && this.motionY < 0.0D) { + this.motionY *= 0.6D; + } + + this.fallTime += this.offGroundTimer * 2.0F; + } + + @Override public boolean doesEntityNotTriggerPressurePlate() { return true; } + @Override protected boolean canTriggerWalking() { return false; } + + @Override protected void fall(float p_70069_1_) { } + @Override protected void updateFallState(double p_70064_1_, boolean p_70064_3_) { } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java new file mode 100644 index 000000000..0c9ecaef4 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java @@ -0,0 +1,160 @@ +package com.hbm.entity.mob; + +import com.hbm.entity.item.EntityItemBuoyant; +import com.hbm.items.ModItems; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.passive.EntityWaterMob; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +/** + * Copy-pasted shit from the squid class + * Mojang-certified + * + * @author hbm + */ +public class EntityPlasticBag extends EntityWaterMob { + + public float rotation; + public float prevRotation; + private float randomMotionSpeed; + private float rotationVelocity; + private float randomMotionVecX; + private float randomMotionVecY; + private float randomMotionVecZ; + + public EntityPlasticBag(World world) { + super(world); + this.setSize(0.45F, 0.45F); + this.rotationVelocity = 1.0F / (this.rand.nextFloat() + 1.0F) * 0.2F; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!worldObj.isRemote) { + this.setDead(); + this.dropItem(ModItems.plastic_bag, 1); + } + + return true; + } + + @Override + public EntityItem entityDropItem(ItemStack stack, float offset) { + if(stack.stackSize != 0 && stack.getItem() != null) { + EntityItemBuoyant entityitem = new EntityItemBuoyant(this.worldObj, this.posX, this.posY + (double) offset, this.posZ, stack); + entityitem.delayBeforeCanPickup = 10; + if(captureDrops) { + capturedDrops.add(entityitem); + } else { + this.worldObj.spawnEntityInWorld(entityitem); + } + return entityitem; + } else { + return null; + } + } + + @Override + protected String getLivingSound() { + return null; + } + + @Override + protected String getHurtSound() { + return null; + } + + @Override + protected String getDeathSound() { + return null; + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + public boolean isInWater() { + return this.worldObj.handleMaterialAcceleration(this.boundingBox.expand(0.0D, -0.6D, 0.0D), Material.water, this); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + this.prevRotation = this.rotation; + this.rotation += this.rotationVelocity; + + if(this.rotation > ((float) Math.PI * 2F)) { + this.rotation -= ((float) Math.PI * 2F); + + if(this.rand.nextInt(10) == 0) { + this.rotationVelocity = 1.0F / (this.rand.nextFloat() + 1.0F) * 0.2F; + } + } + + if(this.isInWater()) { + float f; + + if(this.rotation < (float) Math.PI) { + f = this.rotation / (float) Math.PI; + + if((double) f > 0.75D) { + this.randomMotionSpeed = 0.1F; + } + } else { + this.randomMotionSpeed *= 0.999F; + } + + if(!this.worldObj.isRemote) { + this.motionX = (double) (this.randomMotionVecX * this.randomMotionSpeed); + this.motionY = (double) (this.randomMotionVecY * this.randomMotionSpeed); + this.motionZ = (double) (this.randomMotionVecZ * this.randomMotionSpeed); + } + + f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.renderYawOffset += (-((float) Math.atan2(this.motionX, this.motionZ)) * 180.0F / (float) Math.PI - this.renderYawOffset) * 0.1F; + this.rotationYaw = this.renderYawOffset; + this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); + } else { + if(!this.worldObj.isRemote) { + this.motionX = 0.0D; + this.motionY -= 0.08D; + this.motionY *= 0.98D; + this.motionZ = 0.0D; + } + } + } + + @Override + public void moveEntityWithHeading(float forward, float strafe) { + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + @Override + protected void updateEntityActionState() { + ++this.entityAge; + + if(this.entityAge > 100) { + this.randomMotionVecX = this.randomMotionVecY = this.randomMotionVecZ = 0.0F; + } else if(this.rand.nextInt(50) == 0 || !this.inWater || this.randomMotionVecX == 0.0F && this.randomMotionVecY == 0.0F && this.randomMotionVecZ == 0.0F) { + float f = this.rand.nextFloat() * (float) Math.PI * 2.0F; + this.randomMotionVecX = MathHelper.cos(f) * 0.2F; + this.randomMotionVecY = -0.1F + this.rand.nextFloat() * 0.2F; + this.randomMotionVecZ = MathHelper.sin(f) * 0.2F; + } + + this.despawnEntity(); + } + + @Override + public boolean getCanSpawnHere() { + return this.posY > 45.0D && this.posY < 63.0D && this.getRNG().nextInt(10) == 0 && super.getCanSpawnHere(); + } +} diff --git a/src/main/java/com/hbm/entity/mob/IFlyingCreature.java b/src/main/java/com/hbm/entity/mob/IFlyingCreature.java new file mode 100644 index 000000000..68bd8c36c --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/IFlyingCreature.java @@ -0,0 +1,10 @@ +package com.hbm.entity.mob; + +public interface IFlyingCreature { + + public static final int STATE_WALKING = 0; + public static final int STATE_FLYING = 1; + + public int getFlyingState(); + public void setFlyingState(int state); +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java new file mode 100644 index 000000000..491179711 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java @@ -0,0 +1,71 @@ +package com.hbm.entity.mob.ai; + +import java.util.List; + +import com.hbm.entity.mob.EntityPigeon; + +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class EntityAIEatBread extends EntityAIBase { + + private EntityPigeon pigeon; + private double speed; + private EntityItem item; + + public EntityAIEatBread(EntityPigeon pigeon, double speed) { + this.pigeon = pigeon; + this.speed = speed; + this.setMutexBits(3); + } + + @Override + public boolean shouldExecute() { + if(pigeon.isFat() || pigeon.getFlyingState() != pigeon.STATE_WALKING) return false; + + List items = pigeon.worldObj.getEntitiesWithinAABB(EntityItem.class, this.pigeon.boundingBox.expand(10, 10, 10)); + + for(EntityItem item : items) { + if(item.getEntityItem().getItem() == Items.bread) { + this.item = item; + return true; + } + } + + return false; + } + + @Override + public boolean continueExecuting() { + return this.item != null && !this.item.isDead && this.shouldExecute(); + } + + @Override + public void updateTask() { + this.pigeon.getLookHelper().setLookPositionWithEntity(this.item, 30.0F, (float) this.pigeon.getVerticalFaceSpeed()); + + if(this.pigeon.getDistanceToEntity(this.item) > 1) { + this.pigeon.getNavigator().tryMoveToEntityLiving(this.item, this.speed); + } else { + + if(this.pigeon.getRNG().nextInt(3) == 0) { + ItemStack stack = this.item.getEntityItem(); + + if(stack.stackSize > 1) { + stack.stackSize--; + EntityItem newItem = new EntityItem(this.pigeon.worldObj); + newItem.setPosition(this.item.posX, this.item.posY, this.item.posZ); + newItem.setEntityItemStack(stack); + this.pigeon.worldObj.spawnEntityInWorld(newItem); + } + + this.item.setDead(); + } + this.pigeon.setFat(true); + this.pigeon.playSound("random.eat", 0.5F + 0.5F * this.pigeon.getRNG().nextInt(2), (this.pigeon.getRNG().nextFloat() - this.pigeon.getRNG().nextFloat()) * 0.2F + 1.0F); + } + } + +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java index 058f9211c..06ff8e598 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java @@ -93,7 +93,6 @@ public class EntityAIMaskmanCasualApproach extends EntityAIBase { EntityLivingBase entitylivingbase = this.attacker.getAttackTarget(); this.attacker.getLookHelper().setLookPositionWithEntity(entitylivingbase, 30.0F, 30.0F); double d0 = this.attacker.getDistanceSq(entitylivingbase.posX, entitylivingbase.boundingBox.minY, entitylivingbase.posZ); - double d1 = (double) (this.attacker.width * 2.0F * this.attacker.width * 2.0F + entitylivingbase.width); this.pathTimer--; diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java new file mode 100644 index 000000000..71fa26e4d --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java @@ -0,0 +1,56 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.ai.RandomPositionGenerator; +import net.minecraft.util.Vec3; + +public class EntityAIPanicConditional extends EntityAIBase { + + private EntityCreature creature; + private double speed; + private Predicate condition; + private double randPosX; + private double randPosY; + private double randPosZ; + + public EntityAIPanicConditional(EntityCreature creature, double speed, Predicate condition) { + this.creature = creature; + this.speed = speed; + this.condition = condition; + this.setMutexBits(1); + } + + @Override + public boolean shouldExecute() { + + if(!condition.test(creature)) return false; + + if(this.creature.getAITarget() == null && !this.creature.isBurning()) { + return false; + } else { + Vec3 vec3 = RandomPositionGenerator.findRandomTarget(this.creature, 5, 4); + + if(vec3 == null) { + return false; + } else { + this.randPosX = vec3.xCoord; + this.randPosY = vec3.yCoord; + this.randPosZ = vec3.zCoord; + return true; + } + } + } + + @Override + public void startExecuting() { + this.creature.getNavigator().tryMoveToXYZ(this.randPosX, this.randPosY, this.randPosZ, this.speed); + } + + @Override + public boolean continueExecuting() { + return !this.creature.getNavigator().noPath() && condition.test(creature); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java new file mode 100644 index 000000000..2f8ffa66c --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java @@ -0,0 +1,28 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.entity.mob.IFlyingCreature; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; + +public class EntityAIStartFlying extends EntityAIBase { + + private EntityLivingBase living; + private IFlyingCreature flying; + + public EntityAIStartFlying(EntityLivingBase living, IFlyingCreature flying) { + this.living = living; + this.flying = flying; + } + + @Override + public boolean shouldExecute() { + //take off if attacked, on fire or at random (avg 30s) + return this.flying.getFlyingState() == this.flying.STATE_WALKING && (this.living.getAITarget() != null || this.living.isBurning() || this.living.getRNG().nextInt(600) == 0); + } + + @Override + public void startExecuting() { + this.flying.setFlyingState(this.flying.STATE_FLYING); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java new file mode 100644 index 000000000..6f8dadee5 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java @@ -0,0 +1,27 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.entity.mob.IFlyingCreature; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; + +public class EntityAIStopFlying extends EntityAIBase { + + private EntityLivingBase living; + private IFlyingCreature flying; + + public EntityAIStopFlying(EntityLivingBase living, IFlyingCreature flying) { + this.living = living; + this.flying = flying; + } + + @Override + public boolean shouldExecute() { + return this.flying.getFlyingState() == this.flying.STATE_FLYING && this.living.getRNG().nextInt(200) == 0; + } + + @Override + public void startExecuting() { + this.flying.setFlyingState(this.flying.STATE_WALKING); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java new file mode 100644 index 000000000..1f2e3c18a --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java @@ -0,0 +1,36 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIBase; + +/** + * Identical to EntityAISwimming, but with an added conditional lambda for maximum reusability. + * + * @author hbm + */ +public class EntityAISwimmingConditional extends EntityAIBase { + + private EntityLiving living; + private Predicate condition; + + public EntityAISwimmingConditional(EntityLiving living, Predicate condition) { + this.living = living; + this.condition = condition; + this.setMutexBits(4); + living.getNavigator().setCanSwim(true); + } + + @Override + public boolean shouldExecute() { + return (this.living.isInWater() || this.living.handleLavaMovement()) && condition.test(living); + } + + @Override + public void updateTask() { + if(this.living.getRNG().nextFloat() < 0.8F) { + this.living.getJumpHelper().setJumping(); + } + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java new file mode 100644 index 000000000..6132468eb --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java @@ -0,0 +1,58 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.ai.RandomPositionGenerator; +import net.minecraft.util.Vec3; + +public class EntityAIWanderConditional extends EntityAIBase { + + private EntityCreature creature; + private double speed; + private Predicate condition; + private double xPosition; + private double yPosition; + private double zPosition; + + public EntityAIWanderConditional(EntityCreature creature, double speed, Predicate condition) { + this.creature = creature; + this.speed = speed; + this.condition = condition; + this.setMutexBits(1); + } + + @Override + public boolean shouldExecute() { + + if(!condition.test(creature)) return false; + + if(this.creature.getAge() >= 100) { + return false; + } else if(this.creature.getRNG().nextInt(120) != 0) { + return false; + } else { + Vec3 vec3 = RandomPositionGenerator.findRandomTarget(this.creature, 10, 7); + + if(vec3 == null) { + return false; + } else { + this.xPosition = vec3.xCoord; + this.yPosition = vec3.yCoord; + this.zPosition = vec3.zCoord; + return true; + } + } + } + + @Override + public boolean continueExecuting() { + return !this.creature.getNavigator().noPath() && condition.test(creature); + } + + @Override + public void startExecuting() { + this.creature.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed); + } +} diff --git a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java index 9d5b2f36c..fc4064646 100644 --- a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java +++ b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java @@ -59,4 +59,54 @@ public class PathFinderUtils { world.theProfiler.endSection(); return pathentity; } + + public static PathEntity getPathEntityToCoordPartial(World world, Entity fromEntity, int posX, int posY, int posZ, float maxDist, boolean allowDoors, boolean allowBlocked, boolean allowWater, boolean canDrown) { + world.theProfiler.startSection("pathfind"); + int startX = MathHelper.floor_double(fromEntity.posX); + int startY = MathHelper.floor_double(fromEntity.posY + 1.0D); + int startZ = MathHelper.floor_double(fromEntity.posZ); + int maxDistEff = (int) (maxDist + 16.0F); + int minX = startX - maxDistEff; + int minY = startY - maxDistEff; + int minZ = startZ - maxDistEff; + int maxX = startX + maxDistEff; + int maxY = startY + maxDistEff; + int maxZ = startZ + maxDistEff; + ChunkCache chunkcache = new ChunkCache(world, minX, minY, minZ, maxX, maxY, maxZ, 0); + + Vec3 vec = Vec3.createVectorHelper(posX - fromEntity.posX, posY - fromEntity.posY, posZ - fromEntity.posZ); + vec = vec.normalize(); + vec.xCoord *= maxDist; + vec.yCoord *= maxDist; + vec.zCoord *= maxDist; + + int x = (int) Math.floor(fromEntity.posX + vec.xCoord); + int y = (int) Math.floor(fromEntity.posY + vec.yCoord); + int z = (int) Math.floor(fromEntity.posZ + vec.zCoord); + + //this part will adjust the end of the path so it's actually on the ground, it being unreachable causes mobs to slow down + boolean solid = false; + + for(int i = y; i > y - 10; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + + } + + if(!solid) for(int i = y + 10; i > y; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + } + + //PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, toEntity, maxDist); + PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, x, y, z, maxDist); + world.theProfiler.endSection(); + return pathentity; + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java index 8a688df2d..dd928b885 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java +++ b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java @@ -4,6 +4,7 @@ import com.hbm.entity.mob.EntityGlyphid; import com.hbm.lib.ModDamageSource; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -27,7 +28,7 @@ public class EntityAcidBomb extends EntityThrowableInterp { if(mop.typeOfHit == mop.typeOfHit.ENTITY) { if(!(mop.entityHit instanceof EntityGlyphid)) { - mop.entityHit.attackEntityFrom(ModDamageSource.acid, damage); + mop.entityHit.attackEntityFrom(new EntityDamageSourceIndirect(ModDamageSource.s_acid, this, thrower), damage); this.setDead(); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index e8f4a6ad8..0115dbef3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -150,7 +150,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ) / 16D))); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index a64891b70..e608b49d5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -56,6 +56,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa @Override protected void entityInit() { + super.entityInit(); init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); this.dataWatcher.addObject(10, new Integer(0)); } @@ -197,7 +198,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ) / 16D))); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java index 74a4f9a47..8871bd430 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java @@ -32,49 +32,36 @@ public class EntityBoxcar extends EntityThrowable { this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - /*this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ;*/ - this.motionY -= 0.03; if(motionY < -1.5) motionY = -1.5; - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F); - this.setDead(); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); - - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boxcar, 1000); - } - - if(!worldObj.isRemote) - worldObj.setBlock((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5), ModBlocks.boxcar); - } - } + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:weapon.trainImpact", 100.0F, 1.0F); + this.setDead(); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boxcar, 1000); + } + + if(!worldObj.isRemote) + worldObj.setBlock((int) (this.posX - 0.5), (int) (this.posY + 0.5), (int) (this.posZ - 0.5), ModBlocks.boxcar); + } + } @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } + protected void onImpact(MovingObjectPosition p_70184_1_) { } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 1a34a8823..bfaaf8b31 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -13,6 +13,14 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; +import com.hbm.explosion.vanillant.standard.BlockProcessorNoDamage; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; @@ -370,8 +378,8 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, living.posX, living.posY + living.height - head, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); worldObj.playSoundEffect(victim.posX, victim.posY, victim.posZ, "mob.zombie.woodbreak", 1.0F, 0.95F + rand.nextFloat() * 0.2F); - } - } + } + } } } @@ -414,8 +422,17 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(config.jolt > 0 && !worldObj.isRemote) ExplosionLarge.jolt(worldObj, posX, posY, posZ, config.jolt, 150, 0.25); - if(config.explosive > 0 && !worldObj.isRemote) - worldObj.newExplosion(this, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); + if(config.explosive > 0 && !worldObj.isRemote) { + //worldObj.newExplosion(this.thrower, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, config.explosive, this.thrower); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + if(config.blockDamage) vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(config.incendiary > 0 ? new BlockMutatorFire() : null)); + else vnt.setBlockProcessor(new BlockProcessorNoDamage().withBlockEffect(config.incendiary > 0 ? new BlockMutatorFire() : null)); + vnt.setEntityProcessor(new EntityProcessorStandard().allowSelfDamage()); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectStandard()); + vnt.explode(); + } if(config.shrapnel > 0 && !worldObj.isRemote) ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, config.shrapnel); diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index 3eb72cddc..ed30224e6 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -4,16 +4,12 @@ import java.awt.Color; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.mob.EntityGlyphid; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.trait.FT_Combustible; -import com.hbm.inventory.fluid.trait.FT_Corrosive; -import com.hbm.inventory.fluid.trait.FT_Flammable; -import com.hbm.inventory.fluid.trait.FT_Poison; -import com.hbm.inventory.fluid.trait.FT_Toxin; -import com.hbm.inventory.fluid.trait.FT_VentRadiation; +import com.hbm.inventory.fluid.trait.*; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IRepairable; @@ -43,6 +39,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; + public class EntityChemical extends EntityThrowableNT { /* @@ -211,6 +208,12 @@ public class EntityChemical extends EntityThrowableNT { HbmLivingProps.setOil(living, 300); //doused in oil for 15 seconds } } + if(type.hasTrait(Fluids.DELICIOUS.getClass())) { + if(living != null && living.isEntityAlive()) { + living.heal(2F * (float) intensity); + } + } + } if(this.isExtinguishing()) { @@ -219,7 +222,7 @@ public class EntityChemical extends EntityThrowableNT { if(style == ChemicalStyle.BURNING) { FT_Combustible trait = type.getTrait(FT_Combustible.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), 2F + (trait != null ? (trait.getCombustionEnergy() / 100_000F) : 0)); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), 0.2F + (trait != null ? (trait.getCombustionEnergy() / 100_000F) : 0)); e.setFire(5); } @@ -229,17 +232,17 @@ public class EntityChemical extends EntityThrowableNT { float heat = Math.max(flammable != null ? flammable.getHeatEnergy() / 50_000F : 0, combustible != null ? combustible.getCombustionEnergy() / 100_000F : 0); heat *= intensity; - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), (2F + heat) * (float) intensity); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_flamethrower), (0.2F + heat) * (float) intensity); e.setFire((int) Math.ceil(5 * intensity)); } if(type.hasTrait(FT_Corrosive.class)) { FT_Corrosive trait = type.getTrait(FT_Corrosive.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_acid), trait.getRating() / 50F); - + if(living != null) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(living, getDamage(ModDamageSource.s_acid), trait.getRating() / 50F); for(int i = 0; i < 4; i++) { - ArmorUtil.damageSuit(living, i, (int) Math.ceil(trait.getRating() / 50)); + ArmorUtil.damageSuit(living, i, trait.getRating() / 40); } } } @@ -267,6 +270,26 @@ public class EntityChemical extends EntityThrowableNT { trait.affect(living, intensity); } } + + if(type.hasTrait(FT_Pheromone.class)){ + + FT_Pheromone pheromone = type.getTrait(FT_Pheromone.class); + + if(living != null) { + living.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 2)); + living.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 5 * 60 * 20, 1)); + living.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2 * 60 * 20, 4)); + + if (living instanceof EntityGlyphid && pheromone.getType() == 1) { + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); + living.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 60 * 20, 0)); + living.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 60 * 20, 19)); + + } else if (living instanceof EntityPlayer && pheromone.getType() == 2) { + living.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 2)); + } + } + } if(type == Fluids.XPJUICE) { @@ -301,14 +324,14 @@ public class EntityChemical extends EntityThrowableNT { } //terribly copy-pasted from EntityEnderman.class - protected boolean teleportRandomly(Entity e) { + public boolean teleportRandomly(Entity e) { double x = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; double y = this.posY + (double) (this.rand.nextInt(64) - 32); double z = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D; return this.teleportTo(e, x, y, z); } - protected boolean teleportTo(Entity e, double x, double y, double z) { + public boolean teleportTo(Entity e, double x, double y, double z) { double targetX = e.posX; double targetY = e.posY; @@ -387,7 +410,7 @@ public class EntityChemical extends EntityThrowableNT { FT_VentRadiation trait = type.getTrait(FT_VentRadiation.class); ChunkRadiationManager.proxy.incrementRad(worldObj, mop.blockX, mop.blockY, mop.blockZ, trait.getRadPerMB() * 5); } - + ChemicalStyle style = getStyle(); if(style == ChemicalStyle.BURNING || style == ChemicalStyle.GASFLAME) { @@ -401,6 +424,18 @@ public class EntityChemical extends EntityThrowableNT { } } } + + if(style == ChemicalStyle.BURNING || style == ChemicalStyle.GASFLAME) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + Block fire = type == Fluids.BALEFIRE ? ModBlocks.balefire : Blocks.fire; + + if(worldObj.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isAir(worldObj, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { + worldObj.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, fire); + } + } + } if(this.isExtinguishing()) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java index 08c860a57..b0ac2f773 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableInterp.java @@ -7,18 +7,18 @@ import net.minecraft.world.World; public abstract class EntityThrowableInterp extends EntityThrowableNT { - private int turnProgress; - private double syncPosX; - private double syncPosY; - private double syncPosZ; - private double syncYaw; - private double syncPitch; + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + protected double syncYaw; + protected double syncPitch; @SideOnly(Side.CLIENT) - private double velocityX; + protected double velocityX; @SideOnly(Side.CLIENT) - private double velocityY; + protected double velocityY; @SideOnly(Side.CLIENT) - private double velocityZ; + protected double velocityZ; public EntityThrowableInterp(World world) { super(world); diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index c07a22bd8..40964b9d3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -185,7 +185,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); } - if(!this.worldObj.isRemote) { + if(!this.worldObj.isRemote && this.doesImpactEntities()) { Entity hitEntity = null; List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX * motionMult(), this.motionY * motionMult(), this.motionZ * motionMult()).expand(1.0D, 1.0D, 1.0D)); @@ -282,6 +282,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } + public boolean doesImpactEntities() { + return true; + } + public boolean doesPenetrate() { return false; } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f4a301914..ef6b7f526 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -14,7 +14,6 @@ import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -56,6 +55,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public double renderX; public double renderY; public double renderZ; + public double cachedSpeed; public EntityRailCarBase coupledFront; public EntityRailCarBase coupledBack; @@ -131,7 +131,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { data.setInteger("color", 0x0000ff); data.setFloat("scale", 1.5F); data.setString("text", id + " (#" + train.ltuIndex + ")"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); + //PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } } @@ -175,9 +175,20 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + } else { + this.renderX = posX; + this.renderY = posY; + this.renderZ = posZ; } } else { + + if(!this.isOnRail) { + if(this.coupledFront != null) this.coupledFront.couple(this.coupledFront.getCouplingFrom(this), null); + if(this.coupledBack != null) this.coupledBack.couple(this.coupledBack.getCouplingFrom(this), null); + this.coupledFront = null; + this.coupledBack = null; + } if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; @@ -188,10 +199,20 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(this.ltu != null) this.ltu.dissolveTrain(); } - if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null)) { + if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null) && this.isOnRail) { LogicalTrainUnit.generateTrain(this); } + if(!this.isOnRail) { + Vec3 motion = Vec3.createVectorHelper(0, 0, this.cachedSpeed); + motion.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180D)); + this.moveEntity(motion.xCoord, motion.yCoord - 0.04, motion.zCoord); + this.renderX = posX; + this.renderY = posY; + this.renderZ = posZ; + this.cachedSpeed *= 0.95D; + } + DummyConfig[] definitions = this.getDummies(); if(!this.initDummies) { @@ -207,7 +228,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { double z = posZ + rot.zCoord; dummy.setPosition(x, y, z); dummy.setSize(def.width, def.height); - dummy.velocityChanged = true; worldObj.spawnEntityInWorld(dummy); this.dummies[i] = dummy; } @@ -215,16 +235,18 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.initDummies = true; } - for(int i = 0; i < definitions.length; i++) { - DummyConfig def = definitions[i]; - BoundingBoxDummyEntity dummy = dummies[i]; - Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); - rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); - rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = renderX + rot.xCoord; - double y = renderY + rot.yCoord; - double z = renderZ + rot.zCoord; - dummy.setPosition(x, y, z); + if(renderY != 0) { + for(int i = 0; i < definitions.length; i++) { + DummyConfig def = definitions[i]; + BoundingBoxDummyEntity dummy = dummies[i]; + Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = renderX + rot.xCoord; + double y = renderY + rot.yCoord; + double z = renderZ + rot.zCoord; + dummy.setPosition(x, y, z); + } } } } @@ -318,6 +340,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(Math.abs(speed) < 0.001) speed = 0; + for(EntityRailCarBase car : ltu.trains) car.cachedSpeed = speed; + if(ltu.trains.length == 1) { EntityRailCarBase train = ltu.trains[0]; @@ -355,11 +379,9 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { ltu.moveTrainByApproach(speed); } - if(ltu.trains.length != 1) { - //ltu.pushForce *= 0.95; - ltu.pushForce = 0; - ltu.collideTrain(speed); - } + //ltu.pushForce *= 0.95; + ltu.pushForce = 0; + ltu.collideTrain(speed); } } @@ -388,7 +410,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public void derail() { isOnRail = false; - this.setDead(); + //this.setDead(); } @SideOnly(Side.CLIENT) @@ -745,24 +767,34 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return totalSpeed; } + /* + * This method has no rhyme or reason behind it. Nothing of this was calculated, instead it was an old system that worked with older constraints, + * which was retrofitted with a slightly newer system and beaten into submission for two consecutive hours until it yielded the results it should. + * Booleans are flipped back and forth based on seemingly random conditions, numbers are inverted and then inverted again and finally smashed into + * the rail system in the hopes that it would make trains work. My apologies extend towards Bob in the future who will inevitably have to rewrite this + * abhorrence because of some constraint change which will cause the entire system to break. Part of me wishes to never touch the train code ever again, + * to abandon the idea and to ban the annoying people on Discord who keep asking about it. Another part wants me to slam my head against this project + * until either it or my skull gives way; and considering I got this far, it appears as if this side is the one that is winning. + */ /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ public void moveTrainByApproach(double speed) { - boolean forward = speed < 0; - speed = Math.abs(speed); EntityRailCarBase previous = null; - EntityRailCarBase first = this.trains[0]; + boolean forward = speed > 0; + boolean order = forward ^ first.getCouplingFrom(null) == TrainCoupling.BACK; - for(int i = !forward ? 0 : this.trains.length - 1; !forward ? i < this.trains.length : i >= 0; i += !forward ? 1 : -1) { + for(int i = order ? 0 : this.trains.length - 1; order ? i < this.trains.length : i >= 0; i += order ? 1 : -1) { EntityRailCarBase current = this.trains[i]; if(previous == null) { + if(first == current) speed *= -1; + boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); - /*Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 frontPos = current.getRelPosAlongRail(anchor, (speed + current.getLengthSpan()) * -sigNum, new MoveContext(RailCheckType.FRONT, current.getCollisionSpan() - current.getLengthSpan())); if(frontPos == null) { current.derail(); @@ -770,43 +802,16 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return; } else { anchor = current.getCurrentAnchorPos(); //reset origin to new position - Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); + Vec3 corePos = current.getRelPosAlongRail(anchor, speed * -sigNum, new MoveContext(RailCheckType.CORE, 0)); current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - Vec3 backPos = current.getRelPosAlongRail(anchor, -current.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 backPos = current.getRelPosAlongRail(anchor, (speed - current.getLengthSpan()) * -sigNum, new MoveContext(RailCheckType.BACK, current.getCollisionSpan() - current.getLengthSpan())); if(frontPos == null || backPos == null) { current.derail(); this.dissolveTrain(); return; } else { - setRenderPos(current, frontPos, backPos); - } - }*/ - - Pair[] checks; - double dist = speed * sigNum; - - if(forward) { - checks = new Pair[] { - new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT), - new Pair(dist, RailCheckType.CORE), - new Pair(dist - current.getLengthSpan(), RailCheckType.BACK) - }; - } else { - checks = new Pair[] { - new Pair(dist - current.getLengthSpan(), RailCheckType.BACK), - new Pair(dist, RailCheckType.CORE), - new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT) - }; - } - - double brake = 0; - - for(Pair check : checks) { - MoveContext ctx = new MoveContext(check.getValue(), current.getCollisionSpan() - current.getLengthSpan()); - current.getRelPosAlongRail(anchor, check.getKey() - (brake * Math.signum(check.getKey())), ctx); - if(ctx.collision) { - brake += ctx.overshoot; + setRenderPos(current, inReverse ? backPos : frontPos, inReverse ? frontPos : backPos); } } @@ -886,6 +891,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { @SideOnly(Side.CLIENT) public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { List text = new ArrayList(); - ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); //none of this shit is going to work anyway + //ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 4bf5f2ee2..65deb95b5 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -22,7 +22,7 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.dataWatcher.addObject(10, new Integer(0)); } - public int countVacantSlots() { + public int countOccupiedSlots() { int slots = 0; for(int i = 0; i < this.getSizeInventory(); i++) { @@ -53,11 +53,9 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.slots[slot] = null; } - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } } else { - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -67,10 +65,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(this.slots[slot] != null) { ItemStack itemstack = this.slots[slot]; this.slots[slot] = null; - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } else { - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -82,8 +78,12 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } - - if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); + } + + @Override + public void onUpdate() { + super.onUpdate(); + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countOccupiedSlots()); } @Override @@ -142,7 +142,7 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II } } - this.dataWatcher.updateObject(10, this.countVacantSlots()); + this.dataWatcher.updateObject(10, this.countOccupiedSlots()); } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index da9a66f4e..8ac621cf2 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -291,6 +291,6 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { text.add("Front: " + this.coupledFront); text.add("Back: " + this.coupledBack);*/ text.add("Nearest seat: " + this.getNearestSeat(MainRegistry.proxy.me())); - ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); + //ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index 38b3514da..820f3df46 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.grenade.EntityGrenadeTau; import com.hbm.entity.grenade.EntityGrenadeZOMG; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBase; import com.hbm.entity.particle.EntityChlorineFX; @@ -29,7 +30,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.entity.item.EntityTNTPrimed; import net.minecraft.entity.passive.EntitySheep; import net.minecraft.entity.player.EntityPlayer; @@ -406,7 +406,7 @@ public class ExplosionChaos { public static void pDestruction(World world, int x, int y, int z) { - EntityFallingBlock entityfallingblock = new EntityFallingBlock(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); world.spawnEntityInWorld(entityfallingblock); } diff --git a/src/main/java/com/hbm/explosion/ExplosionFleija.java b/src/main/java/com/hbm/explosion/ExplosionFleija.java index 3ad81f5e2..5a478fe14 100644 --- a/src/main/java/com/hbm/explosion/ExplosionFleija.java +++ b/src/main/java/com/hbm/explosion/ExplosionFleija.java @@ -96,7 +96,7 @@ public class ExplosionFleija dist = (int) Math.sqrt(dist); for (int y = (int)(dist / this.explosionCoefficient2); y > -dist / this.explosionCoefficient; y--) { - if(!(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) == Blocks.bedrock && this.posY+y <= 0) && !(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) instanceof DecoBlockAlt))this.worldObj.setBlock(this.posX+x, this.posY+y, this.posZ+z, Blocks.air); + if(this.posY + y > 0 && !(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) instanceof DecoBlockAlt))this.worldObj.setBlock(this.posX+x, this.posY+y, this.posZ+z, Blocks.air); } } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java index ef07620ee..5893488d5 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java @@ -147,68 +147,4 @@ public class ExplosionNukeAdvanced } } } - - /*public static void mush(World world, double x, double y, double z) - { - double d = (float)x + 0.5F; - double d1 = (float)y + 0.5F; - double d2 = (float)z + 0.5F; - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 15, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 + 15, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 15, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 - 15, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 25, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 + 25, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 25, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 - 25, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 15, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 30, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 45, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 60, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 75, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 15, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 + 15, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 15, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 - 15, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 40, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 + 40, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 40, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 - 40, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 90, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 90, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 90, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 90, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 20, d1 + 105, d2 + 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 20, d1 + 105, d2 - 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 20, d1 + 105, d2 + 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 20, d1 + 105, d2 - 20, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1 + 120, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 120, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1 + 120, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 120, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - }*/ } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index f8cc562fe..8f075876c 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -6,14 +6,10 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java b/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java deleted file mode 100644 index 0886cb3eb..000000000 --- a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.hbm.explosion.nt; - -@Deprecated -public interface IExplosionLogic { - - public void updateLogic(); - public boolean isDone(); -} diff --git a/src/main/java/com/hbm/explosion/nt/Mark5.java b/src/main/java/com/hbm/explosion/nt/Mark5.java deleted file mode 100644 index 16d2d5ee4..000000000 --- a/src/main/java/com/hbm/explosion/nt/Mark5.java +++ /dev/null @@ -1,282 +0,0 @@ -package com.hbm.explosion.nt; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -@Deprecated -public class Mark5 implements IExplosionLogic { - - //holds rays after being calculated up to where the blocks get removed - private List pendingRays = new ArrayList(); - //once a ray has been processed, it will be buffered for extension - private List completedRays = new ArrayList(); - //buffered blocks marked for deletion - private Set buffer = new HashSet(); - - private World world; - private float strength; - float originX; - float originY; - float originZ; - float angularDelta; - - //0: calculate blocks to destroy - //1: destroy blocks - //2: generate new rays - int phase = 0; - - public Mark5(World world, float strength, float x, float y, float z) { - this.world = world; - this.strength = strength; - this.originX = x; - this.originY = y; - this.originZ = z; - - this.initRays(); - } - - private void initRays() { - - float startLen = 0.5F; - - //top - pendingRays.add(new MVRay(strength, originX, originY, originZ, 0F, (float) Math.PI * 0.5F, startLen)); - //bottom - pendingRays.add(new MVRay(strength, originX, originY, originZ, 0F, -(float) Math.PI * 0.5F, startLen)); - - float pilet = (float) Math.PI * 0.25F; - - for(int i = 0; i < 8; i++) { - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, 0F, startLen)); - - {//if(i % 2 == 0) { - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, -pilet, startLen)); - pendingRays.add(new MVRay(strength, originX, originY, originZ, pilet * i, pilet, startLen)); - } - } - - this.angularDelta = pilet; - } - - @Override - public void updateLogic() { - - switch(this.phase) { - case 0: processRays(5000); break; - case 1: breakBlocks(10000); break; - case 2: repopulate(20000); break; - } - } - - private void processRays(int amount) { - - if(this.phase == 0 && this.pendingRays.isEmpty()) { - this.phase = 1; - return; - } - - int rem = 0; - - for(MVRay ray : this.pendingRays) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ(ray.pitch); - vec.rotateAroundY(ray.yaw); - boolean shouldSplit = true; - float lastIndex = 0; - - for(float i = 0; i < ray.length; i += 0.5F) { - - lastIndex = i; - int x = (int)Math.floor(ray.x + vec.xCoord * i); - int y = (int)Math.floor(ray.y + vec.yCoord * i); - int z = (int)Math.floor(ray.z + vec.zCoord * i); - - BlockPos pos = new BlockPos(x, y, z); - - if(y > 255 || y < 0) { - shouldSplit = false; - break; - } - - Block b = world.getBlock(x, y, z); - - float res = (b.getMaterial().isLiquid() ? 0 : b.getExplosionResistance(null)) + Blocks.air.getExplosionResistance(null); - - ray.power -= (res * res); - - if(ray.power <= 0) { - shouldSplit = false; - break; - } - - if(b != Blocks.air) - this.buffer.add(pos); - } - - if(shouldSplit) { - ray.x = ray.x + (float)vec.xCoord * lastIndex; - ray.y = ray.y + (float)vec.yCoord * lastIndex; - ray.z = ray.z + (float)vec.zCoord * lastIndex; - this.completedRays.add(ray); - } - - rem++; - - if(rem == amount) - break; - } - - this.pendingRays.subList(0, rem).clear(); - - if(this.pendingRays.isEmpty()) { - this.phase = 1; - } - } - - private void breakBlocks(int amount) { - - if(this.phase == 1 && this.buffer.isEmpty()) { - this.angularDelta *= 0.5F; - this.phase = 2; - return; - } - - int rem = 0; - - List toRem = new ArrayList(); - - for(BlockPos pos : this.buffer) { - world.setBlock(pos.x, pos.y, pos.z, Blocks.air, 0, 3); - - toRem.add(pos); - rem++; - - if(rem == amount) - break; - } - - this.buffer.removeAll(toRem); - - if(this.buffer.isEmpty()) { - this.angularDelta *= 0.5F; - this.phase = 2; - } - } - - private void repopulate(int amount) { - - if(this.phase == 2 && this.completedRays.isEmpty()) { - this.phase = 0; - } - - int rem = 0; - - for(MVRay ray : this.completedRays) { - - for(int i = 0; i < 2; i++) { - for(int j = 0; j < 2; j++) { - MVRay child = new MVRay(ray.power, ray.x, ray.y, ray.z, ray.yaw + this.angularDelta * i, ray.pitch + this.angularDelta * j, ray.length * 2); - this.pendingRays.add(child); - } - } - - rem++; - - if(rem == amount) - break; - } - - this.completedRays.subList(0, rem).clear(); - } - - @Override - public boolean isDone() { - return this.pendingRays.isEmpty() && this.completedRays.isEmpty() && this.buffer.isEmpty(); - } - - public static class MVRay { - - //initiated with starting power, once processed it shows the power left - float power; - //once calculated, this becomes true - boolean collected = false; - float x; - float y; - float z; - float yaw; - float pitch; - float length; - - public MVRay(float power, float x, float y, float z, float yaw, float pitch, float length) { - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - - public MVRay(float power, float x, float y, float z, Vec3 dir, float length) { - - double len = dir.lengthVector(); - - float yaw = (float)Math.atan2(dir.zCoord, dir.xCoord); - float pitch = (float)Math.asin(dir.yCoord / len); - - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - } - - public static class BlockPos { - - int x; - int y; - int z; - - public BlockPos(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - @Override - public boolean equals(Object obj) { - - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; - - BlockPos other = (BlockPos) obj; - if(x != other.x) return false; - if(y != other.y) return false; - if(z != other.z) return false; - - return true; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java b/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java deleted file mode 100644 index 7c2d60e31..000000000 --- a/src/main/java/com/hbm/explosion/nt/Mark5Ausf2.java +++ /dev/null @@ -1,447 +0,0 @@ -package com.hbm.explosion.nt; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -/* - * Turns out segmenting makes the craters ugly and, for whatever reason, doesn't actually improve performance (??????) - * Ausf3 will use the same approach as MK4 but with some optimizations regarding setBlock redundancy and getBlock operations - * See: docvt7 - */ -@Deprecated -public class Mark5Ausf2 implements IExplosionLogic { - - //holds rays after being calculated up to where the blocks get removed - private HorizontalSegment[] segments; - private HorizontalSegment[] repopulatedSegments; - //buffered blocks marked for deletion - private Set buffer = new HashSet(); - - private World world; - private float strength; - float originX; - float originY; - float originZ; - float length; - - //0: calculate blocks to destroy - //1: destroy blocks - //2: generate new rays - int phase = 0; - - public Mark5Ausf2(World world, float strength, float x, float y, float z) { - this.world = world; - this.strength = strength; - this.originX = x; - this.originY = y; - this.originZ = z; - - this.initRays(); - } - - private double getResolutionMult() { - return 5D; - } - - private void initRays() { - - this.length = 5F; //how long the current rays are - - double bow = length * Math.PI; //one "bow", the distance between the poles along the circumference ( U/2 ) - int bowCount = (int) Math.ceil(bow * getResolutionMult()); //how many segments we want along one bow, usually 1 per block + a resolution multiplier - double bowDelta = (Math.PI / (double) (bowCount - 1)); //the angular difference (pitch) between where each segment is - - segments = new HorizontalSegment[bowCount]; - - for(int i = 0; i < bowCount; i++) { - double currBow = bowDelta * i; //the current angle along the bow (i.e. the pitch of the horizontal ring) - double ringRadius = Math.sin(currBow) * length; //the radius of the current ring - double ringCircumference = 2D * ringRadius * Math.PI; //the circumference for the ring - int ringCount = (int) Math.max(Math.ceil(ringCircumference * getResolutionMult()), 1); //how many rays we want per ring (1 per block plus extra resolution) - double ringDelta = ((Math.PI * 2D) / (double) (ringCount - 1)); //the angular difference (yaw) between rays in a ring - - HorizontalSegment seg = new HorizontalSegment(ringCount); - float pitch = (float) currBow; - - for(int j = 0; j < ringCount; j++) { - float yaw = (float)(ringDelta * j); - - //if(yaw < Math.PI * 0.5 && pitch < Math.PI) - seg.rays[j] = new MVRay(strength, originX, originY, originZ, yaw, pitch, length); - } - - segments[i] = seg; - } - - /*System.out.println("Initialized with" + segments.length + " segments!"); - - for(HorizontalSegment seg : segments) { - - if(seg == null) { - System.out.println("NULL"); - } else { - System.out.println(seg.rays.length); - } - }*/ - } - - @Override - public void updateLogic() { - - switch(this.phase) { - case 0: processRays(50000); break; - case 1: breakBlocks(2000); break; - case 2: repopulate(); break; - } - } - - private int processBow = 0; - private int processRing = 0; - - private void endPhaseZero() { - this.processBow = 0; - this.processRing = 0; - this.phase = 1; - } - - private void processRays(int amount) { - - while(true) { - - if(amount < 0) { - return; - } - - if(this.segments[processBow] == null || this.processRing >= this.segments[processBow].rays.length) { - this.processRing = 0; - this.processBow++; - - if(this.processBow >= this.segments.length) { - endPhaseZero(); - return; - } - continue; - } - - if(this.processBow >= this.segments.length) { - endPhaseZero(); - return; - } - - MVRay ray = this.segments[processBow].rays[this.processRing]; - - if(ray != null) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ(ray.pitch); - vec.rotateAroundY(ray.yaw); - - double finalX = 0; - double finalY = 0; - double finalZ = 0; - - for(float i = 0; i < ray.length; i += 0.5F) { - - finalX = ray.x + vec.xCoord * i; - finalY = ray.y + vec.yCoord * i; - finalZ = ray.z + vec.zCoord * i; - int x = (int)Math.floor(finalX); - int y = (int)Math.floor(finalY); - int z = (int)Math.floor(finalZ); - - //System.out.println(ray.pitch + " " + ray.yaw + " / " + x + " " + y + " " + z); - - BlockPos pos = new BlockPos(x, y, z); - - if(y > 255 || y < 0) { - break; - } - - Block b = world.getBlock(x, y, z); - - float res = (b.getMaterial().isLiquid() ? (float)Math.pow(Blocks.air.getExplosionResistance(null), 1.25) : (float)Math.pow(b.getExplosionResistance(null), 1.25)); - - ray.power -= res; - - if(ray.power <= 0) { - break; - } - - if(b != Blocks.air) - this.buffer.add(pos); - } - - if(ray.power <= 0 || finalY < 0 || finalY > 255 || this.length > this.strength) { - this.segments[processBow].rays[this.processRing] = null; - } - ray.x = (float) finalX; - ray.y = (float) finalY; - ray.z = (float) finalZ; - } - - amount--; - this.processRing++; - } - } - - private void breakBlocks(int amount) { - - if(this.phase == 1 && this.buffer.isEmpty()) { - this.phase = 2; - return; - } - - int rem = 0; - - List toRem = new ArrayList(); - - for(BlockPos pos : this.buffer) { - world.setBlock(pos.x, pos.y, pos.z, Blocks.air, 0, 3); - - toRem.add(pos); - rem++; - - if(rem == amount) - break; - } - - this.buffer.removeAll(toRem); - - if(this.buffer.isEmpty()) { - this.phase = 2; - } - } - - private void repopulate() { - - boolean didYouDoLiterallyAnything = false; - this.length *= 2; - - double bow = length * Math.PI; - int bowCount = (int) Math.ceil(bow * getResolutionMult()); - double bowDelta = (Math.PI / (double) (bowCount - 1)); - - repopulatedSegments = new HorizontalSegment[bowCount]; - - for(int i = 0; i < bowCount; i++) { - - double currBow = bowDelta * i; - double ringRadius = Math.sin(currBow) * length; - double ringCircumference = 2D * ringRadius * Math.PI; - int ringCount = (int) Math.max(Math.ceil(ringCircumference * getResolutionMult()), 1); - double ringDelta = ((Math.PI * 2D) / (double) (ringCount - 1)); - - float pitch = (float) currBow; - HorizontalSegment parentSegment = fromAngle(pitch); - - if(parentSegment != null) { - - HorizontalSegment seg = new HorizontalSegment(ringCount); - - for(int j = 0; j < ringCount; j++) { - float yaw = (float)(ringDelta * j); - - MVRay parentRay = parentSegment.fromAngle(yaw); - - if(parentRay != null && parentRay.power > 0) { - - /*Vec3 newDest = Vec3.createVectorHelper(length, 0D, 0D); - newDest.rotateAroundZ(pitch); - newDest.rotateAroundY(yaw); - Vec3 delta = Vec3.createVectorHelper(newDest.xCoord - parentRay.x, newDest.yCoord - parentRay.y, newDest.zCoord - parentRay.z); - - double deltaLen = delta.lengthVector(); - float pLen = parentRay.length; - - double s_deltaLen = Math.sqrt(delta.xCoord * delta.xCoord + delta.yCoord * delta.yCoord); - double s_alpha0 = parentRay.pitch; - double s_delta = Math.acos((pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)); - double newPitch = s_alpha0 + (Math.PI - s_delta); - - double r_deltaLen = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); - double r_alpha0 = parentRay.yaw; - double r_delta = Math.acos((pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen)); - double newYaw = r_alpha0 + (Math.PI - r_delta);*/ - - /*System.out.println("deltaLen: " + deltaLen); - System.out.println("pLen: " + pLen); - System.out.println("s_deltaLen: " + s_deltaLen); - System.out.println("s_alpha0: " + s_alpha0); - System.out.println("s_delta: " + s_delta); - System.out.println("newPitch: " + newPitch); - System.out.println("r_deltaLen: " + r_deltaLen); - System.out.println("r_alpha0: " + r_alpha0); - System.out.println("r_delta: " + r_delta); - System.out.println("newYaw: " + newYaw);*/ - /*System.out.println("(pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)"); - System.out.println("" + (pLen * pLen + s_deltaLen * s_deltaLen - length * length) / (2 * pLen * s_deltaLen)); - System.out.println("(pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen)"); - System.out.println("" + (pLen * pLen + r_deltaLen * r_deltaLen - length * length) / (2 * pLen * r_deltaLen));*/ - - Vec3 len = Vec3.createVectorHelper(parentRay.x - originX, parentRay.y - originY, parentRay.z - originZ); - double totalLen = len.lengthVector(); - Vec3 normal = Vec3.createVectorHelper(totalLen, 0D, 0D); - normal.rotateAroundZ(pitch); - normal.rotateAroundY(yaw); - - //double surface = 4 * Math.PI * this.length * this.length; - //double prevSurface = 4 * Math.PI * totalLen * totalLen; - float newPower = parentRay.power; - - MVRay newRay = new MVRay(newPower, - (float)(this.originX - normal.xCoord), - (float)(this.originY - normal.yCoord), - (float)(this.originZ - normal.zCoord), - yaw, pitch, (float) (this.length - totalLen)); - - seg.rays[j] = newRay; - repopulatedSegments[i] = seg; - didYouDoLiterallyAnything = true; - } - } - } - } - - this.segments = this.repopulatedSegments; - this.repopulatedSegments = null; - - - /*for(HorizontalSegment seg : segments) { - - if(seg == null) { - System.out.println("NULL"); - } else { - System.out.println(seg.rays.length); - } - } - System.out.println("STOP");*/ - - this.phase = 0; - - if(!didYouDoLiterallyAnything) { - this.isDone = true; - } - } - - private HorizontalSegment fromAngle(float pitch) { - int size = this.segments.length; - int index = (int)Math.floor((pitch * size) / Math.PI) % this.segments.length; - - if(index >= this.segments.length || index < 0) - return null; - - return this.segments[index]; - } - - private boolean isDone = false; - - @Override - public boolean isDone() { - return isDone; - } - - public static class HorizontalSegment { - - MVRay[] rays; - - private HorizontalSegment(int size) { - rays = new MVRay[size]; - } - - private MVRay fromAngle(float yaw) { - int size = rays.length; - int index = (int)Math.floor((yaw * size) / (Math.PI * 2)) % this.rays.length; - - if(index >= this.rays.length || index < 0) - return null; - - return rays[index]; - } - } - - public static class MVRay { - - //initiated with starting power, once processed it shows the power left - float power; - //once calculated, this becomes true - boolean collected = false; - float x; - float y; - float z; - float yaw; - float pitch; - float length; - boolean tracked; - - public MVRay(float power, float x, float y, float z, float yaw, float pitch, float length) { - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - - public MVRay(float power, float x, float y, float z, Vec3 dir, float length) { - - double len = dir.lengthVector(); - - float yaw = (float)Math.atan2(dir.zCoord, dir.xCoord); - float pitch = (float)Math.asin(dir.yCoord / len); - - this.power = power; - this.x = x; - this.y = y; - this.z = z; - this.yaw = yaw; - this.pitch = pitch; - this.length = length; - } - } - - public static class BlockPos { - - int x; - int y; - int z; - - public BlockPos(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + x; - result = prime * result + y; - result = prime * result + z; - return result; - } - - @Override - public boolean equals(Object obj) { - - if(this == obj) return true; - if(obj == null) return false; - if(getClass() != obj.getClass()) return false; - - BlockPos other = (BlockPos) obj; - if(x != other.x) return false; - if(y != other.y) return false; - if(z != other.z) return false; - - return true; - } - } -} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java new file mode 100644 index 000000000..98adec4a4 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorGlyphidDig.java @@ -0,0 +1,89 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockAllocator; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; + +import java.util.HashSet; + +public class BlockAllocatorGlyphidDig implements IBlockAllocator { + + protected double maximum; + protected int resolution; + + public BlockAllocatorGlyphidDig(double maximum) { + this(maximum, 16); + } + + public BlockAllocatorGlyphidDig(double maximum, int resolution) { + this.resolution = resolution; + this.maximum = maximum; + } + + @Override + public HashSet allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + + HashSet affectedBlocks = new HashSet(); + + for(int i = 0; i < this.resolution; ++i) { + for(int j = 0; j < this.resolution; ++j) { + for(int k = 0; k < this.resolution; ++k) { + + if(i == 0 || i == this.resolution - 1 || j == 0 || j == this.resolution - 1 || k == 0 || k == this.resolution - 1) { + + double d0 = (double) ((float) i / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d1 = (double) ((float) j / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d2 = (double) ((float) k / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + + d0 /= d3; + d1 /= d3; + d2 /= d3; + + double currentX = x; + double currentY = y; + double currentZ = z; + + double dist = 0; + + for(float stepSize = 0.3F; dist <= explosion.size;) { + + double deltaX = currentX - x; + double deltaY = currentY - y; + double deltaZ = currentZ - z; + dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + + int blockX = MathHelper.floor_double(currentX); + int blockY = MathHelper.floor_double(currentY); + int blockZ = MathHelper.floor_double(currentZ); + + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() != Material.air) { + float blockResistance = explosion.exploder != null ? explosion.exploder.func_145772_a(explosion.compat, world, blockX, blockY, blockZ, block) : block.getExplosionResistance(explosion.exploder, world, blockX, blockY, blockZ, x, y, z); + if(this.maximum < blockResistance || block == ModBlocks.glyphid_spawner) { + break; + } + } + + if(explosion.exploder == null || explosion.exploder.func_145774_a(explosion.compat, world, blockX, blockY, blockZ, block, explosion.size)) { + affectedBlocks.add(new ChunkPosition(blockX, blockY, blockZ)); + } + + currentX += d0 * (double) stepSize; + currentY += d1 * (double) stepSize; + currentZ += d2 * (double) stepSize; + } + } + } + } + } + + return affectedBlocks; + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java new file mode 100644 index 000000000..8cc03caa9 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; + +public class BlockMutatorFire implements IBlockMutator { + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override + public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + Block block = explosion.world.getBlock(x, y, z); + Block block1 = explosion.world.getBlock(x, y - 1, z); + if(block.getMaterial() == Material.air && block1.func_149730_j() && explosion.world.rand.nextInt(3) == 0) { + explosion.world.setBlock(x, y, z, Blocks.fire); + } + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java new file mode 100644 index 000000000..40332a9d8 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java @@ -0,0 +1,62 @@ +package com.hbm.explosion.vanillant.standard; + +import java.util.HashSet; +import java.util.Iterator; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; +import com.hbm.explosion.vanillant.interfaces.IBlockProcessor; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; + +public class BlockProcessorNoDamage implements IBlockProcessor { + + protected IBlockMutator convert; + + public BlockProcessorNoDamage() { } + + public BlockProcessorNoDamage withBlockEffect(IBlockMutator convert) { + this.convert = convert; + return this; + } + + @Override + public void process(ExplosionVNT explosion, World world, double x, double y, double z, HashSet affectedBlocks) { + + Iterator iterator = affectedBlocks.iterator(); + + while(iterator.hasNext()) { + ChunkPosition chunkposition = (ChunkPosition) iterator.next(); + int blockX = chunkposition.chunkPosX; + int blockY = chunkposition.chunkPosY; + int blockZ = chunkposition.chunkPosZ; + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() != Material.air) { + if(this.convert != null) this.convert.mutatePre(explosion, block, world.getBlockMetadata(blockX, blockY, blockZ), blockX, blockY, blockZ); + } + } + + + if(this.convert != null) { + iterator = affectedBlocks.iterator(); + + while(iterator.hasNext()) { + ChunkPosition chunkposition = (ChunkPosition) iterator.next(); + int blockX = chunkposition.chunkPosX; + int blockY = chunkposition.chunkPosY; + int blockZ = chunkposition.chunkPosZ; + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() == Material.air) { + this.convert.mutatePost(explosion, blockX, blockY, blockZ); + } + } + } + + affectedBlocks.clear(); //tricks the standard SFX to not do the block damage particles + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java index 626887245..ba9a66cad 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java @@ -21,6 +21,7 @@ public class EntityProcessorStandard implements IEntityProcessor { protected IEntityRangeMutator range; protected ICustomDamageHandler damage; + protected boolean allowSelfDamage = false; @Override public HashMap process(ExplosionVNT explosion, World world, double x, double y, double z, float size) { @@ -40,7 +41,7 @@ public class EntityProcessorStandard implements IEntityProcessor { double minZ = z - (double) size - 1.0D; double maxZ = z + (double) size + 1.0D; - List list = world.getEntitiesWithinAABBExcludingEntity(explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); + List list = world.getEntitiesWithinAABBExcludingEntity(allowSelfDamage ? null : explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); ForgeEventFactory.onExplosionDetonate(world, explosion.compat, list, size); Vec3 vec3 = Vec3.createVectorHelper(x, y, z); @@ -101,4 +102,9 @@ public class EntityProcessorStandard implements IEntityProcessor { this.damage = damage; return this; } + + public EntityProcessorStandard allowSelfDamage() { + this.allowSelfDamage = true; + return this; + } } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java index 1ffb85b24..79b5b6966 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java @@ -30,7 +30,7 @@ public class ExplosionEffectStandard implements IExplosionSFX { if(size >= 2.0F) { world.spawnParticle("hugeexplosion", x, y, z, 1.0D, 0.0D, 0.0D); } else { - world.spawnParticle("largeexplode", x, z, z, 1.0D, 0.0D, 0.0D); + world.spawnParticle("largeexplode", x, y, z, 1.0D, 0.0D, 0.0D); } int count = affectedBlocks.size(); diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 46d4c4a95..4f28169c2 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -41,6 +41,10 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public int lastDamage = 0; public static final float shieldCap = 100; + public int reputation; + + public boolean isOnLadder = false; + public HbmPlayerProps(EntityPlayer player) { this.player = player; } @@ -151,12 +155,14 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public void saveNBTData(NBTTagCompound nbt) { NBTTagCompound props = new NBTTagCompound(); - + props.setBoolean("hasReceivedBook", hasReceivedBook); props.setFloat("shield", shield); props.setFloat("maxShield", maxShield); props.setBoolean("enableBackpack", enableBackpack); props.setBoolean("enableHUD", enableHUD); + props.setInteger("reputation", reputation); + props.setBoolean("isOnLadder", isOnLadder); nbt.setTag("HbmPlayerProps", props); } @@ -172,6 +178,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties { this.maxShield = props.getFloat("maxShield"); this.enableBackpack = props.getBoolean("enableBackpack"); this.enableHUD = props.getBoolean("enableHUD"); + this.reputation = props.getInteger("reputation"); + this.isOnLadder = props.getBoolean("isOnLadder"); } } } diff --git a/src/main/java/com/hbm/handler/CasingEjector.java b/src/main/java/com/hbm/handler/CasingEjector.java index 72ec13a3a..94dd08a92 100644 --- a/src/main/java/com/hbm/handler/CasingEjector.java +++ b/src/main/java/com/hbm/handler/CasingEjector.java @@ -127,20 +127,17 @@ public class CasingEjector implements Cloneable { } private static Vec3 rotateVector(Vec3 vector, float pitch, float yaw, float pitchFactor, float yawFactor) { - // Apply randomness to vector - vector.xCoord += rand.nextGaussian() * yawFactor; - vector.yCoord += rand.nextGaussian() * pitchFactor; - vector.zCoord += rand.nextGaussian() * yawFactor; final Matrix4f pitchMatrix = new Matrix4f(), yawMatrix = new Matrix4f(); pitchMatrix.setIdentity(); - pitchMatrix.rotate(-pitch, new Vector3f(1, 0, 0)); + pitchMatrix.rotate(pitch, new Vector3f(1, 0, 0)); yawMatrix.setIdentity(); yawMatrix.rotate(-yaw, new Vector3f(0, 1, 0)); - - final Vector4f vector4f = new Vector4f((float) vector.xCoord, (float) vector.yCoord, (float) vector.zCoord, 1); + + // Apply randomness to vector + final Vector4f vector4f = new Vector4f((float) (vector.xCoord + rand.nextGaussian() * yawFactor), (float) (vector.yCoord + rand.nextGaussian() * pitchFactor), (float) (vector.zCoord + rand.nextGaussian() * yawFactor), 1); Matrix4f.transform(pitchMatrix, vector4f, vector4f); Matrix4f.transform(yawMatrix, vector4f, vector4f); diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java new file mode 100644 index 000000000..07d7fd20a --- /dev/null +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -0,0 +1,31 @@ +package com.hbm.handler; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; + + +/** + * General handler for OpenComputers compatibility. + *

+ * Mostly just functions used across many TEs. + */ +public class CompatHandler { + public static Object[] steamTypeToInt(FluidType type) { + if(type == Fluids.STEAM) {return new Object[] {0};} + else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} + else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} + return new Object[] {3}; + } + public static FluidType intToSteamType(int arg) { + switch(arg) { + default: + return Fluids.STEAM; + case(1): + return Fluids.HOTSTEAM; + case(2): + return Fluids.SUPERHOTSTEAM; + case(3): + return Fluids.ULTRAHOTSTEAM; + } + } +} diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 467318ff7..296724e2d 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -35,6 +35,7 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -101,6 +102,51 @@ public class EntityEffectHandler { handleDashing(entity); handlePlinking(entity); + + if(entity instanceof EntityPlayer) handleFauxLadder((EntityPlayer) entity); + } + + private static void handleFauxLadder(EntityPlayer player) { + + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.isOnLadder) { + float f5 = 0.15F; + + if(player.motionX < (double) (-f5)) { + player.motionX = (double) (-f5); + } + + if(player.motionX > (double) f5) { + player.motionX = (double) f5; + } + + if(player.motionZ < (double) (-f5)) { + player.motionZ = (double) (-f5); + } + + if(player.motionZ > (double) f5) { + player.motionZ = (double) f5; + } + + player.fallDistance = 0.0F; + + if(player.motionY < -0.15D) { + player.motionY = -0.15D; + } + + if(player.isSneaking() && player.motionY < 0.0D) { + player.motionY = 0.0D; + } + + if(player.isCollidedHorizontally) { + player.motionY = 0.2D; + } + + props.isOnLadder = false; + + if(!player.worldObj.isRemote) ArmorUtil.resetFlightTime(player); + } } private static void handleContamination(EntityLivingBase entity) { @@ -159,7 +205,7 @@ public class EntityEffectHandler { if(HbmLivingProps.getRadiation(entity) > 600) { - if((world.getTotalWorldTime() + r600) % 600 < 20) { + if((world.getTotalWorldTime() + r600) % 600 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "blood"); @@ -173,7 +219,7 @@ public class EntityEffectHandler { } } - } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + r1200) % 1200 < 20) { + } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + r1200) % 1200 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); @@ -329,7 +375,7 @@ public class EntityEffectHandler { entity.attackEntityFrom(ModDamageSource.mku, 2F); } - if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20) { + if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "blood"); @@ -633,4 +679,9 @@ public class EntityEffectHandler { props.plinkCooldown--; } } + + private static boolean canVomit(Entity e) { + if(e.isCreatureType(EnumCreatureType.waterCreature, false)) return false; + return true; + } } diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index 951a5d6c2..b89b86d58 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -29,8 +29,8 @@ public class FuelHandler implements IFuelHandler { if(fuel.getItem() == ModItems.biomass) return single * 2; if(fuel.getItem() == ModItems.biomass_compressed) return single * 4; if(fuel.getItem() == ModItems.powder_coal) return single * 8; - if(fuel.getItem() == ModItems.scrap) return single / 2; - if(fuel.getItem() == ModItems.dust) return single / 2; + if(fuel.getItem() == ModItems.scrap) return single / 4; + if(fuel.getItem() == ModItems.dust) return single / 8; if(fuel.getItem() == Item.getItemFromBlock(ModBlocks.block_scrap)) return single * 2; if(fuel.getItem() == ModItems.powder_fire) return 6400; if(fuel.getItem() == ModItems.lignite) return 1200; @@ -57,6 +57,8 @@ public class FuelHandler implements IFuelHandler { case 0: return single / 2; case 1: return single; case 2: return single / 2; + case 3: return single; + case 4: return single / 2; } } diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 1763ad83a..97cb7b3a5 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -25,6 +25,8 @@ public class GunConfiguration implements Cloneable { public int rateOfFire; //amount of bullets fired per delay passed public int roundsPerCycle; + /** Amount of rounds per burst, irrelevant if not a burst fire weapon**/ + public int roundsPerBurst; //0 = normal, 1 = release, 2 = both public int gunMode; //0 = manual, 1 = automatic @@ -46,7 +48,7 @@ public class GunConfiguration implements Cloneable { //how long the reload animation will play //MUST BE GREATER THAN ZERO ! ! ! public int reloadDuration; - //duration of every animation cycle + //duration of every animation cycle, used also for how quickly a burst fire rifle can fire public int firingDuration; //sound path to the reload sound public String reloadSound = ""; @@ -94,6 +96,7 @@ public class GunConfiguration implements Cloneable { public static final int FIRE_MANUAL = 0; public static final int FIRE_AUTO = 1; + public static final int FIRE_BURST = 2; public static final int RELOAD_NONE = 0; public static final int RELOAD_FULL = 1; diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index 1d6b322b1..5bffe35cb 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -53,9 +53,10 @@ public class HazmatRegistry { double t45 = 1D; // 90% double ajr = 1.3D; // 95% double bj = 1D; // 90% - double env = 2D; // 99% + double env = 1.0D; // 99% double hev = 2.3D; // 99.5% double rpa = 2D; // 99% + double trench = 1D; // 90% double fau = 4D; // 99.99% double dns = 5D; // 99.999% double security = 0.825D; // 85% @@ -124,6 +125,11 @@ public class HazmatRegistry { HazmatRegistry.registerHazmat(ModItems.rpa_legs, rpa * legs); HazmatRegistry.registerHazmat(ModItems.rpa_boots, rpa * boots); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_helmet, trench * helmet); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_plate, trench * chest); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_legs, trench * legs); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_boots, trench * boots); + HazmatRegistry.registerHazmat(ModItems.fau_helmet, fau * helmet); HazmatRegistry.registerHazmat(ModItems.fau_plate, fau * chest); HazmatRegistry.registerHazmat(ModItems.fau_legs, fau * legs); diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 60a8ae6b7..11e2621b3 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -2,14 +2,12 @@ package com.hbm.handler; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; -import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.tool.IItemAbility; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; -import com.hbm.util.WeightedRandomObject; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -35,7 +33,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; -import net.minecraft.util.WeightedRandom; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; public abstract class WeaponAbility { @@ -86,6 +84,7 @@ public abstract class WeaponAbility { EntityLivingBase living = (EntityLivingBase) victim; living.setHealth(living.getHealth() - amount); + if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); player.heal(amount); } } @@ -206,28 +205,10 @@ public abstract class WeaponAbility { if(living.getHealth() <= 0.0F) { - WeightedRandomObject[] ammo = new WeightedRandomObject[] { - new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SHRAPNEL), 5), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.FLECHETTE), 5), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLUG), 5), - new WeightedRandomObject(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE), 10), - new WeightedRandomObject(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STOCK), 3), - new WeightedRandomObject(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.STOCK), 3), - new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.STOCK), 1), - new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE), 1), - new WeightedRandomObject(new ItemStack(ModItems.syringe_metal_stimpak), 20), - }; - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health for(int i = 0; i < count; i++) { - - living.entityDropItem(((WeightedRandomObject)WeightedRandom.getRandomItem(living.getRNG(), ammo)).asStack(), 1); + living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 424deacfc..8f115d30f 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -39,7 +39,7 @@ public class Gun12GaugeFactory { static { EJECTOR_SPAS = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12); EJECTOR_SPAS_ALT = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12).setAmount(2); - EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.3, 1, 0).setAngleRange(0.01F, 0.03F); + EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.3, 0).setOffset(-0.3, 0, 0.5).setAngleRange(0.01F, 0.03F); EJECTOR_UBOINIK = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.3, 0.5).setAngleRange(0.01F, 0.03F); EJECTOR_SSG = new CasingEjector().setMotion(0.2, 0, -0.2).setOffset(0.8, 0, 0).setAngleRange(0.05F, 0.02F).setDelay(20).setAmount(2); @@ -107,7 +107,7 @@ public class Gun12GaugeFactory { config.comment.add("\"Here, I have a more suitable gun for you. You'll need it - Catch!\""); config.comment.add("Alt-fire with Mouse 2 (Right-click) to fire 2 shells at once"); - config.config = HbmCollection.g12; + config.config = HbmCollection.g12hs; config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("SPAS_RECOIL_TRANSLATE", new BusAnimationSequence() diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index 515b1b8bf..5beeccad4 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -47,14 +47,14 @@ public class Gun44MagnumFactory { config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_MANUAL; - config.reloadDuration = 10; + config.reloadDuration = 50; config.firingDuration = 0; config.ammoCap = 6; config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.L_CLASSIC; config.reloadSound = GunConfiguration.RSOUND_REVOLVER; - config.firingSound = "hbm:weapon.revolverShootAlt"; + config.firingSound = "hbm:weapon.44Shoot"; config.reloadSoundEnd = false; config.config.addAll(HbmCollection.m44Normal); @@ -83,7 +83,7 @@ public class Gun44MagnumFactory { GunConfiguration config = getBaseConfig(); - config.durability = 4000; + config.durability = 31_000; config.name = "ifScope"; config.manufacturer = EnumGunManufacturer.IF; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java index b4f25aa06..644d37457 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -62,7 +62,7 @@ public class Gun45ACPFactory { config.firingMode = GunConfiguration.FIRE_MANUAL; config.reloadDuration = 10; config.firingDuration = 8; - config.ammoCap = 16; + config.ammoCap = 21; config.durability = 10000; config.reloadType = 1; config.allowsInfinity = true; @@ -91,6 +91,17 @@ public class Gun45ACPFactory { return config; } + public static GunConfiguration getUACPistolBurstConfig() { + GunConfiguration config = getUACPistolConfig(); + config.rateOfFire = 5; + config.roundsPerBurst = 3; + config.firingDuration = 2; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_BURST; + + return config; + } + public static GunConfiguration getUACSMGConfig() { GunConfiguration config = new GunConfiguration(); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index 5da9631d2..189ad105e 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -157,7 +157,18 @@ public class Gun50BMGFactory { return config; } - + + public static GunConfiguration getAR15BurstConfig(){ + GunConfiguration config = getAR15Config(); + config.rateOfFire = 4; + config.roundsPerBurst = 3; + config.firingDuration = 2; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_BURST; + + return config; + } + public static GunConfiguration getM2Config() { GunConfiguration config = getAR15Config(); diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java index 093a3d90b..2d76d18e6 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -60,6 +60,7 @@ public class GunDetonatorFactory { config.config.add(BulletConfigSyncingUtil.G12_DU); config.config.add(BulletConfigSyncingUtil.G12_SLEEK); config.config.add(BulletConfigSyncingUtil.G12_AM); + config.config.add(BulletConfigSyncingUtil.G12_PERCUSSION); config.config.add(BulletConfigSyncingUtil.NUKE_NORMAL); config.config.add(BulletConfigSyncingUtil.NUKE_LOW); config.config.add(BulletConfigSyncingUtil.NUKE_SAFE); diff --git a/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java new file mode 100644 index 000000000..e598840fc --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java @@ -0,0 +1,60 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.Locale; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineArcWelder; +import com.hbm.inventory.recipes.ArcWelderRecipes; +import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.item.ItemStack; + +public class ArcWelderHandler extends NEIUniversalHandler { + + public ArcWelderHandler() { + super("Arc Welder", ModBlocks.machine_arc_welder, ArcWelderRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmArcWelder"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(67, 26, 32, 14), "ntmArcWelder")); + guiGui.add(GUIMachineArcWelder.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + Object[] original = (Object[]) rec.originalInputInstance; + ItemStack output = rec.output[0].item; + + outer: for(ArcWelderRecipe arc : ArcWelderRecipes.recipes) { + + //checks do not include the fluid, will break of there's two recipes with identical input and output but with fluids + if(ItemStack.areItemStacksEqual(arc.output, output) && arc.ingredients.length == original.length - (arc.fluid == null ? 0 : 1)) { + + for(int i = 0; i < rec.input.length - (arc.fluid == null ? 0 : 1); i++) { + if(arc.ingredients[i] != original[i]) continue outer; + } + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + String duration = String.format(Locale.US, "%,d", arc.duration) + " ticks"; + String consumption = String.format(Locale.US, "%,d", arc.consumption) + " HE/t"; + int side = 160; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 43, 0x404040); + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 55, 0x404040); + return; + } + } + } +} diff --git a/src/main/java/com/hbm/handler/nei/AshpitHandler.java b/src/main/java/com/hbm/handler/nei/AshpitHandler.java new file mode 100644 index 000000000..d7cf8af20 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/AshpitHandler.java @@ -0,0 +1,50 @@ +package com.hbm.handler.nei; + +import java.util.HashMap; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class AshpitHandler extends NEIUniversalHandler { + + public AshpitHandler() { + super("Ashpit", ModBlocks.machine_ashpit, getRecipes()); + } + + @Override + public String getKey() { + return "ntmAshpit"; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + ItemStack[] ovens = new ItemStack[] {new ItemStack(ModBlocks.heater_firebox), new ItemStack(ModBlocks.heater_oven)}; + ItemStack[] chimneys = new ItemStack[] {new ItemStack(ModBlocks.chimney_brick), new ItemStack(ModBlocks.chimney_industrial)}; + ItemStack[] coals = new ItemStack[] {new ItemStack(Items.coal, 1, 0), new ItemStack(ModItems.lignite), new ItemStack(ModItems.coke)}; + ItemStack[] wood = new ItemStack[] {new ItemStack(Blocks.log), new ItemStack(Blocks.log2), new ItemStack(Blocks.planks), new ItemStack(Blocks.sapling)}; + ItemStack[] misc = new ItemStack[] {new ItemStack(ModItems.solid_fuel), new ItemStack(ModItems.scrap), new ItemStack(ModItems.dust), new ItemStack(ModItems.rocket_fuel)}; + FluidType[] smokes = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON};; + + recipes.put(new ItemStack[][] {ovens, coals}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL)); + recipes.put(new ItemStack[][] {ovens, wood}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD)); + recipes.put(new ItemStack[][] {ovens, misc}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC)); + + for(FluidType smoke : smokes) { + recipes.put(new ItemStack[][] {chimneys, new ItemStack[] {ItemFluidIcon.make(smoke, 2_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FLY)); + recipes.put(new ItemStack[][] {new ItemStack[] {new ItemStack(ModBlocks.chimney_industrial)}, new ItemStack[] {ItemFluidIcon.make(smoke, 8_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)); + } + + return recipes; + } +} diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index c845f1601..e2e95fa22 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -33,9 +33,9 @@ public class ConstructionHandler extends NEIUniversalHandler { /* WATZ */ ItemStack[] watz = new ItemStack[] { new ItemStack(ModBlocks.watz_end, 48), - new ItemStack(ModItems.bolt_dura_steel, 64), - new ItemStack(ModItems.bolt_dura_steel, 64), - new ItemStack(ModItems.bolt_dura_steel, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), + Mats.MAT_DURA.make(ModItems.bolt, 64), new ItemStack(ModBlocks.watz_element, 36), new ItemStack(ModBlocks.watz_cooler, 26), new ItemStack(ModItems.boltgun)}; diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index cf3570f79..844af6e60 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -57,13 +57,13 @@ public class CustomMachineHandler extends TemplateRecipeHandler { for(int i = 0; i < 3; i++) if(recipe.inputFluids.length > i) inputs.add(new PositionedStack(ItemFluidIcon.make(recipe.inputFluids[i]), 12 + i * 18, 6)); for(int i = 0; i < 3; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + i * 18, 24)); - for(int i = 3; i < 6; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + i * 18, 42)); + for(int i = 3; i < 6; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + (i - 3) * 18, 42)); for(int i = 0; i < 3; i++) if(recipe.outputFluids.length > i) outputs.add(new PositionedStack(ItemFluidIcon.make(recipe.outputFluids[i]), 102 + i * 18, 6)); for(int i = 0; i < 3; i++) if(recipe.outputItems.length > i) { Pair pair = recipe.outputItems[i]; - ItemStack out = pair.getKey(); + ItemStack out = pair.getKey().copy(); if(pair.getValue() != 1) { ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); } @@ -72,11 +72,11 @@ public class CustomMachineHandler extends TemplateRecipeHandler { for(int i = 3; i < 6; i++) if(recipe.outputItems.length > i) { Pair pair = recipe.outputItems[i]; - ItemStack out = pair.getKey(); + ItemStack out = pair.getKey().copy(); if(pair.getValue() != 1) { ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); } - outputs.add(new PositionedStack(out, 102 + i * 18, 42)); + outputs.add(new PositionedStack(out, 102 + (i - 3) * 18, 42)); } this.machine = new PositionedStack(new ItemStack(ModBlocks.custom_machine, 1, 100 + CustomMachineConfigJSON.niceList.indexOf(conf)), 75, 42); @@ -132,8 +132,6 @@ public class CustomMachineHandler extends TemplateRecipeHandler { List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); - System.out.println(conf.recipeKey); - if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { for(Pair stack : recipe.outputItems) { diff --git a/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java b/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java new file mode 100644 index 000000000..4969763e4 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineExposureChamber; +import com.hbm.inventory.recipes.ExposureChamberRecipes; + +public class ExposureChamberHandler extends NEIUniversalHandler { + + public ExposureChamberHandler() { + super("Exposure Chamber", ModBlocks.machine_exposure_chamber, ExposureChamberRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmExposure"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(31, 28, 41, 10), "ntmExposure")); + guiGui.add(GUIMachineExposureChamber.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java index 21ba387e3..cbd520858 100644 --- a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java @@ -6,6 +6,7 @@ import java.awt.Rectangle; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import com.hbm.inventory.gui.GUIHadron; import com.hbm.inventory.recipes.HadronRecipes; @@ -141,7 +142,7 @@ public class HadronRecipeHandler extends TemplateRecipeHandler { FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - String mom = String.format("%,d", rec.momentum); + String mom = String.format(Locale.US, "%,d", rec.momentum); fontRenderer.drawString(mom, -fontRenderer.getStringWidth(mom) / 2 + 30, 42, 0x404040); } diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 3f4fcbe67..0bb53100a 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -56,8 +56,10 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { PositionedStack[] input; PositionedStack[] output; PositionedStack machinePositioned; + Object originalInputInstance; public RecipeSet(ItemStack[][] in, ItemStack[][] out, Object originalInputInstance /* for custom machine lookup */) { + this.originalInputInstance = originalInputInstance; input = new PositionedStack[in.length]; int[][] inPos = NEIUniversalHandler.getInputCoords(in.length); diff --git a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java index cc776c8fd..fbc14c5cd 100644 --- a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java @@ -110,7 +110,7 @@ public class PressRecipeHandler extends TemplateRecipeHandler { if(in.matchesRecipe(ingredient, true)) this.arecipes.add(new SmeltingSet(ItemStamp.stamps.get(recipe.getKey().getValue()), new ComparableStack(ingredient), recipe.getValue())); - else if(ingredient.getItem() instanceof ItemStamp && ((ItemStamp)ingredient.getItem()).type == stamp) + else if(ingredient.getItem() instanceof ItemStamp && ((ItemStamp)ingredient.getItem()).getStampType(ingredient.getItem(), ingredient.getItemDamage()) == stamp) this.arecipes.add(new SmeltingSet(ingredient, recipe.getKey().getKey(), recipe.getValue())); } } diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 4ff3b70c1..28cd279c4 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -8,13 +8,16 @@ import java.util.Locale; import java.util.Map.Entry; import java.util.UUID; +import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; +import com.hbm.entity.mob.EntityGlyphidScout; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.relauncher.Side; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.monster.IMob; @@ -22,10 +25,12 @@ import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.event.entity.living.LivingSpawnEvent; +import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; import net.minecraftforge.event.world.WorldEvent; public class PollutionHandler { @@ -37,7 +42,8 @@ public class PollutionHandler { public static final float SOOT_PER_SECOND = 1F / 25F; /** Baserate of heavy metal generation, balanced around the soot values of combustion engines */ public static final float HEAVY_METAL_PER_SECOND = 1F / 50F; - + public static Vec3 targetCoords; + /////////////////////// /// UTILITY METHODS /// /////////////////////// @@ -53,7 +59,7 @@ public class PollutionHandler { data = new PollutionData(); ppw.pollution.put(pos, data); } - data.pollution[type.ordinal()] = MathHelper.clamp_float(data.pollution[type.ordinal()] + amount, 0F, 10_000F); + data.pollution[type.ordinal()] = MathHelper.clamp_float((float) (data.pollution[type.ordinal()] + amount * MobConfig.pollutionMult), 0F, 10_000F); } public static void decrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { @@ -173,7 +179,7 @@ public class PollutionHandler { public void updateSystem(TickEvent.ServerTickEvent event) { if(event.side == Side.SERVER && event.phase == Phase.END) { - + eggTimer++; if(eggTimer < 60) return; eggTimer = 0; @@ -193,7 +199,7 @@ public class PollutionHandler { /* CALCULATION */ if(data.pollution[S] > 15) { - pollutionForNeightbors[S] = data.pollution[S] * 0.05F; + pollutionForNeightbors[S] = (float) (data.pollution[S] * 0.05F); data.pollution[S] *= 0.8F; } else { data.pollution[S] *= 0.99F; @@ -334,4 +340,34 @@ public class PollutionHandler { } } } + ///RAMPANT MODE STUFFS/// + + @SubscribeEvent + public void rampantTargetSetter(PlayerSleepInBedEvent event){ + if (MobConfig.rampantGlyphidGuidance) targetCoords = Vec3.createVectorHelper(event.x, event.y, event.z); + } + + @SubscribeEvent + public void rampantScoutPopulator(WorldEvent.PotentialSpawns event){ + //yell at me if this vertical formatting hurts your brain + if(MobConfig.rampantNaturalScoutSpawn + && !event.world.isRemote + && event.world.provider.dimensionId == 0 + && event.type == EnumCreatureType.monster + && event.world.canBlockSeeTheSky(event.x, event.y, event.z)) { + + if (event.world.rand.nextInt(MobConfig.rampantScoutSpawnChance) == 0) { + + float soot = PollutionHandler.getPollution(event.world, event.x, event.y, event.z, PollutionType.SOOT); + + if (soot >= MobConfig.rampantScoutSpawnThresh) { + EntityGlyphidScout scout = new EntityGlyphidScout(event.world); + scout.setLocationAndAngles(event.x, event.y, event.z, event.world.rand.nextFloat() * 360.0F, 0.0F); + event.world.spawnEntityInWorld(scout); + } + } + } + + } + } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java index 6e53a8838..f351d2a27 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java @@ -17,6 +17,7 @@ public abstract class ChunkRadiationHandler { public abstract void setRadiation(World world, int x, int y, int z, float rad); public abstract void incrementRad(World world, int x, int y, int z, float rad); public abstract void decrementRad(World world, int x, int y, int z, float rad); + public abstract void clearSystem(World world); /* * Proxy'd event handlers diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java index 5c81a416e..30066a91e 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java @@ -109,6 +109,15 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + ThreeDimRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java index c28a69348..76cc31af0 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java @@ -4,20 +4,10 @@ import net.minecraft.world.World; public class ChunkRadiationHandlerBlank extends ChunkRadiationHandler { - @Override - public float getRadiation(World world, int x, int y, int z) { - return 0; - } - - @Override - public void setRadiation(World world, int x, int y, int z, float rad) { } - - @Override - public void incrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void decrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void updateSystem() { } + @Override public float getRadiation(World world, int x, int y, int z) { return 0; } + @Override public void setRadiation(World world, int x, int y, int z, float rad) { } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { } + @Override public void decrementRad(World world, int x, int y, int z, float rad) { } + @Override public void updateSystem() { } + @Override public void clearSystem(World world) { } } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java index c95c180d5..50144d6aa 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java @@ -38,6 +38,18 @@ public class ChunkRadiationHandlerNT extends ChunkRadiationHandler { private static HashMap worldMap = new HashMap(); + @Override + public void clearSystem(World world) { + WorldRadiationData radWorld = worldMap.get(world); + + if(radWorld != null) { + radWorld.data.clear(); + radWorld.activePockets.clear(); + radWorld.dirtyChunks.clear(); + radWorld.dirtyChunks2.clear(); + } + } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { if(!world.blockExists(x, y, z)) { diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java index d080eb6e6..161dd5522 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java @@ -102,7 +102,7 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { } float rad = radiation.get(newCoord); - if(rad > RadiationConfig.fogRad && world != null && world.rand.nextInt(RadiationConfig.fogCh) == 0 && world.getChunkFromChunkCoords(coord.chunkXPos, coord.chunkZPos).isChunkLoaded) { + if(rad > RadiationConfig.fogRad && world != null && world.rand.nextInt(RadiationConfig.fogCh) == 0 && world.getChunkProvider().chunkExists(coord.chunkXPos, coord.chunkZPos)) { int x = coord.chunkXPos * 16 + world.rand.nextInt(16); int z = coord.chunkZPos * 16 + world.rand.nextInt(16); @@ -116,6 +116,15 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + SimpleRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) diff --git a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java index f91e4e51f..2f66ebcb1 100644 --- a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java +++ b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java @@ -23,15 +23,16 @@ public class HazardTransformerRadiationContainer extends HazardTransformerBase { boolean isCrate = Block.getBlockFromItem(stack.getItem()) instanceof BlockStorageCrate; boolean isBox = stack.getItem() == ModItems.containment_box; + boolean isBag = stack.getItem() == ModItems.plastic_bag; - if(!isCrate && !isBox) return; + if(!isCrate && !isBox && !isBag) return; if(!stack.hasTagCompound()) return; float radiation = 0; if(isCrate) { - for(int i = 0; i < 54; i++) { + for(int i = 0; i < 104; i++) { ItemStack held = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i)); if(held != null) { @@ -54,6 +55,20 @@ public class HazardTransformerRadiationContainer extends HazardTransformerBase { radiation = (float) BobMathUtil.squirt(radiation); } + if(isBag) { + + ItemStack[] fromNBT = ItemStackUtil.readStacksFromNBT(stack, 1); + if(fromNBT == null) return; + + for(ItemStack held : fromNBT) { + if(held != null) { + radiation += HazardSystem.getHazardLevelFromStack(held, HazardRegistry.RADIATION) * held.stackSize; + } + } + + radiation *= 2F; + } + if(radiation > 0) { entries.add(new HazardEntry(HazardRegistry.RADIATION, radiation)); } diff --git a/src/main/java/com/hbm/interfaces/ICustomWarhead.java b/src/main/java/com/hbm/interfaces/ICustomWarhead.java index 9c9301bc2..656425cd1 100644 --- a/src/main/java/com/hbm/interfaces/ICustomWarhead.java +++ b/src/main/java/com/hbm/interfaces/ICustomWarhead.java @@ -3,6 +3,7 @@ package com.hbm.interfaces; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.apache.logging.log4j.Level; @@ -198,7 +199,7 @@ public interface ICustomWarhead { for (Enum f : combinedFuels) if (data.getFloat(f.toString()) > 0) - tooltip.add(String.format("%s: %skg (%s)", I18nUtil.resolveKey("warheadFuel.".concat(f.toString())), df.format(data.getFloat(f.toString())), BobMathUtil.toPercentage(data.getFloat(f.toString()), data.getFloat(NBT_MASS)))); + tooltip.add(String.format(Locale.US, "%s: %skg (%s)", I18nUtil.resolveKey("warheadFuel.".concat(f.toString())), df.format(data.getFloat(f.toString())), BobMathUtil.toPercentage(data.getFloat(f.toString()), data.getFloat(NBT_MASS)))); } public default void addTooltip(ItemStack stack, List tooltip) diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index ce1c1977e..5033ee2a4 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -62,18 +62,24 @@ public class FluidContainerRegistry { for(int i = 1; i < fluids.length; i++) { FluidType type = fluids[i]; + int id = type.getID(); - if(type.getContainer(CD_Canister.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_full, 1, i), new ItemStack(ModItems.canister_empty), Fluids.fromID(i), 1000)); - if(type.getContainer(CD_Gastank.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full, 1, i), new ItemStack(ModItems.gas_empty), Fluids.fromID(i), 1000)); + if(type.getContainer(CD_Canister.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_full, 1, id), new ItemStack(ModItems.canister_empty), type, 1000)); + if(type.getContainer(CD_Gastank.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full, 1, id), new ItemStack(ModItems.gas_empty), type, 1000)); if(type.hasNoContainer()) continue; - - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, i), new ItemStack(ModItems.fluid_tank_lead_empty), Fluids.fromID(i), 1000)); + if(type.isDispersable()){ + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.disperser_canister, 1 , i), new ItemStack(ModItems.disperser_canister_empty), Fluids.fromID(i), 2000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.glyphid_gland, 1 , i), new ItemStack(ModItems.glyphid_gland_empty), Fluids.fromID(i), 4000)); + } + + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, id), new ItemStack(ModItems.fluid_tank_lead_empty), type, 1000)); + if(type.needsLeadContainer()) continue; - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, i), new ItemStack(ModItems.fluid_tank_empty), Fluids.fromID(i), 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), Fluids.fromID(i), 16000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, id), new ItemStack(ModItems.fluid_tank_empty), type, 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, id), new ItemStack(ModItems.fluid_barrel_empty), type, 16000)); } Compat.registerCompatFluidContainers(); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 02afded30..e6ca773e5 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -63,6 +63,7 @@ public class OreDictManager { public static final String KEY_LEAVES = "treeLeaves"; public static final String KEY_SAPLING = "treeSapling"; public static final String KEY_SAND = "sand"; + public static final String KEY_COBBLESTONE = "cobblestone"; public static final String KEY_BLACK = "dyeBlack"; public static final String KEY_RED = "dyeRed"; @@ -97,6 +98,8 @@ public class OreDictManager { public static final String KEY_CIRCUIT_BISMUTH = "circuitVersatile"; + public static final String KEY_GLYPHID_MEAT = "glyphidMeat"; + /* * MATERIALS */ @@ -184,6 +187,7 @@ public class OreDictManager { public static final DictFrame PET = new DictFrame("PET"); public static final DictFrame PC = new DictFrame("Polycarbonate"); public static final DictFrame PVC = new DictFrame("PVC"); + public static final DictFrame LATEX = new DictFrame("Latex"); public static final DictFrame RUBBER = new DictFrame("Rubber"); public static final DictFrame MAGTUNG = new DictFrame("MagnetizedTungsten"); public static final DictFrame CMB = new DictFrame("CMBSteel"); @@ -276,6 +280,8 @@ public class OreDictManager { /* * COLLECTIONS */ + /** Any form of elastic polymer */ + public static final DictGroup ANY_RUBBER = new DictGroup("AnyRubber", LATEX, RUBBER); /** Any post oil polymer like teflon ("polymer") or bakelite */ public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable /** Any post vacuum polymer like PET or PVC */ @@ -296,6 +302,7 @@ public class OreDictManager { /** Any special post-RBMK gating material, namely bismuth and arsenic */ public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid"); public static final DictFrame ANY_ASH = new DictFrame("Ash"); + public static void registerOres() { @@ -355,7 +362,7 @@ public class OreDictManager { TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); - BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); + BI .nugget(nugget_bismuth) .billet(billet_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth) .block(block_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); CA .ingot(ingot_calcium) .dust(powder_calcium); CD .ingot(ingot_cadmium) .dust(powder_cadmium) .block(block_cadmium); @@ -369,6 +376,7 @@ public class OreDictManager { DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .block(block_dura_steel); POLYMER .ingot(ingot_polymer) .dust(powder_polymer) .block(block_polymer); BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite) .block(block_bakelite); + LATEX .gem(ball_resin) .ingot(ingot_biorubber); RUBBER .ingot(ingot_rubber) .block(block_rubber); //PET .ingot(ingot_pet); PC .ingot(ingot_pc); @@ -414,7 +422,7 @@ public class OreDictManager { * PHOSPHORUS */ P_WHITE .hot(5) .ingot(ingot_phosphorus) .block(block_white_phosphorus); - P_RED .hot(2) .dust(powder_fire) .block(block_red_phosphorus); + P_RED .dust(powder_fire) .block(block_red_phosphorus); /* * RARE METALS @@ -465,7 +473,7 @@ public class OreDictManager { for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); - ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC)); + ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC), fromOne(ModItems.powder_ash, EnumAshType.FLY), fromOne(ModItems.powder_ash, EnumAshType.SOOT)); /* * TAR @@ -499,10 +507,20 @@ public class OreDictManager { */ OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth); OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); - + + /* + * GLYPHID M E A T + */ + OreDictionary.registerOre(KEY_GLYPHID_MEAT, new ItemStack(glyphid_meat)); + OreDictionary.registerOre(KEY_GLYPHID_MEAT, new ItemStack(glyphid_meat_grilled)); + for(NTMMaterial mat : Mats.orderedList) { - if(mat.smeltable == SmeltingBehavior.SMELTABLE && mat.shapes.contains(MaterialShapes.CASTPLATE)) { - for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.smeltable == SmeltingBehavior.SMELTABLE) { + if(mat.shapes.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); } } @@ -574,6 +592,9 @@ public class OreDictManager { OreDictionary.registerOre("dyeLightGray", fromOne(powder_ash, EnumAshType.WOOD)); OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.COAL)); OreDictionary.registerOre("dyeGray", fromOne(powder_ash, EnumAshType.MISC)); + OreDictionary.registerOre("dyeBrown", fromOne(powder_ash, EnumAshType.FLY)); + OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.SOOT)); + OreDictionary.registerOre("dyeMagenta", fromOne(powder_ash, EnumAshType.FULLERENE)); OreDictionary.registerOre("dye", new ItemStack(powder_ash, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("blockGlass", glass_boron); @@ -597,9 +618,10 @@ public class OreDictManager { } public static void registerGroups() { + ANY_RUBBER.addPrefix(INGOT, true); ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); ANY_HARDPLASTIC.addPrefix(INGOT, true); - ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(BLOCK, true); + ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(PLATEWELDED, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true); ANY_TAR.addPrefix(ANY, false); } @@ -637,19 +659,23 @@ public class OreDictManager { /* * Quick access methods to grab ore names for recipes. */ - public String any() { return ANY + mats[0]; } - public String nugget() { return NUGGET + mats[0]; } - public String tiny() { return TINY + mats[0]; } - public String ingot() { return INGOT + mats[0]; } - public String dustTiny() { return DUSTTINY + mats[0]; } - public String dust() { return DUST + mats[0]; } - public String gem() { return GEM + mats[0]; } - public String crystal() { return CRYSTAL + mats[0]; } - public String plate() { return PLATE + mats[0]; } - public String plateCast() { return PLATECAST + mats[0]; } - public String billet() { return BILLET + mats[0]; } - public String block() { return BLOCK + mats[0]; } - public String ore() { return ORE + mats[0]; } + public String any() { return ANY + mats[0]; } + public String nugget() { return NUGGET + mats[0]; } + public String tiny() { return TINY + mats[0]; } + public String bolt() { return BOLT + mats[0]; } + public String ingot() { return INGOT + mats[0]; } + public String dustTiny() { return DUSTTINY + mats[0]; } + public String dust() { return DUST + mats[0]; } + public String gem() { return GEM + mats[0]; } + public String crystal() { return CRYSTAL + mats[0]; } + public String plate() { return PLATE + mats[0]; } + public String plateCast() { return PLATECAST + mats[0]; } + public String plateWelded() { return PLATEWELDED + mats[0]; } + public String heavyComp() { return HEAVY_COMPONENT + mats[0]; } + public String wireDense() { return WIREDENSE + mats[0]; } + public String billet() { return BILLET + mats[0]; } + public String block() { return BLOCK + mats[0]; } + public String ore() { return ORE + mats[0]; } public String[] anys() { return appendToAll(ANY); } public String[] nuggets() { return appendToAll(NUGGET); } public String[] tinys() { return appendToAll(TINY); } @@ -887,19 +913,23 @@ public class OreDictManager { return this; } - public String any() { return ANY + groupName; } - public String nugget() { return NUGGET + groupName; } - public String tiny() { return TINY + groupName; } - public String ingot() { return INGOT + groupName; } - public String dustTiny() { return DUSTTINY + groupName; } - public String dust() { return DUST + groupName; } - public String gem() { return GEM + groupName; } - public String crystal() { return CRYSTAL + groupName; } - public String plate() { return PLATE + groupName; } - public String plateCast() { return PLATECAST + groupName; } - public String billet() { return BILLET + groupName; } - public String block() { return BLOCK + groupName; } - public String ore() { return ORE + groupName; } + public String any() { return ANY + groupName; } + public String nugget() { return NUGGET + groupName; } + public String tiny() { return TINY + groupName; } + public String bolt() { return BOLT + groupName; } + public String ingot() { return INGOT + groupName; } + public String dustTiny() { return DUSTTINY + groupName; } + public String dust() { return DUST + groupName; } + public String gem() { return GEM + groupName; } + public String crystal() { return CRYSTAL + groupName; } + public String plate() { return PLATE + groupName; } + public String plateCast() { return PLATECAST + groupName; } + public String plateWelded() { return PLATEWELDED + groupName; } + public String heavyComp() { return HEAVY_COMPONENT + groupName; } + public String wireDense() { return WIREDENSE + groupName; } + public String billet() { return BILLET + groupName; } + public String block() { return BLOCK + groupName; } + public String ore() { return ORE + groupName; } } private static void addReRegistration(String original, String additional) { diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 91cbb7099..8c487a0e6 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -8,6 +8,7 @@ public class OreNames { public static final String ANY = "any"; public static final String NUGGET = "nugget"; public static final String TINY = "tiny"; + public static final String BOLT = "bolt"; public static final String INGOT = "ingot"; public static final String DUSTTINY = "dustTiny"; public static final String DUST = "dust"; @@ -15,12 +16,15 @@ public class OreNames { public static final String CRYSTAL = "crystal"; public static final String PLATE = "plate"; public static final String PLATECAST = "plateTriple"; //cast plates are solid plates made from 3 ingots, turns out that's literally just a GT triple plate + public static final String PLATEWELDED = "plateSextuple"; + public static final String WIREDENSE = "wireDense"; public static final String BILLET = "billet"; public static final String BLOCK = "block"; public static final String ORE = "ore"; public static final String ORENETHER = "oreNether"; + public static final String HEAVY_COMPONENT = "componentHeavy"; public static final String[] prefixes = new String[] { - ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER + ANY, NUGGET, TINY, BOLT, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT, WIREDENSE }; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java index afab4ad24..dab69d73b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotPattern; import com.hbm.inventory.SlotUpgrade; import com.hbm.items.ModItems; import com.hbm.tileentity.network.TileEntityCraneExtractor; @@ -20,7 +21,7 @@ public class ContainerCraneExtractor extends Container { //filter for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new Slot(extractor, j + i * 3, 71 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new SlotPattern(extractor, j + i * 3, 71 + j * 18, 17 + i * 18)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java b/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java new file mode 100644 index 000000000..cf9338763 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java @@ -0,0 +1,79 @@ +package com.hbm.inventory.container; + +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.network.TileEntityDroneCrate; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerDroneCrate extends Container { + + protected TileEntityDroneCrate crate; + + public ContainerDroneCrate(InventoryPlayer invPlayer, TileEntityDroneCrate inserter) { + this.crate = inserter; + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 6; j++) { + this.addSlotToContainer(new Slot(inserter, j + i * 6, 8 + j * 18, 17 + i * 18)); + } + } + + this.addSlotToContainer(new Slot(inserter, 18, 125, 53)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(slot); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(slot <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 18, 19, false)) + return null; + } else if(!this.mergeItemStack(var5, 0, 18, false)) { + return null; + } + + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(player, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return crate.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java new file mode 100644 index 000000000..913ee1dd3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java @@ -0,0 +1,29 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityDroneDock; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class ContainerDroneDock extends ContainerCrateBase { + + public ContainerDroneDock(InventoryPlayer invPlayer, TileEntityDroneDock tedf) { + super(tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java new file mode 100644 index 000000000..7b818dc8d --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java @@ -0,0 +1,29 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityDroneProvider; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class ContainerDroneProvider extends ContainerCrateBase { + + public ContainerDroneProvider(InventoryPlayer invPlayer, TileEntityDroneProvider tedf) { + super(tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java new file mode 100644 index 000000000..d728d69c3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java @@ -0,0 +1,108 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.network.TileEntityDroneRequester; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerDroneRequester extends ContainerCrateBase { + + public ContainerDroneRequester(InventoryPlayer invPlayer, TileEntityDroneRequester tedf) { + super(tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 98 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3 + 9, 26 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 < 9) return null; //ignore filters + + if(par2 <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 9, crate.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + if(index < 0 || index > 8) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + TileEntityDroneRequester requester = (TileEntityDroneRequester) crate; + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + requester.nextMode(index); + return ret; + + } else { + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + requester.matcher.initPatternStandard(requester.getWorldObj(), slot.getStack(), index); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFunnel.java b/src/main/java/com/hbm/inventory/container/ContainerFunnel.java new file mode 100644 index 000000000..5cfb3bcfb --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerFunnel.java @@ -0,0 +1,64 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerFunnel extends Container { + + private TileEntityMachineFunnel funnel; + + public ContainerFunnel(InventoryPlayer playerInv, TileEntityMachineFunnel tile) { + funnel = tile; + + for(int i = 0; i < 9; i++) this.addSlotToContainer(new Slot(tile, i, 8 + 18 * i, 18)); + for(int i = 0; i < 9; i++) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, i + 9, 8 + 18 * i, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 86 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 144)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return funnel.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(index); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(index <= 17) { + if(!this.mergeItemStack(var5, 18, this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, 9, false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java index 11a9190e1..a19e9a385 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java @@ -5,7 +5,6 @@ import com.hbm.tileentity.bomb.TileEntityLaunchPad; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; @@ -21,57 +20,43 @@ public class ContainerLaunchPadTier1 extends Container { this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); this.addSlotToContainer(new Slot(tedf, 2, 134, 17)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) - { + + if(par2 <= 2) { + if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java index 2d015033f..3e8a6d0cf 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java @@ -66,6 +66,7 @@ public class ContainerLeadBox extends Container { @Override public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { // prevents the player from moving around the currently open box + if(mode == 2 && button == player.inventory.currentItem) return null; if(index == player.inventory.currentItem + 47) return null; return super.slotClick(index, button, mode, player); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java new file mode 100644 index 000000000..9c5d516b8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineArcWelder extends Container { + + private TileEntityMachineArcWelder welder; + + public ContainerMachineArcWelder(InventoryPlayer playerInv, TileEntityMachineArcWelder tile) { + welder = tile; + + //Inputs + this.addSlotToContainer(new Slot(tile, 0, 17, 36)); + this.addSlotToContainer(new Slot(tile, 1, 35, 36)); + this.addSlotToContainer(new Slot(tile, 2, 53, 36)); + //Output + this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 3, 107, 36)); + //Battery + this.addSlotToContainer(new Slot(tile, 4, 152, 72)); + //Fluid ID + this.addSlotToContainer(new Slot(tile, 5, 17, 63)); + //Upgrades + this.addSlotToContainer(new SlotUpgrade(tile, 6, 89, 63)); + this.addSlotToContainer(new SlotUpgrade(tile, 7, 107, 63)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return welder.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(index); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(index <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 4, 5, false)) return null; + } else if(var3.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(var5, 6, 8, false)) return null; + } else { + if(!this.mergeItemStack(var5, 0, 3, false)) return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java deleted file mode 100644 index 1060bdaec..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineCoal extends Container { - - private TileEntityMachineCoal diFurnace; - - public ContainerMachineCoal(InventoryPlayer invPlayer, TileEntityMachineCoal tedf) { - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 53 - 36)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 53)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 44, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 1, 2, false)) - { - if (!this.mergeItemStack(var5, 0, 1, false)) - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java b/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java index 4f0b39b00..e32e9197c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.tileentity.IRadioisotopeFuel; +import com.hbm.items.machine.ItemRTGPellet; import com.hbm.tileentity.machine.TileEntityDiFurnaceRTG; import net.minecraft.entity.player.EntityPlayer; @@ -45,6 +45,25 @@ public class ContainerMachineDiFurnaceRTG extends Container { return bFurnace.isUseableByPlayer(player); } + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + if(index >= 0 && index < 2 && button == 1 && mode == 0) { + Slot slot = this.getSlot(index); + if(!slot.getHasStack() && player.inventory.getItemStack() == null) { + if(!player.worldObj.isRemote) { + if(index == 0) bFurnace.sideUpper = (byte) ((bFurnace.sideUpper + 1) % 6); + if(index == 1) bFurnace.sideLower = (byte) ((bFurnace.sideLower + 1) % 6); + + bFurnace.markDirty(); + } + return null; + } + } + + return super.slotClick(index, button, mode, player); + } + @Override public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; @@ -58,7 +77,7 @@ public class ContainerMachineDiFurnaceRTG extends Container { if(!this.mergeItemStack(var5, 9, this.inventorySlots.size(), true)) { return null; } - } else if(var5.getItem() instanceof IRadioisotopeFuel) { + } else if(var5.getItem() instanceof ItemRTGPellet) { if(!this.mergeItemStack(var5, 3, 9, false)) return null; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java index a7caab502..c55fd5400 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java @@ -54,8 +54,8 @@ public class ContainerMachineExcavator extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 4) { - if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { + if(par2 <= 13) { + if(!this.mergeItemStack(var5, 14, this.inventorySlots.size(), true)) { return null; } } else { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java new file mode 100644 index 000000000..c4dd07df6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineExposureChamber extends Container { + + private TileEntityMachineExposureChamber chamber; + + public ContainerMachineExposureChamber(InventoryPlayer invPlayer, TileEntityMachineExposureChamber tedf) { + this.chamber = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 8, 54)); + this.addSlotToContainer(new Slot(tedf, 3, 80, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 4, 116, 36)); + this.addSlotToContainer(new Slot(tedf, 5, 152, 54)); + this.addSlotToContainer(new Slot(tedf, 6, 44, 54)); + this.addSlotToContainer(new Slot(tedf, 7, 62, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 6) { + if(!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 5, 7, false)) { + return null; + } + } else if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 4, 5, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 3, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return chamber.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java deleted file mode 100644 index 5599c4f76..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; - -public class ContainerMachineRadar extends Container { - - public ContainerMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return true; - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java new file mode 100644 index 000000000..0bd1f475b --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java @@ -0,0 +1,76 @@ +package com.hbm.inventory.container; + +import com.hbm.items.ModItems; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineRadarNT extends Container { + + private TileEntityMachineRadarNT radar; + + public ContainerMachineRadarNT(InventoryPlayer invPlayer, TileEntityMachineRadarNT tedf) { + this.radar = tedf; + + for(int i = 0; i < 8; i++) this.addSlotToContainer(new Slot(tedf, i, 26 + i * 18, 17)); + + this.addSlotToContainer(new Slot(tedf, 8, 26, 44)); + this.addSlotToContainer(new Slot(tedf, 9, 152, 44)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 9) { + if(!this.mergeItemStack(var5, 10, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 9, 10, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 9, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return radar.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java new file mode 100644 index 000000000..73684e642 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java @@ -0,0 +1,103 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; + +public class ContainerMachineWoodBurner extends Container { + + protected TileEntityMachineWoodBurner burner; + + public ContainerMachineWoodBurner(InventoryPlayer invPlayer, TileEntityMachineWoodBurner burner) { + this.burner = burner; + this.burner.openInventory(); + + //Fuel + this.addSlotToContainer(new Slot(burner, 0, 26, 18)); + //Ashes + this.addSlotToContainer(new SlotTakeOnly(burner, 1, 26, 54)); + //Fluid ID + this.addSlotToContainer(new Slot(burner, 2, 98, 54)); + //Fluid Container + this.addSlotToContainer(new Slot(burner, 3, 98, 18)); + this.addSlotToContainer(new SlotTakeOnly(burner, 4, 98, 36)); + //Battery + this.addSlotToContainer(new Slot(burner, 5, 143, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 5) { + if(!this.mergeItemStack(originalStack, 6, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else { + + if(stack.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(originalStack, 5, 6, false)) { + return null; + } + } else if(stack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(originalStack, 2, 3, false)) { + return null; + } + } else if(TileEntityFurnace.isItemFuel(stack)) { + if(!this.mergeItemStack(originalStack, 0, 1, false)) { + return null; + } + } else { + if(!this.mergeItemStack(originalStack, 3, 4, false)) { + return null; + } + } + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return burner.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.burner.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java b/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java deleted file mode 100644 index 9829f3210..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeN45.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.bomb.TileEntityNukeN45; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerNukeN45 extends Container { - - private TileEntityNukeN45 diFurnace; - - public ContainerNukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - - diFurnace = tedf; - - //Payload - this.addSlotToContainer(new Slot(tedf, 0, 44, 35)); - //Range up - this.addSlotToContainer(new Slot(tedf, 1, 116, 35)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 1) { - if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 2, false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java new file mode 100644 index 000000000..687e53a54 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java @@ -0,0 +1,80 @@ +package com.hbm.inventory.container; + +import com.hbm.items.tool.ItemPlasticBag.InventoryPlasticBag; +import com.hbm.util.InventoryUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerPlasticBag extends Container { + + private InventoryPlasticBag bag; + + public ContainerPlasticBag(InventoryPlayer invPlayer, InventoryPlasticBag bag) { + this.bag = bag; + this.bag.openInventory(); + + this.addSlotToContainer(new Slot(bag, 0, 80, 65)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 134 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 192)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= bag.getSizeInventory() - 1) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, bag.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, bag.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + // prevents the player from moving around the currently open box + if(mode == 2 && button == player.inventory.currentItem) return null; + if(index == player.inventory.currentItem + 28) return null; + return super.slotClick(index, button, mode, player); + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return bag.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.bag.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 390fcfede..728c0bad2 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -13,6 +13,7 @@ import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.RefStrings; import com.hbm.render.util.EnumSymbol; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,21 +32,21 @@ public class FluidType { private int color; //Unlocalized string ID of the fluid private String unlocalized; + //localization override for custom fluids + private String localizedOverride; + private int guiTint = 0xffffff; public int poison; public int flammability; public int reactivity; public EnumSymbol symbol; + public boolean customFluid = false; public static final int ROOM_TEMPERATURE = 20; - public static final double DEFAULT_HEATCAP = 0.01D; - public static final double DEFAULT_COMPRESSION = 1D; // v v v this entire system is a pain in the ass to work with. i'd much rather define state transitions and heat values manually. /** How hot this fluid is. Simple enough. */ public int temperature = ROOM_TEMPERATURE; - /** How much "stuff" there is in one mB. 1mB of water turns into 100mB of steam, therefore steam has a compression of 0.01. Compression is only used for translating fluids into other fluids, heat calculations should ignore this. */ - public double compression = DEFAULT_COMPRESSION; public HashMap containers = new HashMap(); public HashMap, FluidTrait> traits = new HashMap(); @@ -66,6 +67,23 @@ public class FluidType { this.id = Fluids.registerSelf(this); } + public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { + this.stringId = name; + this.color = color; + this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); + this.poison = p; + this.flammability = f; + this.reactivity = r; + this.symbol = symbol; + this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + texName + ".png"); + this.guiTint = tint; + this.localizedOverride = displayName; + this.customFluid = true; + + this.id = id; + Fluids.register(this, id); + } + public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { this(name, color, p, f, r, symbol); @@ -79,11 +97,6 @@ public class FluidType { return this; } - public FluidType setCompression(double compression) { - this.compression = compression; - return this; - } - public FluidType addContainers(Object... containers) { for(Object container : containers) this.containers.put(container.getClass(), container); return this; @@ -109,7 +122,7 @@ public class FluidType { public int getID() { return this.id; } - + /** The unique mapping name for this fluid, usually matches the unlocalied name, minus the prefix */ public String getName() { return this.stringId; } @@ -118,12 +131,24 @@ public class FluidType { return this.color; } + public int getTint() { + return this.guiTint; + } + public ResourceLocation getTexture() { return this.texture; } public String getUnlocalizedName() { return this.unlocalized; } + /** Returns the localized override name if present, or otherwise the I18n converted name */ + @SideOnly(Side.CLIENT) public String getLocalizedName() { + return this.localizedOverride != null ? this.localizedOverride : I18nUtil.resolveKey(this.unlocalized); + } + /** Returns the localized override name if present, or otherwise the raw unlocalized name. Used for server-side code that needs ChatComponentTranslation. */ + public String getConditionalName() { + return this.localizedOverride != null ? this.localizedOverride : this.unlocalized; + } public String getDict(int quantity) { return "container" + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); } @@ -146,6 +171,9 @@ public class FluidType { public boolean needsLeadContainer() { return this.traits.containsKey(FT_LeadContainer.class); } + public boolean isDispersable() { + return !(this.traits.containsKey(FT_Amat.class) || this.traits.containsKey(FT_NoContainer.class) || this.traits.containsKey(FT_Viscous.class)); + } /** * Called when the tile entity is broken, effectively voiding the fluids. diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 093030189..2669476ed 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -118,6 +118,9 @@ public class Fluids { public static FluidType SOLVENT; //oranic solvent in fact public static FluidType BLOOD; //BLOOD ORB! BLOOD ORB! BLOOD ORB! public static FluidType BLOOD_HOT; + + public static FluidType PHEROMONE; + public static FluidType PHEROMONE_M; public static FluidType SYNGAS; public static FluidType OXYHYDROGEN; public static FluidType RADIOSOLVENT; //DCM-ish made by wacky radio cracking @@ -162,9 +165,13 @@ public class Fluids { public static FluidType THORIUM_SALT; public static FluidType THORIUM_SALT_HOT; public static FluidType THORIUM_SALT_DEPLETED; + public static FluidType FULLERENE; + + public static List customFluids = new ArrayList(); private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); + protected static final List registerOrder = new ArrayList(); protected static final List metaOrder = new ArrayList(); public static final FT_Liquid LIQUID = new FT_Liquid(); @@ -178,7 +185,7 @@ public class Fluids { public static final FT_NoID NOID = new FT_NoID(); public static final FT_Delicious DELICIOUS = new FT_Delicious(); public static final FT_Leaded LEADED = new FT_Leaded(); - + public static void init() { // ##### ##### ##### ##### ## # ##### # # ##### ## # ##### @@ -196,10 +203,10 @@ public class Fluids { NONE = new FluidType("NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE); WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D).addTraits(GASEOUS); - HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D).addTraits(GASEOUS); - SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D).addTraits(GASEOUS); - ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D).addTraits(GASEOUS); + STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).addTraits(GASEOUS); + HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).addTraits(GASEOUS); + SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).addTraits(GASEOUS); + ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(GASEOUS); COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID, VISCOUS); DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS); @@ -242,7 +249,7 @@ public class Fluids { WASTEGAS = new FluidType("WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, GASEOUS); GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID); COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID); - SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).setCompression(1D).addTraits(NOCON, GASEOUS); + SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(NOCON, GASEOUS); FRACKSOL = new FluidType("FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addContainers(new CD_Canister(0x4F887F)).addTraits(new FT_Corrosive(15), new FT_Poison(false, 0), LIQUID, VISCOUS); PLASMA_DT = new FluidType("PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(NOCON, NOID, PLASMA); PLASMA_HD = new FluidType("PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(NOCON, NOID, PLASMA); @@ -265,7 +272,7 @@ public class Fluids { UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS); //acetylene burns as hot as satan's asshole SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED); GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED); COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED); @@ -278,7 +285,7 @@ public class Fluids { SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID, VISCOUS); NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60)); SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30)); - BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, DELICIOUS); BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).setTemp(666); //it's funny because it's the satan number SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); @@ -318,15 +325,23 @@ public class Fluids { SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); SMOKE_POISON = new FluidType("SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); HELIUM4 = new FluidType("HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); - HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); - SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID); - SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); - THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); - THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, new FT_Corrosive(65)); - THORIUM_SALT_DEPLETED = new FluidType(129, "THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); - + HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID, VISCOUS); + SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID, VISCOUS); + SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID, VISCOUS); + THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65)); + FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); + PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1)); + PHEROMONE_M = new FluidType(132, "PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE + + File folder = MainRegistry.configHbmDir; + File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); + if(!customTypes.exists()) initDefaultFluids(customTypes); + readCustomFluids(customTypes); + //AND DON'T FORGET THE META DOWN HERE // V V V V V V V V @@ -439,6 +454,7 @@ public class Fluids { metaOrder.add(DEATH); metaOrder.add(WATZ); metaOrder.add(REDMUD); + metaOrder.add(FULLERENE); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); metaOrder.add(CHLOROCALCITE_SOLUTION); @@ -475,6 +491,11 @@ public class Fluids { metaOrder.add(SMOKE_LEADED); metaOrder.add(SMOKE_POISON); + //bug meth + metaOrder.add(PHEROMONE); + metaOrder.add(PHEROMONE_M); + for(FluidType custom : customFluids) metaOrder.add(custom); + CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false))); PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_CHLORINE, false))); MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false)) @@ -616,19 +637,72 @@ public class Fluids { registerCalculatedFuel(SYNGAS, (coalHeat * (1000 /* bucket */ / 100 /* mB per coal */) * flammabilityLow * demandLow * complexityChemplant) * 1.5, 1.25, FuelGrade.GAS); //same as coal oil, +50% bonus registerCalculatedFuel(OXYHYDROGEN, 5_000, 3, FuelGrade.GAS); // whatever - File folder = MainRegistry.configHbmDir; - - File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluids.json"); - File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluids.json"); + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTraits.json"); + File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluidTraits.json"); if(!config.exists()) { - writeDefault(template); + writeDefaultTraits(template); } else { - readConfig(config); + readTraits(config); } } - private static void writeDefault(File file) { + private static void initDefaultFluids(File file) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.setIndent(" "); + writer.beginObject(); + + writer.name("CUSTOM_DEMO").beginObject(); + writer.name("name").value("Custom Fluid Demo"); + writer.name("id").value(1000); + writer.name("color").value(0xff0000); + writer.name("tint").value(0xff0000); + writer.name("p").value(1).name("f").value(2).name("r").value(0); + writer.name("symbol").value(EnumSymbol.OXIDIZER.name()); + writer.name("texture").value("custom_water"); + writer.name("temperature").value(20); + writer.endObject(); + + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + private static void readCustomFluids(File file) { + + try { + JsonObject json = gson.fromJson(new FileReader(file), JsonObject.class); + + for(Entry entry : json.entrySet()) { + + JsonObject obj = (JsonObject) entry.getValue(); + + String name = entry.getKey(); + int id = obj.get("id").getAsInt(); + String displayName = obj.get("name").getAsString(); + int color = obj.get("color").getAsInt(); + int tint = obj.get("tint").getAsInt(); + int p = obj.get("p").getAsInt(); + int f = obj.get("f").getAsInt(); + int r = obj.get("r").getAsInt(); + EnumSymbol symbol = EnumSymbol.valueOf(obj.get("symbol").getAsString()); + String texture = obj.get("texture").getAsString(); + int temperature = obj.get("temperature").getAsInt(); + + FluidType type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); + customFluids.add(type); + } + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + private static void writeDefaultTraits(File file) { try { JsonWriter writer = new JsonWriter(new FileWriter(file)); @@ -636,7 +710,7 @@ public class Fluids { writer.beginObject(); for(FluidType type : metaOrder) { - writer.name(type.getUnlocalizedName()).beginObject(); + writer.name(type.getName()).beginObject(); for(Entry, FluidTrait> entry : type.traits.entrySet()) { writer.name(FluidTrait.traitNameMap.inverse().get(entry.getKey())).beginObject(); @@ -654,14 +728,14 @@ public class Fluids { } } - private static void readConfig(File config) { + private static void readTraits(File config) { try { JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); for(FluidType type : metaOrder) { - JsonElement element = json.get(type.getUnlocalizedName()); + JsonElement element = json.get(type.getName()); if(element != null) { type.traits.clear(); JsonObject obj = element.getAsJsonObject(); @@ -712,10 +786,17 @@ public class Fluids { protected static int registerSelf(FluidType fluid) { int id = idMapping.size(); idMapping.put(id, fluid); + registerOrder.add(fluid); nameMapping.put(fluid.getName(), fluid); return id; } + protected static void register(FluidType fluid, int id) { + idMapping.put(id, fluid); + registerOrder.add(fluid); + nameMapping.put(fluid.getName(), fluid); + } + public static FluidType fromID(int id) { FluidType fluid = idMapping.get(id); @@ -746,7 +827,7 @@ public class Fluids { FluidType[] all = new FluidType[idMapping.size()]; for(int i = 0; i < all.length; i++) { - FluidType type = nice ? metaOrder.get(i) : idMapping.get(i); + FluidType type = nice ? metaOrder.get(i) : registerOrder.get(i); if(type == null) { throw new IllegalStateException("A severe error has occoured with NTM's fluid system! Fluid of the ID " + i + " has returned NULL in the registry!"); diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index ba720d228..4294759bb 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -15,7 +15,6 @@ import com.hbm.packet.TEFluidPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -201,10 +200,19 @@ public class FluidTank { * @param width * @param height */ - //TODO: add a directional parameter to allow tanks to grow horizontally public void renderTank(int x, int y, double z, int width, int height) { + renderTank(x, y, z, width, height, 0); + } + + public void renderTank(int x, int y, double z, int width, int height, int orientation) { GL11.glEnable(GL11.GL_BLEND); + + int color = type.getTint(); + double r = ((color & 0xff0000) >> 16) / 255D; + double g = ((color & 0x00ff00) >> 8) / 255D; + double b = ((color & 0x0000ff) >> 0) / 255D; + GL11.glColor3d(r, g, b); y -= height; @@ -213,15 +221,32 @@ public class FluidTank { int i = (fluid * height) / maxFluid; double minX = x; - double maxX = x + width; - double minY = y + (height - i); - double maxY = y + height; + double maxX = x; + double minY = y; + double maxY = y; double minV = 1D - i / 16D; double maxV = 1D; double minU = 0D; double maxU = width / 16D; + if(orientation == 0) { + maxX += width; + minY += height - i; + maxY += height; + } + + if(orientation == 1) { + i = (fluid * width) / maxFluid; + maxX += i; + maxY += height; + + minV = 0; + maxV = height / 16D; + minU = 0D; + maxU = width / 16D; + } + Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(minX, maxY, z, minU, maxV); @@ -230,6 +255,7 @@ public class FluidTank { tessellator.addVertexWithUV(minX, minY, z, minU, minV); tessellator.draw(); + GL11.glColor3d(1D, 1D, 1D); GL11.glDisable(GL11.GL_BLEND); } @@ -237,7 +263,7 @@ public class FluidTank { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) { List list = new ArrayList(); - list.add(I18n.format(this.type.getUnlocalizedName())); + list.add(this.type.getLocalizedName()); list.add(fluid + "/" + maxFluid + "mB"); if(this.pressure != 0) { diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index 0f0404916..1bb6d3574 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -67,7 +67,7 @@ public class FT_Coolable extends FluidTrait { @Override public void serializeJSON(JsonWriter writer) throws IOException { - writer.name("coolsTo").value(this.coolsTo.getUnlocalizedName()); + writer.name("coolsTo").value(this.coolsTo.getName()); writer.name("amountReq").value(this.amountReq); writer.name("amountProd").value(this.amountProduced); writer.name("heatEnergy").value(this.heatEnergy); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index 989915a46..c828858b8 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -87,7 +87,7 @@ public class FT_Heatable extends FluidTrait { for(HeatingStep step : steps) { writer.beginObject(); - writer.name("typeProduced").value(step.typeProduced.getUnlocalizedName()); + writer.name("typeProduced").value(step.typeProduced.getName()); writer.name("amountReq").value(step.amountReq); writer.name("amountProd").value(step.amountProduced); writer.name("heatReq").value(step.heatReq); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java new file mode 100644 index 000000000..4ebfc8e5c --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Pheromone.java @@ -0,0 +1,43 @@ +package com.hbm.inventory.fluid.trait; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import net.minecraft.util.EnumChatFormatting; + + +import java.io.IOException; +import java.util.List; + +public class FT_Pheromone extends FluidTrait{ + + public int type; + + public FT_Pheromone(int type){ + this.type = type; + } + + public int getType() { + return type; + } + + @Override + public void addInfo(List info) { + + if (type == 1) { + info.add(EnumChatFormatting.AQUA + "[Glyphid Pheromones]"); + } else { + info.add(EnumChatFormatting.BLUE + "[Modified Pheromones]"); + } + + } + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("type").value(type); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.type = obj.get("type").getAsInt(); + } + +} diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index 354da3175..fe814219e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -3,6 +3,7 @@ package com.hbm.inventory.fluid.trait; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -100,7 +101,7 @@ public class FT_Toxin extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format("%,.1f", amount * 20 / delay) + " DPS"); + info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format(Locale.US, "%,.1f", amount * 20 / delay) + " DPS"); } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index ff2522d09..de7ddc591 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -35,6 +35,7 @@ public abstract class FluidTrait { traitNameMap.put("leadcontainer", FT_LeadContainer.class); traitNameMap.put("delicious", FT_Delicious.class); traitNameMap.put("leaded", FT_Leaded.class); + traitNameMap.put("pheromone", FT_Pheromone.class); traitNameMap.put("noid", FT_NoID.class); traitNameMap.put("nocontainer", FT_NoContainer.class); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index d282cea42..f62cd456e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -49,7 +49,7 @@ public class FluidTraitSimple { info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); } } - + public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); diff --git a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java index fe85c7fe6..dc8f89785 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java +++ b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCombustionEngine; @@ -59,7 +61,7 @@ public class GUICombustionEngine extends GuiInfoContainer { power = setting * 0.2 * trait.getCombustionEnergy() / 1_000D * piston.eff[trait.getGrade().ordinal()]; } String c = EnumChatFormatting.YELLOW + ""; - drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 50, 35, 14, x, y, c + String.format("%,d", (int)(power)) + " HE/t", c + String.format("%,d", (int)(power * 20)) + " HE/s"); + drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 50, 35, 14, x, y, c + String.format(Locale.US, "%,d", (int)(power)) + " HE/t", c + String.format(Locale.US, "%,d", (int)(power * 20)) + " HE/s"); } drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 13, 35, 15, x, y, "Ignition"); diff --git a/src/main/java/com/hbm/inventory/gui/GUICrucible.java b/src/main/java/com/hbm/inventory/gui/GUICrucible.java index f235275b5..a41ef4288 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrucible.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrucible.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import java.awt.Color; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -42,8 +43,8 @@ public class GUICrucible extends GuiInfoContainer { drawStackInfo(crucible.wasteStack, x, y, 16, 17); drawStackInfo(crucible.recipeStack, x, y, 61, 17); - this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 81, 34, 7, x, y, new String[] { String.format("%,d", crucible.progress) + " / " + String.format("%,d", crucible.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 90, 34, 7, x, y, new String[] { String.format("%,d", crucible.heat) + " / " + String.format("%,d", crucible.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 81, 34, 7, x, y, new String[] { String.format(Locale.US, "%,d", crucible.progress) + " / " + String.format(Locale.US, "%,d", crucible.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 90, 34, 7, x, y, new String[] { String.format(Locale.US, "%,d", crucible.heat) + " / " + String.format(Locale.US, "%,d", crucible.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java new file mode 100644 index 000000000..cd99405b4 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java @@ -0,0 +1,75 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneCrate; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityDroneCrate; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneCrate extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_drone.png"); + private TileEntityDroneCrate crate; + + public GUIDroneCrate(InventoryPlayer invPlayer, TileEntityDroneCrate crate) { + super(new ContainerDroneCrate(invPlayer, crate)); + this.crate = crate; + + this.xSize = 176; + this.ySize = 185; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + crate.tank.renderTankInfo(this, x, y, guiLeft + 125, guiTop + 17, 16, 34); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + String op = null; + + // Toggle type + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 16 < y && guiTop + 16 + 18 >= y) op = "type"; + // Toggle mode + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 52 < y && guiTop + 52 + 18 >= y) op = "mode"; + + if(op != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean(op, true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, crate.xCoord, crate.yCoord, crate.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.crate.hasCustomInventoryName() ? this.crate.getInventoryName() : I18n.format(this.crate.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + drawTexturedModalRect(guiLeft + 151, guiTop + 16, 194, crate.itemType ? 0 : 18, 18, 18); + drawTexturedModalRect(guiLeft + 151, guiTop + 52, 176, crate.sendingMode ? 18 : 0, 18, 18); + + crate.tank.renderTank(guiLeft + 125, guiTop + 51, this.zLevel, 16, 34); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java b/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java new file mode 100644 index 000000000..006b8a092 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java @@ -0,0 +1,39 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneDock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneDock; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneDock extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_dock.png"); + private TileEntityDroneDock diFurnace; + + public GUIDroneDock(InventoryPlayer invPlayer, TileEntityDroneDock tedf) { + super(new ContainerDroneDock(invPlayer, tedf)); + diFurnace = tedf; + this.xSize = 176; + this.ySize = 185; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java b/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java new file mode 100644 index 000000000..0547e969d --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneProvider; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneProvider; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneProvider extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_provider.png"); + private TileEntityDroneProvider diFurnace; + + public GUIDroneProvider(InventoryPlayer invPlayer, TileEntityDroneProvider tedf) { + super(new ContainerDroneProvider(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java b/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java new file mode 100644 index 000000000..4fec012e5 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java @@ -0,0 +1,69 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneRequester; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneRequester; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneRequester extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_requester.png"); + private TileEntityDroneRequester diFurnace; + + public GUIDroneRequester(InventoryPlayer invPlayer, TileEntityDroneRequester tedf) { + super(new ContainerDroneRequester(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && diFurnace.matcher.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(diFurnace.matcher.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + diFurnace.matcher.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java index 6091d74d2..35fe1207e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java @@ -1,6 +1,7 @@ package com.hbm.inventory.gui; import java.util.List; +import java.util.Locale; import org.lwjgl.opengl.GL11; @@ -48,7 +49,7 @@ public class GUIFirebox extends GuiInfoContainer { } } - this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", firebox.heatEnergy) + " / " + String.format("%,d", firebox.getMaxHeat()) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format(Locale.US, "%,d", firebox.heatEnergy) + " / " + String.format(Locale.US, "%,d", firebox.getMaxHeat()) + "TU" }); this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 36, 71, 7, x, y, new String[] { firebox.burnHeat + "TU/t", (firebox.burnTime / 20) + "s" }); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIFunnel.java b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java new file mode 100644 index 000000000..1ee5069b3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIFunnel.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerFunnel; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineFunnel; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIFunnel extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_funnel.png"); + private TileEntityMachineFunnel funnel; + + public GUIFunnel(InventoryPlayer invPlayer, TileEntityMachineFunnel tedf) { + super(new ContainerFunnel(invPlayer, tedf)); + funnel = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.funnel.hasCustomInventoryName() ? this.funnel.getInventoryName() : I18n.format(this.funnel.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java index 118c83f60..6fa6362ea 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFurnaceCombo; @@ -30,8 +32,8 @@ public class GUIFurnaceCombo extends GuiInfoContainer { furnace.tank.renderTankInfo(this, x, y, guiLeft + 118, guiTop + 18, 16, 52); - this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 36, 39, 7, x, y, new String[] { String.format("%,d", furnace.progress) + " / " + String.format("%,d", furnace.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 45, 39, 7, x, y, new String[] { String.format("%,d", furnace.heat) + " / " + String.format("%,d", furnace.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 36, 39, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.progress) + " / " + String.format(Locale.US, "%,d", furnace.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 45, 39, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.heat) + " / " + String.format(Locale.US, "%,d", furnace.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java index a7dcb6eb8..dfdddf87e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFurnaceSteel; @@ -29,11 +31,11 @@ public class GUIFurnaceSteel extends GuiInfoContainer { super.drawScreen(x, y, interp); for(int i = 0; i < 3; i++) { - this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 17 + 18 * i, 70, 7, x, y, new String[] { String.format("%,d", furnace.progress[i]) + " / " + String.format("%,d", furnace.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 17 + 18 * i, 70, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.progress[i]) + " / " + String.format(Locale.US, "%,d", furnace.processTime) + "TU" }); this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 26 + 18 * i, 70, 7, x, y, new String[] { "Bonus: " + furnace.bonus[i] + "%" }); } - this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 18, 9, 50, x, y, new String[] { String.format("%,d", furnace.heat) + " / " + String.format("%,d", furnace.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 18, 9, 50, x, y, new String[] { String.format(Locale.US, "%,d", furnace.heat) + " / " + String.format(Locale.US, "%,d", furnace.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index f932ba665..b39db1804 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -40,8 +40,10 @@ public class GUIHadron extends GuiInfoContainer { this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 108, 70, 16, hadron.power, hadron.maxPower); - if(hadron.hopperMode) + if(hadron.ioMode == 1) this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper1")); + else if(hadron.ioMode == 2) + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper2")); else this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper0")); @@ -54,7 +56,7 @@ public class GUIHadron extends GuiInfoContainer { stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hadron.stats")); stats.add((hadron.stat_success ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + I18n.format("hadron." + this.hadron.stat_state.name().toLowerCase(Locale.US))); if(this.hadron.state.showCoord) stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hadron.stats_coord", hadron.stat_x, hadron.stat_y, hadron.stat_z)); - stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format("%,d", hadron.stat_charge))); + stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format(Locale.US, "%,d", hadron.stat_charge))); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 41, guiTop + 92, 25, 11, mouseX, mouseY, stats.toArray(new String[0])); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 4, guiTop + 36, 16, 16, guiLeft + 4, guiTop + 36 + 16, new String[] {"Initial particle momentum: 750"}); @@ -105,9 +107,9 @@ public class GUIHadron extends GuiInfoContainer { if(hadron.analysisOnly) drawTexturedModalRect(guiLeft + 142, guiTop + 107, 206, 18, 18, 18); - - if(hadron.hopperMode) - drawTexturedModalRect(guiLeft + 142, guiTop + 89, 206, 36, 18, 18); + + if(hadron.ioMode == hadron.MODE_HOPPER) drawTexturedModalRect(guiLeft + 142, guiTop + 89, 206, 36, 18, 18); + if(hadron.ioMode == hadron.MODE_SINGLE) drawTexturedModalRect(guiLeft + 142, guiTop + 89, 224, 36, 18, 18); if(hadron.state == EnumHadronState.SUCCESS) { drawTexturedModalRect(guiLeft + 73, guiTop + 29, 176, 0, 30, 30); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java new file mode 100644 index 000000000..ae993fb9a --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineArcWelder; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineArcWelder extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_arc_welder.png"); + private TileEntityMachineArcWelder welder; + + public GUIMachineArcWelder(InventoryPlayer playerInv, TileEntityMachineArcWelder tile) { + super(new ContainerMachineArcWelder(playerInv, tile)); + + this.welder = tile; + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + welder.tank.renderTankInfo(this, x, y, guiLeft + 35, guiTop + 63, 34, 16); + this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, welder.getPower(), welder.getMaxPower()); + + this.drawCustomInfoStat(x, y, guiLeft + 78, guiTop + 67, 8, 8, guiLeft + 78, guiTop + 67, this.getUpgradeInfo(welder)); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.welder.hasCustomInventoryName() ? this.welder.getInventoryName() : I18n.format(this.welder.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 18, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = (int) (welder.power * 52 / welder.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - p, 176, 52 - p, 16, p); + + int i = welder.progress * 33 / welder.processTime; + drawTexturedModalRect(guiLeft + 72, guiTop + 37, 192, 0, i, 14); + + if(welder.power >= welder.consumption) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); + } + + this.drawInfoPanel(guiLeft + 78, guiTop + 67, 8, 8, 8); + welder.tank.renderTank(guiLeft + 35, guiTop + 79, this.zLevel, 34, 16, 1); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java index 31ebd23ec..795d8882b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java @@ -41,12 +41,7 @@ public class GUIMachineAssembler extends GuiInfoContainer { String[] templateText = I18nUtil.resolveKeyArray("desc.gui.template"); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, templateText); - String[] upgradeText = new String[3]; - upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); - upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); - upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.power"); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 40, 8, 8, guiLeft + 225, guiTop + 40 + 16 + 8, upgradeText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 40, 8, 8, guiLeft + 225, guiTop + 40 + 16 + 8, this.getUpgradeInfo(assembler)); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java deleted file mode 100644 index 24b1cf2ae..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.hbm.inventory.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -public class GUIMachineCoal extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/GUICoal.png"); - private TileEntityMachineCoal diFurnace; - - public GUIMachineCoal(InventoryPlayer invPlayer, TileEntityMachineCoal tedf) { - super(new ContainerMachineCoal(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.maxPower); - - String[] text = new String[] { "Power generation rate:", - " 25 HE/t", - " 500 HE/s", - "Accepts all furnace fuels.", - "(All fuels burn half as long in this generator", - "as in a regular furnace)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "Water consumption rate:", - " 1 mB/t", - " 20 mB/s", - "(Consumption rate is constant)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.tank.getFill() <= 0) { - - String[] text2 = new String[] { "Error: Water is required for", - "the generator to function properly!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 34, 18, 18, mouseX, mouseY, new String[] { String.valueOf((int)(Math.ceil((double)diFurnace.burnTime / 20D))) + "s"}); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - //It's as horrifying as it is functional. - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineCoal) - diFurnace = (TileEntityMachineCoal) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 152, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - if(diFurnace.burnTime > 0) - { - drawTexturedModalRect(guiLeft + 79, guiTop + 34, 208, 0, 18, 18); - } - - if(diFurnace.tank.getFill() <= 0) - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - - diFurnace.tank.renderTank(guiLeft + 8, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java index b9b2d5d1f..e21a06d8b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCoker; @@ -31,8 +33,8 @@ public class GUIMachineCoker extends GuiInfoContainer { refinery.tanks[0].renderTankInfo(this, x, y, guiLeft + 35, guiTop + 18, 16, 52); refinery.tanks[1].renderTankInfo(this, x, y, guiLeft + 125, guiTop + 18, 16, 52); - this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 45, 54, 7, x, y, new String[] { String.format("%,d", refinery.progress) + " / " + String.format("%,d", refinery.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 54, 54, 7, x, y, new String[] { String.format("%,d", refinery.heat) + " / " + String.format("%,d", refinery.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 45, 54, 7, x, y, new String[] { String.format(Locale.US, "%,d", refinery.progress) + " / " + String.format(Locale.US, "%,d", refinery.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 54, 54, 7, x, y, new String[] { String.format(Locale.US, "%,d", refinery.heat) + " / " + String.format(Locale.US, "%,d", refinery.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java index 0345dc6a4..36606b0f4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java @@ -1,5 +1,6 @@ package com.hbm.inventory.gui; +import java.util.Arrays; import java.util.List; import org.lwjgl.opengl.GL11; @@ -14,8 +15,11 @@ import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; public class GUIMachineDiFurnaceRTG extends GuiInfoContainer { public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/gui/processing/gui_rtg_difurnace.png"); @@ -47,6 +51,23 @@ public class GUIMachineDiFurnaceRTG extends GuiInfoContainer { } this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 15, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, pelletText); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 2; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, mouseX, mouseY)) { + + String label = EnumChatFormatting.YELLOW + "Accepts items from: "; + byte dir = i == 0 ? bFurnace.sideUpper : bFurnace.sideLower; + label += ForgeDirection.getOrientation(dir); + + this.func_146283_a(Arrays.asList(new String[] { label }), mouseX, mouseY - (slot.getHasStack() ? 15 : 0)); + + return; + } + } + } } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java new file mode 100644 index 000000000..3f5760cce --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java @@ -0,0 +1,62 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineExposureChamber; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineExposureChamber extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_exposure_chamber.png"); + private TileEntityMachineExposureChamber chamber; + + public GUIMachineExposureChamber(InventoryPlayer invPlayer, TileEntityMachineExposureChamber chamber) { + super(new ContainerMachineExposureChamber(invPlayer, chamber)); + this.chamber = chamber; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 34, chamber.power, chamber.maxPower); + + drawCustomInfoStat(mouseX, mouseY, guiLeft + 26, guiTop + 36, 9, 16, mouseX, mouseY, chamber.savedParticles + " / " + chamber.maxParticles); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.chamber.hasCustomInventoryName() ? this.chamber.getInventoryName() : I18n.format(this.chamber.getInventoryName()); + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = chamber.progress * 42 / (chamber.processTime + 1); + drawTexturedModalRect(guiLeft + 36, guiTop + 39, 192, 0, p, 10); + + int c = chamber.savedParticles * 16 / chamber.maxParticles; + drawTexturedModalRect(guiLeft + 26, guiTop + 52 - c, 192, 26 - c, 9, c); + + int e = (int) (chamber.power * 34 / chamber.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 52 - e, 176, 34 - e, 16, e); + + if(chamber.consumption <= chamber.power) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 34, 9, 12); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java index 527de1e9f..a3361e662 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadGen.java @@ -36,7 +36,7 @@ public class GUIMachineRadGen extends GuiInfoContainer { this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 65, guiTop + 18 + i * 5, 46, 5, new String[] { "Slot " + (i + 1) + ":", radgen.production[i] + "HE/t for", - (radgen.maxProgress[i] - radgen.progress[i]) + " ticks. (" + ((radgen.maxProgress[i] - radgen.progress[i]) * 100 / radgen.maxProgress[i]) + "%)" + (radgen.maxProgress[i] - radgen.progress[i]) + " ticks (" + ((radgen.maxProgress[i] - radgen.progress[i]) * 100 / radgen.maxProgress[i]) + "%)" }); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java deleted file mode 100644 index 4cd9db8d5..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.hbm.inventory.gui; - -import java.util.Arrays; - -import org.lwjgl.opengl.GL11; - -import com.hbm.config.WeaponConfig; -import com.hbm.inventory.container.ContainerMachineRadar; -import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityMachineRadar; -import com.hbm.util.I18nUtil; - -import api.hbm.entity.IRadarDetectable.RadarTargetType; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineRadar extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar.png"); - private TileEntityMachineRadar diFurnace; - - public GUIMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { - super(new ContainerMachineRadar(invPlayer, tedf)); - diFurnace = tedf; - texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar.png"); - - this.xSize = 216; - this.ySize = 234; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 221, 200, 7, diFurnace.power, diFurnace.maxPower); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 98, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.detectMissiles") ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 108, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.detectPlayers")); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 118, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.smartMode")); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 128, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.redMode")); - - if(!diFurnace.nearbyMissiles.isEmpty()) { - for(int[] m : diFurnace.nearbyMissiles) { - int x = guiLeft + (int)((m[0] - diFurnace.xCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) + 108; - int z = guiTop + (int)((m[1] - diFurnace.zCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) + 117; - - if(mouseX + 4 > x && mouseX - 4 < x && - mouseY + 4 > z && mouseY - 4 < z) { - - - String[] text = new String[] { RadarTargetType.values()[m[2]].name, m[0] + " / " + m[1], "Alt.: " + m[3] }; - - this.func_146283_a(Arrays.asList(text), x, z); - - return; - } - } - } - } - - @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 98 < y && guiTop + 98 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 0)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 108 < y && guiTop + 108 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 1)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 118 < y && guiTop + 118 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 2)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 128 < y && guiTop + 128 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 3)); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = I18n.format("container.radar"); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - drawTexturedModalRect(guiLeft - 14, guiTop + 94, 216, 198, 14, 46); - - if(diFurnace.scanMissiles || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 98, 230, 202, 8, 8); - - if(diFurnace.scanPlayers || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 108, 230, 212, 8, 8); - - if(diFurnace.smartMode || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 118, 230, 222, 8, 8); - - if(diFurnace.redMode || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 128, 230, 232, 8, 8); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(200); - drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); - } - - if(diFurnace.jammed) { - - for(int i = 0; i < 5; i++) { - for(int j = 0; j < 5; j++) { - drawTexturedModalRect(guiLeft + 8 + i * 40, guiTop + 17 + j * 40, 216, 118 + diFurnace.getWorldObj().rand.nextInt(41), 40, 40); - } - } - - return; - } - - if(!diFurnace.nearbyMissiles.isEmpty()) { - for(int[] m : diFurnace.nearbyMissiles) { - int x = (int)((m[0] - diFurnace.xCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) - 4; - int z = (int)((m[1] - diFurnace.zCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) - 4; - int t = m[2]; - - drawTexturedModalRect(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); - } - } - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java new file mode 100644 index 000000000..accefedf1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -0,0 +1,265 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import api.hbm.entity.RadarEntry; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; + +public class GUIMachineRadarNT extends GuiScreen { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); + + protected TileEntityMachineRadarNT radar; + protected int xSize = 216; + protected int ySize = 234; + protected int guiLeft; + protected int guiTop; + + public int lastMouseX; + public int lastMouseY; + + public GUIMachineRadarNT(TileEntityMachineRadarNT tile) { + this.radar = tile; + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + String cmd = null; + + if(checkClick(x, y, -10, 88, 8, 8)) cmd = "missiles"; + if(checkClick(x, y, -10, 98, 8, 8)) cmd = "shells"; + if(checkClick(x, y, -10, 108, 8, 8)) cmd = "players"; + if(checkClick(x, y, -10, 118, 8, 8)) cmd = "smart"; + if(checkClick(x, y, -10, 128, 8, 8)) cmd = "red"; + if(checkClick(x, y, -10, 138, 8, 8)) cmd = "map"; + if(checkClick(x, y, -10, 158, 8, 8)) cmd = "gui1"; + if(checkClick(x, y, -10, 178, 8, 8)) cmd = "clear"; + + if(cmd != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean(cmd, true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + + this.lastMouseX = mouseX; + this.lastMouseY = mouseY; + } + + private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { + + if(checkClick(mouseX, mouseY, 8, 221, 200, 7)) this.func_146283_a(Arrays.asList(BobMathUtil.getShortNumber(radar.power) + "/" + BobMathUtil.getShortNumber(radar.maxPower) + "HE"), mouseX, mouseY); + + if(checkClick(mouseX, mouseY, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 158, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.toggleGui")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 178, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.clearMap")), mouseX, mouseY); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + + if(mouseX + 5 > x && mouseX - 4 <= x && mouseY + 5 > z && mouseY - 4 <= z) { + + String[] text = new String[] { I18nUtil.resolveKey(m.unlocalizedName), m.posX + " / " + m.posZ, "Alt.: " + m.posY }; + this.func_146283_a(Arrays.asList(text), x, z); + return; + } + } + } + + if(checkClick(mouseX, mouseY, 8, 17, 200, 200)) { + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + this.func_146283_a(Arrays.asList(tX + " / " + tZ), lastMouseX, lastMouseY); + } + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + drawTexturedModalRect(guiLeft - 14, guiTop + 84, 224, 0, 14, 66); + drawTexturedModalRect(guiLeft - 14, guiTop + 154, 224, 66, 14, 36); + + if(radar.power > 0) { + int i = (int) (radar.power * 200 / radar.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); + } + + if(radar.scanMissiles ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 88, 238, 4, 8, 8); + if(radar.scanShells ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 98, 238, 14, 8, 8); + if(radar.scanPlayers ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 108, 238, 24, 8, 8); + if(radar.smartMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 118, 238, 34, 8, 8); + if(radar.redMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 128, 238, 44, 8, 8); + if(radar.showMap ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 138, 238, 54, 8, 8); + + if(radar.power < radar.consumption) return; + + if(radar.jammed) { + for(int i = 0; i < 5; i++) { + for(int j = 0; j < 5; j++) { + drawTexturedModalRect(guiLeft + 8 + i * 40, guiTop + 17 + j * 40, 216, 118 + radar.getWorldObj().rand.nextInt(81), 40, 40); + } + } + return; + } + + if(radar.showMap) { + Tessellator tess = Tessellator.instance; + GL11.glDisable(GL11.GL_TEXTURE_2D); + tess.startDrawingQuads(); + for(int i = 0; i < 40_000; i++) { + int iX = i % 200; + int iZ = i / 200; + byte b = radar.map[i]; + if(b > 0) { + int color = ((b - 50) * 255 / 78) << 8; + tess.setColorOpaque_I(color); + tess.addVertex(guiLeft + 8 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 17 + iZ, this.zLevel); + tess.addVertex(guiLeft + 8 + iX, guiTop + 17 + iZ, this.zLevel); + } + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + Vec3 tr = Vec3.createVectorHelper(100, 0, 0); + Vec3 tl = Vec3.createVectorHelper(100, 0, 0); + Vec3 bl = Vec3.createVectorHelper(0, -5, 0); + float rot = (float) -Math.toRadians(radar.prevRotation + (radar.rotation - radar.prevRotation) * f + 180F); + tr.rotateAroundZ(rot); + tl.rotateAroundZ(rot + 0.25F); + bl.rotateAroundZ(rot); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108, guiTop + 117, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 255); tess.addVertex(guiLeft + 108 + tr.xCoord, guiTop + 117 + tr.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + tl.xCoord, guiTop + 117 + tl.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + bl.xCoord, guiTop + 117 + bl.yCoord, this.zLevel); + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_FLAT); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + double x = (m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; + double z = (m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; + int t = m.blipLevel; + drawTexturedModalRectDouble(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); + } + } + } + + public void drawTexturedModalRectDouble(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + float f = 0.00390625F; + float f1 = 0.00390625F; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x, y + sizeY, this.zLevel, (sourceX + 0) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, this.zLevel, (sourceX + sizeX) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y, this.zLevel, (sourceX + sizeX) * f, (sourceY + 0) * f1); + tessellator.addVertexWithUV(x, y, this.zLevel, (sourceX + 0) * f, (sourceY + 0) * f1); + tessellator.draw(); + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + + if(checkClick(lastMouseX, lastMouseY, 8, 17, 200, 200) && c >= '1' && c <= '8') { + + int id = c - '1'; + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + + if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) { + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchEntity", m.entityID); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + return; + } + } + } + + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchPosX", tX); + data.setInteger("launchPosZ", tZ); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void updateScreen() { + super.updateScreen(); + + if(!this.mc.thePlayer.isEntityAlive() || this.mc.thePlayer.isDead) { + this.mc.thePlayer.closeScreen(); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java new file mode 100644 index 000000000..77f1f3a60 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java @@ -0,0 +1,71 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineRadarNT; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.network.play.client.C0DPacketCloseWindow; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineRadarNTSlots extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_link.png"); + private TileEntityMachineRadarNT radar; + + public GUIMachineRadarNTSlots(InventoryPlayer invPlayer, TileEntityMachineRadarNT tedf) { + super(new ContainerMachineRadarNT(invPlayer, tedf)); + radar = tedf; + + this.xSize = 176; + this.ySize = 184; + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(checkClick(x, y, 5, 5, 8, 8)) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + this.mc.thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(this.mc.thePlayer.openContainer.windowId)); // closes the server-side GUI component without resetting the client's cursor position + FMLNetworkHandler.openGui(this.mc.thePlayer, MainRegistry.instance, 0, radar.getWorldObj(), radar.xCoord, radar.yCoord, radar.zCoord); + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + if(checkClick(mouseX, mouseY, 5, 5, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.toggleGui")), mouseX, mouseY); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.radar.hasCustomInventoryName() ? this.radar.getInventoryName() : I18n.format(this.radar.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(radar.power > 0) { + int i = (int) (radar.power * 160 / radar.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 64, 0, 185, i, 16); + } + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java index 20ea31ba8..9c34f199d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java @@ -10,7 +10,6 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; @@ -45,7 +44,7 @@ public class GUIMachineSelenium extends GuiInfoContainer { long energy = selenium.getHEFromFuel(type); if(energy > 0) - text.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName()) + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); + text.add(" " + type.getLocalizedName() + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); } text.add(EnumChatFormatting.ITALIC + "(These numbers are base values,"); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index 724797310..4646f4e88 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -137,7 +137,7 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { fuels.add(I18nUtil.resolveKey("desc.gui.turbinegas.fuels")); for(FluidType type : Fluids.getInNiceOrder()) { if(type.hasTrait(FT_Combustible.class) && type.getTrait(FT_Combustible.class).getGrade() == FuelGrade.GAS) { - fuels.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName())); + fuels.add(" " + type.getLocalizedName()); } } this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 34 + 16, 16, 16, guiLeft - 8, guiTop + 44 + 16, fuels); @@ -225,10 +225,6 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { int firstDigitX = 66; int firstDigitY = 62; - int width = 5; - int height = 11; - int spaceBetweenBumbers = 3; - int[] digit = new int[6]; for(int i = 5; i >= 0; i--) { //creates an array of digits that represent the numbers diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java new file mode 100644 index 000000000..977f11d20 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java @@ -0,0 +1,115 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineWoodBurner; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineWoodBurner extends GuiInfoContainer { + + private TileEntityMachineWoodBurner burner; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_wood_burner_alt.png"); + + public GUIMachineWoodBurner(InventoryPlayer invPlayer, TileEntityMachineWoodBurner tedf) { + super(new ContainerMachineWoodBurner(invPlayer, tedf)); + burner = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 18, 16, 34, burner.power, burner.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(0); + if(this.isMouseOverSlot(slot, mouseX, mouseY) && !slot.getHasStack()) { + List bonuses = burner.burnModule.getDesc(); + if(!bonuses.isEmpty()) { + this.func_146283_a(bonuses, mouseX, mouseY); + } + } + } + + if(burner.liquidBurn) burner.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 18, 16, 52); + + if(!burner.liquidBurn && guiLeft + 16 <= mouseX && guiLeft + 16 + 8 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 54 >= mouseY) { + func_146283_a(Arrays.asList(new String[] { (burner.burnTime / 20) + "s" }), mouseX, mouseY); + } + + if(guiLeft + 53 <= mouseX && guiLeft + 53 + 16 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 15 >= mouseY) { + func_146283_a(Arrays.asList(new String[] { burner.isOn ? EnumChatFormatting.GREEN + "ON" : EnumChatFormatting.RED + "OFF" }), mouseX, mouseY); + } + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 53 <= x && guiLeft + 53 + 16 > x && guiTop + 17 < y && guiTop + 17 + 15 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, burner.xCoord, burner.yCoord, burner.zCoord)); + } + + if(guiLeft + 46 <= x && guiLeft + 46 + 30 > x && guiTop + 37 < y && guiTop + 37 + 14 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("switch", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, burner.xCoord, burner.yCoord, burner.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.burner.hasCustomInventoryName() ? this.burner.getInventoryName() : I18n.format(this.burner.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(burner.liquidBurn) { + drawTexturedModalRect(guiLeft + 16, guiTop + 17, 176, 52, 60, 54); + drawTexturedModalRect(guiLeft + 79, guiTop + 17, 176, 106, 36, 54); + } + + if(burner.isOn) { + drawTexturedModalRect(guiLeft + 53, guiTop + 17, 196, 0, 16, 15); + } + + int p = (int) (burner.power * 34 / burner.maxPower); + drawTexturedModalRect(guiLeft + 143, guiTop + 52 - p, 176, 52 - p, 16, p); + + if(burner.maxBurnTime > 0 && !burner.liquidBurn) { + int b = (int) (burner.burnTime * 52 / burner.maxBurnTime); + drawTexturedModalRect(guiLeft + 17, guiTop + 70 - b, 192, 52 - b, 4, b); + } + + if(burner.liquidBurn) burner.tank.renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java index 8ada24c3c..dfa413f97 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -35,7 +37,7 @@ public class GUIMassStorage extends GuiInfoContainer { String percent = (((int) (storage.getStockpile() * 1000D / (double) storage.getCapacity())) / 10D) + "%"; this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 16, 18, 90, mouseX, mouseY, new String[] - { String.format("%,d", storage.getStockpile()) + " / " + String.format("%,d", storage.getCapacity()), percent }); + { String.format(Locale.US, "%,d", storage.getStockpile()) + " / " + String.format(Locale.US, "%,d", storage.getCapacity()), percent }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 62, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Click: Provide one", "Shift-click: Provide stack" }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 80, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Toggle output" }); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index 15dd31b72..79f6461d6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -12,7 +12,6 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineMixer; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -47,8 +46,8 @@ public class GUIMixer extends GuiInfoContainer { List label = new ArrayList(); label.add(EnumChatFormatting.YELLOW + "Current recipe (" + (mixer.recipeIndex + 1) + "/" + recipes.length + "):"); MixerRecipe recipe = recipes[mixer.recipeIndex % recipes.length]; - if(recipe.input1 != null) label.add("-" + I18nUtil.resolveKey(recipe.input1.type.getUnlocalizedName())); - if(recipe.input2 != null) label.add("-" + I18nUtil.resolveKey(recipe.input2.type.getUnlocalizedName())); + if(recipe.input1 != null) label.add("-" + recipe.input1.type.getLocalizedName()); + if(recipe.input2 != null) label.add("-" + recipe.input2.type.getLocalizedName()); if(recipe.solidInput != null) label.add("-" + recipe.solidInput.extractForCyclingDisplay(20).getDisplayName()); label.add(EnumChatFormatting.RED + "Click to change!"); this.drawCustomInfoStat(x, y, guiLeft + 62, guiTop + 22, 12, 12, x, y, label); diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java b/src/main/java/com/hbm/inventory/gui/GUINukeN45.java deleted file mode 100644 index 055cc2a30..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUINukeN45.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerNukeN45; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.bomb.TileEntityNukeN45; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUINukeN45 extends GuiInfoContainer { - - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_n45.png"); - private TileEntityNukeN45 diFurnace; - - public GUINukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { - super(new ContainerNukeN45(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 168; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - String[] text = new String[] { "The first slot holds the payload.", - "Acceptable payloads:", - " -Det Cord", - " -TNT", - " -Explosive Charge", - " -Nuclear Charge", - "Using detonator while in mine mode will", - "arm the mine, set to explode when", - "it detects a large entity nearby."}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "The second slot is for green machine", - "upgrades. Entity detection range increases", - "by 5 blocks for every level.", - "When left empty, the mine can not be armed", - "an will behave like a regular bomb." }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.primed) - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 121, guiTop + 22, 6, 8, mouseX, mouseY, new String[]{ "Mine armed!" } ); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.primed) { - drawTexturedModalRect(guiLeft + 121, guiTop + 22, 176, 0, 6, 8); - } - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java index 35112f2b6..8d040b03f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerOilburner; @@ -33,10 +35,10 @@ public class GUIOilburner extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format("%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format("%,d", diFurnace.maxHeatEnergy) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format(Locale.US, "%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format(Locale.US, "%,d", diFurnace.maxHeatEnergy) + " TU" }); if(diFurnace.tank.getTankType().hasTrait(FT_Flammable.class)) { - this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { diFurnace.setting + " mB/t", String.format("%,d", (int)(diFurnace.tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() / 1000) * diFurnace.setting) + " TU/t" }); + this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { diFurnace.setting + " mB/t", String.format(Locale.US, "%,d", (int)(diFurnace.tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() / 1000) * diFurnace.setting) + " TU/t" }); } diFurnace.tank.renderTankInfo(this, x, y, guiLeft + 44, guiTop + 17, 16, 52); diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index d8549a9e4..338f4be99 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.apache.commons.lang3.math.NumberUtils; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -59,8 +61,8 @@ public class GUIPWR extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format("%,d", controller.coreHeat) + " / " + String.format("%,d", controller.coreHeatCapacity) + " TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format("%,d", controller.hullHeat) + " / " + String.format("%,d", controller.hullHeatCapacity) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format(Locale.US, "%,d", controller.coreHeat) + " / " + String.format(Locale.US, "%,d", controller.coreHeatCapacity) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format(Locale.US, "%,d", controller.hullHeat) + " / " + String.format(Locale.US, "%,d", controller.hullHeatCapacity) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { ((int) (controller.progress * 100 / controller.processTime)) + "%" }); this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 53, 54, 4, x, y, "Control rod level: " + (100 - controller.rodLevel) + "%"); @@ -96,7 +98,7 @@ public class GUIPWR extends GuiInfoContainer { this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); double scale = 1.25; - String flux = String.format("%,.1f", controller.flux); + String flux = String.format(Locale.US, "%,.1f", controller.flux); GL11.glScaled(1 / scale, 1 / scale, 1); this.fontRendererObj.drawString(flux, (int) (165 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(64 * scale), 0x00ff00); GL11.glScaled(scale, scale, 1); diff --git a/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java b/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java new file mode 100644 index 000000000..4c3400388 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java @@ -0,0 +1,48 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerPlasticBag; +import com.hbm.items.tool.ItemPlasticBag.InventoryPlasticBag; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIPlasticBag extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_plastic_bag.png"); + private ItemStack firstHeld; + + public GUIPlasticBag(InventoryPlayer invPlayer, InventoryPlasticBag box) { + super(new ContainerPlasticBag(invPlayer, box)); + + this.xSize = 176; + this.ySize = 216; + } + + @Override + public void drawScreen(int x, int y, float interp) { + if(firstHeld == null) { + firstHeld = this.mc.thePlayer.getHeldItem(); + } + + super.drawScreen(x, y, interp); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 1f8d20881..b07d3a19c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -22,6 +22,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -102,11 +103,12 @@ public class GUIRBMKConsole extends GuiScreen { } } - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select red group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 17, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select yellow group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select green group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 39, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select blue group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 50, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select purple group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.RED + "Left click: Select red group", EnumChatFormatting.RED + "Right click: Assign red group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 17, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.YELLOW + "Left click: Select yellow group", EnumChatFormatting.YELLOW + "Right click: Assign yellow group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.GREEN + "Left click: Select green group", EnumChatFormatting.GREEN + "Right click: Assign green group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 39, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.BLUE + "Left click: Select blue group", EnumChatFormatting.BLUE + "Right click: Assign blue group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 50, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.LIGHT_PURPLE + "Left click: Select purple group", EnumChatFormatting.LIGHT_PURPLE + "Right click: Assign purple group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 70, guiTop + 82, 12, 12, mouseX, mouseY, new String[]{ "Cycle steam channel compressor setting" } ); } public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, String[] text) { @@ -116,9 +118,12 @@ public class GUIRBMKConsole extends GuiScreen { } @Override - protected void mouseClicked(int mouseX, int mouseY, int i) { - super.mouseClicked(mouseX, mouseY, i); - this.field.mouseClicked(mouseX, mouseY, i); + protected void mouseClicked(int mouseX, int mouseY, int key) { + super.mouseClicked(mouseX, mouseY, key); + this.field.mouseClicked(mouseX, mouseY, key); + + int LEFT_CLICK = 0; + int RIGTH_CLICK = 1; int bX = 86; int bY = 11; @@ -158,19 +163,54 @@ public class GUIRBMKConsole extends GuiScreen { return; } + //compressor + if(guiLeft + 70 <= mouseX && guiLeft + 70 + 12 > mouseX && guiTop + 82 < mouseY && guiTop + 82 + 12 >= mouseY) { + NBTTagCompound control = new NBTTagCompound(); + control.setBoolean("compressor", true); + List ints = new ArrayList(); + for(int j = 0; j < console.columns.length; j++) { + if(console.columns[j] != null && console.columns[j].type == ColumnType.BOILER && this.selection[j]) { + ints.add(j); + } + } + int[] cols = new int[ints.size()]; + for(int i = 0; i < cols.length; i++) cols[i] = ints.get(i); + control.setIntArray("cols", cols); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, console.xCoord, console.yCoord, console.zCoord)); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F)); + } + //select color groups for(int k = 0; k < 5; k++) { if(guiLeft + 6 + k * 11 <= mouseX && guiLeft + 6 + k * 11 + 10 > mouseX && guiTop + 70 < mouseY && guiTop + 70 + 10 >= mouseY) { - this.selection = new boolean[15 * 15]; - for(int j = 0; j < console.columns.length; j++) { + if(key == LEFT_CLICK) { + this.selection = new boolean[15 * 15]; - if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && console.columns[j].data.getShort("color") == k) { - this.selection[j] = true; + for(int j = 0; j < console.columns.length; j++) { + + if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && console.columns[j].data.getShort("color") == k) { + this.selection[j] = true; + } } } + if(key == RIGTH_CLICK) { + NBTTagCompound control = new NBTTagCompound(); + control.setByte("assignColor", (byte) k); + List ints = new ArrayList(); + for(int j = 0; j < console.columns.length; j++) { + if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && this.selection[j]) { + ints.add(j); + } + } + int[] cols = new int[ints.size()]; + for(int i = 0; i < cols.length; i++) cols[i] = ints.get(i); + control.setIntArray("cols", cols); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, console.xCoord, console.yCoord, console.zCoord)); + } + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.8F + k * 0.1F)); return; } @@ -358,6 +398,41 @@ public class GUIRBMKConsole extends GuiScreen { drawTexturedModalRect(guiLeft + x, guiTop + y, 0, 192, 10, 10); } + int highest = Integer.MIN_VALUE; + int lowest = Integer.MAX_VALUE; + + for(int i : console.fluxBuffer) { + if(i > highest) highest = i; + if(i < lowest) lowest = i; + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glLineWidth(2F); + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + tess.setColorOpaque_I(0x00ff00); + int range = highest - lowest; + for(int i = 0; i < console.fluxBuffer.length - 1; i++) { + for(int j = 0; j < 2; j++) { + int k = i + j; + int flux = console.fluxBuffer[k]; + double x = guiLeft + 7 + k * 74D / console.fluxBuffer.length; + double y = guiTop + 127 - (flux - lowest) * 24D / Math.max(range, 1); + tess.addVertex(x, y, this.zLevel + 10); + } + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glPushMatrix(); + double scale = 0.5D; + GL11.glScaled(scale, scale, 1); + this.fontRendererObj.drawString(highest + "", (int) ((guiLeft + 8) / scale), (int) ((guiTop + 98) / scale), 0x00ff00); + this.fontRendererObj.drawString(highest + "", (int) ((guiLeft + 80 - this.fontRendererObj.getStringWidth(highest + "") * scale) / scale), (int) ((guiTop + 98) / scale), 0x00ff00); + this.fontRendererObj.drawString(lowest + "", (int) ((guiLeft + 8) / scale), (int) ((guiTop + 133 - this.fontRendererObj.FONT_HEIGHT * scale) / scale), 0x00ff00); + this.fontRendererObj.drawString(lowest + "", (int) ((guiLeft + 80 - this.fontRendererObj.getStringWidth(lowest + "") * scale) / scale), (int) ((guiTop + 133 - this.fontRendererObj.FONT_HEIGHT * scale) / scale), 0x00ff00); + GL11.glPopMatrix(); + this.field.drawTextBox(); } diff --git a/src/main/java/com/hbm/inventory/gui/GUISILEX.java b/src/main/java/com/hbm/inventory/gui/GUISILEX.java index 8de55b89a..722b59878 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISILEX.java +++ b/src/main/java/com/hbm/inventory/gui/GUISILEX.java @@ -6,6 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.SILEXRecipes; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; @@ -18,6 +20,7 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class GUISILEX extends GuiInfoContainer { @@ -85,7 +88,7 @@ public class GUISILEX extends GuiInfoContainer { if(silex.tank.getFill() > 0) { - if(silex.tank.getTankType() == Fluids.ACID || silex.fluidConversion.containsKey(silex.tank.getTankType())) { + if(silex.tank.getTankType() == Fluids.ACID || silex.fluidConversion.containsKey(silex.tank.getTankType()) || SILEXRecipes.getOutput(new ItemStack(ModItems.fluid_icon, 1, silex.tank.getTankType().getID())) != null) { drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 118, 54, 9); } else { drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 109, 54, 9); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index 7a35749db..8d0105f14 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -14,7 +14,6 @@ import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTItemControlPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -111,7 +110,7 @@ public class GUIScreenFluid extends GuiScreen { return; if(guiLeft + 7 + k * 18 <= i && guiLeft + 7 + k * 18 + 18 > i && guiTop + 29 < j && guiTop + 29 + 18 >= j) - func_146283_a(Arrays.asList(new String[] { I18nUtil.resolveKey(this.searchArray[k].getUnlocalizedName()) }), i, j); + func_146283_a(Arrays.asList(new String[] { this.searchArray[k].getLocalizedName() }), i, j); } } @@ -170,7 +169,7 @@ public class GUIScreenFluid extends GuiScreen { String subs = this.search.getText().toLowerCase(Locale.US); for(FluidType type : Fluids.getInNiceOrder()) { - String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase(Locale.US); + String name = type.getLocalizedName().toLowerCase(); if(name.contains(subs) && !type.hasNoID()) { this.searchArray[next] = type; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java index fb9f41afc..fc90751df 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java @@ -85,7 +85,6 @@ public class GUIScreenRadioTorch extends GuiScreen { GL11.glEnable(GL11.GL_LIGHTING); } - private void drawGuiContainerForegroundLayer(int x, int y) { String name = I18nUtil.resolveKey(this.title); this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 4d09369be..a563eb732 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -24,7 +24,6 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.ItemFolderPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -101,8 +100,11 @@ public class GUIScreenTemplateFolder extends GuiScreen { for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { if(AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)) != null && - AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)).contains(player.getHeldItem().getItem())) - allStacks.add(new ItemStack(ModItems.assembly_template, 1, i)); + AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)).contains(player.getHeldItem().getItem())) { + + ComparableStack comp = AssemblerRecipes.recipeList.get(i); + allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); + } } isJournal = true; @@ -143,7 +145,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(stack.getItem() == ModItems.fluid_identifier) { FluidType fluid = Fluids.fromID(stack.getItemDamage()); - if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase(Locale.US).contains(sub)) { + if(fluid.getLocalizedName().contains(sub)) { stacks.add(stack); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatz.java b/src/main/java/com/hbm/inventory/gui/GUIWatz.java index 5153b1032..c22046d29 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIWatz.java +++ b/src/main/java/com/hbm/inventory/gui/GUIWatz.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerWatz; @@ -35,7 +37,7 @@ public class GUIWatz extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 13, guiTop + 100, 18, 18, x, y, new String[] { String.format("%,d", watz.heat) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 13, guiTop + 100, 18, 18, x, y, new String[] { String.format(Locale.US, "%,d", watz.heat) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 143, guiTop + 71, 16, 16, x, y, new String[] { watz.isLocked ? "Unlock pellet IO configuration" : "Lock pellet IO configuration" }); watz.tanks[0].renderTankInfo(this, x, y, guiLeft + 142, guiTop + 23, 6, 45); @@ -48,7 +50,7 @@ public class GUIWatz extends GuiInfoContainer { this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752); double scale = 1.25; - String flux = String.format("%,.1f", watz.fluxDisplay); + String flux = String.format(Locale.US, "%,.1f", watz.fluxDisplay); GL11.glScaled(1 / scale, 1 / scale, 1); this.fontRendererObj.drawString(flux, (int) (161 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(107 * scale), 0x00ff00); GL11.glScaled(scale, scale, 1); diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index e5b244fc5..51bc6d957 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -1,5 +1,6 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; @@ -7,8 +8,11 @@ import java.util.List; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -18,6 +22,7 @@ import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; public abstract class GuiInfoContainer extends GuiContainer { @@ -45,6 +50,33 @@ public abstract class GuiInfoContainer extends GuiContainer { this.func_146283_a(Arrays.asList(text), x, y); } + /** Automatically grabs upgrade info out of the tile entity if it's a IUpgradeInfoProvider and crams the available info into a list for display. Automation, yeah! */ + public List getUpgradeInfo(TileEntity tile) { + List lines = new ArrayList(); + + if(tile instanceof IUpgradeInfoProvider) { + IUpgradeInfoProvider provider = (IUpgradeInfoProvider) tile; + + lines.add(I18nUtil.resolveKey("upgrade.gui.title")); + + for(UpgradeType type : UpgradeType.values()) { + if(provider.canProvideInfo(type, 0, false)) { + int maxLevel = provider.getMaxLevel(type); + switch(type) { + case SPEED: lines.add(I18nUtil.resolveKey("upgrade.gui.speed", maxLevel)); break; + case POWER: lines.add(I18nUtil.resolveKey("upgrade.gui.power", maxLevel)); break; + case EFFECT: lines.add(I18nUtil.resolveKey("upgrade.gui.effectiveness", maxLevel)); break; + case AFTERBURN: lines.add(I18nUtil.resolveKey("upgrade.gui.afterburner", maxLevel)); break; + case OVERDRIVE: lines.add(I18nUtil.resolveKey("upgrade.gui.overdrive", maxLevel)); break; + default: break; + } + } + } + } + + return lines; + } + @Deprecated public void drawCustomInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height, String[] text) { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) @@ -75,6 +107,10 @@ public abstract class GuiInfoContainer extends GuiContainer { return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); } + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + /* Getters for external use of the GUI's rect rendering, such as NumberDisplay */ public int getGuiTop() { return this.guiTop; diff --git a/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java new file mode 100644 index 000000000..316c6e9fb --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java @@ -0,0 +1,321 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; +import java.util.Random; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityRadioTelex; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatAllowedCharacters; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class GuiScreenRadioTelex extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_telex.png"); + protected TileEntityRadioTelex telex; + protected int xSize = 256; + protected int ySize = 244; + protected int guiLeft; + protected int guiTop; + protected GuiTextField txFrequency; + protected GuiTextField rxFrequency; + protected boolean textFocus = false; + + protected String[] txBuffer; + protected int cursorPos = 0; + + public GuiScreenRadioTelex(TileEntityRadioTelex tile) { + this.telex = tile; + this.txBuffer = new String[tile.txBuffer.length]; + + for(int i = 0; i < txBuffer.length; i++) { + this.txBuffer[i] = tile.txBuffer[i]; + } + + for(int i = 4; i > 0; i--) { + if(!txBuffer[i].isEmpty()) { + cursorPos = i; + break; + } + } + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + + Keyboard.enableRepeatEvents(true); + + this.txFrequency = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 110, 90, 14); + this.txFrequency.setTextColor(0x00ff00); + this.txFrequency.setDisabledTextColour(0x00ff00); + this.txFrequency.setEnableBackgroundDrawing(false); + this.txFrequency.setMaxStringLength(10); + this.txFrequency.setText(telex.txChannel == null ? "" : telex.txChannel); + + this.rxFrequency = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 224, 90, 14); + this.rxFrequency.setTextColor(0x00ff00); + this.rxFrequency.setDisabledTextColour(0x00ff00); + this.rxFrequency.setEnableBackgroundDrawing(false); + this.rxFrequency.setMaxStringLength(10); + this.rxFrequency.setText(telex.rxChannel == null ? "" : telex.rxChannel); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + + if(checkClick(x, y, 7, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "BELL", "Plays a bell when this character is received"}), x, y); + if(checkClick(x, y, 27, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "PRINT", "Forces recipient to print message after transmission ends"}), x, y); + if(checkClick(x, y, 47, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "CLEAR SCREEN", "Wipes message buffer when this character is received"}), x, y); + if(checkClick(x, y, 67, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "FORMAT", "Inserts format character for message formatting"}), x, y); + if(checkClick(x, y, 87, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "PAUSE", "Pauses message transmission for one second"}), x, y); + + if(checkClick(x, y, 127, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GREEN + "SAVE ID"}), x, y); + if(checkClick(x, y, 147, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.YELLOW + "SEND MESSAGE"}), x, y); + if(checkClick(x, y, 167, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.RED + "DELETE MESSAGE BUFFER"}), x, y); + + if(checkClick(x, y, 127, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GREEN + "SAVE ID"}), x, y); + if(checkClick(x, y, 147, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.AQUA + "PRINT MESSAGE"}), x, y); + if(checkClick(x, y, 167, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.RED + "CLEAR SCREEN"}), x, y); + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + this.txFrequency.drawTextBox(); + this.rxFrequency.drawTextBox(); + + for(int line = 0; line < 5; line++) { + String text = txBuffer[line]; + int y = 11 + 14 * line; + + String format = EnumChatFormatting.RESET + ""; + + for(int index = 0; index < text.length(); index++) { + int x = 11 + 7 * index; + char c = text.charAt(index); + x += (7 - this.fontRendererObj.getCharWidth(c)) / 2; + if(c == '§' && text.length() > index + 1) { + format = "\u00a7" + text.charAt(index + 1); + x -= 3; + } + String glyph = format + c; + if(c == '\u0007') glyph = EnumChatFormatting.RED + "B"; + if(c == '\u000c') glyph = EnumChatFormatting.RED + "P"; + if(c == '\u007f') glyph = EnumChatFormatting.RED + "<"; + if(c == '\u0016') glyph = EnumChatFormatting.RED + "W"; + this.fontRendererObj.drawString(glyph, guiLeft + x, guiTop + y, 0x00ff00); + } + + if(System.currentTimeMillis() % 1000 < 500 && this.textFocus) { + int x = Math.max(11 + 7 * (text.length() - 1) + 7, 11); + if(this.cursorPos == line) { + this.fontRendererObj.drawString("|", guiLeft + x, guiTop + y, 0x00ff00); + } + } + } + + for(int line = 0; line < 5; line++) { + String text = telex.rxBuffer[line]; + int y = 145 + 14 * line; + + String format = EnumChatFormatting.RESET + ""; + + int x = 11; + + for(int index = 0; index < text.length(); index++) { + + char c = text.charAt(index); + x += (7 - this.fontRendererObj.getCharWidth(c)) / 2; + if(c == '§' && text.length() > index + 1) { + format = "\u00a7" + text.charAt(index + 1); + c = ' '; + } else if(c == '§') { + c = ' '; + } else if(index > 0 && text.charAt(index - 1) == '§') { + c = ' '; + x -= 14; + } + String glyph = format + c; + this.fontRendererObj.drawString(glyph, guiLeft + x, guiTop + y, 0x00ff00); + x += 7; + } + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glLineWidth(3F); + Random rand = new Random(telex.sendingChar); + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + tess.setColorOpaque_I(0x00ff00); + double offset = 0; + for(int i = 0; i < 48; i++) { + tess.addVertex(guiLeft + 199 + i, guiTop + 93.5 + offset, this.zLevel + 10); + if(telex.sendingChar != ' ' && i > 4 && i < 43) offset = rand.nextGaussian() * 7; else offset = 0; + offset = MathHelper.clamp_double(offset, -7D, 7D); + tess.addVertex(guiLeft + 199 + i + 1, guiTop + 93.5 + offset, this.zLevel + 10); + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + this.txFrequency.mouseClicked(x, y, i); + this.rxFrequency.mouseClicked(x, y, i); + + if(guiLeft + 7 <= x && guiLeft + 7 + 242 > x && guiTop + 7 < y && guiTop + 7 + 74 >= y) { + this.textFocus = true; + } else { + this.textFocus = false; + } + + char character = '\0'; + String cmd = null; + + /* special characters */ + // BEL + if(checkClick(x, y, 7, 85, 18, 18)) character = '\u0007'; // bell + // PRT + if(checkClick(x, y, 27, 85, 18, 18)) character = '\u000c'; // form feed + // CLS + if(checkClick(x, y, 47, 85, 18, 18)) character = '\u007f'; // delete + // FMT + if(checkClick(x, y, 67, 85, 18, 18)) character = '§'; // minecraft formatting character + // PSE + if(checkClick(x, y, 87, 85, 18, 18)) character = '\u0016'; // synchronous idle + + // SVE + if(checkClick(x, y, 127, 105, 18, 18) || checkClick(x, y, 127, 219, 18, 18)) cmd = "sve"; // save channel + // SND + if(checkClick(x, y, 147, 105, 18, 18)) cmd = "snd"; // send message in TX buffer + // DEL + if(checkClick(x, y, 167, 105, 18, 18)) { // delete message in TX buffer + cmd = "rxdel"; + for(int j = 0; j < 5; j++) this.txBuffer[j] = ""; + NBTTagCompound data = new NBTTagCompound(); + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + // PRT + if(checkClick(x, y, 147, 219, 18, 18)) cmd = "rxprt"; // print message in RX buffer + // CLS + if(checkClick(x, y, 167, 219, 18, 18)) cmd = "rxcls"; // delete message in RX buffer + + if(cmd != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setString("cmd", cmd); + + if("snd".equals(cmd)) { + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + } + + if("sve".equals(cmd)) { + data.setString("txChan", this.txFrequency.getText()); + data.setString("rxChan", this.rxFrequency.getText()); + } + + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + + if(character != '\0') { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + setTextFocus(); + submitChar(character); + } + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + + protected void setTextFocus() { + this.textFocus = true; + this.txFrequency.setFocused(false); + this.rxFrequency.setFocused(false); + } + + @Override + protected void keyTyped(char c, int i) { + + if(this.txFrequency.textboxKeyTyped(c, i)) return; + if(this.rxFrequency.textboxKeyTyped(c, i)) return; + + if(this.textFocus) { + + if(i == 1) { + this.textFocus = false; + return; + } + + if(i == Keyboard.KEY_UP) this.cursorPos--; + if(i == Keyboard.KEY_DOWN) this.cursorPos++; + + this.cursorPos = MathHelper.clamp_int(cursorPos, 0, 4); + + if(ChatAllowedCharacters.isAllowedCharacter(c)) { + submitChar(c); + return; + } + + if(i == Keyboard.KEY_BACK && this.txBuffer[cursorPos].length() > 0) { + this.txBuffer[cursorPos] = this.txBuffer[cursorPos].substring(0, this.txBuffer[cursorPos].length() - 1); + } + } + + if(i == 1 || i == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + this.mc.setIngameFocus(); + } + } + + protected void submitChar(char c) { + String line = this.txBuffer[cursorPos]; + + if(line.length() < TileEntityRadioTelex.lineWidth) { + this.txBuffer[cursorPos] = line + c; + } + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + NBTTagCompound data = new NBTTagCompound(); + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 5c04519b5..dd55dc119 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -45,22 +45,30 @@ public class MatDistribution extends SerializableRecipe { registerEntry(Items.minecart, MAT_IRON, INGOT.q(5)); //castables - registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2)); - registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2)); - registerEntry(ModItems.blades_steel, MAT_STEEL, INGOT.q(4)); - registerEntry(ModItems.blades_titanium, MAT_TITANIUM, INGOT.q(4)); - registerEntry(ModItems.blades_advanced_alloy, MAT_ALLOY, INGOT.q(4)); - registerEntry(ModItems.stamp_stone_flat, MAT_STONE, INGOT.q(3)); - registerEntry(ModItems.stamp_iron_flat, MAT_IRON, INGOT.q(3)); - registerEntry(ModItems.stamp_steel_flat, MAT_STEEL, INGOT.q(3)); - registerEntry(ModItems.stamp_titanium_flat, MAT_TITANIUM, INGOT.q(3)); - registerEntry(ModItems.stamp_obsidian_flat, MAT_OBSIDIAN, INGOT.q(3)); - registerEntry(ModItems.hull_small_steel, MAT_STEEL, INGOT.q(2)); - registerEntry(ModItems.hull_small_aluminium, MAT_ALUMINIUM, INGOT.q(2)); - registerEntry(ModItems.hull_big_steel, MAT_STEEL, INGOT.q(6)); - registerEntry(ModItems.hull_big_aluminium, MAT_ALUMINIUM, INGOT.q(6)); - registerEntry(ModItems.hull_big_titanium, MAT_TITANIUM, INGOT.q(6)); - registerEntry(ModItems.pipes_steel, MAT_STEEL, BLOCK.q(3)); + registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2)); + registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2)); + registerEntry(ModItems.blades_steel, MAT_STEEL, INGOT.q(4)); + registerEntry(ModItems.blades_titanium, MAT_TITANIUM, INGOT.q(4)); + registerEntry(ModItems.blades_advanced_alloy, MAT_ALLOY, INGOT.q(4)); + registerEntry(ModItems.stamp_stone_flat, MAT_STONE, INGOT.q(3)); + registerEntry(ModItems.stamp_iron_flat, MAT_IRON, INGOT.q(3)); + registerEntry(ModItems.stamp_steel_flat, MAT_STEEL, INGOT.q(3)); + registerEntry(ModItems.stamp_titanium_flat, MAT_TITANIUM, INGOT.q(3)); + registerEntry(ModItems.stamp_obsidian_flat, MAT_OBSIDIAN, INGOT.q(3)); + registerEntry(ModItems.hull_small_steel, MAT_STEEL, INGOT.q(2)); + registerEntry(ModItems.hull_small_aluminium, MAT_ALUMINIUM, INGOT.q(2)); + registerEntry(ModItems.hull_big_steel, MAT_STEEL, INGOT.q(6)); + registerEntry(ModItems.hull_big_aluminium, MAT_ALUMINIUM, INGOT.q(6)); + registerEntry(ModItems.hull_big_titanium, MAT_TITANIUM, INGOT.q(6)); + registerEntry(ModItems.pipes_steel, MAT_STEEL, BLOCK.q(3)); + registerEntry(ModItems.wire_aluminium, MAT_ALUMINIUM, WIRE.q(1)); + registerEntry(ModItems.wire_copper, MAT_COPPER, WIRE.q(1)); + registerEntry(ModItems.wire_red_copper, MAT_MINGRADE, WIRE.q(1)); + registerEntry(ModItems.wire_tungsten, MAT_TUNGSTEN, WIRE.q(1)); + registerEntry(ModItems.wire_gold, MAT_GOLD, WIRE.q(1)); + registerEntry(ModItems.wire_advanced_alloy, MAT_ALLOY, WIRE.q(1)); + registerEntry(ModItems.wire_magnetized_tungsten, MAT_MAGTUNG, WIRE.q(1)); + registerEntry(ModItems.wire_schrabidium, MAT_SCHRABIDIUM, WIRE.q(1)); //actual ores if(!Compat.isModLoaded(Compat.MOD_GT6)) { @@ -80,8 +88,8 @@ public class MatDistribution extends SerializableRecipe { registerOre(OreDictManager.CO.ore(), MAT_COBALT, INGOT.q(1), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.REDSTONE.ore(), MAT_REDSTONE, INGOT.q(4), MAT_STONE, QUART.q(1)); - registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(4)); - registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(4)); + registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(1)); + registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(1)); registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index a93ef368a..ebb34cfcb 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -13,15 +13,19 @@ public class MaterialShapes { public static final MaterialShapes NUGGET = new MaterialShapes(8, "nugget"); public static final MaterialShapes DUSTTINY = new MaterialShapes(NUGGET.quantity, "dustTiny"); public static final MaterialShapes WIRE = new MaterialShapes(9); + public static final MaterialShapes BOLT = new MaterialShapes(9, "bolt"); public static final MaterialShapes BILLET = new MaterialShapes(NUGGET.quantity * 6, "billet"); public static final MaterialShapes INGOT = new MaterialShapes(NUGGET.quantity * 9, "ingot"); public static final MaterialShapes GEM = new MaterialShapes(INGOT.quantity, "gem"); public static final MaterialShapes CRYSTAL = new MaterialShapes(INGOT.quantity, "crystal"); public static final MaterialShapes DUST = new MaterialShapes(INGOT.quantity, "dust"); + public static final MaterialShapes DENSEWIRE = new MaterialShapes(INGOT.quantity, "wireDense"); public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate"); public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); + public static final MaterialShapes WELDEDPLATE = new MaterialShapes(INGOT.quantity * 6, "plateSextuple"); public static final MaterialShapes QUART = new MaterialShapes(162); public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block"); + public static final MaterialShapes HEAVY_COMPONENT = new MaterialShapes(CASTPLATE.quantity * 256, "componentHeavy"); public static void registerCompatShapes() { diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index b4adf18aa..969e6eb4e 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -54,8 +54,8 @@ public class Mats { public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(CASTPLATE); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE, WELDEDPLATE); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(DENSEWIRE, CASTPLATE); public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000); public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D); public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D); @@ -87,43 +87,45 @@ public class Mats { public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST); - public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_SCHRARANIUM = makeSmeltable(12601, SRN, 0x2B3227, 0x2B3227, 0x24AFAC).setShapes(INGOT, BLOCK); public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK); public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST); - public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); - public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE); - public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE); - public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); + public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); + public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); + public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK); + public static final NTMMaterial MAT_DNT = makeSmeltable(_AS + 15, DNT, 0x7582B9, 0x16000E, 0x455289).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST); public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK); public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT); diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java new file mode 100644 index 000000000..e7078796f --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -0,0 +1,248 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.item.ItemStack; + +public class ArcWelderRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + //Parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 200L, + new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L, + new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + + //Dense Wires + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), 100, 10_000L, + new ComparableStack(ModItems.wire_advanced_alloy, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), 100, 10_000L, + new ComparableStack(ModItems.wire_gold, 8))); + + //Circuits + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 100), + new ComparableStack(ModItems.circuit_aluminium, 1), new OreDictStack(NETHERQUARTZ.dust()), new ComparableStack(ModItems.wire_copper, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_red_copper), 100, 2_500L, new FluidStack(Fluids.PETROLEUM, 100), + new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.wire_red_copper, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_gold), 100, 10_000L, new FluidStack(Fluids.UNSATURATEDS, 250), + new ComparableStack(ModItems.circuit_red_copper, 1), new OreDictStack(ANY_PLASTIC.ingot()), new ComparableStack(ModItems.wire_gold, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_schrabidium), 100, 50_000L, new FluidStack(Fluids.SOURGAS, 250), + new ComparableStack(ModItems.circuit_gold, 1), new OreDictStack(DESH.ingot()), new ComparableStack(ModItems.wire_schrabidium, 8))); + + //earlygame welded parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_IRON.id), 100, 100L, + new OreDictStack(IRON.plateCast(), 2))); + //high-demand mid-game parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_STEEL.id), 100, 500L, + new OreDictStack(STEEL.plateCast(), 2))); + //literally just the combination oven + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_COPPER.id), 200, 1_000L, + new OreDictStack(CU.plateCast(), 2))); + //mid-game, single combustion engine running on LPG + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TITANIUM.id), 600, 50_000L, + new OreDictStack(TI.plateCast(), 2))); + //mid-game PWR + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_ZIRCONIUM.id), 600, 10_000L, + new OreDictStack(ZR.plateCast(), 2))); + //late-game fusion + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TCALLOY.id), 1_200, 1_000_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(TCALLOY.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_CDALLOY.id), 1_200, 1_000_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(CDALLOY.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TUNGSTEN.id), 1_200, 250_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(W.plateCast(), 2))); + //pre-DFC + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000), + new OreDictStack(OSMIRIDIUM.plateCast(), 2))); + + //Missile Parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_small), 60, 1_000L, new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(CU.plate(), 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_medium), 100, 2_000L, new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 1), new OreDictStack(GRAPHITE.ingot(), 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_large), 200, 5_000L, new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.motor, 2), new OreDictStack(OreDictManager.getReflector(), 16))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(Fluids.ETHANOL.getDict(1_000), 6), new OreDictStack(AL.plate(), 6), new OreDictStack(STEEL.plate(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_medium), 100, 2_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 8), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plateCast(), 3))); + + //Missiles + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary), 100, 5_000L, new ComparableStack(ModItems.warhead_incendiary_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster), 100, 5_000L, new ComparableStack(ModItems.warhead_cluster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster), 100, 5_000L, new ComparableStack(ModItems.warhead_buster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_decoy), 60, 2_500L, new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_generic_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_incendiary_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_cluster_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_buster_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_emp_strong), 200, 10_000L, new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_burst), 300, 25_000L, new ComparableStack(ModItems.warhead_generic_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_inferno), 300, 25_000L, new ComparableStack(ModItems.warhead_incendiary_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_rain), 300, 25_000L, new ComparableStack(ModItems.warhead_cluster_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_drill), 300, 25_000L, new ComparableStack(ModItems.warhead_buster_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_endo), 200, 10_000L, new ComparableStack(ModItems.warhead_thermo_endo), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_exo), 200, 10_000L, new ComparableStack(ModItems.warhead_thermo_exo), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(ArcWelderRecipe recipe : ArcWelderRecipes.recipes) { + + int size = recipe.ingredients.length + (recipe.fluid != null ? 1 : 0); + Object[] array = new Object[size]; + + for(int i = 0; i < recipe.ingredients.length; i++) { + array[i] = recipe.ingredients[i]; + } + + if(recipe.fluid != null) array[size - 1] = ItemFluidIcon.make(recipe.fluid); + + recipes.put(array, recipe.output); + } + + return recipes; + } + + public static ArcWelderRecipe getRecipe(ItemStack... inputs) { + + outer: + for(ArcWelderRecipe recipe : recipes) { + + List recipeList = new ArrayList(); + for(AStack ingredient : recipe.ingredients) recipeList.add(ingredient); + + for(int i = 0; i < inputs.length; i++) { + + ItemStack inputStack = inputs[i]; + + if(inputStack != null) { + + boolean hasMatch = false; + Iterator iterator = recipeList.iterator(); + + while(iterator.hasNext()) { + AStack recipeStack = iterator.next(); + + if(recipeStack.matchesRecipe(inputStack, true) && inputStack.stackSize >= recipeStack.stacksize) { + hasMatch = true; + recipeList.remove(recipeStack); + break; + } + } + + if(!hasMatch) { + continue outer; + } + } + } + + if(recipeList.isEmpty()) return recipe; + } + + return null; + } + + @Override + public String getFileName() { + return "hbmArcWelder.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray()); + FluidStack fluid = obj.has("fluid") ? this.readFluidStack(obj.get("fluid").getAsJsonArray()) : null; + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + int duration = obj.get("duration").getAsInt(); + long consumption = obj.get("consumption").getAsLong(); + + recipes.add(new ArcWelderRecipe(output, duration, consumption, fluid, inputs)); + } + + @Override + public void writeRecipe(Object obj, JsonWriter writer) throws IOException { + ArcWelderRecipe recipe = (ArcWelderRecipe) obj; + + writer.name("inputs").beginArray(); + for(AStack aStack : recipe.ingredients) { + this.writeAStack(aStack, writer); + } + writer.endArray(); + + if(recipe.fluid != null) { + writer.name("fluid"); + this.writeFluidStack(recipe.fluid, writer); + } + + writer.name("output"); + this.writeItemStack(recipe.output, writer); + + writer.name("duration").value(recipe.duration); + writer.name("consumption").value(recipe.consumption); + } + + public static class ArcWelderRecipe { + + public AStack[] ingredients; + public FluidStack fluid; + public ItemStack output; + public int duration; + public long consumption; + + public ArcWelderRecipe(ItemStack output, int duration, long consumption, FluidStack fluid, AStack... ingredients) { + this.ingredients = ingredients; + this.fluid = fluid; + this.output = output; + this.duration = duration; + this.consumption = consumption; + } + + public ArcWelderRecipe(ItemStack output, int duration, long consumption, AStack... ingredients) { + this(output, duration, consumption, null, ingredients); + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 0b2af8d85..a8c0b40ae 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -12,7 +12,11 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import com.hbm.items.ItemAmmoEnums; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; @@ -141,6 +145,8 @@ public class AssemblerRecipes { */ private static void registerDefaults() { + boolean exp = GeneralConfig.enableExpensiveMode; + makeRecipe(new ComparableStack(ModItems.plate_iron, 2), new AStack[] {new OreDictStack(IRON.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_gold, 2), new AStack[] {new OreDictStack(GOLD.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_titanium, 2), new AStack[] {new OreDictStack(TI.ingot(), 3), },30); @@ -163,20 +169,20 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.wire_magnetized_tungsten, 6), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), },20); makeRecipe(new ComparableStack(ModItems.hazmat_cloth, 4), new AStack[] {new OreDictStack(PB.dust(), 4), new ComparableStack(Items.string, 8), },50); makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); - makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); + makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 2), new ComparableStack(Items.paper, 1), },50); makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 4), new OreDictStack(TI.plate528(), 4), new ComparableStack(ModItems.motor, 1), }, 100); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); - makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(TI.plate(), 6), },100); + makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.plate_polymer, 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); - makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(Blocks.tnt, 2), },100); - makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), },150); - makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), },200); + makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); + makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100); + makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150); + makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4) },200); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new OreDictStack(P_RED.dust(), 4), },100); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new OreDictStack(P_RED.dust(), 8), },150); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new OreDictStack(P_RED.dust(), 16), },200); @@ -186,17 +192,12 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_buster_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModBlocks.det_cord, 8), },100); makeRecipe(new ComparableStack(ModItems.warhead_buster_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModBlocks.det_charge, 4), },150); makeRecipe(new ComparableStack(ModItems.warhead_buster_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModBlocks.det_charge, 8), },200); - makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), },300); - makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), },500); + makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.circuit_targeting_tier4, 1) },300); + makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3) },500); makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); - makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 6, Fluids.ETHANOL.getID()), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); - makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 8, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4), },150); - makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 12, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8), },200); - makeRecipe(new ComparableStack(ModItems.thruster_small, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(W.ingot(), 4), new ComparableStack(ModItems.wire_aluminium, 4), },100); - makeRecipe(new ComparableStack(ModItems.thruster_medium, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(W.ingot(), 8), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.wire_copper, 16), },150); - makeRecipe(new ComparableStack(ModItems.thruster_large, 1), new AStack[] {new OreDictStack(DURA.ingot(), 16), new OreDictStack(W.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.circuit_red_copper, 1), },200); + makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); + makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); + makeRecipe(new ComparableStack(ModItems.missile_stealth, 1), new AStack[] { new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(CU.plate(), 10), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_gold), new OreDictStack(STEEL.bolt(), 32) },1200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); @@ -221,7 +222,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50); makeRecipe(new ComparableStack(ModItems.australium_iii, 1), new AStack[] {new ComparableStack(ModItems.nugget_australium, 6), new OreDictStack(STEEL.ingot(), 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_copper, 6), },150); - makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 1), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.wire_tungsten, 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); + makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new ComparableStack(ModItems.wire_tungsten, 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); makeRecipe(new ComparableStack(ModItems.pellet_schrabidium, 1), new AStack[] {new OreDictStack(SA326.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.pellet_hes, 1), new AStack[] {new ComparableStack(ModItems.ingot_hes, 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.pellet_mes, 1), new AStack[] {new ComparableStack(ModItems.ingot_schrabidium_fuel, 5), new OreDictStack(IRON.plate(), 2), }, 200); @@ -243,9 +244,9 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.upgrade_fortune_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DIAMOND.dust(), 4), new OreDictStack(IRON.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_2, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(POLYMER.dust(), 4), new OreDictStack(W.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(ANY_PLASTIC.dust(), 4), new OreDictStack(W.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_radius, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DIAMOND.dust(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_health, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(TI.dust(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(DESH.ingot(), 8), new ComparableStack(ModItems.powder_power, 16), new ComparableStack(ModItems.crystal_lithium, 4), new ComparableStack(ModItems.circuit_schrabidium, 1), }, 200); @@ -253,11 +254,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new OreDictStack(KEY_CIRCUIT_BISMUTH), }, 500); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); makeRecipe(new ComparableStack(ModItems.titanium_filter, 1), new AStack[] {new OreDictStack(PB.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(U238.ingot(), 2), },200); - makeRecipe(new ComparableStack(ModItems.part_lithium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(LI.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_beryllium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(BE.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); + makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_carbon, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(COAL.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_copper, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(CU.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_plutonium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 60); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); @@ -268,38 +269,37 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.coil_copper, 4), }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); - makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {new OreDictStack(STEEL.plate(), 24), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(Fluids.LUBRICANT.getDict(1000)), },160); + makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); + makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); - makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate528(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 1) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 2), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); + makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 4), new AStack[] {new OreDictStack(W.plateWelded(), 2), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.magnetron, 2) }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); - makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateCast()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100); + makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); @@ -320,24 +320,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); - makeRecipe(new ComparableStack(ModItems.missile_generic, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_incendiary, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_buster, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_incendiary_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_cluster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_buster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_emp_strong, 1), new AStack[] {new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_burst, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_drill, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_nuclear, 1), new AStack[] {new ComparableStack(ModItems.warhead_nuclear, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); - makeRecipe(new ComparableStack(ModItems.missile_nuclear_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_mirv, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[] {new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(REDSTONE.dust(), 7), new ComparableStack(ModItems.powder_power, 3), },200); @@ -379,7 +361,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); @@ -428,14 +410,14 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60); makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 32), new ComparableStack(ModItems.hull_big_steel, 18), new OreDictStack(FIBER.ingot(), 64), },600); - makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.plate_polymer, 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600); + makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), - new OreDictStack(STEEL.block(), 32), + !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 64), new OreDictStack(DURA.block(), 16), new OreDictStack(STAR.block(), 64), new ComparableStack(ModBlocks.machine_transformer_dnt, 8), @@ -443,11 +425,11 @@ public class AssemblerRecipes { new ComparableStack(ModItems.powder_magic, 64), new ComparableStack(ModItems.plate_dineutronium, 24), new ComparableStack(ModItems.ingot_u238m2), - new OreDictStack(FIBER.ingot(), 128) + new ComparableStack(ModItems.ingot_cft, 128) }, 1200); makeRecipe(new ComparableStack(ModBlocks.struct_iter_core, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 6), - new OreDictStack(W.ingot(), 6), + !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 6) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 2), + !exp ? new OreDictStack(W.plateWelded(), 6) : new OreDictStack(W.heavyComp(), 1), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new OreDictStack(ANY_PLASTIC.ingot(), 8), @@ -460,7 +442,7 @@ public class AssemblerRecipes { new OreDictStack(CU.ingot(), 8), new ComparableStack(ModItems.generator_steel, 1), new ComparableStack(ModItems.tank_steel, 2), - new ComparableStack(ModItems.bolt_tungsten, 8), + new OreDictStack(W.bolt(), 16), new ComparableStack(ModItems.wire_red_copper, 24), new ComparableStack(ModItems.circuit_copper, 1) }, 300); @@ -468,13 +450,13 @@ public class AssemblerRecipes { new OreDictStack(STEEL.plate(), 16), new OreDictStack(CU.plate(), 4), new OreDictStack(W.ingot(), 8), - new ComparableStack(ModItems.bolt_tungsten, 16) + new OreDictStack(W.bolt(), 16) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DURA.ordinal()), new AStack[] { new OreDictStack(DURA.ingot(), 24), new OreDictStack(TI.plate(), 8), new OreDictStack(W.ingot(), 8), - new ComparableStack(ModItems.bolt_dura_steel, 16) + new OreDictStack(DURA.bolt(), 16) }, 200); makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DESH.ordinal()), new AStack[] { new OreDictStack(DESH.ingot(), 24), @@ -550,7 +532,7 @@ public class AssemblerRecipes { }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { - new OreDictStack(STEEL.plate528(), 12), + !exp ? new OreDictStack(STEEL.plate528(), 12) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.generator_steel, 1), @@ -560,8 +542,8 @@ public class AssemblerRecipes { }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_chungus, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 6), - new OreDictStack(STEEL.plate528(), 32), - new OreDictStack(TI.plate528(), 12), + !exp ? new OreDictStack(STEEL.plateWelded(), 16) : new OreDictStack(STEEL.heavyComp(), 3), + !exp ? new OreDictStack(TI.plate528(), 12) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), @@ -570,6 +552,15 @@ public class AssemblerRecipes { new ComparableStack(ModItems.bolt_compound, 16), new ComparableStack(ModItems.pipes_steel, 3) }, 600); + + makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] { + !exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 3), + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 3), + new ComparableStack(ModItems.motor_desh, 3), + new ComparableStack(ModItems.pipes_steel, 4), + new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) + }, 600); makeRecipe(new ComparableStack(ModItems.pellet_chlorophyte, 2), new AStack[] { new ComparableStack(ModItems.powder_chlorophyte, 1), @@ -591,7 +582,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.hadron_coil_neodymium, 8), new ComparableStack(ModItems.wire_advanced_alloy, 96), - new OreDictStack(STEEL.ingot(), 16), + !exp ? new OreDictStack(STEEL.ingot(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new OreDictStack(STEEL.plate528(), 32), new OreDictStack(AL.plate528(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), @@ -602,7 +593,7 @@ public class AssemblerRecipes { }, 600); makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { - new ComparableStack(ModItems.hull_big_steel, 4), + !exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModBlocks.steel_scaffold, 4), new OreDictStack(ANY_CONCRETE.any(), 16), new ComparableStack(ModBlocks.deco_pipe_quad, 8), @@ -681,9 +672,9 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 32), new OreDictStack(PB.plate(), 16), new OreDictStack(ALLOY.plate(), 4), - new ComparableStack(ModItems.plate_polymer, 4), - new ComparableStack(ModItems.bolt_tungsten, 8), - new ComparableStack(ModItems.bolt_dura_steel, 8), + new OreDictStack(ANY_RUBBER.ingot(), 4), + new OreDictStack(W.bolt(), 16), + new OreDictStack(DURA.bolt(), 16), new ComparableStack(ModItems.motor, 3), }, 200); @@ -692,9 +683,9 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 8), new OreDictStack(PB.plate(), 6), new OreDictStack(ALLOY.plate(), 3), - new ComparableStack(ModItems.plate_polymer, 3), - new ComparableStack(ModItems.bolt_tungsten, 3), - new ComparableStack(ModItems.bolt_dura_steel, 3), + new OreDictStack(ANY_RUBBER.ingot(), 3), + new OreDictStack(W.bolt(), 4), + new OreDictStack(DURA.bolt(), 4), new ComparableStack(ModItems.motor, 1), }, 300); @@ -702,7 +693,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ALLOY.plate(), 4), - new ComparableStack(ModItems.bolt_tungsten, 4), + new OreDictStack(W.bolt(), 8), new ComparableStack(ModItems.motor, 2), }, 200); @@ -892,7 +883,7 @@ public class AssemblerRecipes { new ComparableStack(Blocks.glass, 12), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.ingot(), 4), - new OreDictStack(STEEL.plate528(), 8), + !exp ? new OreDictStack(STEEL.plate528(), 8) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.pipes_steel, 1), @@ -902,7 +893,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.fusion_conductor, 16), new ComparableStack(ModBlocks.machine_lithium_battery, 2), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(STEEL.plate528(), 24), + !exp ? new OreDictStack(STEEL.plate528(), 24) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 64), @@ -912,7 +903,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { new ComparableStack(ModBlocks.concrete_asbestos, 4), - new OreDictStack(STEEL.plate528(), 4), + !exp ? new OreDictStack(STEEL.plate528(), 4) : new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(CU.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 4) }, 100); @@ -926,19 +917,19 @@ public class AssemblerRecipes { }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 48), + !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(B.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(KEY_ANYPANE, 64), new ComparableStack(ModItems.motor, 18), - new ComparableStack(ModItems.bolt_tungsten, 12), + new OreDictStack(W.bolt(), 16), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.circuit_gold, 3) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 48), + !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), @@ -972,8 +963,8 @@ public class AssemblerRecipes { }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_vacuum_distill, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 16), - new OreDictStack(CU.plate528(), 16), + !exp ? new OreDictStack(STEEL.plateCast(), 16) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.pipes_steel, 1), @@ -981,8 +972,8 @@ public class AssemblerRecipes { new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 12), - new OreDictStack(CU.plate528(), 8), + !exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plate528(), 8) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.hull_big_steel, 3), @@ -1000,14 +991,25 @@ public class AssemblerRecipes { }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_electrolyser, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 8), - new OreDictStack(CU.plate528(), 16), + !exp ? new OreDictStack(STEEL.plateCast(), 8) : new OreDictStack(STEEL.heavyComp(), 2), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 1), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.ingot_firebrick, 16), new ComparableStack(ModItems.tank_steel, 3), new ComparableStack(ModItems.coil_copper, 16), new ComparableStack(ModItems.circuit_gold, 2) }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] { + !exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), + new OreDictStack(ALLOY.wireDense(), 32), + new ComparableStack(ModItems.motor_desh, 2), + new ComparableStack(ModItems.circuit_gold, 3), + new ComparableStack(ModBlocks.capacitor_tantalium, 1), + new ComparableStack(ModBlocks.glass_quartz, 16) + }, 200); makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { @@ -1028,7 +1030,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.block_cap_star, 1), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); if(!GeneralConfig.enable528) { - makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); + makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); @@ -1074,7 +1076,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 32), - new ComparableStack(ModItems.plate_polymer, 16), + new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_tantalium, 20), new ComparableStack(ModItems.crt_display, 8), @@ -1083,7 +1085,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.rbmk_crane_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 8), - new ComparableStack(ModItems.plate_polymer, 4), + new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.circuit_tantalium, 10), }, 300); @@ -1133,7 +1135,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.concrete_smooth, 64), new ComparableStack(ModItems.drill_titanium), new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.plate_desh, 6), + !exp ? new ComparableStack(ModItems.plate_desh, 6) : new OreDictStack(DESH.heavyComp()), new OreDictStack(NB.ingot(), 8), new ComparableStack(ModItems.tank_steel, 24), new ComparableStack(ModItems.pipes_steel, 2) @@ -1141,7 +1143,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] { new ComparableStack(ModBlocks.steel_scaffold, 16), - new ComparableStack(ModItems.hull_big_steel, 4), + !exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp()), new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), @@ -1155,8 +1157,7 @@ public class AssemblerRecipes { new OreDictStack(ANY_TAR.any(), 8), new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.coil_tungsten, 8), - new ComparableStack(ModItems.tank_steel, 2), - new ComparableStack(ModItems.inf_water_mk2, 2) + new ComparableStack(ModItems.tank_steel, 2) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] { @@ -1171,7 +1172,7 @@ public class AssemblerRecipes { }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] { - new OreDictStack(STEEL.ingot(), 12), + !exp ? new OreDictStack(STEEL.ingot(), 12) : new OreDictStack(STEEL.heavyComp()), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(DURA.ingot(), 10), new OreDictStack(RUBBER.ingot(), 4), @@ -1186,10 +1187,10 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.cmb_brick_reinforced, 16), new OreDictStack(STEEL.plate(), 64), new OreDictStack(ALLOY.plate(), 40), - new ComparableStack(ModItems.plate_polymer, 36), + new OreDictStack(ANY_RUBBER.ingot(), 36), new OreDictStack(STEEL.block(), 24), new ComparableStack(ModItems.motor_desh, 16), - new ComparableStack(ModItems.bolt_dura_steel, 12), + new OreDictStack(DURA.bolt(), 16), new OreDictStack(KEY_YELLOW, 4) }, 1200); @@ -1197,10 +1198,17 @@ public class AssemblerRecipes { new OreDictStack(STEEL.plate(), 16), new OreDictStack(W.ingot(), 8), new ComparableStack(ModBlocks.reinforced_glass, 4), - new ComparableStack(ModItems.plate_polymer, 4), - new ComparableStack(ModItems.bolt_dura_steel, 8), + new OreDictStack(ANY_RUBBER.ingot(), 4), + new OreDictStack(DURA.bolt(), 16), new ComparableStack(ModItems.motor, 2) }, 200); + makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 36), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 4), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeRed", 1)}, 500); + makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plate(), 24), new OreDictStack("plateAdvancedAlloy", 8), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack("blockSteel", 2), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); + makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 32), new OreDictStack("plateAdvancedAlloy", 12), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 6), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 48), new OreDictStack("plateAdvancedAlloy", 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 1000); + makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 500); if(Loader.isModLoaded("Mekanism")) { @@ -1210,21 +1218,26 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] { new OreDictStack(DURA.ingot(), 16), - new OreDictStack(DESH.ingot(), 8), - new OreDictStack(STEEL.plate(), 48), - new OreDictStack(CU.plate(), 24), + new OreDictStack(DESH.ingot(), 16), + new OreDictStack(STEEL.plateWelded(), 32), + new OreDictStack(CU.plateWelded(), 24), new ComparableStack(ModItems.pipes_steel, 8), - new ComparableStack(ModItems.circuit_gold, 8), - new ComparableStack(ModItems.wire_advanced_alloy, 24), + new OreDictStack(KEY_CIRCUIT_BISMUTH, 4), + new ComparableStack(ModItems.wire_dense, 32, Mats.MAT_ALLOY.id), new ComparableStack(ModBlocks.fusion_conductor, 12), - new ComparableStack(ModBlocks.machine_lithium_battery, 3), - new ComparableStack(ModItems.crystal_redstone, 12), + new ComparableStack(ModBlocks.capacitor_tantalium, 53), + new ComparableStack(ModItems.crystal_redstone, 16), new ComparableStack(ModItems.crystal_diamond, 8), - new ComparableStack(ModItems.motor_desh, 16) + new ComparableStack(ModItems.motor_bismuth, 4) }, 15 * 60 * 20); } } + for(NTMMaterial mat : Mats.orderedList) { + if(mat.shapes.contains(MaterialShapes.CASTPLATE) && mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) { + makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000); + } + } /// HIDDEN /// hidden.put(new ComparableStack(ModBlocks.machine_radgen, 1), new HashSet() {{ add(ModItems.journal_pip); }}); diff --git a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java index 3dd2f4914..af7032305 100644 --- a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java @@ -63,7 +63,7 @@ public class BlastFurnaceRecipes extends SerializableRecipe { addRecipe(CO, ModBlocks.block_meteor, new ItemStack(ModItems.ingot_meteorite)); addRecipe(ModItems.meteorite_sword_hardened, CO, new ItemStack(ModItems.meteorite_sword_alloyed)); addRecipe(ModBlocks.block_meteor, CO, new ItemStack(ModItems.ingot_meteorite)); - + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) { addRecipe(ModItems.canister_empty, COAL, new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID())); } diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index ae66e0670..5b933fdd3 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -256,13 +256,13 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_euphemium, 1), new ItemStack(ModItems.nuclear_waste_tiny, 6) }); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_AM_MIX)), new ItemStack[] { - new ItemStack(ModItems.nugget_am_mix, 4), - new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_am_mix, 9), + new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_bismuth, 6), new ItemStack(ModItems.nuclear_waste_tiny, 1) }); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_PU241)), new ItemStack[] { - new ItemStack(ModItems.nugget_pu241, 4), - new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_pu241, 9), + new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_bismuth, 6), new ItemStack(ModItems.nuclear_waste_tiny, 1) }); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f3639536b..b581d0ee8 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -121,8 +121,8 @@ public class ChemplantRecipes extends SerializableRecipe { new FluidStack(Fluids.XYLENE, 250), new FluidStack(Fluids.PHOSGENE, 250)) .inputItems( - new ComparableStack(com.hbm.blocks.ModBlocks.reinforced_glass), - new ComparableStack(com.hbm.items.ModItems.bolt_tungsten, 4)) + new ComparableStack(ModBlocks.reinforced_glass), + new OreDictStack(STEEL.bolt(), 4)) .outputItems(new ItemStack(com.hbm.blocks.ModBlocks.reinforced_laminate))); recipes.add(new ChemRecipe(94, "PC", 100) .inputFluids( @@ -401,6 +401,7 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); + recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) .inputItems(new OreDictStack(TH232.nugget(), 2)) @@ -408,6 +409,14 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems( new ItemStack(ModItems.nugget_u233, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1))); + + recipes.add(new ChemRecipe(103, "MEAT_PROCESSING", 200) + .inputItems(new OreDictStack(KEY_GLYPHID_MEAT, 3)) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 1000)) + .outputItems(new ItemStack(ModItems.sulfur, 4), + new ItemStack(ModItems.niter, 3)) + .outputFluids(new FluidStack(Fluids.SALIENT, 250))); + } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 3696d82d4..d6f9cf30d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -56,7 +56,7 @@ public class CokerRecipes extends SerializableRecipe { registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null); - registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); + registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 1), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 517229247..2b70c1359 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -26,6 +26,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.Tuple.Pair; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -60,6 +61,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WOOD)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), null)); recipes.put(new ComparableStack(Items.reeds), new Pair(new ItemStack(Items.sugar, 2), new FluidStack(Fluids.ETHANOL, 50))); + recipes.put(new ComparableStack(Blocks.clay), new Pair(new ItemStack(Blocks.brick_block, 1), null)); } public static Pair getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index c1cc077d9..9b5ef555d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -25,6 +25,8 @@ public class CompressorRecipes extends SerializableRecipe { recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(2_000, new FluidStack(Fluids.PETROLEUM, 2_000, 1), 20)); recipes.put(new Pair(Fluids.PETROLEUM, 1), new CompressorRecipe(2_000, new FluidStack(Fluids.LPG, 1_000, 0), 20)); + + recipes.put(new Pair(Fluids.BLOOD, 3), new CompressorRecipe(1_000, new FluidStack(Fluids.OIL, 500, 0), 100)); } public static class CompressorRecipe { diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 69c7652e1..8f33e422e 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -19,6 +19,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; @@ -95,6 +96,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), 20), new FluidStack(Fluids.SULFURIC_ACID, 250)); registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), 20), new FluidStack(Fluids.SULFURIC_ACID, 1_000)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE)), new CrystallizerRecipe(new ItemStack(ModItems.ingot_cft), baseTime).setReq(4), new FluidStack(Fluids.XYLENE, 1_000)); registerRecipe(DIAMOND.dust(), new CrystallizerRecipe(Items.diamond, utilityTime)); registerRecipe(EMERALD.dust(), new CrystallizerRecipe(Items.emerald, utilityTime)); diff --git a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java new file mode 100644 index 000000000..5cee1cb84 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java @@ -0,0 +1,110 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import static com.hbm.inventory.OreDictManager.*; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; + +public class ExposureChamberRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U.ingot()), new ItemStack(ModItems.ingot_schraranium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U238.ingot()), new ItemStack(ModItems.ingot_schrabidium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_dark), new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_euphemium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_sparkticle), new OreDictStack(SBD.ingot()), new ItemStack(ModItems.ingot_dineutronium))); + } + + public static ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack input) { + for(ExposureChamberRecipe recipe : recipes) if(recipe.particle.matchesRecipe(particle, true) && recipe.ingredient.matchesRecipe(input, true)) return recipe; + return null; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(ExposureChamberRecipe recipe : ExposureChamberRecipes.recipes) { + + Object[] array = new Object[2]; + + array[1] = recipe.particle; + AStack stack = recipe.ingredient.copy(); + stack.stacksize = 8; + array[0] = stack; + ItemStack output = recipe.output.copy(); + output.stackSize = 8; + + recipes.put(array, output); + } + + return recipes; + } + + @Override + public String getFileName() { + return "hbmExposureChamber.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + JsonObject obj = (JsonObject) recipe; + + AStack particle = this.readAStack(obj.get("particle").getAsJsonArray()); + AStack ingredient = this.readAStack(obj.get("ingredient").getAsJsonArray()); + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + + ExposureChamberRecipe rec = new ExposureChamberRecipe(particle, ingredient, output); + recipes.add(rec); + } + + @Override + public void writeRecipe(Object o, JsonWriter writer) throws IOException { + ExposureChamberRecipe recipe = (ExposureChamberRecipe) o; + + writer.name("particle"); + this.writeAStack(recipe.particle, writer); + writer.name("ingredient"); + this.writeAStack(recipe.ingredient, writer); + writer.name("output"); + this.writeItemStack(recipe.output, writer); + } + + public static class ExposureChamberRecipe { + + public AStack particle; + public AStack ingredient; + public ItemStack output; + + public ExposureChamberRecipe(AStack particle, AStack ingredient, ItemStack output) { + this.particle = particle; + this.ingredient = ingredient; + this.output = output; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index 7b7743f2c..c352c085d 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -7,6 +7,7 @@ import java.util.Map; import java.util.Map.Entry; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; @@ -16,63 +17,47 @@ import net.minecraft.item.ItemStack; public class GasCentrifugeRecipes { - public static enum PseudoFluidType { - NONE (0, 0, null, false, (ItemStack[])null), + public static class PseudoFluidType { - HEUF6 (300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), - MEUF6 (200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), - LEUF6 (300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), - NUF6 (400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), + public static HashMap types = new HashMap(); - PF6 (300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), + public static PseudoFluidType NONE = new PseudoFluidType("NONE", 0, 0, null, false, (ItemStack[])null); - MUD_HEAVY (500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)), - MUD (1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + public static PseudoFluidType HEUF6 = new PseudoFluidType("HEUF6", 300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType MEUF6 = new PseudoFluidType("MEUF6", 200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)); + public static PseudoFluidType LEUF6 = new PseudoFluidType("LEUF6", 300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType NUF6 = new PseudoFluidType("NUF6", 400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)); - //TODO for bob: consider more fluid types - //Schraranium Trisulfide for more schrab-containing, pre-SILEX processing using the crystals? - //Gaseous Nuclear Waste: because why not? Large inputs could output Xe-135 and maybe some other fun stuff... - // + public static PseudoFluidType PF6 = new PseudoFluidType("PF6", 300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType MUD_HEAVY = new PseudoFluidType("MUD_HEAVY", 500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)); + public static PseudoFluidType MUD = new PseudoFluidType("MUD", 1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + + public String name; int fluidConsumed; int fluidProduced; PseudoFluidType outputFluid; boolean isHighSpeed; ItemStack[] output; - PseudoFluidType(int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { + PseudoFluidType(String name, int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { + this.name = name; this.fluidConsumed = fluidConsumed; this.fluidProduced = fluidProduced; this.outputFluid = outputFluid; this.isHighSpeed = isHighSpeed; this.output = output; + types.put(name, this); } - public int getFluidConsumed() { - return this.fluidConsumed; - } + public int getFluidConsumed() { return this.fluidConsumed; } + public int getFluidProduced() { return this.fluidProduced; } + public PseudoFluidType getOutputType() { return this.outputFluid; } + public ItemStack[] getOutput() { return this.output; } + public boolean getIfHighSpeed() { return this.isHighSpeed; } + public String getName() { return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.name.toLowerCase(Locale.US))); } - public int getFluidProduced() { - return this.fluidProduced; - } - - public PseudoFluidType getOutputType() { - return this.outputFluid; - } - - public String getName() { - return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase(Locale.US))); - } - - public boolean getIfHighSpeed() { - return this.isHighSpeed; - } - - public ItemStack[] getOutput() { - return this.output; - } - - }; + } /* Recipe NEI Handler */ //Fluid input; ItemStack[] outputs, isHighSpeed, # of centrifuges @@ -102,14 +87,17 @@ public class GasCentrifugeRecipes { return recipes; } + public static HashMap fluidConversions = new HashMap(); + public static void register() { - gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); - gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); - gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); - gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] - {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); + + fluidConversions.put(Fluids.UF6, PseudoFluidType.NUF6); + fluidConversions.put(Fluids.PUF6, PseudoFluidType.PF6); + fluidConversions.put(Fluids.WATZ, PseudoFluidType.MUD); + + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); + gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); + gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); } } diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index ee093f541..3af3808a7 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -59,6 +59,7 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS)); + recipes.put(new ComparableStack(ModItems.glyphid_gland_empty), new FluidStack(2000, Fluids.BIOGAS)); recipes.put(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), new FluidStack(100, Fluids.FISHOIL)); recipes.put(new ComparableStack(Blocks.double_plant, 1, 0), new FluidStack(100, Fluids.SUNFLOWEROIL)); diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index 39fc4c54b..21e8ca942 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static com.hbm.inventory.OreDictManager.*; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -41,7 +42,7 @@ public class MagicRecipes { public static void register() { recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_u238m2, 1, 1), new ComparableStack(ModItems.ingot_u238m2, 1, 2), new ComparableStack(ModItems.ingot_u238m2, 1, 3))); recipes.add(new MagicRecipe(new ItemStack(ModItems.rod_of_discord), new ComparableStack(Items.ender_pearl), new ComparableStack(Items.blaze_rod), new ComparableStack(ModItems.nugget_euphemium))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack("ingotSteel"), new ComparableStack(ModItems.egg_balefire_shard))); + recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.egg_balefire_shard))); recipes.add(new MagicRecipe(new ItemStack(ModItems.mysteryshovel), new ComparableStack(Items.iron_shovel), new ComparableStack(Items.bone), new ComparableStack(ModItems.ingot_starmetal), new ComparableStack(ModItems.ducttape))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_electronium), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.ingot_dineutronium), new ComparableStack(ModItems.ingot_dineutronium))); @@ -83,16 +84,22 @@ public class MagicRecipes { new ComparableStack(ModBlocks.hadron_coil_chlorophyte), new ComparableStack(ModItems.powder_dineutronium), new ComparableStack(ModItems.plate_desh), - new OreDictStack("dustGold"))); + new OreDictStack(GOLD.dust()))); + + recipes.add(new MagicRecipe(new ItemStack(ModBlocks.hadron_coil_mese), + new ComparableStack(ModBlocks.hadron_coil_chlorophyte), + new OreDictStack(DNT.wireDense()), + new OreDictStack(W.wireDense()), + new OreDictStack(GOLD.wireDense()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_darter), - new OreDictStack("plateSteel"), - new OreDictStack("plateSteel"), + new OreDictStack(STEEL.plate()), + new OreDictStack(STEEL.plate()), new ComparableStack(ModItems.ingot_polymer), - new OreDictStack("plateGold"))); + new OreDictStack(GOLD.plate()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), - new ComparableStack(ModItems.plate_polymer), + new OreDictStack(ANY_RUBBER.ingot()), new ComparableStack(ModItems.nugget_pu239), new ComparableStack(ModItems.circuit_aluminium))); } @@ -109,7 +116,6 @@ public class MagicRecipes { public MagicRecipe(ItemStack out, AStack... in) { this.out = out; this.in = Arrays.asList(in); - //Collections.sort(this.in); } public boolean matches(List comps) { diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index dece889df..fe7b40217 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -20,6 +20,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.init.Blocks; @@ -47,6 +48,7 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); register(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); register(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); + register(Fluids.FULLERENE, new MixerRecipe(250, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)))); register(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); @@ -81,6 +83,8 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux))); + register(Fluids.PHEROMONE_M, new MixerRecipe(2000, 10).setStack1(new FluidStack(Fluids.PHEROMONE, 1500)).setStack2(new FluidStack(Fluids.BLOOD, 500)).setSolid(new ComparableStack(ModItems.pill_herbal))); + } public static void register(FluidType type, MixerRecipe... rec) { diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 76775b3b9..aa3449238 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -15,6 +15,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumBriquetteType; +import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.Ammo556mm; import com.hbm.items.ItemAmmoEnums.AmmoLunaticSniper; @@ -23,6 +24,7 @@ import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.util.Tuple.Pair; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -39,7 +41,7 @@ public class PressRecipes extends SerializableRecipe { if(!(stamp.getItem() instanceof ItemStamp)) return null; - StampType type = ((ItemStamp) stamp.getItem()).type; + StampType type = ((ItemStamp) stamp.getItem()).getStampType(stamp.getItem(), stamp.getItemDamage()); for(Entry, ItemStack> recipe : recipes.entrySet()) { @@ -61,6 +63,7 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.FLAT, new ComparableStack(ModItems.biomass), ModItems.biomass_compressed); makeRecipe(StampType.FLAT, new OreDictStack(ANY_COKE.gem()), ModItems.ingot_graphite); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), ModItems.meteorite_sword_hardened); + makeRecipe(StampType.FLAT, new ComparableStack(Blocks.log, 1, 3), ModItems.ball_resin); makeRecipe(StampType.FLAT, new OreDictStack(COAL.dust()), DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.COAL)); makeRecipe(StampType.FLAT, new OreDictStack(LIGNITE.dust()), DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)); @@ -114,6 +117,15 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), new ItemStack(ModItems.ammo_50ae, 12)); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.SABOT)); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), new ItemStack(ModItems.ammo_762, 32)); + + makeRecipe(StampType.PRINTING1, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE1)); + makeRecipe(StampType.PRINTING2, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE2)); + makeRecipe(StampType.PRINTING3, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE3)); + makeRecipe(StampType.PRINTING4, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE4)); + makeRecipe(StampType.PRINTING5, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE5)); + makeRecipe(StampType.PRINTING6, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE6)); + makeRecipe(StampType.PRINTING7, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE7)); + makeRecipe(StampType.PRINTING8, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE8)); } public static void makeRecipe(StampType type, AStack in, Item out) { diff --git a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java index 238e5bca9..168fbe902 100644 --- a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java @@ -32,6 +32,16 @@ public class ReformingRecipes extends SerializableRecipe { new FluidStack(Fluids.AROMATICS, 10), new FluidStack(Fluids.HYDROGEN, 5) )); + recipes.put(Fluids.LIGHTOIL, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 10), + new FluidStack(Fluids.HYDROGEN, 15) + )); + recipes.put(Fluids.LIGHTOIL_CRACK, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 5), + new FluidStack(Fluids.HYDROGEN, 20) + )); recipes.put(Fluids.PETROLEUM, new Triplet( new FluidStack(Fluids.UNSATURATEDS, 85), new FluidStack(Fluids.REFORMGAS, 10), diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index adb944df5..3b0d908a2 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -11,6 +11,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; @@ -31,7 +32,7 @@ public class SILEXRecipes { itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium)); dictTranslation.put(U.dust(), U.ingot()); - recipes.put(U.ingot(), new SILEXRecipe(900, 100, EnumWavelengths.UV) + recipes.put(U.ingot(), new SILEXRecipe(900, 100, EnumWavelengths.VISIBLE) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 11)) ); @@ -630,6 +631,10 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lithium), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.fluorite), 5)) ); + + recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.FULLERENE.getID()), new SILEXRecipe(1_000, 1_000, EnumWavelengths.UV) + .addOut(new WeightedRandomObject(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE), 1)) + ); } public static SILEXRecipe getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 457bddf9b..99e574056 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -46,6 +46,8 @@ public class ShredderRecipes extends SerializableRecipe { if(name == null || name.isEmpty()) continue; + if(name.contains("Any")) continue; + List matches = OreDictionary.getOres(name); //if the name isn't assigned to an ore, also skip @@ -77,7 +79,11 @@ public class ShredderRecipes extends SerializableRecipe { } } - if(name.length() > 3 && name.substring(0, 4).equals("dust")) { + if(name.length() > 7 && name.substring(0, 8).equals("dustTiny")) { + for(ItemStack stack : matches) { + putIfValid(stack, new ItemStack(ModItems.dust_tiny), name); + } + } else if(name.length() > 3 && name.substring(0, 4).equals("dust")) { for(ItemStack stack : matches) { putIfValid(stack, new ItemStack(ModItems.dust), name); } @@ -94,10 +100,6 @@ public class ShredderRecipes extends SerializableRecipe { String matName = name.substring(len); - //skip over genericized names so we don't accidentally convert item groups - if(matName.startsWith("Any")) - return; - ItemStack dust = getDustByName(matName); if(dust != null && dust.getItem() != ModItems.scrap) { @@ -134,6 +136,7 @@ public class ShredderRecipes extends SerializableRecipe { /* Primary recipes */ ShredderRecipes.setRecipe(ModItems.scrap, new ItemStack(ModItems.dust)); ShredderRecipes.setRecipe(ModItems.dust, new ItemStack(ModItems.dust)); + ShredderRecipes.setRecipe(ModItems.dust_tiny, new ItemStack(ModItems.dust_tiny)); ShredderRecipes.setRecipe(Blocks.glowstone, new ItemStack(Items.glowstone_dust, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 0), new ItemStack(ModItems.powder_quartz, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 1), new ItemStack(ModItems.powder_quartz, 4)); @@ -201,6 +204,7 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(Items.reeds, new ItemStack(Items.sugar, 3)); ShredderRecipes.setRecipe(Items.apple, new ItemStack(Items.sugar, 1)); ShredderRecipes.setRecipe(Items.carrot, new ItemStack(Items.sugar, 1)); + ShredderRecipes.setRecipe(ModItems.can_empty, new ItemStack(ModItems.powder_aluminium, 2)); List logs = OreDictionary.getOres("logWood"); List planks = OreDictionary.getOres("plankWood"); @@ -352,17 +356,17 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModItems.debris_graphite, new ItemStack(ModItems.powder_coal, 1)); /* GC COMPAT */ - Item gcMoonBlock = Compat.tryLoadItem(Compat.MOD_GCC, "moonBlock"); - if(gcMoonBlock != null) { + Block gcMoonBlock = Compat.tryLoadBlock(Compat.MOD_GCC, "moonBlock"); + if(gcMoonBlock != null && gcMoonBlock != Blocks.air) { ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 3), new ItemStack(ModBlocks.moon_turf)); //Moon dirt ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 5), new ItemStack(ModBlocks.moon_turf)); //Moon topsoil } /* AR COMPAT */ - Item arMoonTurf = Compat.tryLoadItem(Compat.MOD_AR, "turf"); - if(arMoonTurf != null) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf - Item arMoonTurfDark = Compat.tryLoadItem(Compat.MOD_AR, "turfDark"); - if(arMoonTurfDark != null) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds + Block arMoonTurf = Compat.tryLoadBlock(Compat.MOD_AR, "turf"); + if(arMoonTurf != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf + Block arMoonTurfDark = Compat.tryLoadBlock(Compat.MOD_AR, "turfDark"); + if(arMoonTurfDark != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds } /** diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 3df9c8e30..86921434e 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -65,6 +65,14 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_meteorite_forged, 1), new ComparableStack(ModItems.ingot_meteorite), new ComparableStack(ModItems.ingot_meteorite))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.blade_meteorite, 1), new ComparableStack(ModItems.ingot_meteorite_forged), new ComparableStack(ModItems.ingot_meteorite_forged))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.meteorite_sword_reforged, 1), new ComparableStack(ModItems.meteorite_sword_seared), new ComparableStack(ModItems.ingot_meteorite_forged))); + + + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_sword, 1), new ComparableStack(ModItems.cobalt_sword), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_pickaxe, 1), new ComparableStack(ModItems.cobalt_pickaxe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_axe, 1), new ComparableStack(ModItems.cobalt_axe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_shovel, 1), new ComparableStack(ModItems.cobalt_shovel), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_hoe, 1), new ComparableStack(ModItems.cobalt_hoe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.gun_ar15, 1), new ComparableStack(ModItems.gun_thompson), new ComparableStack(ModItems.pipe_lead))); smithingRecipes.add(new AnvilSmithingRecipe(1916169, new ItemStack(ModItems.wings_murk, 1), new ComparableStack(ModItems.wings_limp), new ComparableStack(ModItems.particle_tachyon))); smithingRecipes.add(new AnvilSmithingRecipe(4, new ItemStack(ModItems.flask_infusion, 1, EnumInfusion.SHIELD.ordinal()), new ComparableStack(ModItems.gem_alexandrite), new ComparableStack(ModItems.bottle_nuka))); @@ -118,6 +126,8 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingMold(16, new ComparableStack(ModItems.casing_9), new ItemStack[] {new ItemStack(ModItems.casing_9)})); smithingRecipes.add(new AnvilSmithingMold(17, new ComparableStack(ModItems.casing_50), new ItemStack[] {new ItemStack(ModItems.casing_50)})); smithingRecipes.add(new AnvilSmithingMold(18, new ComparableStack(ModItems.casing_buckshot), new ItemStack[] {new ItemStack(ModItems.casing_buckshot)})); + smithingRecipes.add(new AnvilSmithingMold(20, new OreDictStack(ALLOY.wireDense(), 1), new OreDictStack("wireDense", 1))); + smithingRecipes.add(new AnvilSmithingMold(21, new OreDictStack(ALLOY.wireDense(), 9), new OreDictStack("wireDense", 9))); smithingRecipes.add(new AnvilSmithingCyanideRecipe()); smithingRecipes.add(new AnvilSmithingRenameRecipe()); @@ -204,7 +214,8 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3)); - + + pullFromAssembler(new ComparableStack(ModItems.filter_coal), 2); pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2); constructionRecipes.add(new AnvilConstructionRecipe( @@ -225,6 +236,22 @@ public class AnvilRecipes { new ComparableStack(ModItems.circuit_aluminium, 1 * ukModifier) }, new AnvilOutput(new ItemStack(ModBlocks.machine_assembler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(KEY_COBBLESTONE, 8), + new OreDictStack(KEY_PLANKS, 16), + new OreDictStack(IRON.ingot(), 4), + new OreDictStack(CU.plate(), 8) + }, new AnvilOutput(new ItemStack(ModBlocks.pump_steam))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stonebrick, 8), + new OreDictStack(STEEL.plate(), 16), + new ComparableStack(ModItems.motor, 2), + new ComparableStack(ModItems.circuit_copper, 1) + }, new AnvilOutput(new ItemStack(ModBlocks.pump_electric))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.furnace), @@ -284,9 +311,8 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(Blocks.stonebrick, 8), new OreDictStack(KEY_LOG, 16), - new OreDictStack(CU.ingot(), 8), - new OreDictStack(KEY_BRICK, 16), - new ComparableStack(Items.blaze_powder, 4) + new OreDictStack(CU.plateWelded(), 2), + new OreDictStack(KEY_BRICK, 16) }, new AnvilOutput(new ItemStack(ModBlocks.furnace_combination))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -312,7 +338,7 @@ public class AnvilRecipes { new ComparableStack(ModBlocks.reinforced_stone, 16), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.hull_small_steel, 2), - new ComparableStack(ModItems.coil_copper, 8), + new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.gear_large, 1) }, new AnvilOutput(new ItemStack(ModBlocks.machine_steam_engine))).setTier(2)); @@ -339,6 +365,14 @@ public class AnvilRecipes { new ComparableStack(ModItems.plate_polymer, 8) }, new AnvilOutput(new ItemStack(ModBlocks.machine_boiler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plateCast(), 4), + new OreDictStack(W.ingot(), 8), + new ComparableStack(ModBlocks.machine_transformer, 1), + new ComparableStack(ModItems.arc_electrode, 2) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_arc_welder))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.plateCast(), 8), @@ -436,10 +470,20 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.plate(), 4), - new ComparableStack(Blocks.brick_block, 16) + new ComparableStack(Blocks.brick_block, 16), + new ComparableStack(ModBlocks.steel_grate, 2) }, new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plate(), 16), + new OreDictStack(ANY_CONCRETE.any(), 64), + new ComparableStack(ModBlocks.steel_grate, 4), + new ComparableStack(ModItems.filter_coal, 4) + }, + new AnvilOutput(new ItemStack(ModBlocks.chimney_industrial))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.tank_steel, 1), @@ -474,7 +518,7 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.plate_dineutronium, 4))).setTier(7)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(TI.plate(), 2), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.bolt_tungsten, 2)}, + new AStack[] {new OreDictStack(TI.plate(), 2), new OreDictStack(STEEL.ingot(), 1), new OreDictStack(STEEL.bolt(), 4)}, new AnvilOutput(new ItemStack(ModItems.plate_armor_titanium))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(IRON.plate(), 4), new OreDictStack(BIGMT.plate(), 2), new ComparableStack(ModItems.plate_armor_titanium, 1)}, @@ -658,6 +702,23 @@ public class AnvilRecipes { } public static void registerConstructionRecycling() { + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.heater_firebox), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 8)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 6)) + } + ).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.heater_oven), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_firebrick, 16)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)) + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.barrel_tcalloy), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index cf6ed2490..f54138b0f 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -64,6 +64,8 @@ public abstract class SerializableRecipe { recipeHandlers.add(new CompressorRecipes()); recipeHandlers.add(new ElectrolyserFluidRecipes()); recipeHandlers.add(new ElectrolyserMetalRecipes()); + recipeHandlers.add(new ArcWelderRecipes()); + recipeHandlers.add(new ExposureChamberRecipes()); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java b/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java deleted file mode 100644 index 8f5e91cae..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferFilter.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferFilter { - - /** Returns a list of valid ItemStacks that pass the filter and can be added. The returned list is what is added to the target and removed from the source. */ - public List select(List offer); -} diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferSource.java b/src/main/java/com/hbm/inventory/transfer/ITransferSource.java deleted file mode 100644 index 27891800f..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferSource.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferSource { - - /** Returns a list of ItemStacks accessible from this source */ - public List offer(); - /** Removes the selected ItemStacks */ - public void remove(List toRem); -} diff --git a/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java b/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java deleted file mode 100644 index 28bba3987..000000000 --- a/src/main/java/com/hbm/inventory/transfer/ITransferTarget.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface ITransferTarget { - - /** Adds the selected ItemStacks to the target */ - public void fill(List offer); -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java b/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java deleted file mode 100644 index 8c0dfb998..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferSourceSided.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.inventory.transfer; - -import net.minecraftforge.common.util.ForgeDirection; - -public abstract class TransferSourceSided implements ITransferSource { - - protected ForgeDirection fromSide; - - public TransferSourceSided fromSide(ForgeDirection side) { - this.fromSide = side; - return this; - } -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java b/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java deleted file mode 100644 index 11a92d06c..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferSourceTileEntity.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityFurnace; - -public class TransferSourceTileEntity extends TransferSourceSided { - - protected TileEntity tile; - - public TransferSourceTileEntity fromTile(TileEntity tile) { - this.tile = tile; - return this; - } - - @Override - public List offer() { - - List list = new ArrayList(); - - if(tile instanceof ISidedInventory) { - ISidedInventory inventory = (ISidedInventory) tile; - int[] access = masquerade(inventory, fromSide.ordinal()); - - for(int i : access) { - ItemStack stack = inventory.getStackInSlot(i); - - if(stack != null && inventory.canExtractItem(i, stack, fromSide.ordinal())) { - list.add(stack.copy()); - } - } - - return list; - } - - if(tile instanceof IInventory) { - IInventory inventory = (IInventory) tile; - - for(int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack stack = inventory.getStackInSlot(i); - - if(stack != null) { - list.add(stack.copy()); - } - } - - return list; - } - - return list; - } - - public static int[] masquerade(ISidedInventory sided, int side) { - - if(sided instanceof TileEntityFurnace) { - return new int[] {2}; - } - - return sided.getAccessibleSlotsFromSide(side); - } - - @Override - public void remove(List toRem) { - } -} diff --git a/src/main/java/com/hbm/inventory/transfer/TransferUtil.java b/src/main/java/com/hbm/inventory/transfer/TransferUtil.java deleted file mode 100644 index 2ab5c8576..000000000 --- a/src/main/java/com/hbm/inventory/transfer/TransferUtil.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.inventory.transfer; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public class TransferUtil { - - public static void transfer(ITransferSource source, ITransferFilter filter, ITransferTarget target) { - - List filtered = filter.select(source.offer()); - source.remove(filtered); - target.fill(filtered); - } -} diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index a83f5171c..b4d48e009 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -26,7 +26,10 @@ public class ItemEnums { public static enum EnumAshType { WOOD, COAL, - MISC + MISC, + FLY, + SOOT, + FULLERENE } public static enum EnumBriquetteType { @@ -58,4 +61,8 @@ public class ItemEnums { DIGAMMAUPONTOP, DIGAMMAFOROURRIGHT } + + public static enum EnumPages { + PAGE1, PAGE2, PAGE3, PAGE4, PAGE5, PAGE6, PAGE7, PAGE8 + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 119a33d3b..12dafee58 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -103,6 +103,8 @@ public class ModItems { public static Item ingot_titanium; public static Item ingot_cobalt; public static Item sulfur; + public static Item nitra; + public static Item nitra_small; public static Item coke; public static Item lignite; @@ -322,12 +324,11 @@ public class ModItems { public static Item plate_mixed; public static Item plate_paa; public static Item board_copper; - public static Item bolt_dura_steel; public static Item pipes_steel; public static Item drill_titanium; public static Item plate_dalekanium; public static Item plate_euphemium; - public static Item bolt_tungsten; + public static Item bolt; public static Item bolt_compound; public static Item plate_polymer; public static Item plate_kevlar; @@ -343,10 +344,12 @@ public class ModItems { public static Item crayon; public static Item undefined; - + + public static Item ball_resin; public static Item ingot_dura_steel; public static Item ingot_polymer; public static Item ingot_bakelite; + public static Item ingot_biorubber; public static Item ingot_rubber; public static Item ingot_pet; public static Item ingot_pc; @@ -361,6 +364,7 @@ public class ModItems { public static Item powder_cadmium; public static Item powder_bismuth; public static Item ingot_mud; + public static Item ingot_cft; public static Item ingot_lanthanium; public static Item ingot_actinium; @@ -757,6 +761,7 @@ public class ModItems { public static Item stamp_desh_plate; public static Item stamp_desh_wire; public static Item stamp_desh_circuit; + public static Item stamp_book; public static Item stamp_357; public static Item stamp_44; @@ -777,6 +782,9 @@ public class ModItems { public static Item mold; public static Item scraps; public static Item plate_cast; + public static Item plate_welded; + public static Item heavy_component; + public static Item wire_dense; public static Item part_lithium; public static Item part_beryllium; @@ -927,6 +935,11 @@ public class ModItems { public static Item fluid_barrel_empty; public static Item fluid_barrel_infinite; + public static Item disperser_canister_empty; + public static Item disperser_canister; + public static Item glyphid_gland; + public static Item glyphid_gland_empty; + public static Item syringe_empty; public static Item syringe_antidote; public static Item syringe_poison; @@ -1036,8 +1049,10 @@ public class ModItems { public static ItemEnumMulti canned_conserve; public static Item can_key; + public static Item boat_rubber; public static Item cart; public static Item train; + public static Item drone; public static Item coin_creeper; public static Item coin_radiation; @@ -1203,17 +1218,7 @@ public class ModItems { public static Item debris_element; public static Item containment_box; - - public static Item recycled_ground; - public static Item recycled_rock; - public static Item recycled_metal; - public static Item recycled_refined; - public static Item recycled_organic; - public static Item recycled_crystal; - public static Item recycled_explosive; - public static Item recycled_electronic; - public static Item recycled_nuclear; - public static Item recycled_misc; + public static Item plastic_bag; public static Item test_nuke_igniter; public static Item test_nuke_propellant; @@ -1265,6 +1270,8 @@ public class ModItems { public static Item power_net_tool; public static Item analysis_tool; public static Item coupling_tool; + public static Item drone_linker; + public static Item radar_linker; public static Item template_folder; public static Item journal_pip; @@ -1292,6 +1299,7 @@ public class ModItems { public static Item missile_incendiary; public static Item missile_cluster; public static Item missile_buster; + public static Item missile_decoy; public static Item missile_strong; public static Item missile_incendiary_strong; public static Item missile_cluster_strong; @@ -1313,6 +1321,7 @@ public class ModItems { public static Item missile_schrabidium; public static Item missile_emp; public static Item missile_shuttle; + public static Item missile_stealth; public static Item mp_thruster_10_kerosene; public static Item mp_thruster_10_kerosene_tec; @@ -1484,7 +1493,8 @@ public class ModItems { public static Item sat_interface; public static Item sat_coord; public static Item sat_designator; - + public static Item sat_relay; + public static ItemEnumMulti ammo_misc; public static ItemEnumMulti ammo_12gauge; public static ItemEnumMulti ammo_20gauge; @@ -1553,7 +1563,6 @@ public class ModItems { public static Item gun_proto; public static Item gun_mirv; public static Item gun_bf; - public static Item gun_bf_ammo; public static Item gun_chemthrower; public static Item gun_mp40; public static Item gun_thompson; @@ -1989,6 +1998,10 @@ public class ModItems { public static Item dns_plate; public static Item dns_legs; public static Item dns_boots; + public static Item trenchmaster_helmet; + public static Item trenchmaster_plate; + public static Item trenchmaster_legs; + public static Item trenchmaster_boots; public static Item zirconium_legs; public static Item robes_helmet; public static Item robes_plate; @@ -2219,6 +2232,7 @@ public class ModItems { public static Item structure_pattern; public static Item structure_randomized; public static Item structure_randomly; + public static Item structure_custommachine; public static Item rod_of_discord; @@ -2339,6 +2353,7 @@ public class ModItems { public static Item door_metal; public static Item door_office; public static Item door_bunker; + public static Item door_red; public static Item sliding_blast_door_skin; @@ -2357,6 +2372,7 @@ public class ModItems { public static Item letter; public static Item book_secret; public static Item book_of_; + public static Item page_of_; public static Item burnt_bark; public static Item smoke1; @@ -2524,6 +2540,8 @@ public class ModItems { ingot_firebrick = new Item().setUnlocalizedName("ingot_firebrick").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_firebrick"); ingot_smore = new ItemFood(10, 20F, false).setUnlocalizedName("ingot_smore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_smore"); sulfur = new Item().setUnlocalizedName("sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sulfur"); + nitra = new Item().setUnlocalizedName("nitra").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra"); + nitra_small = new Item().setUnlocalizedName("nitra_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra_small"); ingot_uranium_fuel = new Item().setUnlocalizedName("ingot_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium_fuel"); ingot_plutonium_fuel = new Item().setUnlocalizedName("ingot_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_plutonium_fuel"); @@ -2575,12 +2593,11 @@ public class ModItems { plate_mixed = new Item().setUnlocalizedName("plate_mixed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_mixed"); plate_paa = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa"); board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":board_copper"); - bolt_dura_steel = new Item().setUnlocalizedName("bolt_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_dura_steel"); pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); - bolt_tungsten = new Item().setUnlocalizedName("bolt_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_tungsten"); + bolt = new ItemAutogen(MaterialShapes.BOLT).setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); bolt_compound = new Item().setUnlocalizedName("bolt_compound").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_compound"); plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); @@ -2652,9 +2669,11 @@ public class ModItems { billet_zfb_am_mix = new Item().setUnlocalizedName("billet_zfb_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_am_mix"); billet_nuclear_waste = new Item().setUnlocalizedName("billet_nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_nuclear_waste"); + ball_resin = new ItemCustomLore().setUnlocalizedName("ball_resin").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_resin"); ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); + ingot_biorubber = new ItemCustomLore().setUnlocalizedName("ingot_biorubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_biorubber"); ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); //ingot_pet = new ItemCustomLore().setUnlocalizedName("ingot_pet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pet"); ingot_pc = new ItemCustomLore().setUnlocalizedName("ingot_pc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pc"); @@ -2682,6 +2701,7 @@ public class ModItems { powder_cadmium = new Item().setUnlocalizedName("powder_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cadmium"); powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth"); ingot_mud = new Item().setUnlocalizedName("ingot_mud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mud"); + ingot_cft = new Item().setUnlocalizedName("ingot_cft").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cft"); ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); @@ -3246,6 +3266,7 @@ public class ModItems { stamp_44 = new ItemStamp(1000, StampType.C44).setUnlocalizedName("stamp_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44"); stamp_9 = new ItemStamp(1000, StampType.C9).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); stamp_50 = new ItemStamp(1000, StampType.C50).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); + stamp_book = new ItemStampBook().setUnlocalizedName("stamp_book").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":stamp_book"); stamp_desh_357 = new ItemStamp(0, StampType.C357).setUnlocalizedName("stamp_desh_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357_desh"); stamp_desh_44 = new ItemStamp(0, StampType.C44).setUnlocalizedName("stamp_desh_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44_desh"); @@ -3261,6 +3282,9 @@ public class ModItems { mold = new ItemMold().setUnlocalizedName("mold").setCreativeTab(MainRegistry.controlTab); scraps = new ItemScraps().aot(Mats.MAT_BISMUTH, "scraps_bismuth").setUnlocalizedName("scraps").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scraps"); plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); + plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); + heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); + wire_dense = new ItemAutogen(MaterialShapes.DENSEWIRE).setUnlocalizedName("wire_dense").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_dense"); part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); @@ -3275,7 +3299,6 @@ public class ModItems { laser_crystal_digamma = new ItemFELCrystal(EnumWavelengths.DRX).setUnlocalizedName("laser_crystal_digamma").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_digamma"); thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); - //limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); @@ -3461,8 +3484,10 @@ public class ModItems { canned_conserve = (ItemEnumMulti) new ItemConserve().setUnlocalizedName("canned_conserve").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned"); can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); + boat_rubber = new ItemBoatRubber().setUnlocalizedName("boat_rubber").setTextureName(RefStrings.MODID + ":boat_rubber"); cart = new ItemModMinecart().setUnlocalizedName("cart"); train = new ItemTrain().setUnlocalizedName("train"); + drone = new ItemDrone().setUnlocalizedName("drone"); coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); @@ -3470,17 +3495,6 @@ public class ModItems { coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); coin_ufo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_ufo").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_ufo"); - recycled_ground = new Item().setUnlocalizedName("recycled_ground").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_ground"); - recycled_rock = new Item().setUnlocalizedName("recycled_rock").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_rock"); - recycled_metal = new Item().setUnlocalizedName("recycled_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_metal"); - recycled_refined = new Item().setUnlocalizedName("recycled_refined").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_refined"); - recycled_organic = new Item().setUnlocalizedName("recycled_organic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_organic"); - recycled_crystal = new Item().setUnlocalizedName("recycled_crystal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_crystal"); - recycled_explosive = new Item().setUnlocalizedName("recycled_explosive").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_explosive"); - recycled_electronic = new Item().setUnlocalizedName("recycled_electronic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_electronic"); - recycled_nuclear = new Item().setUnlocalizedName("recycled_nuclear").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_nuclear"); - recycled_misc = new Item().setUnlocalizedName("recycled_misc").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_misc"); - rod_empty = new Item().setUnlocalizedName("rod_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_empty"); rod = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod").setContainerItem(ModItems.rod_empty).setCreativeTab(MainRegistry.controlTab); rod_dual_empty = new Item().setUnlocalizedName("rod_dual_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_dual_empty"); @@ -3854,6 +3868,7 @@ public class ModItems { scrap_oil = new Item().setUnlocalizedName("scrap_oil").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_oil"); scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":containment_box"); + plastic_bag = new ItemPlasticBag().setUnlocalizedName("plastic_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plastic_bag"); debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); @@ -3904,6 +3919,7 @@ public class ModItems { missile_incendiary = new Item().setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); missile_cluster = new Item().setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); missile_buster = new Item().setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); + missile_decoy = new Item().setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); missile_strong = new Item().setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); missile_incendiary_strong = new Item().setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); missile_cluster_strong = new Item().setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); @@ -3925,6 +3941,7 @@ public class ModItems { missile_schrabidium = new Item().setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); missile_emp = new Item().setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); missile_shuttle = new ItemMissileShuttle().setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); + missile_stealth = new Item().setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier"); missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); @@ -3942,6 +3959,7 @@ public class ModItems { sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); sat_coord = new ItemSatInterface().setUnlocalizedName("sat_coord").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_coord"); sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); + sat_relay = new ItemSatRelay().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); mp_thruster_10_kerosene = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); mp_thruster_10_kerosene_tec = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); @@ -4143,7 +4161,7 @@ public class ModItems { gun_revolver_cursed = new ItemGunBase(Gun357MagnumFactory.getRevolverCursedConfig()).setUnlocalizedName("gun_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed"); gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); - gun_revolver_pip = new ItemGunBase(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); + gun_revolver_pip = new ItemGunPip(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); gun_revolver_nopip = new ItemGunBase(Gun44MagnumFactory.getNovacConfig()).setUnlocalizedName("gun_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nopip"); gun_revolver_blackjack = new ItemGunBase(Gun44MagnumFactory.getBlackjackConfig()).setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack"); gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); @@ -4151,7 +4169,7 @@ public class ModItems { gun_deagle = new ItemGunBase(Gun50AEFactory.getDeagleConfig()).setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_deagle"); gun_bio_revolver = new ItemGunBio(Gun357MagnumFactory.getRevolverBioConfig()).setUnlocalizedName("gun_bio_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bio_revolver"); gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette"); - gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); + gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config(), Gun50BMGFactory.getAR15BurstConfig()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); gun_calamity = new ItemGunBase(Gun762mmFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); gun_minigun = new ItemGunLacunae(Gun5mmFactory.get53Config()).setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun"); gun_avenger = new ItemGunLacunae(Gun5mmFactory.get57Config()).setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger"); @@ -4160,7 +4178,6 @@ public class ModItems { gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_mirv = new ItemGunBase(GunFatmanFactory.getMIRVConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv"); - gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo"); gun_bf = new ItemGunBase(GunFatmanFactory.getBELConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); gun_chemthrower = new ItemGunChemthrower().setUnlocalizedName("gun_chemthrower").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); @@ -4229,8 +4246,8 @@ public class ModItems { gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_m2 = new ItemGunBase(Gun50BMGFactory.getM2Config()).setFull3D().setUnlocalizedName("gun_m2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_lunatic_marksman = new ItemGunBase(Gun50BMGFactory.getLunaticMarksman()).setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(MainRegistry.weaponTab); - gun_uac_pistol = new ItemGunBase(Gun45ACPFactory.getUACPistolConfig()).setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(MainRegistry.weaponTab); - + gun_uac_pistol = new ItemGunBase(Gun45ACPFactory.getUACPistolConfig(), Gun45ACPFactory.getUACPistolBurstConfig()).setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(MainRegistry.weaponTab); + ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); @@ -4427,7 +4444,7 @@ public class ModItems { fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); - titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); + titanium_filter = new ItemTitaniumFilter(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill"); @@ -4499,7 +4516,8 @@ public class ModItems { structure_pattern = new ItemStructurePattern().setUnlocalizedName("structure_pattern").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_pattern"); structure_randomized = new ItemStructureRandomized().setUnlocalizedName("structure_randomized").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomized"); structure_randomly = new ItemStructureRandomly().setUnlocalizedName("structure_randomly").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomly"); - + structure_custommachine = new ItemCMStructure().setUnlocalizedName("structure_custommachine").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":structure_custommachine"); + rod_of_discord = new ItemDiscord().setUnlocalizedName("rod_of_discord").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":rod_of_discord"); nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); @@ -4601,6 +4619,8 @@ public class ModItems { power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); analysis_tool = new ItemAnalysisTool().setUnlocalizedName("analysis_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":analysis_tool"); coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); + drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker"); + radar_linker = new ItemRadarLinker().setUnlocalizedName("radar_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radar_linker"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); @@ -4629,9 +4649,16 @@ public class ModItems { fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); - fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); + fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + + disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + + glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); @@ -4710,11 +4737,11 @@ public class ModItems { asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate"); asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setFireproof(true).setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs"); asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots"); - security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setMod(0.75F).setProjectileProtection(0.5F).setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); + security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setMod(0.65F).setProjectileProtection(0.5F).setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); security_plate = new ArmorFSB(MainRegistry.aMatSecurity, 1, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_plate").setTextureName(RefStrings.MODID + ":security_plate"); security_legs = new ArmorFSB(MainRegistry.aMatSecurity, 2, RefStrings.MODID + ":textures/armor/security_2.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_legs").setTextureName(RefStrings.MODID + ":security_legs"); security_boots = new ArmorFSB(MainRegistry.aMatSecurity, 3, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_boots").setTextureName(RefStrings.MODID + ":security_boots"); - cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.75F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); + cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.7F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, 1, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_plate").setTextureName(RefStrings.MODID + ":cobalt_plate"); cobalt_legs = new ArmorFSB(MainRegistry.aMatCobalt, 2, RefStrings.MODID + ":textures/armor/cobalt_2.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_legs").setTextureName(RefStrings.MODID + ":cobalt_legs"); cobalt_boots = new ArmorFSB(MainRegistry.aMatCobalt, 3, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_boots").setTextureName(RefStrings.MODID + ":cobalt_boots"); @@ -4929,7 +4956,7 @@ public class ModItems { fau_plate = new ArmorDigamma(aMatFau, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); fau_legs = new ArmorDigamma(aMatFau, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); fau_boots = new ArmorDigamma(aMatFau, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); - + ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100); aMatDNS.customCraftingMaterial = ModItems.plate_armor_dnt; dns_helmet = new ArmorDNT(aMatDNS, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115) @@ -4950,6 +4977,23 @@ public class ModItems { dns_legs = new ArmorDNT(aMatDNS, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs"); dns_boots = new ArmorDNT(aMatDNS, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots"); + ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatTrench.customCraftingMaterial = ModItems.plate_iron; + trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.25F).setThreshold(5.0F) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0)) + .enableVATS(true) + .addResistance("fall", 0F) + .setFireproof(true) + .setStepSize(1) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); + trenchmaster_plate = new ArmorTrenchmaster(aMatTrench, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_plate").setTextureName(RefStrings.MODID + ":trenchmaster_plate"); + trenchmaster_legs = new ArmorTrenchmaster(aMatTrench, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_legs").setTextureName(RefStrings.MODID + ":trenchmaster_legs"); + trenchmaster_boots = new ArmorTrenchmaster(aMatTrench, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_boots").setTextureName(RefStrings.MODID + ":trenchmaster_boots"); + jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); @@ -4957,7 +5001,7 @@ public class ModItems { Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.KEROSENE, Fluids.BIOFUEL, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.COALGAS, Fluids.COALGAS_LEADED) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addHitAbility(new WeaponAbility.ChainsawAbility(4)) + .addHitAbility(new WeaponAbility.ChainsawAbility(10)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); schrabidium_sword = new ItemSwordAbility(150, 0, MainRegistry.tMatSchrab) @@ -5065,7 +5109,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)) - .addHitAbility(new WeaponAbility.ChainsawAbility(6)) + .addHitAbility(new WeaponAbility.ChainsawAbility(15)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); elec_shovel = new ItemToolAbilityPower(7.5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) @@ -5114,7 +5158,7 @@ public class ModItems { .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); - ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 1000, 15.0F, 2.5F, 25).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); + ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 2500, 15.0F, 2.5F, 75).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt) .addHitAbility(new WeaponAbility.BobbleAbility()).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE) @@ -5135,7 +5179,7 @@ public class ModItems { .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel"); cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe"); - ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 1000, 20.0F, 2.5F, 30).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); + ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 3000, 20.0F, 2.5F, 100).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal) .addHitAbility(new WeaponAbility.BeheaderAbility()) .addHitAbility(new WeaponAbility.StunAbility(3)) @@ -5368,6 +5412,7 @@ public class ModItems { door_metal = new ItemModDoor().setUnlocalizedName("door_metal").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_metal"); door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office"); door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker"); + door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red"); sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default"); @@ -5386,6 +5431,7 @@ public class ModItems { letter = new ItemStarterKit().setUnlocalizedName("letter").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":letter"); book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret"); book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); + page_of_ = new ItemEnumMulti(ItemEnums.EnumPages.class, true, false).setUnlocalizedName("page_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":page_of_"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); @@ -5580,11 +5626,13 @@ public class ModItems { GameRegistry.registerItem(ingot_dura_steel, ingot_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_biorubber, ingot_biorubber.getUnlocalizedName()); GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); //GameRegistry.registerItem(ingot_pet, ingot_pet.getUnlocalizedName()); GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); GameRegistry.registerItem(ingot_mud, ingot_mud.getUnlocalizedName()); + GameRegistry.registerItem(ingot_cft, ingot_cft.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); @@ -5708,6 +5756,8 @@ public class ModItems { GameRegistry.registerItem(briquette, briquette.getUnlocalizedName()); GameRegistry.registerItem(sulfur, sulfur.getUnlocalizedName()); GameRegistry.registerItem(niter, niter.getUnlocalizedName()); + GameRegistry.registerItem(nitra, nitra.getUnlocalizedName()); + GameRegistry.registerItem(nitra_small, nitra_small.getUnlocalizedName()); GameRegistry.registerItem(fluorite, fluorite.getUnlocalizedName()); GameRegistry.registerItem(powder_coal, powder_coal.getUnlocalizedName()); GameRegistry.registerItem(powder_coal_tiny, powder_coal_tiny.getUnlocalizedName()); @@ -5831,6 +5881,7 @@ public class ModItems { GameRegistry.registerItem(ball_dynamite, ball_dynamite.getUnlocalizedName()); GameRegistry.registerItem(ball_tnt, ball_tnt.getUnlocalizedName()); GameRegistry.registerItem(ball_tatb, ball_tatb.getUnlocalizedName()); + GameRegistry.registerItem(ball_resin, ball_resin.getUnlocalizedName()); GameRegistry.registerItem(ball_fireclay, ball_fireclay.getUnlocalizedName()); //Ores @@ -5987,13 +6038,14 @@ public class ModItems { //Heavy/Cast Plate GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); + GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); + GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); //Boards GameRegistry.registerItem(board_copper, board_copper.getUnlocalizedName()); //Bolts - GameRegistry.registerItem(bolt_dura_steel, bolt_dura_steel.getUnlocalizedName()); - GameRegistry.registerItem(bolt_tungsten, bolt_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); GameRegistry.registerItem(bolt_compound, bolt_compound.getUnlocalizedName()); //Cloth @@ -6015,6 +6067,7 @@ public class ModItems { GameRegistry.registerItem(wire_gold, wire_gold.getUnlocalizedName()); GameRegistry.registerItem(wire_schrabidium, wire_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(wire_magnetized_tungsten, wire_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(wire_dense, wire_dense.getUnlocalizedName()); //Parts GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); @@ -6327,7 +6380,14 @@ public class ModItems { GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); - + + //Disperser Canister + GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); + + GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); + //Batteries GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); GameRegistry.registerItem(battery_red_cell, battery_red_cell.getUnlocalizedName()); @@ -6419,6 +6479,7 @@ public class ModItems { GameRegistry.registerItem(stamp_desh_44, stamp_desh_44.getUnlocalizedName()); GameRegistry.registerItem(stamp_desh_9, stamp_desh_9.getUnlocalizedName()); GameRegistry.registerItem(stamp_desh_50, stamp_desh_50.getUnlocalizedName()); + GameRegistry.registerItem(stamp_book, stamp_book.getUnlocalizedName()); //Molds GameRegistry.registerItem(mold_base, mold_base.getUnlocalizedName()); @@ -6502,18 +6563,6 @@ public class ModItems { GameRegistry.registerItem(laser_crystal_dnt, laser_crystal_dnt.getUnlocalizedName()); GameRegistry.registerItem(laser_crystal_digamma, laser_crystal_digamma.getUnlocalizedName()); - //Recycled Units - GameRegistry.registerItem(recycled_ground, recycled_ground.getUnlocalizedName()); - GameRegistry.registerItem(recycled_rock, recycled_rock.getUnlocalizedName()); - GameRegistry.registerItem(recycled_metal, recycled_metal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_refined, recycled_refined.getUnlocalizedName()); - GameRegistry.registerItem(recycled_organic, recycled_organic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_crystal, recycled_crystal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_explosive, recycled_explosive.getUnlocalizedName()); - GameRegistry.registerItem(recycled_electronic, recycled_electronic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_nuclear, recycled_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(recycled_misc, recycled_misc.getUnlocalizedName()); - //Catalyst Rune Sigils GameRegistry.registerItem(rune_blank, rune_blank.getUnlocalizedName()); GameRegistry.registerItem(rune_isa, rune_isa.getUnlocalizedName()); @@ -6762,6 +6811,8 @@ public class ModItems { GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName()); GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); + GameRegistry.registerItem(drone_linker, drone_linker.getUnlocalizedName()); + GameRegistry.registerItem(radar_linker, radar_linker.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName()); @@ -6771,6 +6822,7 @@ public class ModItems { GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); + GameRegistry.registerItem(plastic_bag, plastic_bag.getUnlocalizedName()); //Keys and Locks GameRegistry.registerItem(key, key.getUnlocalizedName()); @@ -6787,6 +6839,7 @@ public class ModItems { //Missiles GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); + GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); @@ -6811,6 +6864,7 @@ public class ModItems { GameRegistry.registerItem(missile_schrabidium, missile_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); GameRegistry.registerItem(missile_shuttle, missile_shuttle.getUnlocalizedName()); + GameRegistry.registerItem(missile_stealth, missile_stealth.getUnlocalizedName()); GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); @@ -6968,6 +7022,7 @@ public class ModItems { GameRegistry.registerItem(sat_interface, sat_interface.getUnlocalizedName()); GameRegistry.registerItem(sat_coord, sat_coord.getUnlocalizedName()); GameRegistry.registerItem(sat_designator, sat_designator.getUnlocalizedName()); + GameRegistry.registerItem(sat_relay, sat_relay.getUnlocalizedName()); //Guns GameRegistry.registerItem(gun_revolver, gun_revolver.getUnlocalizedName()); @@ -7078,7 +7133,6 @@ public class ModItems { //GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_bf_ammo, gun_bf_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); @@ -7706,9 +7760,11 @@ public class ModItems { GameRegistry.registerItem(injector_5htp, injector_5htp.getUnlocalizedName()); GameRegistry.registerItem(injector_knife, injector_knife.getUnlocalizedName()); - //Minecarts + //Vehicles + GameRegistry.registerItem(boat_rubber, boat_rubber.getUnlocalizedName()); GameRegistry.registerItem(cart, cart.getUnlocalizedName()); GameRegistry.registerItem(train, train.getUnlocalizedName()); + GameRegistry.registerItem(drone, drone.getUnlocalizedName()); //High Explosive Lenses GameRegistry.registerItem(early_explosive_lenses, early_explosive_lenses.getUnlocalizedName()); @@ -7838,6 +7894,10 @@ public class ModItems { GameRegistry.registerItem(dns_plate, dns_plate.getUnlocalizedName()); GameRegistry.registerItem(dns_legs, dns_legs.getUnlocalizedName()); GameRegistry.registerItem(dns_boots, dns_boots.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_helmet, trenchmaster_helmet.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_plate, trenchmaster_plate.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_legs, trenchmaster_legs.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_boots, trenchmaster_boots.getUnlocalizedName()); //Nobody will ever read this anyway, so it shouldn't matter. GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName()); @@ -7948,6 +8008,7 @@ public class ModItems { GameRegistry.registerItem(structure_pattern, structure_pattern.getUnlocalizedName()); GameRegistry.registerItem(structure_randomized, structure_randomized.getUnlocalizedName()); GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); + GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); //GameRegistry.registerItem(analyzer, analyzer.getUnlocalizedName()); //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); @@ -7956,6 +8017,7 @@ public class ModItems { GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); GameRegistry.registerItem(book_of_, book_of_.getUnlocalizedName()); + GameRegistry.registerItem(page_of_, page_of_.getUnlocalizedName()); GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName()); //Kits @@ -8001,6 +8063,7 @@ public class ModItems { GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerItem(door_office, door_office.getUnlocalizedName()); GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName()); + GameRegistry.registerItem(door_red, door_red.getUnlocalizedName()); GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName()); //Records diff --git a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java index 93f8d34a3..5882236e7 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java @@ -89,13 +89,13 @@ public class ArmorBJJetpack extends ArmorBJ { } } } - } - - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - super.addInformation(stack, player, list, ext); + } - list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.electricJetpack")); - list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.glider")); - } + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + + list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.electricJetpack")); + list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.glider")); + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 4e2e60571..d6eb33079 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -65,6 +65,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { public boolean hardLanding = false; public double gravity = 0; public int dashCount = 0; + public int stepSize = 0; public String step; public String jump; public String fall; @@ -158,6 +159,11 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { this.dashCount = dashCount; return this; } + + public ArmorFSB setStepSize(int stepSize) { + this.stepSize = stepSize; + return this; + } public ArmorFSB setStep(String step) { this.step = step; @@ -199,6 +205,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { this.hardLanding = original.hardLanding; this.gravity = original.gravity; this.dashCount = original.dashCount; + this.stepSize = original.stepSize; this.step = original.step; this.jump = original.jump; this.fall = original.fall; @@ -282,6 +289,10 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity)); } + if(stepSize != 0) { + list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.stepSize", stepSize)); + } + if(dashCount > 0) { list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount)); } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java index 4988f6234..deb44ba51 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.inventory.fluid.FluidType; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -83,7 +82,7 @@ public class ArmorFSBFueled extends ArmorFSB implements IFillableItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(I18nUtil.resolveKey(this.fuelType.getUnlocalizedName()) + ": " + BobMathUtil.getShortNumber(getFill(stack)) + " / " + BobMathUtil.getShortNumber(getMaxFill(stack))); + list.add(this.fuelType.getLocalizedName() + ": " + BobMathUtil.getShortNumber(getFill(stack)) + " / " + BobMathUtil.getShortNumber(getMaxFill(stack))); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java new file mode 100644 index 000000000..0036d36e6 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -0,0 +1,86 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.render.model.ModelArmorTrenchmaster; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ArmorTrenchmaster extends ArmorFSB { + + public ArmorTrenchmaster(ArmorMaterial material, int slot, String texture) { + super(material, slot, texture); + this.setMaxDamage(0); + } + + @SideOnly(Side.CLIENT) + ModelArmorTrenchmaster[] models; + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if(models == null) { + models = new ModelArmorTrenchmaster[4]; + + for(int i = 0; i < 4; i++) + models[i] = new ModelArmorTrenchmaster(i); + } + + return models[armorSlot]; + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + + list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); + list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); + } + + @Override + public void handleHurt(LivingHurtEvent event) { + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) e; + + if(ArmorFSB.hasFSBArmor(player)) { + + if(event.source.isExplosion() && event.source.getSourceOfDamage() == player) { + event.ammount = 0; + return; + } + } + } + } + + @Override + public void handleAttack(LivingAttackEvent event) { + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) e; + + if(ArmorFSB.hasFSBArmor(player)) { + + if(e.getRNG().nextInt(3) == 0) { + HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + event.setCanceled(true); + } + } + } + } +} diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index c036d3ad6..e5701e3d8 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -6,7 +6,6 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.inventory.fluid.FluidType; import com.hbm.render.model.ModelJetPack; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -38,7 +37,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey(fuel.getUnlocalizedName()) + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); + list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getLocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); list.add(""); super.addInformation(itemstack, player, list, bool); list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); @@ -52,7 +51,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem if(jetpack == null) return; - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (" + I18nUtil.resolveKey(fuel.getUnlocalizedName()) + ": " + this.getFuel(jetpack) + "mB / " + this.maxFuel + "mB"); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (" + fuel.getLocalizedName() + ": " + this.getFuel(jetpack) + "mB / " + this.maxFuel + "mB"); } @Override diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index 61b1cf00c..30723223d 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -17,6 +17,8 @@ public class ItemCustomMachine extends ItemBlock { public ItemCustomMachine(Block block) { super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/machine/ItemCanister.java b/src/main/java/com/hbm/items/machine/ItemCanister.java index b1393db87..fb792f532 100644 --- a/src/main/java/com/hbm/items/machine/ItemCanister.java +++ b/src/main/java/com/hbm/items/machine/ItemCanister.java @@ -40,7 +40,7 @@ public class ItemCanister extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemCapacitor.java b/src/main/java/com/hbm/items/machine/ItemCapacitor.java index 57ee26b2c..2d2147615 100644 --- a/src/main/java/com/hbm/items/machine/ItemCapacitor.java +++ b/src/main/java/com/hbm/items/machine/ItemCapacitor.java @@ -8,15 +8,13 @@ import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class ItemCapacitor extends Item { - private int dura; public ItemCapacitor(int dura) { - this.dura = dura; + this.setMaxDamage(dura); } @Override @@ -24,11 +22,7 @@ public class ItemCapacitor extends Item { if (this == ModItems.redcoil_capacitor) { list.add("Right-click a block to negate positive charge."); list.add("[Needed for Schrabidium Synthesis]"); - list.add(getDura(itemstack) + "/" + dura); - } - if (this == ModItems.titanium_filter) { - list.add("[Needed for Watz Reaction]"); - list.add((getDura(itemstack) / 20) + "/" + (dura / 20)); + list.add((itemstack.getMaxDamage() - itemstack.getItemDamage()) + "/" + itemstack.getMaxDamage()); } } @@ -39,9 +33,9 @@ public class ItemCapacitor extends Item { if (!player.isSneaking()) { - if (getDura(stack) < dura) { + if(stack.getItemDamage() > 0) { - setDura(stack, getDura(stack) + 1); + stack.setItemDamage(stack.getItemDamage() - 1); if (!world.isRemote) { world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, true); @@ -55,29 +49,4 @@ public class ItemCapacitor extends Item { return false; } - - public boolean showDurabilityBar(ItemStack stack) { - return getDurabilityForDisplay(stack) > 0; - } - - public static int getDura(ItemStack stack) { - - if(stack.stackTagCompound == null) - return ((ItemCapacitor)stack.getItem()).dura; - - return stack.stackTagCompound.getInteger("dura"); - } - - public static void setDura(ItemStack stack, int dura) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger("dura", dura); - } - - public double getDurabilityForDisplay(ItemStack stack) - { - return 1D - (double)getDura(stack) / (double)dura; - } } diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index 432141d9d..b063ce516 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -9,7 +9,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -76,7 +75,7 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.outputFluids[i] != null) { int p = recipe.outputFluids[i].pressure; - list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); + list.add(recipe.outputFluids[i].fill + "mB " + recipe.outputFluids[i].type.getLocalizedName() + (p != 0 ? (" at " + p + "PU") : "")); } } @@ -91,7 +90,7 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.inputFluids[i] != null) { int p = recipe.inputFluids[i].pressure; - list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); + list.add(recipe.inputFluids[i].fill + "mB " + recipe.inputFluids[i].type.getLocalizedName() + (p != 0 ? (" at " + p + "PU") : "")); } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java index b366e39ea..e6153e1f5 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java @@ -1,12 +1,9 @@ package com.hbm.items.machine; -import java.util.List; - import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.tileentity.network.TileEntityPipeBaseNT; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -19,6 +16,8 @@ import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import java.util.List; + public class ItemFluidDuct extends Item { IIcon overlayIcon; @@ -41,7 +40,7 @@ public class ItemFluidDuct extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; @@ -111,7 +110,7 @@ public class ItemFluidDuct extends Item { ++x; } - if(!world.isAirBlock(x, y, z)) { + if(!world.getBlock(x, y, z).isReplaceable(world, x, y, z)) { return false; } } @@ -125,8 +124,8 @@ public class ItemFluidDuct extends Item { if(world.getTileEntity(x, y, z) instanceof TileEntityPipeBaseNT) { ((TileEntityPipeBaseNT) world.getTileEntity(x, y, z)).setType(Fluids.fromID(stack.getItemDamage())); } - - world.playSoundEffect(x, y, z, "hbm:block.pipePlaced", 1.0F, 0.65F + world.rand.nextFloat() * 0.2F); + + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, ModBlocks.fluid_duct_neo.stepSound.func_150496_b(), (ModBlocks.fluid_duct_neo.stepSound.getVolume() + 1.0F) / 2.0F, ModBlocks.fluid_duct_neo.stepSound.getPitch() * 0.8F); return true; } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index 43ad52bcb..e8f44cfa4 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -20,7 +20,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; @@ -45,7 +44,7 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte setType(stack, secondary, true); setType(stack, primary, false); world.playSoundAtEntity(player, "random.orb", 0.25F, 1.25F); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.startTranslation(secondary.getUnlocalizedName()).flush(), /*MainRegistry.proxy.ID_DETONATOR*/ 7, 3000), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.startTranslation(secondary.getConditionalName()).flush(), /*MainRegistry.proxy.ID_DETONATOR*/ 7, 3000), (EntityPlayerMP) player); } if(world.isRemote && player.isSneaking()) { @@ -68,9 +67,9 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info")); - list.add(" " + I18n.format(getType(stack, true).getUnlocalizedName())); + list.add(" " + getType(stack, true).getLocalizedName()); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info2")); - list.add(" " + I18n.format(getType(stack, false).getUnlocalizedName())); + list.add(" " + getType(stack, false).getLocalizedName()); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index 1e121dd96..358d498d8 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -82,7 +82,7 @@ public class ItemFluidIcon extends Item { @Override public String getItemStackDisplayName(ItemStack stack) { - String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s != null) { return s; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index fcb336edc..d68a24f24 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -13,7 +13,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -65,7 +64,7 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); list.add(""); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info")); - list.add(" " + I18n.format(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())); + list.add(" " + Fluids.fromID(stack.getItemDamage()).getLocalizedName()); list.add(""); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".usage0")); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".usage1")); diff --git a/src/main/java/com/hbm/items/machine/ItemFluidTank.java b/src/main/java/com/hbm/items/machine/ItemFluidTank.java index 437554375..ce7a2cd0d 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidTank.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidTank.java @@ -15,7 +15,7 @@ import net.minecraft.util.StatCollector; public class ItemFluidTank extends Item { - IIcon overlayIcon; + protected IIcon overlayIcon; public ItemFluidTank() { this.setHasSubtypes(true); @@ -48,7 +48,7 @@ public class ItemFluidTank extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemGasTank.java b/src/main/java/com/hbm/items/machine/ItemGasTank.java index 11a20554a..0fe7cf03e 100644 --- a/src/main/java/com/hbm/items/machine/ItemGasTank.java +++ b/src/main/java/com/hbm/items/machine/ItemGasTank.java @@ -42,7 +42,7 @@ public class ItemGasTank extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 1a04a4649..3e165b474 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -3,8 +3,15 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.ModItems; +import com.hbm.tileentity.IUpgradeInfoProvider; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -32,6 +39,24 @@ public class ItemMachineUpgrade extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + GuiScreen open = Minecraft.getMinecraft().currentScreen; + + if(open != null && open instanceof GuiContainer) { + GuiContainer guiContainer = (GuiContainer) open; + Container container = guiContainer.inventorySlots; + if(container.inventorySlots.size() > 0) { + Slot first = container.getSlot(0); + IInventory inv = (IInventory) first.inventory; + if(inv instanceof IUpgradeInfoProvider) { + IUpgradeInfoProvider provider = (IUpgradeInfoProvider) inv; + if(provider.canProvideInfo(this.type, this.tier, bool)) { + provider.provideInfo(this.type, this.tier, list, bool); + return; + } + } + } + } + if(this.type == UpgradeType.SPEED) { list.add(EnumChatFormatting.RED + "Mining Drill:"); list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index 6da8ca650..78e5a8ff1 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -46,8 +46,9 @@ public class ItemMold extends Item { registerMold(new MoldShape( 2, S, "ingot", MaterialShapes.INGOT)); registerMold(new MoldShape( 3, S, "plate", MaterialShapes.PLATE)); registerMold(new MoldWire( 4, S, "wire")); - + registerMold(new MoldShape( 19, S, "plate_cast", MaterialShapes.CASTPLATE)); + registerMold(new MoldShape( 20, S, "wire_dense", MaterialShapes.DENSEWIRE)); registerMold(new MoldMulti( 5, S, "blade", MaterialShapes.INGOT.q(3), Mats.MAT_TITANIUM, new ItemStack(ModItems.blade_titanium), @@ -76,6 +77,7 @@ public class ItemMold extends Item { registerMold(new MoldShape( 10, L, "ingots", MaterialShapes.INGOT, 9)); registerMold(new MoldShape( 11, L, "plates", MaterialShapes.PLATE, 9)); + registerMold(new MoldShape( 21, L, "wires_dense", MaterialShapes.DENSEWIRE, 9)); registerMold(new MoldBlock( 12, L, "block", MaterialShapes.BLOCK)); registerMold(new MoldSingle( 13, L, "pipes", new ItemStack(ModItems.pipes_steel), Mats.MAT_STEEL, MaterialShapes.BLOCK.q(3))); diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 68158958f..960a84874 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -295,10 +296,10 @@ public class ItemRBMKRod extends Item { String reactivity = EnumChatFormatting.YELLOW + "" + ((int)(this.reactivity * enrichment * 1000D) / 1000D) + EnumChatFormatting.WHITE; String enrichmentPer = EnumChatFormatting.GOLD + " (" + ((int)(enrichment * 1000D) / 10D) + "%)"; - return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); + return String.format(Locale.US, function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); } - return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); + return String.format(Locale.US, function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); } public static enum EnumDepleteFunc { diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 1cbdb729e..151a27f34 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -3,6 +3,7 @@ package com.hbm.items.machine; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import javax.annotation.CheckForNull; @@ -156,17 +157,17 @@ public class ItemRTGPellet extends Item { list.add(BobMathUtil.toPercentage(instance.getLifespan(stack), instance.getMaxLifespan())); if (bool) { list.add("EXTENDED INFO:"); - list.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); + list.add(String.format(Locale.US, "%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); - list.add(String.format("Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); - list.add(String.format("Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); + list.add(String.format(Locale.US, "Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); + list.add(String.format(Locale.US, "Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); } } } public String getData() { - return String.format("%s (%s HE/t) %s", I18nUtil.resolveKey(getUnlocalizedName().concat(".name")), getHeat(), (getDoesDecay() ? " (decays)" : "")); + return String.format(Locale.US, "%s (%s HE/t) %s", I18nUtil.resolveKey(getUnlocalizedName().concat(".name")), getHeat(), (getDoesDecay() ? " (decays)" : "")); } public static HashMap getRecipeMap() { diff --git a/src/main/java/com/hbm/items/machine/ItemStamp.java b/src/main/java/com/hbm/items/machine/ItemStamp.java index fe6986d90..75ed425fa 100644 --- a/src/main/java/com/hbm/items/machine/ItemStamp.java +++ b/src/main/java/com/hbm/items/machine/ItemStamp.java @@ -10,19 +10,27 @@ import net.minecraft.item.ItemStack; public class ItemStamp extends Item { - public StampType type; + protected StampType type; public static final HashMap> stamps = new HashMap(); public ItemStamp(int dura, StampType type) { this.setMaxDamage(dura); this.type = type; + if(type != null) { + this.addStampToList(this, 0, type); + } + } + + protected void addStampToList(Item item, int meta, StampType type) { List list = stamps.get(type); if(list == null) list = new ArrayList(); - list.add(new ItemStack(this)); + ItemStack stack = new ItemStack(item, 1, meta); + + list.add(stack); stamps.put(type, list); } @@ -32,16 +40,27 @@ public class ItemStamp extends Item { list.add("[CREATED USING TEMPLATE FOLDER]"); } - //TODO: give UFFR one (1) good boy token + /** Params can't take an ItemStack, for some reason it crashes during init */ + public StampType getStampType(Item item, int meta) { + return type; + } + public static enum StampType { FLAT, PLATE, WIRE, CIRCUIT, - //DISC, C357, C44, C50, - C9; + C9, + PRINTING1, + PRINTING2, + PRINTING3, + PRINTING4, + PRINTING5, + PRINTING6, + PRINTING7, + PRINTING8; } } diff --git a/src/main/java/com/hbm/items/machine/ItemStampBook.java b/src/main/java/com/hbm/items/machine/ItemStampBook.java new file mode 100644 index 000000000..6fa9906f6 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemStampBook.java @@ -0,0 +1,42 @@ +package com.hbm.items.machine; + +import java.util.List; +import java.util.Locale; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemStampBook extends ItemStamp { + + public ItemStampBook() { + super(0, null); + + for(int i = 0; i < 8; i++) { + StampType type = getStampType(this, i); + this.addStampToList(this, i, type); + } + } + + @Override + public StampType getStampType(Item item, int meta) { + meta %= 8; + return StampType.values()[StampType.PRINTING1.ordinal() + meta]; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < 8; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + StampType type = this.getStampType(stack.getItem(), stack.getItemDamage()); + return super.getUnlocalizedName() + "." + type.name().toLowerCase(Locale.US); + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java index be5e0ad7f..f4dfbeae7 100644 --- a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java @@ -49,7 +49,7 @@ public class ItemWatzPellet extends ItemEnumMulti { NQD( 0x4B4B4B, 0x121212, 2_000, 20, 0.01D, new FunctionLinear(2D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null), NQR( 0x2D2D2D, 0x0B0B0B, 2_500, 30, 0.01D, new FunctionLinear(1.5D), new FunctionSqrt(1D/25D).withOff(25D * 25D), null); - public double yield = 1_000_000_000; + public double yield = 500_000_000; public int colorLight; public int colorDark; public double mudContent; //how much mud per reaction flux should be produced @@ -64,7 +64,7 @@ public class ItemWatzPellet extends ItemEnumMulti { this.colorDark = colorDark; this.passive = passive; this.heatEmission = heatEmission; - this.mudContent = mudContent; + this.mudContent = mudContent / 2D; this.burnFunc = burnFunction; this.heatDiv = heatDivisor; this.absorbFunc = absorbFunction; diff --git a/src/main/java/com/hbm/items/special/ItemAntiCheat.java b/src/main/java/com/hbm/items/special/ItemAntiCheat.java deleted file mode 100644 index ddb62457f..000000000 --- a/src/main/java/com/hbm/items/special/ItemAntiCheat.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hbm.items.special; - -import com.hbm.items.ItemCustomLore; - -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemAntiCheat extends ItemCustomLore { - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int j, boolean b) { - - /*if(stack.getItemDamage() != 34) { - - if(entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer)entity; - for(ItemStack s : player.inventory.mainInventory) { - player.inventory.consumeInventoryItem(ModItems.ingot_euphemium); - player.inventory.consumeInventoryItem(ModItems.nugget_euphemium); - } - } - - //entity.attackEntityFrom(ModDamageSource.cheater, Float.POSITIVE_INFINITY); - for(int i = 0; i < 100; i++) - entity.attackEntityFrom(ModDamageSource.cheater, 10000); - - //if(!world.isRemote) - // ExplosionChaos.antiCheat(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ, 20); - }*/ - } - -} diff --git a/src/main/java/com/hbm/items/special/ItemAutogen.java b/src/main/java/com/hbm/items/special/ItemAutogen.java index 1e1f1d075..7e91dd37f 100644 --- a/src/main/java/com/hbm/items/special/ItemAutogen.java +++ b/src/main/java/com/hbm/items/special/ItemAutogen.java @@ -64,7 +64,7 @@ public class ItemAutogen extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - + for(NTMMaterial mat : Mats.orderedList) { if(mat.shapes.contains(this.shape)) { list.add(new ItemStack(item, 1, mat.id)); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index f4362a93f..ca2ad4853 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -94,9 +94,11 @@ public class ItemBedrockOre extends ItemEnumMulti { TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products - THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products + THORIUM("Thorium232", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON), //i guess? - FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM); //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings + FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM), //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings + HEMATITE("Hematite", 0xA37B72, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite + MALACHITE("Malachite", 0x66B48C, B_SULFUR, B_SULFUR, B_SULFUR); //sulfur sulfur sulfur sulfur public String oreName; public int color; diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 007d31a91..6ecadd476 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -44,9 +44,9 @@ public class ItemTrain extends ItemEnumMulti { public static enum EnumTrainType { // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake - CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"), + CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes"), CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"), - TUNNEL_BORE(TrainTunnelBore.class, "NONE", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"); + TUNNEL_BORE(TrainTunnelBore.class, "NONE", "Standard Gauge", "10m/s", "0.2m/s²", "<1m/s", "Yes"); public Class train; public String engine; @@ -78,20 +78,24 @@ public class ItemTrain extends ItemEnumMulti { try { train = type.train.getConstructor(World.class).newInstance(world); } catch(Exception e) { } if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { - if(!world.isRemote) { - train.setPosition(x + fx, y + fy, z + fz); - BlockPos anchor = train.getCurrentAnchorPos(); - train.rotationYaw = entity.rotationYaw; - Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); + + train.setPosition(x + fx, y + fy, z + fz); + BlockPos anchor = train.getCurrentAnchorPos(); + train.rotationYaw = entity.rotationYaw; + Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); + if(corePos != null) { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, train.getCollisionSpan() - train.getLengthSpan())); Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, train.getCollisionSpan() - train.getLengthSpan())); - train.rotationYaw = train.generateYaw(frontPos, backPos); - world.spawnEntityInWorld(train); + if(frontPos != null && backPos != null) { + if(!world.isRemote) { + train.rotationYaw = train.generateYaw(frontPos, backPos); + world.spawnEntityInWorld(train); + } + stack.stackSize--; + return true; + } } - - stack.stackSize--; - return true; } } diff --git a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java index ebfdbe208..1076552b1 100644 --- a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java +++ b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java @@ -75,7 +75,7 @@ public class ItemAnalyzer extends Item { if(te instanceof IFluidDuct) { player.addChatMessage(new ChatComponentText( - "Duct Type: " + I18n.format(((IFluidDuct)te).getType().getUnlocalizedName()))); + "Duct Type: " + ((IFluidDuct)te).getType().getLocalizedName())); } if(te instanceof TileEntityPylon) { diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 211a203c6..0776efa01 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -1,6 +1,7 @@ package com.hbm.items.tool; import java.util.List; +import java.util.Locale; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -9,7 +10,6 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import api.hbm.block.IToolable.ToolType; @@ -69,7 +69,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { initNBT(stack); } - return stack.stackTagCompound.getInteger(type.getUnlocalizedName()); + return stack.stackTagCompound.getInteger(type.getName()); } public int getMaxFill(FluidType type) { @@ -85,7 +85,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { initNBT(stack); } - stack.stackTagCompound.setInteger(type.getUnlocalizedName(), fill); + stack.stackTagCompound.setInteger(type.getName(), fill); } public void initNBT(ItemStack stack) { @@ -199,7 +199,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { @SideOnly(Side.CLIENT) private String getFillGauge(ItemStack stack, FluidType type) { - return I18nUtil.resolveKey(type.getUnlocalizedName()) + ": " + String.format("%,d", this.getFill(stack, type)) + " / " + String.format("%,d", this.getMaxFill(type)); + return type.getLocalizedName() + ": " + String.format(Locale.US, "%,d", this.getFill(stack, type)) + " / " + String.format(Locale.US, "%,d", this.getMaxFill(type)); } @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } diff --git a/src/main/java/com/hbm/items/tool/ItemBoatRubber.java b/src/main/java/com/hbm/items/tool/ItemBoatRubber.java new file mode 100644 index 000000000..c7b8ec137 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemBoatRubber.java @@ -0,0 +1,102 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.entity.item.EntityBoatRubber; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ItemBoatRubber extends Item { + + public ItemBoatRubber() { + this.maxStackSize = 1; + this.setCreativeTab(CreativeTabs.tabTransport); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + float f = 1.0F; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f; + float yaw = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f; + double posX = player.prevPosX + (player.posX - player.prevPosX) * (double) f; + double posY = player.prevPosY + (player.posY - player.prevPosY) * (double) f + 1.62D - (double) player.yOffset; + double posZ = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) f; + float compZ = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI); + float compX = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI); + float mult = -MathHelper.cos(-pitch * 0.017453292F); + float lookY = MathHelper.sin(-pitch * 0.017453292F); + float lookX = compX * mult; + float lookZ = compZ * mult; + double reach = 5.0D; + + Vec3 pos = Vec3.createVectorHelper(posX, posY, posZ); + Vec3 target = pos.addVector((double) lookX * reach, (double) lookY * reach, (double) lookZ * reach); + MovingObjectPosition mop = world.rayTraceBlocks(pos, target, true); + + if(mop == null) { + return stack; + + } else { + Vec3 look = player.getLook(f); + boolean flag = false; + double width = 1.0D; + List list = world.getEntitiesWithinAABBExcludingEntity(player, player.boundingBox.addCoord(look.xCoord * reach, look.yCoord * reach, look.zCoord * reach).expand(width, width, width)); + + for(int i = 0; i < list.size(); ++i) { + Entity entity = (Entity) list.get(i); + + if(entity.canBeCollidedWith()) { + float f10 = entity.getCollisionBorderSize(); + AxisAlignedBB axisalignedbb = entity.boundingBox.expand((double) f10, (double) f10, (double) f10); + + if(axisalignedbb.isVecInside(pos)) { + flag = true; + } + } + } + + if(flag) { + return stack; + + } else { + if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + int x = mop.blockX; + int y = mop.blockY; + int z = mop.blockZ; + + if(world.getBlock(x, y, z) == Blocks.snow_layer) { + --y; + } + + EntityBoatRubber entityboat = new EntityBoatRubber(world, (double) ((float) x + 0.5F), (double) ((float) y + 1.0F), (double) ((float) z + 0.5F)); + entityboat.rotationYaw = (float) (((MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) - 1) * 90); + + if(!world.getCollidingBoundingBoxes(entityboat, entityboat.boundingBox.expand(-0.1D, -0.1D, -0.1D)).isEmpty()) { + return stack; + } + + if(!world.isRemote) { + world.spawnEntityInWorld(entityboat); + } + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + } + + return stack; + } + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index 34440b70a..437aa97e2 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -1,6 +1,6 @@ package com.hbm.items.tool; -import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.IAnimatedItem; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -50,14 +50,14 @@ public class ItemBoltgun extends Item implements IAnimatedItem { World world = player.worldObj; if(!entity.isEntityAlive()) return false; - Item[] bolts = new Item[] { ModItems.bolt_dura_steel, ModItems.bolt_tungsten, Item.getItemFromBlock(ModBlocks.steel_beam) }; + ItemStack[] bolts = new ItemStack[] { Mats.MAT_STEEL.make(ModItems.bolt), Mats.MAT_TUNGSTEN.make(ModItems.bolt), Mats.MAT_DURA.make(ModItems.bolt)}; - for(Item item : bolts) { + for(ItemStack bolt : bolts) { for(int i = 0; i < player.inventory.getSizeInventory(); i++) { ItemStack slot = player.inventory.getStackInSlot(i); if(slot != null) { - if(slot.getItem() == item) { + if(slot.getItem() == bolt.getItem() && slot.getItemDamage() == bolt.getItemDamage()) { if(!world.isRemote) { world.playSoundAtEntity(entity, "hbm:item.boltgun", 1.0F, 1.0F); player.inventory.decrStackSize(i, 1); diff --git a/src/main/java/com/hbm/items/tool/ItemBombCaller.java b/src/main/java/com/hbm/items/tool/ItemBombCaller.java index 9d39a924d..5ea5c732e 100644 --- a/src/main/java/com/hbm/items/tool/ItemBombCaller.java +++ b/src/main/java/com/hbm/items/tool/ItemBombCaller.java @@ -7,6 +7,7 @@ import com.hbm.lib.Library; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import com.hbm.world.WorldUtil; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -16,101 +17,81 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class ItemBombCaller extends Item { - + public ItemBombCaller() { super(); - this.setHasSubtypes(true); + this.setHasSubtypes(true); } - + @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add("Aim & click to call an airstrike!"); - if(itemstack.getItemDamage() == 0) - list.add("Type: Carpet bombing"); - if(itemstack.getItemDamage() == 1) - list.add("Type: Napalm"); - if(itemstack.getItemDamage() == 2) - list.add("Type: Poison gas"); - if(itemstack.getItemDamage() == 3) - list.add("Type: Agent orange"); - if(itemstack.getItemDamage() == 4) - list.add("Type: Atomic bomb"); - if(itemstack.getItemDamage() == 5) - list.add("Type: VT stinger rockets"); - if(itemstack.getItemDamage() == 6) - list.add("Type: PIP OH GOD"); - if(itemstack.getItemDamage() == 7) - list.add("Type: Cloud the cloud oh god the cloud"); + switch (stack.getItemDamage()) { + case 0: list.add("Type: Carpet bombing"); break; + case 1: list.add("Type: Napalm"); break; + case 2: list.add("Type: Poison gas"); break; + case 3: list.add("Type: Agent orange"); break; + case 4: list.add("Type: Atomic bomb"); break; + case 5: list.add("Type: VT stinger rockets"); break; + case 6: list.add("Type: PIP OH GOD"); break; + case 7: list.add("Type: Cloud the cloud oh god the cloud"); break; + default: list.add("Type: INVALID, Report it to mod creator"); + + } + } - + @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) - { + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { MovingObjectPosition pos = Library.rayTrace(player, 500, 1); int x = pos.blockX; int y = pos.blockY; int z = pos.blockZ; - - boolean b = false; - - if(!world.isRemote) + + if(!world.isRemote) { + EntityBomber bomber; + switch(stack.getItemDamage()) { + + case 1: bomber = EntityBomber.statFacNapalm(world, x, y, z); break; + case 2: bomber = EntityBomber.statFacChlorine(world, x, y, z); break; + case 3: bomber = EntityBomber.statFacOrange(world, x, y, z); break; + case 4: bomber = EntityBomber.statFacABomb(world, x, y, z); break; + case 5: bomber = EntityBomber.statFacStinger(world, x, y, z); break; + case 6: bomber = EntityBomber.statFacBoxcar(world, x, y, z); break; + case 7: bomber = EntityBomber.statFacPC(world, x, y, z); break; + default: bomber = EntityBomber.statFacCarpet(world, x, y, z); + + } + WorldUtil.loadAndSpawnEntityInWorld(bomber); + player.addChatMessage(new ChatComponentText("Called in airstrike!")); + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - if(stack.getItemDamage() == 0) - if(world.spawnEntityInWorld(EntityBomber.statFacCarpet(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 1) - if(world.spawnEntityInWorld(EntityBomber.statFacNapalm(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 2) - if(world.spawnEntityInWorld(EntityBomber.statFacChlorine(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 3) - if(world.spawnEntityInWorld(EntityBomber.statFacOrange(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 4) - if(world.spawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 5) - if(world.spawnEntityInWorld(EntityBomber.statFacStinger(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 6) - if(world.spawnEntityInWorld(EntityBomber.statFacBoxcar(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 7) - if(world.spawnEntityInWorld(EntityBomber.statFacPC(world, x, y, z))) - b = true; - - if(b) { - player.addChatMessage(new ChatComponentText("Called in airstrike!")); - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - } else { - world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); - } } - - stack.stackSize -= b ? 1 : 0; - - return stack; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) - { - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 0)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 2)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 3)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 4)); - } - @Override + stack.stackSize -= 1; + + return stack; + } + + @Override @SideOnly(Side.CLIENT) - public boolean hasEffect(ItemStack p_77636_1_) - { - return p_77636_1_.getItemDamage() >= 4; - } + public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) + { + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 0)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 2)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 3)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 4)); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack p_77636_1_) + { + return p_77636_1_.getItemDamage() >= 4; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java new file mode 100644 index 000000000..6c46decee --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -0,0 +1,197 @@ +package com.hbm.items.tool; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.ArrayList; +import java.util.List; + +public class ItemCMStructure extends Item implements ILookOverlay { + + private static File file = new File(MainRegistry.configHbmDir, "CMstructureOutput.txt"); + + public static BlockPos getAnchor(ItemStack stack) { + + if(!stack.hasTagCompound()) { + return null; + } + + return new BlockPos(stack.stackTagCompound.getInteger("anchorX"), stack.stackTagCompound.getInteger("anchorY"), stack.stackTagCompound.getInteger("anchorZ")); + } + + public static void setAnchor(ItemStack stack, int x, int y, int z) { + + if(stack.stackTagCompound == null) { + stack.stackTagCompound = new NBTTagCompound(); + } + + stack.stackTagCompound.setInteger("anchorX", x); + stack.stackTagCompound.setInteger("anchorY", y); + stack.stackTagCompound.setInteger("anchorZ", z); + } + + public static void writeToFile(File config, ItemStack stack, World world) { + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + int x1 = stack.stackTagCompound.getInteger("x1"); + int y1 = stack.stackTagCompound.getInteger("y1"); + int z1 = stack.stackTagCompound.getInteger("z1"); + int x2 = stack.stackTagCompound.getInteger("x2"); + int y2 = stack.stackTagCompound.getInteger("y2"); + int z2 = stack.stackTagCompound.getInteger("z2"); + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(anchorX, anchorY, anchorZ)); + int minX = Math.min(x1, x2); + int maxX = Math.max(x1, x2); + int minY = Math.min(y1, y2); + int maxY = Math.max(y1, y2); + int minZ = Math.min(z1, z2); + int maxZ = Math.max(z1, z2); + + try { + JsonWriter writer = new JsonWriter(new FileWriter(config)); + writer.setIndent(" "); + writer.beginObject(); + writer.name("components").beginArray(); + + for(int x = minX; x <= maxX; x++) { + for(int y = minY; y <= maxY; y++) { + for(int z = minZ; z <= maxZ; z++) { + + int compY = y - anchorY; + int compX = 0; + int compZ = 0; + + if(dir == ForgeDirection.SOUTH) { + compX = anchorX - x; + compZ = anchorZ - z; + } + if(dir == ForgeDirection.NORTH) { + compX = x - anchorX; + compZ = z - anchorZ; + } + + if(dir == ForgeDirection.WEST) { + compZ = x - anchorX; + compX = anchorZ - z; + } + if(dir == ForgeDirection.EAST) { + compZ = anchorX - x; + compX = z - anchorZ; + } + + if(x == anchorX && y == anchorY && z == anchorZ) continue; + Block block = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + if(block == Blocks.air) continue; + + writer.beginObject().setIndent(""); + writer.name("block").value(Block.blockRegistry.getNameForObject(block)); + writer.name("x").value(compX); + writer.name("y").value(compY); + writer.name("z").value(compZ); + writer.name("metas").beginArray().value(meta).endArray(); + writer.endObject().setIndent(" "); + } + } + } + writer.endArray(); + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + Block b = world.getBlock(x, y, z); + + if(b == ModBlocks.cm_anchor) { + this.setAnchor(stack, x, y, z); + return true; + } + + if(this.getAnchor(stack) == null) { + return false; + } + if(!stack.stackTagCompound.hasKey("x1")) { + stack.stackTagCompound.setInteger("x1", x); + stack.stackTagCompound.setInteger("y1", y); + stack.stackTagCompound.setInteger("z1", z); + } else if(!stack.stackTagCompound.hasKey("x2")) { + stack.stackTagCompound.setInteger("x2", x); + stack.stackTagCompound.setInteger("y2", y); + stack.stackTagCompound.setInteger("z2", z); + } else { + writeToFile(file, stack, world); + stack.stackTagCompound.removeTag("x1"); + stack.stackTagCompound.removeTag("y1"); + stack.stackTagCompound.removeTag("z1"); + stack.stackTagCompound.removeTag("x2"); + stack.stackTagCompound.removeTag("y2"); + stack.stackTagCompound.removeTag("z2"); + } + return true; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + list.add(EnumChatFormatting.YELLOW + "Click Custom Machine Structure Positioning Anchor to"); + list.add(EnumChatFormatting.YELLOW + "Confirm the location of the custom machine core block."); + list.add(EnumChatFormatting.YELLOW + "Output all blocks between Position1 and Position2 with"); + list.add(EnumChatFormatting.YELLOW + "metadata to \"CMstructureOutput.txt\" in hbmConfig."); + } + + @Override + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItem(); + List text = new ArrayList(); + + BlockPos anchor = getAnchor(stack); + + if(anchor == null) { + + text.add(EnumChatFormatting.RED + "No Anchor"); + } else { + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + text.add(EnumChatFormatting.GOLD + "Anchor: " + anchorX + " / " + anchorY + " / " + anchorZ); + if(stack.stackTagCompound.hasKey("x1")) { + int x1 = stack.stackTagCompound.getInteger("x1"); + int y1 = stack.stackTagCompound.getInteger("y1"); + int z1 = stack.stackTagCompound.getInteger("z1"); + + text.add(EnumChatFormatting.YELLOW + "Position1: " + x1 + " / " + y1 + " / " + z1); + } + if(stack.stackTagCompound.hasKey("x2")) { + int x2 = stack.stackTagCompound.getInteger("x2"); + int y2 = stack.stackTagCompound.getInteger("y2"); + int z2 = stack.stackTagCompound.getInteger("z2"); + text.add(EnumChatFormatting.YELLOW + "Position2: " + x2 + " / " + y2 + " / " + z2); + } + } + + ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java b/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java new file mode 100644 index 000000000..71e8d80c5 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java @@ -0,0 +1,75 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public abstract class ItemCoordinateBase extends Item { + + public static BlockPos getPosition(ItemStack stack) { + + if(stack.hasTagCompound()) { + return new BlockPos(stack.stackTagCompound.getInteger("posX"), stack.stackTagCompound.getInteger("posY"), stack.stackTagCompound.getInteger("posZ")); + } + + return null; + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + if(this.canGrabCoordinateHere(world, x, y, z)) { + + if(!world.isRemote) { + BlockPos pos = this.getCoordinates(world, x, y, z); + + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("posX", pos.getX()); + if(includeY()) stack.stackTagCompound.setInteger("posY", pos.getY()); + stack.stackTagCompound.setInteger("posZ", pos.getZ()); + + this.onTargetSet(world, pos.getX(), pos.getY(), pos.getZ(), player); + } + + return true; + } + + return false; + } + + /** Whether this position can be saved or if the position target is valid */ + public abstract boolean canGrabCoordinateHere(World world, int x, int y, int z); + + /** Whether this linking item saves the Y coordinate */ + public boolean includeY() { + return true; + } + + /** Modified the saved coordinates, for example detecting the core for multiblocks */ + public BlockPos getCoordinates(World world, int x, int y, int z) { + return new BlockPos(x, y, z); + } + + /** Extra on successful target set, eg. sounds */ + public void onTargetSet(World world, int x, int y, int z, EntityPlayer player) { } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + if(stack.hasTagCompound()) { + list.add("X: " + stack.stackTagCompound.getInteger("posX")); + if(includeY()) list.add("Y: " + stack.stackTagCompound.getInteger("posY")); + list.add("Z: " + stack.stackTagCompound.getInteger("posZ")); + } else { + list.add(EnumChatFormatting.RED + "No position set!"); + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java new file mode 100644 index 000000000..e2c7b5ffe --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -0,0 +1,52 @@ +package com.hbm.items.tool; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.items.ItemEnumMulti; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemDrone extends ItemEnumMulti { + + public ItemDrone() { + super(EnumDroneType.class, true, true); + this.setCreativeTab(MainRegistry.machineTab); + } + + public static enum EnumDroneType { + PATROL, + PATROL_CHUNKLOADING, + PATROL_EXPRESS, + PATROL_EXPRESS_CHUNKLOADING, + REQUEST + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer entity, World world, int x, int y, int z, int side, float fx, float fy, float fz) { + + if(side != 1) return false; + if(world.isRemote) return true; + + Entity toSpawn = null; + + if(stack.getItemDamage() < 4) { + toSpawn = new EntityDeliveryDrone(world); + if(stack.getItemDamage() % 2 == 0) { + ((EntityDeliveryDrone) toSpawn).setChunkLoading(); + } + if(stack.getItemDamage() > 1) { + ((EntityDeliveryDrone) toSpawn).getDataWatcher().updateObject(11, (byte) 1); + } + } + + if(toSpawn != null) { + toSpawn.setPosition(x + 0.5, y + 1, z + 0.5); + world.spawnEntityInWorld(toSpawn); + } + + return false; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemDroneLinker.java b/src/main/java/com/hbm/items/tool/ItemDroneLinker.java new file mode 100644 index 000000000..31489ea8d --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDroneLinker.java @@ -0,0 +1,101 @@ +package com.hbm.items.tool; + +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.IDroneLinkable; +import com.hbm.util.ChatBuilder; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemDroneLinker extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof IDroneLinkable) { + + if(!world.isRemote) { + if(!stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("x", x); + stack.stackTagCompound.setInteger("y", y); + stack.stackTagCompound.setInteger("z", z); + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Set initial position!").color(EnumChatFormatting.AQUA).flush()); + + } else { + + int tx = stack.stackTagCompound.getInteger("x"); + int ty = stack.stackTagCompound.getInteger("y"); + int tz = stack.stackTagCompound.getInteger("z"); + + TileEntity prev = world.getTileEntity(tx, ty, tz); + + if(prev instanceof IDroneLinkable) { + + BlockPos dest = ((IDroneLinkable) tile).getPoint(); + ((IDroneLinkable) prev).setNextTarget(dest.getX(), dest.getY(), dest.getZ()); + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Link set!").color(EnumChatFormatting.AQUA).flush()); + } else { + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Previous link lost!").color(EnumChatFormatting.RED).flush()); + } + + stack.stackTagCompound.setInteger("x", x); + stack.stackTagCompound.setInteger("y", y); + stack.stackTagCompound.setInteger("z", z); + } + } + + return true; + } + + return false; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) { + + if(world.isRemote && inhand) { + if(stack.hasTagCompound()) { + int x = stack.stackTagCompound.getInteger("x"); + int y = stack.stackTagCompound.getInteger("y"); + int z = stack.stackTagCompound.getInteger("z"); + MainRegistry.proxy.displayTooltip("Prev pos: " + x + " / " + y + " / " + z, MainRegistry.proxy.ID_DRONE); + } + } + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote && stack.hasTagCompound()) { + stack.stackTagCompound = null; + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Position cleared!").color(EnumChatFormatting.GREEN).flush()); + } + + return stack; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemFusionCore.java b/src/main/java/com/hbm/items/tool/ItemFusionCore.java index b99f8fa16..afa388fa5 100644 --- a/src/main/java/com/hbm/items/tool/ItemFusionCore.java +++ b/src/main/java/com/hbm/items/tool/ItemFusionCore.java @@ -23,32 +23,32 @@ public class ItemFusionCore extends Item { @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(ArmorFSB.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[3].getItem() instanceof ArmorFSBPowered) { - - for(ItemStack st : player.inventory.armorInventory) { - - if(st == null) - continue; - - if(st.getItem() instanceof IBatteryItem) { - - long maxcharge = ((IBatteryItem)st.getItem()).getMaxCharge(); - long charge = ((IBatteryItem)st.getItem()).getCharge(st); - long newcharge = Math.min(charge + this.charge, maxcharge); - - ((IBatteryItem)st.getItem()).setCharge(st, newcharge); - } - } - - stack.stackSize--; - - world.playSoundAtEntity(player, "hbm:item.battery", 1.0F, 1.0F); - } - + + if(ArmorFSB.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[2].getItem() instanceof ArmorFSBPowered) { + + for(ItemStack st : player.inventory.armorInventory) { + + if(st == null) + continue; + + if(st.getItem() instanceof IBatteryItem) { + + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(); + long charge = ((IBatteryItem) st.getItem()).getCharge(st); + long newcharge = Math.min(charge + this.charge, maxcharge); + + ((IBatteryItem) st.getItem()).setCharge(st, newcharge); + } + } + + stack.stackSize--; + + world.playSoundAtEntity(player, "hbm:item.battery", 1.0F, 1.0F); + } + return stack; } - + @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java index 935a37937..61db24d6e 100644 --- a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java +++ b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java @@ -24,7 +24,7 @@ import net.minecraft.world.World; public class ItemMirrorTool extends Item { @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { Block b = world.getBlock(x, y, z); diff --git a/src/main/java/com/hbm/items/tool/ItemModDoor.java b/src/main/java/com/hbm/items/tool/ItemModDoor.java index 6ed3f84f3..e7ead99c9 100644 --- a/src/main/java/com/hbm/items/tool/ItemModDoor.java +++ b/src/main/java/com/hbm/items/tool/ItemModDoor.java @@ -6,105 +6,82 @@ import com.hbm.items.ModItems; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class ItemModDoor extends Item -{ - public ItemModDoor() - { - this.maxStackSize = 1; - this.setCreativeTab(CreativeTabs.tabRedstone); - } +public class ItemModDoor extends Item { + + public ItemModDoor() { + this.maxStackSize = 1; + this.setCreativeTab(CreativeTabs.tabRedstone); + } - /** - * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return - * True if something happen and false if it don't. This is for ITEMS, not BLOCKS - */ - public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) - { - if (p_77648_7_ != 1) - { - return false; - } - else - { - ++p_77648_5_; - Block block; + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + if(side != 1) { + return false; + } else { + ++y; + + Block block = Blocks.air; - if(this == ModItems.door_metal) - block = ModBlocks.door_metal; - else if(this == ModItems.door_office) - block = ModBlocks.door_office; - else - block = ModBlocks.door_bunker; + if(this == ModItems.door_metal) block = ModBlocks.door_metal; + if(this == ModItems.door_office) block = ModBlocks.door_office; + if(this == ModItems.door_bunker) block = ModBlocks.door_bunker; + if(this == ModItems.door_red) block = ModBlocks.door_red; - if (p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_) && p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_ + 1, p_77648_6_, p_77648_7_, p_77648_1_)) - { - if (!block.canPlaceBlockAt(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_)) - { - return false; - } - else - { - int i1 = MathHelper.floor_double((double)((p_77648_2_.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; - placeDoorBlock(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_, i1, block); - --p_77648_1_.stackSize; - return true; - } - } - else - { - return false; - } - } - } + if(player.canPlayerEdit(x, y, z, side, stack) && player.canPlayerEdit(x, y + 1, z, side, stack)) { + if(!block.canPlaceBlockAt(world, x, y, z)) { + return false; + } else { + int i1 = MathHelper.floor_double((double) ((player.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; + placeDoorBlock(world, x, y, z, i1, block); + --stack.stackSize; + return true; + } + } else { + return false; + } + } + } - public static void placeDoorBlock(World p_150924_0_, int p_150924_1_, int p_150924_2_, int p_150924_3_, int p_150924_4_, Block p_150924_5_) - { - byte b0 = 0; - byte b1 = 0; + public static void placeDoorBlock(World world, int x, int y, int z, int meta, Block door) { + byte offsetX = 0; + byte offsetZ = 0; - if (p_150924_4_ == 0) - { - b1 = 1; - } + if(meta == 0) { + offsetZ = 1; + } - if (p_150924_4_ == 1) - { - b0 = -1; - } + if(meta == 1) { + offsetX = -1; + } - if (p_150924_4_ == 2) - { - b1 = -1; - } + if(meta == 2) { + offsetZ = -1; + } - if (p_150924_4_ == 3) - { - b0 = 1; - } + if(meta == 3) { + offsetX = 1; + } - int i1 = (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1).isNormalCube() ? 1 : 0); - int j1 = (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1).isNormalCube() ? 1 : 0); - boolean flag = p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1) == p_150924_5_; - boolean flag1 = p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1) == p_150924_5_; - boolean flag2 = false; + int i1 = (world.getBlock(x - offsetX, y, z - offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x - offsetX, y + 1, z - offsetZ).isNormalCube() ? 1 : 0); + int j1 = (world.getBlock(x + offsetX, y, z + offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x + offsetX, y + 1, z + offsetZ).isNormalCube() ? 1 : 0); + boolean flag = world.getBlock(x - offsetX, y, z - offsetZ) == door || world.getBlock(x - offsetX, y + 1, z - offsetZ) == door; + boolean flag1 = world.getBlock(x + offsetX, y, z + offsetZ) == door || world.getBlock(x + offsetX, y + 1, z + offsetZ) == door; + boolean flag2 = false; - if (flag && !flag1) - { - flag2 = true; - } - else if (j1 > i1) - { - flag2 = true; - } + if(flag && !flag1) { + flag2 = true; + } else if(j1 > i1) { + flag2 = true; + } - p_150924_0_.setBlock(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_, p_150924_4_, 2); - p_150924_0_.setBlock(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_, 8 | (flag2 ? 1 : 0), 2); - p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_); - p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_); - } + world.setBlock(x, y, z, door, meta, 2); + world.setBlock(x, y + 1, z, door, 8 | (flag2 ? 1 : 0), 2); + world.notifyBlocksOfNeighborChange(x, y, z, door); + world.notifyBlocksOfNeighborChange(x, y + 1, z, door); + } } diff --git a/src/main/java/com/hbm/items/tool/ItemPlasticBag.java b/src/main/java/com/hbm/items/tool/ItemPlasticBag.java new file mode 100644 index 000000000..1d575e314 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPlasticBag.java @@ -0,0 +1,126 @@ +package com.hbm.items.tool; + +import com.hbm.inventory.container.ContainerPlasticBag; +import com.hbm.inventory.gui.GUIPlasticBag; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ItemPlasticBag extends Item implements IGUIProvider { + + public ItemPlasticBag() { + this.setMaxStackSize(1); + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 1; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerPlasticBag(player.inventory, new InventoryPlasticBag(player, player.getHeldItem())); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIPlasticBag(player.inventory, new InventoryPlasticBag(player, player.getHeldItem())); + } + + public static class InventoryPlasticBag implements IInventory { + + public final EntityPlayer player; + public final ItemStack bag; + public ItemStack[] slots; + + public InventoryPlasticBag(EntityPlayer player, ItemStack box) { + this.player = player; + this.bag = box; + slots = new ItemStack[this.getSizeInventory()]; + + if(!box.hasTagCompound()) + box.setTagCompound(new NBTTagCompound()); + + ItemStack[] fromNBT = ItemStackUtil.readStacksFromNBT(box, slots.length); + + if(fromNBT != null) { + for(int i = 0; i < slots.length; i++) { + slots[i] = fromNBT[i]; + } + } + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + ItemStack stack = getStackInSlot(slot); + if (stack != null) { + if (stack.stackSize > amount) { + stack = stack.splitStack(amount); + markDirty(); + } else { + setInventorySlotContents(slot, null); + } + } + return stack; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + ItemStack stack = getStackInSlot(slot); + setInventorySlotContents(slot, null); + return stack; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + + if(stack != null) { + stack.stackSize = Math.min(stack.stackSize, this.getInventoryStackLimit()); + } + + slots[slot] = stack; + markDirty(); + } + + @Override + public void markDirty() { + + for(int i = 0; i < getSizeInventory(); ++i) { + if(getStackInSlot(i) != null && getStackInSlot(i).stackSize == 0) { + slots[i] = null; + } + } + + ItemStackUtil.addStacksToNBT(bag, slots); + } + + @Override public int getSizeInventory() { return 1; } + @Override public ItemStack getStackInSlot(int slot) { return slots[slot]; } + @Override public String getInventoryName() { return "container.plasticBag"; } + @Override public boolean hasCustomInventoryName() { return bag.hasDisplayName(); } + @Override public int getInventoryStackLimit() { return 1; } + @Override public boolean isUseableByPlayer(EntityPlayer player) { return true; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index 4ff3cc55f..1776249cf 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -27,16 +27,16 @@ public class ItemPollutionDetector extends Item { float soot = data.pollution[PollutionType.SOOT.ordinal()]; float poison = data.pollution[PollutionType.POISON.ordinal()]; float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()]; - float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; + //float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; soot = ((int) (soot * 100)) / 100F; poison = ((int) (poison * 100)) / 100F; heavymetal = ((int) (heavymetal * 100)) / 100F; - fallout = ((int) (fallout * 100)) / 100F; + //fallout = ((int) (fallout * 100)) / 100F; PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity); + //PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/items/tool/ItemRadarLinker.java b/src/main/java/com/hbm/items/tool/ItemRadarLinker.java new file mode 100644 index 000000000..53ee7e206 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemRadarLinker.java @@ -0,0 +1,30 @@ +package com.hbm.items.tool; + +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; +import com.hbm.util.CompatExternal; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemRadarLinker extends ItemCoordinateBase { + + @Override + public boolean canGrabCoordinateHere(World world, int x, int y, int z) { + TileEntity tile = CompatExternal.getCoreFromPos(world, x, y, z); + return tile instanceof IRadarCommandReceiver || tile instanceof TileEntityMachineRadarScreen; + } + + @Override + public BlockPos getCoordinates(World world, int x, int y, int z) { + TileEntity tile = CompatExternal.getCoreFromPos(world, x, y, z); + return new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord); + } + + @Override + public void onTargetSet(World world, int x, int y, int z, EntityPlayer player) { + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemSatRelay.java b/src/main/java/com/hbm/items/tool/ItemSatRelay.java new file mode 100644 index 000000000..519befad2 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemSatRelay.java @@ -0,0 +1,19 @@ +package com.hbm.items.tool; + +import com.hbm.items.machine.ItemSatChip; +import com.hbm.lib.Library; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.Satellite.Interfaces; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ItemSatRelay extends ItemSatChip { +//Schrabby doesn't fucking know how this works so I HOPE it will create a new item that works without fucking everything up + + +} diff --git a/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java b/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java new file mode 100644 index 000000000..322d5f574 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java @@ -0,0 +1,51 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.items.ModItems; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class ItemTitaniumFilter extends Item { + + private int dura; + + public ItemTitaniumFilter(int dura) { + this.dura = dura; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.titanium_filter) { + list.add("[Needed for Watz Reaction]"); + list.add((getDura(itemstack) / 20) + "/" + (dura / 20)); + } + } + + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) > 0; + } + + public static int getDura(ItemStack stack) { + + if(stack.stackTagCompound == null) + return ((ItemTitaniumFilter) stack.getItem()).dura; + + return stack.stackTagCompound.getInteger("dura"); + } + + public static void setDura(ItemStack stack, int dura) { + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("dura", dura); + } + + public double getDurabilityForDisplay(ItemStack stack) { + return 1D - (double) getDura(stack) / (double) dura; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index f0c4496ad..7fcded778 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -208,7 +208,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc } list.add("Right click to cycle through abilities!"); - list.add("Sneak-click to turn abilitty off!"); + list.add("Sneak-click to turn ability off!"); } if(!this.hitAbility.isEmpty()) { diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java index fd116a9b0..fd749bbd0 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java @@ -4,7 +4,6 @@ import java.util.HashSet; import java.util.List; import com.hbm.inventory.fluid.FluidType; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -38,7 +37,7 @@ public class ItemToolAbilityFueled extends ItemToolAbility implements IFillableI list.add(EnumChatFormatting.GOLD + "Fuel: " + this.getFill(stack) + "/" + this.maxFuel + "mB"); for(FluidType type : acceptedFuels) { - list.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(type.getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "- " + type.getLocalizedName()); } super.addInformation(stack, player, list, ext); diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 1a5fce43d..184f0cee8 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -7,6 +7,9 @@ import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; import com.hbm.util.TrackerUtil; import com.hbm.world.gen.MapGenNTMFeatures; +import com.hbm.saveddata.TomSaveData; +import com.hbm.world.WorldUtil; +import com.hbm.world.biome.BiomeGenCrater; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -138,11 +141,18 @@ public class ItemWandD extends Item { TimeAnalyzer.dump();*/ /*TomSaveData data = TomSaveData.forWorld(world); - data.impact = false; + data.impact = true; data.fire = 0F; data.dust = 0F; data.markDirty();*/ + /*for(int i = -5; i <= 5; i++) { + for(int j = -5; j <= 5; j++) { + WorldUtil.setBiome(world, pos.blockX + i, pos.blockZ + j, BiomeGenCrater.craterBiome); + WorldUtil.syncBiomeChangeBlock(world, pos.blockX + i, pos.blockZ + j); + } + }*/ + /*EntityTomBlast tom = new EntityTomBlast(world); tom.posX = pos.blockX; tom.posY = pos.blockY; @@ -155,6 +165,8 @@ public class ItemWandD extends Item { torex.setScale(1.5F); torex.setType(1); world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000);*/ + /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(torex.getEntityId()); diff --git a/src/main/java/com/hbm/items/weapon/ItemDisperser.java b/src/main/java/com/hbm/items/weapon/ItemDisperser.java new file mode 100644 index 000000000..7f06f07e1 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemDisperser.java @@ -0,0 +1,75 @@ +package com.hbm.items.weapon; + +import com.hbm.entity.grenade.EntityDisperserCanister; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidTank; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +import java.util.List; + +public class ItemDisperser extends ItemFluidTank { + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + + world.playSoundAtEntity(player, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if(!world.isRemote) { + + EntityDisperserCanister canister = new EntityDisperserCanister(world, player); + canister.setType(Item.getIdFromItem(this)); + canister.setFluid(stack.getItemDamage()); + world.spawnEntityInWorld(canister); + } + return stack; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + + FluidType[] order = Fluids.getInNiceOrder(); + + for(int i = 1; i < order.length; ++i) { + FluidType type = order[i]; + int id = type.getID(); + if(type.isDispersable() && this == ModItems.disperser_canister) { + list.add(new ItemStack(item, 1, id)); + } else if(type == Fluids.PHEROMONE || type == Fluids.SULFURIC_ACID && this == ModItems.glyphid_gland) { + list.add(new ItemStack(item, 1, id)); + } + + } + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); + + s = this == ModItems.glyphid_gland ? s1 + " " + s : s + " " + s1; + return s; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) { + super.registerIcons(p_94581_1_); + this.overlayIcon = this == ModItems.disperser_canister ? p_94581_1_.registerIcon("hbm:disperser_canister_overlay") : p_94581_1_.registerIcon("hbm:fluid_identifier_overlay"); + } +} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index e2b428c7e..58671762f 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -15,6 +15,8 @@ import com.hbm.interfaces.IHoldableWeapon; import com.hbm.interfaces.IItemHUD; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.IEquipReceiver; +import com.hbm.items.ModItems; +import com.hbm.items.armor.ArmorFSB; import com.hbm.lib.HbmCollection; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.GunAnimationPacket; @@ -55,7 +57,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public boolean m1;// = false; @SideOnly(Side.CLIENT) public boolean m2;// = false; - + public ItemGunBase(GunConfiguration config) { mainConfig = config; this.setMaxStackSize(1); @@ -117,7 +119,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(GameSettings.isKeyDown(HbmKeybinds.reloadKey) && Minecraft.getMinecraft().currentScreen == null && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2)); setIsReloading(stack, true); - resetReloadCycle(stack); + resetReloadCycle(entity, stack); } } } @@ -131,13 +133,29 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(getIsMouseDown(stack) && !(player.getHeldItem() == stack)) { setIsMouseDown(stack, false); } - + + int burstDuration = getBurstDuration(stack); + if(burstDuration > 0) { + + if(altConfig == null) { + if (burstDuration % mainConfig.firingDuration == 0 && tryShoot(stack, world, player, true)) { + fire(stack, world, player); + } + } else { + boolean canFire = altConfig.firingDuration == 1 || burstDuration % altConfig.firingDuration == 0; + if (canFire && tryShoot(stack, world, player, false)) { + altFire(stack, world, player); + } + } + + setBurstDuration(stack, getBurstDuration(stack) - 1); + if(getBurstDuration(stack) == 0) setDelay(stack, mainConfig.rateOfFire); + } if(getIsAltDown(stack) && !isCurrentItem) { setIsAltDown(stack, false); } if(GeneralConfig.enableGuns && mainConfig.firingMode == 1 && getIsMouseDown(stack) && tryShoot(stack, world, player, isCurrentItem)) { - fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); } @@ -284,17 +302,32 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //called on click (server side, called by mouse packet) for semi-automatics and specific events public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(mainConfig.firingMode == mainConfig.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { - fire(stack, world, player); - setDelay(stack, mainConfig.rateOfFire); + boolean validConfig = mainConfig.firingMode == GunConfiguration.FIRE_MANUAL || mainConfig.firingMode == GunConfiguration.FIRE_BURST; + + if(validConfig && main && tryShoot(stack, world, player, main)) { + + if(mainConfig.firingMode == GunConfiguration.FIRE_BURST){ + if(getBurstDuration(stack) <= 0) + setBurstDuration(stack,mainConfig.firingDuration * mainConfig.roundsPerBurst); + } else { + fire(stack, world, player); + setDelay(stack, mainConfig.rateOfFire); + } + //setMag(stack, getMag(stack) - 1); //useUpAmmo(player, stack, main); //player.inventoryContainer.detectAndSendChanges(); } if(!main && altConfig != null && tryShoot(stack, world, player, main)) { - altFire(stack, world, player); - setDelay(stack, altConfig.rateOfFire); + + if(altConfig.firingMode == GunConfiguration.FIRE_BURST && getBurstDuration(stack) <= 0){ + setBurstDuration(stack,altConfig.firingDuration * altConfig.roundsPerBurst); + } else { + altFire(stack, world, player); + setDelay(stack, altConfig.rateOfFire); + } + //useUpAmmo(player, stack, main); //player.inventoryContainer.detectAndSendChanges(); } @@ -345,7 +378,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if (getMag(stack) >= mainConfig.ammoCap) setIsReloading(stack, false); else - resetReloadCycle(stack); + resetReloadCycle(player, stack); if(hasLoaded && mainConfig.reloadSoundEnd) world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); @@ -353,7 +386,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, prevCfg, stack); - InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length, ammo); + InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length - 1, ammo); } else { setReloadCycle(stack, getReloadCycle(stack) - 1); } @@ -391,7 +424,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD.ordinal()), (EntityPlayerMP) player); setIsReloading(stack, true); - resetReloadCycle(stack); + resetReloadCycle(player, stack); } public boolean canReload(ItemStack stack, World world, EntityPlayer player) { @@ -545,8 +578,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!main) config = altConfig; - if(hasInfinity(stack, config)) - return; + if(hasInfinity(stack, config)) return; + if(isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return; if(config.reloadType != GunConfiguration.RELOAD_NONE) { setMag(stack, getMag(stack) - 1); @@ -560,8 +593,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu } /// sets reload cycle to config defult /// - public static void resetReloadCycle(ItemStack stack) { - writeNBT(stack, "reload", ((ItemGunBase)stack.getItem()).mainConfig.reloadDuration); + public static void resetReloadCycle(EntityPlayer player, ItemStack stack) { + writeNBT(stack, "reload", getReloadDuration(player, stack)); } /// if reloading routine is active /// @@ -644,6 +677,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public static int getMagType(ItemStack stack) { return readNBT(stack, "magazineType"); } + /// Sets how long a burst fires for, only useful for burst fire weapons /// + public static void setBurstDuration(ItemStack stack, int i) { + writeNBT(stack, "bduration", i); + } + + public static int getBurstDuration(ItemStack stack) { + return readNBT(stack, "bduration"); + } /// queued casing for ejection /// public static void setCasing(ItemStack stack, BulletConfiguration bullet) { @@ -749,6 +790,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!mainConfig.equipSound.isEmpty() && !player.worldObj.isRemote) { player.worldObj.playSoundAtEntity(player, mainConfig.equipSound, 1, 1); } + + if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.EQUIP.ordinal()), (EntityPlayerMP) player); } protected static void queueCasing(Entity entity, CasingEjector ejector, BulletConfiguration bullet, ItemStack stack) { @@ -778,4 +821,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu data.setInteger("ej", ejector.getId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 50)); } + + public static int getReloadDuration(EntityPlayer player, ItemStack stack) { + int cycle = ((ItemGunBase) stack.getItem()).mainConfig.reloadDuration; + if(isTrenchMaster(player)) return Math.max(1, cycle / 2); + return cycle; + } + + public static boolean isTrenchMaster(EntityPlayer player) { + return player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() == ModItems.trenchmaster_plate && ArmorFSB.hasFSBArmor(player); + } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBio.java b/src/main/java/com/hbm/items/weapon/ItemGunBio.java index f2788d810..47f1abd58 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBio.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBio.java @@ -22,7 +22,6 @@ public class ItemGunBio extends ItemGunBase { super(config); } - /* just a test */ public static long lastShot; public static List smokeNodes = new ArrayList(); @@ -66,8 +65,6 @@ public class ItemGunBio extends ItemGunBase { @Override @SideOnly(Side.CLIENT) public BusAnimation getAnimation(ItemStack stack, AnimType type) { - //GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; - //return config.animations.get(type); if(type == AnimType.CYCLE) { lastShot = System.currentTimeMillis(); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java index e58c89eee..80910ce01 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java @@ -20,7 +20,6 @@ import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; @@ -103,7 +102,7 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { list.add("Ammo: " + getMag(stack) + " / " + mainConfig.ammoCap + "mB"); - list.add("Ammo Type: " + I18n.format(this.getFluidType(stack).getUnlocalizedName())); + list.add("Ammo Type: " + this.getFluidType(stack).getLocalizedName()); int dura = mainConfig.durability - getItemWear(stack); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunPip.java b/src/main/java/com/hbm/items/weapon/ItemGunPip.java new file mode 100644 index 000000000..04af2530d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemGunPip.java @@ -0,0 +1,138 @@ +package com.hbm.items.weapon; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.GunConfiguration; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationKeyframe; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ItemGunPip extends ItemGunBase { + + public static long lastShot; + public static List smokeNodes = new ArrayList(); + + public ItemGunPip(GunConfiguration config) { + super(config); + } + + @Override + @SideOnly(Side.CLIENT) + protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { + super.updateClient(stack, world, entity, slot, isCurrentItem); + + boolean smoking = lastShot + 2000 > System.currentTimeMillis(); + + if(!smoking && !smokeNodes.isEmpty()) { + smokeNodes.clear(); + } + + if(smoking) { + Vec3 prev = Vec3.createVectorHelper(-entity.motionX, -entity.motionY, -entity.motionZ); + prev.rotateAroundY((float) (entity.rotationYaw * Math.PI / 180D)); + double accel = 15D; + double side = (entity.rotationYaw - entity.prevRotationYawHead) * 0.1D; + double waggle = 0.025D; + + for(double[] node : smokeNodes) { + node[0] += -prev.zCoord * accel + world.rand.nextGaussian() * waggle; + node[1] += prev.yCoord + 1.5D; + node[2] += prev.xCoord * accel + world.rand.nextGaussian() * waggle + side; + } + + double alpha = (System.currentTimeMillis() - lastShot) / 2000D; + alpha = (1 - alpha) * 0.5D; + + if(this.getIsReloading(stack)) alpha = 0; + + smokeNodes.add(new double[] {0, 0, 0, alpha}); + } + } + + @Override + @SideOnly(Side.CLIENT) + public BusAnimation getAnimation(ItemStack stack, AnimType type) { + + if(type == AnimType.EQUIP) { + return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(-360, 0, 0, 350)) + ); + } + + if(type == AnimType.CYCLE) { + lastShot = System.currentTimeMillis(); + int s = 1; + return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250 * s)) + ) + .addBus("HAMMER", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 300 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) + ) + .addBus("DRUM", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50 * s)) + ); + } + + if(type == AnimType.RELOAD) { + int s = 1; + return new BusAnimation() + .addBus("RELAOD_TILT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 100 * s)) + .addKeyframe(new BusAnimationKeyframe(65, 0, 0, 100 * s)) //200 + .addKeyframe(new BusAnimationKeyframe(45, 0, 0, 50 * s)) //250 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) //450 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1450 * s)) //1900 + .addKeyframe(new BusAnimationKeyframe(-80, 0, 0, 100 * s)) //2000 + .addKeyframe(new BusAnimationKeyframe(-80, 0, 0, 100 * s)) //2100 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) //2300 + ) + .addBus("RELOAD_CYLINDER", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200 * s)) + .addKeyframe(new BusAnimationKeyframe(90, 0, 0, 100 * s)) //300 + .addKeyframe(new BusAnimationKeyframe(90, 0, 0, 1700 * s)) //2000 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 70 * s)) //2100 + ) + .addBus("RELOAD_LIFT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 350 * s)) + .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 250 * s)) //600 + .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 350 * s)) //950 + .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 200 * s)) //1150 + .addKeyframe(new BusAnimationKeyframe(-15, 0, 0, 1050 * s)) //2200 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100 * s)) //2300 + ) + .addBus("RELOAD_JOLT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 600 * s)) + .addKeyframe(new BusAnimationKeyframe(2, 0, 0, 50 * s)) //650 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100 * s)) //750 + ) + .addBus("RELOAD_BULLETS", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 650 * s)) + .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 300 * s)) //950 + .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 200 * s)) //1150 + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 700 * s)) //1850 + ) + .addBus("RELOAD_BULLETS_CON", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 0 * s)) + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 950 * s)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1 * s)) + ); + } + + return null; + } +} diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index d166e3bab..38eca93a0 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; @@ -55,7 +56,8 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.hull_big_steel, 0, 1, 2, 2), new WeightedRandomChestContent(ModItems.hull_small_steel, 0, 1, 3, 3), new WeightedRandomChestContent(ModItems.plate_polymer, 0, 1, 6, 5), - new WeightedRandomChestContent(ModItems.bolt_tungsten, 0, 1, 4, 3), + new WeightedRandomChestContent(ModItems.bolt, Mats.MAT_STEEL.id, 4, 16, 3), + new WeightedRandomChestContent(ModItems.bolt, Mats.MAT_TUNGSTEN.id, 4, 16, 3), new WeightedRandomChestContent(ModItems.board_copper, 0, 1, 2, 4), new WeightedRandomChestContent(ModItems.coil_tungsten, 0, 1, 2, 5), new WeightedRandomChestContent(ModItems.motor, 0, 1, 2, 4), @@ -246,7 +248,7 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.powder_niobium, 0, 1, 1, 1), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_conductor), 0, 2, 4, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_heater), 0, 1, 3, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.reactor_element), 0, 1, 2, 5), + new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.pwr_fuel), 0, 1, 2, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.block_tungsten), 0, 3, 8, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_wire_coated), 0, 4, 8, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_cable), 0, 8, 16, 5) }; @@ -267,11 +269,13 @@ public class HbmChestContents { public static WeightedRandomChestContent[] vault1 = new WeightedRandomChestContent[] { new WeightedRandomChestContent(Items.gold_ingot, 0, 3, 14, 1), + new WeightedRandomChestContent(ModItems.gun_uac_pistol, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.pin, 0, 8, 8, 1), new WeightedRandomChestContent(ModItems.gun_calamity, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 3, 1), new WeightedRandomChestContent(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), new WeightedRandomChestContent(ModItems.ammo_50bmg, 0, 24, 48, 1), + new WeightedRandomChestContent(ModItems.ammo_45, 0, 48, 64, 2), new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 6, 12, 1), new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.grenade_if_he, 0, 1, 1, 1), @@ -387,6 +391,8 @@ public class HbmChestContents { public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.robes_helmet, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_plate, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.ammo_45, 0, 48, 64, 2), + new WeightedRandomChestContent(ModItems.gun_uac_pistol, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_legs, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_boots, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.jackt, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 6182148ab..1ae86289b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -18,20 +18,7 @@ import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; import com.hbm.util.LootGenerator; import com.hbm.util.WeightedRandomGeneric; -import com.hbm.world.dungeon.AncientTomb; -import com.hbm.world.dungeon.Antenna; -import com.hbm.world.dungeon.ArcticVault; -import com.hbm.world.dungeon.Barrel; -import com.hbm.world.dungeon.CrashedVertibird; -import com.hbm.world.dungeon.DesertAtom001; -import com.hbm.world.dungeon.Factory; -import com.hbm.world.dungeon.LibraryDungeon; -import com.hbm.world.dungeon.Radio01; -import com.hbm.world.dungeon.Relay; -import com.hbm.world.dungeon.Satellite; -import com.hbm.world.dungeon.Silo; -import com.hbm.world.dungeon.Spaceship; -import com.hbm.world.dungeon.Vertibird; +import com.hbm.world.dungeon.*; import com.hbm.world.feature.BedrockOre; import com.hbm.world.feature.BedrockOre.BedrockOreDefinition; import com.hbm.world.feature.DepthDeposit; @@ -61,6 +48,7 @@ import net.minecraft.world.biome.BiomeGenForest; import net.minecraft.world.biome.BiomeGenJungle; import net.minecraft.world.biome.BiomeGenRiver; import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.ChunkProviderFlat; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.IWorldGenerator; @@ -160,12 +148,18 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 15, 35, ModBlocks.cluster_aluminium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 15, 20, ModBlocks.cluster_copper); - DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); + DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 16, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal()); if(rand.nextInt(3) == 0) { WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); BedrockOreDefinition def = item.get(); + + if(GeneralConfig.enable528 && GeneralConfig.enable528BedrockReplacement) { + BedrockOreDefinition replacement = BedrockOre.replacements.get(def.id); + if(replacement != null) def = replacement; + } + int randPosX = i + rand.nextInt(2) + 8; int randPosZ = j + rand.nextInt(2) + 8; BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier); @@ -221,14 +215,27 @@ public class HbmWorldGen implements IWorldGenerator { (new WorldGenMinable(ModBlocks.ore_australium, 50)).generate(world, rand, randPosX, randPosY, randPosZ); } } + + boolean enableDungeons = true; + + if(world.getChunkProvider() instanceof ChunkProviderFlat) { + ChunkProviderFlat provider = (ChunkProviderFlat) world.getChunkProvider(); + enableDungeons = provider.hasDungeons; + } - if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { + if(GeneralConfig.enableDungeons && world.provider.dimensionId == 0 && enableDungeons) { if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; int y = world.getHeightValue(x, z); - if(world.getBlock(x, y - 1, z).isNormalCube()) GlyphidHive.generate(world, x, y, z, rand); + + for(int k = 3; k >= -1; k--) { + if(world.getBlock(x, y - 1 + k, z).isNormalCube()) { + GlyphidHive.generateSmall(world, x, y + k, z, rand, rand.nextInt(10) == 0, true); + break; + } + } } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { @@ -351,6 +358,7 @@ public class HbmWorldGen implements IWorldGenerator { new Dud().generate(world, rand, x, y, z); } + if(WorldConfig.spaceshipStructure > 0 && rand.nextInt(WorldConfig.spaceshipStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); @@ -358,7 +366,6 @@ public class HbmWorldGen implements IWorldGenerator { new Spaceship().generate(world, rand, x, y, z); } - if(WorldConfig.barrelStructure > 0 && biome.temperature >= 1.5F && !biome.canSpawnLightningBolt() && rand.nextInt(WorldConfig.barrelStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); @@ -393,7 +400,7 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(rand.nextInt(1000) == 0) { + if(rand.nextInt(2000) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); @@ -656,7 +663,7 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z) - rand.nextInt(10); - (new Meteorite()).generate(world, rand, x, y, z, false, false, false); + if(y > 1) (new Meteorite()).generate(world, rand, x, y, z, false, false, false); } if (GeneralConfig.enableNITAN) { @@ -734,6 +741,16 @@ public class HbmWorldGen implements IWorldGenerator { } } } + + if(rand.nextInt(4) == 0) { + int x = i + rand.nextInt(16) + 8; + int y = 6 + rand.nextInt(13); + int z = j + rand.nextInt(16) + 8; + + if(world.getBlock(x, y, z).isReplaceableOreGen(world, x, y, z, Blocks.stone)) { + world.setBlock(x, y, z, ModBlocks.stone_keyhole); + } + } } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 28416dc2e..3cd331dae 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -33,6 +33,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; @@ -528,7 +529,18 @@ public class Library { return flag; } - + + // Added for sake of doors + // Original: Drillgon200: https://thebookofshaders.com/glossary/?search=smoothstep + public static double smoothstep(double t, double edge0, double edge1){ + t = MathHelper.clamp_double((t - edge0) / (edge1 - edge0), 0.0, 1.0); + return t * t * (3.0 - 2.0 * t); + } + public static float smoothstep(float t, float edge0, float edge1){ + t = MathHelper.clamp_float((t - edge0) / (edge1 - edge0), 0.0F, 1.0F); + return t * t * (3.0F - 2.0F * t); + } + public static boolean isObstructed(World world, double x, double y, double z, double a, double b, double c) { MovingObjectPosition pos = world.rayTraceBlocks(Vec3.createVectorHelper(x, y, z), Vec3.createVectorHelper(a, b, c)); return pos != null; diff --git a/src/main/java/com/hbm/lib/ModDamageSource.java b/src/main/java/com/hbm/lib/ModDamageSource.java index a477d929c..1fe20cf1c 100644 --- a/src/main/java/com/hbm/lib/ModDamageSource.java +++ b/src/main/java/com/hbm/lib/ModDamageSource.java @@ -16,7 +16,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource nuclearBlast = (new DamageSource("nuclearBlast")).setExplosion(); public static DamageSource mudPoisoning = (new DamageSource("mudPoisoning")).setDamageBypassesArmor(); - public static DamageSource acid = (new DamageSource("acid")).setDamageBypassesArmor(); + public static DamageSource acid = (new DamageSource("acid")); //.setDamageBypassesArmor(); public static DamageSource euthanizedSelf = (new DamageSource("euthanizedSelf")).setDamageBypassesArmor(); public static DamageSource euthanizedSelf2 = (new DamageSource("euthanizedSelf2")).setDamageBypassesArmor(); public static DamageSource tauBlast = (new DamageSource("tauBlast")).setDamageBypassesArmor(); @@ -53,6 +53,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource vacuum = (new DamageSource("vacuum")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource overdose = (new DamageSource("overdose")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource microwave = (new DamageSource("microwave")).setDamageIsAbsolute().setDamageBypassesArmor(); + public static DamageSource nitan = (new DamageSource("nitan")).setDamageIsAbsolute().setDamageBypassesArmor().setDamageAllowedInCreativeMode();; public static final String s_bullet = "revolverBullet"; public static final String s_emplacer = "chopperBullet"; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3d31d7c2a..a5cbbc5ea 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4707)"; + public static final String VERSION = "1.0.27 BETA (4837)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 49b3aae01..c86d957a1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -47,6 +47,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; @@ -57,6 +58,11 @@ import com.hbm.entity.grenade.*; import com.hbm.entity.item.*; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; @@ -87,6 +93,7 @@ import com.hbm.render.item.*; import com.hbm.render.item.block.*; import com.hbm.render.item.weapon.*; import com.hbm.render.loader.HmfModelLoader; +import com.hbm.render.model.ModelPigeon; import com.hbm.render.tileentity.*; import com.hbm.render.util.MissilePart; import com.hbm.render.util.RenderInfoSystem; @@ -151,14 +158,13 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestRender.class, new RenderTestRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestBombAdvanced.class, new RenderTestBombAdvanced()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityObjTester.class, new RendererObjTester()); - //deco + //deco ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoPoleSatelliteReceiver.class, new RenderPoleSatelliteReceiver()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlock.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBroadcaster.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGeiger.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioRec.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadiobox.class, new RenderDecoBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBomber.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSatDock.class, new RenderDecoBlock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAlt.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltG.class, new RenderDecoBlockAlt()); @@ -166,6 +172,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltF.class, new RenderDecoBlockAlt()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDemonLamp.class, new RenderDemonLamp()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLoot.class, new RenderLoot()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPedestal.class, new RenderPedestalTile()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter()); @@ -178,7 +185,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN2.class, new RenderNukeN2()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMan.class, new RenderNukeMan()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN45.class, new RenderNukeN45()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBalefire.class, new RenderNukeFstbmb()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBombMulti.class, new RenderBombMulti()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMike.class, new RenderNukeMike()); @@ -212,9 +218,11 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePuF6Tank.class, new RenderPuF6Tank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineIGenerator.class, new RenderIGenerator()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCyclotron.class, new RenderCyclotron()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExposureChamber.class, new RenderExposureChamber()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOilWell.class, new RenderDerrick()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyBrick.class, new RenderChimneyBrick()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyIndustrial.class, new RenderChimneyIndustrial()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); @@ -234,7 +242,8 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadar.class, new RenderRadar()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder()); @@ -254,6 +263,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChungus.class, new RenderChungus()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTowerLarge.class, new RenderLargeTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTowerSmall.class, new RenderSmallTower()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCondenserPowered.class, new RenderCondenser()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDeuteriumTower.class, new RenderDeuteriumTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticCracker.class, new RenderCatalyticCracker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); @@ -287,6 +297,12 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCoker.class, new RenderCoker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFan.class, new RenderFan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPistonInserter.class, new RenderPistonInserter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConveyorPress.class, new RenderConveyorPress()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioTelex.class, new RenderTelex()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpSteam.class, new RenderPump()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpElectric.class, new RenderPump()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineArcWelder.class, new RenderArcWelder()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineWoodBurner.class, new RenderWoodBurner()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); @@ -519,7 +535,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderWeaponChemthrower()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nopip, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderWeaponNovac()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderWeaponLilMac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_blackjack, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_silver, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); @@ -597,6 +613,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySawblade.class, new RenderSawblade()); RenderingRegistry.registerEntityRenderingHandler(EntityChemical.class, new RenderChemical()); RenderingRegistry.registerEntityRenderingHandler(EntityMist.class, new RenderMist()); + RenderingRegistry.registerEntityRenderingHandler(EntityWaypoint.class, new RenderMist()); RenderingRegistry.registerEntityRenderingHandler(EntityAcidBomb.class, new RenderSnowball(Items.slime_ball)); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); @@ -644,10 +661,13 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeDynamite.class, new RenderSnowball(ModItems.stick_dynamite)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade()); + RenderingRegistry.registerEntityRenderingHandler(EntityDisperserCanister.class, new RenderGenericGrenade()); //missiles RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDecoy.class, new RenderMissileGeneric()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileStealth.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileAntiBallistic.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileIncendiary.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCluster.class, new RenderMissileGeneric()); @@ -698,6 +718,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); + RenderingRegistry.registerEntityRenderingHandler(EntityBoatRubber.class, new RenderBoatRubber()); //trains RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty()); @@ -708,6 +729,9 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedBase.class, new RenderTNTPrimedBase()); + RenderingRegistry.registerEntityRenderingHandler(EntityDeliveryDrone.class, new RenderDeliveryDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityRequestDrone.class, new RenderDeliveryDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityFallingBlockNT.class, new RenderFallingBlockNT()); //mobs RenderingRegistry.registerEntityRenderingHandler(EntityCreeperNuclear.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor.png").setSwellMod(5F)); RenderingRegistry.registerEntityRenderingHandler(EntityCreeperTainted.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_tainted.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor_taint.png")); @@ -741,7 +765,10 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); + RenderingRegistry.registerEntityRenderingHandler(EntityParasiteMaggot.class, new RenderMaggot()); RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); + RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); @@ -799,6 +826,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderDiFurnaceExtension()); RenderingRegistry.registerBlockHandler(new RenderSplitter()); RenderingRegistry.registerBlockHandler(new RenderCapacitor()); + RenderingRegistry.registerBlockHandler(new RenderPedestal()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); @@ -806,12 +834,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderFoundryTank()); RenderingRegistry.registerBlockHandler(new RenderFoundryOutlet()); - RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); - RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardRampRail()); - RenderingRegistry.registerBlockHandler(new RenderStandardBufferRail()); + RenderingRegistry.registerBlockHandler(new RenderRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); @@ -1842,6 +1865,23 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(text); } + if("debugdrone".equals(type)) { + Item held = player.getHeldItem() == null ? null : player.getHeldItem().getItem(); + + if(held == ModItems.drone || + held == Item.getItemFromBlock(ModBlocks.drone_crate_provider) || + held == Item.getItemFromBlock(ModBlocks.drone_crate_requester) || + held == Item.getItemFromBlock(ModBlocks.drone_dock) || + held == Item.getItemFromBlock(ModBlocks.drone_waypoint_request)) { + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + int color = data.getInteger("color"); + ParticleDebugLine text = new ParticleDebugLine(world, x, y, z, mX, mY, mZ, color); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } + } + if("network".equals(type)) { ParticleDebug debug = null; double mX = data.getDouble("mX"); @@ -2025,4 +2065,3 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation(sound), volume, pitch, (float) x, (float) y, (float) z)); } } - diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 7c0d6c047..8e9cce423 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -22,6 +22,7 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo50BMG; import com.hbm.items.ItemAmmoEnums.Ammo5mm; import com.hbm.items.ItemEnums.EnumLegendaryType; +import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.food.ItemConserve.EnumFoodType; @@ -29,6 +30,7 @@ import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.items.special.ItemPlasticScrap.ScrapType; +import com.hbm.items.tool.ItemDrone.EnumDroneType; import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.util.EnchantmentUtil; @@ -87,16 +89,18 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.big_sword, 1), new Object[] { "QIQ", "QIQ", "GSG", 'G', Items.gold_ingot, 'S', KEY_STICK, 'I', Items.iron_ingot, 'Q', Items.quartz}); addRecipeAuto(new ItemStack(ModItems.board_copper, 1), new Object[] { "TTT", "TTT", 'T', CU.plate() }); - addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); + addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.asbestos_cloth, 8), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', BR.dust(), 'C', Blocks.wool }); - addRecipeAuto(new ItemStack(ModItems.bolt_dura_steel, 4), new Object[] { "D", "D", 'D', DURA.ingot()}); + addRecipeAuto(Mats.MAT_TUNGSTEN.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', W.ingot()}); + addRecipeAuto(Mats.MAT_STEEL.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', STEEL.ingot()}); + addRecipeAuto(Mats.MAT_DURA.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', DURA.ingot()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); - addRecipeAuto(new ItemStack(ModItems.bolt_tungsten, 4), new Object[] { "D", "D", 'D', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', TI.plate() }); + addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', DURA.bolt(), 'T', W.bolt(), 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ASBESTOS.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.string, 'W', Blocks.wool }); @@ -246,7 +250,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wrench, 1), new Object[] { " S ", " IS", "I ", 'S', STEEL.ingot(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.wrench_flipped, 1), new Object[] { "S", "D", "W", 'S', Items.iron_sword, 'D', ModItems.ducttape, 'W', ModItems.wrench }); addRecipeAuto(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_cloud, 'G', TH232.block(), 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" }); - addShapelessAuto(new ItemStack(ModItems.cbt_device, 1), new Object[] { ModItems.bolt_tungsten, ModItems.wrench }); + addShapelessAuto(new ItemStack(ModItems.cbt_device, 1), new Object[] { STEEL.bolt(), ModItems.wrench }); addShapelessAuto(new ItemStack(ModItems.toothpicks, 3), new Object[] { KEY_STICK, KEY_STICK, KEY_STICK }); addRecipeAuto(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.string, 'S', KEY_SLIME, 'P', Items.paper }); @@ -254,10 +258,12 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.radio_torch_sender, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', NETHERQUARTZ.gem() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', ANY_RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_express, 8), new Object[] { "CCC", "CLC", "CCC", 'C', ModBlocks.conveyor, 'L', Fluids.LUBRICANT.getDict(1_000) }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_chute, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.steel_grate, 'C', ModBlocks.conveyor }); @@ -279,6 +285,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.red_cable, 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); addShapelessAuto(new ItemStack(ModBlocks.red_cable_classic, 1), new Object[] { ModBlocks.red_cable }); addShapelessAuto(new ItemStack(ModBlocks.red_cable, 1), new Object[] { ModBlocks.red_cable_classic }); + addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS }); @@ -287,7 +294,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.capacitor_gold, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_PLASTIC.ingot(), 'C', GOLD.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); + //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); + addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); @@ -304,28 +313,29 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 3), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); + addRecipeAuto(new ItemStack(ModBlocks.machine_funnel, 1), new Object[] { "S S", "SRS", " S ", 'S', STEEL.ingot(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); - addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_microwave, 1), new Object[] { "III", "SGM", "IDI", 'I', ModItems.plate_polymer, 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'M', ModItems.magnetron, 'D', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', ModItems.hull_big_steel, 'D', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.solar_mirror, 3), new Object[] { "AAA", " B ", "SSS", 'A', AL.plate(), 'B', ModBlocks.steel_beam, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_iron, 1), new Object[] { "III", " B ", "III", 'I', IRON.ingot(), 'B', IRON.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_lead, 1), new Object[] { "III", " B ", "III", 'I', PB.ingot(), 'B', PB.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); - addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "SHS", "SGS", "SHS", 'S', STEEL.plate(), 'H', ModItems.hull_big_steel, 'G', ModBlocks.steel_grate }); + addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "H", "G", "H", 'H', STEEL.plateWelded(), 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); - addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate(), 'R', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', STEEL.bolt() }); - addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); + addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); - addRecipeAuto(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModItems.arc_electrode, 1), new Object[] { "C", "T", "C", 'C', GRAPHITE.ingot(), 'T', W.bolt() }); addRecipeAuto(new ItemStack(ModItems.arc_electrode_desh, 1), new Object[] { "C", "T", "C", 'C', DESH.dust(), 'T', ModItems.arc_electrode }); addRecipeAuto(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', STEEL.ingot() }); addShapelessAuto(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, ModItems.circuit_targeting_tier3 }); @@ -341,8 +351,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.crystal_xen, 1), new Object[] { "EEE", "EIE", "EEE", 'E', ModItems.powder_power, 'I', EUPH.ingot() }); addShapelessAuto(new ItemStack(ModItems.fuse, 1), new Object[] { STEEL.plate(), ModItems.plate_polymer, ModItems.wire_tungsten }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() }); - addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { ModItems.bolt_tungsten, ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), ModItems.board_copper, ModItems.black_hole, CS.dust() }); + addShapelessAuto(new ItemStack(ModItems.overfuse, 1), new Object[] { STEEL.bolt(), ST.dust(), BR.dust(), CO.dust(), TS.dust(), NB.dust(), ModItems.board_copper, ModItems.black_hole, CE.dust() }); addRecipeAuto(new ItemStack(ModItems.blades_steel, 1), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.blades_titanium, 1), new Object[] { " P ", "PIP", " P ", 'P', TI.plate(), 'I', TI.ingot() }); @@ -374,8 +384,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mechanism_revolver_2, 1), new Object[] { "ATA", "TDT", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_1, 1), new Object[] { "ICI", "MAM", "ICI", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot(), 'M', ModItems.mechanism_revolver_1 }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ATA", "MDM", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot(), 'M', ModItems.mechanism_revolver_2 }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', ModItems.bolt_tungsten, 'I', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', W.bolt(), 'I', MINGRADE.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', W.bolt(), 'I', DESH.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); @@ -440,7 +450,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_brick), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', ModBlocks.brick_concrete }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', STEEL.bolt(), 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.glass }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass_pane), 16), new Object[] { " ", "GGG", "GGG", 'G', ModBlocks.reinforced_glass}); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_laminate_pane), 16), new Object[] { " ", "LLL", "LLL", 'L', ModBlocks.reinforced_laminate}); @@ -503,6 +513,18 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rail_highspeed, 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.rail_booster, 6), new Object[] { "S S", "CIC", "SRS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'R', MINGRADE.ingot(), 'C', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_straight, 4), new Object[] { "B B", "SSS", "W W", 'B', STEEL.bolt(), 'S', ModBlocks.steel_beam, 'W', KEY_SLAB }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight, 1), new Object[] { ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight_short, 5), new Object[] { ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_buffer, 1), new Object[] { " S", "RS", 'R', ModBlocks.rail_large_straight, 'S', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve, 1), new Object[] { "R ", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_7, 1), new Object[] { "RR", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_curve_9, 1), new Object[] { "RR ", " R", " R", 'R', ModBlocks.rail_large_straight }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_ramp, 1), new Object[] { " R ", "SSS", 'R', ModBlocks.rail_large_straight, 'S', KEY_SLAB }); + addRecipeAuto(new ItemStack(ModBlocks.rail_large_switch, 1), new Object[] { "R R", " RR", " R", 'R', ModBlocks.rail_large_straight }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch), new Object[] { ModBlocks.rail_large_switch_flipped }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch_flipped), new Object[] { ModBlocks.rail_large_switch }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', ModItems.wire_aluminium, 'C', ModItems.circuit_aluminium, 'H', ModItems.hull_small_aluminium, 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); addShapelessAuto(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, KNO.dust(), REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.powder_poison, 4), new Object[] { Items.spider_eye, REDSTONE.dust(), NETHERQUARTZ.gem() }); @@ -590,21 +612,21 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'K', Fluids.KEROSENE.getDict(1000) }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ModItems.plate_polymer, 'L', Fluids.LUBRICANT.getDict(1000), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ModItems.plate_polymer, 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', STEEL.bolt(), 'K', Fluids.KEROSENE.getDict(1000) }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ANY_RUBBER.ingot(), 'L', Fluids.LUBRICANT.getDict(1000), 'B', STEEL.bolt(), 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ANY_RUBBER.ingot(), 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); - addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', STEEL.bolt() }); addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', KEY_TOOL_SCREWDRIVER }); - addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "DSC", "SMS", "KSD", 'C', ModItems.circuit_targeting_tier4, 'M', Items.nether_star, 'K', ModItems.key, 'D', DESH.dust(), 'S', BIGMT.plate() }); + addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "RCA", "CIC", "KCR", 'R', KEY_RED, 'C', STAR.wireDense(), 'A', ModItems.gem_alexandrite, 'I', ModItems.ingot_chainsteel, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.pin, 1), new Object[] { "W ", " W", " W", 'W', ModItems.wire_copper }); - addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.padlock, 1), new Object[] { " P ", "PBP", "PPP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', ModItems.bolt_dura_steel }); - addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', ModItems.bolt_dura_steel }); + addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', STEEL.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock, 1), new Object[] { " P ", "PBP", "PPP", 'P', STEEL.plate(), 'B', STEEL.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', DURA.bolt() }); + addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', DURA.bolt() }); addRecipeAuto(new ItemStack(ModItems.record_lc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', LAPIS.dust() }); addRecipeAuto(new ItemStack(ModItems.record_ss, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', ALLOY.dust() }); @@ -632,11 +654,14 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.fluid_tank_empty, 8), new Object[] { "121", "1G1", "121", '1', AL.plate(), '2', IRON.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(ModItems.fluid_tank_lead_empty, 4), new Object[] { "LUL", "LTL", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'T', ModItems.fluid_tank_empty }); addRecipeAuto(new ItemStack(ModItems.fluid_barrel_empty, 2), new Object[] { "121", "1G1", "121", '1', STEEL.plate(), '2', AL.plate(), 'G', KEY_ANYPANE }); - addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); - addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', ModBlocks.fluid_duct_neo, 'T', ModItems.tank_steel }); + + if(!GeneralConfig.enable528) { + addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); + addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', ModBlocks.fluid_duct_neo, 'T', ModItems.tank_steel }); + } //not so Temporary Crappy Recipes - addRecipeAuto(new ItemStack(ModItems.piston_selenium, 1), new Object[] { "SSS", "STS", " D ", 'S', STEEL.plate(), 'T', W.ingot(), 'D', ModItems.bolt_dura_steel }); + addRecipeAuto(new ItemStack(ModItems.piston_selenium, 1), new Object[] { "SSS", "STS", " D ", 'S', STEEL.plate(), 'T', W.ingot(), 'D', DURA.bolt() }); addShapelessAuto(new ItemStack(ModItems.catalyst_clay), new Object[] { IRON.dust(), Items.clay_ball }); addRecipeAuto(new ItemStack(ModItems.singularity_spark, 1), new Object[] { "XAX", "BCB", "XAX", 'X', ModItems.plate_dineutronium, 'A', ModItems.singularity_counter_resonant, 'B', ModItems.singularity_super_heated, 'C', ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.singularity_spark, 1), new Object[] { "XBX", "ACA", "XBX", 'X', ModItems.plate_dineutronium, 'A', ModItems.singularity_counter_resonant, 'B', ModItems.singularity_super_heated, 'C', ModItems.black_hole }); @@ -678,14 +703,14 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', getReflector() }); addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.pellet_gas, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine_seal), new Object[] { "ISI", "SCS", "ISI", 'I', BIGMT.ingot(), 'S', STAR.ingot(), 'C', ModItems.chlorine_pinwheel }); addRecipeAuto(new ItemStack(ModBlocks.vent_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser }); - addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "FFF", "BBB", "TTT", 'F', Items.flint, 'B', ModItems.bolt_tungsten, 'T', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ModItems.plate_polymer, 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "BBB", "BBB", "TTT", 'B', STEEL.bolt(), 'T', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); @@ -782,10 +807,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', new ItemStack(ModBlocks.sellafield, 1, 5), 'L', ModItems.hull_small_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() }); addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ANY_TAR.any() }); @@ -816,15 +841,23 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); - + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_advanced_alloy, 'C', ModBlocks.fusion_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WW", "WW", 'W', ALLOY.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "PGP", "PCP", "PGP", 'G', GOLD.dust(), 'C', ModBlocks.hadron_coil_alloy, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "WG", "GW", 'W', ALLOY.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "G", "C", "G", 'G', ND.dust(), 'C', ModBlocks.hadron_coil_gold }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "WG", "GW", 'W', ND.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_magnetized_tungsten, 'C', ModBlocks.fwatz_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WW", "WW", 'W', MAGTUNG.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_schrabidium, 'C', ModBlocks.hadron_coil_magtung }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WS", "SW", 'W', MAGTUNG.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { " S ", "SCS", " S ", 'S', SBD.dust(), 'C', ModBlocks.hadron_coil_schrabidium }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { "WS", "SW", 'W', SBD.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SNS", "SCS", "SNS", 'S', STAR.ingot(), 'N', ModBlocks.hadron_coil_neodymium, 'C', ModBlocks.hadron_coil_schrabidate }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SW", "WS", 'W', SBD.wireDense(), 'S', STAR.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TCT", "TST", "TCT", 'T', ModItems.coil_tungsten, 'C', ModItems.powder_chlorophyte, 'S', ModBlocks.hadron_coil_starmetal }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TC", "CT", 'T', W.wireDense(), 'C', ModItems.powder_chlorophyte }); addRecipeAuto(new ItemStack(ModBlocks.hadron_diode, 1), new Object[] { "CIC", "ISI", "CIC", 'C', ModBlocks.hadron_coil_alloy, 'I', STEEL.ingot(), 'S', ModItems.circuit_gold }); addRecipeAuto(new ItemStack(ModBlocks.hadron_plating, 16), new Object[] { "CC", "CC", 'C', STEEL.plateCast()}); addShapelessAuto(new ItemStack(ModBlocks.hadron_plating_blue, 1), new Object[] { ModBlocks.hadron_plating, KEY_BLUE }); @@ -844,10 +877,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 0), new Object[] { "PCP", "CHC", "PCP", 'P', ANY_RESISTANTALLOY.plateCast(), 'C', ModItems.circuit_gold, 'H', Fluids.HELIUM4.getDict(16_000) }); addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 1), new Object[] { "PCP", "CHC", "PCP", 'P', GOLD.plateCast(), 'C', ModItems.motor_bismuth, 'H', new ItemStack(ModBlocks.hadron_cooler, 1, 0) }); - addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', U.ingot(), 'P', new ItemStack(ModItems.particle_higgs).setStackDisplayName("Higgs Boson (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModItems.ingot_euphemium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', PU.ingot(), 'P', new ItemStack(ModItems.particle_dark).setStackDisplayName("Dark Matter (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModItems.ingot_dineutronium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', SBD.ingot(), 'P', new ItemStack(ModItems.particle_sparkticle).setStackDisplayName("Sparkticle (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModBlocks.fireworks, 1), new Object[] { "PPP", "PPP", "WIW", 'P', Items.paper, 'W', KEY_PLANKS, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.safety_fuse, 8), new Object[] { "SSS", "SGS", "SSS", 'S', Items.string, 'G', Items.gunpowder }); @@ -874,13 +903,13 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel }); //addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "LZL", "LZL", 'L', PB.plate528(), 'Z', ZR.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "L L", "LZL", 'L', PB.plate528(), 'Z', ZR.plateWelded() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_control, 4), new Object[] { "SBS", "MBM", "SBS", 'S', STEEL.plate528(), 'B', B.ingot(), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.pwr_channel, 4), new Object[] { "CPC", "BPB", "CPC", 'C', CU.ingot(), 'P', ModBlocks.deco_pipe_quad, 'B', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_heatex, 4), new Object[] { "CSC", "SMS", "CSC", 'C', CU.plateCast(), 'S', STEEL.plate528(), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); - addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? ModItems.circuit_gold : STEEL.heavyComp() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_port, 1), new Object[] { "S", "C", "S", 'S', STEEL.plate(), 'C', ModBlocks.pwr_casing }); addRecipeAuto(new ItemStack(ModBlocks.pwr_neutron_source, 1), new Object[] { "LRL", "ZRZ", "LRL", 'L', PB.plate528(), 'R', ModItems.billet_ra226be, 'Z', ZR.plateCast() }); @@ -984,6 +1013,30 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crane_unboxer), new Object[] { "WWW", "WPW", "CCC", 'W', KEY_STICK, 'P', Items.shears, 'C', ModBlocks.conveyor }); addRecipeAuto(new ItemStack(ModBlocks.crane_router), new Object[] { "PIP", "ICI", "PIP", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', ModItems.circuit_aluminium }); + + addRecipeAuto(new ItemStack(ModBlocks.machine_conveyor_press), new Object[] { "CPC", "CBC", "CCC", 'C', CU.plate(), 'P', ModBlocks.machine_epress, 'B', ModBlocks.conveyor }); + addRecipeAuto(new ItemStack(ModBlocks.radar_screen), new Object[] { "PCP", "SRS", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_aluminium, 'S', STEEL.plate(), 'R', ModItems.crt_display }); + addRecipeAuto(new ItemStack(ModItems.radar_linker), new Object[] { "S", "C", "P", 'S', ModItems.crt_display, 'C', ModItems.circuit_copper, 'P', STEEL.plate() }); + + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', ModItems.hull_small_steel, 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); + addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); + addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), new Object[] { "E", "D", 'E', ModItems.circuit_red_copper, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); + + addRecipeAuto(new ItemStack(ModItems.drone_linker), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModItems.circuit_copper }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint, 4), new Object[] { "G", "T", "C", 'G', KEY_GREEN, 'T', Blocks.redstone_torch, 'C', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint_request, 4), new Object[] { "G", "T", "C", 'G', KEY_BLUE, 'T', Blocks.redstone_torch, 'C', ModItems.circuit_copper }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_red_copper }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate_requester), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_YELLOW }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate_provider), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_ORANGE }); + addRecipeAuto(new ItemStack(ModBlocks.drone_dock), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_gold }); + + addRecipeAuto(new ItemStack(ModItems.ball_resin), new Object[] { "DD", "DD", 'D', Blocks.yellow_flower }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); @@ -1015,6 +1068,8 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.bdcl), new Object[] { ANY_TAR.any(), Fluids.WATER.getDict(1_000), KEY_WHITE }); + addShapelessAuto(new ItemStack(ModItems.book_of_), new Object[] { DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE1), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE2), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE3), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE4), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE5), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE6), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE7), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE8), ModItems.egg_balefire }); + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e8834cff7..c9b458f71 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1,6 +1,71 @@ package com.hbm.main; -import com.hbm.commands.CommandSatellites; +import com.google.common.collect.ImmutableList; +import com.hbm.blocks.BlockEnums.EnumStoneType; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockMotherOfAllOres; +import com.hbm.blocks.generic.BlockToolConversion; +import com.hbm.commands.*; +import com.hbm.config.*; +import com.hbm.crafting.RodRecipes; +import com.hbm.creativetabs.*; +import com.hbm.entity.EntityMappings; +import com.hbm.entity.grenade.*; +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.mob.siege.SiegeTier; +import com.hbm.handler.*; +import com.hbm.handler.imc.IMCBlastFurnace; +import com.hbm.handler.imc.IMCCentrifuge; +import com.hbm.handler.imc.IMCCrystallizer; +import com.hbm.handler.imc.IMCHandler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.hazard.HazardRegistry; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.recipes.*; +import com.hbm.inventory.recipes.anvil.AnvilRecipes; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; +import com.hbm.items.ItemEnums.EnumAchievementType; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemFertilizer; +import com.hbm.items.weapon.ItemGenericGrenade; +import com.hbm.lib.HbmWorld; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.tileentity.TileMappings; +import com.hbm.tileentity.bomb.TileEntityLaunchPad; +import com.hbm.tileentity.bomb.TileEntityNukeCustom; +import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; +import com.hbm.tileentity.machine.TileEntityNukeFurnace; +import com.hbm.tileentity.machine.rbmk.RBMKDials; +import com.hbm.util.*; +import com.hbm.world.feature.BedrockOre; +import com.hbm.world.feature.OreCave; +import com.hbm.world.feature.OreLayer3D; +import com.hbm.world.feature.SchistStratum; +import com.hbm.world.generator.CellularDungeonFactory; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.Mod.Metadata; +import cpw.mods.fml.common.ModMetadata; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; +import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; import net.minecraft.block.BlockDispenser; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -26,12 +91,8 @@ import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.util.EnumHelper; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.Mod.Metadata; -import cpw.mods.fml.common.ModMetadata; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.File; import java.util.HashMap; @@ -40,71 +101,6 @@ import java.util.List; import java.util.Map.Entry; import java.util.Random; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import com.google.common.collect.ImmutableList; -import com.hbm.blocks.BlockEnums.EnumStoneType; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockMotherOfAllOres; -import com.hbm.blocks.generic.BlockToolConversion; -import com.hbm.commands.CommandDebugChunkLoad; -import com.hbm.commands.CommandReloadRecipes; -import com.hbm.config.*; -import com.hbm.crafting.RodRecipes; -import com.hbm.creativetabs.*; -import com.hbm.entity.EntityMappings; -import com.hbm.entity.grenade.*; -import com.hbm.entity.logic.*; -import com.hbm.entity.mob.siege.*; -import com.hbm.handler.*; -import com.hbm.handler.imc.*; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.hazard.HazardRegistry; -import com.hbm.inventory.*; -import com.hbm.inventory.OreDictManager.DictFrame; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.*; -import com.hbm.inventory.recipes.anvil.AnvilRecipes; -import com.hbm.inventory.recipes.loader.SerializableRecipe; -import com.hbm.items.ModItems; -import com.hbm.items.tool.ItemFertilizer; -import com.hbm.items.weapon.ItemGenericGrenade; -import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; -import com.hbm.items.ItemEnums.EnumAchievementType; -import com.hbm.lib.HbmWorld; -import com.hbm.lib.Library; -import com.hbm.lib.RefStrings; -import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; -import com.hbm.saveddata.satellites.Satellite; -import com.hbm.tileentity.TileMappings; -import com.hbm.tileentity.bomb.TileEntityNukeCustom; -import com.hbm.tileentity.machine.*; -import com.hbm.tileentity.machine.rbmk.RBMKDials; -import com.hbm.util.AchievementHandler; -import com.hbm.util.ArmorUtil; -import com.hbm.util.Compat; -import com.hbm.util.StatHelper; -import com.hbm.util.SuicideThreadDump; -import com.hbm.world.feature.*; -import com.hbm.world.generator.CellularDungeonFactory; - -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent; -import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartedEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; - @Mod(modid = RefStrings.MODID, name = RefStrings.NAME, version = RefStrings.VERSION) public class MainRegistry { @@ -129,7 +125,7 @@ public class MainRegistry { public static ToolMaterial tMatCMB = EnumHelper.addToolMaterial("HBM_CMB", 3, 8500, 40.0F, 55F, 100); public static ToolMaterial tMatElec = EnumHelper.addToolMaterial("HBM_ELEC", 3, 0, 30.0F, 12.0F, 2); public static ToolMaterial tMatDesh = EnumHelper.addToolMaterial("HBM_DESH", 2, 0, 7.5F, 2.0F, 10); - public static ToolMaterial tMatCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 15); + public static ToolMaterial tMatCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 60); public static ToolMaterial enumToolMaterialSaw = EnumHelper.addToolMaterial("SAW", 2, 750, 2.0F, 3.5F, 25); public static ToolMaterial enumToolMaterialBat = EnumHelper.addToolMaterial("BAT", 0, 500, 1.5F, 3F, 25); @@ -158,7 +154,7 @@ public class MainRegistry { public static ArmorMaterial aMatCMB = EnumHelper.addArmorMaterial("HBM_CMB", 60, new int[] { 3, 8, 6, 3 }, 50); public static ArmorMaterial aMatAus3 = EnumHelper.addArmorMaterial("HBM_AUSIII", 375, new int[] { 2, 6, 5, 2 }, 0); public static ArmorMaterial aMatSecurity = EnumHelper.addArmorMaterial("HBM_SECURITY", 100, new int[] { 3, 8, 6, 3 }, 15); - public static ArmorMaterial aMatCobalt = EnumHelper.addArmorMaterial("HBM_COBALT", 70, new int[] { 3, 8, 6, 3 }, 25); + public static ArmorMaterial aMatCobalt = EnumHelper.addArmorMaterial("HBM_COBALT", 70, new int[] { 3, 8, 6, 3 }, 60); public static ArmorMaterial aMatStarmetal = EnumHelper.addArmorMaterial("HBM_STARMETAL", 150, new int[] { 3, 8, 6, 3 }, 100); public static ArmorMaterial aMatBismuth = EnumHelper.addArmorMaterial("HBM_BISMUTH", 100, new int[] { 3, 8, 6, 3 }, 100); @@ -195,6 +191,7 @@ public class MainRegistry { public static Achievement achGoFish; public static Achievement achNo9; public static Achievement achInferno; + public static Achievement achRedRoom; public static Achievement bobHidden; public static Achievement horizonsStart; public static Achievement horizonsEnd; @@ -249,7 +246,7 @@ public class MainRegistry { public static File configDir; public static File configHbmDir; - Random rand = new Random(); + public Random rand = new Random(); @EventHandler public void PreLoad(FMLPreInitializationEvent PreEvent) { @@ -274,6 +271,9 @@ public class MainRegistry { loadConfig(PreEvent); HbmPotion.init(); + /* For whichever fucking reason, replacing the bolt items with a bolt autogen broke all autogen items, most likely due to the load order. + * This "fix" just makes sure that the material system is loaded first no matter what. */ + Mats.MAT_STONE.getUnlocalizedName(); Fluids.init(); ModBlocks.mainRegistry(); ModItems.mainRegistry(); @@ -289,7 +289,11 @@ public class MainRegistry { SiegeTier.registerTiers(); HazardRegistry.registerItems(); HazardRegistry.registerTrafos(); - OreDictManager.registerGroups(); + + OreDictManager oreMan = new OreDictManager(); + MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent + OreDictManager.registerGroups(); //important to run first + OreDictManager.registerOres(); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); @@ -326,6 +330,7 @@ public class MainRegistry { TileMappings.writeMappings(); MachineDynConfig.initialize(); + TileEntityLaunchPad.registerLaunchables(); for(Entry, String[]> e : TileMappings.map.entrySet()) { @@ -678,6 +683,7 @@ public class MainRegistry { achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.ACID), null).initIndependentStat().registerStat(); achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); + achRedRoom = new Achievement("achievement.redRoom", "redRoom", -10, 10, ModItems.key_red, null).initIndependentStat().setSpecial().registerStat(); bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); @@ -757,6 +763,7 @@ public class MainRegistry { achWitchtaunter, achNo9, achInferno, + achRedRoom, achSlimeball, achSulfuric, bossCreeper, @@ -806,7 +813,6 @@ public class MainRegistry { // MUST be initialized AFTER achievements!! BobmazonOfferFactory.init(); - OreDictManager.registerOres(); IMCHandler.registerHandler("blastfurnace", new IMCBlastFurnace()); IMCHandler.registerHandler("crystallizer", new IMCCrystallizer()); @@ -899,9 +905,6 @@ public class MainRegistry { MinecraftForge.EVENT_BUS.register(impactHandler); MinecraftForge.TERRAIN_GEN_BUS.register(impactHandler); - OreDictManager oreMan = new OreDictManager(); - MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent - PacketDispatcher.registerPackets(); ChunkRadiationManager radiationSystem = new ChunkRadiationManager(); @@ -928,6 +931,7 @@ public class MainRegistry { event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); event.registerServerCommand(new CommandSatellites()); + event.registerServerCommand(new CommandRadiation()); } @EventHandler @@ -1167,6 +1171,26 @@ public class MainRegistry { ignoreMappings.add("hbm:item.primer_50"); ignoreMappings.add("hbm:item.primer_buckshot"); ignoreMappings.add("hbm:tile.ore_bedrock_coltan"); + ignoreMappings.add("hbm:item.recycled_ground"); + ignoreMappings.add("hbm:item.recycled_rock"); + ignoreMappings.add("hbm:item.recycled_metal"); + ignoreMappings.add("hbm:item.recycled_refined"); + ignoreMappings.add("hbm:item.recycled_organic"); + ignoreMappings.add("hbm:item.recycled_crystal"); + ignoreMappings.add("hbm:item.recycled_explosive"); + ignoreMappings.add("hbm:item.recycled_electronic"); + ignoreMappings.add("hbm:item.recycled_nuclear"); + ignoreMappings.add("hbm:item.recycled_misc"); + ignoreMappings.add("hbm:item.gun_bf_ammo"); + ignoreMappings.add("hbm:tile.brick_dungeon"); + ignoreMappings.add("hbm:tile.brick_dungeon_flat"); + ignoreMappings.add("hbm:tile.brick_dungeon_tile"); + ignoreMappings.add("hbm:tile.brick_dungeon_circle"); + ignoreMappings.add("hbm:tile.bomber"); + ignoreMappings.add("hbm:item.bolt_tungsten"); + ignoreMappings.add("hbm:item.bolt_dura_steel"); + ignoreMappings.add("hbm:tile.rail_large_curve_wide"); + ignoreMappings.add("hbm:tile.nuke_n45"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 9b99a5f7a..d0ab5626f 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -4,11 +4,13 @@ import java.lang.reflect.Field; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Random; +import java.util.Set; import org.apache.commons.lang3.math.NumberUtils; import org.apache.logging.log4j.Level; @@ -20,8 +22,6 @@ import com.hbm.blocks.generic.BlockAshes; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; -import com.hbm.entity.missile.EntityMissileBaseAdvanced; -import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.entity.mob.EntityCyberCrab; import com.hbm.entity.mob.EntityDuck; import com.hbm.entity.mob.EntityCreeperNuclear; @@ -66,7 +66,9 @@ import com.hbm.packet.PermaSyncPacket; import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import com.hbm.tileentity.network.RTTYSystem; +import com.hbm.tileentity.network.RequestNetwork; import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; @@ -822,7 +824,7 @@ public class ModEventHandler { EntityPlayer player = event.entityPlayer; ItemStack chestplate = player.inventory.armorInventory[2]; - if(player.getHeldItem() == null && chestplate != null && ArmorModHandler.hasMods(chestplate)) { + if(!player.worldObj.isRemote && player.getHeldItem() == null && chestplate != null && ArmorModHandler.hasMods(chestplate)) { ItemStack[] mods = ArmorModHandler.pryMods(chestplate); ItemStack servo = mods[ArmorModHandler.servos]; @@ -1097,19 +1099,21 @@ public class ModEventHandler { if(event.phase == event.phase.START) { RTTYSystem.updateBroadcastQueue(); + RequestNetwork.updateEntries(); + TileEntityMachineRadarNT.updateSystem(); } } @SubscribeEvent public void enteringChunk(EnteringChunk evt) { - if(evt.entity instanceof EntityMissileBaseAdvanced) { - ((EntityMissileBaseAdvanced) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); + /*if(evt.entity instanceof EntityMissileBaseNT) { + ((EntityMissileBaseNT) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); } if(evt.entity instanceof EntityMissileCustom) { ((EntityMissileCustom) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); - } + }*/ } @SubscribeEvent @@ -1198,7 +1202,12 @@ public class ModEventHandler { } } - private static final String hash = "41eb77f138ce350932e33b6b26b233df9aad0c0c80c6a49cb9a54ddd8fae3f83"; + private static final Set hashes = new HashSet(); + + static { + hashes.add("41de5c372b0589bbdb80571e87efa95ea9e34b0d74c6005b8eab495b7afd9994"); + hashes.add("31da6223a100ed348ceb3254ceab67c9cc102cb2a04ac24de0df3ef3479b1036"); + } @SubscribeEvent public void onClickSign(PlayerInteractEvent event) { @@ -1208,14 +1217,14 @@ public class ModEventHandler { int z = event.z; World world = event.world; - if(!world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK && world.getBlock(x, y, z) == Blocks.standing_sign) { + if(!world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK && world.getTileEntity(x, y, z) instanceof TileEntitySign) { TileEntitySign sign = (TileEntitySign)world.getTileEntity(x, y, z); String result = smoosh(sign.signText[0], sign.signText[1], sign.signText[2], sign.signText[3]); - //System.out.println(result); + System.out.println(result); - if(result.equals(hash)) { + if(hashes.contains(result)) { world.func_147480_a(x, y, z, false); EntityItem entityitem = new EntityItem(world, x, y, z, new ItemStack(ModItems.bobmazon_hidden)); entityitem.delayBeforeCanPickup = 10; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 8390aa880..72e07c9b8 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,6 +1,7 @@ package com.hbm.main; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; @@ -68,6 +69,7 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; @@ -144,7 +146,8 @@ import net.minecraftforge.event.entity.player.ItemTooltipEvent; public class ModEventHandlerClient { - public static int flashTimer; + public static final int flashDuration = 5_000; + public static long flashTimestamp; @SubscribeEvent public void onOverlayRender(RenderGameOverlayEvent.Pre event) { @@ -152,7 +155,7 @@ public class ModEventHandlerClient { EntityPlayer player = Minecraft.getMinecraft().thePlayer; /// NUKE FLASH /// - if(event.type == ElementType.CROSSHAIRS && flashTimer > 0) { + if(event.type == ElementType.CROSSHAIRS && (flashTimestamp + flashDuration - System.currentTimeMillis()) > 0) { int width = event.resolution.getScaledWidth(); int height = event.resolution.getScaledHeight(); Tessellator tess = Tessellator.instance; @@ -162,7 +165,7 @@ public class ModEventHandlerClient { GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F); GL11.glDepthMask(false); tess.startDrawingQuads(); - float brightness = (flashTimer - event.partialTicks) / 200F; + float brightness = (flashTimestamp + flashDuration - System.currentTimeMillis()) / (float) flashDuration; tess.setColorRGBA_F(1F, 1F, 1F, brightness * 0.8F); tess.addVertex(width, 0, 0); tess.addVertex(0, 0, 0); @@ -252,6 +255,11 @@ public class ModEventHandlerClient { double distanceToCover = 4D * (i == 0 ? 1 : -1); + if(distanceToCover < 0) { + distanceToCover *= -1; + yaw += 180; + } + do { it++; @@ -956,6 +964,25 @@ public class ModEventHandlerClient { } } } + + if(event.phase == Phase.START) { + EntityPlayer player = mc.thePlayer; + + float discriminator = 0.003F; + float defaultStepSize = 0.5F; + int newStepSize = 0; + + if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB) { + ArmorFSB plate = (ArmorFSB) player.inventory.armorInventory[2].getItem(); + if(plate.hasFSBArmor(player)) newStepSize = plate.stepSize; + } + + if(newStepSize > 0) { + player.stepHeight = newStepSize + discriminator; + } else { + for(int i = 1; i < 4; i++) if(player.stepHeight == i + discriminator) player.stepHeight = defaultStepSize; + } + } } @SideOnly(Side.CLIENT) @@ -1262,8 +1289,6 @@ public class ModEventHandlerClient { client.sendQueue.addToSendQueue(new C0CPacketInput(client.moveStrafing, client.moveForward, client.movementInput.jump, client.movementInput.sneak)); } } - - if(event.phase == Phase.START) if(flashTimer > 0) flashTimer--; } @SubscribeEvent @@ -1277,7 +1302,7 @@ public class ModEventHandlerClient { case 0: main.splashText = "Floppenheimer!"; break; case 1: main.splashText = "i should dip my balls in sulfuric acid"; break; case 2: main.splashText = "All answers are popbob!"; break; - case 3: main.splashText = "None shall enter The Orb!"; break; + case 3: main.splashText = "None may enter The Orb!"; break; case 4: main.splashText = "Wacarb was here"; break; case 5: main.splashText = "SpongeBoy me Bob I am overdosing on keramine agagagagaga"; break; case 6: main.splashText = EnumChatFormatting.RED + "I know where you live, " + System.getProperty("user.name"); break; @@ -1286,10 +1311,10 @@ public class ModEventHandlerClient { case 9: main.splashText = "There are bugs under your skin!"; break; case 10: main.splashText = "Fentanyl!"; break; case 11: main.splashText = "Do drugs!"; break; - //case 12: main.splashText = "post this on r/feedthememes for free internet points!"; break; + case 12: main.splashText = "Imagine being scared by splash texts!"; break; } - if(Math.random() < 0.1) main.splashText = "Visit r/feedthebeast if you hate yourself!"; + if(Math.random() < 0.1) main.splashText = "Redditors aren't people!"; } } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerImpact.java b/src/main/java/com/hbm/main/ModEventHandlerImpact.java index fbad76c79..7f178531f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerImpact.java +++ b/src/main/java/com/hbm/main/ModEventHandlerImpact.java @@ -31,10 +31,11 @@ import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.living.LivingSpawnEvent.CheckSpawn; import net.minecraftforge.event.terraingen.BiomeEvent; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate; import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; import net.minecraftforge.event.world.WorldEvent; @@ -100,31 +101,47 @@ public class ModEventHandlerImpact { }*/ @SubscribeEvent - public void extinction(EntityJoinWorldEvent event) { + public void extinction(CheckSpawn event) { TomSaveData data = TomSaveData.forWorld(event.world); if(data.impact) { - if(!(event.entity instanceof EntityPlayer) && event.entity instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) event.entity; + if(!(event.entityLiving instanceof EntityPlayer) && event.entityLiving instanceof EntityLivingBase) { if(event.world.provider.dimensionId == 0) { - if(event.entity.height >= 0.85f || event.entity.width >= 0.85f && event.entity.ticksExisted < 20 && !(event.entity instanceof EntityWaterMob) && !living.isChild()) { - event.setCanceled(true); + if(event.entityLiving.height >= 0.85F || event.entityLiving.width >= 0.85F && !(event.entity instanceof EntityWaterMob) && !event.entityLiving.isChild()) { + event.setResult(Result.DENY); + event.entityLiving.setDead(); } } - if(event.entity instanceof EntityWaterMob && event.entity.ticksExisted < 20) { + if(event.entityLiving instanceof EntityWaterMob) { Random rand = new Random(); - if(rand.nextInt(9) != 0) { - event.setCanceled(true); + if(rand.nextInt(5) != 0) { + event.setResult(Result.DENY); + event.entityLiving.setDead(); } } } } } + + @SubscribeEvent + public void onPopulate(Populate event) { + + if(event.type == Populate.EventType.ANIMALS) { + + TomSaveData data = TomSaveData.forWorld(event.world); + + if(data.impact) { + event.setResult(Result.DENY); + } + } + } @SubscribeEvent(priority = EventPriority.LOWEST) public void onLoad(WorldEvent.Load event) { + TomSaveData.resetLastCached(); + if(GeneralConfig.enableImpactWorldProvider) { DimensionManager.unregisterProviderType(0); DimensionManager.registerProviderType(0, WorldProviderNTM.class, true); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index eee0c1d97..50156b735 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -383,8 +383,8 @@ public class ModEventHandlerRenderer { @SubscribeEvent public void onRenderHUD(RenderGameOverlayEvent.Pre event) { - if(event.type == ElementType.HOTBAR && ModEventHandlerClient.flashTimer > 0) { - double mult = (ModEventHandlerClient.flashTimer + event.partialTicks) * 0.01D; + if(event.type == ElementType.HOTBAR && (ModEventHandlerClient.flashTimestamp + ModEventHandlerClient.flashDuration - System.currentTimeMillis()) > 0) { + double mult = (ModEventHandlerClient.flashTimestamp + ModEventHandlerClient.flashDuration - System.currentTimeMillis()) / (double) ModEventHandlerClient.flashDuration * 2; double horizontal = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.02), -0.7, 0.7) * 5; double vertical = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.01 + 2), -0.7, 0.7) * 1; GL11.glTranslated(horizontal * mult, vertical * mult, 0); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 7ce0ffd04..1d1697804 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -75,6 +75,9 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new OutgasserHandler()); registerHandler(new ElectrolyserFluidHandler()); registerHandler(new ElectrolyserMetalHandler()); + registerHandler(new AshpitHandler()); + registerHandler(new ArcWelderHandler()); + registerHandler(new ExposureChamberHandler()); for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index be61c02bd..b27890ada 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -83,6 +83,7 @@ public class ResourceManager { //Flare Stack public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")); + public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")); //Tank public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")); @@ -96,6 +97,9 @@ public class ResourceManager { //Gas Turbine public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")); + //Pumps + public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asDisplayList(); + //Large Turbine public static final IModelCustom steam_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/steam_engine.obj")).asDisplayList(); public static final IModelCustom turbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbine.obj")); @@ -104,6 +108,10 @@ public class ResourceManager { //Cooling Tower public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")); public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")); + public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")); + + //Wood burner + public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj")); //IGen public static final IModelCustom igen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/igen.obj")); @@ -122,6 +130,7 @@ public class ResourceManager { public static final IModelCustom press_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_head.obj")); public static final IModelCustom epress_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_body.obj")); public static final IModelCustom epress_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_head.obj")); + public static final IModelCustom conveyor_press = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/conveyor_press.obj")); //Assembler public static final IModelCustom assembler_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_body.obj")); @@ -141,6 +150,9 @@ public class ResourceManager { //Mixer public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj")); + //Arc Welder + public static final IModelCustom arc_welder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/arc_welder.obj")); + //F6 TANKS public static final IModelCustom tank = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tank.obj")); @@ -170,6 +182,9 @@ public class ResourceManager { //Cyclotron public static final IModelCustom cyclotron = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cyclotron.obj")); + //Exposure Chamber + public static final IModelCustom exposure_chamber = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/exposure_chamber.obj")); + //RTG public static final IModelCustom rtg = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/rtg.obj")); @@ -230,6 +245,7 @@ public class ResourceManager { public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")); public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj")); public static final IModelCustom radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj")); + public static final IModelCustom radar_screen = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj")); //Forcefield public static final IModelCustom forcefield_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/forcefield_top.obj")); @@ -238,7 +254,7 @@ public class ResourceManager { public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/shredder.obj")); //Bombs - public static final IModelCustom bomb_gadget = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TheGadget3.obj")); + public static final IModelCustom bomb_gadget = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/gadget.obj")).asDisplayList(); public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/LilBoy1.obj")); public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asDisplayList(); public static final IModelCustom bomb_mike = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ivymike.obj")); @@ -305,6 +321,30 @@ public class ResourceManager { public static AnimatedModel transition_seal; public static Animation transition_seal_anim; public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); + + //Secure Access Door + public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); + public static WavefrontObjDisplayList secure_access_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/secure_access_door.obj"))); + + public static final ResourceLocation water_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/water_door.png"); + public static WavefrontObjDisplayList water_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/water_door.obj"))); + + public static final ResourceLocation sliding_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_seal_door.png"); + public static WavefrontObjDisplayList sliding_seal_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_seal_door.obj"))); + + public static final ResourceLocation round_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/round_airlock_door.png"); + public static WavefrontObjDisplayList round_airlock_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/round_airlock_door.obj"))); + + public static final ResourceLocation qe_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_sliding_door.png"); + public static WavefrontObjDisplayList qe_sliding_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_sliding_door.obj"))); + + public static final ResourceLocation qe_containment_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment.png"); + public static WavefrontObjDisplayList qe_containment = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_containment.obj"))); + + public static final ResourceLocation large_vehicle_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/large_vehicle_door.png"); + public static WavefrontObjDisplayList large_vehicle_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/large_vehicle_door.obj"))); + public static final ResourceLocation qe_containment_decal = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment_decal.png"); + //Lantern public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); @@ -345,6 +385,9 @@ public class ResourceManager { //DecoContainer (File Cabinet for now) public static final IModelCustom file_cabinet = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/file_cabinet.obj")); + //TELEX + public static final IModelCustom telex = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/telex.obj")); + ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); @@ -430,6 +473,7 @@ public class ResourceManager { //Flare Stack public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png"); public static final ResourceLocation chimney_brick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chimney_brick.png"); + public static final ResourceLocation chimney_industrial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chimney_industrial.png"); //Tank public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png"); @@ -445,6 +489,10 @@ public class ResourceManager { //Gas Turbine public static final ResourceLocation turbinegas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbinegas.png"); + + //Pumps + public static final ResourceLocation pump_steam_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pump_steam.png"); + public static final ResourceLocation pump_electric_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pump_electric.png"); //Large Turbine public static final ResourceLocation steam_engine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/steam_engine.png"); @@ -454,10 +502,14 @@ public class ResourceManager { //Cooling Tower public static final ResourceLocation tower_small_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tower_small.png"); public static final ResourceLocation tower_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tower_large.png"); + public static final ResourceLocation condenser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/condenser.png"); //Deuterium Tower public static final ResourceLocation deuterium_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/machine_deuterium_tower.png"); + //Wood Burner + public static final ResourceLocation wood_burner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/wood_burner.png"); + //IGen public static final ResourceLocation igen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen.png"); public static final ResourceLocation igen_rotor = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_rotor.png"); @@ -479,6 +531,8 @@ public class ResourceManager { public static final ResourceLocation press_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_head.png"); public static final ResourceLocation epress_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_body.png"); public static final ResourceLocation epress_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_head.png"); + public static final ResourceLocation conveyor_press_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press.png"); + public static final ResourceLocation conveyor_press_belt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press_belt.png"); //Assembler public static final ResourceLocation assembler_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_base_new.png"); @@ -496,6 +550,9 @@ public class ResourceManager { //Mixer public static final ResourceLocation mixer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mixer.png"); + + //Welder + public static final ResourceLocation arc_welder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/arc_welder.png"); //F6 TANKS public static final ResourceLocation uf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/UF6Tank.png"); @@ -539,6 +596,9 @@ public class ResourceManager { public static final ResourceLocation cyclotron_coin = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_coin.png"); public static final ResourceLocation cyclotron_coin_filled = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_coin_filled.png"); + //Exposure Chamber + public static final ResourceLocation exposure_chamber_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/exposure_chamber.png"); + //RTG public static final ResourceLocation rtg_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg.png"); public static final ResourceLocation rtg_cell_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg_cell.png"); @@ -601,6 +661,7 @@ public class ResourceManager { public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png"); public static final ResourceLocation radar_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_base.png"); public static final ResourceLocation radar_dish_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_dish.png"); + public static final ResourceLocation radar_screen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_screen.png"); //Forcefield public static final ResourceLocation forcefield_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_base.png"); @@ -610,7 +671,7 @@ public class ResourceManager { public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/shredder.png"); //Bombs - public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_tex.png"); + public static final ResourceLocation bomb_gadget_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/gadget.png"); public static final ResourceLocation bomb_boy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lilboy.png"); public static final ResourceLocation bomb_man_tex = new ResourceLocation(RefStrings.MODID, "textures/models/FatMan.png"); public static final ResourceLocation bomb_mike_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ivymike.png"); @@ -689,6 +750,7 @@ public class ResourceManager { public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png"); + public static final ResourceLocation glyphid_digger_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_digger.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); @@ -712,6 +774,9 @@ public class ResourceManager { public static final ResourceLocation file_cabinet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/file_cabinet.png"); public static final ResourceLocation file_cabinet_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/file_cabinet_steel.png"); + //TELEX + public static final ResourceLocation telex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/telex.png"); + ////Obj Items //Shimmer Sledge @@ -763,6 +828,7 @@ public class ResourceManager { public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asDisplayList(); public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asDisplayList(); + public static final IModelCustom lilmac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lilmac.obj")).asDisplayList(); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -786,6 +852,7 @@ public class ResourceManager { public static final IModelCustom armor_solstice = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/solstice.obj")); public static final IModelCustom player_manly_af = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/armor/player_fem.obj")); public static final IModelCustom armor_envsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/envsuit.obj")); + public static final IModelCustom armor_trenchmaster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/trenchmaster.obj")); ////Texture Items @@ -859,6 +926,8 @@ public class ResourceManager { public static final ResourceLocation cryocannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon.png"); public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png"); public static final ResourceLocation congolake_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/congolake.png"); + public static final ResourceLocation lilmac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac.png"); + public static final ResourceLocation lilmac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_scope.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); @@ -932,6 +1001,11 @@ public class ResourceManager { public static final ResourceLocation rpa_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_chest.png"); public static final ResourceLocation rpa_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_arm.png"); + public static final ResourceLocation trenchmaster_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_helmet.png"); + public static final ResourceLocation trenchmaster_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_leg.png"); + public static final ResourceLocation trenchmaster_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_chest.png"); + public static final ResourceLocation trenchmaster_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_arm.png"); + public static final ResourceLocation mod_tesla = new ResourceLocation(RefStrings.MODID, "textures/armor/mod_tesla.png"); public static final ResourceLocation armor_bismuth_tex = new ResourceLocation(RefStrings.MODID, "textures/armor/bismuth.png"); @@ -971,9 +1045,11 @@ public class ResourceManager { public static final IModelCustom b29 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/b29.obj")); //Missiles - public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileV2.obj")); - public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj")); - public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj")); + public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asDisplayList(); + public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList(); + public static final IModelCustom missileStealth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_stealth.obj"), false).asDisplayList(); + public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")); + public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); public static final IModelCustom missileMIRV = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileMIRV.obj")); public static final IModelCustom missileThermo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileThermo.obj")); @@ -1066,6 +1142,9 @@ public class ResourceManager { public static final IModelCustom train_cargo_tram_trailer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram_trailer.obj")); public static final IModelCustom tunnel_bore = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/vehicles/tunnel_bore.obj")); + //Drones + public static final IModelCustom delivery_drone = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/drone.obj")); + ////Texture Entities //Blast @@ -1107,20 +1186,22 @@ public class ResourceManager { public static final ResourceLocation b29_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_3.png"); //Missiles - public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_HE.png"); - public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_IN.png"); - public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_CL.png"); - public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png"); - public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileAA.png"); - public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); - public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); - public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png"); - public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_CL.png"); - public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_BU.png"); - public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_HE.png"); - public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_IN.png"); - public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_CL.png"); - public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_BU.png"); + public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2.png"); + public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_inc.png"); + public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_cl.png"); + public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png"); + public static final ResourceLocation missileV2_decoy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_decoy.png"); + public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); + public static final ResourceLocation missileStealth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_stealth.png"); + public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong.png"); + public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_emp.png"); + public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_inc.png"); + public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_cl.png"); + public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_bu.png"); + public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge.png"); + public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_inc.png"); + public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_cl.png"); + public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_bu.png"); public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeon.png"); public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonH.png"); public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonV.png"); @@ -1342,6 +1423,11 @@ public class ResourceManager { public static final ResourceLocation train_tram = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram.png"); public static final ResourceLocation tram_trailer = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram_trailer.png"); + //Drone + public static final ResourceLocation delivery_drone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone.png"); + public static final ResourceLocation delivery_drone_express_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_express.png"); + public static final ResourceLocation delivery_drone_request_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_request.png"); + //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/taperecorder.obj")); @@ -1383,10 +1469,16 @@ public class ResourceManager { public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); + public static final IModelCustom rail_standard_straight_short = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_short.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); + public static final IModelCustom rail_standard_curve_wide7 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide.obj")); + public static final IModelCustom rail_standard_curve_wide9 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend_wide9.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); + public static final IModelCustom rail_standard_switch = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch.obj")); + public static final IModelCustom rail_standard_switch_flipped = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_switch_flipped.obj")); public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); + public static final IModelCustom funnel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/funnel.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 7695b401f..e30cbe562 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -20,13 +20,14 @@ public class ServerProxy { public static final int ID_FILTER = 1; public static final int ID_COMPASS = 2; public static final int ID_CABLE = 3; - public static final int ID_JETPACK = 4; - public static final int ID_HUD = 5; - public static final int ID_DETONATOR = 6; - public static final int ID_FLUID_ID = 7; - public static final int ID_TOOLABILITY = 8; - public static final int ID_GUN_MODE = 9; - public static final int ID_GAS_HAZARD = 10; + public static final int ID_DRONE = 4; + public static final int ID_JETPACK = 5; + public static final int ID_HUD = 6; + public static final int ID_DETONATOR = 7; + public static final int ID_FLUID_ID = 8; + public static final int ID_TOOLABILITY = 9; + public static final int ID_GUN_MODE = 10; + public static final int ID_GAS_HAZARD = 11; public void registerRenderInfo() { } public void registerTileEntitySpecialRenderer() { } diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index 299dee72f..e97a68ce1 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -5,19 +5,12 @@ import com.hbm.items.weapon.ItemMissile.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.bomb.TileEntityCompactLauncher; import com.hbm.tileentity.bomb.TileEntityLaunchTable; -import com.hbm.tileentity.bomb.TileEntityNukeN45; -import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.machine.TileEntityAMSBase; import com.hbm.tileentity.machine.TileEntityAMSEmitter; import com.hbm.tileentity.machine.TileEntityAMSLimiter; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; import com.hbm.tileentity.machine.TileEntityMachineBoiler; import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; -import com.hbm.tileentity.machine.TileEntityMachineCoal; -import com.hbm.tileentity.machine.TileEntityMachineDiesel; -import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge.ReactorFuelType; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -113,21 +106,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 1) selenium.powerCap = m.value; } - if (te instanceof TileEntityMachineDiesel) { - TileEntityMachineDiesel selenium = (TileEntityMachineDiesel)te; - - selenium.powerCap = m.value; - } - if (te instanceof TileEntityBomber) { - TileEntityBomber bomber = (TileEntityBomber)te; - - if(m.id == 0) - bomber.yaw = m.value; - if(m.id == 1) - bomber.pitch = m.value; - if(m.id == 2) - bomber.type = m.value; - } if (te instanceof TileEntityMachineBoiler) { TileEntityMachineBoiler boiler = (TileEntityMachineBoiler)te; @@ -136,18 +114,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 1) boiler.burnTime = m.value; } - if (te instanceof TileEntityMachineCoal) { - TileEntityMachineCoal coalgen = (TileEntityMachineCoal)te; - - if(m.id == 0) - coalgen.burnTime = m.value; - } - if (te instanceof TileEntityMachineElectricFurnace) { - TileEntityMachineElectricFurnace furn = (TileEntityMachineElectricFurnace)te; - - if(m.id == 0) - furn.progress = m.value; - } if (te instanceof TileEntityMachineArcFurnace) { TileEntityMachineArcFurnace furn = (TileEntityMachineArcFurnace)te; @@ -160,29 +126,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 0) boiler.heat = m.value; } - if (te instanceof TileEntityNukeN45) { - TileEntityNukeN45 nuke = (TileEntityNukeN45)te; - - nuke.primed = m.value == 1; - } - if (te instanceof TileEntityMachineReactorLarge) { - TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)te; - - if(m.id == 0) - reactor.rods = m.value; - if(m.id == 1) - reactor.coreHeat = m.value; - if(m.id == 2) - reactor.hullHeat = m.value; - if(m.id == 3) - reactor.size = m.value; - if(m.id == 4) - reactor.fuel = m.value; - if(m.id == 5) - reactor.waste = m.value; - if(m.id == 6) - reactor.type = ReactorFuelType.getEnum(m.value); - } if (te instanceof TileEntityCompactLauncher) { TileEntityCompactLauncher launcher = (TileEntityCompactLauncher)te; diff --git a/src/main/java/com/hbm/packet/BiomeSyncPacket.java b/src/main/java/com/hbm/packet/BiomeSyncPacket.java index aa8f992ea..203ddc281 100644 --- a/src/main/java/com/hbm/packet/BiomeSyncPacket.java +++ b/src/main/java/com/hbm/packet/BiomeSyncPacket.java @@ -28,8 +28,8 @@ public class BiomeSyncPacket implements IMessage { } public BiomeSyncPacket(int blockX, int blockZ, byte biome) { - this.chunkX = blockX << 4; - this.chunkZ = blockZ << 4; + this.chunkX = blockX >> 4; + this.chunkZ = blockZ >> 4; this.blockX = (byte) (blockX & 15); this.blockZ = (byte) (blockZ & 15); this.biome = biome; @@ -63,7 +63,6 @@ public class BiomeSyncPacket implements IMessage { this.blockX = buf.readByte(); this.blockZ = buf.readByte(); } else { - buf.writeBoolean(true); this.biomeArray = new byte[256]; for(int i = 0; i < 256; i++) { this.biomeArray[i] = buf.readByte(); @@ -80,12 +79,15 @@ public class BiomeSyncPacket implements IMessage { World world = Minecraft.getMinecraft().theWorld; if(!world.getChunkProvider().chunkExists(m.chunkX, m.chunkZ)) return null; Chunk chunk = world.getChunkFromChunkCoords(m.chunkX, m.chunkZ); + chunk.isModified = true; if(m.biomeArray == null) { chunk.getBiomeArray()[(m.blockZ & 15) << 4 | (m.blockX & 15)] = m.biome; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, m.chunkX << 4, 255, m.chunkZ << 4); } else { for(int i = 0; i < 256; i++) { chunk.getBiomeArray()[i] = m.biomeArray[i]; + world.markBlockRangeForRenderUpdate(m.chunkX << 4, 0, m.chunkZ << 4, (m.chunkX << 4) + 15, 255, (m.chunkZ << 4) + 15); } } diff --git a/src/main/java/com/hbm/packet/BufPacket.java b/src/main/java/com/hbm/packet/BufPacket.java new file mode 100644 index 000000000..7ff502c9d --- /dev/null +++ b/src/main/java/com/hbm/packet/BufPacket.java @@ -0,0 +1,62 @@ +package com.hbm.packet; + +import com.hbm.tileentity.IBufPacketReceiver; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class BufPacket implements IMessage { + + int x; + int y; + int z; + IBufPacketReceiver rec; + ByteBuf buf; + + public BufPacket() { } + + public BufPacket(int x, int y, int z, IBufPacketReceiver rec) { + this.x = x; + this.y = y; + this.z = z; + this.rec = rec; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); + this.buf = buf; + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + this.rec.serialize(buf); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(BufPacket m, MessageContext ctx) { + + if(Minecraft.getMinecraft().theWorld == null) + return null; + + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if(te instanceof IBufPacketReceiver) { + ((IBufPacketReceiver) te).deserialize(m.buf); + } + + return null; + } + } +} diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java index 44d9339bf..ed0ff966b 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/LoopedSoundPacket.java @@ -1,17 +1,8 @@ package com.hbm.packet; import com.hbm.interfaces.Spaghetti; -import com.hbm.sound.SoundLoopAssembler; -import com.hbm.sound.SoundLoopBroadcaster; -import com.hbm.sound.SoundLoopCentrifuge; -import com.hbm.sound.SoundLoopMiner; -import com.hbm.sound.SoundLoopTurbofan; -import com.hbm.tileentity.machine.TileEntityBroadcaster; -import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; -import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; -import com.hbm.tileentity.machine.TileEntityMachineTurbofan; +import com.hbm.sound.*; +import com.hbm.tileentity.machine.*; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/packet/NBTPacket.java b/src/main/java/com/hbm/packet/NBTPacket.java index 80645347d..3bd5afbcb 100644 --- a/src/main/java/com/hbm/packet/NBTPacket.java +++ b/src/main/java/com/hbm/packet/NBTPacket.java @@ -14,6 +14,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; + +@Deprecated // rest in peace sweet little prince public class NBTPacket implements IMessage { PacketBuffer buffer; diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 3d94f2d10..9414d49a0 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -19,12 +19,6 @@ public class PacketDispatcher { wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, i++, Side.CLIENT); //Mining drill rotation for rendering wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); - //Mining drill torque for sounds - wrapper.registerMessage(TEDrillSoundPacket.Handler.class, TEDrillSoundPacket.class, i++, Side.CLIENT); - //Assembler cog rotation for rendering - wrapper.registerMessage(TEAssemblerPacket.Handler.class, TEAssemblerPacket.class, i++, Side.CLIENT); - //Missile type for rendering - wrapper.registerMessage(TEMissilePacket.Handler.class, TEMissilePacket.class, i++, Side.CLIENT); //Fluid packet for GUI wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated @@ -33,16 +27,10 @@ public class PacketDispatcher { wrapper.registerMessage(ItemFolderPacket.Handler.class, ItemFolderPacket.class, i++, Side.SERVER); //Electricity gauge for GUI rendering wrapper.registerMessage(AuxElectricityPacket.Handler.class, AuxElectricityPacket.class, i++, Side.CLIENT); - //Universal package for machine gauges and states - wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //Siren packet for looped sounds wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStacks wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarDestructorPacket.Handler.class, TERadarDestructorPacket.class, i++, Side.CLIENT); //Signals server to perform orbital strike, among other things wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER); //Universal package for sending small info packs back to server @@ -57,7 +45,7 @@ public class PacketDispatcher { wrapper.registerMessage(ExtPropPacket.Handler.class, ExtPropPacket.class, i++, Side.CLIENT); //Entity sound packet that keeps client and server separated wrapper.registerMessage(LoopedEntitySoundPacket.Handler.class, LoopedEntitySoundPacket.class, i++, Side.CLIENT); - //Entity sound packet that keeps client and server separated + //Packet for force fields wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT); //Sends button information for ItemGunBase wrapper.registerMessage(GunButtonPacket.Handler.class, GunButtonPacket.class, i++, Side.SERVER); @@ -67,8 +55,6 @@ public class PacketDispatcher { wrapper.registerMessage(ItemBobmazonPacket.Handler.class, ItemBobmazonPacket.class, i++, Side.SERVER); //Packet to send missile multipart information to TEs wrapper.registerMessage(TEMissileMultipartPacket.Handler.class, TEMissileMultipartPacket.class, i++, Side.CLIENT); - //Packet to send NBT data to tile entities - wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //Aux Particle Packet, New Technology: like the APP but with NBT wrapper.registerMessage(AuxParticlePacketNT.Handler.class, AuxParticlePacketNT.class, i++, Side.CLIENT); //Signals server to do coord based satellite stuff @@ -97,6 +83,11 @@ public class PacketDispatcher { wrapper.registerMessage(PermaSyncPacket.Handler.class, PermaSyncPacket.class, i++, Side.CLIENT); //Syncs biome information for single positions or entire chunks wrapper.registerMessage(BiomeSyncPacket.Handler.class, BiomeSyncPacket.class, i++, Side.CLIENT); + + //Tile sync + wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //The horrid one + wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //The convenient but laggy one + wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); //The not-so-convenient but not laggy one } } diff --git a/src/main/java/com/hbm/packet/TEAssemblerPacket.java b/src/main/java/com/hbm/packet/TEAssemblerPacket.java deleted file mode 100644 index fddaeedcb..000000000 --- a/src/main/java/com/hbm/packet/TEAssemblerPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineAssembler; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEAssemblerPacket implements IMessage { - - int x; - int y; - int z; - boolean progress; - - public TEAssemblerPacket() - { - - } - - public TEAssemblerPacket(int x, int y, int z, boolean bool) - { - this.x = x; - this.y = y; - this.z = z; - this.progress = bool; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - progress = buf.readBoolean(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeBoolean(progress); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEAssemblerPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineAssembler) { - - TileEntityMachineAssembler gen = (TileEntityMachineAssembler) te; - gen.isProgressing = m.progress; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEDrillSoundPacket.java b/src/main/java/com/hbm/packet/TEDrillSoundPacket.java deleted file mode 100644 index 5e8ba4a6c..000000000 --- a/src/main/java/com/hbm/packet/TEDrillSoundPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEDrillSoundPacket implements IMessage { - - int x; - int y; - int z; - float spin; - - public TEDrillSoundPacket() - { - - } - - public TEDrillSoundPacket(int x, int y, int z, float spin) - { - this.x = x; - this.y = y; - this.z = z; - this.spin = spin; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - spin = buf.readFloat(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeFloat(spin); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEDrillSoundPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - TileEntityMachineMiningDrill gen = (TileEntityMachineMiningDrill) te; - gen.torque = m.spin; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEMissilePacket.java b/src/main/java/com/hbm/packet/TEMissilePacket.java deleted file mode 100644 index 86933573a..000000000 --- a/src/main/java/com/hbm/packet/TEMissilePacket.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.ModItems; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; - -public class TEMissilePacket implements IMessage { - - int x; - int y; - int z; - int type; - - public TEMissilePacket() { } - - @Spaghetti("die") - public TEMissilePacket(int x, int y, int z, ItemStack stack) { - - this.x = x; - this.y = y; - this.z = z; - this.type = 0; - if(stack != null) { - if(stack.getItem() == ModItems.missile_generic) - type = 1; - if(stack.getItem() == ModItems.missile_strong) - type = 2; - if(stack.getItem() == ModItems.missile_cluster) - type = 3; - if(stack.getItem() == ModItems.missile_nuclear) - type = 4; - if(stack.getItem() == ModItems.missile_incendiary) - type = 5; - if(stack.getItem() == ModItems.missile_buster) - type = 6; - if(stack.getItem() == ModItems.missile_incendiary_strong) - type = 7; - if(stack.getItem() == ModItems.missile_cluster_strong) - type = 8; - if(stack.getItem() == ModItems.missile_buster_strong) - type = 9; - if(stack.getItem() == ModItems.missile_burst) - type = 10; - if(stack.getItem() == ModItems.missile_inferno) - type = 11; - if(stack.getItem() == ModItems.missile_rain) - type = 12; - if(stack.getItem() == ModItems.missile_drill) - type = 13; - if(stack.getItem() == ModItems.missile_endo) - type = 14; - if(stack.getItem() == ModItems.missile_exo) - type = 15; - if(stack.getItem() == ModItems.missile_nuclear_cluster) - type = 16; - if(stack.getItem() == ModItems.missile_doomsday) - type = 17; - if(stack.getItem() == ModItems.missile_taint) - type = 18; - if(stack.getItem() == ModItems.missile_micro) - type = 19; - if(stack.getItem() == ModItems.missile_carrier) - type = 20; - if(stack.getItem() == ModItems.missile_anti_ballistic) - type = 21; - if(stack.getItem() == ModItems.missile_bhole) - type = 22; - if(stack.getItem() == ModItems.missile_schrabidium) - type = 23; - if(stack.getItem() == ModItems.missile_emp) - type = 24; - if(stack.getItem() == ModItems.missile_emp_strong) - type = 25; - if(stack.getItem() == ModItems.missile_volcano) - type = 26; - if(stack.getItem() == ModItems.missile_shuttle) - type = 27; - - } - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEMissilePacket m, MessageContext ctx) { - - try { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityLaunchPad) { - - TileEntityLaunchPad gen = (TileEntityLaunchPad)te; - gen.state = m.type; - } - } catch(Exception e) { } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java b/src/main/java/com/hbm/packet/TERadarDestructorPacket.java deleted file mode 100644 index 4b5a14763..000000000 --- a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TERadarDestructorPacket implements IMessage { - - int x; - int y; - int z; - - public TERadarDestructorPacket() { - - } - - public TERadarDestructorPacket(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TERadarDestructorPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - if (te != null && te instanceof TileEntityMachineRadar) { - - TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.clear(); - } - } catch (Exception x) { - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TERadarPacket.java b/src/main/java/com/hbm/packet/TERadarPacket.java deleted file mode 100644 index 661438627..000000000 --- a/src/main/java/com/hbm/packet/TERadarPacket.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TERadarPacket implements IMessage { - - int x; - int y; - int z; - int conX; - int conY; - int conZ; - int alt; - - public TERadarPacket() { - - } - - public TERadarPacket(int x, int y, int z, int conX, int conY, int conZ, int alt) { - this.x = x; - this.y = y; - this.z = z; - this.conX = conX; - this.conY = conY; - this.conZ = conZ; - this.alt = alt; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - conX = buf.readInt(); - conY = buf.readInt(); - conZ = buf.readInt(); - alt = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(conX); - buf.writeInt(conY); - buf.writeInt(conZ); - buf.writeInt(alt); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TERadarPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - if (te != null && te instanceof TileEntityMachineRadar) { - - TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.add(new int[]{m.conX, m.conY, m.conZ, m.alt}); - } - } catch (Exception x) { - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/particle/ParticleHadron.java b/src/main/java/com/hbm/particle/ParticleHadron.java index 923ca8b58..46b5e3d7c 100644 --- a/src/main/java/com/hbm/particle/ParticleHadron.java +++ b/src/main/java/com/hbm/particle/ParticleHadron.java @@ -6,10 +6,12 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -50,11 +52,16 @@ public class ParticleHadron extends EntityFX { float scale = (this.particleAge + interp) * 0.15F; tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, this.particleAlpha); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)interp; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; - float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double)interp - interpPosX); - float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double)interp - interpPosY); - float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double)interp - interpPosZ); - + double pX = this.prevPosX + (this.posX - this.prevPosX) * (double) interp - dX; + double pY = this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY; + double pZ = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ; + tess.addVertexWithUV((double)(pX - x * scale - tx * scale), (double)(pY - y * scale), (double)(pZ - z * scale - tz * scale), 1, 1); tess.addVertexWithUV((double)(pX - x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ - z * scale + tz * scale), 1, 0); tess.addVertexWithUV((double)(pX + x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ + z * scale + tz * scale), 0, 0); @@ -63,6 +70,7 @@ public class ParticleHadron extends EntityFX { GL11.glPolygonOffset(0.0F, 0.0F); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_LIGHTING); } } diff --git a/src/main/java/com/hbm/render/anim/HbmAnimations.java b/src/main/java/com/hbm/render/anim/HbmAnimations.java index ca9e9f986..239ca9bcc 100644 --- a/src/main/java/com/hbm/render/anim/HbmAnimations.java +++ b/src/main/java/com/hbm/render/anim/HbmAnimations.java @@ -20,7 +20,8 @@ public class HbmAnimations { CYCLE, //animation for every firing cycle ALT_CYCLE, //animation for alt fire cycles SPINUP, //animation for actionstart - SPINDOWN //animation for actionend + SPINDOWN, //animation for actionend + EQUIP //animation for drawing the weapon } public static class Animation { diff --git a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java b/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java deleted file mode 100644 index 0cb029690..000000000 --- a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailNarrowCurve; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderNarrowCurveRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glScaled(0.2, 0.2, 0.2); - GL11.glTranslated(2.5, -0.0625, -1.5); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 12) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 13) - rotation = 270F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailNarrowCurve.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderPedestal.java b/src/main/java/com/hbm/render/block/RenderPedestal.java new file mode 100644 index 000000000..5c8eef3dc --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderPedestal.java @@ -0,0 +1,68 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockPedestal; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderPedestal implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + + for(int i = 0; i < 3; i++) { + if(i == 0) renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0); + if(i == 1) renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0); + if(i == 2) renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); + } + + tessellator.draw(); + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0); + renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875); + renderer.renderStandardBlock(block, x, y, z); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockPedestal.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java b/src/main/java/com/hbm/render/block/RenderRail.java similarity index 53% rename from src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java rename to src/main/java/com/hbm/render/block/RenderRail.java index 3f2c40c78..ab366486b 100644 --- a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java +++ b/src/main/java/com/hbm/render/block/RenderRail.java @@ -2,51 +2,34 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; -import com.hbm.blocks.rail.RailNarrowStraight; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; +import com.hbm.blocks.rail.IRenderBlock; +import com.hbm.blocks.rail.RailStandardStraight; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; -public class RenderNarrowStraightRail implements ISimpleBlockRenderingHandler { +public class RenderRail implements ISimpleBlockRenderingHandler { @Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - GL11.glPushMatrix(); Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - + IRenderBlock rail = (IRenderBlock) block; + rail.renderInventory(tessellator, block, metadata); GL11.glPopMatrix(); } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - Tessellator tessellator = Tessellator.instance; - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); int meta = world.getBlockMetadata(x, y, z); - - float rotation = 0; - - if(meta == 2 || meta == 3 || meta == 12 || meta == 13) - rotation = 90F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - + IRenderBlock rail = (IRenderBlock) block; + rail.renderWorld(tessellator, block, meta, world, x, y, z); return true; } @@ -57,6 +40,6 @@ public class RenderNarrowStraightRail implements ISimpleBlockRenderingHandler { @Override public int getRenderId() { - return RailNarrowStraight.renderID; + return RailStandardStraight.renderID; } } diff --git a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java b/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java deleted file mode 100644 index 5cf6381e1..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardBuffer; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardBufferRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 12) rotation = (float) Math.PI; - if(meta == 14) rotation = 270F / 180F * (float) Math.PI; - if(meta == 15) rotation = 90F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardBuffer.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java b/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java deleted file mode 100644 index a238d461d..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardCurve; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardCurveRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glScaled(0.2, 0.2, 0.2); - GL11.glTranslated(2.5, -0.0625, -1.5); - GL11.glRotated(90, 0, 1, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 15) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 12) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 270F / 180F * (float) Math.PI; - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardCurve.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java b/src/main/java/com/hbm/render/block/RenderStandardRampRail.java deleted file mode 100644 index eb1e245fd..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardRamp; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardRampRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 15) - rotation = 90F / 180F * (float) Math.PI; - if(meta == 12) - rotation = 180F / 180F * (float) Math.PI; - if(meta == 14) - rotation = 270F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardRamp.renderID; - } -} diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java deleted file mode 100644 index 5108aaea2..000000000 --- a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.rail.RailStandardStraight; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - - GL11.glTranslated(0, -0.0625, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(0.3, 0.3, 0.3); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - int meta = world.getBlockMetadata(x, y, z); - if(meta < 12) return true; - - Tessellator tessellator = Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float rotation = 0; - - if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; - - if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); - - tessellator.addTranslation(x + 0.5F, y, z + 0.5F); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); - tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); - - if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); - if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); - if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); - if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return RailStandardStraight.renderID; - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index e54f175a0..e90761d3e 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -37,7 +37,7 @@ public class RenderTorex extends Render { EntityNukeTorex cloud = (EntityNukeTorex)entity; cloudletWrapper(cloud, interp); if(cloud.ticksExisted < 101) flashWrapper(cloud, interp); - if(cloud.ticksExisted < 10 && ModEventHandlerClient.flashTimer < 100) ModEventHandlerClient.flashTimer = 200; + if(cloud.ticksExisted < 10 && System.currentTimeMillis() - ModEventHandlerClient.flashTimestamp > 1_000) ModEventHandlerClient.flashTimestamp = System.currentTimeMillis(); if(fog) GL11.glEnable(GL11.GL_FOG); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java b/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java new file mode 100644 index 000000000..963c936d7 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java @@ -0,0 +1,74 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.item.EntityBoatRubber; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBoat; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderBoatRubber extends Render { + + private static final ResourceLocation boatTextures = new ResourceLocation(RefStrings.MODID + ":textures/entity/boat_rubber.png"); + protected ModelBase modelBoat; + + public RenderBoatRubber() { + this.shadowSize = 0.5F; + this.modelBoat = new ModelBoat(); + } + + public void doRender(EntityBoatRubber entity, double x, double y, double z, float yaw, float interp) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(180.0F - yaw, 0.0F, 1.0F, 0.0F); + float f2 = (float) entity.getTimeSinceHit() - interp; + float f3 = entity.getDamageTaken() - interp; + + if(f3 < 0.0F) { + f3 = 0.0F; + } + + if(f2 > 0.0F) { + GL11.glRotatef(MathHelper.sin(f2) * f2 * f3 / 10.0F * (float) entity.getForwardDirection(), 1.0F, 0.0F, 0.0F); + } + + EntityPlayer me = Minecraft.getMinecraft().getMinecraft().thePlayer; + + if(entity.riddenByEntity == me) { + float diff = MathHelper.wrapAngleTo180_float(entity.rotationYaw - entity.prevRenderYaw); + me.rotationYaw += diff; + me.rotationYawHead += diff; + } + + entity.prevRenderYaw = entity.rotationYaw; + + float f4 = 0.75F; + GL11.glScalef(f4, f4, f4); + GL11.glScalef(1.0F / f4, 1.0F / f4, 1.0F / f4); + this.bindEntityTexture(entity); + GL11.glScalef(-1.0F, -1.0F, 1.0F); + this.modelBoat.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); + GL11.glPopMatrix(); + } + + protected ResourceLocation getEntityTexture(EntityBoatRubber entity) { + return boatTextures; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityBoatRubber) entity); + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + this.doRender((EntityBoatRubber) entity, x, y, z, f0, f1); + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java new file mode 100644 index 000000000..04bbcf027 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java @@ -0,0 +1,48 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.item.EntityDroneBase; +import com.hbm.entity.item.EntityRequestDrone; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderDeliveryDrone extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(entity instanceof EntityRequestDrone) { + bindTexture(ResourceManager.delivery_drone_request_tex); + } else if(entity.getDataWatcher().getWatchableObjectByte(11) == 1) + bindTexture(ResourceManager.delivery_drone_express_tex); + else + bindTexture(ResourceManager.delivery_drone_tex); + ResourceManager.delivery_drone.renderPart("Drone"); + + EntityDroneBase drone = (EntityDroneBase) entity; + int style = drone.getAppearance(); + + if(style == 1) ResourceManager.delivery_drone.renderPart("Crate"); + if(style == 2) ResourceManager.delivery_drone.renderPart("Barrel"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity drone) { + return ResourceManager.delivery_drone_tex; + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java new file mode 100644 index 000000000..e42ebd0f2 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java @@ -0,0 +1,71 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockFallingNT; +import com.hbm.entity.item.EntityFallingBlockNT; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class RenderFallingBlockNT extends Render { + + private final RenderBlocks renderBlocks = new RenderBlocks(); + + public RenderFallingBlockNT() { + this.shadowSize = 0.5F; + } + + public void doRender(EntityFallingBlockNT entity, double x, double y, double z, float f0, float f1) { + + World world = entity.getWorldForRender(); + Block block = entity.getBlockForRender(); + + int iX = MathHelper.floor_double(entity.posX); + int iY = MathHelper.floor_double(entity.posY); + int iZ = MathHelper.floor_double(entity.posZ); + + if(block != null && block != world.getBlock(iX, iY, iZ)) { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + this.bindEntityTexture(entity); + GL11.glDisable(GL11.GL_LIGHTING); + + this.renderBlocks.blockAccess = world; + + if(block instanceof BlockFallingNT && ((BlockFallingNT) block).shouldOverrideRenderer()) { + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + ((BlockFallingNT) block).overrideRenderer(entity, renderBlocks, tessellator); + tessellator.draw(); + } else { + this.renderBlocks.setRenderBoundsFromBlock(block); + this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.getDataWatcher().getWatchableObjectInt(11)); + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopMatrix(); + } + } + + protected ResourceLocation getEntityTexture(EntityFallingBlockNT entity) { + return TextureMap.locationBlocksTexture; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityFallingBlockNT) entity); + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + this.doRender((EntityFallingBlockNT) entity, x, y, z, f0, f1); + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java index 2a13025aa..113742e0f 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java @@ -37,5 +37,4 @@ public class RenderBalls extends Render { protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return ResourceManager.universal_bright; } - } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java index c64649c77..6ad109605 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -3,6 +3,7 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import net.minecraft.client.model.ModelBase; @@ -13,10 +14,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class RenderGlyphid extends RenderLiving { + + public static final ResourceLocation glyphid_infested_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_infestation.png"); public RenderGlyphid() { super(new ModelGlyphid(), 1.0F); this.shadowOpaque = 0.0F; + this.setRenderPassModel(this.mainModel); } @Override @@ -24,6 +28,21 @@ public class RenderGlyphid extends RenderLiving { EntityGlyphid glyphid = (EntityGlyphid) entity; return glyphid.getSkin(); } + + @Override + protected int shouldRenderPass(EntityLivingBase entity, int pass, float interp) { + if(pass != 0) { + return -1; + } else { + if(entity.getDataWatcher().getWatchableObjectByte(EntityGlyphid.DW_SUBTYPE) == EntityGlyphid.TYPE_INFECTED) { + this.bindTexture(glyphid_infested_tex); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + return 1; + } + return -1; + } + } public static class ModelGlyphid extends ModelBase { @@ -43,17 +62,23 @@ public class RenderGlyphid extends RenderLiving { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); + this.renderModel(entity, limbSwing); + + GL11.glPopMatrix(); + } + + public void renderModel(Entity entity, float limbSwing) { + + GL11.glPushMatrix(); + double s = ((EntityGlyphid) entity).getScale(); GL11.glScaled(s, s, s); EntityLivingBase living = (EntityLivingBase) entity; - byte armor = living.getDataWatcher().getWatchableObjectByte(17); - //MainRegistry.proxy.displayTooltip("" + limbSwingAmount, 999); + byte armor = living.getDataWatcher().getWatchableObjectByte(EntityGlyphid.DW_ARMOR); double walkCycle = limbSwing; - double speed = 100000D; - double chewing = 200000D; double cy0 = Math.sin(walkCycle % (Math.PI * 2)); double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java index 5c91e44a1..88c74cc21 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java @@ -108,8 +108,6 @@ public class RenderGlyphidNuclear extends RenderLiving { double walkCycle = limbSwing; - double speed = 100000D; - double chewing = 200000D; double cy0 = Math.sin(walkCycle % (Math.PI * 2)); double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java b/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java new file mode 100644 index 000000000..6fa0184cc --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderMaggot.java @@ -0,0 +1,28 @@ +package com.hbm.render.entity.mob; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelSilverfish; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ResourceLocation; + +public class RenderMaggot extends RenderLiving { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/parasite_maggot.png"); + + public RenderMaggot() { + super(new ModelSilverfish(), 0.3F); + } + + @Override + protected float getDeathMaxRotation(EntityLivingBase entity) { + return 180.0F; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return texture; + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java new file mode 100644 index 000000000..8acc1a550 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java @@ -0,0 +1,39 @@ +package com.hbm.render.entity.mob; + +import com.hbm.entity.mob.EntityPigeon; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderPigeon extends RenderLiving { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/pigeon.png"); + + public RenderPigeon(ModelBase p_i1252_1_, float p_i1252_2_) { + super(p_i1252_1_, p_i1252_2_); + } + + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityPigeon) entity); + } + + protected ResourceLocation getEntityTexture(EntityPigeon entity) { + return texture; + } + + protected float handleRotationFloat(EntityPigeon entity, float interp) { + float f1 = entity.prevFallTime + (entity.fallTime - entity.prevFallTime) * interp; + float f2 = entity.prevDest + (entity.dest - entity.prevDest) * interp; + return (MathHelper.sin(f1) + 1.0F) * f2; + } + + @Override + protected float handleRotationFloat(EntityLivingBase entity, float interp) { + return this.handleRotationFloat((EntityPigeon) entity, interp); + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java b/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java new file mode 100644 index 000000000..2d6a210f4 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java @@ -0,0 +1,41 @@ +package com.hbm.render.entity.mob; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderPlasticBag extends Render { + + private static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/plasticbag.obj")); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/plasticbag.png"); + + public RenderPlasticBag() { + this.shadowOpaque = 0.0F; + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1 + 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1 - 90, 0.0F, 0.0F, 1.0F); + + this.bindEntityTexture(entity); + model.renderAll(); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return texture; + } +} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java index cca75e72d..06ecc70fa 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderGenericGrenade.java @@ -1,9 +1,11 @@ package com.hbm.render.entity.projectile; +import com.hbm.entity.grenade.EntityDisperserCanister; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.hbm.entity.grenade.IGenericGrenade; +import com.hbm.inventory.fluid.FluidType; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; @@ -17,21 +19,43 @@ public class RenderGenericGrenade extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { - IGenericGrenade grenade = (IGenericGrenade) entity; + boolean disperser = entity instanceof EntityDisperserCanister; - IIcon iicon = grenade.getGrenade().getIconFromDamage(0); - - if(iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) x, (float) y, (float) z); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - this.bindEntityTexture(entity); - Tessellator tessellator = Tessellator.instance; - - this.renderItem(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); + for(int i = 0; i < (disperser ? 2 : 1); i++) { + + IIcon iicon; + if(disperser){ + EntityDisperserCanister canister = (EntityDisperserCanister) entity; + FluidType fluid = canister.getFluid(); + iicon = canister.getType().getIconFromDamageForRenderPass(fluid.getID(), i); + + if(i == 1) { + int hex = fluid.getColor(); + int r = (hex & 0xFF0000) >> 16; + int g = (hex & 0xFF00) >> 8; + int b = (hex & 0xFF); + GL11.glColor3b((byte) (r / 2), (byte) (g / 2), (byte) (b / 2)); + } + + } else { + IGenericGrenade grenade = (IGenericGrenade) entity; + iicon = grenade.getGrenade().getIconFromDamage(i); + } + + if(iicon != null) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glScalef(0.5F, 0.5F, 0.5F); + this.bindEntityTexture(entity); + Tessellator tessellator = Tessellator.instance; + + this.renderItem(tessellator, iicon); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + } + + GL11.glColor3f(1F, 1F, 1F); } } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 268cca1cf..5e017039c 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -3,10 +3,8 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMissileAntiBallistic; -import com.hbm.entity.missile.EntityMissileBunkerBuster; -import com.hbm.entity.missile.EntityMissileCluster; -import com.hbm.entity.missile.EntityMissileGeneric; -import com.hbm.entity.missile.EntityMissileIncendiary; +import com.hbm.entity.missile.EntityMissileStealth; +import com.hbm.entity.missile.EntityMissileTier1.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -14,28 +12,43 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderMissileGeneric extends Render { - - public RenderMissileGeneric() { } + + public RenderMissileGeneric() { + } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - if(p_76986_1_ instanceof EntityMissileGeneric) - bindTexture(ResourceManager.missileV2_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiary) - bindTexture(ResourceManager.missileV2_IN_tex); - if(p_76986_1_ instanceof EntityMissileCluster) - bindTexture(ResourceManager.missileV2_CL_tex); - if(p_76986_1_ instanceof EntityMissileBunkerBuster) - bindTexture(ResourceManager.missileV2_BU_tex); - if(p_76986_1_ instanceof EntityMissileAntiBallistic) - bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + + if(entity instanceof EntityMissileAntiBallistic) { + bindTexture(ResourceManager.missileAA_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileABM.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } else if(entity instanceof EntityMissileStealth) { + bindTexture(ResourceManager.missileStealth_tex); + ResourceManager.missileStealth.renderAll(); + } else { + + if(entity instanceof EntityMissileGeneric) + bindTexture(ResourceManager.missileV2_HE_tex); + if(entity instanceof EntityMissileIncendiary) + bindTexture(ResourceManager.missileV2_IN_tex); + if(entity instanceof EntityMissileCluster) + bindTexture(ResourceManager.missileV2_CL_tex); + if(entity instanceof EntityMissileBunkerBuster) + bindTexture(ResourceManager.missileV2_BU_tex); + if(entity instanceof EntityMissileDecoy) + bindTexture(ResourceManager.missileV2_decoy_tex); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java index af95674e1..00df032dc 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java @@ -2,10 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBurst; -import com.hbm.entity.missile.EntityMissileDrill; -import com.hbm.entity.missile.EntityMissileInferno; -import com.hbm.entity.missile.EntityMissileRain; +import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -13,27 +10,29 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderMissileHuge extends Render { - - public RenderMissileHuge() { } + + public RenderMissileHuge() { + } @Override public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(2F, 2F, 2F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - if(p_76986_1_ instanceof EntityMissileBurst) - bindTexture(ResourceManager.missileHuge_HE_tex); - if(p_76986_1_ instanceof EntityMissileInferno) - bindTexture(ResourceManager.missileHuge_IN_tex); - if(p_76986_1_ instanceof EntityMissileRain) - bindTexture(ResourceManager.missileHuge_CL_tex); - if(p_76986_1_ instanceof EntityMissileDrill) - bindTexture(ResourceManager.missileHuge_BU_tex); - ResourceManager.missileHuge.renderAll(); + if(p_76986_1_ instanceof EntityMissileBurst) + bindTexture(ResourceManager.missileHuge_HE_tex); + if(p_76986_1_ instanceof EntityMissileInferno) + bindTexture(ResourceManager.missileHuge_IN_tex); + if(p_76986_1_ instanceof EntityMissileRain) + bindTexture(ResourceManager.missileHuge_CL_tex); + if(p_76986_1_ instanceof EntityMissileDrill) + bindTexture(ResourceManager.missileHuge_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index 7719b2612..f69443b8f 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -2,7 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileVolcano; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java index cbe85f692..5b31dbd04 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java @@ -2,11 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBusterStrong; -import com.hbm.entity.missile.EntityMissileClusterStrong; -import com.hbm.entity.missile.EntityMissileEMPStrong; -import com.hbm.entity.missile.EntityMissileIncendiaryStrong; -import com.hbm.entity.missile.EntityMissileStrong; +import com.hbm.entity.missile.EntityMissileTier2.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -21,22 +17,24 @@ public class RenderMissileStrong extends Render { public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - if(p_76986_1_ instanceof EntityMissileStrong) - bindTexture(ResourceManager.missileStrong_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiaryStrong) - bindTexture(ResourceManager.missileStrong_IN_tex); - if(p_76986_1_ instanceof EntityMissileClusterStrong) - bindTexture(ResourceManager.missileStrong_CL_tex); - if(p_76986_1_ instanceof EntityMissileBusterStrong) - bindTexture(ResourceManager.missileStrong_BU_tex); - if(p_76986_1_ instanceof EntityMissileEMPStrong) - bindTexture(ResourceManager.missileStrong_EMP_tex); - ResourceManager.missileStrong.renderAll(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + if(p_76986_1_ instanceof EntityMissileStrong) + bindTexture(ResourceManager.missileStrong_HE_tex); + if(p_76986_1_ instanceof EntityMissileIncendiaryStrong) + bindTexture(ResourceManager.missileStrong_IN_tex); + if(p_76986_1_ instanceof EntityMissileClusterStrong) + bindTexture(ResourceManager.missileStrong_CL_tex); + if(p_76986_1_ instanceof EntityMissileBusterStrong) + bindTexture(ResourceManager.missileStrong_BU_tex); + if(p_76986_1_ instanceof EntityMissileEMPStrong) + bindTexture(ResourceManager.missileStrong_EMP_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java index 19c49616a..65643516f 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -2,10 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBHole; -import com.hbm.entity.missile.EntityMissileEMP; -import com.hbm.entity.missile.EntityMissileSchrabidium; -import com.hbm.entity.missile.EntityMissileTaint; +import com.hbm.entity.missile.EntityMissileTier0.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java index 644dc3c81..c19a36c83 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java @@ -2,8 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileEndo; -import com.hbm.entity.missile.EntityMissileExo; +import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 2e2820245..c9ca79fb9 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -408,30 +408,7 @@ public class ItemRenderLibrary { public void renderCommon() { GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslatef(0, 0, -3); - bindTexture(ResourceManager.duchessgambit_tex); ResourceManager.duchessgambit.renderAll(); - }}); - - renderers.put(Item.getItemFromBlock(ModBlocks.bomber), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, 1, 0); - GL11.glScaled(2.25, 2.25, 2.25); - } - public void renderCommon() { - GL11.glRotated(-90, 0, 1, 0); - GL11.glScaled(2, 2, 2); - GL11.glTranslatef(0, 0, -0.25F); - bindTexture(ResourceManager.dornier_0_tex); ResourceManager.dornier.renderAll(); - }}); - - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_gadget), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -3, 0); - GL11.glScaled(5, 5, 5); - } - public void renderCommon() { - GL11.glTranslated(0.25, 0, 0); - bindTexture(ResourceManager.bomb_gadget_tex); - ResourceManager.bomb_gadget.renderAll(); + bindTexture(ResourceManager.duchessgambit_tex); ResourceManager.duchessgambit.renderAll(); }}); renderers.put(Item.getItemFromBlock(ModBlocks.nuke_boy), new ItemRenderBase() { @@ -727,6 +704,95 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.vault_cog_tex); ResourceManager.vault_cog.renderAll(); bindTexture(ResourceManager.vault_label_101_tex); ResourceManager.vault_label.renderAll(); }}); + renderers.put(Item.getItemFromBlock(ModBlocks.secure_access_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(2.4, 2.4, 2.4); + } + public void renderCommon() { + bindTexture(ResourceManager.secure_access_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.secure_access_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.large_vehicle_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(1.8, 1.8, 1.8); + } + public void renderCommon() { + bindTexture(ResourceManager.large_vehicle_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.large_vehicle_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.water_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4, 4, 4); + } + public void renderCommon() { + bindTexture(ResourceManager.water_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.water_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.qe_containment), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -3.5, 0); + GL11.glScaled(3.8, 3.8, 3.8); + } + public void renderCommon() { + bindTexture(ResourceManager.qe_containment_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.qe_containment.renderAllExcept("decal"); + bindTexture(ResourceManager.qe_containment_decal); + ResourceManager.qe_containment.renderPart("decal"); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.qe_sliding_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -3.5, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommon() { + bindTexture(ResourceManager.qe_sliding_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.qe_sliding_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.round_airlock_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + bindTexture(ResourceManager.round_airlock_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.round_airlock_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.sliding_seal_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(7, 7, 7); + } + public void renderCommon() { + bindTexture(ResourceManager.sliding_seal_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.sliding_seal_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.blast_door), new ItemRenderBase() { public void renderInventory() { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java index 519caa36d..b4b01c472 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java @@ -30,11 +30,11 @@ public class ItemRenderM2 extends ItemRenderBase { GL11.glRotatef(30, 1, 0, 0); break; case EQUIPPED_FIRST_PERSON: - GL11.glRotatef(-90, 0, 1, 0); if (Minecraft.getMinecraft().thePlayer.isSneaking()) { + GL11.glRotatef(-90, 0, 1, 0); GL11.glTranslatef(-0.96f, -0.9f, -2); - GL11.glRotatef(-5.6f, 0, 1, 1); + GL11.glRotatef(-5.75f, 0, 1, 1);// Just of by 0.15 /* vvv remove to restore original look vvv */ GL11.glRotatef(1.9F, 0, 0, 1); @@ -44,6 +44,7 @@ public class ItemRenderM2 extends ItemRenderBase { GL11.glTranslatef(0, 1.15F, -1.75F); } else { + GL11.glRotatef(-95, 0, 1, 0); GL11.glTranslatef(0, -1, -3); } GL11.glRotatef(25, 1, 0, 0); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java new file mode 100644 index 000000000..9417e7d8a --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java @@ -0,0 +1,256 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemGunPip; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponLilMac implements IItemRenderer { + + public static final ResourceLocation lilmac_plume = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_plume.png"); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + //prevent rendering when using scope + if(item.getItem() == ModItems.gun_revolver_pip && type == ItemRenderType.EQUIPPED_FIRST_PERSON && MainRegistry.proxy.me().isSneaking()) return; + + GL11.glPushMatrix(); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.1D; + GL11.glRotated(25, 0, 0, 1); + GL11.glTranslated(1.0, 0.25, -0.25); + GL11.glRotated(170, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + double width = 0.5D; + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] reloadLift = HbmAnimations.getRelevantTransformation("RELOAD_LIFT"); + double[] reloadJolt = HbmAnimations.getRelevantTransformation("RELOAD_JOLT"); + double[] equipSpin = HbmAnimations.getRelevantTransformation("ROTATE"); + GL11.glTranslated(2, 0, 0); + GL11.glRotated(equipSpin[0], 0, 0, 1); + GL11.glTranslated(-2, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + Tessellator tess = Tessellator.instance; + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glTranslated(-10, 2.25, 0); + GL11.glTranslated(-recoil[2] * 3.5, -recoil[2] * 1.375, 0); + + if(ItemGunPip.smokeNodes.size() > 1 && equipSpin[0] == 0) { + + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + + for(int i = 0; i < ItemGunPip.smokeNodes.size() - 1; i++) { + double[] node = ItemGunPip.smokeNodes.get(i); + double[] past = ItemGunPip.smokeNodes.get(i + 1); + + tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); + tess.addVertex(node[0], node[1], node[2]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(node[0], node[1], node[2] + width); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(past[0], past[1], past[2] + width); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); + tess.addVertex(past[0], past[1], past[2]); + + tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); + tess.addVertex(node[0], node[1], node[2]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(node[0], node[1], node[2] - width); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(past[0], past[1], past[2] - width); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); + tess.addVertex(past[0], past[1], past[2]); + } + GL11.glDepthMask(false); + tess.draw(); + GL11.glDepthMask(true); + } + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + + GL11.glTranslated(0, reloadLift[0] / -22D, 0); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + GL11.glRotated(recoil[2] * 10, 0, 0, 1); + GL11.glRotated(reloadLift[0], 0, 0, 1); + GL11.glTranslated(reloadJolt[0], 0, 0); + + double[] reloadTilt = HbmAnimations.getRelevantTransformation("RELAOD_TILT"); + GL11.glRotated(reloadTilt[0], 1, 0, 0); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); + ResourceManager.lilmac.renderPart("Scope"); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_tex); + ResourceManager.lilmac.renderPart("Gun"); + + double[] cylinderFlip = HbmAnimations.getRelevantTransformation("RELOAD_CYLINDER"); + GL11.glPushMatrix(); /// DRUM PUSH /// + GL11.glRotated(cylinderFlip[0], 1, 0, 0); + ResourceManager.lilmac.renderPart("Pivot"); + GL11.glTranslated(0, 1.75, 0); + GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * -60, 1, 0, 0); + GL11.glTranslated(0, -1.75, 0); + ResourceManager.lilmac.renderPart("Cylinder"); + double[] reloadBullets = HbmAnimations.getRelevantTransformation("RELOAD_BULLETS"); + GL11.glTranslated(reloadBullets[0], reloadBullets[1], reloadBullets[2]); + if(HbmAnimations.getRelevantTransformation("RELOAD_BULLETS_CON")[0] != 1) + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + GL11.glPopMatrix(); /// DRUM POP /// + + GL11.glPushMatrix(); /// HAMMER /// + GL11.glTranslated(4, 1.25, 0); + GL11.glRotated(-30 + 30 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 0, 0, 1); + GL11.glTranslated(-4, -1.25, 0); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + int flash = 75; + if(System.currentTimeMillis() - ItemGunPip.lastShot < flash) { + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glPushMatrix(); + GL11.glTranslated(0.125, 2.25, 0); + + double fire = (System.currentTimeMillis() - ItemGunPip.lastShot) / (double) flash; + + double height = 4 * fire; + double length = 15 * fire; + double lift = 3 * fire; + double offset = 1 * fire; + double lengthOffset = 0.125; + Minecraft.getMinecraft().renderEngine.bindTexture(lilmac_plume); + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + tess.setColorRGBA_F(1F, 1F, 1F, 1F); + + tess.addVertexWithUV(0, -height, -offset, 1, 1); + tess.addVertexWithUV(0, height, -offset, 0, 1); + tess.addVertexWithUV(0, height + lift, length - offset, 0 ,0); + tess.addVertexWithUV(0, -height + lift, length - offset, 1, 0); + + tess.addVertexWithUV(0, height, offset, 0, 1); + tess.addVertexWithUV(0, -height, offset, 1, 1); + tess.addVertexWithUV(0, -height + lift, -length + offset, 1, 0); + tess.addVertexWithUV(0, height + lift, -length + offset, 0 ,0); + + tess.addVertexWithUV(0, -height, -offset, 1, 1); + tess.addVertexWithUV(0, height, -offset, 0, 1); + tess.addVertexWithUV(lengthOffset, height, length - offset, 0 ,0); + tess.addVertexWithUV(lengthOffset, -height, length - offset, 1, 0); + + tess.addVertexWithUV(0, height, offset, 0, 1); + tess.addVertexWithUV(0, -height, offset, 1, 1); + tess.addVertexWithUV(lengthOffset, -height, -length + offset, 1, 0); + tess.addVertexWithUV(lengthOffset, height, -length + offset, 0 ,0); + + tess.draw(); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + + break; + + case EQUIPPED: + + double scale = 0.1D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(100, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-3F, 1F, 4F); + + break; + + case ENTITY: + + double s1 = 0.075D; + GL11.glScaled(s1, s1, s1); + GL11.glTranslatef(0F, 1F, 0F); + + break; + + case INVENTORY: + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + double s = 0.8D; + GL11.glTranslated(8, 8, 0); + GL11.glRotated(180, 0, 1, 0); + GL11.glRotated(135, 0, 0, 1); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); + ResourceManager.lilmac.renderPart("Scope"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_tex); + ResourceManager.lilmac.renderPart("Gun"); + ResourceManager.lilmac.renderPart("Cylinder"); + ResourceManager.lilmac.renderPart("Bullets"); + ResourceManager.lilmac.renderPart("Casings"); + ResourceManager.lilmac.renderPart("Pivot"); + ResourceManager.lilmac.renderPart("Hammer"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java new file mode 100644 index 000000000..533190861 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java @@ -0,0 +1,76 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.Entity; + +public class ModelArmorTrenchmaster extends ModelArmorBase { + + ModelRendererObj light; + + public ModelArmorTrenchmaster(int type) { + super(type); + + head = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Helmet"); + light = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Light"); + body = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Chest"); + leftArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightBoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + } + + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); + head.copyTo(light); + + GL11.glPushMatrix(); + + if(type == 0) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + head.render(par7); + GL11.glDisable(GL11.GL_BLEND); + + /// START GLOW /// + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + light.render(par7); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + /// END GLOW /// + } + if(type == 1) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_chest); + body.render(par7); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_arm); + leftArm.render(par7); + rightArm.render(par7); + } + if(type == 2) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + leftLeg.render(par7); + rightLeg.render(par7); + } + if(type == 3) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + leftFoot.render(par7); + rightFoot.render(par7); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelPigeon.java b/src/main/java/com/hbm/render/model/ModelPigeon.java new file mode 100644 index 000000000..14c4dc3ac --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelPigeon.java @@ -0,0 +1,110 @@ +package com.hbm.render.model; + +import com.hbm.entity.mob.EntityPigeon; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; + +public class ModelPigeon extends ModelBase { + + public ModelRenderer head; + public ModelRenderer beak; + public ModelRenderer body; + public ModelRenderer bodyFat; + public ModelRenderer leftLeg; + public ModelRenderer rightLeg; + public ModelRenderer leftWing; + public ModelRenderer rightWing; + public ModelRenderer ass; + public ModelRenderer feathers; + + public ModelPigeon() { + initModel(); + } + + private void initModel() { + + this.head = new ModelRenderer(this, 0, 0); + this.head.addBox(-2F, -6F, -2F, 4, 6, 4); + this.head.setRotationPoint(0F, 16F, -2F); + this.beak = new ModelRenderer(this, 14, 0); + this.beak.addBox(-1F, -4F, -4F, 2, 2, 2); + this.beak.setRotationPoint(0F, 16F, -2F); + + this.body = new ModelRenderer(this, 0, 10); + this.body.addBox(-3F, -3F, -4F, 6, 6, 8, 0); + this.body.setRotationPoint(0F, 17F, 0F); + this.bodyFat = new ModelRenderer(this, 0, 10); + this.bodyFat.addBox(-3F, -3F, -4F, 6, 6, 8, 1); + this.bodyFat.setRotationPoint(0F, 17F, 0F); + this.ass = new ModelRenderer(this, 0, 24); + this.ass.addBox(-2F, -2F, -2F, 4, 4, 4); + this.ass.setRotationPoint(0F, 20F, 4F); + this.feathers = new ModelRenderer(this, 16, 24); + this.feathers.addBox(-1F, -0.5F, -2F, 2, 1, 4); + this.feathers.setRotationPoint(0F, 21.5F, 7.5F); + + this.leftLeg = new ModelRenderer(this, 20, 0); + this.leftLeg.addBox(-1F, 0F, 0F, 2, 4, 2); + this.leftLeg.setRotationPoint(1F, 20F, -1F); + this.rightLeg = new ModelRenderer(this, 20, 0); + this.rightLeg.addBox(-1F, 0F, 0F, 2, 4, 2); + this.rightLeg.setRotationPoint(-1F, 20F, -1F); + + this.leftWing = new ModelRenderer(this, 28, 0); + this.leftWing.addBox(0F, 0F, -3F, 1, 4, 6); + this.leftWing.setRotationPoint(3F, -2F, 0F); + this.rightWing = new ModelRenderer(this, 28, 10); + this.rightWing.addBox(-1F, 0F, -3F, 1, 4, 6); + this.rightWing.setRotationPoint(-3F, -2F, 0F); + + this.body.addChild(this.leftWing); + this.body.addChild(this.rightWing); + this.bodyFat.addChild(this.leftWing); + this.bodyFat.addChild(this.rightWing); + } + + public void render(Entity entity, float f0, float f1, float f2, float f3, float f4, float scale) { + this.setRotationAngles(f0, f1, f2, f3, f4, scale, entity); + this.head.render(scale); + this.beak.render(scale); + if(((EntityPigeon) entity).isFat()) { + this.bodyFat.render(scale); + } else { + this.body.render(scale); + } + this.rightLeg.render(scale); + this.leftLeg.render(scale); + this.ass.render(scale); + this.feathers.render(scale); + } + + public void setRotationAngles(float walkLoop, float legAmplitude, float armSwing, float headYaw, float headPitch, float scale, Entity entity) { + this.head.rotateAngleX = this.beak.rotateAngleX = headPitch / (180F / (float) Math.PI); + this.head.rotateAngleY = this.beak.rotateAngleY = headYaw / (180F / (float) Math.PI); + this.body.rotateAngleX = this.bodyFat.rotateAngleX = this.ass.rotateAngleX = -((float) Math.PI / 4F); + this.feathers.rotateAngleX = -((float) Math.PI / 8F); + this.rightLeg.rotateAngleX = MathHelper.cos(walkLoop * 0.6662F) * 1.4F * legAmplitude; + this.leftLeg.rotateAngleX = MathHelper.cos(walkLoop * 0.6662F + (float) Math.PI) * 1.4F * legAmplitude; + this.rightWing.rotateAngleZ = armSwing; + this.leftWing.rotateAngleZ = -armSwing; + + if(((EntityPigeon) entity).isFat()) { + this.head.rotationPointZ = -4F; + this.beak.rotationPointZ = -4F; + this.ass.rotationPointZ = 5F; + this.feathers.rotationPointZ = 8.5F; + this.leftWing.rotationPointX = 4F; + this.rightWing.rotationPointX = -4F; + } else { + this.head.rotationPointZ = -2F; + this.beak.rotationPointZ = -2F; + this.ass.rotationPointZ = 4F; + this.feathers.rotationPointZ = 7.5F; + this.leftWing.rotationPointX = 3F; + this.rightWing.rotationPointX = -3F; + } + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java new file mode 100644 index 000000000..e87c1d7e4 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java @@ -0,0 +1,86 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.RenderDecoItem; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderArcWelder extends TileEntitySpecialRenderer implements IItemRendererProvider { + + private RenderItem itemRenderer = new RenderDecoItem(this); + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, 0); + + bindTexture(ResourceManager.arc_welder_tex); + ResourceManager.arc_welder.renderAll(); + + TileEntityMachineArcWelder welder = (TileEntityMachineArcWelder) tile; + if(welder.display != null) { + GL11.glPushMatrix(); + GL11.glTranslated(0.0625D * 2.5D, 1.125D, 0D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glRotatef(-90, 1F, 0F, 0F); + + if(welder.display != null) { + ItemStack stack = welder.display.copy(); + + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + GL11.glScaled(1.5, 1.5, 1.5); + this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_arc_welder); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(4, 4, 4); + } + public void renderCommon() { + bindTexture(ResourceManager.arc_welder_tex); + ResourceManager.arc_welder.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java b/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java new file mode 100644 index 000000000..b29da43dd --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java @@ -0,0 +1,56 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderChimneyIndustrial extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_industrial_tex); + ResourceManager.chimney_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.chimney_industrial); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(2.75, 2.75, 2.75); + } + public void renderCommon() { + GL11.glScaled(0.25, 0.25, 0.25); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_industrial_tex); + ResourceManager.chimney_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderCondenser.java b/src/main/java/com/hbm/render/tileentity/RenderCondenser.java new file mode 100644 index 000000000..40af1e6dc --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCondenser.java @@ -0,0 +1,81 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityCondenserPowered; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderCondenser extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - 10) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityCondenserPowered condenser = (TileEntityCondenserPowered) tileEntity; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.condenser_tex); + ResourceManager.condenser.renderPart("Condenser"); + + float rot = condenser.lastSpin + (condenser.spin - condenser.lastSpin) * f; + + GL11.glPushMatrix(); + GL11.glTranslated(0,1.5, 0); + GL11.glRotatef(rot, 1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.condenser.renderPart("Fan1"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0,1.5, 0); + GL11.glRotatef(rot, -1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.condenser.renderPart("Fan2"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_condenser_powered); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(-1, -1, 0); + GL11.glScaled(2.75, 2.75, 2.75); + } + public void renderCommon() { + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glTranslated(0.5, 0, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.condenser_tex); ResourceManager.condenser.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java b/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java new file mode 100644 index 000000000..1bfb50fae --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java @@ -0,0 +1,80 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityConveyorPress; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderConveyorPress extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityConveyorPress press = (TileEntityConveyorPress) tile; + + bindTexture(ResourceManager.conveyor_press_tex); + ResourceManager.conveyor_press.renderPart("Press"); + + if(press.syncStack != null) { + GL11.glPushMatrix(); + double piston = press.lastPress + (press.renderPress - press.lastPress) * interp; + GL11.glTranslated(0, -piston * 0.75, 0); + ResourceManager.conveyor_press.renderPart("Piston"); + GL11.glPopMatrix(); + } + + bindTexture(ResourceManager.conveyor_press_belt_tex); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + int ticks = (int)(tile.getWorldObj().getTotalWorldTime() % 16) - 2; + GL11.glTranslated(0, ticks / 16D, 0); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + ResourceManager.conveyor_press.renderPart("Belt"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_conveyor_press); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4.5, 4.5, 4.5); + } + public void renderCommon() { + bindTexture(ResourceManager.conveyor_press_tex); + ResourceManager.conveyor_press.renderPart("Press"); + ResourceManager.conveyor_press.renderPart("Piston"); + bindTexture(ResourceManager.conveyor_press_belt_tex); + ResourceManager.conveyor_press.renderPart("Belt"); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java index 38905a176..00cdc05fa 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDecoBlock.java @@ -13,7 +13,6 @@ import com.hbm.render.model.ModelSteelCorner; import com.hbm.render.model.ModelSteelRoof; import com.hbm.render.model.ModelSteelScaffold; import com.hbm.render.model.ModelSteelWall; -import com.hbm.tileentity.deco.TileEntityBomber; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -231,33 +230,6 @@ public class RenderDecoBlock extends TileEntitySpecialRenderer { ResourceManager.duchessgambit.renderAll(); } - if(tileentity instanceof TileEntityBomber) - { - TileEntityBomber bomber = (TileEntityBomber)tileentity; - - float yaw = (float)(((double)bomber.yaw) / 180D * Math.PI); - float pitch = (float)(((double)bomber.pitch) / 180D * Math.PI); - - GL11.glRotatef(yaw - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(90, 0F, 0F, 1F); - GL11.glRotatef(pitch, 0.0F, 0.0F, 1.0F); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glScalef(5F, 5F, 5F); - - int i = bomber.type; - - switch(i) { - case 0: bindTexture(ResourceManager.dornier_0_tex); break; - case 1: bindTexture(ResourceManager.dornier_1_tex); break; - case 2: bindTexture(ResourceManager.dornier_2_tex); break; - default: bindTexture(ResourceManager.dornier_1_tex); break; - } - - ResourceManager.dornier.renderAll(); - } - if(tileentity.getWorldObj().getBlock(tileentity.xCoord, tileentity.yCoord, tileentity.zCoord) == ModBlocks.sat_radar) { GL11.glRotatef(180, 0F, 0F, 1F); GL11.glTranslatef(0, -1.5F, 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java new file mode 100644 index 000000000..acfb9bbf9 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java @@ -0,0 +1,137 @@ +package com.hbm.render.tileentity; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.IItemRenderer; + +public class RenderExposureChamber extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityMachineExposureChamber chamber = (TileEntityMachineExposureChamber) tileEntity; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.exposure_chamber_tex); + ResourceManager.exposure_chamber.renderPart("Chamber"); + + double rotation = chamber.prevRotation + (chamber.rotation - chamber.prevRotation) * interp; + + GL11.glPushMatrix(); + GL11.glRotated(rotation, 0, 1, 0); + ResourceManager.exposure_chamber.renderPart("Magnets"); + GL11.glPopMatrix(); + + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + if(chamber.isOn) { + GL11.glPushMatrix(); + GL11.glRotated(rotation / 2D, 0, 1, 0); + GL11.glTranslated(0, Math.sin((tileEntity.getWorldObj().getTotalWorldTime() % (Math.PI * 16D) + interp) * 0.125) * 0.0625, 0); + ResourceManager.exposure_chamber.renderPart("Core"); + GL11.glPopMatrix(); + } + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + if(chamber.isOn) { + + int duration = 8; + Random rand = new Random(chamber.getWorldObj().getTotalWorldTime() / duration); + int chance = 2; + int color = chamber.getWorldObj().getTotalWorldTime() % duration >= duration / 2 ? 0x80d0ff : 0xffffff; + rand.nextInt(chance); //RNG behaves weirldy in the first iteration + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 3.675, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(1.1875, 2.5, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(-1.1875, 2.5, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.75, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 1.5, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x80d0ff, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 10, 0.125F, 1, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 1.5, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x8080ff, 0xffffff, (int)(System.currentTimeMillis() + 5 % 1000) / 50, 10, 0.125F, 1, 0); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.5, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -1), EnumWaveType.SPIRAL, EnumBeamType.LINE, 0xffff80, 0xffffff, (int)(System.currentTimeMillis() % 360), 15, 0.125F, 1, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -1), EnumWaveType.SPIRAL, EnumBeamType.LINE, 0xff8080, 0xffffff, (int)(System.currentTimeMillis() % 360) + 180, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_exposure_chamber); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glTranslated(1.5, 0, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.exposure_chamber_tex); + ResourceManager.exposure_chamber.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index 6a6f12176..47b0e405a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -56,6 +56,7 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR ResourceManager.fluidtank_exploded.renderPart("Tank"); } + GL11.glColor3d(1D, 1D, 1D); GL11.glShadeModel(GL11.GL_FLAT); if(type != null && type != Fluids.NONE) { @@ -80,6 +81,16 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR } public String getTextureFromType(FluidType type) { + + if(type.customFluid) { + int color = type.getTint(); + double r = ((color & 0xff0000) >> 16) / 255D; + double g = ((color & 0x00ff00) >> 8) / 255D; + double b = ((color & 0x0000ff) >> 0) / 255D; + GL11.glColor3d(r, g, b); + return "textures/models/tank/tank_NONE.png"; + } + String s = type.getName(); if(type.isAntimatter() || (type.hasTrait(FT_Corrosive.class) && type.getTrait(FT_Corrosive.class).isHighlyCorrosive())) diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index 047155832..f2b5f3cb8 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -2,211 +2,221 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import com.hbm.tileentity.bomb.TileEntityLaunchPad; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - - bindTexture(ResourceManager.missile_pad_tex); - ResourceManager.missile_pad.renderAll(); + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_CULL_FACE); - int state = 0; - - if(tileEntity instanceof TileEntityLaunchPad) - state = ((TileEntityLaunchPad)tileEntity).state; - - GL11.glTranslated(0, 1, 0); - - if(state == 1) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_HE_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 2) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_HE_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 3) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_CL_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 4) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileNuclear_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 5) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_IN_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 6) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_BU_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 7) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_IN_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 8) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_CL_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 9) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_BU_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 10) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_HE_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 11) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_IN_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 12) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_CL_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 13) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_BU_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 14) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileEndo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(state == 15) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(state == 16) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 17) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - } - if(state == 18) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileTaint_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 19) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 20) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - GL11.glTranslated(0.0D, 0.5D, 0.0D); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(-2.5D, 0.0D, 0.0D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, -2.5D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - } - if(state == 21) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 22) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroBHole_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 23) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroSchrab_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 24) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroEMP_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 25) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_EMP_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 26) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileVolcano_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 27) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileShuttle_tex); - ResourceManager.missileShuttle.renderAll(); - } + bindTexture(ResourceManager.missile_pad_tex); + ResourceManager.missile_pad.renderAll(); + + GL11.glDisable(GL11.GL_CULL_FACE); + + if(tileEntity instanceof TileEntityLaunchPad) { + ItemStack toRender = ((TileEntityLaunchPad) tileEntity).toRender; - GL11.glEnable(GL11.GL_CULL_FACE); + if(toRender != null) { + GL11.glTranslated(0, 1, 0); + + //TODO: add a registry for missile rendering to be reused here and for the entity renderer + if(toRender.getItem() == ModItems.missile_generic) { + bindTexture(ResourceManager.missileV2_HE_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_decoy) { + bindTexture(ResourceManager.missileV2_decoy_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_stealth) { + bindTexture(ResourceManager.missileStealth_tex); + ResourceManager.missileStealth.renderAll(); + } + if(toRender.getItem() == ModItems.missile_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_HE_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_cluster) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_CL_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_nuclear) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileNuclear_tex); + ResourceManager.missileNuclear.renderAll(); + } + if(toRender.getItem() == ModItems.missile_incendiary) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_IN_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_buster) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_incendiary_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_IN_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_cluster_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_CL_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_buster_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_burst) { + bindTexture(ResourceManager.missileHuge_HE_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_inferno) { + bindTexture(ResourceManager.missileHuge_IN_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_rain) { + bindTexture(ResourceManager.missileHuge_CL_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_drill) { + bindTexture(ResourceManager.missileHuge_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_endo) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileEndo_tex); + ResourceManager.missileThermo.renderAll(); + } + if(toRender.getItem() == ModItems.missile_exo) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileExo_tex); + ResourceManager.missileThermo.renderAll(); + } + if(toRender.getItem() == ModItems.missile_nuclear_cluster) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileMIRV_tex); + ResourceManager.missileNuclear.renderAll(); + } + if(toRender.getItem() == ModItems.missile_doomsday) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileDoomsday_tex); + ResourceManager.missileDoomsday.renderAll(); + } + if(toRender.getItem() == ModItems.missile_taint) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileTaint_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_micro) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicro_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_carrier) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileCarrier_tex); + ResourceManager.missileCarrier.renderAll(); + GL11.glTranslated(0.0D, 0.5D, 0.0D); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + bindTexture(ResourceManager.missileBooster_tex); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(-2.5D, 0.0D, 0.0D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, -2.5D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + } + if(toRender.getItem() == ModItems.missile_anti_ballistic) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileAA_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileABM.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_bhole) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroBHole_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_schrabidium) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroSchrab_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_emp) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroEMP_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_emp_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_EMP_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_volcano) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileVolcano_tex); + ResourceManager.missileNuclear.renderAll(); + } + if(toRender.getItem() == ModItems.missile_shuttle) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileShuttle_tex); + ResourceManager.missileShuttle.renderAll(); + } + } + } - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index 1813bb7d7..da6545a1e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -1,16 +1,20 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; +import com.hbm.items.armor.ArmorTrenchmaster; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.model.ModelFatman; import com.hbm.render.model.ModelLeverAction; import com.hbm.util.Tuple.Quartet; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; @@ -47,6 +51,8 @@ public class RenderLoot extends TileEntitySpecialRenderer { } else if(stack.getItem() == ModItems.gun_lever_action) { renderShotgun(); + } else if(stack.getItem() instanceof ArmorTrenchmaster) { + renderTrenchmaster(stack); } else { renderStandardItem(item.getW()); } @@ -57,6 +63,57 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + private void renderTrenchmaster(ItemStack stack) { + GL11.glPushMatrix(); + GL11.glTranslated(0.5, 1.5, 0.5); + GL11.glScaled(0.0625, 0.0625, 0.0625); + GL11.glRotated(180, 1, 0, 0); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + if(stack.getItem() == ModItems.trenchmaster_helmet) { + bindTexture(ResourceManager.trenchmaster_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + ResourceManager.armor_trenchmaster.renderPart("Helmet"); + GL11.glDisable(GL11.GL_BLEND); + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + ResourceManager.armor_trenchmaster.renderPart("Light"); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + } + if(stack.getItem() == ModItems.trenchmaster_plate) { + bindTexture(ResourceManager.trenchmaster_chest); + ResourceManager.armor_trenchmaster.renderPart("Chest"); + bindTexture(ResourceManager.trenchmaster_arm); + GL11.glPushMatrix(); + GL11.glRotated(-3, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("LeftArm"); + ResourceManager.armor_trenchmaster.renderPart("RightArm"); + GL11.glPopMatrix(); + } + if(stack.getItem() == ModItems.trenchmaster_legs) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + ResourceManager.armor_trenchmaster.renderPart("LeftLeg"); + GL11.glPushMatrix(); + GL11.glRotated(-0.1, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("RightLeg"); + GL11.glPopMatrix(); + } + if(stack.getItem() == ModItems.trenchmaster_boots) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + ResourceManager.armor_trenchmaster.renderPart("LeftBoot"); + GL11.glPushMatrix(); + GL11.glRotated(-0.1, 1, 0, 0); + ResourceManager.armor_trenchmaster.renderPart("RightBoot"); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + private void renderNuke() { GL11.glScaled(0.5, 0.5, 0.5); GL11.glTranslated(1, 0.5, 1); @@ -82,16 +139,20 @@ public class RenderLoot extends TileEntitySpecialRenderer { protected ModelLeverAction shotgun; private void renderShotgun() { - - if(shotgun == null) - shotgun = new ModelLeverAction(); - GL11.glScaled(0.25, 0.25, 0.25); - GL11.glTranslated(3, 0.0625, 2); - GL11.glRotated(-25, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glTranslated(1, 0, 0); + GL11.glRotated(25, 0, 1, 0); GL11.glRotated(90, 1, 0, 0); - bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); - shotgun.render(null, 0F, 0F, 0F, 0F, 0F, 0.0625F); + GL11.glRotated(90, 0, 1, 0); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + bindTexture(ResourceManager.ff_wood); + ResourceManager.ff_maresleg.renderPart("Grip"); + bindTexture(ResourceManager.ff_gun_bright); + ResourceManager.ff_maresleg.renderPart("Gun"); + ResourceManager.ff_maresleg.renderPart("Lever"); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); } private void renderStandardItem(ItemStack stack) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java index a41bdf06b..3168f7c12 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeGadget.java @@ -2,38 +2,66 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderNukeGadget extends TileEntitySpecialRenderer { +public class RenderNukeGadget extends TileEntitySpecialRenderer implements IItemRendererProvider { - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata()) { + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - bindTexture(ResourceManager.bomb_gadget_tex); - ResourceManager.bomb_gadget.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_gadget_tex); + ResourceManager.bomb_gadget.renderPart("Body"); + + if(Minecraft.getMinecraft().gameSettings.fancyGraphics) + ResourceManager.bomb_gadget.renderPart("Wires"); + GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_gadget); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotatef(-90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_gadget_tex); + ResourceManager.bomb_gadget.renderPart("Body"); + + if(Minecraft.getMinecraft().gameSettings.fancyGraphics) + ResourceManager.bomb_gadget.renderPart("Wires"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java b/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java deleted file mode 100644 index 415d2c26f..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeN45.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.tileentity.bomb.TileEntityNukeN45; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderNukeN45 extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - boolean standing = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - 1, tileEntity.zCoord).isNormalCube(); - - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.universal); - - GL11.glPushMatrix(); - - //GL11.glScaled(2.0D, 2.0D, 2.0D); - - if(standing) { - ResourceManager.n45_stand.renderAll(); - } - - double d = 0.25; - - if(((TileEntityNukeN45)tileEntity).primed) - d /= 4D; - - GL11.glTranslated(0, standing ? 1D : 0.5D, 0); - - ResourceManager.n45_globe.renderAll(); - - GL11.glRotated(90, 1, 0, 0); - - for(int i = 0; i < 8; i++) { - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(-45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(-90, 0, 0, 1); - - for(int i = 0; i < 4; i++) { - GL11.glRotated(45, 1, 0, 0); - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - GL11.glRotated(-45, 1, 0, 0); - GL11.glRotated(90, 0, 0, 1); - } - - GL11.glRotated(45, 0, 0, 1); - GL11.glRotated(-90, 1, 0, 0); - - ResourceManager.n45_knob.renderAll(); - GL11.glTranslated(0, -d, 0); - ResourceManager.n45_rod.renderAll(); - GL11.glTranslated(0, d, 0); - - if(!standing) { - int depth = 0; - - for(int i = 0; i < 51; i++) { - - if(!tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - i - 1, tileEntity.zCoord).isNormalCube()) { - depth++; - } else { - break; - } - } - - if(depth != 0 && depth < 51) { - - GL11.glTranslated(0, -1D, 0); - - for(int i = 0; i < depth + 1; i++) { - - ResourceManager.n45_chain.renderAll(); - GL11.glTranslated(0, -1, 0); - } - } - } - - GL11.glPopMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java new file mode 100644 index 000000000..6f39d7389 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java @@ -0,0 +1,61 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; + +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class RenderPedestalTile extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + RenderHelper.enableStandardItemLighting(); + + TileEntityPedestal pedestal = (TileEntityPedestal) te; + + if(pedestal.item != null) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + ItemStack stack = pedestal.item.copy(); + GL11.glScaled(1.5, 1.5, 1.5); + + if(!(stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType()))) { + GL11.glTranslated(0, 0.125, 0); + GL11.glRotatef(player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp + 180, 0.0F, -1.0F, 0.0F); + + if(!RenderManager.instance.options.fancyGraphics) { + GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); + } + + GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625, 0); + } else { + GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625 + 0.0625, 0); + } + + EntityItem dummy = new EntityItem(te.getWorldObj(), 0, 0, 0, stack); + dummy.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPump.java b/src/main/java/com/hbm/render/tileentity/RenderPump.java new file mode 100644 index 000000000..8b9dc8756 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPump.java @@ -0,0 +1,102 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachinePumpBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPump extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityMachinePumpBase engine = (TileEntityMachinePumpBase) tile; + float angle = engine.lastRotor + (engine.rotor - engine.lastRotor) * interp; + renderCommon(angle, engine.getBlockType() == ModBlocks.pump_steam ? 0 : 1); + //renderCommon(0, engine.getBlockType() == ModBlocks.pump_steam ? 0 : 1); + + GL11.glPopMatrix(); + } + + private void renderCommon(double rot, int type) { + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(type == 0) bindTexture(ResourceManager.pump_steam_tex); + else bindTexture(ResourceManager.pump_electric_tex); + ResourceManager.pump.renderPart("Base"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.25, 0); + GL11.glRotated(rot - 90, 0, 0, 1); + GL11.glTranslated(0, -2.25, 0); + ResourceManager.pump.renderPart("Rotor"); + GL11.glPopMatrix(); + + double sin = Math.sin(rot * Math.PI / 180D) * 0.5D - 0.5D; + double cos = Math.cos(rot * Math.PI / 180D) * 0.5D; + double ang = Math.acos(cos / 2D); + double cath = Math.sqrt(1 + (cos * cos) / 2); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1 - cath + sin, 0); + GL11.glTranslated(0, 4.75, 0); + GL11.glRotated(ang * 180D / Math.PI - 90D, 0, 0, -1); + GL11.glTranslated(0, -4.75, 0); + ResourceManager.pump.renderPart("Arms"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1 - cath + sin, 0); + ResourceManager.pump.renderPart("Piston"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.pump_steam); + } + + @Override + public Item[] getItemsForRenderer() { + return new Item[] { + Item.getItemFromBlock(ModBlocks.pump_steam), + Item.getItemFromBlock(ModBlocks.pump_electric) + }; + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommonWithStack(ItemStack item) { + RenderPump.this.renderCommon(System.currentTimeMillis() % 3600 * 0.1F, item.getItem() == Item.getItemFromBlock(ModBlocks.pump_steam) ? 0 : 1); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadar.java b/src/main/java/com/hbm/render/tileentity/RenderRadar.java index 45cc19fd0..6910c9b6e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadar.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadar.java @@ -3,7 +3,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineRadar; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -21,8 +21,8 @@ public class RenderRadar extends TileEntitySpecialRenderer { bindTexture(ResourceManager.radar_base_tex); ResourceManager.radar.renderPart("Base"); - TileEntityMachineRadar radar = (TileEntityMachineRadar) tileEntity; - GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, 1F, 0F); + TileEntityMachineRadarNT radar = (TileEntityMachineRadarNT) tileEntity; + GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, -1F, 0F); GL11.glTranslated(-0.125D, 0, 0); bindTexture(ResourceManager.radar_dish_tex); @@ -30,5 +30,4 @@ public class RenderRadar extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java new file mode 100644 index 000000000..92342b53b --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java @@ -0,0 +1,117 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineRadarNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; + +import api.hbm.entity.RadarEntry; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderRadarScreen extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) tileEntity; + + bindTexture(ResourceManager.radar_screen_tex); + ResourceManager.radar_screen.renderAll(); + + bindTexture(GUIMachineRadarNT.texture); + Tessellator tess = Tessellator.instance; + + if(screen.linked) { + GL11.glDepthMask(false); + tess.startDrawingQuads(); + + double offset = ((tileEntity.getWorldObj().getTotalWorldTime() % 56) + f) / 30D; + tess.setColorRGBA_I(0x00ff00, 0); + tess.addVertex(0.38, 2 - offset, 1.375); + tess.addVertex(0.38, 2 - offset, -0.375); + tess.setColorRGBA_I(0x00ff00, 50); + tess.addVertex(0.38, 2 - offset - 0.125, -0.375); + tess.addVertex(0.38, 2 - offset - 0.125, 1.375); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_FLAT); + + if(!screen.entries.isEmpty()) { + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + + for(RadarEntry entry : screen.entries) { + + double sX = (entry.posX - screen.refX) / ((double) TileEntityMachineRadarNT.radarRange + 1) * (0.875D); + double sZ = (entry.posZ - screen.refZ) / ((double) TileEntityMachineRadarNT.radarRange + 1) * (0.875D); + double size = 0.0625D; + tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX + size, 216D / 256D, (entry.blipLevel * 8F + 8F) / 256F); + tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX - size, 224D / 256D, (entry.blipLevel * 8F + 8F) / 256F); + tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX - size, 224D / 256D, entry.blipLevel * 8F / 256F); + tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX + size, 216D / 256D, entry.blipLevel * 8F / 256F); + } + tess.draw(); + } + GL11.glDepthMask(true); + } else { + int offset = 118 + tileEntity.getWorldObj().rand.nextInt(81); + tess.startDrawingQuads(); + tess.setColorOpaque_I(0xffffff); + tess.setNormal(0F, 1F, 0F); + tess.addVertexWithUV(0.38, 1.875, 1.375, 216D / 256D, (offset + 40F) / 256F); + tess.addVertexWithUV(0.38, 1.875, -0.375, 256D / 256D, (offset + 40F) / 256F); + tess.addVertexWithUV(0.38, 0.125, -0.375, 256D / 256D, offset / 256F); + tess.addVertexWithUV(0.38, 0.125, 1.375, 216D / 256D, offset / 256F); + tess.draw(); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.radar_screen); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5.5, 5.5, 5.5); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0, -0.5); + bindTexture(ResourceManager.radar_screen_tex); + ResourceManager.radar_screen.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java index 0dad6fd63..54c3c1ad1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolarBoiler.java @@ -38,7 +38,7 @@ public class RenderSolarBoiler extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); - if(te instanceof TileEntitySolarBoiler && Minecraft.getMinecraft().gameSettings.particleSetting < 2) { + if(te instanceof TileEntitySolarBoiler && !Minecraft.getMinecraft().gameSettings.fancyGraphics) { TileEntitySolarBoiler boiler = (TileEntitySolarBoiler) te; Tessellator tess = Tessellator.instance; diff --git a/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java b/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java index f4b35ac7b..ff5e30bde 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java @@ -71,7 +71,7 @@ public class RenderSteamEngine extends TileEntitySpecialRenderer implements IIte GL11.glPopMatrix(); GL11.glPushMatrix(); - double cath = Math.sqrt(3.515625D - (cos * cos)); + double cath = Math.sqrt(3.515625D - (cos * cos) / 2); GL11.glTranslated(1.875 - cath + sin, 0, 0); //the difference that "1.875 - cath" makes is minuscule but very much noticeable ResourceManager.steam_engine.renderPart("Piston"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderTelex.java b/src/main/java/com/hbm/render/tileentity/RenderTelex.java new file mode 100644 index 000000000..9761d83e3 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderTelex.java @@ -0,0 +1,56 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderTelex extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + bindTexture(ResourceManager.telex_tex); + ResourceManager.telex.renderAll(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.radio_telex); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommon() { + GL11.glTranslated(0, 0, -0.5); + bindTexture(ResourceManager.telex_tex); + ResourceManager.telex.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java b/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java new file mode 100644 index 000000000..14362d898 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java @@ -0,0 +1,61 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderWoodBurner extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, -0.5); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.wood_burner_tex); + ResourceManager.wood_burner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_wood_burner); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3.5, 3.5, 3.5); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.wood_burner_tex); + ResourceManager.wood_burner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index eabd2569a..d6311b241 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -6,27 +6,39 @@ import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.util.HorsePronter; +import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; public class RendererObjTester extends TileEntitySpecialRenderer { //private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/TestObj.obj"); - + + private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png"); + @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); - - /*GL11.glTranslated(0, 0, 0.75); - this.bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png")); + + GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); + GL11.glTranslated(0, 0.1, 0.5); + + this.bindTexture(extra); HorsePronter.reset(); - //HorsePronter.pose(HorsePronter.id_lfl, 0, System.currentTimeMillis() % 360 / 10D, 0); double r = 60; HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); @@ -47,130 +59,7 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glRotated(60, 0, 0, -1); bindTexture(TextureMap.locationItemsTexture); IIcon icon = stack.getIconIndex(); - float f14 = icon.getMinU(); - float f15 = icon.getMaxU(); - float f4 = icon.getMinV(); - float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);*/ - - double speed = 100D; - double chewing = 200D; - double cy0 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2)); - double cy1 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.5); - double cy2 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI); - double cy3 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.75); - - double cy4 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2)); - double cy5 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2) - Math.PI * 0.5); - - this.bindTexture(ResourceManager.glyphid_tex); - ResourceManager.glyphid.renderPart("Body"); - ResourceManager.glyphid.renderPart("ArmorFront"); - ResourceManager.glyphid.renderPart("ArmorLeft"); - ResourceManager.glyphid.renderPart("ArmorRight"); - - /// LEFT ARM /// - GL11.glPushMatrix(); - GL11.glTranslated(0.25, 0.625, 0.0625); - GL11.glRotated(10, 0, 1, 0); - GL11.glRotated(35 + cy1 * 20, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.0625); - ResourceManager.glyphid.renderPart("ArmLeftUpper"); - GL11.glTranslated(0.25, 0.625, 0.4375); - GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.4375); - ResourceManager.glyphid.renderPart("ArmLeftMid"); - GL11.glTranslated(0.25, 0.625, 0.9375); - GL11.glRotated(90 - cy0 * 45, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.9375); - ResourceManager.glyphid.renderPart("ArmLeftLower"); - ResourceManager.glyphid.renderPart("ArmLeftArmor"); - GL11.glPopMatrix(); - - /// RIGHT ARM /// - GL11.glPushMatrix(); - GL11.glTranslated(-0.25, 0.625, 0.0625); - GL11.glRotated(-10, 0, 1, 0); - GL11.glRotated(35 + cy2 * 20, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.0625); - ResourceManager.glyphid.renderPart("ArmRightUpper"); - GL11.glTranslated(-0.25, 0.625, 0.4375); - GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.4375); - ResourceManager.glyphid.renderPart("ArmRightMid"); - GL11.glTranslated(-0.25, 0.625, 0.9375); - GL11.glRotated(90 - cy3 * 45, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.9375); - ResourceManager.glyphid.renderPart("ArmRightLower"); - ResourceManager.glyphid.renderPart("ArmRightArmor"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(cy5 * 15 + 15, 0, 0, 1); - GL11.glTranslated(0, -0.5, -0.25); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(-7.5 - cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawTop"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(7.5 + cy4 * 7.5, 0, 1, 0); - GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawLeft"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(-7.5 - cy4 * 7.5, 0, 1, 0); - GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawRight"); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - - double steppy = 15; - double bend = 60; - - for(int i = 0; i < 3; i++) { - - double c0 = cy0 * (i == 1 ? -1 : 1); - double c1 = cy1 * (i == 1 ? -1 : 1); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.25, 0); - GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); - GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); - GL11.glTranslated(0, -0.25, 0); - ResourceManager.glyphid.renderPart("LegLeftUpper"); - GL11.glTranslated(0.5625, 0.25, 0); - GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); - GL11.glTranslated(-0.5625, -0.25, 0); - ResourceManager.glyphid.renderPart("LegLeftLower"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.25, 0); - GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); - GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); - GL11.glTranslated(0, -0.25, 0); - ResourceManager.glyphid.renderPart("LegRightUpper"); - GL11.glTranslated(-0.5625, 0.25, 0); - GL11.glRotated(bend - c1 * steppy, 0, 0, 1); - GL11.glTranslated(0.5625, -0.25, 0); - ResourceManager.glyphid.renderPart("LegRightLower"); - GL11.glPopMatrix(); - } - - this.bindTexture(ResourceManager.universal); - GL11.glScaled(0.05, 0.05, 0.05); - ResourceManager.sphere_uv.renderAll(); + ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/util/RenderDecoItem.java b/src/main/java/com/hbm/render/util/RenderDecoItem.java index bfca8e9ff..b7e6d2a70 100644 --- a/src/main/java/com/hbm/render/util/RenderDecoItem.java +++ b/src/main/java/com/hbm/render/util/RenderDecoItem.java @@ -1,6 +1,7 @@ package com.hbm.render.util; import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; @@ -9,7 +10,9 @@ import net.minecraft.item.ItemStack; * @author hbm */ public class RenderDecoItem extends RenderItem { + public RenderDecoItem(TileEntitySpecialRenderer render) { + this.setRenderManager(RenderManager.instance); } @Override diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index da618d194..94f7760d2 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -44,7 +44,7 @@ public class RenderInfoSystem { } } - @SubscribeEvent + @SubscribeEvent(receiveCanceled = true) public void onOverlayRender(RenderGameOverlayEvent.Pre event) { if(event.type != ElementType.CROSSHAIRS) @@ -80,7 +80,7 @@ public class RenderInfoSystem { int side = pX + 5 + longest; int height = messages.size() * 10 + pZ + 2; int z = 0; - + GL11.glDisable(GL11.GL_TEXTURE_2D); Tessellator tess = Tessellator.instance; tess.startDrawingQuads(); diff --git a/src/main/java/com/hbm/saveddata/TomSaveData.java b/src/main/java/com/hbm/saveddata/TomSaveData.java index be36cecb5..0ccc22395 100644 --- a/src/main/java/com/hbm/saveddata/TomSaveData.java +++ b/src/main/java/com/hbm/saveddata/TomSaveData.java @@ -32,6 +32,10 @@ public class TomSaveData extends WorldSavedData { public static TomSaveData getLastCachedOrNull() { return lastCachedUnsafe; } + + public static void resetLastCached() { + lastCachedUnsafe = null; + } public TomSaveData(String tagName) { super(tagName); diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index b7683d828..5f81ef8f5 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -2,6 +2,7 @@ package com.hbm.tileentity; import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; +import com.hbm.lib.Library; import com.hbm.main.ResourceManager; import com.hbm.render.loader.WavefrontObjDisplayList; import com.hbm.util.BobMathUtil; @@ -13,411 +14,1067 @@ import org.lwjgl.opengl.GL11; public abstract class DoorDecl { - public static final DoorDecl TRANSITION_SEAL = new DoorDecl() { - - @Override - public String getOpenSoundStart() { - return "hbm:door.TransitionSealOpen"; - } - - @Override - public float getSoundVolume() { - return 6; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if (!partName.equals("base")) { - set(trans, 0, 3.5F * getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0, 0, 0.5); - } - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return super.getClippingPlanes(); - } - - @Override - public int timeToOpen() { - return 480; - } - - @Override - public int[][] getDoorOpenRanges() { - //3 is tall - //4 is wide - return new int[][]{{-9, 2, 0, 20, 20, 1}}; - } - - @Override - public int[] getDimensions() { - return new int[]{23, 0, 0, 0, 13, 12}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - return super.getBlockBound(x, y, z, open); - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.transition_seal_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public Animation getAnim() { - return ResourceManager.transition_seal_anim; - } - - @Override - @SideOnly(Side.CLIENT) - public AnimatedModel getAnimatedModel() { - return ResourceManager.transition_seal; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { - return null; - } - }; - - public static final DoorDecl FIRE_DOOR = new DoorDecl() { - - @Override - public String getOpenSoundEnd() { - return "hbm:door.wghStop"; - } - - @Override - public String getOpenSoundLoop() { - return "hbm:door.wghStart"; - } - - @Override - public String getSoundLoop2() { - return "hbm:door.alarm6"; - } - - @Override - public float getSoundVolume() { - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if (!partName.equals("frame")) { - set(trans, 0, 3 * getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0, 0, 0.5); - } - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0, -1, 0, 3.0001}}; - } - - @Override - public int timeToOpen() { - return 160; - } - - @Override - public int[][] getDoorOpenRanges() { - return new int[][]{{-1, 0, 0, 3, 4, 1}}; - } - - @Override - public int[] getDimensions() { - return new int[]{2, 0, 0, 0, 2, 1}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if (!open) - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - if (z == 1) { - return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); - } else if (z == -2) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); - } else if (y > 1) { - return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); - } else if (y == 0) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); - } else { - return super.getBlockBound(x, y, z, open); - } - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.fire_door_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { - return ResourceManager.fire_door; - } - }; - - public static final DoorDecl SLIDE_DOOR = new DoorDecl() { - @Override - public String getOpenSoundEnd() { - return "hbm:door.sliding_door_opened"; - } - - @Override - public String getCloseSoundEnd() { - return "hbm:door.sliding_door_shut"; - } - - @Override - public String getOpenSoundLoop() { - return "hbm:door.sliding_door_opening"; - } - - @Override - public String getSoundLoop2() { - return "hbm:door.sliding_door_opening"; - } - - @Override - public float getSoundVolume() { - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glRotated(-90, 0, 1, 0); - } - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{ - {-1, 0, 0, 3.50001}, - {1, 0, 0, 3.50001} - }; - } - - @Override - public int timeToOpen() { - return 24; - } - - @Override - public int[][] getDoorOpenRanges() { - return new int[][]{{-2, 0, 0, 4, 5, 1}}; - } - - @Override - public int[] getDimensions() { - return new int[]{3, 0, 0, 0, 3, 3}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if (open) { - if (y == 3) { - return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); - } else if (y == 0) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.08, 1); - } - } - return super.getBlockBound(x, y, z, open); - } - - @Override - public boolean hasSkins() { - return true; - } - - @Override - public int getSkinCount() { - return 3; - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return new ResourceLocation[] { - ResourceManager.sliding_blast_door_tex, - ResourceManager.sliding_blast_door_variant1_tex, - ResourceManager.sliding_blast_door_variant2_tex - }[skinIndex]; - } - - @Override - public WavefrontObjDisplayList getModel() { - return null; - } - - @Override - public Animation getAnim() { - return ResourceManager.sliding_blast_door_anim; - } - - @Override - public AnimatedModel getAnimatedModel() { - return ResourceManager.sliding_blast_door; - } - }; - - //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) - public abstract int[][] getDoorOpenRanges(); - - public abstract int[] getDimensions(); - - public float getDoorRangeOpenTime(int ticks, int idx) { - return getNormTime(ticks); - } - - public int timeToOpen() { - return 20; - } - - public float getNormTime(float time) { - return getNormTime(time, 0, timeToOpen()); - } - - public float getNormTime(float time, float min, float max) { - return BobMathUtil.remap01_clamp(time, min, max); - } - - public boolean hasSkins() { - return false; - } - - public int getSkinCount() { - return 0; - } - - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName) { - return getTextureForPart(0, partName); - } - - @SideOnly(Side.CLIENT) - public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); - - @SideOnly(Side.CLIENT) - public abstract WavefrontObjDisplayList getModel(); - - @SideOnly(Side.CLIENT) - public AnimatedModel getAnimatedModel() { - return null; - } - - @SideOnly(Side.CLIENT) - public Animation getAnim() { - return null; - } - - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - set(trans, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getRotation(String partName, float openTicks, float[] rot) { - set(rot, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getOrigin(String partName, float[] orig) { - set(orig, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public boolean doesRender(String partName, boolean child) { - return true; - } - - private static final String[] nothing = new String[]{}; - - @SideOnly(Side.CLIENT) - public String[] getChildren(String partName) { - return nothing; - } - - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{}; - } - - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - } - - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - } - - public boolean isLadder(boolean open) { - return false; - } - - public String getOpenSoundLoop() { - return null; - } - - //Hack - public String getSoundLoop2() { - return null; - } - - public String getCloseSoundLoop() { - return getOpenSoundLoop(); - } - - public String getOpenSoundStart() { - return null; - } - - public String getCloseSoundStart() { - return getOpenSoundStart(); - } - - public String getOpenSoundEnd() { - return null; - } - - public String getCloseSoundEnd() { - return getOpenSoundEnd(); - } - - public float getSoundVolume() { - return 1; - } - - public float[] set(float[] f, float x, float y, float z) { - f[0] = x; - f[1] = y; - f[2] = z; - return f; - } + public static final DoorDecl TRANSITION_SEAL = new DoorDecl() { + + @Override + public String getOpenSoundStart() { + return "hbm:door.TransitionSealOpen"; + } + + @Override + public float getSoundVolume() { + return 6; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("base")) { + set(trans, 0, 3.5F * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return super.getClippingPlanes(); + } + + @Override + public int timeToOpen() { + return 480; + } + + @Override + public int[][] getDoorOpenRanges() { + // 3 is tall + // 4 is wide + return new int[][] { { -9, 2, 0, 20, 20, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 23, 0, 0, 0, 13, 12 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + return super.getBlockBound(x, y, z, open); + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.transition_seal_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public Animation getAnim() { + return ResourceManager.transition_seal_anim; + } + + @Override + @SideOnly(Side.CLIENT) + public AnimatedModel getAnimatedModel() { + return ResourceManager.transition_seal; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return null; + } + }; + + public static final DoorDecl FIRE_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wghStop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wghStart"; + } + + @Override + public String getSoundLoop2() { + return "hbm:door.alarm6"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("frame")) { + set(trans, 0, 3 * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 3.0001 } }; + } + + @Override + public int timeToOpen() { + return 160; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -1, 0, 0, 3, 4, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 2, 1 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + if(z == 1) { + return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); + } else if(z == -2) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); + } else if(y > 1) { + return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); + } else { + return super.getBlockBound(x, y, z, open); + } + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.fire_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.fire_door; + } + }; + + public static final DoorDecl SLIDE_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_door_opened"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.sliding_door_shut"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public String getSoundLoop2() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(-90, 0, 1, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { -1, 0, 0, 3.50001 }, { 1, 0, 0, 3.50001 } }; + } + + @Override + public int timeToOpen() { + return 24; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -2, 0, 0, 4, 5, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 0, 0, 3, 3 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(y == 3) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.08, 1); + } + } + return super.getBlockBound(x, y, z, open); + } + + @Override + public boolean hasSkins() { + return true; + } + + @Override + public int getSkinCount() { + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return new ResourceLocation[] { ResourceManager.sliding_blast_door_tex, ResourceManager.sliding_blast_door_variant1_tex, ResourceManager.sliding_blast_door_variant2_tex }[skinIndex]; + } + + @Override + public WavefrontObjDisplayList getModel() { + return null; + } + + @Override + public Animation getAnim() { + return ResourceManager.sliding_blast_door_anim; + } + + @Override + public AnimatedModel getAnimatedModel() { + return ResourceManager.sliding_blast_door; + } + }; + + public static final DoorDecl SLIDING_SEAL_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_seal_stop"; + } + + @Override + public String getOpenSoundStart() { + return "hbm:door.sliding_seal_open"; + } + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("door")) { + set(trans, 0, 0, Library.smoothstep(getNormTime(openTicks), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, 0, -1, 0.5001 } }; + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + }; + + @Override + public int timeToOpen() { + return 20; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(y == 0) return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 0, 1); + return AxisAlignedBB.getBoundingBox(0, 0.9375, 1 - 0.25, 1, 1, 1); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, 1, 2, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 0, 0, 0, 0 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.sliding_seal_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.sliding_seal_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.sliding_seal_door; + } + }; + + public static final DoorDecl SECURE_ACCESS_DOOR = new DoorDecl() { + + @Override + public String getCloseSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("base")) { + set(trans, 0, 3.5F * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(90, 0, 1, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 5 } }; + }; + + @Override + public int timeToOpen() { + return 120; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -2, 1, 0, 4, 5, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 4, 0, 0, 0, 2, 2 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) { + if(y > 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.375, 1, 1, 0.625); + } + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + if(y == 1) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } else if(y == 4) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.15, 1, 1, 0.85); + } else { + return super.getBlockBound(x, y, z, open); + } + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.secure_access_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.secure_access_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.secure_access_door; + } + }; + + public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)) { + set(trans, 0, 0, 1.5F * getNormTime(openTicks)); + } else if("doorRight".equals(partName)) { + set(trans, 0, 0, -1.5F * getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0.0, 0.0, 1.0, 2.0001 }, { 0.0, 0.0, -1.0, 2.0001 } }; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 1) { + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -2) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } else if(y == 3) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, -2, 4, 2 }, { 0, 0, 0, 3, 4, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 0, 0, 2, 1 }; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.round_airlock_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.round_airlock_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.round_airlock_door; + } + }; + + public static final DoorDecl QE_SLIDING = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.qe_sliding_opened"; + }; + + @Override + public String getCloseSoundEnd() { + return "hbm:door.qe_sliding_shut"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.qe_sliding_opening"; + }; + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("left")) { + set(trans, 0, 0, 0.99F * getNormTime(openTicks)); + } else { + set(trans, 0, 0, -0.99F * getNormTime(openTicks)); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.4375, 0, 0.5); + }; + + @Override + public int timeToOpen() { + return 10; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(z == 0) { + return AxisAlignedBB.getBoundingBox(1 - 0.125, 0, 1 - 0.125, 1, 1, 1); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.125, 0.125, 1, 1); + } + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.125, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, 2, 2, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 0, 0, 1, 0 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.qe_sliding_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.qe_sliding_door; + } + + }; + + public static final DoorDecl QE_CONTAINMENT = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_stop"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_start"; + }; + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("frame")) { + set(trans, 0, 3 * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.25, 0, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 3.0001 } }; + }; + + @Override + public int timeToOpen() { + return 160; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -1, 0, 0, 3, 3, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 1, 1 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 1, 1); + if(y > 1) + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.5, 1, 1, 1); + else if(y == 0) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 0.1, 1); + return super.getBlockBound(x, y, z, open); + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + if(partName.equals("decal")) + return ResourceManager.qe_containment_decal; + return ResourceManager.qe_containment_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.qe_containment; + } + + }; + + public static final DoorDecl WATER_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_big_stop"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_big_start"; + }; + + @Override + public String getOpenSoundStart() { + return "hbm:door.lever"; + }; + + @Override + public String getCloseSoundStart() { + return null; + }; + + @Override + public String getCloseSoundEnd() { + return "hbm:door.lever"; + }; + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("bolt".equals(partName)) { + set(trans, 0, 0, 0.4F * Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("door".equals(partName) || "bolt".equals(partName)) { + set(orig, 0.125F, 1.5F, 1.18F); + return; + } else if("spinny_upper".equals(partName)) { + set(orig, 0.041499F, 2.43569F, -0.587849F); + return; + } else if("spinny_lower".equals(partName)) { + set(orig, 0.041499F, 0.571054F, -0.587849F); + return; + } + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if(partName.startsWith("spinny")) { + set(rot, Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1) * 360, 0, 0); + return; + } else if("door".equals(partName) || "bolt".equals(partName)) { + set(rot, 0, Library.smoothstep(getNormTime(openTicks, 30, 60), 0, 1) * -134, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return child || !partName.startsWith("spinny"); + }; + + @Override + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + if("door".equals(partName)) + return new String[] { "spinny_lower", "spinny_upper" }; + return super.getChildren(partName); + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 1, 1); + } else if(y > 1) { + return AxisAlignedBB.getBoundingBox(0, 0.85, 0.75, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 0.15, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 1, 0, 0, -3, 3, 2 } }; + } + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks, 35, 40); + }; + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 1, 1 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.water_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.water_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.water_door; + } + + }; + + public static final DoorDecl LARGE_VEHICLE_DOOR = new DoorDecl() { + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)) { + set(trans, 0, 0, 3 * getNormTime(openTicks)); + } else if("doorRight".equals(partName)) { + set(trans, 0, 0, -3 * getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + }; + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0.0, 0.0, 1.0, 3.50001 }, { 0.0, 0.0, -1.0, 3.50001 } }; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 3) { + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -3) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, -4, 6, 2 }, { 0, 0, 0, 4, 6, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 5, 0, 0, 0, 3, 3 }; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.large_vehicle_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.large_vehicle_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.large_vehicle_door; + } + + }; + + // Format: x, y, z, tangent amount 1 (how long the door would be if it moved + // up), tangent amount 2 (door places blocks in this direction), axis (0-x, + // 1-y, 2-z) + public abstract int[][] getDoorOpenRanges(); + + public abstract int[] getDimensions(); + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks); + } + + public int timeToOpen() { + return 20; + } + + public float getNormTime(float time) { + return getNormTime(time, 0, timeToOpen()); + } + + public float getNormTime(float time, float min, float max) { + return BobMathUtil.remap01_clamp(time, min, max); + } + + public boolean hasSkins() { + return false; + } + + public int getSkinCount() { + return 0; + } + + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return getTextureForPart(0, partName); + } + + @SideOnly(Side.CLIENT) + public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); + + @SideOnly(Side.CLIENT) + public abstract WavefrontObjDisplayList getModel(); + + @SideOnly(Side.CLIENT) + public AnimatedModel getAnimatedModel() { + return null; + } + + @SideOnly(Side.CLIENT) + public Animation getAnim() { + return null; + } + + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + set(trans, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + set(rot, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + set(orig, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + } + + private static final String[] nothing = new String[] {}; + + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + return nothing; + } + + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] {}; + } + + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + } + + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + + public boolean isLadder(boolean open) { + return false; + } + + public String getOpenSoundLoop() { + return null; + } + + // Hack + public String getSoundLoop2() { + return null; + } + + public String getCloseSoundLoop() { + return getOpenSoundLoop(); + } + + public String getOpenSoundStart() { + return null; + } + + public String getCloseSoundStart() { + return getOpenSoundStart(); + } + + public String getOpenSoundEnd() { + return null; + } + + public String getCloseSoundEnd() { + return getOpenSoundEnd(); + } + + public float getSoundVolume() { + return 1; + } + + public float[] set(float[] f, float x, float y, float z) { + f[0] = x; + f[1] = y; + f[2] = z; + return f; + } } diff --git a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java new file mode 100644 index 000000000..4250d6edd --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity; + +import io.netty.buffer.ByteBuf; + +public interface IBufPacketReceiver { + + public void serialize(ByteBuf buf); + public void deserialize(ByteBuf buf); +} diff --git a/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java b/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java new file mode 100644 index 000000000..9416eb837 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java @@ -0,0 +1,17 @@ +package com.hbm.tileentity; + +import net.minecraft.item.ItemStack; + +/** + * Masks operation such as isItemValidForSlot and getAccessibleSlotsFromSide found in ISidedInveotry + * Intended to be used to return a different result depending on the port, assuming the port detects IConditionalInvAccess + * + * @author hbm + */ +public interface IConditionalInvAccess { + + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack); + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side); + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side); + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side); +} diff --git a/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java b/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java new file mode 100644 index 000000000..0351ec055 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity; + +import net.minecraft.entity.Entity; + +public interface IRadarCommandReceiver { + + public boolean sendCommandPosition(int x, int y, int z); + public boolean sendCommandEntity(Entity target); +} diff --git a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java index 829bfba2f..5f737b6e8 100644 --- a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java +++ b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java @@ -1,6 +1,7 @@ package com.hbm.tileentity; import java.util.List; +import java.util.Locale; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -139,11 +140,11 @@ public interface IRadioisotopeFuel if (showAdv) { tooltip.add("EXTENDED INFO:"); - tooltip.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); + tooltip.add(String.format(Locale.US, "%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); - tooltip.add(String.format("Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); - tooltip.add(String.format("Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); + tooltip.add(String.format(Locale.US, "Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); + tooltip.add(String.format(Locale.US, "Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); } } } diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java new file mode 100644 index 000000000..f1a420b5f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -0,0 +1,29 @@ +package com.hbm.tileentity; + +import java.util.List; + +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.Block; +import net.minecraft.util.EnumChatFormatting; + +public interface IUpgradeInfoProvider { + + /** If any of the automated display stuff should be applied for this upgrade. A level of 0 is used by the GUI's indicator, as opposed to the item tooltips */ + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo); + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo); + public int getMaxLevel(UpgradeType type); + + public static String getStandardLabel(Block block) { + return EnumChatFormatting.GREEN.YELLOW + ">>> " + I18nUtil.resolveKey(block.getUnlocalizedName() + ".name") + " <<<"; + } + + public static final String KEY_ACID = "upgrade.acid"; + public static final String KEY_BURN = "upgrade.burn"; + public static final String KEY_CONSUMPTION = "upgrade.consumption"; + public static final String KEY_DELAY = "upgrade.delay"; + public static final String KEY_EFFICIENCY = "upgrade.efficiency"; + public static final String KEY_FORTUNE = "upgrade.fortune"; + public static final String KEY_RANGE = "upgrade.range"; +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 5968d685e..68e49db3f 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -142,9 +142,9 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } PacketDispatcher.wrapper.sendToAllAround(new TEDoorAnimationPacket(xCoord, yCoord, zCoord, state, skinIndex, (byte)(shouldUseBB ? 1 : 0)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100)); - if(redstonePower == -1 && state == 0){ + if(redstonePower == -1 && state == 1){ tryToggle(-1); - } else if(redstonePower > 0 && state == 1){ + } else if(redstonePower > 0 && state == 0){ tryToggle(-1); } if(redstonePower == -1){ diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 996a216b9..bf1318f0f 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -2,10 +2,12 @@ package com.hbm.tileentity; import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -14,14 +16,14 @@ import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidTank; -public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver { +public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver, IBufPacketReceiver { public ItemStack slots[]; private String customName; - public TileEntityMachineBase(int scount) { - slots = new ItemStack[scount]; + public TileEntityMachineBase(int slotCount) { + slots = new ItemStack[slotCount]; } /** The "chunks is modified, pls don't forget to save me" effect of markDirty, minus the block updates */ @@ -147,23 +149,23 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Override public abstract void updateEntity(); - @Deprecated - public void updateGauge(int val, int id, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + @Deprecated public void updateGauge(int val, int id, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + @Deprecated public void processGauge(int val, int id) { } + + @Deprecated public void networkPack(NBTTagCompound nbt, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + @Deprecated public void networkUnpack(NBTTagCompound nbt) { } + + /** Sends a sync packet that uses ByteBuf for efficient information-cramming */ + public void networkPackNT(int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Deprecated - public void processGauge(int val, int id) { } - - public void networkPack(NBTTagCompound nbt, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - public void networkUnpack(NBTTagCompound nbt) { } + @Override public void serialize(ByteBuf buf) { } + @Override public void deserialize(ByteBuf buf) { } @Deprecated public void handleButtonPacket(int value, int meta) { } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 18d109586..eb4a603e0 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -361,6 +361,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).isItemValidForSlot(xCoord, yCoord, zCoord, slot, stack); + return ((ISidedInventory)getTile()).isItemValidForSlot(slot, stack); } @@ -374,6 +377,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return new int[0]; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).getAccessibleSlotsFromSide(xCoord, yCoord, zCoord, side); + return ((ISidedInventory)getTile()).getAccessibleSlotsFromSide(side); } @@ -387,6 +393,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canInsertItem(xCoord, yCoord, zCoord, i, stack, j); + return ((ISidedInventory)getTile()).canInsertItem(i, stack, j); } @@ -400,6 +409,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canExtractItem(xCoord, yCoord, zCoord, i, stack, j); + return ((ISidedInventory)getTile()).canExtractItem(i, stack, j); } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java b/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java index 9e348c0b4..ce4208ccc 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java @@ -5,6 +5,7 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +@Deprecated public class TileEntityProxyInventory extends TileEntityProxyBase implements ISidedInventory { @Override diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index fd8d60aca..ea45e6402 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -12,6 +12,7 @@ import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; +import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; @@ -19,10 +20,12 @@ import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; +import com.hbm.blocks.network.BlockCableGauge.TileEntityCableGauge; import com.hbm.blocks.network.BlockCablePaintable.TileEntityCablePaintable; import com.hbm.blocks.network.CableDiode.TileEntityDiode; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; +import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.tileentity.bomb.*; @@ -66,6 +69,7 @@ public class TileMappings { put(TileEntityMachineBattery.class, "tileentity_battery"); put(TileEntityCapacitor.class, "tileentity_capacitor"); put(TileEntityMachineCoal.class, "tileentity_coal"); + put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner"); put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); put(TileEntityLaunchPad.class, "tileentity_launch1"); @@ -88,6 +92,7 @@ public class TileMappings { put(TileEntityPartEmitter.class, "tileentity_partemitter"); put(TileEntityDummy.class, "tileentity_dummy"); put(TileEntityMachineCyclotron.class, "tileentity_cyclotron"); + put(TileEntityMachineExposureChamber.class, "tileentity_exposure_chamber"); put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); put(TileEntityStructureMarker.class, "tileentity_structure_marker"); put(TileEntityMachineMiningDrill.class, "tileentity_mining_drill"); @@ -110,7 +115,8 @@ public class TileMappings { put(TileEntityMachineSPP.class, "tileentity_spp"); put(TileEntityMachineRadGen.class, "tileentity_radgen"); put(TileEntityMachineTransformer.class, "tileentity_transformer"); - put(TileEntityMachineRadar.class, "tileentity_radar"); + put(TileEntityMachineRadarNT.class, "tileentity_radar"); + put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen"); put(TileEntityBroadcaster.class, "tileentity_pink_cloud_broadcaster"); put(TileEntityMachineSeleniumEngine.class, "tileentity_selenium_engine"); put(TileEntityMachineSatLinker.class, "tileentity_satlinker"); @@ -120,10 +126,8 @@ public class TileMappings { put(TileEntityRadioRec.class, "tileentity_radio_receiver"); put(TileEntityVent.class, "tileentity_vent"); put(TileEntityLandmine.class, "tileentity_landmine"); - put(TileEntityBomber.class, "tileentity_bomber"); put(TileEntityMachineKeyForge.class, "tileentity_key_forge"); put(TileEntitySellafield.class, "tileentity_sellafield_core"); - put(TileEntityNukeN45.class, "tileentity_n45"); put(TileEntityBlastDoor.class, "tileentity_blast_door"); put(TileEntitySafe.class, "tileentity_safe"); put(TileEntityMachineGasCent.class, "tileentity_gas_centrifuge"); @@ -140,6 +144,7 @@ public class TileMappings { put(TileEntityDecon.class, "tileentity_decon"); put(TileEntityMachineSatDock.class, "tileentity_miner_dock"); put(TileEntityMachineEPress.class, "tileentity_electric_press"); + put(TileEntityConveyorPress.class, "tileentity_conveyor_press"); put(TileEntityCoreEmitter.class, "tileentity_v0_emitter"); put(TileEntityCoreReceiver.class, "tileentity_v0_receiver"); put(TileEntityCoreInjector.class, "tileentity_v0_injector"); @@ -189,6 +194,7 @@ public class TileMappings { put(TileEntityDeaerator.class, "tileentity_deaerator"); put(TileEntityCableBaseNT.class, "tileentity_ohgod"); // what? put(TileEntityCablePaintable.class, "tileentity_cable_paintable"); + put(TileEntityCableGauge.class, "tileentity_cable_gauge"); put(TileEntityPipeBaseNT.class, "tileentity_pipe_base"); put(TileEntityPipePaintable.class, "tileentity_pipe_paintable"); put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); @@ -200,6 +206,7 @@ public class TileMappings { put(TileEntityCustomMachine.class, "tileentity_custom_machine"); put(TileEntityLoot.class, "tileentity_ntm_loot"); + put(TileEntityPedestal.class, "tileentity_ntm_pedestal"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); put(TileEntitySnowglobe.class, "tileentity_ntm_snowglobe"); put(TileEntityEmitter.class, "tileentity_ntm_emitter"); @@ -227,6 +234,9 @@ public class TileMappings { putMachines(); putPile(); putRBMK(); + + TileEntityMachineRadarNT.registerEntityClasses(); + TileEntityMachineRadarNT.registerConverters(); } private static void putBombs() { @@ -276,6 +286,9 @@ public class TileMappings { put(TileEntityHeatBoiler.class, "tileentity_heat_boiler"); put(TileEntityHeatBoilerIndustrial.class, "tileentity_heat_boiler_industrial"); + put(TileEntityMachinePumpSteam.class, "tileentity_steam_pump"); + put(TileEntityMachinePumpElectric.class, "tileentity_electric_pump"); + put(TileEntityFoundryMold.class, "tileentity_foundry_mold"); put(TileEntityFoundryBasin.class, "tileentity_foundry_basin"); put(TileEntityFoundryChannel.class, "tileentity_foundry_channel"); @@ -283,8 +296,9 @@ public class TileMappings { put(TileEntityFoundryOutlet.class, "tileentity_foundry_outlet"); put(TileEntityFoundrySlagtap.class, "tileentity_foundry_slagtap"); put(TileEntitySlag.class, "tileentity_foundry_slag"); - + put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); + put(TileEntityMachineFunnel.class, "tileentity_funnel"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); put(TileEntityUVLamp.class, "tileentity_uv_lamp"); @@ -293,6 +307,7 @@ public class TileMappings { put(TileEntityCondenser.class, "tileentity_condenser"); put(TileEntityTowerSmall.class, "tileentity_cooling_tower_small"); put(TileEntityTowerLarge.class, "tileentity_cooling_tower_large"); + put(TileEntityCondenserPowered.class, "tileentity_condenser_powered"); put(TileEntityDeuteriumExtractor.class, "tileentity_deuterium_extractor"); put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); @@ -300,6 +315,7 @@ public class TileMappings { put(TileEntityMachineCompressor.class, "tileentity_compressor"); put(TileEntityElectrolyser.class, "tileentity_electrolyser"); put(TileEntityMachineMixer.class, "tileentity_mixer"); + put(TileEntityMachineArcWelder.class, "tileentity_arc_welder"); put(TileEntitySteamEngine.class, "tileentity_steam_engine"); put(TileEntityMachineTurbine.class, "tileentity_turbine"); @@ -325,6 +341,7 @@ public class TileMappings { put(TileEntityMachineCatalyticReformer.class, "tileentity_catalytic_reformer"); put(TileEntityMachineCoker.class, "tileentity_coker"); put(TileEntityChimneyBrick.class, "tileentity_chimney_brick"); + put(TileEntityChimneyIndustrial.class, "tileentity_chimney_industrial"); put(TileEntityReactorZirnox.class, "tileentity_zirnox"); put(TileEntityZirnoxDestroyed.class, "tileentity_zirnox_destroyed"); @@ -383,6 +400,16 @@ public class TileMappings { put(TileEntityRadioTorchSender.class, "tileentity_rtty_sender"); put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); put(TileEntityRadioTorchCounter.class, "tileentity_rtty_counter"); + put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); + + put(TileEntityDroneWaypoint.class, "tileentity_drone_waypoint"); + put(TileEntityDroneCrate.class, "tileentity_drone_crate"); + put(TileEntityDroneWaypointRequest.class, "tileentity_drone_waypoint_request"); + put(TileEntityDroneDock.class, "tileentity_drone_dock"); + put(TileEntityDroneProvider.class, "tileentity_drone_provider"); + put(TileEntityDroneRequester.class, "tileentity_drone_requester"); + + put(TileEntityRailSwitch.class, "tileentity_rail_switch"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 24a739811..6dd6a97be 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -23,6 +23,7 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -47,7 +48,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { private ItemStack slots[]; @@ -207,7 +208,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I for(int z = -1; z <= 1; z++) { if(worldObj.isBlockIndirectlyGettingPowered(xCoord + x, yCoord, zCoord + z) && canLaunch()) { - launch(); + launchFromDesignator(); break outer; } } @@ -268,14 +269,31 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return false; } - - public void launch() { - worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + @Override + public boolean sendCommandEntity(Entity target) { + return sendCommandPosition((int) Math.floor(target.posX), yCoord, (int) Math.floor(target.posX)); + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + if(!canLaunch()) return false; + this.launchTo(x, z); + return true; + } + + public void launchFromDesignator() { int tX = slots[1].stackTagCompound.getInteger("xCoord"); int tZ = slots[1].stackTagCompound.getInteger("zCoord"); + this.launchTo(tX, tZ); + } + + public void launchTo(int tX, int tZ) { + + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + ItemMissile chip = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); float c = (Float)chip.attributes[0]; float f = 1.0F; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 7781511f5..6451f6f02 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -1,20 +1,37 @@ package com.hbm.tileentity.bomb; +import java.util.HashMap; + +import org.apache.logging.log4j.Level; + import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.LaunchPad; +import com.hbm.config.GeneralConfig; +import com.hbm.entity.missile.EntityCarrier; +import com.hbm.entity.missile.EntityMissileAntiBallistic; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileDoomsday; +import com.hbm.entity.missile.EntityMissileShuttle; +import com.hbm.entity.missile.EntityMissileStealth; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; +import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerLaunchPadTier1; import com.hbm.inventory.gui.GUILaunchPadTier1; +import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissilePacket; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; @@ -22,183 +39,76 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, SimpleComponent, IGUIProvider { +public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider, IRadarCommandReceiver { + + /** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */ + public static final HashMap> missiles = new HashMap(); + + public static void registerLaunchables() { - public ItemStack slots[]; + //Tier 0 + missiles.put(new ComparableStack(ModItems.missile_micro), EntityMissileMicro.class); + missiles.put(new ComparableStack(ModItems.missile_schrabidium), EntityMissileSchrabidium.class); + missiles.put(new ComparableStack(ModItems.missile_bhole), EntityMissileBHole.class); + missiles.put(new ComparableStack(ModItems.missile_taint), EntityMissileTaint.class); + missiles.put(new ComparableStack(ModItems.missile_emp), EntityMissileEMP.class); + //Tier 1 + missiles.put(new ComparableStack(ModItems.missile_generic), EntityMissileGeneric.class); + missiles.put(new ComparableStack(ModItems.missile_decoy), EntityMissileDecoy.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary), EntityMissileIncendiary.class); + missiles.put(new ComparableStack(ModItems.missile_cluster), EntityMissileCluster.class); + missiles.put(new ComparableStack(ModItems.missile_buster), EntityMissileBunkerBuster.class); + //Tier 2 + missiles.put(new ComparableStack(ModItems.missile_strong), EntityMissileStrong.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary_strong), EntityMissileIncendiaryStrong.class); + missiles.put(new ComparableStack(ModItems.missile_cluster_strong), EntityMissileClusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_buster_strong), EntityMissileBusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_emp_strong), EntityMissileEMPStrong.class); + //Tier 3 + missiles.put(new ComparableStack(ModItems.missile_burst), EntityMissileBurst.class); + missiles.put(new ComparableStack(ModItems.missile_inferno), EntityMissileInferno.class); + missiles.put(new ComparableStack(ModItems.missile_rain), EntityMissileRain.class); + missiles.put(new ComparableStack(ModItems.missile_drill), EntityMissileDrill.class); + missiles.put(new ComparableStack(ModItems.missile_endo), EntityMissileEndo.class); + missiles.put(new ComparableStack(ModItems.missile_exo), EntityMissileExo.class); + missiles.put(new ComparableStack(ModItems.missile_shuttle), EntityMissileShuttle.class); + //Tier 4 + missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); + missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); + missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); + + missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class); + missiles.put(new ComparableStack(ModItems.missile_stealth), EntityMissileStealth.class); + } + + public ItemStack toRender; public long power; public final long maxPower = 100000; - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] { 0, 1, 2}; + private static final int[] slots_bottom = new int[] {0, 1, 2}; private static final int[] slots_side = new int[] {0}; - public int state = 0; - private String customName; public TileEntityLaunchPad() { - slots = new ItemStack[3]; + super(3); } @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.launchPad"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - power = nbt.getLong("power"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - nbt.setLong("power", power); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; + public String getName() { + return "container.launchPad"; } @Override @@ -209,8 +119,24 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI power = Library.chargeTEFromItems(slots, 2, power, maxPower); this.updateConnections(); - PacketDispatcher.wrapper.sendToAllAround(new TEMissilePacket(xCoord, yCoord, zCoord, slots[0]), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + if(slots[0] != null) { + data.setInteger("id", Item.getIdFromItem(slots[0].getItem())); + data.setShort("meta", (short) slots[0].getItemDamage()); + } + networkPack(data, 250); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + + if(nbt.hasKey("id")) { + this.toRender = new ItemStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getShort("meta")); + } else { + this.toRender = null; } } @@ -221,6 +147,34 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + + if(slots == null || slots.length != 3) slots = new ItemStack[3]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 ? slots_bottom : (side == 1 ? new int[0] : slots_side); + } + + public long getPowerScaled(long i) { + return (power * i) / maxPower; + } @Override public AxisAlignedBB getRenderBoundingBox() { @@ -230,13 +184,11 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Override public void setPower(long i) { power = i; - } @Override public long getPower() { return power; - } @Override @@ -246,16 +198,12 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Override public long transferPower(long power) { - this.power += power; - if(this.power > this.getMaxPower()) { - long overshoot = this.power - this.getMaxPower(); this.power = this.getMaxPower(); return overshoot; } - return 0; } @@ -266,11 +214,121 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } + public boolean hasPower() { + return this.power >= 75_000; + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + return this.launchToCoordinate(x, z) == BombReturnCode.LAUNCHED; + } + + @Override + public boolean sendCommandEntity(Entity target) { + return this.launchToEntity(target) == BombReturnCode.LAUNCHED; + } + + public BombReturnCode launchFromDesignator() { + if(slots[0] == null) return BombReturnCode.ERROR_MISSING_COMPONENT; + + boolean needsDesignator = missiles.containsKey(new ComparableStack(slots[0]).makeSingular()); + + int targetX = 0; + int targetZ = 0; + + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord) && needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + targetX = (int) Math.floor(coords.xCoord); + targetZ = (int) Math.floor(coords.zCoord); + + } else { + if(needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + return this.launchToCoordinate(targetX, targetZ); + } + + public BombReturnCode launchToEntity(Entity entity) { + if(!hasPower()) return BombReturnCode.ERROR_MISSING_COMPONENT; + Entity e = instantiateMissile((int) Math.floor(entity.posX), (int) Math.floor(entity.posZ)); + if(e != null) { + + if(e instanceof EntityMissileAntiBallistic) { + EntityMissileAntiBallistic abm = (EntityMissileAntiBallistic) e; + abm.tracking = entity; + } + + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + public BombReturnCode launchToCoordinate(int targetX, int targetZ) { + if(!hasPower()) return BombReturnCode.ERROR_MISSING_COMPONENT; + Entity e = instantiateMissile(targetX, targetZ); + if(e != null) { + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + public Entity instantiateMissile(int targetX, int targetZ) { + + if(slots[0] == null) return null; + + if(slots[0].getItem() == ModItems.missile_carrier) { + EntityCarrier missile = new EntityCarrier(worldObj); + missile.posX = xCoord + 0.5F; + missile.posY = yCoord + 1F; + missile.posZ = zCoord + 0.5F; + if(slots[1] != null) { + missile.setPayload(slots[1]); + this.slots[1] = null; + } + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:entity.rocketTakeoff", 100.0F, 1.0F); + return missile; + } + + Class clazz = this.missiles.get(new ComparableStack(slots[0]).makeSingular()); + + if(clazz != null) { + try { + EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + 2F, zCoord + 0.5F, targetX, targetZ); + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + xCoord + " / " + yCoord + " / " + zCoord + " to " + xCoord + " / " + zCoord + "!"); + return missile; + } catch(Exception e) { } + } + + if(slots[0].getItem() == ModItems.missile_anti_ballistic) { + EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(worldObj); + missile.posX = xCoord + 0.5F; + missile.posY = yCoord + 0.5F; + missile.posZ = zCoord + 0.5F; + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + return missile; + } + + return null; + } + + public void finalizeLaunch(Entity missile) { + this.power -= 75_000; + worldObj.spawnEntityInWorld(missile); + this.decrStackSize(0, 1); + } + // do some opencomputer stuff @Override public String getComponentName() { @@ -322,7 +380,6 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Callback @Optional.Method(modid = "OpenComputers") public Object[] launch(Context context, Arguments args) { - //worldObj.getBlock(xCoord, yCoord, zCoord).explode(worldObj, xCoord, yCoord, zCoord); ((LaunchPad) ModBlocks.launch_pad).explode(worldObj, xCoord, yCoord, zCoord); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 1b1281ead..709db4fdb 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -25,6 +25,7 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IEnergyUser; @@ -39,19 +40,22 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent { +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver { private ItemStack slots[]; @@ -216,7 +220,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide for(int z = -4; z <= 4; z++) { if(worldObj.isBlockIndirectlyGettingPowered(xCoord + x, yCoord, zCoord + z) && canLaunch()) { - launch(); + launchFromDesignator(); break outer; } } @@ -262,15 +266,47 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return false; } - - public void launch() { - worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + @Override + public boolean sendCommandEntity(Entity target) { + return sendCommandPosition((int) Math.floor(target.posX), yCoord, (int) Math.floor(target.posX)); + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + if(!canLaunch()) return false; + this.launchTo(x, z); + return true; + } + + public void launchFromDesignator() { int tX = slots[1].stackTagCompound.getInteger("xCoord"); int tZ = slots[1].stackTagCompound.getInteger("zCoord"); - EntityMissileCustom missile = new EntityMissileCustom(worldObj, xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, tX, tZ, getStruct(slots[0])); + this.launchTo(tX, tZ); + } + + public void launchTo(int tX, int tZ) { + + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + + ItemMissile chip = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); + float c = (Float)chip.attributes[0]; + float f = 1.0F; + + if(getStruct(slots[0]).fins != null) { + ItemMissile fins = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); + f = (Float) fins.attributes[0]; + } + + Vec3 target = Vec3.createVectorHelper(xCoord - tX, 0, zCoord - tZ); + target.xCoord *= c * f; + target.zCoord *= c * f; + + target.rotateAroundY(worldObj.rand.nextFloat() * 360); + + EntityMissileCustom missile = new EntityMissileCustom(worldObj, xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, tX + (int)target.xCoord, tZ + (int)target.zCoord, getStruct(slots[0])); worldObj.spawnEntityInWorld(missile); subtractFuel(); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java deleted file mode 100644 index 07cd73d6a..000000000 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java +++ /dev/null @@ -1,326 +0,0 @@ -package com.hbm.tileentity.bomb; - -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.inventory.container.ContainerNukeN45; -import com.hbm.inventory.gui.GUINukeN45; -import com.hbm.items.ModItems; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class TileEntityNukeN45 extends TileEntity implements ISidedInventory, IGUIProvider { - - public ItemStack slots[]; - private String customName; - - public boolean primed = false; - - public TileEntityNukeN45() { - slots = new ItemStack[2]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.nukeN45"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() { - - } - - @Override - public void closeInventory() { - - } - - @Override - public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { - return false; - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return new int[0]; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - primed = nbt.getBoolean("primed"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - nbt.setBoolean("primed", primed); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - public void updateEntity() { - - if(!worldObj.isRemote) { - - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, primed ? 1 : 0, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - - if(primed) { - - if(getType() == 0) { - return; - } - - int rad = 0; - - if(slots[1] != null) { - - if(slots[1].getItem() == ModItems.upgrade_effect_1) - rad = 5; - if(slots[1].getItem() == ModItems.upgrade_effect_2) - rad = 10; - if(slots[1].getItem() == ModItems.upgrade_effect_3) - rad = 15; - } - - if(rad == 0) { - primed = false; - return; - } - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - rad, yCoord + 0.5 - rad, zCoord + 0.5 - rad, xCoord + 0.5 + rad, yCoord + 0.5 + rad, zCoord + 0.5 + rad)); - - for(Object o : list) { - - Entity e = (Entity)o; - - if(e instanceof EntityLivingBase && e.width * e.width * e.height >= 0.5 && !((EntityLivingBase)e).isPotionActive(Potion.invisibility.id)) { - int t = getType(); - this.clearSlots(); - explode(worldObj, xCoord, yCoord, zCoord, t); - break; - } - } - } - } - - } - - public static void explode(World world, int x, int y, int z, int type) { - - if(!world.isRemote) { - world.setBlockToAir(x, y, z); - - //System.out.println(type); - - switch(type) { - case 1: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 1.5F, true); - break; - case 2: - world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 4.0F, true); - break; - case 3: - ExplosionLarge.explode(world, x, y, z, 15, true, false, false); - break; - case 4: - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int)(BombConfig.missileRadius * 0.75F), x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius * 0.75F); - break; - } - } - } - - public int getType() { - - if(!primed && slots[1] != null) { - - if(slots[1].getItem() == ModItems.upgrade_effect_1 || - slots[1].getItem() == ModItems.upgrade_effect_2 || - slots[1].getItem() == ModItems.upgrade_effect_3) - return 100; - } - - if(slots[0] != null) { - - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_cord)) - return 1; - if(slots[0].getItem() == Item.getItemFromBlock(Blocks.tnt)) - return 2; - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_charge)) - return 3; - if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_nuke)) - return 4; - } - - return 0; - } - - public void clearSlots() { - for(int i = 0; i < slots.length; i++) - { - slots[i] = null; - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerNukeN45(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUINukeN45(player.inventory, this); - } - -} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java b/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java deleted file mode 100644 index ea08b8e6a..000000000 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityBomber.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.hbm.tileentity.deco; - -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -public class TileEntityBomber extends TileEntity { - - public int yaw; - public int pitch; - public int type = 1; - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, yaw, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, pitch, 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, type, 2), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - } - - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - yaw = nbt.getInteger("bomberYaw"); - pitch = nbt.getInteger("bomberPitch"); - type = nbt.getInteger("bomberType"); - } - - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("bomberYaw", yaw); - nbt.setInteger("bomberPitch", pitch); - nbt.setInteger("bomberType", type); - } - -} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java index ca5731bb2..3a4b8a49e 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -15,6 +16,7 @@ import com.hbm.tileentity.IRepairable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -39,6 +41,9 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR if(comTimer == 100) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarDual", 10000F, 1F); if(comTimer == 0) { + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 10, yCoord - 10, zCoord - 10, xCoord + 11, yCoord + 11, zCoord + 11)); + EntityPlayer first = players.isEmpty() ? null : players.get(0); + boolean bonus = first == null ? false : (HbmPlayerProps.getData(first).reputation >= 10); EntityBobmazon shuttle = new EntityBobmazon(worldObj); shuttle.posX = xCoord + 0.5 + worldObj.rand.nextGaussian() * 10; shuttle.posY = 300; @@ -48,7 +53,7 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR new ItemStack(ModItems.circuit_copper, 4 + worldObj.rand.nextInt(2)), new ItemStack(ModItems.circuit_red_copper, 2 + worldObj.rand.nextInt(3)), new ItemStack(ModItems.circuit_gold, 1 + worldObj.rand.nextInt(2)), - worldObj.rand.nextInt(3) == 0 ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), + bonus ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), new ItemStack(Blocks.red_flower)); shuttle.payload = payload; @@ -64,6 +69,16 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR INBTPacketReceiver.networkPack(this, data, 250); } } + + @Override + public void invalidate() { + super.invalidate(); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 50, yCoord - 50, zCoord - 50, xCoord + 51, yCoord + 51, zCoord + 51)); + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + if(props.reputation > -10) props.reputation--; + } + } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java index d5e27e4ac..cd78eb206 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -29,6 +29,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi public int ashLevelWood; public int ashLevelCoal; public int ashLevelMisc; + public int ashLevelFly; + public int ashLevelSoot; public TileEntityAshpit() { super(5); @@ -59,6 +61,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + if(processAsh(ashLevelFly, EnumAshType.FLY, threshold)) ashLevelFly -= threshold; + if(processAsh(ashLevelSoot, EnumAshType.SOOT, threshold * 4)) ashLevelSoot -= threshold * 4; isFull = false; @@ -126,6 +130,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi this.ashLevelWood = nbt.getInteger("ashLevelWood"); this.ashLevelCoal = nbt.getInteger("ashLevelCoal"); this.ashLevelMisc = nbt.getInteger("ashLevelMisc"); + this.ashLevelFly = nbt.getInteger("ashLevelFly"); + this.ashLevelSoot = nbt.getInteger("ashLevelSoot"); } @Override @@ -135,6 +141,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi nbt.setInteger("ashLevelWood", ashLevelWood); nbt.setInteger("ashLevelCoal", ashLevelCoal); nbt.setInteger("ashLevelMisc", ashLevelMisc); + nbt.setInteger("ashLevelFly", ashLevelFly); + nbt.setInteger("ashLevelSoot", ashLevelSoot); } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java new file mode 100644 index 000000000..e01b8352f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java @@ -0,0 +1,113 @@ +package com.hbm.tileentity.machine; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.Library; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; + +import api.hbm.fluid.IFluidUser; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class TileEntityChimneyBase extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { + + public long ashTick = 0; + public long sootTick = 0; + public int onTicks; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + FluidType[] types = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; + + for(FluidType type : types) { + this.trySubscribe(type, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); + this.trySubscribe(type, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + } + } + + if(ashTick > 0 || sootTick > 0) { + + TileEntity below = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(below instanceof TileEntityAshpit) { + TileEntityAshpit ashpit = (TileEntityAshpit) below; + ashpit.ashLevelFly += ashTick; + ashpit.ashLevelSoot += sootTick; + } + this.ashTick = 0; + this.sootTick = 0; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("onTicks", onTicks); + INBTPacketReceiver.networkPack(this, data, 150); + + if(onTicks > 0) onTicks--; + + } else { + + if(onTicks > 0) { + this.spawnParticles(); + } + } + } + + public boolean cpaturesAsh() { + return true; + } + + public boolean cpaturesSoot() { + return false; + } + + public void spawnParticles() { } + + public void networkUnpack(NBTTagCompound nbt) { + this.onTicks = nbt.getInteger("onTicks"); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return (dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH || dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) && + (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + onTicks = 20; + + if(cpaturesAsh()) ashTick += fluid; + if(cpaturesSoot()) sootTick += fluid; + + fluid *= getPollutionMod(); + + if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 100F); + if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 100F); + if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 100F); + + return 0; + } + + public abstract double getPollutionMod(); + + @Override + public long getDemand(FluidType type, int pressure) { + return 1_000_000; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {}; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java index 7d636a718..c237c9be9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java @@ -1,100 +1,37 @@ package com.hbm.tileentity.machine; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.INBTPacketReceiver; -import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.fluid.IFluidUser; +import com.hbm.config.MobConfig; +import com.hbm.main.MainRegistry; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { - - public int onTicks; +public class TileEntityChimneyBrick extends TileEntityChimneyBase { @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - if(worldObj.getTotalWorldTime() % 20 == 0) { - FluidType[] types = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; - - for(FluidType type : types) { - this.trySubscribe(type, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(type, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - } - } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("onTicks", onTicks); - INBTPacketReceiver.networkPack(this, data, 150); - - if(onTicks > 0) onTicks--; - - } else { - - if(onTicks > 0) { + public void spawnParticles() { - if(worldObj.getTotalWorldTime() % 2 == 0) { - NBTTagCompound fx = new NBTTagCompound(); - fx.setString("type", "tower"); - fx.setFloat("lift", 10F); - fx.setFloat("base", 0.5F); - fx.setFloat("max", 3F); - fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); - fx.setInteger("color",0x404040); - fx.setDouble("posX", xCoord + 0.5); - fx.setDouble("posY", yCoord + 12); - fx.setDouble("posZ", zCoord + 0.5); - MainRegistry.proxy.effectNT(fx); - } - } + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.5F); + fx.setFloat("max", 3F); + fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); + fx.setInteger("color",0x404040); + fx.setDouble("posX", xCoord + 0.5); + fx.setDouble("posY", yCoord + 12); + fx.setDouble("posZ", zCoord + 0.5); + MainRegistry.proxy.effectNT(fx); } } - - public void networkUnpack(NBTTagCompound nbt) { - this.onTicks = nbt.getInteger("onTicks"); - } @Override - public boolean canConnect(FluidType type, ForgeDirection dir) { - return (dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH || dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) && - (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); - } - - @Override - public long transferFluid(FluidType type, int pressure, long fluid) { - onTicks = 20; - - fluid *= 0.25; - - if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 100F); - if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 100F); - if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 100F); - - return 0; - } - - @Override - public long getDemand(FluidType type, int pressure) { - return 1_000_000; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] {}; + public double getPollutionMod() { + return MobConfig.rampantMode ? MobConfig.rampantSmokeStackOverride : 0.25D; } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java new file mode 100644 index 000000000..80006caf3 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java @@ -0,0 +1,65 @@ +package com.hbm.tileentity.machine; + +import com.hbm.config.MobConfig; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityChimneyIndustrial extends TileEntityChimneyBase { + + @Override + public void spawnParticles() { + + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 3F); + fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); + fx.setInteger("color",0x404040); + fx.setDouble("posX", xCoord + 0.5); + fx.setDouble("posY", yCoord + 22); + fx.setDouble("posZ", zCoord + 0.5); + MainRegistry.proxy.effectNT(fx); + } + } + + @Override + public double getPollutionMod() { + return MobConfig.rampantMode ? MobConfig.rampantSmokeStackOverride/2 : 0.1D; + } + + @Override + public boolean cpaturesSoot() { + return true; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 23, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 4a0226d96..2a2e761db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.fluid.FluidType; @@ -22,15 +23,21 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent { public long power; public static final long maxPower = 100000000000L; @@ -275,6 +282,36 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc this.power = power; } + @Override + public String getComponentName() { + return "ntm_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index 8b42674b0..3e4df7177 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -42,35 +42,45 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA age = 0; } + NBTTagCompound data = new NBTTagCompound(); + this.tanks[0].writeToNBT(data, "0"); + if(this.waterTimer > 0) this.waterTimer--; - + int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); - tanks[0].setFill(tanks[0].getFill() - convert); - - if(convert > 0) - this.waterTimer = 20; - - int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); - - if(TomSaveData.forWorld(worldObj).fire > 1e-5 && light > 7) { // Make both steam and water evaporate during firestorms... - tanks[1].setFill(tanks[1].getFill() - convert); - } else { - tanks[1].setFill(tanks[1].getFill() + convert); + if(extraCondition(convert)) { + tanks[0].setFill(tanks[0].getFill() - convert); + + if(convert > 0) + this.waterTimer = 20; + + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + + if(TomSaveData.forWorld(worldObj).fire > 1e-5 && light > 7) { // Make both steam and water evaporate during firestorms... + tanks[1].setFill(tanks[1].getFill() - convert); + } else { + tanks[1].setFill(tanks[1].getFill() + convert); + } + + postConvert(convert); } + this.tanks[1].writeToNBT(data, "1"); + this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1], this); fillFluidInit(tanks[1].getTankType()); - - NBTTagCompound data = new NBTTagCompound(); - this.tanks[0].writeToNBT(data, "0"); - this.tanks[1].writeToNBT(data, "1"); data.setByte("timer", (byte) this.waterTimer); + packExtra(data); INBTPacketReceiver.networkPack(this, data, 150); } } + + public void packExtra(NBTTagCompound data) { } + public boolean extraCondition(int convert) { return true; } + public void postConvert(int convert) { } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java new file mode 100644 index 000000000..7bd58cf0a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java @@ -0,0 +1,165 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCondenserPowered extends TileEntityCondenser implements IEnergyUser { + + public long power; + public static final long maxPower = 10_000_000; + public float spin; + public float lastSpin; + + public TileEntityCondenserPowered() { + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 100_000); + tanks[1] = new FluidTank(Fluids.WATER, 100_000); + } + + @Override + public void updateEntity() { + super.updateEntity(); + + if(worldObj.isRemote) { + + this.lastSpin = this.spin; + + if(this.waterTimer > 0) { + this.spin += 30F; + + if(this.spin >= 360F) { + this.spin -= 360F; + this.lastSpin -= 360F; + } + + if(worldObj.getTotalWorldTime() % 4 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + worldObj.spawnParticle("cloud", xCoord + 0.5 + dir.offsetX * 1.5, yCoord + 1.5, zCoord + 0.5 + dir.offsetZ * 1.5, dir.offsetX * 0.1, 0, dir.offsetZ * 0.1); + worldObj.spawnParticle("cloud", xCoord + 0.5 - dir.offsetX * 1.5, yCoord + 1.5, zCoord + 0.5 - dir.offsetZ * 1.5, dir.offsetX * -0.1, 0, dir.offsetZ * -0.1); + } + } + } + } + + @Override + public void packExtra(NBTTagCompound data) { + data.setLong("power", power); + } + + @Override + public boolean extraCondition(int convert) { + return power >= convert * 10; + } + + @Override + public void postConvert(int convert) { + this.power -= convert * 10; + if(this.power < 0) this.power = 0; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.tanks[0].readFromNBT(nbt, "0"); + this.tanks[1].readFromNBT(nbt, "1"); + this.waterTimer = nbt.getByte("timer"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "steam"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "steam"); + } + + @Deprecated @Override public void fillFluidInit(FluidType type) { } + + @Override + public void subscribeToAllAround(FluidType type, TileEntity te) { + for(DirPos pos : getConPos()) { + this.trySubscribe(this.tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + @Override + public void sendFluidToAll(FluidTank tank, TileEntity te) { + for(DirPos pos : getConPos()) { + this.sendFluid(this.tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 4, yCoord + 1, zCoord + rot.offsetZ * 4, rot), + new DirPos(xCoord - rot.offsetX * 4, yCoord + 1, zCoord - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 2 - rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord + 1, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord + 1, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()) + }; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 3, + yCoord, + zCoord - 3, + xCoord + 4, + yCoord + 3, + zCoord + 4 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public long getPower() { + return this.power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return this.maxPower; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java new file mode 100644 index 000000000..c4f7eaf9f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java @@ -0,0 +1,269 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.inventory.recipes.PressRecipes; +import com.hbm.items.machine.ItemStamp; +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityConveyorPress extends TileEntityMachineBase implements IEnergyUser { + + public int usage = 100; + public long power = 0; + public final static long maxPower = 50000; + + public double speed = 0.125; + public double press; + public double renderPress; + public double lastPress; + private double syncPress; + private int turnProgress; + protected boolean isRetracting = false; + private int delay; + + public ItemStack syncStack; + + public TileEntityConveyorPress() { + super(1); + } + + @Override + public String getName() { + return ""; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.updateConnections(); + + if(delay <= 0) { + + if(isRetracting) { + + if(this.canRetract()) { + this.press -= speed; + this.power -= this.usage; + + if(press <= 0) { + press = 0; + this.isRetracting = false; + delay = 0; + } + } + + } else { + + if(this.canExtend()) { + this.press += speed; + this.power -= this.usage; + + if(press >= 1) { + press = 1; + this.isRetracting = true; + delay = 5; + this.process(); + } + } + } + + } else { + delay--; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setDouble("press", press); + if(slots[0] != null) { + NBTTagCompound stack = new NBTTagCompound(); + slots[0].writeToNBT(stack); + data.setTag("stack", stack); + } + + this.networkPack(data, 50); + } else { + + // approach-based interpolation, GO! + this.lastPress = this.renderPress; + + if(this.turnProgress > 0) { + this.renderPress = this.renderPress + ((this.syncPress - this.renderPress) / (double) this.turnProgress); + --this.turnProgress; + } else { + this.renderPress = this.syncPress; + } + } + } + + protected void updateConnections() { + for(DirPos pos : getConPos()) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z), + }; + } + + public boolean canExtend() { + + if(this.power < usage) return false; + if(slots[0] == null) return false; + + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 1.5, zCoord + 1)); + if(items.isEmpty()) return false; + + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + if(PressRecipes.getOutput(stack, slots[0]) != null && stack.stackSize == 1) { + + double d0 = 0.35; + double d1 = 0.65; + if(item.posX > xCoord + d0 && item.posX < xCoord + d1 && item.posZ > zCoord + d0 && item.posZ < zCoord + d1) { + item.setPosition(xCoord + 0.5, item.posY, zCoord + 0.5); + } + + return true; + } + } + + return false; + } + + public void process() { + + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 1.5, zCoord + 1)); + + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + ItemStack output = PressRecipes.getOutput(stack, slots[0]); + + if(output != null && stack.stackSize == 1) { + item.setDead(); + EntityMovingItem out = new EntityMovingItem(worldObj); + out.setPosition(item.posX, item.posY, item.posZ); + out.setItemStack(output.copy()); + worldObj.spawnEntityInWorld(out); + } + } + + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + + if(slots[0].getMaxDamage() != 0) { + slots[0].setItemDamage(slots[0].getItemDamage() + 1); + if(slots[0].getItemDamage() >= slots[0].getMaxDamage()) { + slots[0] = null; + } + } + } + + public boolean canRetract() { + if(this.power < usage) return false; + return true; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.syncPress = nbt.getInteger("press"); + + if(nbt.hasKey("stack")) { + NBTTagCompound stack = nbt.getCompoundTag("stack"); + this.syncStack = ItemStack.loadItemStackFromNBT(stack); + } else { + this.syncStack = null; + } + + this.turnProgress = 2; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return stack.getItem() instanceof ItemStamp; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0 }; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.DOWN; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.press = nbt.getDouble("press"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setDouble("press", press); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index d40fff7d8..92a83d81b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -43,7 +43,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public boolean isOn; public FluidTank tank; public long prev; - public static long maxJoules = Long.MAX_VALUE / 100_000; public static final int range = 50; @@ -99,8 +98,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); for(int i = 1; i <= range; i++) { - if(out > maxJoules) out = maxJoules; - beam = i; int x = xCoord + dir.offsetX * i; @@ -111,13 +108,11 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne TileEntity te = worldObj.getTileEntity(x, y, z); if(block instanceof ILaserable) { - ((ILaserable)block).addEnergy(worldObj, x, y, z, out * 98 / 100, dir); break; } if(te instanceof ILaserable) { - ((ILaserable)te).addEnergy(worldObj, x, y, z, out * 98 / 100, dir); break; } @@ -279,53 +274,48 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne return "dfc_emitter"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower(), tank.getFill(), watts, isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); return new Object[] {}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index bd2366acc..b0fb0c484 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -199,19 +199,19 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl return "dfc_injector"; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFuel(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypes(Context context, Arguments args) { return new Object[] {tanks[0].getTankType().getName(), tanks[1].getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getTankType().getName()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 4a9adbebc..c3fbf28d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -191,19 +191,19 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return "dfc_receiver"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {joules, getPower()}; //literally only doing this for the consistency between components } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {joules, getPower(), tank.getFill()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 74673c332..6e6413032 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -172,19 +172,19 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return "dfc_stabilizer"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDurability(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() == ModItems.ams_lens && ItemLens.getLensDamage(slots[0]) < ((ItemLens)ModItems.ams_lens).maxDamage) { @@ -193,7 +193,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object lens_damage_buf; @@ -205,16 +205,11 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {power, maxPower, watts, lens_damage_buf}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 4803e6e38..9c906623d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -185,7 +185,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF /** Only accepts inputs in a fixed order, saves a ton of performance because there's no permutations to check for */ public CustomMachineRecipe getMatchingRecipe() { - List recipes = CustomMachineRecipes.recipes.get(this.machineType); + List recipes = CustomMachineRecipes.recipes.get(this.config.recipeKey); if(recipes == null || recipes.isEmpty()) return null; outer: @@ -391,11 +391,11 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); this.matcher.readFromNBT(nbt); - } - - int index = nbt.getInteger("cachedIndex"); - if(index != -1) { - this.cachedRecipe = CustomMachineRecipes.recipes.get(this.machineType).get(index); + + int index = nbt.getInteger("cachedIndex"); + if(index != -1) { + this.cachedRecipe = CustomMachineRecipes.recipes.get(this.config.recipeKey).get(index); + } } } @@ -417,7 +417,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF this.matcher.writeToNBT(nbt); if(this.cachedRecipe != null) { - int index = CustomMachineRecipes.recipes.get(this.machineType).indexOf(this.cachedRecipe); + int index = CustomMachineRecipes.recipes.get(this.config.recipeKey).indexOf(this.cachedRecipe); nbt.setInteger("cachedIndex", index); } else { nbt.setInteger("cachedIndex", -1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 7b5d5e485..7c7891802 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -4,6 +4,7 @@ import com.hbm.blocks.machine.MachineDiFurnaceRTG; import com.hbm.inventory.container.ContainerMachineDiFurnaceRTG; import com.hbm.inventory.gui.GUIMachineDiFurnaceRTG; import com.hbm.inventory.recipes.BlastFurnaceRecipes; +import com.hbm.items.machine.ItemRTGPellet; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.RTGUtil; @@ -25,6 +26,8 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU private static final short timeRequired = 1200; private static final int[] rtgIn = new int[] {3, 4, 5, 6, 7, 8}; private String name; + public byte sideUpper = 1; + public byte sideLower = 1; public TileEntityDiFurnaceRTG() { super(9); @@ -70,6 +73,7 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU NBTTagCompound data = new NBTTagCompound(); data.setShort("progress", progress); data.setShort("speed", processSpeed); + data.setByteArray("modes", new byte[] {(byte) sideUpper, (byte) sideLower}); networkPack(data, 10); } @@ -77,6 +81,9 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU public void networkUnpack(NBTTagCompound nbt) { progress = nbt.getShort("progress"); processSpeed = nbt.getShort("speed"); + byte[] modes = nbt.getByteArray("modes"); + this.sideUpper = modes[0]; + this.sideLower = modes[1]; } private void processItem() { @@ -105,6 +112,10 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU super.readFromNBT(nbt); progress = nbt.getShort("progress"); processSpeed = nbt.getShort("speed"); + + byte[] modes = nbt.getByteArray("modes"); + this.sideUpper = modes[0]; + this.sideLower = modes[1]; } @Override @@ -112,6 +123,7 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU super.writeToNBT(nbt); nbt.setShort("progress", progress); nbt.setShort("speed", processSpeed); + nbt.setByteArray("modes", new byte[] {(byte) sideUpper, (byte) sideLower}); } public int getDiFurnaceProgressScaled(int i) { @@ -159,21 +171,33 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU return 64; } + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + if(i == 0 && this.sideUpper != j) return false; + if(i == 1 && this.sideLower != j) return false; + + return this.isItemValidForSlot(i, itemStack); + } + @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 2) { - return false; - } - return true; + if(i == 2) return false; + if(stack.getItem() instanceof ItemRTGPellet) return i > 2; + return !(stack.getItem() instanceof ItemRTGPellet); } @Override public int[] getAccessibleSlotsFromSide(int side) { - return side == 0 ? new int[] {2} : side == 1 ? new int[] {0} : new int[] {1}; + return new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8}; } @Override public boolean canExtractItem(int slot, ItemStack stack, int side) { + + if(slot > 2) { + return !(stack.getItem() instanceof ItemRTGPellet); + } + return slot == 2; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 8d34ffa2c..04b147c79 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerElectrolyserFluid; @@ -25,8 +26,10 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CrucibleUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -41,11 +44,12 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IControlReceiver, IGUIProvider { +public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 20000000; @@ -489,4 +493,27 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electrolyser)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 0fa67c699..f1b1c1a28 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -13,6 +13,7 @@ import com.hbm.items.machine.ItemFELCrystal; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -36,6 +37,7 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -49,6 +51,8 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, public boolean missingValidSilex = true ; public int distance; public List entities = new ArrayList(); + private int audioDuration = 0; + private AudioWrapper audio; public TileEntityFEL() { @@ -68,7 +72,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, if(!worldObj.isRemote) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -5, yCoord + 1, zCoord + dir.offsetZ * -5, dir); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -5, yCoord + 1, zCoord + dir.offsetZ * -5, dir.getOpposite()); this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); if(this.isOn && !(this.slots[1] == null)) { @@ -179,6 +183,34 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, data.setBoolean("valid", missingValidSilex); data.setInteger("distance", distance); this.networkPack(data, 250); + } else { + + if(isOn) { + audioDuration += 2; + } else { + audioDuration -= 3; + } + + audioDuration = MathHelper.clamp_int(audioDuration, 0, 60); + + if(audioDuration > 10) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.updatePitch((audioDuration - 10) / 100F + 0.5F); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } @@ -234,7 +266,12 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, nbt.setBoolean("valid", missingValidSilex); nbt.setInteger("distance", distance); } - + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.fel", xCoord, yCoord, zCoord, 2.0F, 10F, 2.0F); + } + @Override public AxisAlignedBB getRenderBoundingBox() { return INFINITE_EXTENT_AABB; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index be4b8c82b..5a52abb70 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -151,7 +151,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i } } - public EnumAshType getAshFromFuel(ItemStack stack) { + public static EnumAshType getAshFromFuel(ItemStack stack) { List names = ItemStackUtil.getOreDictNames(stack); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index de325d440..4b6c42214 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -122,9 +122,8 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp for(Entity e : entities) e.setFire(5); if(worldObj.getTotalWorldTime() % 10 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 1, this.zCoord, "hbm:weapon.flamethrowerShoot", 0.25F, 0.5F); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } - - if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } else { this.progress = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index aafd90a83..9a00a9bba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.UpgradeManager; @@ -8,7 +11,9 @@ import com.hbm.inventory.gui.GUIFurnaceIron; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -19,10 +24,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider, IUpgradeInfoProvider { public int maxBurnTime; public int burnTime; @@ -234,4 +240,23 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.furnace_iron)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 50 / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index ac7bddef0..4c43bf5fc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -68,7 +68,7 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent { return "ntm_geiger"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getRads(Context context, Arguments args) { return new Object[] {check()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 0c87a90b0..fed73cb60 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -43,7 +43,10 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs public boolean isOn = false; public boolean analysisOnly = false; - public boolean hopperMode = false; + public int ioMode = 0; + public static final int MODE_DEFAULT = 0; + public static final int MODE_HOPPER = 1; + public static final int MODE_SINGLE = 2; private int delay; public EnumHadronState state = EnumHadronState.IDLE; @@ -71,8 +74,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public int[] getAccessibleSlotsFromSide(int side) { - return access; - } + return access; + } @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { @@ -81,7 +84,19 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return i == 0 || i == 1; + if(i != 0 && i != 1) return false; + + if(this.ioMode == MODE_SINGLE) { + return slots[i] == null; + } + + //makes sure that equal items like the antimatter capsules are spread out evenly + if(slots[0] != null && slots[1] != null && slots[0].getItem() == slots[1].getItem() && slots[0].getItemDamage() == slots[1].getItemDamage()) { + if(i == 0) return slots[1].stackSize - slots[0].stackSize >= 0; + if(i == 1) return slots[0].stackSize - slots[1].stackSize >= 0; + } + + return true; } @Override @@ -94,7 +109,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(delay <= 0 && this.isOn && particles.size() < maxParticles && slots[0] != null && slots[1] != null && power >= maxPower * 0.75) { - if(!hopperMode || (slots[0].stackSize > 1 && slots[1].stackSize > 1)) { + if(ioMode != MODE_HOPPER || (slots[0].stackSize > 1 && slots[1].stackSize > 1)) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); particles.add(new Particle(slots[0], slots[1], dir, xCoord, yCoord, zCoord)); this.decrStackSize(0, 1); @@ -123,7 +138,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs data.setBoolean("isOn", isOn); data.setLong("power", power); data.setBoolean("analysis", analysisOnly); - data.setBoolean("hopperMode", hopperMode); + data.setInteger("ioMode", ioMode); data.setByte("state", (byte) state.ordinal()); data.setBoolean("stat_success", stat_success); @@ -181,7 +196,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.analysisOnly = data.getBoolean("analysis"); - this.hopperMode = data.getBoolean("hopperMode"); + this.ioMode = data.getInteger("ioMode"); this.state = EnumHadronState.values()[data.getByte("state")]; this.stat_success = data.getBoolean("stat_success"); @@ -199,8 +214,12 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = !this.isOn; if(meta == 1) this.analysisOnly = !this.analysisOnly; - if(meta == 2) - this.hopperMode = !this.hopperMode; + if(meta == 2) { + this.ioMode++; + if(ioMode > 2) ioMode = 0; + } + + this.markChanged(); } private void drawPower() { @@ -254,7 +273,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = nbt.getBoolean("isOn"); this.power = nbt.getLong("power"); this.analysisOnly = nbt.getBoolean("analysis"); - this.hopperMode = nbt.getBoolean("hopperMode"); + this.ioMode = nbt.getInteger("ioMode"); } @Override @@ -264,7 +283,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs nbt.setBoolean("isOn", isOn); nbt.setLong("power", power); nbt.setBoolean("analysis", analysisOnly); - nbt.setBoolean("hopperMode", hopperMode); + nbt.setInteger("ioMode", ioMode); } public int getPowerScaled(int i) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 9802070ac..f7a078115 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -544,7 +544,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser int b = layout[ly][x][z]; switch(b) { - case 1: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_conductor); break; + case 1: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_conductor, 1, 3); break; case 2: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_center); break; case 3: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_motor); break; case 4: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.reinforced_glass); break; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java new file mode 100644 index 000000000..6a4d19226 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -0,0 +1,374 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.container.ContainerMachineArcWelder; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineArcWelder; +import com.hbm.inventory.recipes.ArcWelderRecipes; +import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IConditionalInvAccess; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider { + + public long power; + public long maxPower = 2_000; + public long consumption; + + public int progress; + public int processTime = 1; + + public FluidTank tank; + public ItemStack display; + + public TileEntityMachineArcWelder() { + super(8); + this.tank = new FluidTank(Fluids.NONE, 24_000); + } + + @Override + public String getName() { + return "container.machineArcWelder"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 4, this.getPower(), this.getMaxPower()); + this.tank.setType(5, slots); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + ArcWelderRecipe recipe = ArcWelderRecipes.getRecipe(slots[0], slots[1], slots[2]); + long intendedMaxPower; + + UpgradeManager.eval(slots, 6, 7); + int redLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int blueLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + + if(recipe != null) { + this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); + this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); + intendedMaxPower = recipe.consumption * 20; + + if(canProcess(recipe)) { + this.progress++; + this.power -= this.consumption; + + if(progress >= processTime) { + this.progress = 0; + this.consumeItems(recipe); + + if(slots[3] == null) { + slots[3] = recipe.output.copy(); + } else { + slots[3].stackSize += recipe.output.stackSize; + } + + this.markDirty(); + } + + if(worldObj.getTotalWorldTime() % 2 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + NBTTagCompound dPart = new NBTTagCompound(); + dPart.setString("type", worldObj.getTotalWorldTime() % 20 == 0 ? "tau" : "hadron"); + dPart.setByte("count", (byte) 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, xCoord + 0.5 - dir.offsetX * 0.5, yCoord + 1.25, zCoord + 0.5 - dir.offsetZ * 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + } + + } else { + this.progress = 0; + } + + } else { + this.progress = 0; + this.consumption = 100; + intendedMaxPower = 2000; + } + + this.maxPower = Math.max(intendedMaxPower, power); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setLong("maxPower", maxPower); + data.setLong("consumption", consumption); + data.setInteger("progress", progress); + data.setInteger("processTime", processTime); + if(recipe != null) { + data.setInteger("display", Item.getIdFromItem(recipe.output.getItem())); + data.setInteger("displayMeta", recipe.output.getItemDamage()); + } + this.tank.writeToNBT(data, "t"); + this.networkPack(data, 25); + } + } + + public boolean canProcess(ArcWelderRecipe recipe) { + + if(this.power < this.consumption) return false; + + if(recipe.fluid != null) { + if(this.tank.getTankType() != recipe.fluid.type) return false; + if(this.tank.getFill() < recipe.fluid.fill) return false; + } + + if(slots[3] != null) { + if(slots[3].getItem() != recipe.output.getItem()) return false; + if(slots[3].getItemDamage() != recipe.output.getItemDamage()) return false; + if(slots[3].stackSize + recipe.output.stackSize > slots[3].getMaxStackSize()) return false; + } + + return true; + } + + public void consumeItems(ArcWelderRecipe recipe) { + + for(AStack aStack : recipe.ingredients) { + + for(int i = 0; i < 3; i++) { + ItemStack stack = slots[i]; + if(aStack.matchesRecipe(stack, true) && stack.stackSize >= aStack.stacksize) { + this.decrStackSize(i, aStack.stacksize); + break; + } + } + } + + if(recipe.fluid != null) { + this.tank.setFill(tank.getFill() - recipe.fluid.fill); + } + } + + protected DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir), + new DirPos(xCoord + dir.offsetX + rot.offsetX, yCoord, zCoord + dir.offsetZ + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX - rot.offsetX, yCoord, zCoord + dir.offsetZ - rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - dir.offsetX + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ + rot.offsetZ * 2, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ - rot.offsetZ * 2, rot.getOpposite()) + }; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.consumption = nbt.getLong("consumption"); + this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + + if(nbt.hasKey("display")) { + this.display = new ItemStack(Item.getItemById(nbt.getInteger("display")), 1, nbt.getInteger("displayMeta")); + } else { + this.display = null; + } + + this.tank.readFromNBT(nbt, "t"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + nbt.setInteger("progress", progress); + nbt.setInteger("processTime", processTime); + tank.writeToNBT(nbt, "t"); + } + + @Override + public long getPower() { + return Math.max(Math.min(power, maxPower), 0); + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot < 3; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot == 3; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 1, 3 }; + } + + @Override + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack) { + return slot < 3; + } + + @Override + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot < 3; + } + + @Override + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot == 3; + } + + @Override + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) { + BlockPos pos = new BlockPos(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + BlockPos core = new BlockPos(xCoord, yCoord, zCoord); + + //Red + if(pos.equals(core.clone().offset(rot)) || pos.equals(core.clone().offset(rot.getOpposite()).offset(dir.getOpposite()))) + return new int[] { 0, 3 }; + + //Yellow + if(pos.equals(core.clone().offset(dir.getOpposite()))) + return new int[] { 1, 3 }; + + //Green + if(pos.equals(core.clone().offset(rot.getOpposite())) || pos.equals(core.clone().offset(rot).offset(dir.getOpposite()))) + return new int[] { 2, 3 }; + + return new int[] { }; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineArcWelder(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineArcWelder(player.inventory, this); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_arc_welder)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 100 / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 452a614e9..b549a6335 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; @@ -14,6 +15,9 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IBatteryItem; @@ -25,11 +29,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase { +public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase implements IUpgradeInfoProvider { public int recipe = -1; @@ -211,16 +215,16 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase { } @Override - public ChunkCoordinates[] getInputPositions() { + public DirPos[] getInputPositions() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - return new ChunkCoordinates[] {new ChunkCoordinates(xCoord - dir.offsetX * 3 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ)}; + return new DirPos[] {new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ, dir.getOpposite())}; } @Override - public ChunkCoordinates[] getOutputPositions() { + public DirPos[] getOutputPositions() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - return new ChunkCoordinates[] {new ChunkCoordinates(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2)}; + return new DirPos[] {new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir)}; } @Override @@ -266,4 +270,33 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAssembler(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index aa5c7fec8..836b03f1d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -11,13 +11,14 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; import com.hbm.util.InventoryUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { @@ -145,27 +146,29 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa int template = getTemplateIndex(index); - ChunkCoordinates[] positions = getInputPositions(); + DirPos[] positions = getInputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { + for(DirPos coord : positions) { - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; boolean templateCrate = te instanceof TileEntityCrateTemplate; if(templateCrate && slots[template] == null) { - for(int i = 0; i < inv.getSizeInventory(); i++) { - ItemStack stack = inv.getStackInSlot(i); + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); - if(stack != null && stack.getItem() == ModItems.assembly_template && (sided == null || sided.canExtractItem(i, stack, 0))) { + if(stack != null && stack.getItem() == ModItems.assembly_template && (sided == null || sided.canExtractItem(slot, stack, 0))) { slots[template] = stack.copy(); - sided.setInventorySlotContents(i, null); + sided.setInventorySlotContents(slot, null); this.needsTemplateSwitch[index] = false; break; } @@ -186,16 +189,17 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa boolean found = false; - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { found = true; for(int j = indices[0]; j <= indices[1]; j++) { if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; continue outer; } @@ -206,14 +210,14 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); continue outer; } } } } - if(!found) return; + if(!found) break outer; } } } @@ -224,16 +228,18 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa private void unloadItems(int index) { - ChunkCoordinates[] positions = getOutputPositions(); + DirPos[] positions = getOutputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { + for(DirPos coord : positions) { - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; int i = indices[2]; ItemStack out = slots[i]; @@ -246,12 +252,14 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa if(out != null) { - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!(sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) continue; - ItemStack target = inv.getStackInSlot(j); + ItemStack target = inv.getStackInSlot(slot); if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { this.decrStackSize(i, 1); @@ -260,15 +268,17 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { ItemStack copy = out.copy(); copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); + inv.setInventorySlotContents(slot, copy); this.decrStackSize(i, 1); return; } @@ -277,6 +287,24 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + if(nbt.hasKey("progress")) this.progress = nbt.getIntArray("progress"); + if(nbt.hasKey("maxProgress")) this.maxProgress = nbt.getIntArray("maxProgress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + nbt.setIntArray("progress", progress); + nbt.setIntArray("maxProgress", maxProgress); + } @Override public long getPower() { @@ -296,7 +324,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa * @return A size 3 int array containing min input, max input and output indices in that order. */ public abstract int[] getSlotIndicesFromIndex(int index); - public abstract ChunkCoordinates[] getInputPositions(); - public abstract ChunkCoordinates[] getOutputPositions(); + public abstract DirPos[] getInputPositions(); + public abstract DirPos[] getOutputPositions(); public abstract int getPowerSlot(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index a7f8b6f1e..009bc53e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -1,8 +1,10 @@ package com.hbm.tileentity.machine; +import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerAssemfac; import com.hbm.inventory.fluid.Fluids; @@ -10,6 +12,9 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIAssemfac; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; @@ -21,11 +26,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver { +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IUpgradeInfoProvider { public AssemblerArm[] arms; @@ -351,11 +356,11 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im return new int[] { 5 + index * 14, 16 + index * 14, 18 + index * 14}; } - ChunkCoordinates[] inpos; - ChunkCoordinates[] outpos; + DirPos[] inpos; + DirPos[] outpos; @Override - public ChunkCoordinates[] getInputPositions() { + public DirPos[] getInputPositions() { if(inpos != null) return inpos; @@ -363,18 +368,18 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - inpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + inpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1, dir), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5, rot) }; return inpos; } @Override - public ChunkCoordinates[] getOutputPositions() { + public DirPos[] getOutputPositions() { if(outpos != null) return outpos; @@ -382,11 +387,11 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - outpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + outpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5, rot) }; return outpos; @@ -422,4 +427,33 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIAssemfac(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assemfac)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 15) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 6; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 12; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index 6b964c3a0..b93815fdb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -369,6 +369,10 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen } } + public void clear() { + for(int i = 0; i < this.getSizeInventory(); i++) this.setInventorySlotContents(i, null); + } + public static class ContainerBlank extends Container { @Override public void onCraftMatrixChanged(IInventory inventory) { } @Override public boolean canInteractWith(EntityPlayer player) { return false; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 8add21027..835324307 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCentrifuge; import com.hbm.inventory.gui.GUIMachineCentrifuge; @@ -9,7 +12,10 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.relauncher.Side; @@ -20,10 +26,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider { public int progress; public long power; @@ -307,4 +314,32 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCentrifuge(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_centrifuge)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 3; + return 0; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 539ea2f42..7f8a84d03 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerChemfac; import com.hbm.inventory.fluid.Fluids; @@ -13,6 +14,9 @@ import com.hbm.inventory.gui.GUIChemfac; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -23,11 +27,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { +public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider { float rotSpeed; public float rot; @@ -89,7 +93,7 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { this.speed -= speedLevel * 15; this.consumption += speedLevel * 300; this.speed += powerLevel * 5; - this.consumption -= powerLevel * 30; + this.consumption -= powerLevel * 20; this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); @@ -234,11 +238,11 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { return new int[] {5 + index * 9, 8 + index * 9, 9 + index * 9, 12 + index * 9}; } - ChunkCoordinates[] inpos; - ChunkCoordinates[] outpos; + DirPos[] inpos; + DirPos[] outpos; @Override - public ChunkCoordinates[] getInputPositions() { + public DirPos[] getInputPositions() { if(inpos != null) return inpos; @@ -246,18 +250,18 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - inpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + inpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1, dir), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5, rot) }; return inpos; } @Override - public ChunkCoordinates[] getOutputPositions() { + public DirPos[] getOutputPositions() { if(outpos != null) return outpos; @@ -265,11 +269,11 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - outpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + outpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5, rot) }; return outpos; @@ -347,4 +351,33 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIChemfac(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemfac)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 15) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 6; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 12; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 3da9f3833..00523e45b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.AStack; @@ -21,7 +22,10 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; @@ -38,10 +42,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -124,7 +129,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements this.speed -= speedLevel * 25; this.consumption += speedLevel * 300; this.speed += powerLevel * 5; - this.consumption -= powerLevel * 30; + this.consumption -= powerLevel * 20; this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); @@ -363,6 +368,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(dir.ordinal()) : null; for(AStack ingredient : recipe.inputs) { @@ -371,15 +377,17 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements boolean found = false; - for(int i = 0; i < inv.getSizeInventory(); i++) { + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { for(int j = 13; j <= 16; j++) { if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; continue outer; } @@ -390,14 +398,14 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); continue outer; } } } } - - if(!found) return; + + if(!found) break outer; } } } @@ -417,6 +425,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(te instanceof IInventory) { IInventory inv = (IInventory) te; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(dir.ordinal()) : null; for(int i = 5; i <= 8; i++) { @@ -424,12 +434,14 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(out != null) { - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - ItemStack target = inv.getStackInSlot(j); + ItemStack target = inv.getStackInSlot(slot); if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize()) { this.decrStackSize(i, 1); @@ -438,15 +450,17 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } } - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, dir.ordinal()) : inv.isItemValidForSlot(slot, out))) { ItemStack copy = out.copy(); copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); + inv.setInventorySlotContents(slot, copy); this.decrStackSize(i, 1); return; } @@ -645,4 +659,33 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineChemplant(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemplant)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 99e38f3e4..129a665fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -14,6 +14,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidUser; @@ -22,7 +23,6 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; /** * Base class for single and multi chemplants. @@ -202,17 +202,18 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa if(recipe != null) { - ChunkCoordinates[] positions = getInputPositions(); + DirPos[] positions = getInputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; for(AStack ingredient : recipe.inputs) { @@ -221,15 +222,16 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa boolean found = false; - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { for(int j = indices[0]; j <= indices[1]; j++) { if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; continue outer; } @@ -240,14 +242,14 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); continue outer; } } } } - - if(!found) return; + + if(!found) break outer; } } } @@ -257,17 +259,18 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa private void unloadItems(int index) { - ChunkCoordinates[] positions = getOutputPositions(); + DirPos[] positions = getOutputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; - //ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; for(int i = indices[2]; i <= indices[3]; i++) { @@ -275,12 +278,14 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa if(out != null) { - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - ItemStack target = inv.getStackInSlot(j); + ItemStack target = inv.getStackInSlot(slot); if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { this.decrStackSize(i, 1); @@ -289,15 +294,17 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } } - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { ItemStack copy = out.copy(); copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); + inv.setInventorySlotContents(slot, copy); this.decrStackSize(i, 1); return; } @@ -585,6 +592,6 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa * @return A size 4 int array containing min input, max input, min output and max output indices in that order. */ public abstract int[] getSlotIndicesFromIndex(int index); - public abstract ChunkCoordinates[] getInputPositions(); - public abstract ChunkCoordinates[] getOutputPositions(); + public abstract DirPos[] getInputPositions(); + public abstract DirPos[] getOutputPositions(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index b13e35d18..c616c9afc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -1,265 +1,33 @@ package com.hbm.tileentity.machine; -import java.io.IOException; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.TileEntityMachineBase; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; -import com.hbm.blocks.machine.MachineCoal; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.inventory.FluidContainerRegistry; -import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineCoal; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachinePolluting; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.inventory.Container; +import net.minecraft.entity.item.EntityItem; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCoal extends TileEntityMachinePolluting implements ISidedInventory, IEnergyGenerator, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider { - - public long power; - public int burnTime; - public static final long maxPower = 100000; - public FluidTank tank; - - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {0, 2}; - private static final int[] slots_side = new int[] {0, 2}; - - /* CONFIGURABLE CONSTANTS */ - public static int waterCap = 5000; - public static int genRate = 25; - public static double fuelMod = 0.5D; +@Deprecated +public class TileEntityMachineCoal extends TileEntityMachineBase implements ISidedInventory { public TileEntityMachineCoal() { - super(4, 50); - tank = new FluidTank(Fluids.WATER, waterCap, 0); + super(4); } @Override public String getName() { return "container.machineCoal"; } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0) - if(FluidContainerRegistry.getFluidContent(stack, Fluids.WATER) > 0) - return true; - if(i == 2) - if(stack.getItem() instanceof IBatteryItem) - return true; - if(i == 1) - if(TileEntityFurnace.getItemBurnTime(stack) > 0) - return true; - - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - this.power = nbt.getLong("powerTime"); - tank.readFromNBT(nbt, "water"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - tank.writeToNBT(nbt, "water"); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 0) - if(itemStack.getItem() == Items.bucket || itemStack.getItem() == ModItems.rod_empty || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty) - return true; - if(i == 2) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) - return true; - - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } @Override public void updateEntity() { if(!worldObj.isRemote) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - } - - this.subscribeToAllAround(Fluids.WATER, this); - - //Water - tank.loadTank(0, 3, slots); - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - //Battery Item - power = Library.chargeItemsFromTE(slots, 2, power, maxPower); - - boolean trigger = true; - - if(isItemValid() && this.burnTime == 0) { - trigger = false; - } - - if(trigger) { - MachineCoal.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - generate(); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("burnTime", burnTime); - tank.writeToNBT(data, "tank"); - this.networkPack(data, 15); + worldObj.setBlockToAir(xCoord, yCoord, zCoord); + EntityItem drop = new EntityItem(worldObj); + drop.setEntityItemStack(new ItemStack(ModBlocks.machine_wood_burner)); + drop.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + worldObj.spawnEntityInWorld(drop); } } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.burnTime = nbt.getInteger("burnTime"); - this.tank.readFromNBT(nbt, "tank"); - } - - public void generate() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0 && burnTime <= 0) - { - burnTime = (int) (TileEntityFurnace.getItemBurnTime(slots[1]) * fuelMod); - slots[1].stackSize -= 1; - if(slots[1].stackSize == 0) - { - if(slots[1].getItem().getContainerItem() != null) - slots[1] = new ItemStack(slots[1].getItem().getContainerItem()); - else - slots[1] = null; - } - } - - if(burnTime > 0) { - burnTime--; - - if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); - - if(tank.getFill() > 0) { - tank.setFill(tank.getFill() - 1); - - power += genRate; - - if(power > maxPower) - power = maxPower; - } - } - } - - public boolean isItemValid() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0) { - return true; - } - - return false; - } - - @Override - public long getPower() { - return power; - } - - @Override - public void setPower(long i) { - this.power = i; - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tank}; - } - - @Override - public FluidTank[] getSendingTanks() { - return this.getSmokeTanks(); - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; - } - - @Override - public String getConfigName() { - return "combustiongen"; - } - - @Override - public void readIfPresent(JsonObject obj) { - waterCap = IConfigurableMachine.grab(obj, "I:waterCapacity", waterCap); - genRate = IConfigurableMachine.grab(obj, "I:powerGen", genRate); - fuelMod = IConfigurableMachine.grab(obj, "D:burnTimeMod", fuelMod); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("I:waterCapacity").value(waterCap); - writer.name("I:powerGen").value(genRate); - writer.name("D:burnTimeMod").value(fuelMod); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineCoal(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineCoal(player.inventory, this); - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 89be677fc..9a05a00b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -1,6 +1,9 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCompressor; @@ -13,7 +16,10 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; @@ -26,11 +32,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver { +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider { public FluidTank[] tanks; public long power; @@ -84,7 +91,8 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(rec != null) timeBase = rec.duration; //there is a reason to do this but i'm not telling you - if(timeBase == this.processTimeBase) this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : timeBase; + // ^ a few months later i have to wonder what the fuck this guy was on about, and if i ever see him i will punch him in the nuts + if(rec == null) this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : timeBase; else this.processTime = timeBase / (speedLevel + 1); this.powerRequirement = this.powerRequirementBase / (powerLevel + 1); this.processTime = this.processTime / (overLevel + 1); @@ -328,4 +336,32 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_compressor)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + "Recipe: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level == 3 ? 90 : level == 2 ? 80 : level == 1 ? 40 : 0) + "%")); + info.add(EnumChatFormatting.GREEN + "Generic compression: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 7c19d40bb..bac1b5928 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -1,17 +1,25 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCrystallizer; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICrystallizer; import com.hbm.inventory.recipes.CrystallizerRecipes; import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; -import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IBatteryItem; @@ -26,10 +34,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 1000000; @@ -63,6 +72,8 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme tank.setType(7, slots); tank.loadTank(3, 4, slots); + UpgradeManager.eval(slots, 5, 6); + for(int i = 0; i < getCycleCount(); i++) { if(canProcess()) { @@ -101,6 +112,15 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } } } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 6.875, zCoord + 1).offset(dir.offsetX * 0.75 + rot.offsetX * 1.25, 0, dir.offsetZ * 0.75 + rot.offsetZ * 1.25)); + + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.isOnLadder = true; + } } private void updateConnections() { @@ -156,7 +176,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme else if(slots[2].stackSize + stack.stackSize <= slots[2].getMaxStackSize()) slots[2].stackSize += stack.stackSize; - tank.setFill(tank.getFill() - result.acidAmount); + tank.setFill(tank.getFill() - getRequiredAcid(result.acidAmount)); float freeChance = this.getFreeChance(); @@ -183,7 +203,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme if(slots[0].stackSize < result.itemAmount) return false; - if(tank.getFill() < result.acidAmount) return false; + if(tank.getFill() < getRequiredAcid(result.acidAmount)) return false; ItemStack stack = result.output.copy(); @@ -199,89 +219,39 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } public int getRequiredAcid(int base) { - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) - base *= 3; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) - base *= 4; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) - base *= 5; + int efficiency = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); + if(efficiency > 0) { + return base * (efficiency + 2); } - return base; } public float getFreeChance() { - - float chance = 0.0F; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) - chance += 0.05F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) - chance += 0.1F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) - chance += 0.15F; + int efficiency = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); + if(efficiency > 0) { + return Math.min(efficiency * 0.05F, 0.15F); } - - return Math.min(chance, 0.15F); + return 0; } public short getDuration() { - - float durationMod = 1; CrystallizerRecipe result = CrystallizerRecipes.getOutput(slots[0], tank.getTankType()); - int base = result != null ? result.duration : 600; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) - durationMod -= 0.25F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) - durationMod -= 0.50F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) - durationMod -= 0.75F; + int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + if(speed > 0) { + return (short) Math.ceil((base * Math.max(1F - 0.25F * speed, 0.25F))); } - - return (short) Math.ceil((base * Math.max(durationMod, 0.25F))); + return (short) base; } public int getPowerRequired() { - - int consumption = 0; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) - consumption += 1000; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) - consumption += 2000; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) - consumption += 3000; - } - - return (int) (demand + Math.min(consumption, 3000)); + int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + return (int) (demand + Math.min(speed * 1000, 3000)); } public float getCycleCount() { - - int cycles = 1; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_1) - cycles += 2; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_2) - cycles += 4; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_3) - cycles += 6; - } - - return Math.min(cycles, 4); + int speed = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + return Math.min(1 + speed * 2, 7); } public long getPowerScaled(int i) { @@ -388,4 +358,33 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrystallizer(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_crystallizer)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (level * 5) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_ACID, "+" + (level * 100 + 100) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.EFFECT) return 3; + if(type == UpgradeType.OVERDRIVE) return 2; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 0fa7a053f..9d30a9f22 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; +import java.util.Map.Entry; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityBlackHole; @@ -11,6 +11,8 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionThermo; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerMachineCyclotron; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -22,8 +24,10 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IConditionalInvAccess; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -39,8 +43,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess { public long power; public static final long maxPower = 100000000; @@ -58,8 +63,6 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public FluidTank coolant; public FluidTank amat; - - public List list = new ArrayList(); public TileEntityMachineCyclotron() { super(16); @@ -408,39 +411,11 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements return 0; } - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(xCoord + 3, yCoord, zCoord + 1, getTact(), type); - fillFluid(xCoord + 3, yCoord, zCoord - 1, getTact(), type); - fillFluid(xCoord - 3, yCoord, zCoord + 1, getTact(), type); - fillFluid(xCoord - 3, yCoord, zCoord - 1, getTact(), type); - - fillFluid(xCoord + 1, yCoord, zCoord + 3, getTact(), type); - fillFluid(xCoord - 1, yCoord, zCoord + 3, getTact(), type); - fillFluid(xCoord + 1, yCoord, zCoord - 3, getTact(), type); - fillFluid(xCoord - 1, yCoord, zCoord - 3, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return age >= 0 && age < 10; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } + @Override public void fillFluidInit(FluidType type) { } + @Override public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { } + @Override public boolean getTact() { return false; } + @Override public List getFluidList(FluidType type) { return null; } + @Override public void clearFluidList(FluidType type) { } @Override public int getMaxFluidFill(FluidType type) { @@ -559,4 +534,46 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCyclotron(player.inventory, this); } + + @Override + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack) { + + if(slot < 3) { + for(Entry, Pair> entry : CyclotronRecipes.recipes.entrySet()) { + if(entry.getKey().getKey().matchesRecipe(stack, true)) return true; + } + } else if(slot < 6) { + + for(Entry, Pair> entry : CyclotronRecipes.recipes.entrySet()) { + if(entry.getKey().getValue().matchesRecipe(stack, true)) return true; + } + } + + return false; + } + + @Override + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return this.isItemValidForSlot(x, y, z, slot, stack); + } + + @Override + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot >= 6 && slot <= 8; + } + + @Override + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) { + + for(int i = 2; i < 6; i++) { + ForgeDirection dir = ForgeDirection.getOrientation(i); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + if(x == xCoord + dir.offsetX * 2 + rot.offsetX && z == zCoord + dir.offsetZ * 2 + rot.offsetZ) return new int[] {0, 3, 6, 7, 8}; + if(x == xCoord + dir.offsetX * 2 && z == zCoord + dir.offsetZ * 2) return new int[] {1, 4, 6, 7, 8}; + if(x == xCoord + dir.offsetX * 2 - rot.offsetX && z == zCoord + dir.offsetZ * 2 - rot.offsetZ) return new int[] {2, 5, 6, 7, 8}; + } + + return new int[] {6, 7, 8}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java index e71df5eab..8f62d9f47 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java @@ -52,4 +52,9 @@ public class TileEntityMachineDetector extends TileEntityLoadedBase implements I return 5; } + @Override + public ConnectionPriority getPriority() { + return ConnectionPriority.HIGH; + } + } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index 01ba0af31..7e6b2c4cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineEPress; import com.hbm.inventory.gui.GUIMachineEPress; @@ -8,7 +11,9 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemStamp; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.relauncher.Side; @@ -19,10 +24,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider { public long power = 0; public final static long maxPower = 50000; @@ -254,4 +260,23 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineEPress(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_epress)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (50 * level / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 53e8c3f74..8626dcf6c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineElectricFurnace; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerElectricFurnace; @@ -7,7 +10,9 @@ import com.hbm.inventory.gui.GUIMachineElectricFurnace; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -20,10 +25,11 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IGUIProvider, IUpgradeInfoProvider { // HOLY FUCKING SHIT I SPENT 5 DAYS ON THIS SHITFUCK CLASS FILE // thanks Martin, vaer and Bob for the help @@ -263,4 +269,29 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineElectricFurnace(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electric_furnace_off)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 5ea2a2cbd..87ba3eb7f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -24,9 +24,11 @@ import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Compat; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; @@ -50,11 +52,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public static final long maxPower = 1_000_000; public long power; @@ -839,4 +842,28 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_excavator)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level / 2 + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java new file mode 100644 index 000000000..e8f98a245 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -0,0 +1,330 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.container.ContainerMachineExposureChamber; +import com.hbm.inventory.gui.GUIMachineExposureChamber; +import com.hbm.inventory.recipes.ExposureChamberRecipes; +import com.hbm.inventory.recipes.ExposureChamberRecipes.ExposureChamberRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyUser, IUpgradeInfoProvider { + + public long power; + public static final long maxPower = 1_000_000; + + public int progress; + public static final int processTimeBase = 200; + public int processTime = processTimeBase; + public static final int consumptionBase = 10_000; + public int consumption = consumptionBase; + public int savedParticles; + public static final int maxParticles = 8; + public boolean isOn = false; + public float rotation; + public float prevRotation; + + public TileEntityMachineExposureChamber() { + /* + * 0: Particle + * 1: Particle internal + * 2: Particle container + * 3: Ingredient + * 4: Output + * 5: Battery + * 6-7: Upgrades + */ + super(8); + } + + @Override + public String getName() { + return "container.exposureChamber"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.isOn = false; + this.power = Library.chargeTEFromItems(slots, 5, power, maxPower); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + UpgradeManager.eval(slots, 6, 7); + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + int overdriveLevel = Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3); + + this.consumption = this.consumptionBase; + + this.processTime = this.processTimeBase - this.processTimeBase / 4 * speedLevel; + this.consumption *= (speedLevel / 2 + 1); + this.processTime *= (powerLevel / 2 + 1); + this.consumption /= (powerLevel + 1); + this.processTime /= (overdriveLevel + 1); + this.consumption *= (overdriveLevel * 2 + 1); + + if(slots[1] == null && slots[0] != null && slots[3] != null && this.savedParticles <= 0) { + ExposureChamberRecipe recipe = this.getRecipe(slots[0], slots[3]); + + if(recipe != null) { + + ItemStack container = slots[0].getItem().getContainerItem(slots[0]); + + boolean canStore = false; + + if(container == null) { + canStore = true; + } else if(slots[2] == null) { + slots[2] = container.copy(); + canStore = true; + } else if(slots[2].getItem() == container.getItem() && slots[2].getItemDamage() == container.getItemDamage() && slots[2].stackSize < slots[2].getMaxStackSize()) { + slots[2].stackSize++; + canStore = true; + } + + if(canStore) { + slots[1] = slots[0].copy(); + slots[1].stackSize = 0; + this.decrStackSize(0, 1); + this.savedParticles = this.maxParticles; + } + } + } + + if(slots[1] != null && this.savedParticles > 0 && this.power >= this.consumption) { + ExposureChamberRecipe recipe = this.getRecipe(slots[1], slots[3]); + + if(recipe != null && (slots[4] == null || (slots[4].getItem() == recipe.output.getItem() && slots[4].getItemDamage() == recipe.output.getItemDamage() && slots[4].stackSize + recipe.output.stackSize <= slots[4].getMaxStackSize()))) { + this.progress++; + this.power -= this.consumption; + this.isOn = true; + + if(this.progress >= this.processTime) { + this.progress = 0; + this.savedParticles--; + this.decrStackSize(3, 1); + + if(slots[4] == null) { + slots[4] = recipe.output.copy(); + } else { + slots[4].stackSize += recipe.output.stackSize; + } + } + + } else { + this.progress = 0; + } + } else { + this.progress = 0; + } + + if(this.savedParticles <= 0) { + slots[1] = null; + } + + this.networkPackNT(50); + } else { + + this.prevRotation = this.rotation; + + if(this.isOn) { + + this.rotation += 10D; + + if(this.rotation >= 720D) { + this.rotation -= 720D; + this.prevRotation -= 720D; + } + } + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 7 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 7 + dir.offsetZ * 2, dir), + new DirPos(xCoord + rot.offsetX * 7 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 7 - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 8 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 8 + dir.offsetZ * 2, dir), + new DirPos(xCoord + rot.offsetX * 8 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 8 - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 9, yCoord, zCoord + rot.offsetZ * 9, rot) + }; + } + + public ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack ingredient) { + return ExposureChamberRecipes.getRecipe(particle, ingredient); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + + //will only load new capsules if there's no cached particles, this should prevent clogging + + //accept items when the slots are already partially filled, i.e. applicable + if(i == 0 && slots[0] != null) return true; + if(i == 3 && slots[3] != null) return true; + + //if there's no particle stored, use the un-consumed capsule for reference + ItemStack particle = slots[1] != null ? slots[1] : slots[0]; + + //if no particle is loaded and an ingot is present + if(i == 0 && particle == null && slots[3] != null) { + ExposureChamberRecipe recipe = getRecipe(stack, slots[3]); + return recipe != null; + } + + //if a particle is loaded but no ingot present + if(i == 3 && particle != null && slots[3] == null) { + ExposureChamberRecipe recipe = getRecipe(slots[0], stack); + return recipe != null; + } + + //if there's nothing at all, find a reference recipe and see if the item matches anything + if(particle == null && slots[3] == null) { + + for(ExposureChamberRecipe recipe : ExposureChamberRecipes.recipes) { + if(i == 0 && recipe.particle.matchesRecipe(stack, true)) return true; + if(i == 3 && recipe.ingredient.matchesRecipe(stack, true)) return true; + } + } + + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 2 || i == 4; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] {0, 2, 3, 4}; + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.isOn); + buf.writeInt(this.progress); + buf.writeInt(this.processTime); + buf.writeInt(this.consumption); + buf.writeLong(this.power); + buf.writeByte((byte) this.savedParticles); + } + + @Override + public void deserialize(ByteBuf buf) { + this.isOn = buf.readBoolean(); + this.progress = buf.readInt(); + this.processTime = buf.readInt(); + this.consumption = buf.readInt(); + this.power = buf.readLong(); + this.savedParticles = buf.readByte(); + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 8, + yCoord, + zCoord - 8, + xCoord + 9, + yCoord + 5, + zCoord + 9 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineExposureChamber(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineExposureChamber(player.inventory, this); + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_exposure_chamber)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 3; + return 0; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java new file mode 100644 index 000000000..ee40ccf8f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java @@ -0,0 +1,118 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.container.ContainerFunnel; +import com.hbm.inventory.gui.GUIFunnel; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter.InventoryCraftingAuto; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.world.World; + +public class TileEntityMachineFunnel extends TileEntityMachineBase implements IGUIProvider { + + public TileEntityMachineFunnel() { + super(18); + } + + @Override + public String getName() { + return "container.machineFunnel"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(int i = 0; i < 9; i++) { + + if(slots[i] != null) { + int stacksize = 9; + ItemStack compressed = slots[i].stackSize < 9 ? null : this.getFrom9(slots[i]); + if(compressed == null) { + compressed = slots[i].stackSize < 4 ? null : this.getFrom4(slots[i]); + stacksize = 4; + } + + if(compressed != null && slots[i].stackSize >= stacksize) { + if(slots[i + 9] == null) { + slots[i + 9] = compressed.copy(); + this.decrStackSize(i, stacksize); + } else if(slots[i + 9].getItem() == compressed.getItem() && slots[i + 9].getItemDamage() == compressed.getItemDamage() && slots[i + 9].stackSize + compressed.stackSize <= compressed.getMaxStackSize()) { + slots[i + 9].stackSize += compressed.stackSize; + this.decrStackSize(i, stacksize); + } + } + } + } + } + } + + public int[] topAccess = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; + public int[] bottomAccess = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 ? bottomAccess : topAccess; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + if(j == 0) return i > 8; + return j != 1 && i < 9; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot > 8) return false; + return this.getFrom9(stack) != null || this.getFrom4(stack) != null; + } + + protected InventoryCraftingAuto craftingInventory = new InventoryCraftingAuto(3, 3); + + public ItemStack getFrom4(ItemStack ingredient) { + this.craftingInventory.clear(); + this.craftingInventory.setInventorySlotContents(0, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(1, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(3, ingredient.copy()); + this.craftingInventory.setInventorySlotContents(4, ingredient.copy()); + return getMatch(this.craftingInventory); + } + + public ItemStack getFrom9(ItemStack ingredient) { + this.craftingInventory.clear(); + for(int i = 0; i < 9; i++) this.craftingInventory.setInventorySlotContents(i, ingredient.copy()); + return getMatch(this.craftingInventory); + } + + public ItemStack getMatch(InventoryCrafting grid) { + for(Object o : CraftingManager.getInstance().getRecipeList()) { + IRecipe recipe = (IRecipe) o; + + if(recipe.matches(grid, worldObj)) { + return recipe.getCraftingResult(grid); + } + } + return null; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerFunnel(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIFunnel(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index ac797a691..eb993e4f7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -1,14 +1,12 @@ package com.hbm.tileentity.machine; -import java.util.HashMap; - import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerMachineGasCent; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineGasCent; +import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; @@ -36,7 +34,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; //epic! -public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider { public long power; public int progress; @@ -50,17 +48,9 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; - private static HashMap fluidConversions = new HashMap(); - - static { - fluidConversions.put(Fluids.UF6, PseudoFluidType.NUF6); - fluidConversions.put(Fluids.PUF6, PseudoFluidType.PF6); - fluidConversions.put(Fluids.WATZ, PseudoFluidType.MUD); - } - public TileEntityMachineGasCent() { super(7); - tank = new FluidTank(Fluids.UF6, 2000, 0); + tank = new FluidTank(Fluids.UF6, 2000); inputTank = new PseudoFluidTank(PseudoFluidType.NUF6, 8000); outputTank = new PseudoFluidTank(PseudoFluidType.LEUF6, 8000); } @@ -180,10 +170,11 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); - this.inputTank.setTankType(PseudoFluidType.valueOf(data.getString("inputType"))); - this.outputTank.setTankType(PseudoFluidType.valueOf(data.getString("outputType"))); + this.inputTank.setTankType(PseudoFluidType.types.get(data.getString("inputType"))); + this.outputTank.setTankType(PseudoFluidType.types.get(data.getString("outputType"))); this.inputTank.setFill(data.getInteger("inputFill")); this.outputTank.setFill(data.getInteger("outputFill")); + this.tank.readFromNBT(data, "t"); } @Override @@ -195,9 +186,8 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I power = Library.chargeTEFromItems(slots, 4, power, maxPower); setTankType(5); - tank.updateTank(this); - if(fluidConversions.containsValue(inputTank.getTankType())) { + if(GasCentrifugeRecipes.fluidConversions.containsValue(inputTank.getTankType())) { attemptConversion(); } @@ -246,8 +236,9 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I data.setBoolean("isProgressing", isProgressing); data.setInteger("inputFill", inputTank.getFill()); data.setInteger("outputFill", outputTank.getFill()); - data.setString("inputType", inputTank.getTankType().toString()); - data.setString("outputType", outputTank.getTankType().toString()); + data.setString("inputType", inputTank.getTankType().name); + data.setString("outputType", outputTank.getTankType().name); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); @@ -258,7 +249,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - if(fluidConversions.containsValue(inputTank.getTankType())) { + if(GasCentrifugeRecipes.fluidConversions.containsValue(inputTank.getTankType())) { this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } @@ -301,10 +292,10 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I if(slots[in] != null && slots[in].getItem() instanceof IItemFluidIdentifier) { IItemFluidIdentifier id = (IItemFluidIdentifier) slots[in].getItem(); - FluidType newType = id.getType(null, 0, 0, 0, slots[in]); + FluidType newType = id.getType(worldObj, xCoord, yCoord, zCoord, slots[in]); if(tank.getTankType() != newType) { - PseudoFluidType pseudo = fluidConversions.get(newType); + PseudoFluidType pseudo = GasCentrifugeRecipes.fluidConversions.get(newType); if(pseudo != null) { inputTank.setTankType(pseudo); @@ -316,32 +307,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } } - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public int getFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getMaxFill() : 0; - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; @@ -413,16 +378,16 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public void writeToNBT(NBTTagCompound nbt, String s) { nbt.setInteger(s, fluid); nbt.setInteger(s + "_max", maxFluid); - nbt.setString(s + "_type", type.toString()); + nbt.setString(s + "_type", type.name); } //Called by TE to load fillstate public void readFromNBT(NBTTagCompound nbt, String s) { fluid = nbt.getInteger(s); int max = nbt.getInteger(s + "_max"); - if(max > 0) - maxFluid = nbt.getInteger(s + "_max"); - type = PseudoFluidType.valueOf(nbt.getString(s + "_type")); + if(max > 0) maxFluid = nbt.getInteger(s + "_max"); + type = PseudoFluidType.types.get(nbt.getString(s + "_type")); + if(type == null) type = PseudoFluidType.NONE; } /* ______ ______ diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index f980ca60b..7cf0c451f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -61,11 +61,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public static int waterCap = 16000; public static int oilCap = 16000; public static int lubeCap = 4000; - public static int coalGenRate = 20; + public static int coalGenRate = 100; public static double rtgHeatMult = 0.15D; - public static double waterPowerMult = 1.0D; - public static double lubePowerMult = 1.5D; - public static double heatExponent = 1.15D; public static int waterRate = 10; public static int lubeRate = 1; public static long fluidHeatDiv = 1_000L; @@ -81,11 +78,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement waterCap = IConfigurableMachine.grab(obj, "I:waterCap", waterCap); oilCap = IConfigurableMachine.grab(obj, "I:oilCap", oilCap); lubeCap = IConfigurableMachine.grab(obj, "I:lubeCap", lubeCap); - coalGenRate = IConfigurableMachine.grab(obj, "I:solidFuelRate", coalGenRate); + coalGenRate = IConfigurableMachine.grab(obj, "I:solidFuelRate2", coalGenRate); rtgHeatMult = IConfigurableMachine.grab(obj, "D:rtgHeatMult", rtgHeatMult); - waterPowerMult = IConfigurableMachine.grab(obj, "D:waterPowerMult", waterPowerMult); - lubePowerMult = IConfigurableMachine.grab(obj, "D:lubePowerMult", lubePowerMult); - heatExponent = IConfigurableMachine.grab(obj, "D:heatExponent", heatExponent); waterRate = IConfigurableMachine.grab(obj, "I:waterRate", waterRate); lubeRate = IConfigurableMachine.grab(obj, "I:lubeRate", lubeRate); fluidHeatDiv = IConfigurableMachine.grab(obj, "D:fluidHeatDiv", fluidHeatDiv); @@ -97,11 +91,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement writer.name("I:waterCap").value(waterCap); writer.name("I:oilCap").value(oilCap); writer.name("I:lubeCap").value(lubeCap); - writer.name("I:solidFuelRate").value(coalGenRate); + writer.name("I:solidFuelRate2").value(coalGenRate); writer.name("D:rtgHeatMult").value(rtgHeatMult); - writer.name("D:waterPowerMult").value(waterPowerMult); - writer.name("D:lubePowerMult").value(lubePowerMult); - writer.name("D:heatExponent").value(heatExponent); writer.name("I:waterRate").value(waterRate); writer.name("I:lubeRate").value(lubeRate); writer.name("D:fluidHeatDiv").value(fluidHeatDiv); @@ -124,6 +115,9 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); return new DirPos[] { new DirPos(xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * -2, yCoord - 1, zCoord + dir.offsetZ * -2, ForgeDirection.DOWN), + new DirPos(xCoord + dir.offsetX * -1, yCoord - 1, zCoord + dir.offsetZ * -1, ForgeDirection.DOWN), + new DirPos(xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN), new DirPos(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, dir), }; } @@ -212,19 +206,20 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement if(this.spin > 0) { - int powerGen = this.spin; + double genMult = 0.5D; + if(this.tanks[0].getFill() >= 10) { - powerGen += this.spin * waterPowerMult; + genMult += 0.5D; this.tanks[0].setFill(this.tanks[0].getFill() - waterRate); } if(this.tanks[2].getFill() >= 1) { - powerGen += this.spin * lubePowerMult; + genMult += 0.25D; this.tanks[2].setFill(this.tanks[2].getFill() - lubeRate); } - this.power += Math.pow(powerGen, heatExponent); + this.power += this.spin * genMult; if(this.power > this.maxPower) this.power = this.maxPower; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 5f37053e9..acdc7ee38 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -21,8 +22,13 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -32,7 +38,8 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 100000000; @@ -280,6 +287,36 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme return new FluidTank[] {tanks[0]}; } + @Override + public String getComponentName() { + return "ntm_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineLargeTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 82076c1cf..89bfd1028 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -23,7 +23,10 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import api.hbm.block.IDrillInteraction; @@ -47,10 +50,11 @@ import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; @@ -714,4 +718,40 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMiningLaser(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE || type == UpgradeType.EFFECT || type == UpgradeType.FORTUNE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_mining_laser)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (100 * level / 16) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 * level / 16) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_RANGE, "+" + (2 * level) + "m")); + } + if(type == UpgradeType.FORTUNE) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_FORTUNE, "+" + level)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 12; + if(type == UpgradeType.POWER) return 12; + if(type == UpgradeType.EFFECT) return 12; + if(type == UpgradeType.FORTUNE) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index 4f62b9aa8..ffd1deccb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMixer; @@ -12,7 +15,10 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -25,9 +31,10 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver { +public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider { public long power; public static final long maxPower = 10_000; @@ -310,7 +317,34 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public void receiveControl(NBTTagCompound data) { - if(data.hasKey("toggle")) this.recipeIndex++; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_mixer)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 6; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java new file mode 100644 index 000000000..653064658 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java @@ -0,0 +1,203 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; +import java.util.HashSet; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; + +public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine { + + public static final HashSet validBlocks = new HashSet(); + + static { + validBlocks.add(Blocks.grass); + validBlocks.add(Blocks.dirt); + validBlocks.add(Blocks.sand); + validBlocks.add(Blocks.mycelium); + validBlocks.add(ModBlocks.waste_earth); + validBlocks.add(ModBlocks.dirt_dead); + validBlocks.add(ModBlocks.dirt_oily); + validBlocks.add(ModBlocks.sand_dirty); + validBlocks.add(ModBlocks.sand_dirty_red); + } + + public FluidTank water; + + public boolean isOn = false; + public float rotor; + public float lastRotor; + public boolean onGround = false; + public int groundCheckDelay = 0; + + public static int groundHeight = 70; + public static int groundDepth = 4; + public static int steamSpeed = 1_000; + public static int electricSpeed = 10_000; + + @Override + public String getConfigName() { + return "waterpump"; + } + + @Override + public void readIfPresent(JsonObject obj) { + groundHeight = IConfigurableMachine.grab(obj, "I:groundHeight", groundHeight); + groundDepth = IConfigurableMachine.grab(obj, "I:groundDepth", groundDepth); + steamSpeed = IConfigurableMachine.grab(obj, "I:steamSpeed", steamSpeed); + electricSpeed = IConfigurableMachine.grab(obj, "I:electricSpeed", electricSpeed); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:groundHeight").value(groundHeight); + writer.name("I:groundDepth").value(groundDepth); + writer.name("I:steamSpeed").value(steamSpeed); + writer.name("I:electricSpeed").value(electricSpeed); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(DirPos pos : getConPos()) { + if(water.getFill() > 0) this.sendFluid(water, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(groundCheckDelay > 0) { + groundCheckDelay--; + } else { + onGround = this.checkGround(); + } + + this.isOn = false; + if(this.canOperate() && yCoord <= groundHeight && onGround) { + this.isOn = true; + this.operate(); + } + + NBTTagCompound data = this.getSync(); + INBTPacketReceiver.networkPack(this, data, 150); + + } else { + + this.lastRotor = this.rotor; + if(this.isOn) this.rotor += 10F; + + if(this.rotor >= 360F) { + this.rotor -= 360F; + this.lastRotor -= 360F; + + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 0.5F, 0.75F); + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "game.neutral.swim.splash", 1F, 0.5F); + } + } + } + + protected boolean checkGround() { + + if(worldObj.provider.hasNoSky) return false; + + int validBlocks = 0; + int invalidBlocks = 0; + + for(int x = -1; x <= 1; x++) { + for(int y = -1; y >= -groundDepth; y--) { + for(int z = -1; z <= 1; z++) { + + Block b = worldObj.getBlock(xCoord + x, yCoord + y, zCoord + z); + + if(y == -1 && !b.isNormalCube()) return false; // first layer has to be full solid + + if(this.validBlocks.contains(b)) validBlocks++; + else invalidBlocks ++; + } + } + } + + return validBlocks >= invalidBlocks; // valid block count has to be at least 50% + } + + protected NBTTagCompound getSync() { + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isOn", isOn); + data.setBoolean("onGround", onGround); + water.writeToNBT(data, "w"); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.isOn = nbt.getBoolean("isOn"); + this.onGround = nbt.getBoolean("onGround"); + water.readFromNBT(nbt, "w"); + } + + protected abstract boolean canOperate(); + protected abstract void operate(); + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {water}; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {water}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[0]; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 5, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java new file mode 100644 index 000000000..25b22372d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java @@ -0,0 +1,69 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyUser { + + public long power; + public static final long maxPower = 10_000; + + public TileEntityMachinePumpElectric() { + super(); + water = new FluidTank(Fluids.WATER, electricSpeed * 100); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + super.updateEntity(); + } + + protected NBTTagCompound getSync() { + NBTTagCompound data = super.getSync(); + data.setLong("power", power); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); + } + + @Override + protected boolean canOperate() { + return power >= 1_000 && water.getFill() < water.getMaxFill(); + } + + @Override + protected void operate() { + this.power -= 1_000; + water.setFill(Math.min(water.getFill() + electricSpeed, water.getMaxFill())); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java new file mode 100644 index 000000000..d935cfbf4 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java @@ -0,0 +1,76 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase { + + public FluidTank steam; + public FluidTank lps; + + public TileEntityMachinePumpSteam() { + super(); + water = new FluidTank(Fluids.WATER, steamSpeed * 100); + steam = new FluidTank(Fluids.STEAM, 1_000); + lps = new FluidTank(Fluids.SPENTSTEAM, 10); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(DirPos pos : getConPos()) { + this.trySubscribe(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(lps.getFill() > 0) { + this.sendFluid(lps, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + super.updateEntity(); + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {water, steam, lps}; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {water, lps}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {steam}; + } + + protected NBTTagCompound getSync() { + NBTTagCompound data = super.getSync(); + steam.writeToNBT(data, "s"); + lps.writeToNBT(data, "l"); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + steam.readFromNBT(nbt, "s"); + lps.readFromNBT(nbt, "l"); + } + + @Override + protected boolean canOperate() { + return steam.getFill() >= 100 && lps.getMaxFill() - lps.getFill() > 0 && water.getFill() < water.getMaxFill(); + } + + @Override + protected void operate() { + steam.setFill(steam.getFill() - 100); + lps.setFill(lps.getFill() + 1); + water.setFill(Math.min(water.getFill() + steamSpeed, water.getMaxFill())); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 63f6ec905..4e386f468 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -209,7 +209,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided if(!worldObj.isRemote) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir.getOpposite()); + this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); heat = RTGUtil.updateRTGs(slots, slot_io); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index 6549a7e90..c9a3fe5b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -212,15 +212,15 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE static { for(int i = 0; i < ItemWasteShort.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(150, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(15, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(1500, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(150, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); } for(int i = 0; i < ItemWasteLong.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(50, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(5, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(500, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(50, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); } - fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(5, 5 * 60 * 20, null)); + fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(50, 5 * 60 * 20, null)); } private Triplet grabResult(ItemStack stack) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java deleted file mode 100644 index 074ce8f29..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ /dev/null @@ -1,351 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.WeaponConfig; -import com.hbm.extprop.HbmLivingProps; -import com.hbm.inventory.container.ContainerMachineRadar; -import com.hbm.inventory.gui.GUIMachineRadar; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityTickingBase; - -import api.hbm.energy.IEnergyUser; -import api.hbm.entity.IRadarDetectable; -import api.hbm.entity.IRadarDetectable.RadarTargetType; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; - -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineRadar extends TileEntityTickingBase implements IEnergyUser, IGUIProvider, SimpleComponent { - - public List entList = new ArrayList(); - public List nearbyMissiles = new ArrayList(); - int pingTimer = 0; - int lastPower; - final static int maxTimer = 80; - - public boolean scanMissiles = true; - public boolean scanPlayers = true; - public boolean smartMode = true; - public boolean redMode = true; - - public boolean jammed = false; - - public float prevRotation; - public float rotation; - - public long power = 0; - public static final int maxPower = 100000; - - @Override - public String getInventoryName() { - return ""; - } - - @Override - public void updateEntity() { - - if(this.yCoord < WeaponConfig.radarAltitude) - return; - - if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); - - nearbyMissiles.clear(); - - if(power > 0) { - - allocateMissiles(); - - power -= 500; - - if(power < 0) - power = 0; - } - - if(this.lastPower != getRedPower()) - worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); - - sendMissileData(); - lastPower = getRedPower(); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { - - pingTimer++; - - if(power > 0 && pingTimer >= maxTimer) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); - pingTimer = 0; - } - } - } else { - - prevRotation = rotation; - - if(power > 0) { - rotation += 5F; - } - - if(rotation >= 360) { - rotation -= 360F; - prevRotation -= 360F; - } - } - } - - public void handleButtonPacket(int value, int meta) { - - switch(meta) { - case 0: this.scanMissiles = !this.scanMissiles; break; - case 1: this.scanPlayers = !this.scanPlayers; break; - case 2: this.smartMode = !this.smartMode; break; - case 3: this.redMode = !this.redMode; break; - } - } - - private void allocateMissiles() { - - nearbyMissiles.clear(); - entList.clear(); - jammed = false; - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - WeaponConfig.radarRange, 0, zCoord + 0.5 - WeaponConfig.radarRange, xCoord + 0.5 + WeaponConfig.radarRange, 5000, zCoord + 0.5 + WeaponConfig.radarRange)); - - for(Entity e : list) { - - if(e.posY < yCoord + WeaponConfig.radarBuffer) - continue; - - if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { - this.jammed = true; - nearbyMissiles.clear(); - entList.clear(); - return; - } - - if(e instanceof EntityPlayer && this.scanPlayers) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, RadarTargetType.PLAYER.ordinal(), (int)e.posY }); - entList.add(e); - } - - if(e instanceof IRadarDetectable && this.scanMissiles) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, ((IRadarDetectable)e).getTargetType().ordinal(), (int)e.posY }); - - if(!this.smartMode || e.motionY <= 0) - entList.add(e); - } - } - } - - public int getRedPower() { - - if(!entList.isEmpty()) { - - /// PROXIMITY /// - if(redMode) { - - double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); - - int power = 0; - - for(int i = 0; i < entList.size(); i++) { - - Entity e = entList.get(i); - double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); - int p = 15 - (int)Math.floor(dist / maxRange * 15); - - if(p > power) - power = p; - } - - return power; - - /// TIER /// - } else { - - int power = 0; - - for(int i = 0; i < nearbyMissiles.size(); i++) { - - if(nearbyMissiles.get(i)[2] + 1 > power) { - power = nearbyMissiles.get(i)[2] + 1; - } - } - - return power; - } - } - - return 0; - } - - private void sendMissileData() { - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setBoolean("scanMissiles", scanMissiles); - data.setBoolean("scanPlayers", scanPlayers); - data.setBoolean("smartMode", smartMode); - data.setBoolean("redMode", redMode); - data.setBoolean("jammed", jammed); - data.setInteger("count", this.nearbyMissiles.size()); - - for(int i = 0; i < this.nearbyMissiles.size(); i++) { - data.setInteger("x" + i, this.nearbyMissiles.get(i)[0]); - data.setInteger("z" + i, this.nearbyMissiles.get(i)[1]); - data.setInteger("type" + i, this.nearbyMissiles.get(i)[2]); - data.setInteger("y" + i, this.nearbyMissiles.get(i)[3]); - } - - this.networkPack(data, 15); - } - - public void networkUnpack(NBTTagCompound data) { - - this.nearbyMissiles.clear(); - this.power = data.getLong("power"); - this.scanMissiles = data.getBoolean("scanMissiles"); - this.scanPlayers = data.getBoolean("scanPlayers"); - this.smartMode = data.getBoolean("smartMode"); - this.redMode = data.getBoolean("redMode"); - this.jammed = data.getBoolean("jammed"); - - int count = data.getInteger("count"); - - for(int i = 0; i < count; i++) { - - int x = data.getInteger("x" + i); - int z = data.getInteger("z" + i); - int type = data.getInteger("type" + i); - int y = data.getInteger("y" + i); - - this.nearbyMissiles.add(new int[] {x, z, type, y}); - } - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("power"); - this.scanMissiles = nbt.getBoolean("scanMissiles"); - this.scanPlayers = nbt.getBoolean("scanPlayers"); - this.smartMode = nbt.getBoolean("smartMode"); - this.redMode = nbt.getBoolean("redMode"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - nbt.setBoolean("scanMissiles", scanMissiles); - nbt.setBoolean("scanPlayers", scanPlayers); - nbt.setBoolean("smartMode", smartMode); - nbt.setBoolean("redMode", redMode); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - // do some opencomputer stuff - - @Override - public String getComponentName() { - return "ntm_radar"; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyInfo(Context context, Arguments args) { - return new Object[] {getPower(), getMaxPower()}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] isJammed(Context context, Arguments args) { - return new Object[] {jammed}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getEntities(Context context, Arguments args) { //fuck fuck fuck - if(!jammed) { - List list = new ArrayList(); - list.add(entList.size()); // small header of how many entities in the list - for (Entity e : entList) { - list.add(e.posX); // positions - list.add(e.posY); - list.add(e.posZ); - list.add(e.motionX); - list.add(e.motionY); - list.add(e.motionZ); - list.add(e.rotationYaw); // just do rotation so you can calculate DOT - list.add(Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2))); // distance - boolean player = e instanceof EntityPlayer; - list.add(player); // isPlayer boolean - if(!player) // missile tier - list.add(((IRadarDetectable) e).getTargetType().ordinal()); - else // player name (hopefully) - list.add(((EntityPlayer) e).getDisplayName()); - } - return new Object[] {list}; // long-ass list (like 9 entries per entity) - } else { - return new Object[] {"Radar jammed!"}; - } - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineRadar(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineRadar(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java new file mode 100644 index 000000000..d3bdc3ff1 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -0,0 +1,567 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.config.WeaponConfig; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerMachineRadarNT; +import com.hbm.inventory.gui.GUIMachineRadarNT; +import com.hbm.inventory.gui.GUIMachineRadarNTSlots; +import com.hbm.items.ISatChip; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemCoordinateBase; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.SatelliteLaser; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Triplet; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.world.WorldUtil; + +import api.hbm.energy.IEnergyUser; +import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; +import api.hbm.entity.IRadarDetectableNT.RadarScanParams; +import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +/** + * Now with SmЯt™ lag-free entity detection! (patent pending) + * @author hbm + */ +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IConfigurableMachine, IControlReceiver { + + public boolean scanMissiles = true; + public boolean scanShells = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + public boolean redMode = true; + public boolean showMap = false; + + public boolean jammed = false; + + public float prevRotation; + public float rotation; + + public long power = 0; + + protected int pingTimer = 0; + protected int lastPower; + protected final static int maxTimer = 80; + + public static int maxPower = 100_000; + public static int consumption = 500; + public static int radarRange = 1_000; + public static int radarBuffer = 30; + public static int radarAltitude = 55; + public static int chunkLoadCap = 10; + public static boolean generateChunks = false; + + public byte[] map = new byte[40_000]; + public boolean clearFlag = false; + + public List entries = new ArrayList(); + + @Override + public String getConfigName() { + return "radar"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); + consumption = IConfigurableMachine.grab(obj, "L:consumption", consumption); + radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); + radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); + radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); + chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap); + generateChunks = IConfigurableMachine.grab(obj, "B:generateChunks", generateChunks); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:powerCap").value(maxPower); + writer.name("L:consumption").value(consumption); + writer.name("I:radarRange").value(radarRange); + writer.name("I:radarBuffer").value(radarBuffer); + writer.name("I:radarAltitude").value(radarAltitude); + writer.name("B:generateChunks").value(generateChunks); + } + + public TileEntityMachineRadarNT() { + super(10); + } + + @Override + public String getName() { + return "container.radar"; + } + + @Override + public void updateEntity() { + + if(this.map == null || this.map.length != 40_000) this.map = new byte[40_000]; + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 9, power, maxPower); + + if(worldObj.getTotalWorldTime() % 20 == 0) this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + this.jammed = false; + allocateTargets(); + + if(this.lastPower != getRedPower()) { + this.markDirty(); + } + lastPower = getRedPower(); + + if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { + + pingTimer++; + + if(power > 0 && pingTimer >= maxTimer) { + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); + pingTimer = 0; + } + } + + if(this.showMap) { + int chunkLoads = 0; + for(int i = 0; i < 100; i++) { + int index = (int) (worldObj.getTotalWorldTime() % 400) * 100 + i; + int iX = (index % 200) * radarRange * 2 / 200; + int iZ = index / 200 * radarRange * 2 / 200; + + int x = xCoord - radarRange + iX; + int z = zCoord - radarRange + iZ; + + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) { + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + } else { + if(this.map[index] == 0 && chunkLoads < chunkLoadCap) { + if(this.generateChunks) { + worldObj.getChunkFromChunkCoords(x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + chunkLoads++; + } else { + WorldUtil.provideChunk((WorldServer) worldObj, x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) chunkLoads++; + } + } + } + } + } + + if(slots[8] != null && slots[8].getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(slots[8]); + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof TileEntityMachineRadarScreen) { + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) tile; + screen.entries.clear(); + screen.entries.addAll(this.entries); + screen.refX = xCoord; + screen.refY = yCoord; + screen.refZ = zCoord; + screen.linked = true; + } + } + } + + this.networkPackNT(50); + if(this.clearFlag) { + this.map = new byte[40_000]; + this.clearFlag = false; + } + } else { + prevRotation = rotation; + if(power > 0) rotation += 5F; + + if(rotation >= 360) { + rotation -= 360F; + prevRotation -= 360F; + } + } + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeLong(this.power); + buf.writeBoolean(this.scanMissiles); + buf.writeBoolean(this.scanShells); + buf.writeBoolean(this.scanPlayers); + buf.writeBoolean(this.smartMode); + buf.writeBoolean(this.redMode); + buf.writeBoolean(this.showMap); + buf.writeBoolean(this.jammed); + buf.writeInt(entries.size()); + for(RadarEntry entry : entries) entry.toBytes(buf); + if(this.clearFlag) { + buf.writeBoolean(true); + } else { + buf.writeBoolean(false); + if(this.showMap) { + buf.writeBoolean(true); + short index = (short) (worldObj.getTotalWorldTime() % 400); + buf.writeShort(index); + for(int i = index * 100; i < (index + 1) * 100; i++) { + buf.writeByte(this.map[i]); + } + } else { + buf.writeBoolean(false); + } + } + } + + @Override + public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.scanMissiles = buf.readBoolean(); + this.scanShells = buf.readBoolean(); + this.scanPlayers = buf.readBoolean(); + this.smartMode = buf.readBoolean(); + this.redMode = buf.readBoolean(); + this.showMap = buf.readBoolean(); + this.jammed = buf.readBoolean(); + int count = buf.readInt(); + this.entries.clear(); + for(int i = 0; i < count; i++) { + RadarEntry entry = new RadarEntry(); + entry.fromBytes(buf); + this.entries.add(entry); + } + if(buf.readBoolean()) { // clear flag + this.map = new byte[40_000]; + } else { + if(buf.readBoolean()) { // map enabled + int index = buf.readShort(); + for(int i = index * 100; i < (index + 1) * 100; i++) { + this.map[i] = buf.readByte(); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.scanMissiles = nbt.getBoolean("scanMissiles"); + this.scanShells = nbt.getBoolean("scanShells"); + this.scanPlayers = nbt.getBoolean("scanPlayers"); + this.smartMode = nbt.getBoolean("smartMode"); + this.redMode = nbt.getBoolean("redMode"); + this.showMap = nbt.getBoolean("showMap"); + if(nbt.hasKey("map")) this.map = nbt.getByteArray("map"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setBoolean("scanMissiles", scanMissiles); + nbt.setBoolean("scanShells", scanShells); + nbt.setBoolean("scanPlayers", scanPlayers); + nbt.setBoolean("smartMode", smartMode); + nbt.setBoolean("redMode", redMode); + nbt.setBoolean("showMap", showMap); + nbt.setByteArray("map", map); + } + + protected void allocateTargets() { + this.entries.clear(); + + if(this.yCoord < radarAltitude) return; + if(this.power < consumption) return; + this.power -= consumption; + + int scan = this.scanRange(); + + RadarScanParams params = new RadarScanParams(this.scanMissiles, this.scanShells, this.scanPlayers, this.smartMode); + + for(Entity e : matchingEntities) { + + if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord > radarBuffer) { + + if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { + this.jammed = true; + entries.clear(); + return; + } + + for(Function, RadarEntry> converter : converters) { + + RadarEntry entry = converter.apply(new Triplet(e, this, params)); + if(entry != null) { + this.entries.add(entry); + break; + } + } + } + } + } + + public int getRedPower() { + + if(!entries.isEmpty()) { + + /// PROXIMITY /// + if(redMode) { + + double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + RadarEntry e = entries.get(i); + if(!e.redstone) continue; + double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); + int p = 15 - (int)Math.floor(dist / maxRange * 15); + + if(p > power) power = p; + } + + return power; + + /// TIER /// + } else { + + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + RadarEntry e = entries.get(i); + if(!e.redstone) continue; + if(e.blipLevel + 1 > power) { + power = e.blipLevel + 1; + } + } + + return power; + } + } + + return 0; + } + + protected int scanRange() { + return radarRange; + } + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override public void receiveControl(NBTTagCompound data) { } + + @Override + public void receiveControl(EntityPlayer player, NBTTagCompound data) { + + if(data.hasKey("missiles")) this.scanMissiles = !this.scanMissiles; + if(data.hasKey("shells")) this.scanShells = !this.scanShells; + if(data.hasKey("players")) this.scanPlayers = !this.scanPlayers; + if(data.hasKey("smart")) this.smartMode = !this.smartMode; + if(data.hasKey("red")) this.redMode = !this.redMode; + if(data.hasKey("map")) this.showMap = !this.showMap; + if(data.hasKey("clear")) this.clearFlag = true; + + if(data.hasKey("gui1")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 1, worldObj, xCoord, yCoord, zCoord); + + if(data.hasKey("link")) { + int id = data.getInteger("link"); + ItemStack link = slots[id]; + + if(link != null && link.getItem() == ModItems.sat_relay) { + World world = player.getEntityWorld(); + Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(ISatChip.getFreqS(link)); + if(sat instanceof SatelliteLaser) { + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onClick(world, x, z); + } + } + + + } + if(link != null && link.getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(link); + + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof IRadarCommandReceiver) { + IRadarCommandReceiver rec = (IRadarCommandReceiver) tile; + + if(data.hasKey("launchEntity")) { + Entity entity = worldObj.getEntityByID(data.getInteger("launchEntity")); + if(entity != null) { + if(rec.sendCommandEntity(entity)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } else if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + if(rec.sendCommandPosition(x, yCoord, z)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } + } + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistance(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 1) return new ContainerMachineRadarNT(player.inventory, this); + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 0) return new GUIMachineRadarNT(this); + if(ID == 1) return new GUIMachineRadarNTSlots(player.inventory, this); + return null; + } + + /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry + The converters coming first have the highest priority */ + public static List, RadarEntry>> converters = new ArrayList(); + public static List classes = new ArrayList(); + public static List matchingEntities = new ArrayList(); + + /** + * Iterates over every entity in the world and add them to the matchingEntities list if the class is in the detectable list + * From this compiled list, radars can easily grab the required entities since we can assume that the total amount of detectable entities is comparatively low + */ + public static void updateSystem() { + matchingEntities.clear(); + + for(WorldServer world : MinecraftServer.getServer().worldServers) { + for(Object entity : world.loadedEntityList) { + for(Class clazz : classes) { + if(clazz.isAssignableFrom(entity.getClass())) { + matchingEntities.add((Entity) entity); + break; + } + } + } + } + } + + /** Registers a class that if an entity inherits that class, it is picked up by the system */ + public static void registerEntityClasses() { + classes.add(IRadarDetectableNT.class); + classes.add(IRadarDetectable.class); + classes.add(EntityPlayer.class); + } + + /** Registers converters. Converters are used to go over the list of detected entities and turn them into a RadarEntry using the entity instance and the radar's instance. */ + public static void registerConverters() { + //IRadarDetectableNT + converters.add(x -> { + Entity e = x.getX(); + if(e instanceof IRadarDetectableNT) { + IRadarDetectableNT detectable = (IRadarDetectableNT) e; + if(detectable.canBeSeenBy(x.getY()) && detectable.paramsApplicable(x.getZ())) return new RadarEntry(detectable, e, detectable.suppliesRedstone(x.getZ())); + } + return null; + }); + //IRadarDetectable, Legacy + converters.add(x -> { + Entity e = x.getX(); + RadarScanParams params = x.getZ(); + if(e instanceof IRadarDetectable && params.scanMissiles) { + return new RadarEntry((IRadarDetectable) e, e); + } + return null; + }); + //Players + converters.add(x -> { + if(x.getX() instanceof EntityPlayer && x.getZ().scanPlayers) return new RadarEntry((EntityPlayer) x.getX()); + return null; + }); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java new file mode 100644 index 000000000..663b6835a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java @@ -0,0 +1,89 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.packet.BufPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; + +import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineRadarScreen extends TileEntity implements IBufPacketReceiver { + + public List entries = new ArrayList(); + public int refX; + public int refY; + public int refZ; + public boolean linked; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + this.networkPackNT(100); + entries.clear(); + this.linked = false; + } + } + + public void networkPackNT(int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(linked); + buf.writeInt(refX); + buf.writeInt(refY); + buf.writeInt(refZ); + buf.writeInt(entries.size()); + for(RadarEntry entry : entries) entry.toBytes(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + linked = buf.readBoolean(); + refX = buf.readInt(); + refY = buf.readInt(); + refZ = buf.readInt(); + int count = buf.readInt(); + this.entries.clear(); + for(int i = 0; i < count; i++) { + RadarEntry entry = new RadarEntry(); + entry.fromBytes(buf); + this.entries.add(entry); + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index ba08db645..bed920b68 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -6,7 +6,6 @@ import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator; import com.hbm.inventory.gui.GUIMachineSchrabidiumTransmutator; import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCapacitor; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; @@ -89,7 +88,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(stack) <= 0) || stack.getItem() == ModItems.euphemium_capacitor) { + if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage()) || stack.getItem() == ModItems.euphemium_capacitor) { return true; } @@ -115,7 +114,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB public boolean canProcess() { if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], OreDictManager.U.ingot()) && slots[2] != null - && (slots[2].getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(slots[2]) > 0 || slots[2].getItem() == ModItems.euphemium_capacitor) + && (slots[2].getItem() == ModItems.redcoil_capacitor && slots[2].getItemDamage() < slots[2].getMaxDamage() || slots[2].getItem() == ModItems.euphemium_capacitor) && (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem() && slots[1].stackSize < slots[1].getMaxStackSize()))) { return true; @@ -146,7 +145,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB slots[1].stackSize++; } if (slots[2] != null && slots[2].getItem() == ModItems.redcoil_capacitor) { - ItemCapacitor.setDura(slots[2], ItemCapacitor.getDura(slots[2]) - 1); + slots[2].setItemDamage(slots[2].getItemDamage() + 1); } this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "ambient.weather.thunder", 10000.0F, diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index eb4d3f731..1845c5e72 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -22,9 +23,14 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -35,7 +41,8 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { private ItemStack slots[]; @@ -376,6 +383,36 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return tanks; } + @Override + public String getComponentName() { + return "ntm_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index b98d7daf0..21bb03777 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -18,12 +18,17 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -33,7 +38,8 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 1000000L; @@ -69,7 +75,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl //TODO particles from heat exchanger maybe? maybe in a future public TileEntityMachineTurbineGas() { - super(2, 200); + super(2); this.tanks = new FluidTank[4]; tanks[0] = new FluidTank(Fluids.GAS, 100000); tanks[1] = new FluidTank(Fluids.LUBRICANT, 16000); @@ -137,9 +143,6 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl for(int i = 0; i < 2; i++) { //fuel and lube this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()); this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir); - - this.sendSmoke(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()); - this.sendSmoke(xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir); } //water this.trySubscribe(tanks[2].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX * -4, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * -4, dir.getOpposite()); @@ -303,7 +306,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl } double consumption = fuelMaxCons.containsKey(tanks[0].getTankType()) ? fuelMaxCons.get(tanks[0].getTankType()) : 5D; - if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (float) consumption * 0.25F); + if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); makePower(consumption, throttle); } @@ -536,7 +539,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] { tanks[3], smoke, smoke_leaded, smoke_poison }; + return new FluidTank[] { tanks[3] }; } @Override @@ -549,6 +552,92 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl return dir != ForgeDirection.DOWN; } + @Override + public String getComponentName() { + return "ntm_gas_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] { + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill() + }; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return new Object[] {tanks[0].getTankType().getName()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getThrottle(Context context, Arguments args) { + return new Object[] {throttle}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getState(Context context, Arguments args) { + return new Object[] {state}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getAuto(Context context, Arguments args) { + return new Object[] {autoMode}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setThrottle(Context context, Arguments args) { + throttle = args.checkInteger(0); + return new Object[] {true}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setAuto(Context context, Arguments args) { + autoMode = args.checkBoolean(0); + return new Object[] {true}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] start(Context context, Arguments args) { + stopIfNotReady(); + startup(); + return new Object[] {true}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] stop(Context context, Arguments args) { + shutdown(); + return new Object[] {true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + + return new Object[] {throttle, state, + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill()}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbineGas(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 53e056569..4c7e068b3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -26,7 +26,9 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; @@ -43,10 +45,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 1_000_000; @@ -162,7 +165,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem if(amountToBurn > 0) { this.wasOn = true; this.tank.setFill(this.tank.getFill() - amountToBurn); - this.power += burnValue * amountToBurn; + this.power += burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4)); if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * amountToBurn); } @@ -488,4 +491,24 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineTurbofan(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.AFTERBURN; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_turbofan)); + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (int)(level * 100 * (1 + Math.min(level / 3D, 4D))) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.AFTERBURN) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java new file mode 100644 index 000000000..42510532f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -0,0 +1,303 @@ +package com.hbm.tileentity.machine; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.container.ContainerMachineWoodBurner; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.gui.GUIMachineWoodBurner; +import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.lib.Library; +import com.hbm.module.ModuleBurnTime; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyGenerator; +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyGenerator, IGUIProvider { + + public long power; + public static final long maxPower = 100_000; + public int burnTime; + public int maxBurnTime; + public boolean liquidBurn = false; + public boolean isOn = false; + + public FluidTank tank; + + public static ModuleBurnTime burnModule = new ModuleBurnTime().setLogTimeMod(4).setWoodTimeMod(2); + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + + public TileEntityMachineWoodBurner() { + super(6); + this.tank = new FluidTank(Fluids.WOODOIL, 16_000); + } + + @Override + public String getName() { + return "container.machineWoodBurner"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.tank.setType(2, slots); + this.tank.loadTank(3, 4, slots); + this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower); + + for(DirPos pos : getConPos()) { + if(power > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(!liquidBurn) { + + if(this.burnTime <= 0) { + + if(slots[0] != null) { + int burn = this.burnModule.getBurnTime(slots[0]); + if(burn > 0) { + EnumAshType type = TileEntityFireboxBase.getAshFromFuel(slots[0]); + if(type == EnumAshType.WOOD) ashLevelWood += burn; + if(type == EnumAshType.COAL) ashLevelCoal += burn; + if(type == EnumAshType.MISC) ashLevelMisc += burn; + int threshold = 2000; + if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; + if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; + if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + + this.maxBurnTime = this.burnTime = burn; + this.decrStackSize(0, 1); + this.markChanged(); + } + } + + } else if(this.power < this.maxPower && isOn){ + this.burnTime--; + this.power += 100; + if(power > maxPower) this.power = this.maxPower; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + } + + } else { + + if(this.power < this.maxPower && tank.getFill() > 0 && isOn) { + FT_Flammable trait = tank.getTankType().getTrait(FT_Flammable.class); + + if(trait != null) { + + int toBurn = Math.min(tank.getFill(), 2); + + if(toBurn > 0) { + this.power += trait.getHeatEnergy() * toBurn / 2_000L; + this.tank.setFill(this.tank.getFill() - toBurn); + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * toBurn / 2F); + } + } + } + } + + if(this.power > this.maxPower) this.power = this.maxPower; + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setInteger("burnTime", burnTime); + data.setInteger("maxBurnTime", maxBurnTime); + data.setBoolean("isOn", isOn); + data.setBoolean("liquidBurn", liquidBurn); + tank.writeToNBT(data, "t"); + this.networkPack(data, 25); + } else { + + if(this.isOn && ((!this.liquidBurn && this.burnTime > 0) || (this.liquidBurn && this.tank.getTankType().hasTrait(FT_Flammable.class) && tank.getFill() > 0))) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX + rot.offsetX, yCoord + 4, zCoord + 0.5 - dir.offsetZ + rot.offsetZ, 0, 0.05, 0); + } + } + } + + private DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetX, dir.getOpposite()) + }; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.burnTime = nbt.getInteger("burnTime"); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.isOn = nbt.getBoolean("isOn"); + this.liquidBurn = nbt.getBoolean("liquidBurn"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.burnTime = nbt.getInteger("burnTime"); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.isOn = nbt.getBoolean("isOn"); + this.liquidBurn = nbt.getBoolean("liquidBurn"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setInteger("burnTime", burnTime); + nbt.setInteger("maxBurnTime", maxBurnTime); + nbt.setBoolean("isOn", isOn); + nbt.setBoolean("liquidBurn", liquidBurn); + tank.writeToNBT(nbt, "t"); + } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + if(slots[1] == null) { + slots[1] = DictFrame.fromOne(ModItems.powder_ash, type); + ashLevelWood -= threshold; + return true; + } else if(slots[1].stackSize < slots[1].getMaxStackSize() && slots[1].getItem() == ModItems.powder_ash && slots[1].getItemDamage() == type.ordinal()) { + slots[1].stackSize++; + return true; + } + } + + return false; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("toggle")) { + this.isOn = !this.isOn; + this.markChanged(); + } + if(data.hasKey("switch")) { + this.liquidBurn = !this.liquidBurn; + this.markChanged(); + } + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineWoodBurner(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineWoodBurner(player.inventory, this); + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return i == 0 && burnModule.getBurnTime(itemStack) > 0; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + return dir == rot.getOpposite(); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + return dir == rot.getOpposite(); + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 6, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index 6b5846286..5253e4aec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -7,8 +7,13 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -19,7 +24,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 50000; @@ -209,6 +215,17 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg nbt.setInteger("speed", speed); } + @Override + public String getComponentName() { + return "microwave"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] test(Context context, Arguments args) { + return new Object[] {"This is a testing device for everything OC."}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMicrowave(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 8d1568b2d..03e34f0fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -25,8 +25,13 @@ import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -37,7 +42,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IFluidStandardTransceiver { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, SimpleComponent, IFluidStandardTransceiver { public FluidTank[] tanks; public int coreHeat; @@ -61,6 +67,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public int channelCount; public int sourceCount; + public int unloadDelay = 0; public boolean assembled; private AudioWrapper audio; @@ -160,6 +167,20 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[0].setType(2, slots); setupTanks(); + if(unloadDelay > 0) unloadDelay--; + + int chunkX = xCoord >> 4; + int chunkZ = zCoord >> 4; + + //since fluid sources are often not within 1 chunk, we just do 2 chunks distance and call it a day + if(!worldObj.getChunkProvider().chunkExists(chunkX, chunkZ) || + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ - 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ - 2)) { + this.unloadDelay = 40; + } + if(this.assembled) { for(BlockPos pos : ports) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { @@ -170,76 +191,80 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } } - if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { - typeLoaded = slots[0].getItemDamage(); - amountLoaded++; - this.decrStackSize(0, 1); - this.markChanged(); - } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ - amountLoaded++; - this.decrStackSize(0, 1); - this.markChanged(); - } - - if(this.rodTarget > this.rodLevel) this.rodLevel++; - if(this.rodTarget < this.rodLevel) this.rodLevel--; - - int newFlux = this.sourceCount * 20; - - if(typeLoaded != -1 && amountLoaded > 0) { + //only perform fission if the area has been loaded for 40 ticks or more + if(this.unloadDelay <= 0) { - EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); - double usedRods = getTotalProcessMultiplier(); - double fluxPerRod = this.flux / this.rodCount; - double outputPerRod = fuel.function.effonix(fluxPerRod); - double totalOutput = outputPerRod * amountLoaded * usedRods; - double totalHeatOutput = totalOutput * fuel.heatEmission; - - this.coreHeat += totalHeatOutput; - newFlux += totalOutput; - - this.processTime = (int) fuel.yield; - this.progress += totalOutput; - - if(this.progress >= this.processTime) { - this.progress -= this.processTime; - - if(slots[1] == null) { - slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); - } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { - slots[1].stackSize++; - } - - this.amountLoaded--; + if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { + typeLoaded = slots[0].getItemDamage(); + amountLoaded++; + this.decrStackSize(0, 1); + this.markChanged(); + } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ + amountLoaded++; + this.decrStackSize(0, 1); this.markChanged(); } - } - - if(this.amountLoaded <= 0) { - this.typeLoaded = -1; - } - - if(amountLoaded > rodCount) amountLoaded = rodCount; - - /* CORE COOLING */ - double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; - int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; - this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; - this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; - - updateCoolant(); - - this.coreHeat *= 0.999D; - this.hullHeat *= 0.999D; - - this.flux = newFlux; - - if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { - this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); - } - - if(this.coreHeat > this.coreHeatCapacity) { - meltDown(); + + if(this.rodTarget > this.rodLevel) this.rodLevel++; + if(this.rodTarget < this.rodLevel) this.rodLevel--; + + int newFlux = this.sourceCount * 20; + + if(typeLoaded != -1 && amountLoaded > 0) { + + EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); + double usedRods = getTotalProcessMultiplier(); + double fluxPerRod = this.flux / this.rodCount; + double outputPerRod = fuel.function.effonix(fluxPerRod); + double totalOutput = outputPerRod * amountLoaded * usedRods; + double totalHeatOutput = totalOutput * fuel.heatEmission; + + this.coreHeat += totalHeatOutput; + newFlux += totalOutput; + + this.processTime = (int) fuel.yield; + this.progress += totalOutput; + + if(this.progress >= this.processTime) { + this.progress -= this.processTime; + + if(slots[1] == null) { + slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); + } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { + slots[1].stackSize++; + } + + this.amountLoaded--; + this.markChanged(); + } + } + + if(this.amountLoaded <= 0) { + this.typeLoaded = -1; + } + + if(amountLoaded > rodCount) amountLoaded = rodCount; + + /* CORE COOLING */ + double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; + int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; + this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; + this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; + + updateCoolant(); + + this.coreHeat *= 0.999D; + this.hullHeat *= 0.999D; + + this.flux = newFlux; + + if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { + this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); + } + + if(this.coreHeat > this.coreHeatCapacity) { + meltDown(); + } } } @@ -502,6 +527,57 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } } + + // do some opencomputer stuff + @Override + public String getComponentName() { + return "ntm_pwr_control"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getHeat(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFlux(Context context, Arguments args) { + return new Object[] {flux}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getLevel(Context context, Arguments args) { + return new Object[] {rodTarget, rodLevel}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getCoolantInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFuelInfo(Context context, Arguments args) { + return new Object[] {amountLoaded, progress, processTime}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat, flux, rodTarget, rodLevel, amountLoaded, progress, processTime, tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setLevel(Context context, Arguments args) { + rodTarget = MathHelper.clamp_int(args.checkInteger(0), 0, 100); + this.markChanged(); + return new Object[] {true}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerPWR(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 67c70eded..63ea4818e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -256,56 +256,35 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I return "reactor_control"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isLinked(Context context, Arguments args) { return new Object[] {isLinked}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getReactor(Context context, Arguments args) { return new Object[] {getDisplayData()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setParams(Context context, Arguments args) { //i hate my life int newFunction = args.checkInteger(0); - double newMaxheat = args.checkDouble(1); - double newMinheat = args.checkDouble(2); - double newMaxlevel = args.checkDouble(3)/100.0; - double newMinlevel = args.checkDouble(4)/100.0; - if (newFunction > 2) { //no more out of bounds for you (and yes there's integer values for functions, sue me) - newFunction = 0; - } else if (newFunction < 0) { - newFunction = 0; - } - if (newMaxheat < 0.0) { - newMaxheat = 0.0; - } - if (newMinheat < 0.0) { - newMinheat = 0.0; - } - if (newMaxlevel < 0.0) { - newMaxlevel = 0.0; - } else if (newMaxlevel > 1.0) { - newMaxlevel = 1.0; - } - if (newMinlevel < 0.0) { - newMinlevel = 0.0; - } else if (newMinlevel > 1.0) { - newMinlevel = 1.0; - } - function = RodFunction.values()[newFunction]; - heatUpper = newMaxheat; - heatLower = newMinheat; - levelUpper = newMaxlevel; - levelLower = newMinlevel; + double newMaxHeat = args.checkDouble(1); + double newMinHeat = args.checkDouble(2); + double newMaxLevel = args.checkDouble(3)/100.0; + double newMinLevel = args.checkDouble(4)/100.0; + function = RodFunction.values()[MathHelper.clamp_int(newFunction, 0, 2)]; + heatUpper = MathHelper.clamp_double(newMaxHeat, 0, 9999); + heatLower = MathHelper.clamp_double(newMinHeat, 0, 9999); + levelUpper = MathHelper.clamp_double(newMaxLevel, 0, 1); + levelLower = MathHelper.clamp_double(newMinLevel, 0, 1); return new Object[] {}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getParams(Context context, Arguments args) { return new Object[] {function.ordinal(), heatUpper, heatLower, levelUpper, levelLower}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 3e17bf1e0..0bc646eee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -26,11 +26,13 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -211,6 +213,9 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements Block b = worldObj.getBlock(x, y, z); + if((b == Blocks.water || b == Blocks.flowing_water) && worldObj.getBlockMetadata(x, y, z) == 0) + return true; + if(b == ModBlocks.block_lead || b == ModBlocks.block_desh || b == ModBlocks.reactor_research || b == ModBlocks.machine_reactor_breeding) return true; @@ -391,46 +396,41 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements return "research_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { // or getHeat, whatever. return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {level * 100}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFlux(Context context, Arguments args) { return new Object[] {totalFlux}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, level, targetLevel, totalFlux}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 100.0); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index c605f96d6..43536fedb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -545,49 +545,49 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return "zirnox_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getPressure(Context context, Arguments args) { return new Object[] {pressure}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {water.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCarbonDioxide(Context context, Arguments args) { return new Object[] {carbonDioxide.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, pressure, water.getFill(), steam.getFill(), carbonDioxide.getFill(), isOn}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index f89d0660f..454714695 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -158,10 +158,26 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(current != null && current.equals(conv)) { - int toFill = Math.min(10, Math.min(maxFill - currentFill, tank.getFill())); + int toFill = Math.min(50, Math.min(maxFill - currentFill, tank.getFill())); currentFill += toFill; tank.setFill(tank.getFill() - toFill); } + } else { + ComparableStack direct = new ComparableStack(ModItems.fluid_icon, 1, tank.getTankType().getID()); + + if(SILEXRecipes.getOutput(direct.toStack()) != null) { + + if(currentFill == 0) { + current = (ComparableStack) direct.copy(); + } + + if(current != null && current.equals(direct)) { + + int toFill = Math.min(50, Math.min(maxFill - currentFill, tank.getFill())); + currentFill += toFill; + tank.setFill(tank.getFill() - toFill); + } + } } loadDelay++; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index ab91d87c3..0a41526db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -30,18 +30,14 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui public HashSet secondary = new HashSet(); public TileEntitySolarBoiler() { - water = new FluidTank(Fluids.WATER, 16000, 0); - steam = new FluidTank(Fluids.STEAM, 1600000, 1); + water = new FluidTank(Fluids.WATER, 100, 0); + steam = new FluidTank(Fluids.STEAM, 10_000, 1); } @Override public void updateEntity() { if(!worldObj.isRemote) { - - //if(worldObj.getTotalWorldTime() % 5 == 0) { - fillFluidInit(Fluids.STEAM); - //} this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 8991fb974..32ec41b3e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -169,7 +169,7 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand public void updateCoolant(FluidTank[] tanks) { - double coolingFactor = 0.1D; //10% per tick, TEMP + double coolingFactor = 0.2D; //20% per tick double heatToUse = this.heat * coolingFactor; FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); @@ -443,6 +443,12 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand return bb; } + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + private void disassemble() { int count = 20; @@ -515,12 +521,6 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand } } } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index 95db0d668..ad410410b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -18,8 +18,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIWatzCore; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCapacitor; import com.hbm.items.special.WatzFuel; +import com.hbm.items.tool.ItemTitaniumFilter; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; @@ -504,7 +504,7 @@ public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedIn @Override public boolean hasFuse() { - return slots[38] != null && slots[38].getItem() == ModItems.titanium_filter && ItemCapacitor.getDura(slots[38]) > 0; + return slots[38] != null && slots[38].getItem() == ModItems.titanium_filter && ItemTitaniumFilter.getDura(slots[38]) > 0; } @Override @@ -576,7 +576,7 @@ public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedIn //Only damages filter when heat is present (thus waste being created) if (heatList > 0) { - ItemCapacitor.setDura(slots[38], ItemCapacitor.getDura(slots[38]) - 1); + ItemTitaniumFilter.setDura(slots[38], ItemTitaniumFilter.getDura(slots[38]) - 1); } heatList *= heatMultiplier; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 13fb8015b..06911f404 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -11,8 +12,12 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.world.feature.OilSpot; @@ -22,6 +27,7 @@ import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { @@ -221,4 +227,23 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_fracking_tower)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 39f928faf..25d5f4029 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.oil; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; @@ -21,7 +22,9 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; @@ -37,9 +40,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -133,7 +137,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements int eject = Math.min(maxBurn, tank.getFill()); tank.setFill(tank.getFill() - eject); - int penalty = 2; + int penalty = 5; if(!tank.getTankType().hasTrait(FT_Gaseous.class) && !tank.getTankType().hasTrait(FT_Gaseous_ART.class)) penalty = 10; @@ -307,4 +311,27 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineGasFlare(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_flare)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (100 * level / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.EFFECT) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index edfeeff30..01b59adc8 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine.oil; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; @@ -16,7 +17,9 @@ import com.hbm.inventory.recipes.LiquefactionRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -29,9 +32,10 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -296,4 +300,28 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUILiquefactor(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_liquefactor)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 3e0c19f8b..798d41873 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -9,8 +10,12 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -21,6 +26,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; @@ -174,4 +180,23 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_well)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index fb2a78c4f..dd11a3431 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -9,7 +10,11 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -21,6 +26,7 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.oredict.OreDictionary; @@ -224,4 +230,23 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_pumpjack)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index c40e904ca..1677a5321 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine.oil; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerSolidifier; @@ -11,7 +14,9 @@ import com.hbm.inventory.recipes.SolidificationRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; @@ -25,9 +30,10 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -270,4 +276,28 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISolidifier(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_solidifier)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 11d36657f..4c785a486 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -17,6 +17,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; import com.hbm.util.Tuple; @@ -34,7 +35,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { public int indicator = 0; @@ -382,4 +383,18 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE || type == UpgradeType.AFTERBURN; + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.AFTERBURN) return 3; + if(type == UpgradeType.OVERDRIVE) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index f6e81933f..823259e3d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -339,12 +339,13 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return "rbmk_crane"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 2) //yknow computers are more efficient than humans, lets give an incentive to use OC @Optional.Method(modid = "OpenComputers") public Object[] move(Context context, Arguments args) { if(setUpCrane) { - String textbruh = args.checkString(0); - switch(textbruh) { + String direction = args.checkString(0); + + switch(direction) { case "up": tiltFront = 30; if(!worldObj.isRemote) posFront += speed; @@ -368,7 +369,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"Crane not found"}; } - @Callback(direct = true, limit = 4) + @Callback @Optional.Method(modid = "OpenComputers") public Object[] load(Context context, Arguments args) { if (setUpCrane) { @@ -378,7 +379,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"Crane not found"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { @@ -387,7 +388,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { @@ -395,4 +396,14 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece } return new Object[] {"N/A"}; } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") //if this doesnt work im going to die + public Object[] getCranePos(Context context, Arguments args) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection left = dir.getRotation(ForgeDirection.DOWN); + int x = (int)Math.floor(this.centerX - dir.offsetX * this.posFront - left.offsetX * this.posLeft + 0.5D); + int z = (int)Math.floor(this.centerZ - dir.offsetZ * this.posFront - left.offsetZ * this.posLeft + 0.5D); + return new Object[] {x, z}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 44baadde9..c0a883300 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -5,6 +5,7 @@ import api.hbm.fluid.IFluidUser; import api.hbm.fluid.IPipeNet; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; @@ -263,17 +264,21 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public void receiveControl(NBTTagCompound data) { if(data.hasKey("compression")) { - - FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) { steam.setTankType(Fluids.HOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.HOTSTEAM) { steam.setTankType(Fluids.SUPERHOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.SUPERHOTSTEAM) { steam.setTankType(Fluids.ULTRAHOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.ULTRAHOTSTEAM) { steam.setTankType(Fluids.STEAM); steam.setFill(Math.min(steam.getFill() * 1000, steam.getMaxFill())); } - - this.markDirty(); + this.cyceCompressor(); } } + public void cyceCompressor() { + + FluidType type = steam.getTankType(); + if(type == Fluids.STEAM) { steam.setTankType(Fluids.HOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.HOTSTEAM) { steam.setTankType(Fluids.SUPERHOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.SUPERHOTSTEAM) { steam.setTankType(Fluids.ULTRAHOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.ULTRAHOTSTEAM) { steam.setTankType(Fluids.STEAM); steam.setFill(Math.min(steam.getFill() * 1000, steam.getMaxFill())); } + + this.markDirty(); + } + @Override public void onMelt(int reduce) { @@ -331,87 +336,60 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public String getComponentName() { return "rbmk_boiler"; } - - @Callback(direct = true, limit = 16) + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWaterMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - FluidType type = steam.getTankType(); - Object type_1; - if(type == Fluids.STEAM) {type_1 = "0";} - else if(type == Fluids.HOTSTEAM) {type_1 = "1";} - else if(type == Fluids.SUPERHOTSTEAM) {type_1 = "2";} - else if(type == Fluids.ULTRAHOTSTEAM) {type_1 = "3";} - else {type_1 = "Unknown Error";} + int type_1 = (int) CompatHandler.steamTypeToInt(steam.getTankType())[0]; return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { - FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) {return new Object[] {0};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} - else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {3};} - else {return new Object[] {"Unknown Error"};} + return CompatHandler.steamTypeToInt(steam.getTankType()); } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setSteamType(Context context, Arguments args) { int type = args.checkInteger(0); - if(type > 3) { - type = 3; - } else if(type < 0) { - type = 0; - } - if(type == 0) { - steam.setTankType(Fluids.STEAM); - return new Object[] {true}; - } else if(type == 1) { - steam.setTankType(Fluids.HOTSTEAM); - return new Object[] {true}; - } else if(type == 2) { - steam.setTankType(Fluids.SUPERHOTSTEAM); - return new Object[] {true}; - } else { - steam.setTankType(Fluids.ULTRAHOTSTEAM); - return new Object[] {true}; - } + steam.setTankType(CompatHandler.intToSteamType(type)); + return new Object[] {true}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 4ce54e100..158f30152 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Set; +import java.util.LinkedHashMap; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.fluid.Fluids; @@ -12,8 +13,10 @@ import com.hbm.inventory.gui.GUIRBMKConsole; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; +import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -27,13 +30,20 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityRBMKConsole extends TileEntityMachineBase implements IControlReceiver, IGUIProvider { +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityRBMKConsole extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, SimpleComponent { private int targetX; private int targetY; private int targetZ; - public int[] fluxBuffer = new int[20]; + public static final int fluxDisplayBuffer = 60; + public int[] fluxBuffer = new int[fluxDisplayBuffer]; //made this one-dimensional because it's a lot easier to serialize public RBMKColumn[] columns = new RBMKColumn[15 * 15]; @@ -104,7 +114,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.fluxBuffer[i] = this.fluxBuffer[i + 1]; } - this.fluxBuffer[19] = (int) flux; + this.fluxBuffer[this.fluxBuffer.length - 1] = (int) flux; } @SuppressWarnings("incomplete-switch") //shut up @@ -287,6 +297,40 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon Integer[] cols = list.toArray(new Integer[0]); this.screens[slot].columns = cols; } + + if(data.hasKey("assignColor")) { + int color = data.getByte("assignColor"); + int[] cols = data.getIntArray("cols"); + + for(int i : cols) { + int x = i % 15 - 7; + int z = i / 15 - 7; + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + z); + + if(te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.color = EnumUtil.grabEnumSafely(RBMKColor.class, color); + te.markDirty(); + } + } + } + + if(data.hasKey("compressor")) { + int[] cols = data.getIntArray("cols"); + + for(int i : cols) { + int x = i % 15 - 7; + int z = i / 15 - 7; + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + z); + + if(te instanceof TileEntityRBMKBoiler) { + TileEntityRBMKBoiler rod = (TileEntityRBMKBoiler) te; + rod.cyceCompressor(); + } + } + } } @Override @@ -382,7 +426,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon case BOILER: stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("rbmk.boiler.water", this.data.getInteger("water"), this.data.getInteger("maxWater"))); stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.boiler.steam", this.data.getInteger("steam"), this.data.getInteger("maxSteam"))); - stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()))); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", Fluids.fromID(this.data.getShort("type")).getLocalizedName())); break; case CONTROL: @@ -398,10 +442,10 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon break; case HEATEX: - stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()) + " " + - this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB")); - stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("hottype")).getUnlocalizedName()) + " " + - this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB")); + stats.add(EnumChatFormatting.BLUE + Fluids.fromID(this.data.getShort("type")).getLocalizedName() + " " + + this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB"); + stats.add(EnumChatFormatting.RED + Fluids.fromID(this.data.getShort("hottype")).getLocalizedName() + " " + + this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB"); break; } @@ -473,4 +517,203 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKConsole(player.inventory, this); } + + // do some opencomputer stuff + @Override + public String getComponentName() { + return "rbmk_console"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getColumnData(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + + int i = (y + 7) * 15 + (x + 7); + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + y); + if (te instanceof TileEntityRBMKBase) { + TileEntityRBMKBase column = (TileEntityRBMKBase) te; + + NBTTagCompound column_data = columns[i].data; + LinkedHashMap data_table = new LinkedHashMap<>(); + data_table.put("type", column.getConsoleType().name()); + data_table.put("hullTemp", column_data.getDouble("heat")); + data_table.put("realSimWater", column_data.getDouble("water")); + data_table.put("realSimSteam", column_data.getDouble("steam")); + data_table.put("moderated", column_data.getBoolean("moderated")); + data_table.put("level", column_data.getDouble("level")); + data_table.put("color", column_data.getShort("color")); + data_table.put("enrichment", column_data.getDouble("enrichment")); + data_table.put("xenon", column_data.getDouble("xenon")); + data_table.put("coreSkinTemp", column_data.getDouble("c_heat")); + data_table.put("coreTemp", column_data.getDouble("c_coreHeat")); + data_table.put("coreMaxTemp", column_data.getDouble("c_maxHeat")); + + if(te instanceof TileEntityRBMKRod){ + TileEntityRBMKRod fuelChannel = (TileEntityRBMKRod)te; + data_table.put("fluxSlow", fuelChannel.fluxSlow); + data_table.put("fluxFast", fuelChannel.fluxFast); + } + + if(te instanceof TileEntityRBMKBoiler){ + TileEntityRBMKBoiler boiler = (TileEntityRBMKBoiler)te; + data_table.put("water", boiler.feed.getFill()); + data_table.put("steam", boiler.steam.getFill()); + } + + if(te instanceof TileEntityRBMKOutgasser){ + TileEntityRBMKOutgasser irradiationChannel = (TileEntityRBMKOutgasser)te; + data_table.put("fluxProgress", irradiationChannel.progress); + data_table.put("requiredFlux", irradiationChannel.duration); + } + + if(te instanceof TileEntityRBMKHeater){ + TileEntityRBMKHeater heaterChannel = (TileEntityRBMKHeater)te; + data_table.put("coolant", heaterChannel.feed.getFill()); + data_table.put("hotcoolant", heaterChannel.steam.getFill()); + } + + return new Object[] {data_table}; + } + return new Object[] {null}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getRBMKPos(Context context, Arguments args) { + if(!(targetX == 0 && targetY== 0 && targetZ==0)){ + LinkedHashMap data_table = new LinkedHashMap<>(); + data_table.put("rbmkCenterX", targetX); + data_table.put("rbmkCenterY", targetY); + data_table.put("rbmkCenterZ", targetZ); + + return new Object[] {data_table}; + } + return new Object[] {null}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setLevel(Context context, Arguments args) { + double new_level = args.checkDouble(0); + boolean foundRods = false; + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = worldObj.getTileEntity(targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + foundRods = true; + } + } + } + if(foundRods) + return new Object[] {}; + else + return new Object[] {"No control rods found"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColumnLevel(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + double new_level = args.checkDouble(2); + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + y); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + return new Object[] {}; + } + return new Object[] {"No control rod found at "+(x+7)+","+(7-y)}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColorLevel(Context context, Arguments args) { + int color = args.checkInteger(0); + double new_level = args.checkDouble(1); + boolean foundRods = false; + if(color >= 0 && color <=4){ + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = worldObj.getTileEntity(targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + if(rod.color == RBMKColor.values()[color]){ + rod.startingLevel = rod.level; + new_level = Math.min(1, Math.max(0, new_level)); + + rod.setTarget(new_level); + te.markDirty(); + foundRods = true; + } + } + } + } + if(foundRods) + return new Object[] {}; + else + return new Object[] { "No rods for color "+color+" found" }; + } + return new Object[] {"Color "+color+" does not exist"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] setColor(Context context, Arguments args) { + int x = args.checkInteger(0) - 7; + int y = -args.checkInteger(1) + 7; + int new_color = args.checkInteger(2); + if(new_color >= 0 && new_color <=4){ + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + y); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.color = RBMKColor.values()[new_color]; + te.markDirty(); + return new Object[] {}; + } + return new Object[] {"No control rod found at "+(x+7)+","+(7-y)}; + } + return new Object[] {"Color "+new_color+" does not exist"}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] pressAZ5(Context context, Arguments args) { + boolean hasRods = false; + for(int i = -7; i <= 7; i++) { + for(int j = -7; j <= 7; j++) { + TileEntity te = worldObj.getTileEntity(targetX + i, targetY, targetZ + j); + + if (te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.startingLevel = rod.level; + rod.setTarget(0); + te.markDirty(); + hasRods = true; + } + } + } + if(hasRods){ + return new Object[] {}; + } else { + return new Object[] {"No control rods found"}; + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 945638b7e..076e5afc6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -9,6 +9,7 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements SimpleComponent { @@ -126,46 +127,41 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im return "rbmk_control_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {getMult() * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, getMult() * 100, targetLevel * 100, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 1); return new Object[] {}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index f22e00b47..1afb0cc8d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -133,7 +133,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement return data; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getColor(Context context, Arguments args) { return new Object[] {this.color}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 8c15cd8d7..715eba42f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -149,31 +149,31 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return "rbmk_cooler"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[]{heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryo(Context context, Arguments args) { return new Object[]{tank.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryoMax(Context context, Arguments args) { return new Object[]{tank.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{heat, tank.getFill(), tank.getMaxFill(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index e9699b87f..f74401c8c 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -65,9 +65,10 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I HeatingStep step = trait.getFirstStep(); steam.setTankType(step.typeProduced); double tempRange = this.heat - steam.getTankType().temperature; + double eff = trait.getEfficiency(HeatingType.HEATEXCHANGER); - if(tempRange > 0) { - double TU_PER_DEGREE = 2_000D; //based on 1mB of water absorbing 200 TU as well as 0.1°C from an RBMK column + if(tempRange > 0 && eff > 0) { + double TU_PER_DEGREE = 2_000D * eff; //based on 1mB of water absorbing 200 TU as well as 0.1°C from an RBMK column int inputOps = feed.getFill() / step.amountReq; int outputOps = (steam.getMaxFill() - steam.getFill()) / step.amountProduced; int tempOps = (int) Math.floor((tempRange * TU_PER_DEGREE) / step.heatReq); @@ -280,54 +281,54 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I return "rbmk_heater"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFill(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExport(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { return new Object[] {feed.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { return new Object[] {steam.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getName(), steam.getTankType().getName(), xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 8dbaa6360..1b74e6e92 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -226,37 +226,37 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement return "rbmk_outgasser"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGas(Context context, Arguments args) { return new Object[] {gas.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasType(Context context, Arguments args) { return new Object[] {gas.getTankType().getID()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getProgress(Context context, Arguments args) { return new Object[] {progress}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 1b1f607d4..e1a0e3384 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -91,6 +91,8 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM } else { this.meltdown(); } + this.fluxFast = 0; + this.fluxSlow = 0; return; } @@ -387,25 +389,25 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return "rbmk_fuel_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluxSlow(Context context, Arguments args) { return new Object[] {fluxSlow}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluxFast(Context context, Arguments args) { return new Object[] {fluxFast}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -414,7 +416,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -423,7 +425,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoreHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -432,7 +434,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSkinHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -441,34 +443,46 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { + return new Object[] {slots[0].getItem().getUnlocalizedName()}; + } + return new Object[] {"N/A"}; + } + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object OC_enrich_buf; Object OC_poison_buf; Object OC_hull_buf; Object OC_core_buf; + String OC_type; if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { OC_enrich_buf = ItemRBMKRod.getEnrichment(slots[0]); OC_poison_buf = ItemRBMKRod.getPoison(slots[0]); OC_hull_buf = ItemRBMKRod.getHullHeat(slots[0]); OC_core_buf = ItemRBMKRod.getCoreHeat(slots[0]); + OC_type = slots[0].getItem().getUnlocalizedName(); } else { OC_enrich_buf = "N/A"; OC_poison_buf = "N/A"; OC_hull_buf = "N/A"; OC_core_buf = "N/A"; + OC_type = "N/A"; } - return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, OC_type, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getModerated(Context context, Arguments args) { return new Object[] {((RBMKRod)this.getBlockType()).moderated}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java index baa22c2c3..a670b6c09 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java @@ -4,21 +4,15 @@ import com.hbm.inventory.container.ContainerRBMKStorage; import com.hbm.inventory.gui.GUIRBMKStorage; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable, SimpleComponent { +public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable { public TileEntityRBMKStorage() { super(12); @@ -91,35 +85,6 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements slots[0] = null; } - @Override - public String getComponentName() { - return "rbmk_storage_rod"; - } - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getStored(Context context, Arguments args) { - return new Object[] {slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11]}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - return new Object[] {heat, slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11], xCoord, yCoord, zCoord}; - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerRBMKStorage(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 32444fda7..66ea25fcb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -72,6 +72,24 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); } + @Override + public long getDemand(FluidType type, int pressure) { + + if(this.mode == 2 || this.mode == 3 || this.sendingBrake) + return 0; + + if(tank.getPressure() != pressure) return 0; + + return type == tank.getTankType() ? tank.getMaxFill() - tank.getFill() : 0; + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + long toTransfer = Math.min(getDemand(type, pressure), fluid); + tank.setFill(tank.getFill() + (int) toTransfer); + return fluid - toTransfer; + } + @Override public void updateEntity() { @@ -92,8 +110,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc this.sendingBrake = false; age++; - if(age >= 20) + if(age >= 20) { age = 0; + this.markChanged(); + } if((mode == 1 || mode == 2) && (age == 9 || age == 19)) fillFluidInit(tank.getTankType()); @@ -373,25 +393,25 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return "ntm_fluid_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 38371ad7f..c27670d37 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energy.*; import com.hbm.blocks.machine.MachineBattery; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; import com.hbm.lib.Library; @@ -36,6 +37,8 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public long[] log = new long[20]; public long delta = 0; public long power = 0; + public long prevPowerState = 0; + public int pingPongTicks = 0; //0: input only //1: buffer @@ -180,8 +183,23 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I this.log[i - 1] = this.log[i]; } + if(GeneralConfig.enable528) { + long threshold = this.getMaxPower() / 3; + if(Math.abs(prevPower - power) > threshold && Math.abs(prevPower - prevPowerState) > threshold) { + this.pingPongTicks++; + if(this.pingPongTicks > 10) { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, false, false); + } + } else { + if(this.pingPongTicks > 0) this.pingPongTicks--; + } + } + this.log[19] = avg; + prevPowerState = power; + NBTTagCompound nbt = new NBTTagCompound(); nbt.setLong("power", avg); nbt.setLong("delta", delta); @@ -237,7 +255,9 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); }); - this.power = PowerNet.fairTransfer(con, this.power); + long toSend = Math.min(this.power, this.getMaxTransfer()); + long powerRemaining = this.power - toSend; + this.power = PowerNet.fairTransfer(con, toSend) + powerRemaining; } //resubscribe to buffered nets, if necessary @@ -246,7 +266,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } } - protected void transmitPower() { + @Deprecated protected void transmitPower() { short mode = (short) this.getRelevantMode(); @@ -298,7 +318,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } public long getMaxTransfer() { - return this.getMaxPower(); + return this.getMaxPower() / 20; } @Override @@ -342,24 +362,29 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I */ @Override public long transferPower(long power) { - - int mode = this.getRelevantMode(); - if(mode == mode_output || mode == mode_none) { - return power; + long overshoot = 0; + + // if power exceeds our transfer limit, truncate + if(power > getMaxTransfer()) { + overshoot += power - getMaxTransfer(); + power = getMaxTransfer(); } - this.power += power; + // this check is in essence the same as the default implementation, but re-arranged to never overflow the int64 range + // if the remaining power exceeds the power cap, truncate again + long freespace = this.getMaxPower() - this.getPower(); + + if(freespace < power) { + overshoot += power - freespace; + power = freespace; + } + + // what remains is sure to not exceed the transfer limit and the power cap (and therefore the int64 range) + this.setPower(this.getPower() + power); this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); - if(this.power > this.getMaxPower()) { - - long overshoot = this.power - this.getMaxPower(); - this.power = this.getMaxPower(); - return overshoot; - } - - return 0; + return overshoot; } @Override @@ -371,7 +396,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return 0; } - return Math.max(getMaxPower() - getPower(), 0); + return Math.min(Math.max(getMaxPower() - getPower(), 0), this.getMaxTransfer()); } @Override @@ -395,13 +420,13 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return "ntm_energy_storage"; //ok if someone else can figure out how to do this that'd be nice (change the component name based on the type of storage block) } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; @@ -411,6 +436,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void writeNBT(NBTTagCompound nbt) { NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); + data.setLong("prevPowerState", prevPowerState); data.setShort("redLow", redLow); data.setShort("redHigh", redHigh); data.setInteger("priority", this.priority.ordinal()); @@ -421,6 +447,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void readNBT(NBTTagCompound nbt) { NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); this.power = data.getLong("power"); + this.prevPowerState = data.getLong("prevPowerState"); this.redLow = data.getShort("redLow"); this.redHigh = data.getShort("redHigh"); this.priority = ConnectionPriority.values()[data.getInteger("priority")]; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index eea2287d6..3ece44aca 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,9 +1,16 @@ package com.hbm.tileentity.machine.storage; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import com.hbm.lib.Library; import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; +import api.hbm.energy.IPowerNet; +import api.hbm.energy.PowerNet; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -71,54 +78,61 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { short mode = (short) this.getRelevantMode(); - ForgeDirection dir = ForgeDirection.DOWN; + //HasSets to we don'T have any duplicates + Set nets = new HashSet(); + Set consumers = new HashSet(); + + //iterate over all sides + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - - if(mode == 1 || mode == 2) { - if(te instanceof IEnergyConnector) { + TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + //if it's a cable, buffer both the network and all subscribers of the net + if(te instanceof IEnergyConductor) { + IEnergyConductor con = (IEnergyConductor) te; + if(con.canConnect(dir.getOpposite()) && con.getPowerNet() != null) { + nets.add(con.getPowerNet()); + con.getPowerNet().unsubscribe(this); + consumers.addAll(con.getPowerNet().getSubscribers()); + } + + //if it's just a consumer, buffer it as a subscriber + } else if(te instanceof IEnergyConnector) { IEnergyConnector con = (IEnergyConnector) te; - - long max = maxTransfer; - long toTransfer = Math.min(max, this.power); - long remainder = this.power - toTransfer; - this.power = toTransfer; - - long oldPower = this.power; - long transfer = this.power - con.transferPower(this.power); - this.power = oldPower - transfer; - - power += remainder; - } - } - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null) { - if(mode == 2 || mode == 3) { - if(con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - } - } else if(!con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); + if(con.canConnect(dir.getOpposite())) { + consumers.add((IEnergyConnector) te); } } } + + //send power to buffered consumers, independent of nets + if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { + List con = new ArrayList(); + con.addAll(consumers); + + if(PowerNet.trackingInstances == null) { + PowerNet.trackingInstances = new ArrayList(); + } + PowerNet.trackingInstances.clear(); + + nets.forEach(x -> { + if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); + }); + + long toSend = Math.min(this.power, maxTransfer); + long powerRemaining = this.power - toSend; + this.power = PowerNet.fairTransfer(con, toSend) + powerRemaining; + } + + //resubscribe to buffered nets, if necessary + if(mode == mode_buffer || mode == mode_input) { + nets.forEach(x -> x.subscribe(this)); + } } @Override public long getPowerRemainingScaled(long i) { - double powerScaled = (double)power / (double)getMaxPower(); - return (long)(i * powerScaled); } @@ -128,8 +142,8 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { } @Override - public long getTransferWeight() { - return Math.min(Math.max(this.getMaxPower() - getPower(), 0), maxTransfer); + public long getMaxTransfer() { + return maxTransfer; } public float getSpeed() { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index ec0d5ae57..dc147cbbf 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -4,6 +4,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -113,8 +114,10 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements if(!hasExploded) { age++; - if(age >= 20) + if(age >= 20) { age = 0; + this.markChanged(); + } this.sendingBrake = true; tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); @@ -166,6 +169,15 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements this.tank.writeToNBT(data, "t"); this.networkPack(data, 150); } + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 2.875, zCoord + 1).offset(dir.offsetX * 0.5 - rot.offsetX * 2.25, 0, dir.offsetZ * 0.5 - rot.offsetZ * 2.25)); + + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.isOnLadder = true; + } } /** called when the tank breaks due to hazardous materials or external force, can be used to quickly void part of the tank or spawn a mushroom cloud */ @@ -468,28 +480,28 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements @Override public String getComponentName() { - return "ntm_tank"; + return "ntm_fluid_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; diff --git a/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java b/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java new file mode 100644 index 000000000..eae54d23e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity.network; + +import com.hbm.util.fauxpointtwelve.BlockPos; + +public interface IDroneLinkable { + + public BlockPos getPoint(); + public void setNextTarget(int x, int y, int z); +} diff --git a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java new file mode 100644 index 000000000..8f98a9eb6 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java @@ -0,0 +1,116 @@ +package com.hbm.tileentity.network; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map.Entry; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.util.HashedSet; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; + +public class RequestNetwork { + + private static int timer = 0; + public static HashMap>> activeWaypoints = new HashMap(); + public static final int maxAge = 2_000; + + public static void updateEntries() { + + if(timer < 0) { + timer--; + return; + } + + timer = 20; + + Iterator worldIt = activeWaypoints.entrySet().iterator(); + + // iterate over each dim + while(worldIt.hasNext()) { + Entry>> worldEntry = (Entry) worldIt.next(); + Iterator chunkIt = worldEntry.getValue().entrySet().iterator(); + + // iterate over each chunk + while(chunkIt.hasNext()) { + + Entry> chunkEntry = (Entry) chunkIt.next(); + Iterator pathIt = chunkEntry.getValue().iterator(); + + // iterate over each path node + while(pathIt.hasNext()) { + PathNode node = pathIt.next(); + + // if the lease timestamp is too far back, time out the node + if(node.lease < System.currentTimeMillis() - maxAge) { + node.reachableNodes.clear(); // just to be sure there's no cyclical references happening creating memory leaks + pathIt.remove(); + } + } + + // if no more nodes exist, delete the chunk entry + if(chunkEntry.getValue().size() == 0) chunkIt.remove(); + } + + // if no more chunk entries exist, delete the world entry + if(worldEntry.getValue().size() == 0) worldIt.remove(); + + // cleaning up all the entries if the lists are empty ensures that even if a different save is loaded, + // the positions will eventually time out leading to all the old save crap being deleted, preventing a memory leak. + // it's probably an inconsequential memory leak but i'd rather we don't + } + + } + + /** Generic path node, contains nothing but a position and a timestamp */ + public static class PathNode { + public BlockPos pos; + public long lease; + public HashedSet reachableNodes = new HashedSet(); + public PathNode(BlockPos pos, HashedSet reachableNodes) { + this.pos = pos; + this.reachableNodes = new HashedSet(reachableNodes); + this.lease = System.currentTimeMillis(); + } + + @Override public int hashCode() { return pos.hashCode(); } + @Override public boolean equals(Object toCompare) { + if(this == toCompare) { + return true; + } else if(!(toCompare instanceof PathNode)) { + return false; + } else { + PathNode node = (PathNode) toCompare; + if(this.pos.getX() != node.pos.getX()) { + return false; + } else if(this.pos.getY() != node.pos.getY()) { + return false; + } else { + return this.pos.getZ() == node.pos.getZ(); + } + } + } + } + + /** Node created by providers, lists available items */ + public static class OfferNode extends PathNode { + public List offer; + public OfferNode(BlockPos pos, HashedSet reachableNodes, List offer) { + super(pos, reachableNodes); + this.offer = offer; + } + } + + /** Node created by requesters, lists requested AStacks */ + public static class RequestNode extends PathNode { + public List request; + public RequestNode(BlockPos pos, HashedSet reachableNodes, List request) { + super(pos, reachableNodes); + this.request = request; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java new file mode 100644 index 000000000..8a304914c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java @@ -0,0 +1,276 @@ +package com.hbm.tileentity.network; + +import java.util.List; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.container.ContainerDroneCrate; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIDroneCrate; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver { + + public FluidTank tank; + + public int nextX = -1; + public int nextY = -1; + public int nextZ = -1; + + public boolean sendingMode = false; + public boolean itemType = true; + + public TileEntityDroneCrate() { + super(19); + this.tank = new FluidTank(Fluids.NONE, 64_000); + } + + @Override + public String getName() { + return "container.droneCrate"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.tank.setType(18, slots); + + if(sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) { + this.subscribeToAllAround(tank.getTankType(), this); + } + + if(!sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) { + this.sendFluidToAll(tank, this); + } + + if(nextY != -1) { + + List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 2, zCoord + 1)); + for(EntityDeliveryDrone drone : drones) { + if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { + drone.setTarget(nextX + 0.5, nextY, nextZ + 0.5); + + if(sendingMode && itemType) loadItems(drone); + if(!sendingMode && itemType) unloadItems(drone); + if(sendingMode && !itemType) loadFluid(drone); + if(!sendingMode && !itemType) unloadFluid(drone); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + data.setBoolean("mode", sendingMode); + data.setBoolean("type", itemType); + tank.writeToNBT(data, "t"); + INBTPacketReceiver.networkPack(this, data, 25); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + this.sendingMode = nbt.getBoolean("mode"); + this.itemType = nbt.getBoolean("type"); + tank.readFromNBT(nbt, "t"); + } + + protected void loadItems(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 0) return; + + boolean loaded = false; + + for(int i = 0; i < 18; i++) { + if(this.slots[i] != null) { + loaded = true; + drone.setInventorySlotContents(i, this.slots[i].copy()); + this.slots[i] = null; + } + } + + if(loaded) { + this.markDirty(); + drone.setAppearance(1); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + } + } + + protected void unloadItems(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 1) return; + + boolean emptied = true; + + for(int i = 0; i < 18; i++) { + ItemStack droneSlot = drone.getStackInSlot(i); + + if(this.slots[i] == null && droneSlot != null) { + this.slots[i] = droneSlot.copy(); + drone.setInventorySlotContents(i, null); + } else if(this.slots[i] != null && droneSlot != null) { + emptied = false; + } + } + + this.markDirty(); + + if(emptied) { + drone.setAppearance(0); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + } + } + + protected void loadFluid(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 0) return; + + if(this.tank.getFill() > 0) { + drone.fluid = new FluidStack(tank.getTankType(), tank.getFill()); + this.tank.setFill(0); + drone.setAppearance(2); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + + this.markDirty(); + } + } + + protected void unloadFluid(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 2) return; + + if(drone.fluid != null && drone.fluid.type == tank.getTankType()) { + + if(drone.fluid.fill + tank.getFill() <= tank.getMaxFill()) { + tank.setFill(tank.getFill() + drone.fluid.fill); + drone.fluid = null; + drone.setAppearance(0); + } else { + int overshoot = drone.fluid.fill + tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + drone.fluid.fill = overshoot; + } + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + + this.markDirty(); + } + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + + @Override + public BlockPos getPoint() { + return new BlockPos(xCoord, yCoord + 1, zCoord); + } + + @Override + public void setNextTarget(int x, int y, int z) { + this.nextX = x; + this.nextY = y; + this.nextZ = z; + this.markDirty(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + this.sendingMode = nbt.getBoolean("mode"); + this.itemType = nbt.getBoolean("type"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + nbt.setBoolean("mode", sendingMode); + nbt.setBoolean("type", itemType); + tank.writeToNBT(nbt, "t"); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneCrate(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneCrate(player.inventory, this); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("mode")) { + this.sendingMode = !this.sendingMode; + this.markChanged(); + } + + if(data.hasKey("type")) { + this.itemType = !this.itemType; + this.markChanged(); + } + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } + + @Override + public FluidTank[] getSendingTanks() { + return !sendingMode && !itemType ? new FluidTank[] { tank } : new FluidTank[0]; + } + + @Override + public FluidTank[] getReceivingTanks() { + return sendingMode && !itemType ? new FluidTank[] { tank } : new FluidTank[0]; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java new file mode 100644 index 000000000..82b6b93f0 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -0,0 +1,193 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import com.hbm.entity.item.EntityRequestDrone; +import com.hbm.entity.item.EntityRequestDrone.DroneProgram; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.container.ContainerDroneDock; +import com.hbm.inventory.gui.GUIDroneDock; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDrone.EnumDroneType; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.OfferNode; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.tileentity.network.RequestNetwork.RequestNode; +import com.hbm.util.HashedSet; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class TileEntityDroneDock extends TileEntityRequestNetworkContainer implements IGUIProvider { + + public static final int pathingDepth = 10; + + public TileEntityDroneDock() { + super(9); + } + + @Override + public String getName() { + return "container.droneDock"; + } + + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 100 == 0 && this.hasDrone()) { + + // grab all nodes in a 5 chunk radius + HashedSet localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 5); + List requests = new ArrayList(); + List offers = new ArrayList(); + + for(PathNode local : localNodes) { + if(local instanceof RequestNode) requests.add((RequestNode) local); + if(local instanceof OfferNode) offers.add((OfferNode) local); + } + + attempt: for(int i = 0; i < 5; i++) { + + // randomize! + Collections.shuffle(requests); + Collections.shuffle(offers); + RequestNode firstRequest = null; + + // simply pick the first request node that has unfulfilled requests + for(RequestNode request : requests) { + if(!request.request.isEmpty()) { + firstRequest = request; + break; + } + } + + if(firstRequest != null) { + + PathNode own = localNodes.getMap().get(new BlockPos(xCoord, yCoord + 1, zCoord).hashCode()); + AStack request = firstRequest.request.get(worldObj.rand.nextInt(firstRequest.request.size())); + + outer: for(OfferNode offer : offers) { + + for(ItemStack stack : offer.offer) { + if(stack != null && request.matchesRecipe(stack, true)) { + if(tryEmbark(own, firstRequest, offer, request, localNodes)) break attempt; // if the drone can be pathed and spawned, stop doing more attempts + break outer; // if not, simply continue iterating over offer nodes + } + } + } + } + } + } + } + + public boolean tryEmbark(PathNode dock, RequestNode request, OfferNode offer, AStack item, HashedSet localNodes) { + + List dockToOffer = generatePath(dock, offer, localNodes); + if(dockToOffer == null) return false; + List offerToRequest = generatePath(offer, request, localNodes); + if(offerToRequest == null) return false; + List requestToDock = generatePath(request, dock, localNodes); + if(requestToDock == null) return false; + + + for(int i = 0; i < this.slots.length; i++) { + ItemStack stack = slots[i]; + if(stack != null && stack.getItem() == ModItems.drone && stack.getItemDamage() == EnumDroneType.REQUEST.ordinal()) { + this.decrStackSize(i, 1); + break; + } + } + + EntityRequestDrone drone = new EntityRequestDrone(worldObj); + drone.setPosition(xCoord + 0.5, yCoord + 1, zCoord + 0.5); + + // write programming + for(PathNode node : dockToOffer) drone.program.add(node.pos); + drone.program.add(offer.pos); + drone.program.add(item); + for(PathNode node : offerToRequest) drone.program.add(node.pos); + drone.program.add(request.pos); + drone.program.add(DroneProgram.UNLOAD); + for(PathNode node : requestToDock) drone.program.add(node.pos); + drone.program.add(dock.pos); + drone.program.add(DroneProgram.DOCK); + + worldObj.spawnEntityInWorld(drone); + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageOpen", 2.0F, 1.0F); + + return true; + } + + public List generatePath(PathNode start, PathNode end, HashedSet localNodes) { + + List> paths = new ArrayList(); + List init = new ArrayList(); + init.add(start); + paths.add(init); + + // breadth-first search + for(int i = 0; i < pathingDepth; i++) { + + List> newPaths = new ArrayList(); + + for(List oldPath : paths) { + for(PathNode connectedUnsafe : oldPath.get(oldPath.size() - 1).reachableNodes) { + + PathNode connectedSafe = localNodes.getMap().get(connectedUnsafe.hashCode()); // lookup to translate potentially outdated nodes into current ones + if(connectedSafe != null) { + + List newPath = new ArrayList(); + newPath.addAll(oldPath); + + if(connectedSafe.hashCode() == end.hashCode()) { + newPath.remove(0); // we only want the in-betweens + return newPath; + } + + newPath.add(connectedSafe); + newPaths.add(newPath); + } + } + } + + paths = newPaths; + } + + return null; + } + + public boolean hasDrone() { + + for(int i = 0; i < this.slots.length; i++) { + ItemStack stack = slots[i]; + if(stack != null && stack.getItem() == ModItems.drone && stack.getItemDamage() == EnumDroneType.REQUEST.ordinal()) return true; + } + + return false; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneDock(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneDock(player.inventory, this); + } + + @Override + public PathNode createNode(BlockPos pos) { + return new PathNode(pos, this.reachableNodes); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java new file mode 100644 index 000000000..0b32073e6 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java @@ -0,0 +1,64 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.container.ContainerDroneProvider; +import com.hbm.inventory.gui.GUIDroneProvider; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.OfferNode; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class TileEntityDroneProvider extends TileEntityRequestNetworkContainer implements IGUIProvider { + + public TileEntityDroneProvider() { + super(9); + } + + @Override + public String getName() { + return "container.droneProvider"; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return true; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return false; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneProvider(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneProvider(player.inventory, this); + } + + @Override + public PathNode createNode(BlockPos pos) { + List offer = new ArrayList(); + for(ItemStack stack : slots) if(stack != null) offer.add(stack.copy()); + return new OfferNode(pos, this.reachableNodes, offer); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java new file mode 100644 index 000000000..75ff11bf5 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java @@ -0,0 +1,125 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.container.ContainerDroneRequester; +import com.hbm.inventory.gui.GUIDroneRequester; +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.tileentity.network.RequestNetwork.RequestNode; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; + +public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer implements INBTPacketReceiver, IGUIProvider { + + public ModulePatternMatcher matcher; + + public TileEntityDroneRequester() { + super(18); + this.matcher = new ModulePatternMatcher(9); + } + + @Override + public String getName() { + return "container.droneRequester"; + } + + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + this.matcher.writeToNBT(data); + INBTPacketReceiver.networkPack(this, data, 15); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.matcher.readFromNBT(nbt); + } + + public void nextMode(int i) { + this.matcher.nextMode(worldObj, slots[i], i); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.matcher.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.matcher.writeToNBT(nbt); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneRequester(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneRequester(player.inventory, this); + } + + @Override + public PathNode createNode(BlockPos pos) { + List request = new ArrayList(); + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + ItemStack stock = slots[i + 9]; + if(filter == null) continue; + String mode = this.matcher.modes[i]; + AStack aStack = null; + + if(ModulePatternMatcher.MODE_EXACT.equals(mode)) { + aStack = new ComparableStack(filter).makeSingular(); + } else if(ModulePatternMatcher.MODE_WILDCARD.equals(mode)) { + aStack = new ComparableStack(filter.getItem(), 1, OreDictionary.WILDCARD_VALUE); + } else if(mode != null) { + aStack = new OreDictStack(mode); + } + + if(aStack == null) continue; + + if(stock == null || !this.matcher.isValidForFilter(filter, i, stock)) request.add(aStack); + } + return new RequestNode(pos, this.reachableNodes, request); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java new file mode 100644 index 000000000..f14fb0f99 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java @@ -0,0 +1,101 @@ +package com.hbm.tileentity.network; + +import java.util.List; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketReceiver, IDroneLinkable { + + public int height = 5; + public int nextX = -1; + public int nextY = -1; + public int nextZ = -1; + + @Override + public void updateEntity() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + + if(!worldObj.isRemote) { + + if(nextY != -1) { + List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).offset(dir.offsetX * height, dir.offsetY * height, dir.offsetZ * height)); + for(EntityDeliveryDrone drone : drones) { + if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { + drone.setTarget(nextX + 0.5, nextY, nextZ + 0.5); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("height", height); + data.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + INBTPacketReceiver.networkPack(this, data, 15); + } else { + + if(nextY != -1 && worldObj.getTotalWorldTime() % 2 == 0) { + double x = xCoord + height * dir.offsetX + 0.5; + double y = yCoord + height * dir.offsetY + 0.5; + double z = zCoord + height * dir.offsetZ + 0.5; + + worldObj.spawnParticle("reddust", x, y, z, 0, 0, 0); + } + } + } + + @Override + public BlockPos getPoint() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + return new BlockPos(xCoord, yCoord, zCoord).offset(dir, height); + } + + @Override + public void setNextTarget(int x, int y, int z) { + this.nextX = x; + this.nextY = y; + this.nextZ = z; + this.markDirty(); + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.height = nbt.getInteger("height"); + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + } + + public void addHeight(int h) { + height += h; + height = MathHelper.clamp_int(height, 1, 15); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.height = nbt.getInteger("height"); + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("height", height); + nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java new file mode 100644 index 000000000..677078341 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java @@ -0,0 +1,43 @@ +package com.hbm.tileentity.network; + +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityDroneWaypointRequest extends TileEntityRequestNetwork { + + public int height = 5; + + @Override + public BlockPos getCoord() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + return new BlockPos(xCoord + dir.offsetX * height, yCoord + dir.offsetY * height, zCoord + dir.offsetZ * height); + } + + public void addHeight(int h) { + height += h; + height = MathHelper.clamp_int(height, 1, 15); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.height = nbt.getInteger("height"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("height", height); + } + + @Override + public PathNode createNode(BlockPos pos) { + return new PathNode(pos, this.reachableNodes); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java new file mode 100644 index 000000000..5f2e68975 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -0,0 +1,253 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.gui.GuiScreenRadioTelex; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiver, IControlReceiver, IGUIProvider { + + public static final int lineWidth = 33; + public String txChannel = ""; + public String rxChannel = ""; + public String[] txBuffer = new String[] {"", "", "", "", ""}; + public String[] rxBuffer = new String[] {"", "", "", "", ""}; + public int sendingLine = 0; + public int sendingIndex = 0; + public boolean isSending = false; + public int sendingWait = 0; + public int writingLine = 0; + public boolean printAfterRx = false; + public boolean deleteOnReceive = true; + public char sendingChar = ' '; + + public static final char eol = '\n'; + public static final char eot = '\u0004'; + public static final char bell = '\u0007'; + public static final char print = '\u000c'; + public static final char pause = '\u0016'; + public static final char clear = '\u007f'; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.sendingChar = ' '; + + if(this.isSending && this.txChannel.isEmpty()) this.isSending = false; + + if(this.isSending) { + + if(sendingWait > 0) { + sendingWait--; + } else { + + String line = txBuffer[sendingLine]; + + if(line.length() > sendingIndex) { + char c = line.charAt(sendingIndex); + sendingIndex++; + if(c == pause) { + sendingWait = 20; + } else { + RTTYSystem.broadcast(worldObj, this.txChannel, c); + this.sendingChar = c; + } + } else { + + if(sendingLine >= 4) { + this.isSending = false; + RTTYSystem.broadcast(worldObj, this.txChannel, eot); + this.sendingLine = 0; + this.sendingIndex = 0; + } else { + RTTYSystem.broadcast(worldObj, this.txChannel, eol); + this.sendingLine++; + this.sendingIndex = 0; + } + } + } + } + + if(!this.rxChannel.isEmpty()) { + RTTYChannel chan = RTTYSystem.listen(worldObj, this.rxChannel); + + if(chan != null && chan.signal instanceof Character && (chan.timeStamp > worldObj.getTotalWorldTime() - 2 && chan.timeStamp != -1)) { + char c = (char) chan.signal; + + if(this.deleteOnReceive) { + this.deleteOnReceive = false; + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } + + if(c == eot) { + if(this.printAfterRx) { + this.printAfterRx = false; + this.print(); + } + this.deleteOnReceive = true; + } else if(c == eol) { + if(this.writingLine < 4) this.writingLine++; + this.markDirty(); + } else if(c == bell) { + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.orb", 2F, 0.5F); + } else if(c == print) { + this.printAfterRx = true; + } else if(c == clear) { + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } else { + this.rxBuffer[this.writingLine] += c; + this.markDirty(); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + for(int i = 0; i < 5; i++) { + data.setString("tx" + i, txBuffer[i]); + data.setString("rx" + i, rxBuffer[i]); + } + data.setString("txChan", txChannel); + data.setString("rxChan", rxChannel); + data.setInteger("sending", sendingChar); + INBTPacketReceiver.networkPack(this, data, 16); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + + for(int i = 0; i < 5; i++) { + txBuffer[i] = nbt.getString("tx" + i); + rxBuffer[i] = nbt.getString("rx" + i); + } + this.txChannel = nbt.getString("txChan"); + this.rxChannel = nbt.getString("rxChan"); + this.sendingChar = (char) nbt.getInteger("sending"); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + for(int i = 0; i < 5; i++) { + if(data.hasKey("tx" + i)) this.txBuffer[i] = data.getString("tx" + i); + } + + String cmd = data.getString("cmd"); + + if("snd".equals(cmd) && !this.isSending) { + this.isSending = true; + this.sendingLine = 0; + this.sendingIndex = 0; + } + + if("rxprt".equals(cmd)) { + print(); + } + + if("rxcls".equals(cmd)) { + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } + + if("sve".equals(cmd)) { + this.txChannel = data.getString("txChan"); + this.rxChannel = data.getString("rxChan"); + this.markDirty(); + } + } + + public void print() { + ItemStack stack = new ItemStack(Items.paper); + List text = new ArrayList(); + for(int i = 0; i < 5; i++) { + if(!rxBuffer[i].isEmpty()) text.add(rxBuffer[i]); + } + ItemStackUtil.addTooltipToStack(stack, text.toArray(new String[0])); + stack.setStackDisplayName("Message"); + worldObj.spawnEntityInWorld(new EntityItem(worldObj, xCoord + 0.5, yCoord + 1, zCoord + 0.5, stack)); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 16 * 16; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + for(int i = 0; i < 5; i++) { + txBuffer[i] = nbt.getString("tx" + i); + rxBuffer[i] = nbt.getString("rx" + i); + } + this.txChannel = nbt.getString("txChan"); + this.rxChannel = nbt.getString("rxChan"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + for(int i = 0; i < 5; i++) { + nbt.setString("tx" + i, txBuffer[i]); + nbt.setString("rx" + i, rxBuffer[i]); + } + nbt.setString("txChan", txChannel); + nbt.setString("rxChan", rxChannel); + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GuiScreenRadioTelex(this); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java new file mode 100644 index 000000000..645374a1e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -0,0 +1,189 @@ +package com.hbm.tileentity.network; + +import java.util.HashMap; +import java.util.Iterator; + +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.HashedSet; +import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; + +/** + * i can see it clearly + * this simple idea, this concept of 4 individually acting objects performing basic tasks + * it is all spiraling out of control + * in a giant mess of nested generics, magic numbers and static global variables + * may god have mercy on my soul + * + * @author hbm + * + */ +public abstract class TileEntityRequestNetwork extends TileEntity { + + public HashedSet reachableNodes = new HashedSet(); + public HashedSet knownNodes = new HashedSet(); + public static final int maxRange = 24; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + BlockPos pos = getCoord(); + // push new node + push(worldObj, createNode(pos)); + + // remove known nodes that no longer exist + // since we can assume a sane number of nodes to exist at any given time, we can run this check in full every second + Iterator it = knownNodes.iterator(); + HashedSet localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 2); // this bit may spiral into multiple nested hashtable lookups but it's limited to only a few chunks so it shouldn't be an issue + localNodes.remove(pos); + while(it.hasNext()) { + PathNode node = it.next(); + if(!localNodes.contains(node)) { + reachableNodes.remove(node); + it.remove(); + } + } + + // draw debug crap + for(PathNode known : knownNodes) { + if(reachableNodes.contains(known)) ParticleUtil.spawnDroneLine(worldObj, + pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, + (known.pos.getX() - pos.getX()) / 2D, (known.pos.getY() - pos.getY()) / 2D, (known.pos.getZ() - pos.getZ()) / 2D, + reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); + } + + /*NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 1.5F); + data.setString("text", knownNodes.size() + " / " + reachableNodes.size() + " / " + localNodes.size()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + */ + + //both following checks run the `hasPath` function which is costly, so it only runs one op at a time + + //rescan known nodes + for(PathNode known : knownNodes) { + + if(!hasPath(worldObj, pos, known.pos)) { + reachableNodes.remove(known); + } else { + reachableNodes.add(known); + } + } + + //discover new nodes + int newNodeLimit = 5; + for(PathNode node : localNodes) { + + if(!knownNodes.contains(node) && !node.equals(pos)) { + newNodeLimit--; + knownNodes.add(node); + if(hasPath(worldObj, pos, node.pos)) reachableNodes.add(node); + } + + if(newNodeLimit <= 0) break; + } + } + } + } + + public abstract PathNode createNode(BlockPos pos); + + public BlockPos getCoord() { + return new BlockPos(xCoord, yCoord + 1, zCoord); + } + + /** + * Performs a bidirectional scan to see if the nodes have line of sight + * @param world + * @param pos1 + * @param pos2 + * @return + */ + public static boolean hasPath(World world, BlockPos pos1, BlockPos pos2) { + Vec3 vec1 = Vec3.createVectorHelper(pos1.getX() + 0.5, pos1.getY() + 0.5, pos1.getZ() + 0.5); + Vec3 vec2 = Vec3.createVectorHelper(pos2.getX() + 0.5, pos2.getY() + 0.5, pos2.getZ() + 0.5); + Vec3 vec3 = vec1.subtract(vec2); + if(vec3.lengthVector() > maxRange) return false; + //for some fucking reason beyond any human comprehension, this function will randomly yield incorrect results but only from one side + //therefore we just run the stupid fucking thing twice and then compare the results + //thanks for this marvelous piece of programming, mojang + MovingObjectPosition mop0 = world.func_147447_a(vec1, vec2, false, true, false); + MovingObjectPosition mop2 = world.func_147447_a(vec2, vec1, false, true, false); + return (mop0 == null || mop0.typeOfHit == mop0.typeOfHit.MISS) && (mop2 == null || mop2.typeOfHit == mop2.typeOfHit.MISS); + } + + /** + * Adds the position to that chunk's node list. + * @param world + * @param x + * @param y + * @param z + */ + public static void push(World world, PathNode node) { + + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); + + if(coordMap == null) { + coordMap = new HashMap(); + RequestNetwork.activeWaypoints.put(world, coordMap); + } + + ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(node.pos.getX() >> 4, node.pos.getZ() >> 4); + HashedSet posList = coordMap.get(chunkPos); + + if(posList == null) { + posList = new HashedSet(); + coordMap.put(chunkPos, posList); + } + + posList.add(node); + } + + /** + * Gets all active nodes in a 5x5 chunk area, centered around the given position. + * Used for finding neighbors to check connections to. + * @param world + * @param x + * @param z + * @return + */ + public static HashedSet getAllLocalNodes(World world, int x, int z, int range) { + + HashedSet nodes = new HashedSet(); + HashedSet pos = new HashedSet(); + + x >>= 4; + z >>= 4; + + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); + + if(coordMap == null) return nodes; + + for(int i = -range; i <= range; i++) { + for(int j = -range; j <= range; j++) { + + HashedSet nodeList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); + + if(nodeList != null) for(PathNode node : nodeList) { + if(!pos.contains(node.pos)) { + nodes.add(node); + //pos.add(node.pos); + } + } + } + } + + return nodes; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java new file mode 100644 index 000000000..71fc659f9 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java @@ -0,0 +1,147 @@ +package com.hbm.tileentity.network; + +import com.hbm.packet.NBTPacket; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +/** + * "Multiple inheritance is bad because...uhhhh...i guess if you do it wrong then it can lead to bad things" + * ~ genuinely retarded people on StackOverflow + * like yeah, doing things wrong can lead to bad things + * no shit + * just like how java operates already + * you fucking dork + * + * this class has to extend TileEntityRequestNetwork for all the network stuff to work + * but it also needs slots and all the container boilerplate crap + * since multiple inheritance is a sin punishable by stoning, i had to cram the entire contents of TileEntityMachineBase into this class + * is this good code? is this what you wanted? was it worth avoiding those hypothetical scenarios where multiple inheritance is le bad? + * i believe that neither heaven nor hell awaits me when all is said and done + * saint peter will send me to southend + * + * @author hbm + */ +public abstract class TileEntityRequestNetworkContainer extends TileEntityRequestNetwork implements ISidedInventory { + + public ItemStack slots[]; + + private String customName; + + public TileEntityRequestNetworkContainer(int scount) { + slots = new ItemStack[scount]; + } + + @Override public int getSizeInventory() { return slots.length; } + @Override public ItemStack getStackInSlot(int i) { return slots[i]; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return false; } + @Override public boolean canInsertItem(int slot, ItemStack itemStack, int side) { return this.isItemValidForSlot(slot, itemStack); } + @Override public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return false; } + @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] { }; } + + public void markChanged() { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if(slots[i] != null) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : getName(); } + public abstract String getName(); + @Override public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } + public void setCustomName(String name) { this.customName = name; } + @Override public int getInventoryStackLimit() { return 64; } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(slots[slot] != null) { + + if(slots[slot].stackSize <= amount) { + ItemStack itemStack = slots[slot]; + slots[slot] = null; + return itemStack; + } + + ItemStack itemStack1 = slots[slot].splitStack(amount); + if(slots[slot].stackSize == 0) { + slots[slot] = null; + } + + return itemStack1; + } else { + return null; + } + } + + public void networkPack(NBTTagCompound nbt, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + for(int i = 0; i < list.tagCount(); i++) + { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if(b0 >= 0 && b0 < slots.length) + { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); + + for(int i = 0; i < slots.length; i++) + { + if(slots[i] != null) + { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte)i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index a32914fc3..3b9c8d3ec 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.handler.CasingEjector; import com.hbm.inventory.container.ContainerTurretBase; @@ -27,7 +26,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implements IGUIProvider { @@ -221,20 +219,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen return 7; } - protected void updateConnections() { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - for(int i = 0; i < 2; i++) { - for(int j = 0; j < 4; j++) { - this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH); - this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST); - } - } - } - @Override public void updateEntity() { @@ -303,13 +287,14 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen if(tPos != null) this.alignTurret(); } else { - this.target = null; this.tPos = null; } if(!worldObj.isRemote) { + if(!isOn()) this.targetQueue.clear(); + if(this.target != null && !target.isEntityAlive()) { this.target = null; this.tPos = null; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java index 35d211872..f4866fe7a 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java @@ -3,12 +3,26 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.IRadarCommandReceiver; + import net.minecraft.entity.Entity; import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT { +public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT implements IRadarCommandReceiver { protected List targetQueue = new ArrayList(); + + public boolean sendCommandPosition(int x, int y, int z) { + this.enqueueTarget(x + 0.5, y, z + 0.5); + return true; + } + + public boolean sendCommandEntity(Entity target) { + this.enqueueTarget(target.posX, target.posY, target.posZ); + return true; + } public void enqueueTarget(double x, double y, double z) { @@ -40,4 +54,19 @@ public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBase return height < (e.posY + e.height); } } + + @Override + protected void updateConnections() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(int i = 0; i < 2; i++) { + for(int j = 0; j < 4; j++) { + this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * -3, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * -3, ForgeDirection.SOUTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (-1 + j) + rot.offsetX * 2, yCoord + i, zCoord + dir.offsetZ * (-1 + j) + rot.offsetZ * 2, ForgeDirection.NORTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -2 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * -2 + rot.offsetZ * (1 - j), ForgeDirection.EAST); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 3 + rot.offsetX * (1 - j), yCoord + i, zCoord + dir.offsetZ * 3 + rot.offsetZ * (1 - j), ForgeDirection.WEST); + } + } + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 62580710e..53496d00a 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -7,7 +7,7 @@ import java.util.function.BiFunction; import com.hbm.blocks.BlockDummyable; import com.hbm.entity.logic.EntityBomber; -import com.hbm.entity.missile.EntityMissileBaseAdvanced; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.entity.projectile.EntityBulletBaseNT; @@ -29,6 +29,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatExternal; import api.hbm.energy.IEnergyUser; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -642,7 +643,8 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(targetMachines) { - if(e instanceof EntityMissileBaseAdvanced) return true; + if(e instanceof IRadarDetectableNT && !((IRadarDetectableNT)e).canBeSeenBy(this)) return false; + if(e instanceof EntityMissileBaseNT) return true; if(e instanceof EntityMissileCustom) return true; if(e instanceof EntityMinecart) return true; if(e instanceof EntityRailCarBase) return true; @@ -653,9 +655,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(targetPlayers ) { - if(e instanceof FakePlayer) - return false; - + if(e instanceof FakePlayer) return false; if(e instanceof EntityPlayer) return true; for(Class c : CompatExternal.turretTargetPlayer) if(c.isAssignableFrom(e.getClass())) return true; } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 0b0718d44..050040197 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -222,6 +222,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem if(!worldObj.isRemote) { + if(!isOn()) this.targetQueue.clear(); + if(this.target != null && !target.isEntityAlive()) { this.target = null; this.tPos = null; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java index ea00c1637..91dc3e9ab 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java @@ -3,13 +3,18 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.gui.GUITurretMaxwell; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; import com.hbm.util.EntityDamageUtil; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -21,10 +26,11 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { +public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT implements IUpgradeInfoProvider { @Override public String getName() { @@ -64,6 +70,41 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { return ammoStacks; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT || type == UpgradeType.POWER || type == UpgradeType.AFTERBURN || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.turret_maxwell)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + "Damage +0." + (level * 25) + "/t"); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 3) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_RANGE, "+" + (level * 3) + "m")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + "Afterburn +3s"); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 27; + if(type == UpgradeType.POWER) return 27; + if(type == UpgradeType.EFFECT) return 27; + if(type == UpgradeType.AFTERBURN) return 27; + if(type == UpgradeType.OVERDRIVE) return 27; + return 0; + } @Override public double getAcceptableInaccuracy() { diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 6ece2e502..33272462b 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -62,6 +62,7 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); diff --git a/src/main/java/com/hbm/util/EntityDamageUtil.java b/src/main/java/com/hbm/util/EntityDamageUtil.java index e1c299c7c..c86fb2ee9 100644 --- a/src/main/java/com/hbm/util/EntityDamageUtil.java +++ b/src/main/java/com/hbm/util/EntityDamageUtil.java @@ -67,7 +67,11 @@ public class EntityDamageUtil { if(!victim.attackEntityFrom(src, damage)) { if(victim instanceof EntityLivingBase) { - damage += ((EntityLivingBase) victim).lastDamage; + EntityLivingBase living = (EntityLivingBase) victim; + + if(living.hurtResistantTime > living.maxHurtResistantTime / 2.0F) { + damage += living.lastDamage; + } } return victim.attackEntityFrom(src, damage); } else { diff --git a/src/main/java/com/hbm/util/HashedSet.java b/src/main/java/com/hbm/util/HashedSet.java new file mode 100644 index 000000000..6a45c952b --- /dev/null +++ b/src/main/java/com/hbm/util/HashedSet.java @@ -0,0 +1,143 @@ +package com.hbm.util; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; +import java.util.Set; + +import org.apache.commons.lang3.NotImplementedException; + +/** + * A crude implementation of the HashSet with a few key differences: + * - instead of being stored as the key, the objects are stored as values in the underlying HashMap with the hash being the key + * - consequently, things with matching hash are considered the same, skipping the equals check + * - no equals check means that collisions are possible, so be careful + * - the underlying HashMap is accessible, which means that the instances can be grabbed out of the HashedSet if a hash is supplied + * + * This sack of crap was only intended for the drone request network code + * + * @author hbm + * + * @param + */ +public class HashedSet implements Set { + + HashMap map = new HashMap(); + + public static class HashedIterator implements Iterator { + + private Iterator> iterator; + + public HashedIterator(HashedSet set) { + this.iterator = set.map.entrySet().iterator(); + } + + @Override + public boolean hasNext() { + return this.iterator.hasNext(); + } + + @Override + public Object next() { + return this.iterator.next().getValue(); + } + + @Override + public void remove() { + this.iterator.remove(); + } + } + + public HashedSet() { } + + public HashedSet(Set reachableNodes) { + this.addAll(reachableNodes); + } + + public HashMap getMap() { + return this.map; + } + + @Override + public boolean add(Object e) { + boolean contains = this.contains(e); + this.map.put(e.hashCode(), (T) e); + return contains; + } + + @Override + public boolean addAll(Collection c) { + boolean ret = false; + for(Object o : c) if(add(o)) ret = true; + return ret; + } + + @Override + public void clear() { + this.map.clear(); + } + + @Override + public boolean contains(Object o) { + return this.map.containsKey(o.hashCode()); + } + + @Override + public boolean containsAll(Collection c) { + + for(Object o : c) { + if(!this.contains(o)) return false; + } + + return true; + } + + @Override + public boolean isEmpty() { + return this.map.isEmpty(); + } + + @Override + public Iterator iterator() { + return new HashedIterator(this); + } + + @Override + public boolean remove(Object o) { + T obj = this.map.get(o.hashCode()); + boolean rem = false; + + if(obj != null) { + rem = true; + this.map.remove(o.hashCode()); + } + + return rem; + } + + @Override + public boolean removeAll(Collection c) { + return false; + } + + @Override + public boolean retainAll(Collection c) { + throw new NotImplementedException("Fuck you"); + } + + @Override + public int size() { + return this.map.size(); + } + + @Override + public Object[] toArray() { + throw new NotImplementedException("Fuck you"); + } + + @Override + public Object[] toArray(Object[] a) { + throw new NotImplementedException("Fuck you"); + } +} diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 8efc4be37..4e6a27661 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -375,6 +375,10 @@ public class InventoryUtil { return stacks; } + if(o instanceof ItemStack[][]) { + return (ItemStack[][]) o; + } + if(o instanceof AStack) { AStack astack = (AStack) o; ItemStack[] ext = astack.extractForNEI().toArray(new ItemStack[0]); diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 69b0af7f5..537796427 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -8,6 +8,7 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemBookLore; import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -140,4 +141,46 @@ public class LootGenerator { } } } + + public static void lootBones(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + + int limit = world.rand.nextInt(3) + 3; + for(int i = 0; i < limit; i++) { + addItemWithDeviation(loot, world.rand, new ItemStack(Items.bone), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + } + } + } + + public static void lootGlyphidHive(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + + int limit = world.rand.nextInt(3) + 3; + for(int i = 0; i < limit; i++) { + + ItemStack stack = new ItemStack(ModItems.ammo_12gauge, 4); + + switch(world.rand.nextInt(11)) { + case 0: stack = new ItemStack(ModItems.steel_plate); break; + case 1: stack = new ItemStack(ModItems.gun_lever_action); break; + case 2: stack = new ItemStack(ModItems.grenade_if_generic); break; + case 3: + case 4: stack = new ItemStack(ModItems.bottle_nuka, 1 + world.rand.nextInt(2)); break; + case 5: + case 6: stack = new ItemStack(ModItems.ingot_steel, 3 + world.rand.nextInt(10)); break; + case 7: stack = new ItemStack(ModItems.steel_pickaxe); break; + case 8: stack = new ItemStack(ModItems.gas_mask_m65); break; + case 9: stack = new ItemStack(ModItems.ammo_20gauge, 8); break; + } + + addItemWithDeviation(loot, world.rand, stack, world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + } + } + } } diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java index 0428ec19b..45898c14d 100644 --- a/src/main/java/com/hbm/util/ParticleUtil.java +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -27,4 +27,22 @@ public class ParticleUtil { PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); } } + + public static void spawnDroneLine(World world, double x, double y, double z, double x0, double y0, double z0, int color) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debugdrone"); + data.setDouble("mX", x0); + data.setDouble("mY", y0); + data.setDouble("mZ", z0); + data.setInteger("color", color); + if(world.isRemote) { + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + MainRegistry.proxy.effectNT(data); + } else { + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); + } + } } diff --git a/src/main/java/com/hbm/util/TimeAnalyzer.java b/src/main/java/com/hbm/util/TimeAnalyzer.java index 6cb4f53ec..ec856e301 100644 --- a/src/main/java/com/hbm/util/TimeAnalyzer.java +++ b/src/main/java/com/hbm/util/TimeAnalyzer.java @@ -3,6 +3,7 @@ package com.hbm.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map.Entry; import com.hbm.util.Tuple.Pair; @@ -44,11 +45,11 @@ public class TimeAnalyzer { for(Entry entry : milliTime.entrySet()) { total += entry.getValue(); - String time = String.format("%,d", entry.getValue()); + String time = String.format(Locale.US, "%,d", entry.getValue()); System.out.println(entry.getKey() + ": " + time + "ns"); } - System.out.println("Total time passed: " + String.format("%,d", total) + "ns (" + (total / 1_000_000_000) + "s)"); + System.out.println("Total time passed: " + String.format(Locale.US, "%,d", total) + "ns (" + (total / 1_000_000_000) + "s)"); currentSection = ""; sectionStartTime = 0; diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java index c09a2dcc6..4b2c6a1c8 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java @@ -7,7 +7,7 @@ import net.minecraftforge.common.util.ForgeDirection; /** * Adjusted code from MC 1.12 (com.minecraft.util.math.BlockPos) */ -public class BlockPos { +public class BlockPos implements Cloneable { private final int x; private final int y; @@ -69,10 +69,10 @@ public class BlockPos { return this.z; } - /** 1.12 vanilla implementation */ + /** modified 1.12 vanilla implementation */ @Override public int hashCode() { - return (this.getY() + this.getZ() * 31) * 31 + this.getX(); + return (this.getY() + this.getZ() * 27644437) * 27644437 + this.getX(); } @Override @@ -92,4 +92,12 @@ public class BlockPos { } } } + + @Override + public BlockPos clone() { + try { + return (BlockPos) super.clone(); + } catch(Exception x) { } + return null; + } } diff --git a/src/main/java/com/hbm/util/function/Function.java b/src/main/java/com/hbm/util/function/Function.java index 4e8cc26b9..9dd32272c 100644 --- a/src/main/java/com/hbm/util/function/Function.java +++ b/src/main/java/com/hbm/util/function/Function.java @@ -1,5 +1,7 @@ package com.hbm.util.function; +import java.util.Locale; + import com.hbm.util.BobMathUtil; import net.minecraft.util.EnumChatFormatting; @@ -28,8 +30,8 @@ public abstract class Function { public String getXName(boolean brackets) { String x = "x"; boolean mod = false; - if(div != 1D) x += " / " + String.format("%,.1f", div); - if(off != 0D) x += " + " + String.format("%,.1f", off); + if(div != 1D) x += " / " + String.format(Locale.US, "%,.1f", div); + if(off != 0D) x += " + " + String.format(Locale.US, "%,.1f", off); if(mod && brackets) x = "(" + x + ")"; return x; } @@ -47,21 +49,21 @@ public abstract class Function { public static class FunctionLogarithmic extends FunctionSingleArg { public FunctionLogarithmic(double level) { super(level); this.withOff(1D); } @Override public double effonix(double x) { return Math.log10(getX(x)) * level; } - @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"; } } public static class FunctionPassive extends FunctionSingleArg { public FunctionPassive(double level) { super(level); } @Override public double effonix(double x) { return this.level; } - @Override public String getLabelForFuel() { return "" + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return "" + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"; } } public static class FunctionSqrt extends FunctionSingleArg { public FunctionSqrt(double level) { super(level); } @Override public double effonix(double x) { return BobMathUtil.squirt(getX(x)) * this.level; } - @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format("%,.3f", this.level); } //not entirely correct but good enough + @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format(Locale.US, "%,.3f", this.level); } //not entirely correct but good enough @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; } } @@ -75,7 +77,7 @@ public abstract class Function { public static class FunctionLinear extends FunctionSingleArg { public FunctionLinear(double level) { super(level); } @Override public double effonix(double x) { return getX(x) * this.level; } - @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / LINEAR"; } } @@ -83,7 +85,7 @@ public abstract class Function { public FunctionQuadratic(double level) { super(level, 0D); } public FunctionQuadratic(double level, double vOff) { super(level, vOff); } @Override public double effonix(double x) { return getX(x) * getX(x) * this.level + this.vOff; } - @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format("%,.1f", this.level) + (vOff != 0 ? (" + " + String.format("%,.1f", vOff)) : ""); } + @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format(Locale.US, "%,.1f", this.level) + (vOff != 0 ? (" + " + String.format(Locale.US, "%,.1f", vOff)) : ""); } @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"; } } } diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index 89f1db25e..ef9c0f361 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -2,18 +2,37 @@ package com.hbm.world; import com.hbm.packet.BiomeSyncPacket; import com.hbm.packet.PacketDispatcher; - import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.AnvilChunkLoader; +import net.minecraft.world.gen.ChunkProviderServer; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.chunkio.ChunkIOExecutor; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; public class WorldUtil { public static void setBiome(World world, int x, int z, BiomeGenBase biome) { Chunk chunk = world.getChunkFromBlockCoords(x, z); chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)] = (byte)(biome.biomeID & 255); + chunk.isModified = true; + } + + public static void syncBiomeChange(World world, int x, int z) { + Chunk chunk = world.getChunkFromBlockCoords(x, z); + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + } + + public static void syncBiomeChangeBlock(World world, int x, int z) { + Chunk chunk = world.getChunkFromBlockCoords(x, z); + byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; + PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, biome), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); } public static void syncBiomeChange(World world, Chunk chunk) { @@ -31,9 +50,59 @@ public class WorldUtil { PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(coord.chunkXPos, coord.chunkZPos, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, coord.getCenterXPos(), 128, coord.getCenterZPosition() /* who named you? */, 1024D)); } - public static void syncBiomeChange(World world, int x, int z) { - Chunk chunk = world.getChunkFromBlockCoords(x, z); - byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; - PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); + /**Chunkloads the chunk the entity is going to spawn in and then spawns it + * @param entity The entity to be spawned**/ + + /*fun fact: this is based off of joinEntityInSurroundings in World + however, since mojang is staffed by field mice, that function is client side only and half-baked + */ + public static void loadAndSpawnEntityInWorld(Entity entity) { + + World world = entity.worldObj; + int chunkX = MathHelper.floor_double(entity.posX / 16.0D); + int chunkZ = MathHelper.floor_double(entity.posZ / 16.0D); + byte loadRadius = 2; + + for (int k = chunkX - loadRadius; k <= chunkX + loadRadius; ++k) + { + for (int l = chunkZ - loadRadius; l <= chunkZ + loadRadius; ++l) + { + world.getChunkFromChunkCoords(k, l); + } + } + + if (!world.loadedEntityList.contains(entity)) + { + if (!MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(entity, world))) + { + world.getChunkFromChunkCoords(chunkX, chunkZ).addEntity(entity); + world.loadedEntityList.add(entity); + world.onEntityAdded(entity); + } + } + } + + public static Chunk provideChunk(WorldServer world, int chunkX, int chunkZ) { + ChunkProviderServer provider = world.theChunkProviderServer; + Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ)); + if(chunk != null) return chunk; + return loadChunk(world, provider, chunkX, chunkZ); + } + + private static Chunk loadChunk(WorldServer world, ChunkProviderServer provider, int chunkX, int chunkZ) { + long chunkCoord = ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ); + provider.chunksToUnload.remove(Long.valueOf(chunkCoord)); + Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(chunkCoord); + AnvilChunkLoader loader = null; + + if(provider.currentChunkLoader instanceof AnvilChunkLoader) { + loader = (AnvilChunkLoader) provider.currentChunkLoader; + } + + if(chunk == null && loader != null && loader.chunkExists(world, chunkX, chunkZ)) { + chunk = ChunkIOExecutor.syncChunkLoad(world, loader, provider, chunkX, chunkZ); + } + + return chunk; } } diff --git a/src/main/java/com/hbm/world/biome/BiomeGenCrater.java b/src/main/java/com/hbm/world/biome/BiomeGenCrater.java new file mode 100644 index 000000000..e3d5e7876 --- /dev/null +++ b/src/main/java/com/hbm/world/biome/BiomeGenCrater.java @@ -0,0 +1,36 @@ +package com.hbm.world.biome; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenCrater extends BiomeGenBase { + + //public static final BiomeGenBase craterBiome = new BiomeGenCrater(50 /* TEMP */).setDisableRain(); + + public BiomeGenCrater(int id) { + super(id); + this.waterColorMultiplier = 0xE0FFAE; //swamp color + this.setBiomeName("Crater"); + } + + @Override + @SideOnly(Side.CLIENT) + public int getBiomeGrassColor(int x, int y, int z) { + double noise = plantNoise.func_151601_a((double) x * 0.225D, (double) z * 0.225D); + return noise < -0.1D ? 0x606060 : 0x505050; + } + + @Override + @SideOnly(Side.CLIENT) + public int getBiomeFoliageColor(int x, int y, int z) { + return 0x6A7039; + } + + @Override + @SideOnly(Side.CLIENT) + public int getSkyColorByTemp(float temp) { + //return 0x66BBA9; + return 0x6B9189; + } +} diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index f20e79039..98bbd0c48 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -1,6 +1,7 @@ package com.hbm.world.feature; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; @@ -24,6 +25,8 @@ public class BedrockOre { public static List> weightedOres = new ArrayList(); public static List> weightedOresNether = new ArrayList(); + public static HashMap replacements = new HashMap(); + public static void init() { registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); @@ -37,13 +40,16 @@ public class BedrockOre { registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.quartz, 4), 1, 0xF0EFDD), WorldConfig.bedrockQuartzSpawn); + + replacements.put(EnumBedrockOre.IRON.oreName, new BedrockOreDefinition(EnumBedrockOre.HEMATITE, 1)); + replacements.put(EnumBedrockOre.COPPER.oreName, new BedrockOreDefinition(EnumBedrockOre.MALACHITE, 1)); } public static void registerBedrockOre(List list, BedrockOreDefinition def, int weight) { @@ -97,6 +103,7 @@ public class BedrockOre { public static class BedrockOreDefinition { public ItemStack stack; public FluidStack acid; + public String id; public int tier; public int color; @@ -106,6 +113,7 @@ public class BedrockOre { public BedrockOreDefinition(ItemStack stack, int tier, int color, FluidStack acid) { this.stack = stack; + this.id = stack.toString(); this.tier = tier; this.color = color; this.acid = acid; @@ -117,6 +125,7 @@ public class BedrockOre { public BedrockOreDefinition(EnumBedrockOre type, int tier, FluidStack acid) { this.stack = DictFrame.fromOne(ModItems.ore_bedrock, type); + this.id = "ore" + type.oreName; this.color = type.color; this.tier = tier; this.acid = acid; diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index f1beb0d10..1dc57bd73 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -3,6 +3,7 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.BlockEnums.EnumBiomeType; +import com.hbm.world.generator.DungeonToolbox; import com.hbm.blocks.ModBlocks; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -13,7 +14,7 @@ import net.minecraft.world.biome.BiomeGenBase.TempCategory; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class BiomeCave { @@ -52,7 +53,7 @@ public class BiomeCave { } @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -95,7 +96,7 @@ public class BiomeCave { private static void handleBiome(World world, int x, int y, int z, EnumBiomeType type) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube()) { + if(target.isNormalCube() && DungeonToolbox.allowedToReplace(target)) { boolean shouldGen = false; diff --git a/src/main/java/com/hbm/world/feature/DeepLayer.java b/src/main/java/com/hbm/world/feature/DeepLayer.java index 685fdb7eb..69216034d 100644 --- a/src/main/java/com/hbm/world/feature/DeepLayer.java +++ b/src/main/java/com/hbm/world/feature/DeepLayer.java @@ -3,22 +3,22 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class DeepLayer { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; if(world.provider == null || world.provider.dimensionId != 0) return; @@ -51,7 +51,7 @@ public class DeepLayer { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock && target != Blocks.bedrock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { boolean lava = false; diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java index 5c60e3ff2..f615b6519 100644 --- a/src/main/java/com/hbm/world/feature/GlyphidHive.java +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -3,126 +3,117 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.util.LootGenerator; import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntitySkull; import net.minecraft.world.World; public class GlyphidHive { - public static final int[][][] schematic = new int[][][] { + public static final int[][][] schematicSmall = new int[][][] { { {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, - }, - { - {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,1,9,9,9,9,9,1,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, }, { {0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,1,9,9,9,9,9,1,5,0}, - {0,3,9,9,9,9,9,9,9,5,0}, - {0,3,1,9,9,9,9,9,1,5,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,1,9,1,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, - }, - { - {0,0,0,0,0,4,0,0,0,0,0}, - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,4,9,4,1,0,0,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,3,3,9,9,9,9,9,5,5,0}, - {3,3,9,9,9,9,9,9,9,5,5}, - {0,3,3,9,9,9,9,9,5,5,0}, - {0,0,1,1,9,9,9,1,1,0,0}, - {0,0,0,1,2,9,2,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, - {0,0,0,0,0,2,0,0,0,0,0}, - }, - { - {0,0,0,0,4,4,4,0,0,0,0}, - {0,0,0,1,4,4,4,1,0,0,0}, - {0,0,1,1,4,9,4,1,1,0,0}, - {0,1,1,1,9,9,0,1,1,1,0}, - {3,3,3,9,9,9,9,9,5,5,5}, - {3,3,9,9,9,9,9,9,9,5,5}, - {3,3,3,9,9,9,9,9,5,5,5}, - {0,1,1,1,9,9,9,1,1,1,0}, - {0,0,1,1,2,9,2,1,1,0,0}, - {0,0,0,1,2,2,2,1,0,0,0}, - {0,0,0,0,2,2,2,0,0,0,0}, - }, - { {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,1,1,1,1,1,0,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, - {0,1,1,1,1,1,1,1,1,1,0}, - {1,1,1,1,1,1,1,1,1,1,1}, - {1,1,1,1,1,1,1,1,1,1,1}, - {1,1,1,1,1,1,1,1,1,1,1}, - {0,1,1,1,1,1,1,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, {0,0,0,1,1,1,1,1,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, }, { {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,1,1,1,3,3,3,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,1,1,2,2,2,1,1,0,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,1,1,2,2,2,2,2,1,1,0}, + {0,0,1,1,2,2,2,1,1,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,1,1,1,1,1,1,1,0,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,1,1,1,1,0}, {0,0,1,1,1,1,1,1,1,0,0}, - {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, {0,0,0,0,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, } }; - - public static void generate(World world, int x, int y, int z, Random rand) { - - int orientation = rand.nextInt(4) + 2; + public static void generateSmall(World world, int x, int y, int z, Random rand, boolean infected, boolean loot) { + int overrideMeta = infected ? 1 : 0; for(int i = 0; i < 11; i++) { - for(int j = 0; j < 7; j++) { + for(int j = 0; j < 5; j++) { for(int k = 0; k < 11; k++) { - int block = schematic[6 - j][i][k]; + int block = schematicSmall[4 - j][i][k]; + int iX = x + i - 5; + int iY = y + j - 2; + int iZ = z + k - 5; - if(block == 1 || (block != orientation && block > 1 && block < 6)) { - world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base); - } - if(block == 9) { - world.setBlock(x + i - 5, y + j - 2, z + k - 5, Blocks.air); + switch(block) { + case 1: world.setBlock(iX, iY, iZ, ModBlocks.glyphid_base, overrideMeta, 2); break; + case 2: world.setBlock(iX, iY, iZ, rand.nextInt(3) == 0 ? ModBlocks.glyphid_spawner : ModBlocks.glyphid_base, overrideMeta, 2); break; + case 3: + int r = rand.nextInt(3); + if(r == 0) { + world.setBlock(iX, iY, iZ, Blocks.skull, 1, 3); + TileEntitySkull skull = (TileEntitySkull) world.getTileEntity(iX, iY, iZ); + if(skull != null) skull.func_145903_a(rand.nextInt(16)); + } else if(r == 1) { + world.setBlock(iX, iY, z + k - 5, ModBlocks.deco_loot, 0, 2); + LootGenerator.lootBones(world, iX, iY, iZ); + } else if(r == 2) { + if(loot) { + world.setBlock(iX, iY, iZ, ModBlocks.deco_loot, 0, 2); + LootGenerator.lootGlyphidHive(world, iX, iY, iZ); + } else { + world.setBlock(iX, iY, iZ, ModBlocks.glyphid_base, overrideMeta, 2); + } + } + break; } } } } - - world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner); } } diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index 49ae81a9b..7f879866b 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockStalagmite; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; @@ -13,7 +14,7 @@ import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class OreCave { @@ -71,7 +72,7 @@ public class OreCave { @SuppressWarnings("incomplete-switch") @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -103,7 +104,7 @@ public class OreCave { for(int y = yLevel - range; y <= yLevel + range; y++) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground)) { + if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground) && DungeonToolbox.allowedToReplace(genTarget)) { boolean shouldGen = false; boolean canGenFluid = event.rand.nextBoolean(); diff --git a/src/main/java/com/hbm/world/feature/OreLayer.java b/src/main/java/com/hbm/world/feature/OreLayer.java index 8e658cb65..aacf1c416 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer.java +++ b/src/main/java/com/hbm/world/feature/OreLayer.java @@ -3,6 +3,7 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; @@ -10,7 +11,7 @@ import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class OreLayer { @@ -65,7 +66,7 @@ public class OreLayer { } @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -99,7 +100,7 @@ public class OreLayer { if(event.rand.nextFloat() < density) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isReplaceableOreGen(world, x, y, z, target)) { + if(genTarget.isReplaceableOreGen(world, x, y, z, target) && DungeonToolbox.allowedToReplace(genTarget)) { world.setBlock(x, y, z, ore.block, ore.meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index 08650db8e..50fba58b3 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -2,13 +2,15 @@ package com.hbm.world.feature; import java.util.Random; +import com.hbm.world.generator.DungeonToolbox; + import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class OreLayer3D { @@ -51,7 +53,7 @@ public class OreLayer3D { } @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -74,7 +76,7 @@ public class OreLayer3D { if(nX * nY * nZ > threshold) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { world.setBlock(x, y, z, block, meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/SchistStratum.java b/src/main/java/com/hbm/world/feature/SchistStratum.java index 28d5d6fe2..d83ec528e 100644 --- a/src/main/java/com/hbm/world/feature/SchistStratum.java +++ b/src/main/java/com/hbm/world/feature/SchistStratum.java @@ -3,20 +3,21 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class SchistStratum { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { if(this.noise == null) { this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed()), 4); @@ -51,7 +52,7 @@ public class SchistStratum { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { world.setBlock(x, y, z, ModBlocks.stone_gneiss, 0, 2); } } diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index acb8481c3..286687203 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -802,9 +802,9 @@ public class BunkerComponents { default: fillWithBlocks(world, box, 6, 1, 1, 6, 3, 1, ModBlocks.deco_pipe_framed_rusted); for(int i = 7; i <= 9; i += 2) { - placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoMetaN, i, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 2, i, 2, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoMetaN, i, 3, 1, box); } placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 8, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 2, 1, box); @@ -853,18 +853,18 @@ public class BunkerComponents { fillWithBlocks(world, box, i, 3, 2, i, 3, 4, ModBlocks.deco_lead); } placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 1, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_computer, 0, 8, 2, 4, box); + placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 8, 2, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 3, 4, box); placeLever(world, box, 3, rand.nextBoolean(), 8, 2, 5); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 1, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_control, 0, 8, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 3, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_fuel, 0, 8, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_control, 0, 8, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_fuel, 0, 8, 3, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 1, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.block_lead, 0, 8, 2, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 3, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_channel, 0, 8, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.machine_turbine, 0, 8, 2, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_channel, 0, 8, 3, 1, box); fillWithBlocks(world, box, 9, 1, 1, 9, 3, 1, ModBlocks.deco_steel); placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 10, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 1, box); diff --git a/src/main/java/com/hbm/world/generator/DungeonToolbox.java b/src/main/java/com/hbm/world/generator/DungeonToolbox.java index 7e0a899f9..b5ab4499c 100644 --- a/src/main/java/com/hbm/world/generator/DungeonToolbox.java +++ b/src/main/java/com/hbm/world/generator/DungeonToolbox.java @@ -94,4 +94,12 @@ public class DungeonToolbox { genFlowers.func_150550_a(flower, meta); genFlowers.generate(world, rand, x, y, z); } + + public static boolean allowedToReplace(Block block) { + + if(block == Blocks.end_portal_frame) return false; + if(block == Blocks.bedrock) return false; + + return true; + } } diff --git a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java index 3f02d6cf0..e69db5214 100644 --- a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java +++ b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java @@ -50,12 +50,19 @@ public class TestDungeonRoom8 extends CellularDungeonRoom { int r = world.rand.nextInt(10); - if(r == 0) + if(r == 0) { ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(ModItems.book_of_)); - else if(r < 4) - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, generateBook(world)); - else - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(Items.book)); + } else if(r < 4) { + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2); + safe.setInventorySlotContents(5, generateBook(world)); + safe.setInventorySlotContents(7, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + safe.setInventorySlotContents(9, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + } else { + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2); + safe.setInventorySlotContents(5, new ItemStack(Items.book)); + safe.setInventorySlotContents(7, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + safe.setInventorySlotContents(9, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + } } break; } diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index ba62b1a85..1fc5c2ec2 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -25,3 +25,9 @@ public net.minecraft.client.gui.GuiMainMenu field_73975_c # sp # EntityLivingBase public net.minecraft.entity.EntityLivingBase field_82180_bT # previousEquipment + +# ChunkProviderFlat +public net.minecraft.world.gen.ChunkProviderFlat field_82702_h # hasDungeons + +# ChunkProviderServer +public net.minecraft.world.gen.ChunkProviderServer field_73248_b # chunksToUnload diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 2e712ef87..3ab0b70e1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -66,6 +66,8 @@ achievement.radium.desc=SIE SIND GEFEUERT WEIL SIE RADIUM IN MEINEN KAFFEE GESCH achievement.radium=MISTER UNGLAUBLICH achievement.radPoison.desc=Leide an Strahlenkrankheit. achievement.radPoison=Yay, Strahlung! +achievement.redRoom.desc=? +achievement.redRoom=Die andere Seite achievement.sacrifice.desc=Sterbe im Feuer, aber irgendwie auch nicht. achievement.sacrifice=Sororizid achievement.selenium.desc=Lange nicht gesehen! @@ -88,6 +90,7 @@ armor.cap=Schadensobergrenze: %s armor.damageModifier=Modifikator: %s (%s) armor.electricJetpack=Ionentriebwerke armor.explosionImmune=Kann nur Schaden durch Explosionen nehmen +armor.fasterReload=Schnelleres Nachladen armor.fastFall=Schneller Fall armor.fireproof=Feuerfest armor.fullSetBonus=Set-Bonus: @@ -98,10 +101,12 @@ armor.gravity=Schwerkraftsmodifikator: %s armor.hardLanding=Harte Landung armor.ignoreLimit=Resistenz ist nicht limitiert armor.modifier=Genereller Schadensmodifikator: %s +armor.moreAmmo=Mehr Munition armor.nullDamage=Nichtet Schaden von %s armor.projectileProtection=Projektilmodifikator: %s armor.rocketBoots=Rocket boots armor.sprintBoost=VerstÀrkter Sprint +armor.stepSize=Schritthöhe: %s armor.thermal=WÀrmebildkamera armor.threshold=Schadensschwelle: %s armor.vats=Feinde-HUD @@ -306,8 +311,13 @@ container.dfcStabilizer=DFC-Stabilisator container.dfc_core=Dunkler Fusionskern container.diFurnace=Hochofen container.diFurnaceRTG=Atomarer Hochofen +container.droneCrate=Transportdronen-Kiste +container.droneDock=Dock +container.droneProvider=Anbieter +container.droneRequester=Abnehmer container.electricFurnace=Elektrischer Ofen container.epress=Hydraulische Presse +container.exposureChamber=Bestrahlungskammer container.factoryAdvanced=Fortgeschrittene Fabrik container.factoryTitanium=Einfache Fabrik container.fluidtank=Tank @@ -331,6 +341,7 @@ container.keyForge=Schlossertisch container.launchPad=Raketenabschussrampe container.launchTable=Große Startrampe container.leadBox=SicherheitsbehÀlter +container.machineArcWelder=Lichtbogenschweißer container.machineBoiler=ÖlwÀrmer container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator @@ -341,6 +352,7 @@ container.machineDiesel=Dieselgenerator container.machineElectricBoiler=Elektrischer ÖlwÀrmer container.machineElectrolyser=ElectrolysegerÀt container.machineFEL=FEL +container.machineFunnel=Kombinationstrichter container.machineITER=Kernfusionsreaktor container.machineLargeTurbine=Industrielle Dampfturbine container.machineLiquefactor=VerflÃŒssiger @@ -352,6 +364,7 @@ container.machineSILEX=SILEX container.machineSolidifier=Verfestiger container.machineTurbine=Dampfturbine container.machineTurbofan=Turbofan +container.machineWoodBurner=Brennholzgenerator container.machine_schrabidium_transmutator=Schrabidium-TransmutationsgerÀt container.massStorage=Speicher container.microwave=Mikrowelle @@ -498,7 +511,7 @@ death.attack.tauBlast=%1$s lud die XVL1456 zu lange auf und wurde in StÃŒcke ger death.attack.teleporter=%1$s wurde ins Nichts teleportiert. desc.item.rtgHeat=Hitzelevel: %s -desc.gui.rtgBFurnace.desc=Bönitigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze ÃŒber dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen +desc.gui.rtgBFurnace.desc=Benötigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze ÃŒber dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen desc.gui.rtgBFurnace.heat=§eHitzelevel: %s desc.gui.rtgBFurnace.pellets=Akzeptierte Pellets: desc.gui.rtgBFurnace.pellet=%s (%s Hitze) @@ -517,9 +530,11 @@ entity.entity_glyphid_blaster.name=Glyphid-Blaster entity.entity_glyphid_bombardier.name=Glyphid-Bombardierer entity.entity_glyphid_brawler.name=Glyphid-SchlÀger entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_digger.name=Glyphid-GrÀber entity.entity_glyphid_nuclear.name=Der dicke Johnson entity.entity_glyphid_scout.name=Glyphid-SpÀher entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_fbi_drone.name=FBI Drone entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff entity.entity_mob_hunter_chopper.name=Jagdschrauber @@ -529,6 +544,9 @@ entity.entity_mob_nuclear_creeper.name=Nuklearer Creeper entity.entity_mob_phosgene_creeper.name=Phosgen-Creeper entity.entity_mob_tainted_creeper.name=Verseuchter Creeper entity.entity_mob_volatile_creeper.name=Instabiler Creeper +entity.entity_parasite_maggot.name=Parasitische Made +entity.entity_pigeon.name=Taube +entity.entity_plastic_bag.name=PlastiktÃŒte entity.entity_taint_crab.name=Verseuchte Krabbe entity.entity_tesla_crab.name=Tesla-Krabbe entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime @@ -580,6 +598,7 @@ hadron.error_diode_collision=Fehler 0x08 [DC] hadron.error_branching_turn=Fehler 0x09 [BT] hadron.hopper0=§eNormalmodus:$Alle Items werden beschleunigt. hadron.hopper1=§eTrichtermodus:$Ein Item bleibt immer ÃŒbrig. +hadron.hopper1=§eEinzelmodus:$Erlaubt nur ein Item pro Slot. hadron.idle=Leerlauf hadron.modeCircular=§eRingbeschleuniger:$Magnete bilden eine Schleife.$Schaltet mehr Rezepte frei. hadron.modeLine=§eLinearbeschleuniger:$Beschleuniger ended mit Analysekammer.$Weniger Rezepte. @@ -657,6 +676,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Endersaft hbmfluid.fishoil=Fischöl hbmfluid.fracksol=Frackinglösung +hbmfluid.fullerene=Fullerenlösung hbmfluid.gas=Erdgas hbmfluid.gas_coker=Koker-Gas hbmfluid.gasoline=Benzin @@ -798,6 +818,7 @@ hbmmat.magnetizedtungsten=Magnetisierter Wolfram hbmmat.malachite=Malachit hbmmat.meteoriciron=Meteoriteneisen hbmmat.mingrade=Minecraft-Kupfer +hbmmat.neodymium=Neodym hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niob hbmmat.obsidian=Obsidian @@ -1142,6 +1163,7 @@ item.balefire_and_steel.name=Balefire-Zeug item.balefire_scrambled.name=RÃŒhr-Balefire-Ei item.ball_dynamite.name=Dynamit item.ball_fireclay.name=Schamott +item.ball_resin.name=Kautschuk item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistischer Panzerhandschuh @@ -1264,14 +1286,14 @@ item.blades_steel.name=StahlsÀgeblatt item.blades_titanium.name=TitansÀgeblatt item.blowtorch.name=Lötlampe item.board_copper.name=Kupfertafel +item.boat_rubber.name=Schlauchboot item.bobmazon_hidden.name=Versteckter Katalog item.bobmazon_machines.name=Bobmazon: Blöcke und Maschinen item.bobmazon_materials.name=Bobmazon: Ressourcen item.bobmazon_tools.name=Bobmazon: Werkzeuge item.bobmazon_weapons.name=Bobmazon: Waffen und Sprengstoffe +item.bolt.name=%sbolzen item.bolt_compound.name=VerstÀrkte Turbinenwelle -item.bolt_dura_steel.name=Schnellarbeitsstahlbolzen -item.bolt_tungsten.name=Wolframbolzen item.boltgun.name=Pneumatische Nietenpistole item.bomb_caller.name=Luftschlag Zielmarker item.bomb_waffle.name=Massenvernichtungswaffel @@ -1685,6 +1707,7 @@ item.dnt_plate.name=dineutrom brustplatte item.door_bunker.name=BunkertÃŒr item.door_metal.name=MetalltÃŒr item.door_office.name=BÃŒrotÃŒr +item.door_red.name=Rote TÃŒr item.dosimeter.name=Dosimeter item.drax.name=Terra-Bohrer item.drax_mk2.name=GehÀrteter Terra-Bohrer @@ -1700,6 +1723,12 @@ item.drillbit_steel_diamond.name=Stahl-Bohrspitze (Diamantbeschichtung) item.drillbit_tcalloy.name=Technetiumstahl-Bohrspitze item.drillbit_tcalloy_diamond.name=Technetiumstahl-Bohrspitze (Diamantbeschichtung) item.drill_titanium.name=Titanbohrer +item.drone.patrol.name=Transportdrone +item.drone.patrol_chunkloading.name=Chunkladende Transportdrone +item.drone.patrol_express.name=Express-Transportdrone +item.drone.patrol_express_chunkloading.name=Chunkladende Express-Transportdrone +item.drone.request.name=Logistikdrone +item.drone_linker.name=Transportdronen-Linker item.ducttape.name=Klebeband item.dust.name=Staub item.dynosphere_base.name=Blanke Dynosphere @@ -2025,6 +2054,7 @@ item.heart_booster.name=Herzbooster item.heart_container.name=Herzcontainer item.heart_fab.name=Fab Herz item.heart_piece.name=Herzteil +item.heavy_component.name=Schwere %skomponente item.hev_battery.name=Anzugs-Batterie item.hev_boots.name=HEV Mark IV Stiefel item.hev_plate.name=HEV Mark IV Brustpanzer @@ -2062,12 +2092,14 @@ item.ingot_au198.name=Gold-198-Barren item.ingot_australium.name=Australiumbarren item.ingot_bakelite.name=Bakelittafel item.ingot_beryllium.name=Berylliumbarren +item.ingot_biorubber.name=Latextafel item.ingot_bismuth.name=Bismutbarren item.ingot_boron.name=Borbarren item.ingot_c4.name=C4-Tafel item.ingot_cadmium.name=Cadmiumbarren item.ingot_calcium.name=Kalziumbarren item.ingot_cdalloy.name=Cadmiumstahlbarren +item.ingot_cft.name=Kristallines Fullerit item.ingot_chainsteel.name=Schwerer Kettenstahl item.ingot_co60.name=Kobalt-60-Barren item.ingot_cobalt.name=Kobaltbarren @@ -2266,6 +2298,7 @@ item.missile_carrier.name=HTR-01 TrÀgerrakete item.missile_cluster.name=Streurakete item.missile_cluster_strong.name=Starke Streurakete item.missile_custom.name=Spezialgefertigte Rakete +item.missile_decoy.name=Köderflugkörper item.missile_doomsday.name=Doomsday Rakete item.missile_drill.name=Der Betonbrecher item.missile_emp.name=EMP-Rakete @@ -2283,18 +2316,10 @@ item.missile_nuclear_cluster.name=H-Rakete item.missile_rain.name=SchÃŒttbombenregen item.missile_schrabidium.name=Schrabidiumrakete item.missile_shuttle.name=Reliant Robin Space Shuttle -item.missile_skin_camo.name=Raketenskin: Camouflage -item.missile_skin_desert.name=Raketenskin: WÃŒstencamouflage -item.missile_skin_flames.name=Raketenskin: Krasse Flammen -item.missile_skin_manly_pink.name=Raketenskin: MÀnnliches Pink -item.missile_skin_metal.name=Raketenskin: Metall -item.missile_skin_orange_insulation.name=Raketenskin: Oranger Isolator -item.missile_skin_sleek.name=Raketenskin: IF-R&D -item.missile_skin_soviet_glory.name=Raketenskin: Sowjetischer Ruhm -item.missile_skin_soviet_stank.name=Raketenskin: Sowjetischer Mief item.missile_soyuz.name=Soyuz-FG item.missile_soyuz_lander.name=Orbitalmodul item.missile_strong.name=Starke HE Rakete +item.missile_stealth.name=Stealth-Rakete item.missile_taint.name=Verdorbene Rakete item.missile_volcano.name=Tectonic Missile item.missile_volcano.desc=Mit der Kraft von Kernwaffen können wir einen Vulkan beschwören! @@ -2442,6 +2467,8 @@ item.n2_charge.name=Große Sprengladung item.neutrino_lens.name=Neutrinolinse item.neutron_reflector.name=Neutronenreflektor item.niter.name=Salpeter +item.nitra.name=Nitra +item.nitra_small.name=Kleines StÃŒck Nitra item.no9.name=Bergbauhelm item.nossy_hat.name=Fabulöser Hut item.nothing.name=Leer @@ -2523,7 +2550,6 @@ item.oil_detector.bullseye=Ölvorkommen direkt untertage! item.oil_detector.detected=Ölvorkommen in der NÀhe! item.oil_detector.noOil=Kein Öl gefunden. item.oil_tar.coal.name=Kohleteer -item.oil_tar.name=Ölteer item.oil_tar.crude.name=Erdölteer item.oil_tar.crack.name=Crackölteer item.oil_tar.paraffin.name=Paraffinwachs @@ -2533,12 +2559,15 @@ item.ore.asbestos=Asbest item.ore.borax=Borax item.ore.chlorocalcite=Chlorokalzit item.ore.copper=Kupfer +item.ore.fluorite=Fluorit item.ore.gold=Gold +item.ore.hematite=Hematit item.ore.iron=Eisen +item.ore.malachite=Malachit item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram -item.ore.thorium=Thorium +item.ore.thorium232=Thorium item.ore.uranium=Uran item.ore_bedrock.name=Bedrock-%serz item.ore_byproduct.b_aluminium.name=Kristallines Aluminiumfragment @@ -2577,6 +2606,14 @@ item.padlock_unbreakable.name=Unzerstörbares VorhÀngeschloss item.pads_rubber.name=Gummischuhsohlen item.pads_slime.name=Schleimschuhsohlen item.pads_static.name=Statische Schuhsolen +item.page_of_.page1.name=Seite 1 +item.page_of_.page2.name=Seite 2 +item.page_of_.page3.name=Seite 3 +item.page_of_.page4.name=Seite 4 +item.page_of_.page5.name=Seite 5 +item.page_of_.page6.name=Seite 6 +item.page_of_.page7.name=Seite 7 +item.page_of_.page8.name=Seite 8 item.pancake.name=Pfannkuchen aus Altmetall, NÀgeln und Edelsteinpulver item.part_beryllium.name=Berylliumstaubkiste item.part_carbon.name=Kohlenstoffstaubkiste @@ -2655,6 +2692,7 @@ item.plan_c.name=Plan C item.plant_item.mustardwillow.name=Senf-Weidenblatt item.plant_item.rope.name=Seil item.plant_item.tobacco.name=Tabak +item.plastic_bag.name=PlastiktÃŒte item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte item.plate_aluminium.name=Aluminiumplatte item.plate_armor_ajr.name=Eisenbeschlagene Panzerplatte @@ -2681,6 +2719,7 @@ item.plate_saturnite.name=Saturnitplatte item.plate_schrabidium.name=Schrabidiumplatte item.plate_steel.name=Stahlplatte item.plate_titanium.name=Titanplatte +item.plate_welded.name=Geschweißte %splatte item.polaroid.name=Das Polaroid item.pollution_detector.name=Verschmutzungsdetektor item.powder_actinium.name=Actiniumstaub @@ -2688,6 +2727,12 @@ item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub item.powder_advanced_alloy.name=Fortgeschrittener Legierungsstaub item.powder_aluminium.name=Aluminiumstaub item.powder_asbestos.name=Asbeststaub +item.powder_ash.coal.name=Kohleasche +item.powder_ash.fly.name=Flugasche +item.powder_ash.fullerene.name=Fulleren +item.powder_ash.misc.name=Asche +item.powder_ash.soot.name=Feiner Ruß +item.powder_ash.wood.name=Holzasche item.powder_astatine.name=Astatstaub item.powder_at209.name=Astat-209-Staub item.powder_au198.name=Gold-198-Staub @@ -2800,6 +2845,7 @@ item.protection_charm.name=Schutzamulett item.prototype_kit.name=Prototyp Kit item.pudding.name=Pudding item.quartz_plutonium.name=Plutonisches Quarz +item.radar_linker.name=Radar-Linker item.radaway.name=RadAway item.radaway_flush.name=Elite-RadAway item.radaway_strong.name=Starkes RadAway @@ -3118,6 +3164,14 @@ item.stamp_357.name=.357 Magnum-Stempel item.stamp_44.name=.44 Magnum-Stempel item.stamp_50.name=Großkaliberstempel item.stamp_9.name=Kleinkaliberstempel +item.stamp_book.printing1.name=Druckpressstempel (Teil 1) +item.stamp_book.printing2.name=Druckpressstempel (Teil 2) +item.stamp_book.printing3.name=Druckpressstempel (Teil 3) +item.stamp_book.printing4.name=Druckpressstempel (Teil 4) +item.stamp_book.printing5.name=Druckpressstempel (Teil 5) +item.stamp_book.printing6.name=Druckpressstempel (Teil 6) +item.stamp_book.printing7.name=Druckpressstempel (Teil 7) +item.stamp_book.printing8.name=Druckpressstempel (Teil 8) item.stamp_desh_circuit.name=Schaltkreisstempel (Desh) item.stamp_desh_flat.name=Flacher Stempe (Desh) item.stamp_desh_plate.name=Plattenstempel (Desh) @@ -3236,6 +3290,10 @@ item.titanium_shovel.name=Titanschaufel item.titanium_sword.name=Titanschwert item.toothpicks.name=Zahnstocher item.train.cargo_tram.name=Elektrischer Flachwagen +item.trenchmaster_boots.name=Stiefel des Trenchmasters +item.trenchmaster_helmet.name=Helm des Trenchmasters +item.trenchmaster_legs.name=Hose des Trenchmasters +item.trenchmaster_plate.name=Brustpanzer des Trenchmasters item.trinitite.name=Trinitit item.tritium_deuterium_cake.name=Tritium-Deuterium-Kuchen item.tsar_core.name=Fusionskern @@ -3361,6 +3419,7 @@ item.wings_murk.name=TrÃŒbe FlÃŒgel item.wire_advanced_alloy.name=Supraleiter item.wire_aluminium.name=Aluminiumdraht item.wire_copper.name=Kupferdraht +item.wire_dense.name=Dichter %sdraht item.wire_gold.name=Golddraht item.wire_magnetized_tungsten.name=4000K Hochtemperaturensupraleiter item.wire_red_copper.name=Roter Kupferdraht @@ -3398,10 +3457,14 @@ potion.hbm_stability=StabilitÀt potion.hbm_taint=Verdorben potion.hbm_telekinesis=! ! ! +radar.clearMap=Karte zurÃŒcksetzen radar.detectMissiles=Raketen erkennen radar.detectPlayers=Spieler erkennen +radar.detectShells=Geschosse erkennen radar.redMode=Redstone Mode$Ein: Redstonesignal basiert auf NÀhe$Aus: Redstonesignal basiert auf Größe +radar.showMap=Karte anzeigen radar.smartMode=Smart Mode$Redstonesignal ignoriert aufsteigende Raketen +radar.toggleGui=Ansicht umschalten rbmk.heat=Komponententemperatur: %s rbmk.boiler.water=Wasser: %s / %s @@ -3435,6 +3498,8 @@ shape.plate=Platte shape.plateTriple=Gussplatte shape.stamp=Stempel shape.wire=Draht +shape.wireDense=Dichter Draht +shape.wiresDense=Dichte DrÀhte soundCategory.ntmMachines=NTM Maschinen @@ -3632,6 +3697,7 @@ tile.brick_light.name=Helle Ziegel tile.brick_light_stairs.name=Helle Ziegeltreppe tile.brick_obsidian.name=Obsidianziegel tile.brick_obsidian_stairs.name=Obsidianziegeltreppe +tile.brick_red.name=Ziegel (Roter Raum) tile.brick_slab.brick_asbestos.name=Asbestziegelstufe tile.brick_slab.brick_compound.name=Verbundstufe tile.brick_slab.brick_fire.name=Schamottsteinstufe @@ -3650,6 +3716,7 @@ tile.capacitor_bus.desc=Output fÃŒr Kondensatoren$Kann in einer geraden Linie an tile.capacitor_copper.name=Kupferkondensator tile.capacitor_gold.name=Goldkondensator tile.capacitor_niobium.name=Niobkondensator +tile.capacitor_schrabidate.name=Schrabidatkondensator tile.capacitor_tantalium.name=Tantalkondensator tile.capacitor.desc=Input: Oben$Output: Unten, ÃŒber Kondensator-Bus tile.charge_c4.name=Abrissladung @@ -3660,6 +3727,9 @@ tile.charger.name=Ladestation tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block tile.chimney_brick.name=Schornstein +tile.chimney_brick.desc=Kann mit Abgasrohren verbunden werden$Reduziert Abgas um 75%% +tile.chimney_industrial.name=Industrieschornstein +tile.chimney_industrial.desc=Kann mit Abgasrohren verbunden werden$Reduziert Abgas um 90%% tile.chlorine_gas.name=Chlorgas tile.cluster_aluminium.name=Aluminiumerzcluster tile.cluster_copper.name=Kupfererzcluster @@ -3718,6 +3788,8 @@ tile.conveyor_chute.name=FörderschÃŒtte tile.conveyor_chute.desc=Bewegt Items nach unten$Die unterste SchÃŒtte verhÀlt sich wie ein normales Förderband tile.conveyor_double.name=Zweispuriges Förderband tile.conveyor_double.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen +tile.conveyor_express.name=Expressförderband +tile.conveyor_express.desc=Bewegt Items sehr schnell$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_lift.name=Kettenaufzug tile.conveyor_lift.desc=Bewegt Items nach oben$Benötigt mindestens zwei AufzÃŒge ÃŒbereinander um richtig zu funktionieren tile.conveyor_triple.name=Dreispuriges Förderband @@ -3807,9 +3879,16 @@ tile.dfc_stabilizer.name=DFC-Stabilisator tile.dirt_dead.name=Tote Erde tile.dirt_oily.name=Ölige Erde tile.drill_pipe.name=BohrgestÀnge +tile.drone_crate.name=Transportdronen-Kiste +tile.drone_crate_provider.name=Logistik-Anbieterkiste +tile.drone_crate_requester.name=Logistik-Abnehmerkiste +tile.drone_dock.name=Logistikdronen-Dock +tile.drone_waypoint.name=Transportdronen-Wegpunkt +tile.drone_waypoint_request.name=Logistikdronen-Wegpunkt tile.door_bunker.name=BunkertÃŒr tile.door_metal.name=MetalltÃŒr tile.door_office.name=BÃŒrotÃŒr +tile.door_red.name=Rote TÃŒr tile.ducrete.name=Ducretefliese tile.ducrete_stairs.name=Ducretefliesentreppe tile.ducrete_smooth.name=Ducrete @@ -3976,6 +4055,7 @@ tile.lox_barrel.name=LOX-Fass tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen +tile.machine_arc_welder.name=Lichtbogenschweißer tile.machine_armor_table.name=RÃŒstungsmodifikationstisch tile.machine_ashpit.name=Aschekasten tile.machine_ashpit.desc=Sammelt Asche von FeuerbÃŒchsen und Heizöfen @@ -4008,9 +4088,12 @@ tile.machine_combine_factory.name=CMB-Stahl Hochofen tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor tile.machine_compressor.name=Kompressor tile.machine_condenser.name=Dampfkondensierer +tile.machine_condenser_powered.name=Hochleistungs-Dampfkondensierer tile.machine_controller.name=Reaktorfernsteuerung tile.machine_converter_he_rf.name=HE zu RF Konverter tile.machine_converter_rf_he.name=RF zu HE Konverter +tile.machine_conveyor_press.name=Förderband-Presse +tile.machine_conveyor_press.desc=Band bewegt sich von links nach rechts$Rechtsclick um Stempel zu montieren$Stempel kann mit Schraubenzieher entfernt werden tile.machine_crucible.name=Schmelztiegel tile.machine_crystallizer.name=Erzauflöser tile.machine_cyclotron.name=Zyklotron @@ -4029,6 +4112,7 @@ tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen tile.machine_electrolyser.name=ElectrolysegerÀt tile.machine_epress.name=Hydraulische Presse +tile.machine_exposure_chamber.name=Bestrahlungskammer tile.machine_excavator.name=Großer Minenbohrer tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU @@ -4037,6 +4121,8 @@ tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Kraftfeldgenerator tile.machine_fracking_tower.name=Hydraulischer Frackingturm tile.machine_fraction_tower.name=Fraktionierungsturm +tile.machine_funnel.name=Kombinationstrichter +tile.machine_funnel.desc=Verbindet Items in einem 2x2 oder 3x3 Craftingfeld$Oben: Input$Unten: Output$Seite: Output fÃŒr Item-Eingang tile.machine_gascent.name=Gaszentrifuge tile.machine_generator.name=Atomreaktor (Alt) tile.machine_geo.name=Geothermiegenerator @@ -4114,6 +4200,8 @@ tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranhexafluorid-Tank tile.machine_vacuum_distill.name=Vakuumraffinerie tile.machine_waste_drum.name=Abklingbecken-Trommel +tile.machine_wood_burner.name=Brennholzgenerator +tile.machine_wood_burner.desc=Erzeugt 100HE/t aus Items$Sammelt Asche$Kann 40mB/s FlÃŒssigkeiten mit 50%% Effizienz verbrennen tile.machine_well.name=Ölbohrturm tile.machine_zirnox.name=ZIRNOX Atomreaktor tile.marker_structure.name=Multiblock-Strukturvorlage @@ -4222,6 +4310,7 @@ tile.ore_uranium_scorched.name=Verschmortes Uranerz tile.ore_verticium.name=DollargrÃŒnes Mineral tile.ore_volcano.name=Thermale Fissur tile.ore_weidanium.name=Weidit +tile.pedestal.name=Podest tile.pink_barrel.name=Kerosinfass tile.pink_log.name=Pinkes Holz tile.pink_planks.name=Pinke Holzbretter @@ -4250,6 +4339,10 @@ tile.pribris.name=RBMK-Schutt tile.pribris_burning.name=Flammender RBMK-Schutt tile.pribris_digamma.name=GeschwÀrzter RBMK-Schutt tile.pribris_radiating.name=GlÃŒhender RBMK-Schutt +tile.pump_electric.name=Elektrische Grundwasserpumpe +tile.pump_electric.desc=Nutzt Strom um Grundwasser hochzupumpen$Erzeugt bis zu 10.000mB/t$Muss unter Y:70 platziert werden +tile.pump_steam.name=Dampfbetriebene Grundwasserpumpe +tile.pump_steam.desc=Nutzt Dampf um Grundwasser hochzupumpen$Erzeugt bis zu 1.000mB/t$Muss unter Y:70 platziert werden tile.pwr_block.name=PWR tile.pwr_casing.name=PWR DruckbehÀlter tile.pwr_casing.desc=Muss alle internen Teile des PWRs abdecken$Platzierung: HÃŒlle @@ -4269,6 +4362,8 @@ tile.pwr_port.name=PWR Zugangsport tile.pwr_port.desc=Erlaubt IO fÃŒr Items und FlÃŒssigkeiten$Platzierung: HÃŒlle tile.pwr_reflector.name=PWR Neutronenreflektor tile.pwr_reflector.desc=Reflektier Neutronen auf BrennstÀbe zurÃŒck$Platzierung: HÃŒlle, fÃŒr höhere ReaktivitÀt$GÃŒltiger Block fÃŒr HÃŒlle +tile.radar_screen.name=Radarbildschirm +tile.radio_telex.name=Telex-Maschine tile.radio_torch_counter.name=Redstone-over-Radio ItemzÀhler tile.radio_torch_counter.desc=Kann auf ebenen FlÀchen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items tile.radio_torch_receiver.name=Redstone-over-Radio EmpfÀnger @@ -4280,6 +4375,15 @@ tile.radiorec.name=UKW Radio tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen tile.rail_highspeed.name=Hochgeschwindigkeitsschienen tile.rail_narrow.name=Schmalspurschienen +tile.rail_large_buffer.name=Normalspur-Prellbock (5m) +tile.rail_large_curve.name=Normalspur-Kurve (5m) +tile.rail_large_curve_7.name=Normalspur-Kurve (7m) +tile.rail_large_curve_9.name=Normalspur-Kurve (9m) +tile.rail_large_ramp.name=Normalspur-Rampe (5m) +tile.rail_large_straight.name=Normalspur-Schiene (5m) +tile.rail_large_straight_short.name=Normalspur-Schiene (1m) +tile.rail_large_switch.name=Normalspur-Weiche (15m, Links) +tile.rail_large_switch_flipped.name=Normalspur-Weiche (15m, Rechts) tile.rail_wood.name=Holzschienen tile.rbmk_absorber.name=RBMK Bor-Neutronenabsorber tile.rbmk_blank.name=RBMK Strukturteil @@ -4313,6 +4417,8 @@ tile.reactor_inserter.name=Reaktor-Brennstoffeinlass tile.red_barrel.name=Explosives Fass tile.red_cable.name=Rotes Kupferkabel tile.red_cable_classic.name=Rotes Kupferkabel (Klassisch) +tile.red_cable_gauge.name=StrommessgerÀt +tile.red_cable_gauge.desc=Kabel welches anzeight, wie viel Strom$sich pro Tick im Netzwerk bewegt.$Geteilte Netzwerke die ÃŒber Energiespeicherblöcke$verbunden sind, werden als ein einzelnes gezÀhlt. tile.red_cable_paintable.name=Geschirmtes rotes Kupferkabel (FÀrbbar) tile.red_connector.name=StromverbindungsstÃŒck tile.red_pylon.name=Strommasten @@ -4381,6 +4487,7 @@ tile.stone_cracked.name=Rissiger Stein tile.stone_depth.name=Tiefenfels tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_gneiss.name=Graphitschiefer +tile.stone_keyhole.name=Seltsamer Stein tile.stone_porous.name=Poröser Stein tile.stone_resource.asbestos.name=Chrysotil tile.stone_resource.bauxite.name=Bauxit @@ -4540,6 +4647,9 @@ turret.off=AUS turret.on=AN turret.players=Spieler anzielen: %s +upgrade.consumption=Verbrauch %s +upgrade.speed=Verarbeitungszeit %s + wavelengths.name.ir=Infrarot wavelengths.name.visible=Sichtbares Licht wavelengths.name.uv=Ultraviolett diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 86ff04690..7f563b46c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -94,6 +94,8 @@ achievement.RBMK.desc=He's delusional, get him to the infirmary. achievement.RBMK=3.6 Roentegen? achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war." achievement.redBalloons=99 Red Balloons +achievement.redRoom.desc=? +achievement.redRoom=The Other Side achievement.sacrifice.desc=Face the fire and live. achievement.sacrifice=Sororicide achievement.schrab.desc=Regardless, I wouldn't look at it for too long. @@ -135,6 +137,7 @@ armor.damageModifier=Damage modifier of %s against %s armor.dash=Grants %s dashes armor.electricJetpack=Ion Jetpack armor.explosionImmune=Cannot take any damage except from explosions +armor.fasterReload=Faster Reload armor.fastFall=Fast Fall armor.fireproof=Fireproof armor.fullSetBonus=Full Set Bonus: @@ -145,10 +148,12 @@ armor.gravity=Gravity modifier of %s armor.hardLanding=Hard Landing armor.ignoreLimit=Resistance is not affected by resistance limit armor.modifier=General damage modifier of %s +armor.moreAmmo=More Ammo armor.nullDamage=Nullifies all damage from %s armor.projectileProtection=Damage modifier of %s against projectiles armor.rocketBoots=Rocket Boots armor.sprintBoost=Boosted Sprint +armor.stepSize=Stepsize: %s armor.thermal=Thermal Sight armor.threshold=Damage threshold of %s armor.vats=Enemy HUD @@ -580,6 +585,7 @@ chem.KEVLAR=Kevlar Compound Production chem.LPG=Petroleum Gas Liquefaction chem.LUBRICANT=Lubricant Mixing chem.METH=Methamphetamine Synthesis +chem.MEAT_PROCESSING=Glyphid Meat Mineral Extraction chem.NITAN=NITAN Super Fuel Mixing chem.NITRIC_ACID=Nitric Acid Production chem.OIL_SAND=Tar Sand Extraction @@ -669,8 +675,13 @@ container.dfcReceiver=DFC Receiver container.dfcStabilizer=DFC Stabilizer container.diFurnace=Blast Furnace container.diFurnaceRTG=Nuclear Blast Furnace +container.droneCrate=Transport Drone Crate +container.droneDock=Dock +container.droneProvider=Provider +container.droneRequester=Requester container.electricFurnace=Electric Furnace container.epress=Electric Press +container.exposureChamber=Exposure Chamber container.factoryAdvanced=Advanced Factory container.factoryTitanium=Basic Factory container.fluidtank=Tank @@ -695,6 +706,7 @@ container.keyForge=Locksmith Table container.launchPad=Missile Launch Pad container.launchTable=Large Launch Pad container.leadBox=Containment Box +container.machineArcWelder=Arc Welder container.machineBoiler=Oil Heater container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator @@ -705,6 +717,7 @@ container.machineDiesel=Diesel Generator container.machineElectricBoiler=Electric Oil Heater container.machineElectrolyser=Electrolysis Machine container.machineFEL=FEL +container.machineFunnel=Combinator Funnel container.machineITER=Fusion Reactor container.machineLargeTurbine=Industrial Steam Turbine container.machineLiquefactor=Liquefactor @@ -716,6 +729,7 @@ container.machineSILEX=SILEX container.machineSolidifier=Solidifier container.machineTurbine=Steam Turbine container.machineTurbofan=Turbofan +container.machineWoodBurner=Wood-Burner container.machine_schrabidium_transmutator=Schrabidium Transmutation Device container.massStorage=Storage container.microwave=Microwave @@ -882,16 +896,11 @@ desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Tem desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network desc.gui.turbinegas.fuels=§6Accepted fuels:§r desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! + desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage desc.item.ammo.con_heavy_wear=- Highly increased wear @@ -1036,9 +1045,11 @@ entity.entity_glyphid_blaster.name=Glyphid Blaster entity.entity_glyphid_bombardier.name=Glyphid Bombardier entity.entity_glyphid_brawler.name=Glyphid Brawler entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_digger.name=Glyphid Digger entity.entity_glyphid_nuclear.name=Big Man Johnson entity.entity_glyphid_scout.name=Glyphid Scout entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_fbi_drone.name=FBI Drone entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship entity.entity_mob_hunter_chopper.name=Hunter Chopper @@ -1048,6 +1059,9 @@ entity.entity_mob_nuclear_creeper.name=Nuclear Creeper entity.entity_mob_phosgene_creeper.name=Phosgene Creeper entity.entity_mob_tainted_creeper.name=Tainted Creeper entity.entity_mob_volatile_creeper.name=Volatile Creeper +entity.entity_parasite_maggot.name=Parasitic Maggot +entity.entity_pigeon.name=Pigeon +entity.entity_plastic_bag.name=Plastic Bag entity.entity_taint_crab.name=Taint Crab entity.entity_tesla_crab.name=Tesla Crab entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime @@ -1227,6 +1241,7 @@ hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] hadron.hopper0=§eNormal Mode:$All items will be used. hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper2=§eSingle Mode:$Only allows one item per slot. hadron.idle=Idle hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. @@ -1305,6 +1320,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice hbmfluid.fishoil=Fish Oil hbmfluid.fracksol=Fracking Solution +hbmfluid.fullerene=Fullerene Solution hbmfluid.gas=Natural Gas hbmfluid.gas_coker=Coker Gas hbmfluid.gasoline=Gasoline @@ -1349,6 +1365,8 @@ hbmfluid.pain=Pandemonium(III)tantalite Solution hbmfluid.petroil=Petroil hbmfluid.petroil_leaded=Leaded Petroil hbmfluid.petroleum=Petroleum Gas +hbmfluid.pheromone=Booster Pheromone +hbmfluid.pheromone_m=Modified Booster Pheromone hbmfluid.phosgene=Phosgene hbmfluid.plasma_bf=Balefire Plasma hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma @@ -1396,6 +1414,9 @@ hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX + + + hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -1454,6 +1475,7 @@ hbmmat.magnetizedtungsten=Magnetized Tungsten hbmmat.malachite=Malachite hbmmat.meteoriciron=Meteoric Iron hbmmat.mingrade=Minecraft Grade Copper +hbmmat.neodymium=Neodymium hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niobium hbmmat.obsidian=Obsidian @@ -1802,6 +1824,7 @@ item.balefire_and_steel.name=Balefire and Steel item.balefire_scrambled.name=Scrambled Balefire Egg item.ball_dynamite.name=Dynamite item.ball_fireclay.name=Fireclay +item.ball_resin.name=Latex item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistic Gauntlet @@ -1931,14 +1954,14 @@ item.blades_steel.name=Steel Shredder Blades item.blades_titanium.name=Titanium Shredder Blades item.blowtorch.name=Blowtorch item.board_copper.name=Copper Panel +item.boat_rubber.name=Rubber Boat item.bobmazon_hidden.name=Hidden Catalog item.bobmazon_machines.name=Bobmazon: Blocks and Machines item.bobmazon_materials.name=Bobmazon: Materials item.bobmazon_tools.name=Bobmazon: Tools item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives +item.bolt.name=%s Bolt item.bolt_compound.name=Reinforced Turbine Shaft -item.bolt_dura_steel.name=High-Speed Steel Bolt -item.bolt_tungsten.name=Tungsten Bolt item.boltgun.name=Pneumatic Rivet Gun item.bomb_caller.name=Airstrike Designator item.bomb_waffle.name=Waffle of Mass Destruction @@ -2377,6 +2400,8 @@ item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor item.dieselsuit_legs.name=Diesel-Powered Leg Servos item.dieselsuit_plate.name=Diesel-Powered Cybernetics item.digamma_diagnostic.name=Digamma Diagnostic +item.disperser_canister.name= Disperser Canister: +item.disperser_canister_empty.name= Disperser Canister item.dns_boots.name=DNT Nano Suit Boots item.dns_legs.name=DNT Nano Suit Leggings item.dns_helmet.name=DNT Nano Suit Helmet @@ -2388,7 +2413,11 @@ item.dnt_plate.name=dineutrom chestplate item.door_bunker.name=Bunker Door item.door_metal.name=Metal Door item.door_office.name=Office Door +item.door_red.name=Red Door item.dosimeter.name=Dosimeter +item.drax.name=Terra Drill +item.drax_mk2.name=Hardened Terra Drill +item.drax_mk3.name=Schrabidic Terra Drill item.drillbit_desh.name=Desh Drillbit item.drillbit_desh_diamond.name=Desh Drillbit (Diamond-Tipped) item.drillbit_ferro.name=Ferrouranium Drillbit @@ -2400,9 +2429,12 @@ item.drillbit_steel_diamond.name=Steel Drillbit (Diamond-Tipped) item.drillbit_tcalloy.name=Technetium Steel Drillbit item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) item.drill_titanium.name=Titanium Drill -item.drax.name=Terra Drill -item.drax_mk2.name=Hardened Terra Drill -item.drax_mk3.name=Schrabidic Terra Drill +item.drone.patrol.name=Transport Drone +item.drone.patrol_chunkloading.name=Chunkloading Transport Drone +item.drone.patrol_express.name=Express Transport Drone +item.drone.patrol_express_chunkloading.name=Chunkloading Express Transport Drone +item.drone.request.name=Logistics Drone +item.drone_linker.name=Transport Drone Linker item.ducttape.name=Duct Tape item.dust.name=Dust item.dust.desc=I hate dust! @@ -2597,6 +2629,8 @@ item.grenade_smart.name=Smart Grenade item.grenade_strong.name=Enhanced Grenade item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade +item.glyphid_gland.name= Gland +item.glyphid_gland_empty.name= Glyphid's Fluid Gland item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun item.gun_b92.name=§9B92 Energy Pistol§r @@ -2751,6 +2785,7 @@ item.heart_booster.name=Heart Booster item.heart_container.name=Heart Container item.heart_fab.name=Fab Heart item.heart_piece.name=Heart Piece +item.heavy_component.name=Heavy %s Component item.hev_battery.name=Suit Battery item.hev_boots.name=HEV Mark IV Boots item.hev_plate.name=HEV Mark IV Chestplate @@ -2791,12 +2826,14 @@ item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar item.ingot_beryllium.name=Beryllium Ingot +item.ingot_biorubber.name=Latex Bar item.ingot_bismuth.name=Bismuth Ingot item.ingot_boron.name=Boron Ingot item.ingot_c4.name=Bar of Composition C-4 item.ingot_cadmium.name=Cadmium Ingot item.ingot_calcium.name=Calcium Ingot item.ingot_cdalloy.name=Cadmium Steel Ingot +item.ingot_cft.name=Crystalline Fullerite item.ingot_chainsteel.name=Heavy Chainsteel item.ingot_co60.name=Cobalt-60 Ingot item.ingot_cobalt.name=Cobalt Ingot @@ -2999,7 +3036,7 @@ item.mike_kit.name=Ivy Mike Kit item.mirror_tool.name=Mirror Adjustment Tool item.mirror_tool.linked=Alignment position set! item.mirror_tool.desc=Right-click boiler to memorize the position.$Click on mirrors to turn them towards the boiler. -item.missile_anti_ballistic.name=Anti Ballistic Missile +item.missile_anti_ballistic.name=Anti-Ballistic Missile item.missile_assembly.name=Small Missile Assembly item.missile_bhole.name=Black Hole Missile item.missile_burst.name=Spare Missile @@ -3009,6 +3046,7 @@ item.missile_carrier.name=HTR-01 Carrier Rocket item.missile_cluster.name=Cluster Missile item.missile_cluster_strong.name=Strong Cluster Missile item.missile_custom.name=Custom Missile +item.missile_decoy.name=Decoy Missile item.missile_doomsday.name=Doomsday Missile item.missile_drill.name=The Concrete Cracker item.missile_emp.name=EMP Missile @@ -3026,27 +3064,10 @@ item.missile_nuclear_cluster.name=Thermonuclear Missile item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle -item.missile_skin_camo.name=Missile Skin: Camo -item.missile_skin_color.desc=I can't find my missile anymore! -item.missile_skin_desert.name=Missile Skin: Desert Camo -item.missile_skin_desert.desc=Looks like sand, tastes like metal. -item.missile_skin_flames.name=Missile Skin: Sick Flames -item.missile_skin_flames.desc=Radical! -item.missile_skin_manly_pink.name=Missile Skin: Manly Pink -item.missile_skin_manly_pink.desc=Pink, the manliest color of them all. -item.missile_skin_metal.name=Missile Skin: Metal -item.missile_skin_metal.desc=Metal sheets and metal bolts, reinforced with metal. -item.missile_skin_orange_insulation.name=Missile Skin: Orange Insulation -item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not attempt to drink contents. -item.missile_skin_sleek.name=Missile Skin: IF-R&D -item.missile_skin_sleek.desc=Chevrons are cool! -item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=услуга перевПЎа МеЎПступМа -item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank -item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG item.missile_soyuz_lander.name=Orbital Module item.missile_soyuz_lander.desc=Doubles as a crappy lander! +item.missile_stealth.name=Stealth Missile item.missile_strong.name=Strong HE Missile item.missile_taint.name=Taint-Tipped Missile item.missile_volcano.name=Tectonic Missile @@ -3198,6 +3219,8 @@ item.night_vision.name=Night Vision Goggles item.night_vision.description.item=Grants you night vision (requires full electric set) item.night_vision.description.in_armor=%s (grants night vision) item.niter.name=Niter +item.nitra.name=Nitra +item.nitra_small.name=Small Pile of Nitra item.no9.name=Mining Helmet item.nossy_hat.name=Fabulous Hat item.nothing.name=Nothing @@ -3297,12 +3320,15 @@ item.ore.asbestos=Asbestos item.ore.borax=Borax item.ore.chlorocalcite=Chlorocalcite item.ore.copper=Copper +item.ore.fluorite=Fluorite item.ore.gold=Gold +item.ore.hematite=Hematite item.ore.iron=Iron +item.ore.malachite=Malachite item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten -item.ore.thorium=Thorium +item.ore.thorium232=Thorium item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment @@ -3342,6 +3368,14 @@ item.padlock_unbreakable.name=Unbreakable Padlock item.pads_rubber.name=Rubber Pads item.pads_slime.name=Slime Pads item.pads_static.name=Static Pads +item.page_of_.page1.name=Page 1 +item.page_of_.page2.name=Page 2 +item.page_of_.page3.name=Page 3 +item.page_of_.page4.name=Page 4 +item.page_of_.page5.name=Page 5 +item.page_of_.page6.name=Page 6 +item.page_of_.page7.name=Page 7 +item.page_of_.page8.name=Page 8 item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust item.part_beryllium.name=Box of Beryllium Dust item.part_carbon.name=Box of Carbon Dust @@ -3455,6 +3489,7 @@ item.plan_c.desc=Deadly item.plant_item.mustardwillow.name=Mustard Willow Leaf item.plant_item.rope.name=Rope item.plant_item.tobacco.name=Tobacco +item.plastic_bag.name=Plastic Bag item.plate_advanced_alloy.name=Advanced Alloy Plate item.plate_aluminium.name=Aluminium Plate item.plate_armor_ajr.name=Iron-Shod Armor Plating @@ -3490,6 +3525,7 @@ item.plate_saturnite.name=Saturnite Plate item.plate_schrabidium.name=Schrabidium Plate item.plate_steel.name=Steel Plate item.plate_titanium.name=Titanium Plate +item.plate_welded.name=Welded %s Plate item.polaroid.name=The Polaroid item.pollution_detector.name=Pollution Detector item.powder_actinium.name=Actinium Powder @@ -3499,7 +3535,10 @@ item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=Coal Ash +item.powder_ash.fly.name=Fly Ash +item.powder_ash.fullerene.name=Fullerene item.powder_ash.misc.name=Ash +item.powder_ash.soot.name=Fine Soot item.powder_ash.wood.name=Wood Ash item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder @@ -3620,8 +3659,8 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding -item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR ZFB Rod -item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR ZFB Rod +item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod +item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod item.pwr_fuel.hen237.name=HEN-237 PWR Fuel Rod item.pwr_fuel.hep239.name=HEP-239 PWR Fuel Rod @@ -3666,6 +3705,7 @@ item.pwr_fuel_hot.mep.name=Hot MEP PWR Fuel Rod item.pwr_fuel_hot.meu.name=Hot MEU PWR Fuel Rod item.pwr_fuel_hot.mox.name=Hot MOX PWR Fuel Rod item.quartz_plutonium.name=Plutonic Quartz +item.radar_linker.name=Radar Linker item.radaway.name=RadAway item.radaway_flush.name=Elite RadAway item.radaway_strong.name=Strong RadAway @@ -3958,6 +3998,7 @@ item.sat_base.name=Satellite Base item.sat_chip.name=Satellite ID-Chip item.sat_coord.name=Satellite Designator item.sat_designator.name=Satellite Laser Designator +item.sat_relay.name=Satellite Radar Relay item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion item.sat_gerald.name=Gerald The Construction Android item.sat_head_laser.name=Death Ray @@ -4043,6 +4084,14 @@ item.stamp_357.name=.357 Magnum Stamp item.stamp_44.name=.44 Magnum Stamp item.stamp_50.name=Large Caliber Stamp item.stamp_9.name=Small Caliber Stamp +item.stamp_book.printing1.name=Printing Press Stamp (Part 1) +item.stamp_book.printing2.name=Printing Press Stamp (Part 2) +item.stamp_book.printing3.name=Printing Press Stamp (Part 3) +item.stamp_book.printing4.name=Printing Press Stamp (Part 4) +item.stamp_book.printing5.name=Printing Press Stamp (Part 5) +item.stamp_book.printing6.name=Printing Press Stamp (Part 6) +item.stamp_book.printing7.name=Printing Press Stamp (Part 7) +item.stamp_book.printing8.name=Printing Press Stamp (Part 8) item.stamp_desh_circuit.name=Circuit Stamp (Desh) item.stamp_desh_flat.name=Flat Stamp (Desh) item.stamp_desh_plate.name=Plate Stamp (Desh) @@ -4161,6 +4210,10 @@ item.titanium_shovel.name=Titanium Shovel item.titanium_sword.name=Titanium Sword item.toothpicks.name=Toothpicks item.train.cargo_tram.name=Electric Flat Bed Tram +item.trenchmaster_boots.name=Trenchmaster's Boots +item.trenchmaster_helmet.name=Trenchmaster's Helmet +item.trenchmaster_legs.name=Trenchmaster's Leggings +item.trenchmaster_plate.name=Trenchmaster's Chestplate item.trinitite.name=Trinitite item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! @@ -4222,6 +4275,7 @@ item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand item.wand_s.name=Structure Wand +item.structure_custommachine.name=Custom Machine Structure Output Wand item.warhead_buster_large.name=Large Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead @@ -4296,6 +4350,7 @@ item.wings_murk.name=Murky Wings item.wire_advanced_alloy.name=Super Conductor item.wire_aluminium.name=Aluminium Wire item.wire_copper.name=Copper Wire +item.wire_dense.name=Dense %s Wire item.wire_gold.name=Gold Wire item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor item.wire_red_copper.name=Red Copper Wire @@ -4334,10 +4389,28 @@ potion.hbm_stability=Stability potion.hbm_taint=Tainted potion.hbm_telekinesis=! ! ! +radar.clearMap=Clear Map radar.detectMissiles=Detect Missiles radar.detectPlayers=Detect Players +radar.detectShells=Detect Shells radar.redMode=Redstone Mode$On: Redstone output based on range$Off: Redstone output based on tier +radar.showMap=Show Map radar.smartMode=Smart Mode$Redstone output ignores ascending missiles +radar.toggleGui=Switch View + +radar.target.abm=Anti-Ballsitic Missile +radar.target.custom10=Size 10 Custom Missile +radar.target.custom1015=Size 10/15 Custom Missile +radar.target.custom15=Size 15 Custom Missile +radar.target.custom1520=Size 15/20 Custom Missile +radar.target.custom20=Size 20 Custom Missile +radar.target.doomsday=Doomsday Missile +radar.target.shuttle=Reliant Robin Space Shuttle +radar.target.tier0=Tier 0 Missile +radar.target.tier1=Tier 1 Missile +radar.target.tier2=Tier 2 Missile +radar.target.tier3=Tier 3 Missile +radar.target.tier4=Tier 4 Missile rbmk.heat=Column temperature: %s rbmk.boiler.water=Feedwater: %s / %s @@ -4383,6 +4456,8 @@ shape.plate=Plate shape.plateTriple=Cast Plate shape.stamp=Press Stamp shape.wire=Wire +shape.wireDense=Dense Wire +shape.wiresDense=Dense Wires soundCategory.ntmMachines=NTM Machines @@ -4584,6 +4659,7 @@ tile.brick_light.name=Light Bricks tile.brick_light_stairs.name=Light Bricks Stairs tile.brick_obsidian.name=Obsidian Bricks tile.brick_obsidian_stairs.name=Obsidian Brick Stairs +tile.brick_red.name=Red Room Brick tile.brick_slab.brick_asbestos.name=Asbestos Brick Slab tile.brick_slab.brick_compound.name=Compound Mesh Slab tile.brick_slab.brick_fire.name=Firebrick Slab @@ -4602,6 +4678,7 @@ tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a strai tile.capacitor_copper.name=Copper Capacitor tile.capacitor_gold.name=Golden Capacitor tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_schrabidate.name=Schrabidate Capacitor tile.capacitor_tantalium.name=Tantalium Capacitor tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge @@ -4612,6 +4689,9 @@ tile.charger.name=Charging Station tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block tile.chimney_brick.name=Smokestack +tile.chimney_brick.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 75%% +tile.chimney_industrial.name=Industrial Smokestack +tile.chimney_industrial.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 90%% tile.chlorine_gas.name=Chlorine Gas tile.cluster_aluminium.name=Aluminium Ore Cluster tile.cluster_copper.name=Copper Ore Cluster @@ -4620,6 +4700,7 @@ tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster tile.cluster_iron.name=Iron Ore Cluster tile.cluster_titanium.name=Titanium Ore Cluster +tile.custom_machine_anchor.name=Custom Machine Structure Positioning Anchor tile.cm_block.alloy.name=Advanced Alloy Machine Casing tile.cm_block.desh.name=Desh Machine Casing tile.cm_block.steel.name=Steel Machine Casing @@ -4694,6 +4775,8 @@ tile.conveyor_chute.name=Conveyor Chute tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt tile.conveyor_double.name=Double-Lane Conveyor Belt tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_express.name=Express Conveyor Belt +tile.conveyor_express.desc=Moves items dropped on it very fast$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_lift.name=Conveyor Chain Lift tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly tile.conveyor_triple.name=Triple-Lane Conveyor Belt @@ -4784,9 +4867,17 @@ tile.dfc_stabilizer.name=DFC Stabilizer tile.dirt_dead.name=Dead Dirt tile.dirt_oily.name=Oily Dirt tile.drill_pipe.name=Drill Pipe +tile.drone_crate.name=Transport Drone Crate +tile.drone_crate_provider.name=Logistics Provider Crate +tile.drone_crate_requester.name=Logistics Requester Crate +tile.drone_dock.name=Logistics Drone Dock +tile.drone_waypoint.name=Transport Drone Waypoint +tile.drone_waypoint.desc=Waypoint for transport drones$Use a transport drone linker to set the path$Click on each waypoint and crate in sequence to create the path,$then shift-click to clear the saved position$Right-click or shift-click the waypoint to change the waypoint's offset +tile.drone_waypoint_request.name=Logistics Drone Waypoint tile.door_bunker.name=Bunker Door tile.door_metal.name=Metal Door tile.door_office.name=Office Door +tile.door_red.name=Red Door tile.ducrete.name=Ducrete Tile tile.ducrete_stairs.name=Ducrete Tile Stairs tile.ducrete_smooth.name=Ducrete @@ -4957,6 +5048,7 @@ tile.lox_barrel.name=LOX Barrel tile.machine_amgen.name=Ambience Radiation Generator tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace +tile.machine_arc_welder.name=Arc Welder tile.machine_armor_table.name=Armor Modification Table tile.machine_ashpit.name=Ashpit tile.machine_ashpit.desc=Collects ashes from fireboxes and heating ovens @@ -4989,9 +5081,12 @@ tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_compressor.name=Compressor tile.machine_condenser.name=Steam Condenser +tile.machine_condenser_powered.name=High-Power Steam Condenser tile.machine_controller.name=Reactor Remote Control Block tile.machine_converter_he_rf.name=HE to RF Converter tile.machine_converter_rf_he.name=RF to HE Converter +tile.machine_conveyor_press.name=Conveyor Press +tile.machine_conveyor_press.desc=Conveyor moves left to right$Right click stamp to install$Use screwdriver to remove stamp tile.machine_crucible.name=Crucible tile.machine_crystallizer.name=Ore Acidizer tile.machine_cyclotron.name=Cyclotron @@ -5011,6 +5106,7 @@ tile.machine_electric_furnace_on.name=Electric Furnace tile.machine_electrolyser.name=Electrolysis Machine tile.machine_epress.name=Electric Press tile.machine_excavator.name=Large Mining Drill +tile.machine_exposure_chamber.name=Exposure Chamber tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Flare Stack @@ -5018,6 +5114,8 @@ tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower tile.machine_fracking_tower.name=Hydraulic Fracking Tower +tile.machine_funnel.name=Combinator Funnel +tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing incredients tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator @@ -5098,6 +5196,8 @@ tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranium Hexafluoride Tank tile.machine_vacuum_distill.name=Vacuum Refinery tile.machine_waste_drum.name=Spent Fuel Pool Drum +tile.machine_wood_burner.name=Wood-Burning Generator +tile.machine_wood_burner.desc=Generates 100HE/t when burning items$Collects ashes$Can burn fluids at 50%% efficiency at 40mB/s tile.machine_well.name=Oil Derrick tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker @@ -5207,6 +5307,7 @@ tile.ore_verticium.name=Dollar Green Mineral tile.ore_volcano.name=Geothermal Vent tile.ore_weidanium.name=Weidite tile.part_emitter.name=Deco Particle Emitter +tile.pedestal.name=Pedestal tile.pink_barrel.name=Kerosene Barrel tile.pink_log.name=Pink Log tile.pink_planks.name=Pink Wood Planks @@ -5235,6 +5336,10 @@ tile.pribris.name=RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_digamma.name=Blackened RBMK Debris tile.pribris_radiating.name=Smoldering RBMK Debris +tile.pump_electric.name=Electric Groundwater Pump +tile.pump_electric.desc=Uses electricity to pump up groundwater$Generates up to 10,000mB/t$Needs to be placed below Y:70 +tile.pump_steam.name=Steam-Powered Groundwater Pump +tile.pump_steam.desc=Uses steam to pump up groundwater$Generates up to 1,000mB/t$Needs to be placed below Y:70 tile.pwr_block.name=PWR tile.pwr_casing.name=PWR Pressure Vessel tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing @@ -5254,6 +5359,8 @@ tile.pwr_port.name=PWR Access Port tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing tile.pwr_reflector.name=PWR Neutron Reflector tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material +tile.radar_screen.name=Radar Screen +tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=Redstone-over-Radio Item Counter tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items tile.radio_torch_receiver.name=Redstone-over-Radio Receiver @@ -5264,6 +5371,15 @@ tile.radiobox.name=Rosenberg Pest Control Box tile.radiorec.name=FM Radio tile.rail_booster.name=High Speed Booster Rail tile.rail_highspeed.name=High Speed Rail +tile.rail_large_buffer.name=Standard Gauge Buffer Stop Rail (5m) +tile.rail_large_curve.name=Standard Gauge Curve Rail (5m) +tile.rail_large_curve_7.name=Standard Gauge Curve Rail (7m) +tile.rail_large_curve_9.name=Standard Gauge Curve Rail (9m) +tile.rail_large_ramp.name=Standard Gauge Ramp Rail (5m) +tile.rail_large_straight.name=Standard Gauge Rail (5m) +tile.rail_large_straight_short.name=Standard Gauge Rail (1m) +tile.rail_large_switch.name=Standard Gauge Switch Rail (15m, Left) +tile.rail_large_switch_flipped.name=Standard Gauge Switch Rail (15m, Right) tile.rail_narrow.name=Narrow Gauge Cart Rail tile.rail_wood.name=Wooden Tracks tile.rbmk_absorber.name=RBMK Boron Neutron Absorber @@ -5298,6 +5414,8 @@ tile.reactor_inserter.name=Reactor Fuel Inserter tile.red_barrel.name=Explosive Barrel tile.red_cable.name=Red Copper Cable tile.red_cable_classic.name=Red Copper Cable (Classic) +tile.red_cable_gauge.name=Power Gauge +tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$stroage blocks are considered as one shared network. tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector tile.red_pylon.name=Electricity Pole @@ -5370,6 +5488,7 @@ tile.stone_cracked.name=Cracked Stone tile.stone_depth.name=Depth Rock tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist +tile.stone_keyhole.name=Strange Stone tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile tile.stone_resource.bauxite.name=Bauxite @@ -5451,7 +5570,15 @@ tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) tile.watz_hatch.name=Watz Reactor Access Hatch tile.watz_pump.name=Watz Pressure Pump tile.yellow_barrel.name=Radioactive Barrel -tile.zirnox_destroyed.name=Destroyed ZINROX +tile.zirnox_destroyed.name=Destroyed ZIRNOX + +tile.large_vehicle_door.name=Large Vehicle Door +tile.water_door.name=Water Door +tile.qe_containment.name=QE Containment Door +tile.qe_sliding_door.name=QE Sliding Door +tile.round_airlock_door.name=Round Airlock Door +tile.secure_access_door.name=Secure Access Door +tile.sliding_seal_door.name=Sliding Seal Door trait.asbestos=Asbestos trait.blinding=Blinding @@ -5530,6 +5657,21 @@ turret.off=OFF turret.on=ON turret.players=Target Players: %s +upgrade.acid=Acid required %s +upgrade.burn=Burn %smb/t for %sHE +upgrade.consumption=Consumption %s +upgrade.delay=Process time %s +upgrade.efficiency=Efficiency %s +upgrade.fortune=Fortune %s +upgrade.range=Range %s + +upgrade.gui.title=§lAcceptable Upgrades:§r +upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s +upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s +upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s +upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s +upgrade.gui.speed= * §4Speed§r: Stacks to level %s + wavelengths.name.ir=Infrared wavelengths.name.visible=Visible Light wavelengths.name.uv=Ultraviolet @@ -5558,3 +5700,10 @@ weapon.elecGun.glass_cannon.visible=Visible Light weapon.elecGun.glass_cannon.uv=Ultraviolet Light weapon.elecGun.glass_cannon.xray=X-rays weapon.elecGun.glass_cannon.gamma=Gamma rays + +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index aafc96db9..38f25617b 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -154,6 +154,8 @@ achievement.no9.desc="Я МаЎеюсь, чтП свОМец, кПтПрый я achievement.no9=Старый МПЌер Девять achievement.goFish.desc=МПрскПе распятОе achievement.goFish=ИЎО пПрыбачь +achievement.redRoom.desc=? +achievement.redRoom=Другая стПрПМа cannery.f1=[ НажЌОте f1 Ўля справкО ] @@ -303,6 +305,9 @@ armor.sprintBoost=УскПреММый бег armor.projectileProtection=МПЎОфОкатПр урПМа %s Пт сМаряЎПв armor.dash=Даёт %s рывкПв armor.yield=ЗащОта прОЌеМОЌа к урПМу <%s +armor.fasterReload=Быстрая перезаряЎка +armor.moreAmmo=БПльше патрПМПв +armor.stepSize=Каг: %s armorMod.all=ВсеЌу armorMod.applicableTo=ПрОЌеМяется к: @@ -452,6 +457,8 @@ shape.plate=ПластОМа shape.plateTriple=ЛОтая пластОМа shape.quart=Четверть блПка shape.block=БлПк +shape.wireDense=ПлПтМый прПвПЎ +shape.wiresDense=ПлПтМые прПвПЎа foundry.noCast=ЛОтейМая фПрЌа Ме устаМПвлеМа! foundry.filter=ЀОльтр: %s foundry.inverted=ИМвертОрПваМ реЎстПуМПЌ @@ -464,7 +471,7 @@ hbm.key.craneMoveDown=ДвОгать краМ МазаЎ hbm.key.craneMoveLeft=ДвОгать краМ влевП hbm.key.craneMoveRight=ДвОгать краМ вправП hbm.key.craneMoveUp=ДвОгать краМ вперёЎ -hbm.key.dash=Деш +hbm.key.dash=РывПк hbm.key.toggleBack=ВключОть раМец hbm.key.toggleHUD=ВключОть HUD hbm.key.reload=ПерезаряЎОть @@ -543,12 +550,6 @@ desc.gui.gasCent.output=§6ПереЌещеМОе жОЎкПстО§r$ЖОЎкП desc.gui.assembler.warning=§cОшОбка:§r Требуется шаблПМ сбПрПчМПй ЌашОМы! desc.gui.chemplant.warning=§cОшОбка:§r Требуется шаблПМ хОЌОческПй ЌашОМы! desc.gui.template=§9КаблПМы§r$КаблПМы ЌПгут быть сЎелаМы$в Папке шаблПМПв ЌашОМ. -desc.gui.upgrade=§lПрОМОЌаеЌые улучшеМОя:§r -desc.gui.upgrade.afterburner= * §dЀПрсаж§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.effectiveness= * §aЭффектОвМПсть§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.overdrive= * §7Перегруз§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.power= * §1ЭМергПсбережеМОе§r: Стакается ЎП 3-х урПвМей -desc.gui.upgrade.speed= * §4СкПрПсть§r: Стакается ЎП 3-х урПвМей desc.gui.nukeBoy.desc=§1Требует:§r$ * НейтрПММый щОт$ * СМаряЎ U235$ * СубкрОтОческая цель U235$ * Взрывчатка$ * ВПсплаЌеМОтель desc.gui.nukeGadget.desc=§1Требует:§r$ * 4 НабПра взрывППпасМых лОМз$ ПервПгП пПкПлеМОя$ * ПлутПМОевПе яЎрП$ * ПрПвПЎа desc.gui.nukeMan.desc=§1Требует:§r$ * 4 НабПра взрывППпасМых лОМз$ ПервПгП пПкПлеМОя$ * ПлутПМОевПе яЎрП$ * ВПсплаЌеМОтель @@ -1231,6 +1232,9 @@ hbmfluid.thorium_salt=ЖОЎкая тПрОевая сПль hbmfluid.thorium_salt_depleted=ОбеЎМеММая жОЎкая тПрОевая сПль hbmfluid.thorium_salt_hot=ГПрячая жОЎкая тПрОевая сПль hbmfluid.heavywater_hot=ГПрячая тяжёлая вПЎа +hbmfluid.fullerene=РаствПр фуллереМа +hbmfluid.pheromone=ЀерПЌПМ-бустер +hbmfluid.pheromone_m=МПЎОфОцОрПваММый ферПЌПМ-бустер hbmmat.actinium227=АктОМОй-227 hbmmat.advancedalloy=ПрПЎвОМутый сплав @@ -1325,6 +1329,7 @@ hbmmat.cdalloy=КаЎЌОевая сталь hbmmat.cadmium=КаЎЌОй hbmmat.watzmud=ТПксОчМые ПтхПЎы hbmmat.zirconium=ЊОркПМОй +hbmmat.neodymium=НеПЎОЌ crucible.aa=ПрПОзвПЎствП прПЎвОМутПгП сплава crucible.ferro=ПрПОзвПЎствП феррПураМПвПгП сплава @@ -1427,10 +1432,51 @@ hadron.noresult_wrong_mode=НеверМый режОЌ! hadron.stats=ПреЎыЎущОе результаты: hadron.stats_coord=ОшОбка: %s / %s / %s hadron.stats_momentum=УскПреМОе: %s + radar.detectMissiles=ОбМаружеМОе ракет radar.detectPlayers=ОбМаружеМОе ОгрПкПв radar.smartMode=УЌМый режОЌ$ВыхПЎ реЎстПуМа ОгМПрОрует вПсхПЎящОе ракеты radar.redMode=РежОЌ красМПгП каЌМя$ВключёМ: СОгМал реЎстПуМа базОруется Ма ЎальМПстО$ВыключеМ: СОгМал реЎстПуМа базОруется Ма урПвМе +radar.clearMap=ОчОстОть карту +radar.detectShells=ОбМаружеМОе сМаряЎПв +radar.showMap=ППказать карту +radar.toggleGui=ПереключОть ОМтерфейс + +radar.target.abm=АМтОбаллОстОческая ракета +radar.target.custom10=Ракета 10 разЌера +radar.target.custom1015=Ракета 10/15 разЌера +radar.target.custom15=Ракета 15 разЌера +radar.target.custom1520=Ракета 15/20 разЌера +radar.target.custom20=Ракета 20 разЌера +radar.target.doomsday=Ракета суЎМПгП ЎМя +radar.target.shuttle=КПсЌОческОй шаттл Reliant Robin +radar.target.tier0=Ракета 0-гП урПвМя +radar.target.tier1=Ракета 1-гП урПвМя +radar.target.tier2=Ракета 2-гП урПвМя +radar.target.tier3=Ракета 3-гП урПвМя +radar.target.tier4=Ракета 4-гП урПвМя + +upgrade.acid=Требуется кОслПта %s +upgrade.burn=Burn %sЌб/тОк за %sHE +upgrade.consumption=ППтреблеМОе %s +upgrade.delay=ВреЌя %s +upgrade.efficiency=ЭффектОвМПсть %s +upgrade.fortune=УЎача %s +upgrade.range=РаЎОус %s + +upgrade.gui.title=§lПрОМОЌаеЌые улучшеМОя:§r +upgrade.gui.afterburner= * §dЀПрсаж§r: Стакается ЎП %s урПвМей +upgrade.gui.effectiveness= * §aЭффектОвМПсть§r: Стакается ЎП %s урПвМей +upgrade.gui.overdrive= * §7Перегруз§r: Стакается ЎП %s урПвМей +upgrade.gui.power= * §9ЭМергПсбережеМОе§r: Стакается ЎП %s урПвМей +upgrade.gui.speed= * §4СкПрПсть§r: Стакается ЎП %s урПвМей + +desc.gui.upgrade=§lПрОМОЌаеЌые улучшеМОя:§r +desc.gui.upgrade.afterburner= * §dЀПрсаж§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.effectiveness= * §aЭффектОвМПсть§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.overdrive= * §7Перегруз§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.power= * §1ЭМергПсбережеМОе§r: Стакается ЎП 3-х урПвМей +desc.gui.upgrade.speed= * §4СкПрПсть§r: Стакается ЎП 3-х урПвМей chem.TEST=Тест chem.FP_HEAVYOIL=ПерерабПтка тяжелПй МефтО @@ -1550,6 +1596,7 @@ chem.CC_ELECTROLYSIS=ЭлектрПлОз хлПрОЎа кальцОя chem.PC_ELECTROLYSIS=ЭлектрПлОз хлПрОЎа калОя chem.LAMINATE=ПрПОзвПЎствП лаЌОМата chem.THORIUM_SALT=ОбПгащеМОе тПрОевПй сПлО +chem.MEAT_PROCESSING=ОбрабПтка Ќяса глОфОЎПв item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep @@ -1714,6 +1761,11 @@ tile.nuke_fstbmb.name=Жар-бПЌба tile.bomb_multi.name=ММПгПцелевая бПЌба tile.rejuvinator.name=ГЭКК +item.disperser_canister.name= КаМОстра рассеОвателя: +item.disperser_canister_empty.name= КаМОстра рассеОвателя +item.glyphid_gland.name= Железа глОфОЎа: +item.glyphid_gland_empty.name= Железа глОфОЎа + tile.flame_war.name=ВПйМа в кПрПбке tile.float_bomb.name=ЛевОтацОПММая бПЌба tile.therm_endo.name=ЭМЎПтерЌОческая бПЌба @@ -1722,6 +1774,7 @@ tile.emp_bomb.name=ЭМИ-бПЌба tile.crashed_bomb.name=НеразПрвавшаяся бПЌба tile.boxcar.name=ГрузПвПй вагПМ tile.boat.name=ЛПЎка +item.boat_rubber.name=РезОМПвая лПЎка tile.bomber.name=РазбОвшОйся бПЌбарЎОрПвщОк tile.pink_log.name=РПзПвПе ЎеревП @@ -1739,6 +1792,8 @@ tile.turret_cwis.name=”ЀэлеМкс” Mk-15 CIWS tile.turret_cheapo.name=Дешёвая пулеЌётМая турель tile.machine_radar.name=РаЎар container.radar=РаЎар +item.radar_linker.name=РаЎарМый сПеЎОМОтель +tile.radar_screen.name=ЭкраМ раЎара tile.machine_forcefield.name=Излучатель сОлПвПгП пПля container.forceField=Излучатель сОлПвПгП пПля tile.machine_satlinker.name=МеМеЎжер ID спутМОкПв @@ -1781,6 +1836,8 @@ tile.crate_can.name=ЯщОк с кПМсерваЌО tile.crate_ammo.name=ЯщОк Оз звёзЎМПгП Ќеталла tile.crate_jungle.name=ЯщОк Оз эМаргОта tile.marker_structure.name=Маркер Ўля ЌМПгПблПчМых структур +item.structure_custommachine.name=Жезл ПбПзМачеМОя кастПЌМых ЌашОМ +tile.custom_machine_anchor.name=ЯкПрь Ўля кастПЌМых ЌашОМ tile.struct_launcher.name=БлПк-кПЌпПМеМт пускПвПй плПщаЎкО tile.struct_scaffold.name=ППЎЌПстПк пускПвПй плПщаЎкО @@ -1837,6 +1894,8 @@ tile.red_wire_coated.name=МеЎМый кабель с пПкрытОеЌ tile.cable_switch.name=РубОльМОк tile.cable_detector.name=РеЎстПуМ-рубОльМОк tile.cable_diode.name=ДОПЎ Оз красМПй ЌеЎО +tile.red_cable_gauge.name=ДатчОк ЌПщМПстО +tile.red_cable_gauge.desc=Кабель, кПтПрый пПказывает, скПлькП эМергОО$ переЌещается пП сетО за тОк.$РазЎелеММые сетО, сПеЎОМеММые блПкаЌО храМеМОя эМергОО$рассЌатрОваются как ПЎМа Пбщая сеть. tile.machine_deuterium.name=ДейтерОевый экстрактПр container.machine_deuterium=ДейтерОевый экстрактПр tile.machine_battery_potato.name=КартПфельМая батарея @@ -1851,6 +1910,7 @@ tile.capacitor_copper.name=МеЎМый кПМЎеМсатПр tile.capacitor_gold.name=ЗПлПтПй кПМЎеМсатПр tile.capacitor_niobium.name=НОПбОевый кПМЎеМсатПр tile.capacitor_tantalium.name=ТаМталПвый кПМЎеМсатПр +tile.capacitor_schrabidate.name=КрабОЎатПвый кПМЎеМсатПр tile.capacitor.desc=ВхПЎ: Сверху$ВыхПЎ: СМОзу через шОМу tile.machine_coal_off.name=ГеМератПр вМутреММегП сгПраМОя tile.machine_coal_on.name=ГеМератПр вМутреММегП сгПраМОя @@ -2044,6 +2104,7 @@ tile.machine_fraction_tower.name=РектОфОкацОПММая кПлПММа tile.machine_orbus.name=Тяжёлый ЌагМОтМый кПМтейМер Ўля аМтОЌатерОО container.orbus=Тяжёлый ЌагМОтМый кПМтейМер Ўля аМтОЌатерОО tile.machine_condenser.name=КПМЎеМсатПр пара +tile.machine_condenser_powered.name=МПщМый кПМЎеМсатПр пара container.atomicClock=АтПЌМые часы container.betavoltaic=БетавПльтПвый геМератПр container.bigRTG=БПльшПй РИТЭГ-геМератПр @@ -2069,6 +2130,8 @@ tile.machine_solidifier.desc=УМОверсальМая ЌашОМа, ПсМащ tile.conveyor.name=КПМвейер tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_express.name=Быстрый кПМвейер +tile.conveyor_express.desc=Moves items dropped on it very fast$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend container.craneExtractor=КПМвейерМый Озвлекатель container.craneInserter=КПМвейерМый вставщОк tile.crane_extractor.name=КПМвейерМый Озвлекатель @@ -2098,6 +2161,24 @@ tile.crane_grabber.desc=Takes items from passing conveyors and places them into tile.crane_splitter.name=КПМвейерМый разЎелОтель tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter +container.droneCrate=ПассОвМый ящОк Ўля ЎрПМПв +container.droneDock=ДрПМ-стаМцОя +container.droneProvider=ЯщОк сМабжеМОя Ўля ЎрПМПв +container.droneRequester=ЯщОк запрПса Ўля ЎрПМПв +tile.drone_crate.name=ПассОвМый ящОк Ўля ЎрПМПв +tile.drone_crate_provider.name=ЯщОк сМабжеМОя Ўля ЎрПМПв +tile.drone_crate_requester.name=ЯщОк запрПса Ўля ЎрПМПв +tile.drone_dock.name=ДрПМ-стаМцОя +tile.drone_waypoint.name=Путевая тПчка Ўля ЎрПМПв +tile.drone_waypoint.desc=Путевая тПчка Ўля ЎрПМПв$Use a transport drone linker to set the path$Click on each waypoint and crate in sequence to create the path,$then shift-click to clear the saved position$Right-click or shift-click the waypoint to change the waypoint's offset +tile.drone_waypoint_request.name=ЛПгОстОческая путевая тПчка Ўля ЎрПМПв +item.drone.patrol.name=ТраМспПртМый ЎрПМ +item.drone.patrol_chunkloading.name=ТраМспПртМый ЎрПМ (ЧаМклПаЎер) +item.drone.patrol_express.name=Быстрый траМспПртМый ЎрПМ +item.drone.patrol_express_chunkloading.name=Быстрый траМспПртМый ЎрПМ (ЧаМклПаЎер) +item.drone.request.name=ЛПгОстОческОй ЎрПМ +item.drone_linker.name=СПеЎОМОтель пассОвМых ящОкПв Ўля ЎрПМПв + container.turretArty=Грег tile.turret_arty.name=АртОллерОйская турель "Грег" container.heaterFirebox=ТПпка @@ -2187,6 +2268,7 @@ tile.radio_torch_sender.name=РеЎстПуМ-раЎОП переЎатчОк tile.radio_torch_sender.desc=СтавОтся Ма плПскОе пПверхМПстО ОлО сПвЌестОЌые кПЌпаратПрМые блПкО$СчОтывает реЎстПуМ сОгМал ОлО вхПЎ кПЌпаратПра container.rttyReceiver=РеЎстПуМ-раЎОП прОёЌМОк container.rttySender=РеЎстПуМ-раЎОП переЎатчОк +tile.radio_telex.name=Телекс tile.machine_combustion_engine.name=ПрПЌышлеММый ЎвОгатель вМутреММегП сгПраМОя tile.machine_mixer.name=ПрПЌышлеММый сЌесОтель container.machineMixer=ПрПЌышлеММый сЌесОтель @@ -2210,6 +2292,9 @@ container.machineCoker=КПксПвая устаМПвка container.machineCompressor=КПЌпрессПр tile.machine_compressor.name=КПЌпрессПр tile.chimney_brick.name=ДыЌПвая труба +tile.chimney_brick.desc=ППЎсПеЎОМяется с пПЌПщью выхлПпМых труб к ЌашОМаЌ$СПкращает выбрПсы загрязМяющОх веществ Ма 75%% +tile.chimney_industrial.name=ПрПЌышлеММая ЎыЌПвая труба +tile.chimney_industrial.desc=ППЎсПеЎОМяется с пПЌПщью выхлПпМых труб к ЌашОМаЌ$СПкращает выбрПсы загрязМяющОх веществ Ма 90%% tile.radio_torch_counter.name=РеЎстПуМ-раЎОП счётчОк преЎЌетПв tile.radio_torch_counter.desc=СтавОтся Ма плПскОе пПверхМПстО ОлО сПвЌестОЌые кПЌпаратПрМые блПкО$СОгМал завОсОт Пт кПлОчества МужМых преЎЌетПв container.rttyCounter=РеЎстПуМ-раЎОП счётчОк преЎЌетПв @@ -2226,6 +2311,17 @@ tile.machine_ashpit.name=ЗПльМОк tile.machine_ashpit.desc=СПбОрает зПлу Оз тПпПк О МагревательМых печей tile.machine_stirling_creative.name=ТвПрческОй геМератПр СтОрлОМга tile.machine_stirling_creative.desc=Превращает теплП в эМергОю. Требует вМешМОй ОстПчМОк тепла.$СкПрПсть теплПпереЎачО: T*0.1 TU/t$БескПМечМПе пПтреблеМОе/t$ЭффектОвМПсть: 100%% +tile.machine_conveyor_press.name=КПМвейерМый пресс +tile.machine_conveyor_press.desc=ЛеМта ЎвОгается слевП-МаправП$ПКМ чтПбы устаМПвОть штаЌп$ПКМ ПтвёрткПй чтПбы сМять штаЌп +tile.pump_electric.name=ЭлектрОческОй МасПс Ўля груМтПвых вПЎ +tile.pump_electric.desc=ИспПльзует электрОчествП Ўля выкачОваМОя груМтПвых вПЎ$Выкачывает ЎП 10,000ЌБ/тОк$ДПлжМП быть разЌещеМП МОже Y:70 +tile.pump_steam.name=ПарПвПй МасПс Ўля груМтПвых вПЎ +tile.pump_steam.desc=ИспПльзует пар Ўля выкачОваМОя груМтПвых вПЎ$Выкачывает ЎП 1000ЌБ/тОк$ДПлжМП быть разЌещеМП МОже Y:70 +container.machineArcWelder=ДугПвПй сварщОк +tile.machine_arc_welder.name=ДугПвПй сварщОк +container.machineWoodBurner=ГеМератПр Ма ЎрПвах +tile.machine_wood_burner.name=ГеМератПр Ма ЎрПвах +tile.machine_wood_burner.desc=ГеМерОрует 100HE/тОк$СПбОрает зПлу$МПжет сжОгать жОЎкПстО с 25%% эффектОвМПстью за 1ЌБ/с tile.cm_block.alloy.name=КПрпус ЌашОМы Оз прПЎвОМутПгП сплава tile.cm_block.desh.name=КПрпус ЌашОМы Оз Ўеша @@ -2304,6 +2400,8 @@ tile.hadron_plating_striped.name=ОбшОвка ускПрОтеля частО tile.hadron_plating_voltz.name=ОбшОвка ускПрОтеля частОц (ВОЛЬТЗ) tile.hadron_plating_yellow.name=ОбшОвка ускПрОтеля частОц (Жёлтый) tile.field_disturber.name=ППЎавОтель высПкПэМергОтОческОх пПлей +container.exposureChamber=КаЌера ПблучеМОя частОцаЌО +tile.machine_exposure_chamber.name=КаЌера ПблучеМОя частОцаЌО tile.barrel_plastic.name=БезПпасМый бПчПМПк™ tile.barrel_corroded.name=ПрПржавевшая бПчка @@ -2537,6 +2635,8 @@ item.ingot_gh336.name=СлОтПк гОПрсОя-336 item.ingot_gh336.desc=КПллега СОбПргОуЌа. item.niter.name=СелОтра +item.nitra.name=НОтра +item.nitra_small.name=Кучка МОтры item.ingot_copper.name=СлОтПк прПЌышлеММПй ЌеЎО item.ingot_red_copper.name=СлОтПк красМПй ЌеЎО item.ingot_tungsten.name=ВПльфраЌПвый слОтПк @@ -2584,6 +2684,8 @@ item.ingot_niobium.name=НОПбОевый слОтПк item.ingot_firebrick.name=КаЌПтМый кОрпОч item.ingot_calcium.name=КальцОевый слОтПк item.plate_cast.name=ЛОтая %s пластОМа +item.heavy_component.name=Тяжёлый %s кПЌпПМеМт +item.plate_welded.name=СвареММая %s пластОМа item.ingot_pvc.name=ПВХ item.ingot_pet.name=МеталлОзОрПваММый алюЌОМОеЌ брусПк ПЭТ item.ingot_pc.name=ТверЎый пластОкПвый брусПк @@ -2646,6 +2748,7 @@ item.plate_paa.name=ПластОМа сплава PaA item.ingot_dura_steel.name=ВысПкПскПрПстМая сталь item.ingot_polymer.name=ППлОЌер item.ingot_rubber.name=РезОМа +item.ingot_biorubber.name=БрусПк латекса item.ingot_polonium.name=СлОтПк пПлПМОя-210 item.bolt_dura_steel.name=ВысПкПскПрПстМПй стальМПй стержеМь item.pipes_steel.name=СтальМые трубы @@ -2754,9 +2857,6 @@ item.plate_titanium.name=ТОтаМПвая пластОМа item.plate_aluminium.name=АлюЌОМОевая пластОМа item.wire_red_copper.name=ПрПвПЎ Оз красМПй ЌеЎО item.neutron_reflector.name=Отражатель МейтрПМПв -item.night_vision.name=ОчкО МПчМПгП зреМОя -item.night_vision.description.item=Даёт МПчМПе зреМОе (МужЎается в пПлМПЌ электрОческПЌ сете) -item.night_vision.description.in_armor=%s (Ўаёт МПчМПе зреМОе) item.nugget_beryllium.name=БерОллОевый саЌПрПЎПк item.nugget_bismuth.name=СаЌПрПЎПк вОсЌута item.nugget_tantalium.name=СаЌПрПЎПк таМтала @@ -2790,6 +2890,7 @@ item.crystal_trixite.name=КрОсталлОзПваММый трОксОт item.crystal_coal.name=КрОсталлОзПваММый угПль item.crystal_cinnebar.name=КрОсталлОзПваММая кОМПварь item.crystal_lapis.name=КрОсталОзПваММый лазурОт +item.ingot_cft.name=КрОсталлОческОй фуллерОт item.gem_tantalium.name=ППлОкрОсталл таМтала item.gem_tantalium.desc='ТаМталуЌ' item.gem_tantalium.desc.P11=АКА ТаМталОй. @@ -2813,6 +2914,7 @@ item.wire_aluminium.name=АлюЌОМОевый прПвПЎ item.wire_copper.name=МеЎМый прПвПЎ item.wire_gold.name=ЗПлПтПй прПвПЎ item.wire_schrabidium.name=КрабОЎОевый прПвПЎ +item.wire_dense.name=ПлПтМый %s прПвПЎ item.circuit_raw.name=СбПрка прПстПй ЌОкрПсхеЌы item.circuit_bismuth_raw.name=СбПрка уМОверсальМПгП чОпсета item.circuit_arsenic_raw.name=СбПрка гОбкПй ЌОкрПсхеЌы @@ -2920,8 +3022,11 @@ tile.block_fallout.name=БлПк раЎОПактОвМых ПсаЎкПв tile.fallout.name=РаЎОПактОвМый ПсаЎПк tile.ash_digamma.name=Пепел item.powder_ash.coal.name=УгПльМая зПла +item.powder_ash.fly.name=Летучая зПла item.powder_ash.misc.name=Пепел +item.powder_ash.soot.name=Мелкая сажа item.powder_ash.wood.name=ДревесМая зПла +item.powder_ash.fullerene.name=ЀуллереМ tile.glass_ash.name=ПепельМПе стеклП tile.fire_digamma.name=ЗатяжМая ДОгаЌЌа tile.balefire.name=Жар-плаЌя @@ -3079,12 +3184,15 @@ item.ore.asbestos=АсбестПвая item.ore.borax=БурПвая item.ore.chlorocalcite=ХлПркальцОтПвая item.ore.copper=МеЎМая +item.ore.fluorite=ЀлюПрОтМая item.ore.gold=ЗПлПтая +item.ore.hematite=ГеЌатОтПвая item.ore.iron=ЖелезМая +item.ore.malachite=МалахОтПвая item.ore.niobium=НОПбОевая item.ore.titanium=ТОтаМПвая item.ore.tungsten=ВПльфраЌПвая -item.ore.thorium=ТПрОевая +item.ore.thorium232=ТПрОевая item.ore.uranium=УраМПвая item.ore_bedrock.name=%s беЎрПкПвая руЎа item.ore_centrifuged.name=ЊеМтрОфугОрПваММая %s беЎрПкПвая руЎа @@ -3222,6 +3330,9 @@ tile.brick_dungeon_circle.name=БерцелОаМОтПвый круг tile.brick_dungeon_flat.name=БерцелОаМОт tile.brick_dungeon_tile.name=БерцелОаМОтПвая плОтка tile.brick_jungle.name=ЭМаргОтПвые кОрпОчО +tile.stone_keyhole.name=СтраММый каЌеМь +tile.brick_red.name=КОрпОчО красМПй кПЌМаты +tile.pedestal.name=ПьеЎестал tile.brick_jungle_circle.name=Круг МехаМОста tile.brick_jungle_cracked.name=ППтрескаММые эМаргОтПвые кОрпОчО tile.brick_jungle_fragile.name=ХрупкОе эМаргОтПвые кОрпОчО @@ -3332,10 +3443,19 @@ item.door_bunker.name=БуМкерМая Ўверь tile.door_metal.name=МеталлОческая Ўверь tile.door_office.name=ОфОсМая Ўверь tile.door_bunker.name=БуМкерМая Ўверь +item.door_red.name=КрасМая Ўверь +tile.door_red.name=КрасМая Ўверь tile.sliding_blast_door.name=РазЎвОжМая Ўверь item.sliding_blast_door_skin.0.name=СкОМ разЎвОжМПй ЎверО: ОбычМый item.sliding_blast_door_skin.1.name=СкОМ разЎвОжМПй ЎверО: ВарОаМт 1 item.sliding_blast_door_skin.2.name=СкОМ разЎвОжМПй ЎверО: ВарОаМт 2 +tile.large_vehicle_door.name=Дверь Ўля крупМПгабарОтМых автПЌПбОлей +tile.water_door.name=ППЎвПЎМая Ўверь +tile.qe_containment.name=QE Дверь бОПлПгОческПгП сЎержОваМОя +tile.qe_sliding_door.name=QE РазЎвОжМая Ўверь +tile.round_airlock_door.name=Круглый шлюз +tile.secure_access_door.name=Дверь с ОзПлОрПваММыЌ ЎПступПЌ +tile.sliding_seal_door.name=РазЎвОжМая герЌетОчМая Ўверь item.nugget_uranium.name=УраМПвый саЌПрПЎПк item.nugget_plutonium.name=ПлутПМОевый саЌПрПЎПк @@ -4065,7 +4185,6 @@ item.grenade_strong.name=УсПвершеМствПваММая граМата item.grenade_frag.name=ОскПлПчМая граМата item.grenade_fire.name=ОгМеММая ПскПлПчМая граМата item.grenade_shrapnel.name=ГраМата сП шрапМелью -item.grenate_cats.name=ГраМата с кПтаЌО item.grenade_cluster.name=КластерМая бПЌба item.grenade_flare.name=СОгМальМая ракета item.grenade_electric.name=ЭлектрПграМата @@ -4544,6 +4663,7 @@ item.ball_dynamite.name=ДОМаЌОт item.ball_tnt.name=ТНТ item.ball_tatb.name=TATB item.ball_fireclay.name=КаЌПтМая глОМа +item.ball_resin.name=Латекс item.plate_kevlar.name=КевларП-кераЌОческОй сПстав item.weaponized_starblaster_cell.name=§cСЌПМтОрПваММая эМергетОческая ячейка ЗвезЎМПгП бластера§r @@ -4683,21 +4803,26 @@ entity.entity_tesla_crab.name=Теслакраб entity.entity_taint_crab.name=ЗаражёММый пПрчей теслакраб entity.entity_elder_one.name=КрякПс СтаршОй entity.entity_ntm_fbi.name=АгеМт ЀБР +entity.entity_ntm_fbi_drone.name=ДрПМ ЀБР entity.entity_ntm_radiation_blaze.name=ЭлеЌеМталь РасплавлеМОя entity.entity_glyphid.name=ГлОфОЎ entity.entity_glyphid_behemoth.name=ГлОфОЎ-страж entity.entity_glyphid_brawler.name=ГлОфОЎ-сПлЎат entity.entity_glyphid_brenda.name=БреМЎа entity.entity_glyphid_nuclear.name=ЧЌяк -entity.entity_glyphid_scout.name=ГлОфОЎ-паучПк +entity.entity_glyphid_scout.name=ГлОфОЎ-скаут entity.entity_glyphid_blaster.name=ГлОфОЎ-стрелПк entity.entity_glyphid_bombardier.name=ГлОфОЎ-бПЌбарЎОр +entity.entity_glyphid_digger.name=ГлОфОЎ-кПпатель +entity.entity_parasite_maggot.name=ПаразОтОческая лОчОМка entity.hbm.entity_balls_o_tron.name=Баллс-О-ТрПМ ПрайЌ entity.hbm.entity_balls_o_tron_seg.name=Баллс-О-ТрПМ СегЌеМт entity.hbm.entity_ntm_ufo.name=МарсОаМскОй кПрабль втПржеМОя entity.entity_ntm_dtrooper.name=ТёЌМый сПлЎат entity.entity_mob_gold_creeper.name=ЗПлПтПй крОпер entity.entity_mob_volatile_creeper.name=ВПзгПраеЌый крОпер +entity.entity_plastic_bag.name=ПластОкПвый пакетОк +entity.entity_pigeon.name=ГПлубь eye.respond.no=§c"Нет" eye.respond.nothing=...ОМП Ме Птвечает @@ -4707,6 +4832,7 @@ eye.speakTo.join="Я бы хПтел стать еЎОМыЌ" eye.speakTo.remember="Ты пПЌМОшь ктП ты?" eye.speakTo=Вы гПвПрОте Оку: §o%s +item.plastic_bag.name=ПластОкПвый пакетОк item.cap_aluminium.name=АлюЌОМОевый кПлпачПк item.hull_small_steel.name=НебПльшая стальМая ПбПлПчка item.hull_small_aluminium.name=НебПльшая алюЌОМОевая ПбПлПчка @@ -4831,7 +4957,8 @@ item.designator_arty_range.name=АртОллерОйскОй целеуказа item.missile_assembly.name=СбПрка ЌалПй ракеты item.assembly_nuke.name=ОбПлПчка яЎерМПгП ЌОМОзаряЎа item.missile_generic.name=ЀугасМая ракета -item.missile_anti_ballistic.name=АМтОбаллОстОческая ракета (WIP) +item.missile_decoy.name=Ракета-прОЌаМка +item.missile_anti_ballistic.name=АМтОбаллОстОческая ракета item.missile_incendiary.name=ЗажОгательМая ракета item.missile_cluster.name=КластерМая ракета item.missile_buster.name=ПрПтОвПбуМкерМая ракета @@ -5121,6 +5248,10 @@ item.envsuit_boots.name=БПтОМкО защОтМПгП кПстюЌа M1TTY item.envsuit_helmet.name=КлеЌ защОтМПгП кПстюЌа M1TTY item.envsuit_legs.name=ППМПжО защОтМПгП кПстюЌа M1TTY item.envsuit_plate.name=НагруЎМОк защОтМПгП кПстюЌа M1TTY +item.trenchmaster_boots.name=СапПгО траМшейщОка +item.trenchmaster_helmet.name=КлеЌ траМшейщОка +item.trenchmaster_legs.name=ППМПжО траМшейщОка +item.trenchmaster_plate.name=НагруЎМОк траМшейщОка tile.mush.name=СветящОйся грОб tile.waste_mycelium.name=СветящОйся ЌОцелОй @@ -5578,6 +5709,15 @@ item.stamp_desh_44.name=КтаЌп пулО .44 МагМуЌ (Деш) item.stamp_desh_50.name=КтаЌп бПльшПгП калОбра (Деш) item.stamp_desh_9.name=КтаЌп ЌалПгП калОбра (Деш) +item.stamp_book.printing1.name=КтаЌп Ўля печатО (СтраМОца 1) +item.stamp_book.printing2.name=КтаЌп Ўля печатО (СтраМОца 2) +item.stamp_book.printing3.name=КтаЌп Ўля печатО (СтраМОца 3) +item.stamp_book.printing4.name=КтаЌп Ўля печатО (СтраМОца 4) +item.stamp_book.printing5.name=КтаЌп Ўля печатО (СтраМОца 5) +item.stamp_book.printing6.name=КтаЌп Ўля печатО (СтраМОца 6) +item.stamp_book.printing7.name=КтаЌп Ўля печатО (СтраМОца 7) +item.stamp_book.printing8.name=КтаЌп Ўля печатО (СтраМОца 8) + item.part_lithium.name=КПрПбка лОтОевПй пылО item.part_beryllium.name=КПрПбка берОллОевПй пылО item.part_carbon.name=КПрПбка угПльМПй пылО @@ -5710,6 +5850,14 @@ item.shackles.name=ОкПвы item.glitch.name=Глюк item.book_secret.name=3-596-50802-9 item.book_of_.name=КМОга ВагПМПв +item.page_of_.page1.name=СтраМОца 1 +item.page_of_.page2.name=СтраМОца 2 +item.page_of_.page3.name=СтраМОца 3 +item.page_of_.page4.name=СтраМОца 4 +item.page_of_.page5.name=СтраМОца 5 +item.page_of_.page6.name=СтраМОца 6 +item.page_of_.page7.name=СтраМОца 7 +item.page_of_.page8.name=СтраМОца 8 item.book_guide.name=РукПвПЎствП item.burnt_bark.name=ОбПжжеММая кПра item.burnt_bark.desc=КусПк кПры взПрваММПгП зПлПтПгП Ўуба. diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 570c2eb9a..4bd5871e0 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -134,6 +134,7 @@ armor.damageModifier=修正 %s 对 %s 的䌀害 armor.dash=给予 %s 冲刺 armor.electricJetpack=犻子喷射背包 armor.explosionImmune=免疫陀爆炞䌀害倖的䞀切䌀害 +armor.fasterReload=快速装填 armor.fastFall=快速降萜 armor.fireproof=防火 armor.fullSetBonus=党套效果: @@ -144,10 +145,12 @@ armor.gravity=重力修正 %s armor.hardLanding=硬着陆 armor.ignoreLimit=防埡倌䞍受防埡䞊限的圱响 armor.modifier=䌀害修正 %s +armor.moreAmmo=曎倚匹药 armor.nullDamage=免疫 %s 䌀害 armor.projectileProtection=免疫 %s 的匹射物䌀害 armor.rocketBoots=火箭靎 armor.sprintBoost=冲刺蟅助加速 +armor.stepSize=步长%s armor.thermal=热成像 armor.threshold=䌀害阈倌 %s armor.vats=敌对生物HUD @@ -310,7 +313,7 @@ book.starter.page18=v?r只是䞀䞪被困圚"䌠声倎像"的§o《䞀生䞀次 #book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown #book.rbmk.page16=§4§lAvoid. -book_lore.author=By %s +book_lore.author=由%s book_lore.test.name=测试 book_lore.test.author=那䞪家䌙 book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual @@ -377,13 +380,17 @@ book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no go book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + + book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. + + book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... book_lore.bf_bomb_4.name=私人笔记 @@ -574,6 +581,7 @@ chem.SULFURIC_ACID=硫酞生产 chem.TATB=TATB合成 chem.TEL=四乙基铅混合 chem.TEST=测试 +chem.THORIUM_SALT=钍盐富集 chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态栞废料玻璃化 @@ -592,6 +600,7 @@ container.amsLimiter=AMS皳胜噚(装饰) container.anvil=ç § container.arcFurnace=电匧炉 container.armorTable=装甲改装台 +container.ashpit=傚灰槜 container.assembler=装配机 container.autocrafter=自劚工䜜台 container.barrel=æ¡¶ @@ -622,6 +631,10 @@ container.dfcReceiver=DFC接收噚 container.dfcStabilizer=DFC皳定噚 container.diFurnace=高炉 container.diFurnaceRTG=栞高炉 +container.droneCrate=运蟓无人机坞 +container.droneDock=船坞 +container.droneProvider=提䟛 +container.droneRequester=请求 container.electricFurnace=电炉 container.epress=电劚锻压机 container.factoryAdvanced=高级工厂 @@ -872,6 +885,7 @@ desc.item.ammo.neu_fun=* 党家其乐无穷 desc.item.ammo.neu_heavy_metal=* 重金属 desc.item.ammo.neu_homing=* 远螪 desc.item.ammo.neu_jolt=* 震荡 +desc.item.ammo.neu_leadburster=* 附着圚衚面并喷射子匹 desc.item.ammo.neu_less_bouncy=* 匹性曎小 desc.item.ammo.neu_maskman_flechette=* 曳光匹同时匕发䞀场莫铀飞镖匹风暎 desc.item.ammo.neu_maskman_meteorite=* 高䌀害同时召唀小陚石 @@ -949,7 +963,9 @@ desc.item.kitArmor=装甲将被新的装倇取代。 desc.item.kitHaz=装甲将被防技服取代。 desc.item.kitPack=真䟿宜 desc.item.kitPool=请圚打匀前枅空背包库存 -desc.item.pileRod=§e䜿甚钻孔石墚插入$§E䜿甚螺䞝刀拔出$ +desc.item.pileRod=§e䜿甚钻孔石墚插入$§E䜿甚螺䞝刀拔出$ + + desc.item.rtgDecay=衰变䞺%s desc.item.rtgHeat=功率级别%s desc.item.storage.capacity=容量 %s%%s @@ -1053,7 +1069,8 @@ gun.make.MANN=Open Mann公叞 gun.make.MAXIM=海勒姆·马克沁 gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验宀 -gun.make.NAZI=埃尔犏特机械制造厂 +gun.make.NAWS=Kayarm Industries +gun.make.ERFURT=埃尔犏特机械制造厂 gun.make.NONE=- gun.make.RAYTHEON=富匹系统公叞 gun.make.REMINGTON=雷明登歊噚公叞 @@ -1076,6 +1093,7 @@ gun.name.benelli=䌯奈利M4 Super 90霰匹枪 gun.name.benelliDrum=䌯奈利M4 Super 90霰匹枪 (泵劚䟛匹改进型) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern爆匹枪 +gun.name.congoLake=刚果湖氎泵劚抎匹发射噚 gun.name.cPython=柯尔特蟒蛇 gun.name.cz53=CZ53 单兵蜬蜮机枪 gun.name.cz57=CZ57 倍仇者机枪 @@ -1248,6 +1266,7 @@ hbmfluid.heatingoil_vacuum=重莚燃油 hbmfluid.heavyoil=重油 hbmfluid.heavyoil_vacuum=减压重油 hbmfluid.heavywater=重氎 +hbmfluid.heavywater_hot=高枩重氎 hbmfluid.helium3=æ°Š-3 hbmfluid.helium4=æ°Š-4 hbmfluid.hotcrackoil=热裂化油 @@ -1304,6 +1323,8 @@ hbmfluid.smear=工䞚油 hbmfluid.smoke=烟雟 hbmfluid.smoke_leaded=含铅烟雟 hbmfluid.smoke_poison=有毒烟雟 +hbmfluid.sodium=液态钠 +hbmfluid.sodium_hot=高枩液态钠 hbmfluid.solvent=有机溶剂 hbmfluid.sourgas=高硫倩然气 hbmfluid.spentsteam=䜎压蒞汜 @@ -1312,6 +1333,9 @@ hbmfluid.sulfuric_acid=ç¡«é…ž hbmfluid.sunfloweroil=葵花籜油 hbmfluid.superhotsteam=超热蒞汜 hbmfluid.syngas=合成气 +hbmfluid.thorium_salt=液态钍盐 +hbmfluid.thorium_salt_depleted=莫化液态钍盐 +hbmfluid.thorium_salt_hot=高枩液态钍盐 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 hbmfluid.ultrahotsteam=超浓密蒞汜 @@ -1598,6 +1622,7 @@ item.ammo_grenade_finned.name=40mm抎匹[尟翌皳定] item.ammo_grenade_he.name=40mm抎匹[HE] item.ammo_grenade_incendiary.name=40mm抎匹[燃烧] item.ammo_grenade_kampf.name=40mm战术抎匹 +item.ammo_grenade_leadburster.name=40mm 匀路先锋 item.ammo_grenade_nuclear.name=40mm抎匹[栞子] item.ammo_grenade_phosphorus.name=40mm抎匹[癜磷] item.ammo_grenade_sleek.name=40mm抎匹[IF-R&D] @@ -1677,6 +1702,7 @@ item.ams_focus_limiter.desc=限制领域的最高性胜$标准冷华无胜 item.ams_lens.name=皳定透镜 item.ams_muzzle.name=激掻射线发射极 item.ams_muzzle.desc=...它可以发出䞀束胜量束。 +item.analysis_tool.name=分析工具 item.analyzer.name=分析仪 item.anchor_remote.name=召回讟倇 item.antiknock.name=四乙基铅抗爆剂 @@ -2311,6 +2337,9 @@ item.door_bunker.name=仓闚 item.door_metal.name=金属闚 item.door_office.name=办公宀闚 item.dosimeter.name=剂量计 +item.drax.name=采掘钻 +item.drax_mk2.name=区化型采掘钻 +item.drax_mk3.name=Sa326采掘钻 item.drillbit_desh.name=Desh钻倎 item.drillbit_desh_diamond.name=Desh钻倎(镶钻) item.drillbit_ferro.name=铀铁合金钻倎 @@ -2322,9 +2351,12 @@ item.drillbit_steel_diamond.name=钢钻倎(镶钻) item.drillbit_tcalloy.name=锝钢钻倎 item.drillbit_tcalloy_diamond.name=锝钢钻倎(镶钻) item.drill_titanium.name=钛钻倎 -item.drax.name=采掘钻 -item.drax_mk2.name=区化型采掘钻 -item.drax_mk3.name=Sa326采掘钻 +item.drone.patrol.name=运蟓无人机 +item.drone.patrol_chunkloading.name=区块加蜜无人机 +item.drone.patrol_express.name=快递无人机 +item.drone.patrol_express_chunkloading.name=区块加蜜快递无人机 +item.drone.request.name=物流无人机 +item.drone_linker.name=运蟓无人机铟接噚 item.ducttape.name=胶垊 item.dust.name=灰尘 item.dust.desc=我讚厌灰尘 @@ -2345,7 +2377,7 @@ item.early_explosive_lenses.desc=8䞪炞药透镜的组装垊有铝合金掚 item.egg_balefire.name=野火蛋 item.egg_balefire.desc=什么样的鞟儿才䌚䞋垊有攟射性的蛋? item.egg_balefire_shard.name=野火蛋碎片 -item.egg_glyphid.name=Glyphid Egg +item.egg_glyphid.name=匂虫蛋 item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 @@ -2463,6 +2495,7 @@ item.gear_large.name=倧型霿蜮 item.gear_large_steel.name=倧型钢霿蜮 item.geiger_counter.name=手持盖革计数噚 item.gem_alexandrite.name=亚历山倧变石 +item.gem_sodalite.name=方钠石 item.gem_tantalium.name=钜晶䜓 item.gem_tantalium.desc=“钜” item.gem_tantalium.desc.P11=又名钜。 @@ -2523,7 +2556,7 @@ item.gun_avenger.name=CZ57倍仇者机枪 item.gun_b92.name=§9B92胜量手枪§r item.gun_b92_ammo.name=§9B92胜量单元§r item.gun_b93.name=§cB93胜量手枪§r -item.gun_benelli.name=Benelli自劚喷枪Drum Mod +item.gun_benelli.name=䌯奈利自劚霰匹枪Drum Mod item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮匹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2538,6 +2571,8 @@ item.gun_calamity_ammo.name=.50BMG子匹 item.gun_calamity_dual.name=马鞍枪 item.gun_chemthrower.name=化孊喷射噚 item.gun_coilgun.name=线圈枪 +item.gun_congolake.name=刚果湖 +item.gun_cryocannon.name=䜎枩炮 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 item.gun_dampfmaschine.name=绝对䞍是匀玩笑的歊噚 @@ -2670,6 +2705,7 @@ item.heart_booster.name=心之增区噚 item.heart_container.name=心之容噚 item.heart_fab.name=心脏抗原结合噚 item.heart_piece.name=心之碎片 +item.heavy_component.name=重型%s组件 item.hev_battery.name=套装电池 item.hev_boots.name=HEV Mk.IV 靎子 item.hev_plate.name=HEV Mk.IV 胞甲 @@ -3216,6 +3252,7 @@ item.ore.asbestos=石棉 item.ore.borax=硌砂 item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 +item.ore.fluorite=氟石 item.ore.gold=金 item.ore.iron=铁 item.ore.niobium=铌 @@ -3417,6 +3454,11 @@ item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_ash.coal.name=煀灰 +item.powder_ash.fly.name=飞尘 +item.powder_ash.misc.name=灰尘 +item.powder_ash.soot.name=细烟灰 +item.powder_ash.wood.name=朚灰 item.powder_astatine.name=砹粉 item.powder_at209.name=ç ¹-209粉 item.powder_au198.name=金-198粉 @@ -3502,6 +3544,7 @@ item.powder_sawdust.name=锯末 item.powder_schrabidate.name=Sa酞铁粉 item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炞药混合物 +item.powder_sodium.name=Sodium item.powder_spark_mix.name=Spark闪闪奥术混合物 item.powder_sr90.name=锶-90粉 item.powder_sr90_tiny.name=小撮锶-90粉末 @@ -3535,6 +3578,51 @@ item.primer_buckshot.name=鹿匹底火[x12] item.protection_charm.name=守技项铟 item.prototype_kit.name=原型 套件 item.pudding.name=垃䞁 +item.pwr_fuel.bfb_am_mix.name=燃料级镅压氎堆BFB燃料棒 +item.pwr_fuel.bfb_pu241.name=钚-241压氎堆BFB棒 +item.pwr_fuel.hea242.name=HEA-242 高浓猩床镅-242压氎堆燃料棒 +item.pwr_fuel.hen237.name=HEN-237 高浓猩床镎-237压氎堆燃料棒 +item.pwr_fuel.hep239.name=HEP-239 高浓猩床钚-239压氎堆燃料棒 +item.pwr_fuel.hep241.name=HEP-241 高浓猩床钚-241压氎堆燃料棒 +item.pwr_fuel.hes326.name=HES-326 高浓猩床Sa326压氎堆燃料棒 +item.pwr_fuel.hes327.name=HES-327 高浓猩床Sa327压氎堆燃料棒 +item.pwr_fuel.heu233.name=HEU-233 高浓猩床铀-233压氎堆燃料棒 +item.pwr_fuel.heu235.name=HEU-235 高浓猩床铀-235压氎堆燃料棒 +item.pwr_fuel.mea.name=MEA 䞭浓猩床镅压氎堆燃料棒 +item.pwr_fuel.men.name=MEN 䞭浓猩床镎压氎堆燃料棒 +item.pwr_fuel.mep.name=MEP 䞭浓猩床钚压氎堆燃料棒 +item.pwr_fuel.meu.name=MEU 䞭浓猩床铀压氎堆燃料棒 +item.pwr_fuel.mox.name=MOX 压氎堆燃料棒 +item.pwr_fuel_depleted.bfb_am_mix.name=枯竭燃料级镅压氎堆BFB燃料棒 +item.pwr_fuel_depleted.bfb_pu241.name=枯竭钚-241压氎堆BFB棒 +item.pwr_fuel_depleted.hea242.name=枯竭 HEA-242 高浓猩床镅-242压氎堆燃料棒 +item.pwr_fuel_depleted.hen237.name=枯竭 HEN-237 高浓猩床镎-237压氎堆燃料棒 +item.pwr_fuel_depleted.hep239.name=枯竭 HEP-239 高浓猩床钚-239压氎堆燃料棒 +item.pwr_fuel_depleted.hep241.name=枯竭 HEP-241 高浓猩床钚-241压氎堆燃料棒 +item.pwr_fuel_depleted.hes326.name=枯竭 HES-326 高浓猩床Sa326压氎堆燃料棒 +item.pwr_fuel_depleted.hes327.name=枯竭 HES-327 高浓猩床Sa327压氎堆燃料棒 +item.pwr_fuel_depleted.heu233.name=枯竭 HEU-233 高浓猩床铀-233压氎堆燃料棒 +item.pwr_fuel_depleted.heu235.name=枯竭 HEU-235 高浓猩床铀-235压氎堆燃料棒 +item.pwr_fuel_depleted.mea.name=枯竭 MEA 䞭浓猩床镅压氎堆燃料棒 +item.pwr_fuel_depleted.men.name=枯竭 MEN 䞭浓猩床镎压氎堆燃料棒 +item.pwr_fuel_depleted.mep.name=枯竭 MEP 䞭浓猩床钚压氎堆燃料棒 +item.pwr_fuel_depleted.meu.name=枯竭 MEU 䞭浓猩床铀压氎堆燃料棒 +item.pwr_fuel_depleted.mox.name=枯竭 MOX 压氎堆燃料棒 +item.pwr_fuel_hot.bfb_am_mix.name=高枩 燃料级镅压氎堆BFB燃料棒 +item.pwr_fuel_hot.bfb_pu241.name=高枩 钚-241压氎堆BFB棒 +item.pwr_fuel_hot.hea242.name=高枩 HEA-242 高浓猩床镅-242压氎堆燃料棒 +item.pwr_fuel_hot.hen237.name=高枩 HEN-237 高浓猩床镎-237压氎堆燃料棒 +item.pwr_fuel_hot.hep239.name=高枩 HEP-239 高浓猩床钚-239压氎堆燃料棒 +item.pwr_fuel_hot.hep241.name=高枩 HEP-241 高浓猩床钚-241压氎堆燃料棒 +item.pwr_fuel_hot.hes326.name=高枩 HES-326 高浓猩床Sa326压氎堆燃料棒 +item.pwr_fuel_hot.hes327.name=高枩 HES-327 高浓猩床Sa327压氎堆燃料棒 +item.pwr_fuel_hot.heu233.name=高枩 HEU-233 高浓猩床铀-233压氎堆燃料棒 +item.pwr_fuel_hot.heu235.name=高枩 HEU-235 高浓猩床铀-235压氎堆燃料棒 +item.pwr_fuel_hot.mea.name=高枩 MEA 䞭浓猩床镅压氎堆燃料棒 +item.pwr_fuel_hot.men.name=高枩 MEN 䞭浓猩床镎压氎堆燃料棒 +item.pwr_fuel_hot.mep.name=高枩 MEP 䞭浓猩床钚压氎堆燃料棒 +item.pwr_fuel_hot.meu.name=高枩 MEU 䞭浓猩床铀压氎堆燃料棒 +item.pwr_fuel_hot.mox.name=高枩 MOX压氎堆燃料棒 item.quartz_plutonium.name=深成石英 item.radaway.name=消蟐宁 item.radaway_flush.name=超级消蟐宁 @@ -4031,6 +4119,10 @@ item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙筟 item.train.cargo_tram.name=平板蜜莧电蜊 +item.trenchmaster_boots.name=Trenchmaster的靎子 +item.trenchmaster_helmet.name=Trenchmaster的倎盔 +item.trenchmaster_legs.name=Trenchmaster的技腿 +item.trenchmaster_plate.name=Trenchmaster的胞甲 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饌 item.tritium_deuterium_cake.desc=䞍是真正的蛋糕而是埈棒的$聚变燃料 @@ -4465,6 +4557,7 @@ tile.capacitor_bus.desc=电容噚的蟓出方块$可以连成䞀条盎线 tile.capacitor_copper.name=铜电容 tile.capacitor_gold.name=金电容 tile.capacitor_niobium.name=铌电容 +tile.capacitor_schrabidate.name=Sa酞铁电容噚 tile.capacitor_tantalium.name=钜电容 tile.capacitor.desc=蟓入顶郚$蟓出底郚通过电容总线 tile.charge_c4.name=炞药包 @@ -4475,6 +4568,9 @@ tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=䞍皳定Ep Schrabide块 tile.chimney_brick.name=烟囱 +tile.chimney_brick.desc=䜿甚排气管连接污染机噚$减少75%的污染排攟 +tile.chimney_industrial.name=工䞚烟囱 +tile.chimney_industrial.desc=䜿甚排气管连接污染机噚$减少90%的污染排攟 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4552,18 +4648,32 @@ tile.concrete_stairs.name=混凝土瓷砖楌梯 tile.concrete_super.name=ÃŒber混凝土 tile.concrete_super_broken.name=发霉的碎片 tile.conveyor.name=蟓送垊 +tile.conveyor.desc=移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按䜏Shift键单击以蜬匯 tile.conveyor_chute.name=蟓送垊滑槜 +tile.conveyor_chute.desc=向䞋移劚物品$最底郚的滑槜将起到普通䌠送垊的䜜甚 tile.conveyor_double.name=双蜚道蟓送垊 +tile.conveyor_double.desc=移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按䜏Shift键单击以蜬匯 +tile.conveyor_express.name=快速蟓送垊 +tile.conveyor_express.desc=快速移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按Shift键蜬匯 tile.conveyor_lift.name=垂盎蟓送垊 +tile.conveyor_lift.desc=向䞊移劚物品$至少需芁䞀䞪块才胜正垞工䜜 tile.conveyor_triple.name=䞉蜚道蟓送垊 +tile.conveyor_triple.desc=移劚掉圚䞊面的物品$可以甚螺䞝刀顺时针旋蜬$甚螺䞝刀按䜏Shift键单击以蜬匯 tile.corium_block.name=堆芯熔融物 tile.crane_boxer.name=蟓送垊打包机 +tile.crane_boxer.desc=将可配眮数量的堆叠装蜜到沿着䌠送垊移劚的箱子䞭$甚螺䞝刀右键单击以讟眮蟓入䟧$甚螺䞝起子平移单击以讟眮蟓出䟧$单击䞀次以讟眮盞反䟧 tile.crane_extractor.name=蟓送垊提取噚 +tile.crane_extractor.desc=从库存䞭取出物品并将其攟眮圚䌠送垊䞊$最倚有9䞪垊黑癜名单的过滀噚插槜$甚螺䞝刀右键单击以讟眮蟓出䟧$手持螺䞝刀按䜏Shift单击以讟眮蟓入䟧$单击䞀次以讟眮盞反䟧 tile.crane_grabber.name=蟓送垊抓斗 +tile.crane_grabber.desc=从经过的蟓送垊䞭取出物品并将其攟入容噚$将只从最近的通道䞭取出物品$最倚有9䞪垊黑癜名单的过滀槜$甚螺䞝刀右键单击以讟眮蟓入䟧$甚螺䞝起子平移单击以讟眮蟓出䟧$单击䞀次以讟眮对䟧 tile.crane_inserter.name=蟓送垊富入噚 +tile.crane_inserter.desc=接受蟓送垊䞊的物品并将其攟入容噚䞭$甚螺䞝刀右键单击以讟眮蟓入䟧$甚螺䞝刀单击以讟眮蟓出䟧$单击䞀次以讟眮盞反䟧 tile.crane_router.name=蟓送垊分拣机 +tile.crane_router.desc=根据定义的条件对项目排序$䟧面可以定义䞺黑名单、癜名单或通配笊$只有圚没有其他筛选噚匹配的情况䞋才选择通配笊䟧面 tile.crane_splitter.name=蟓送垊分犻噚 +tile.crane_splitter.desc=将物品分匀并均匀堆攟圚䞀条䌠送垊䞊$其本身就是䞀条䌠送垊因歀它可以盎接蟓入到插入噚或分拣噚䞭 tile.crane_unboxer.name=蟓送垊解包机 +tile.crane_unboxer.desc=接收打包奜的物品并解包$甚螺䞝刀右键单击以讟眮蟓出䟧$手持螺䞝刀按䜏Shift单击以讟眮蟓入䟧$单击䞀次以讟眮盞反䟧 tile.crashed_bomb.name=哑匹 tile.crate.name=补给箱 tile.crate_ammo.name=星蟉补给箱 @@ -4586,8 +4696,6 @@ tile.deco_asbestos.name=石棉瓊 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM䞪人电脑300PL tile.deco_emitter.name=Deco发光䜓 -tile.part_emitter.name=Deco粒子发射噚 -tile.piston_inserter.name=插入噚 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -4637,6 +4745,13 @@ tile.dfc_stabilizer.name=DFC皳定噚 tile.dirt_dead.name=泥枣 tile.dirt_oily.name=油泥 tile.drill_pipe.name=钻杆 +tile.drone_crate.name=运蟓无人机坞 +tile.drone_crate_provider.name=物流䟛应箱 +tile.drone_crate_requester.name=物流请求箱 +tile.drone_dock.name=物流无人机码倎 +tile.drone_waypoint.name=运蟓无人机航路点 +tile.drone_waypoint.desc=运蟓无人机的航路点$䜿甚运蟓无人机铟接噚讟眮路埄$按顺序单击每䞪航路点和板条箱以创建路埄$然后平移单击以枅陀保存的䜍眮$右键单击或平移单击航路点以曎改航路点的偏移 +tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓闚 tile.door_metal.name=金属闚 tile.door_office.name=办公宀闚 @@ -4659,6 +4774,7 @@ tile.factory_titanium_furnace.name=工厂端口 tile.factory_titanium_hull.name=工厂倖壳 tile.fallout.name=蟐射尘 tile.fan.name=风扇 +tile.fan.desc=䜿甚红石激掻$将实䜓掚至最倚10䞪方块倖$甚螺䞝刀右键点击即可翻蜬 tile.fence_metal.name=铁䞝眑囎栏 tile.field_disturber.name=高胜场干扰机 tile.filing_cabinet.green.name=蒙尘的文件柜 @@ -4800,6 +4916,8 @@ tile.lamp_tritium_blue_off.name=蓝色氚灯 tile.lamp_tritium_blue_on.name=蓝色氚灯 tile.lamp_tritium_green_off.name=绿色氚灯 tile.lamp_tritium_green_on.name=绿色氚灯 +tile.lantern.name=灯笌 +tile.lantern_behemoth.name=旧灯笌 tile.launch_pad.name=富匹发射台 tile.launch_table.name=倧型发射台 tile.leaves_layer.name=萜叶 @@ -4808,10 +4926,13 @@ tile.machine_amgen.name=环境蟐射发电机 tile.machine_arc_furnace_off.name=电匧炉 tile.machine_arc_furnace_on.name=电匧炉 tile.machine_armor_table.name=装甲改装台 +tile.machine_ashpit.name=傚灰槜 +tile.machine_ashpit.desc=收集来自燃烧宀和加热炉的灰烬 tile.machine_assembler.name=装配机 tile.machine_assemfac.name=装配厂 tile.machine_autocrafter.name=自劚工䜜台 tile.machine_autosaw.name=自劚嗡嗡锯 +tile.machine_autosaw.desc=砍䌐附近的怍物重新种怍树朚$接受$-朚油$-乙醇$-鱌油$-重油 tile.machine_bat9000.name=å·šå°»-9000 傚眐 tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 @@ -4836,9 +4957,12 @@ tile.machine_combine_factory.name=CMB炌钢炉 tile.machine_combustion_engine.name=工䞚内燃机 tile.machine_compressor.name=压猩机 tile.machine_condenser.name=蒞汜冷凝噚 +tile.machine_condenser_powered.name=倧功率蒞汜冷凝噚 tile.machine_controller.name=反应堆遥控暡块 tile.machine_converter_he_rf.name=HE→RF蜬换噚 tile.machine_converter_rf_he.name=RF→HE蜬换噚 +tile.machine_conveyor_press.name=蟓送垊锻压机 +tile.machine_conveyor_press.desc=䌠送垊从巊向右移劚$手持锻暡右键单击以安装$䜿甚螺䞝刀移陀锻暡 tile.machine_crucible.name=坩埚 tile.machine_crystallizer.name=矿物酞化噚 tile.machine_cyclotron.name=回旋加速噚 @@ -4925,6 +5049,8 @@ tile.machine_steam_engine.name=蒞汜机 tile.machine_steam_engine.desc=效率85% tile.machine_stirling.name=斯特林发电机 tile.machine_stirling.desc=它将热量蜬化䞺胜量。这需芁倖郚热源$䌠热率T*0.1 TU/T$最倧进气量300 TU/T$效率50% +tile.machine_stirling_creative.name=创造斯特林发劚机 +tile.machine_stirling_creative.desc=将热量蜬化䞺胜量。需芁倖郚热源$䌠热率T*0.1 TU/T$无限吞热/T$效率100% tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量蜬化䞺胜量。这需芁倖郚热源$䜿甚曎重的霿蜮来支持曎高的枩床$䌠热率T*0.1 TU/T$最倧进气量1500 TU/T$效率50% tile.machine_storage_drum.name=栞废料倄理桶 @@ -5051,11 +5177,14 @@ tile.ore_uranium_scorched.name=烧焊的铀矿石 tile.ore_verticium.name=韊執赛矿石 tile.ore_volcano.name=地热裂猝 tile.ore_weidanium.name=魏䞹矿石 +tile.part_emitter.name=Deco粒子发射噚 tile.pink_barrel.name=煀油桶 tile.pink_log.name=粉色原朚 tile.pink_planks.name=粉色朚板 tile.pink_slab.name=粉色朚半砖 tile.pink_stairs.name=粉色朚台阶 +tile.piston_inserter.name=插入噚 +tile.piston_inserter.desc=可以䜿甚自劚化接收䞀件物品$䜿甚红石它䌚将物品插入钻孔石墚䞭$钻孔石墚的物品郜䌚被掚出䞀栌$插入噚䞎钻孔石墚之闎需芁有䞀栌空气 tile.plant_dead.name=死亡怍物 tile.plant_flower.cd0.name=芥子柳 tile.plant_flower.cd1.name=芥子柳 @@ -5077,6 +5206,30 @@ tile.pribris.name=RBMK石墚匏反应堆残骞 tile.pribris_burning.name=燃烧的RBMK反应堆残骞 tile.pribris_digamma.name=发黑的RBMK反应堆残骞 tile.pribris_radiating.name=阮燃的RBMK反应堆残骞 +tile.pump_electric.name=电劚地䞋氎泵 +tile.pump_electric.desc=甚电力抜取地䞋氎$产氎量高蟟10000mB/t$需芁攟眮圚Y:70以䞋 +tile.pump_steam.name=蒞汜劚力地䞋氎泵 +tile.pump_steam.desc=䜿甚蒞汜抜取地䞋氎$产氎量高蟟1000mB/t$需芁攟眮圚Y:70以䞋 +tile.pwr_block.name=PWR压氎反应堆 +tile.pwr_casing.name=PWR压力容噚 +tile.pwr_casing.desc=需芁芆盖反应堆的所有内郚零件以圢成$䜍眮:倖壳 +tile.pwr_channel.name=PWR冷华剂通道 +tile.pwr_channel.desc=䌠富热量以加热冷华剂$䜍眮任意 +tile.pwr_control.name=PWR控制棒 +tile.pwr_control.desc=允讞控制连接的燃料棒$攟眮各燃料棒连线眑栌之闎 +tile.pwr_controller.name=PWR控制噚 +tile.pwr_controller.desc=PWR的接入终端$䜍眮倖壳每䞪反应堆只芁䞀䞪$右键单击以组装反应堆 +tile.pwr_fuel.name=PWR燃料棒 +tile.pwr_fuel.desc=增加压氎堆燃料容量$䜍眮眑栌甚于增加反应效率 +tile.pwr_heatex.name=PWR换热噚 +tile.pwr_heatex.desc=将栞心热量蜬移到倖壳$䜍眮任意 +tile.pwr_neutron_source.name=PWR䞭子源 +tile.pwr_neutron_source.desc=向堆芯添加20䞪䞭子通量$䜍眮任意$䞭子通量只有圚连接打匀时才胜到蟟燃料棒 +tile.pwr_port.name=PWR接入端口 +tile.pwr_port.desc=允讞物品和液䜓亀换$䜍眮组件 +tile.pwr_reflector.name=PWR䞭子反射噚 +tile.pwr_reflector.desc=将䞭子通量反射回燃料棒$䜍眮眑栌甚于增加反应速率$可䜜䞺倖壳材料 +tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=红石无线项目计数噚 tile.radio_torch_counter.desc=平面或比蟃噚兌容块䞊的标牌$根据匹配项目的数量发出信号 tile.radio_torch_receiver.name=无线红石信号接收噚 @@ -5121,6 +5274,8 @@ tile.reactor_inserter.name=反应堆燃料插入噚 tile.red_barrel.name=炞药桶 tile.red_cable.name=玫铜电线 tile.red_cable_classic.name=玫铜电猆经兞型 +tile.red_cable_gauge.name=功率计 +tile.red_cable_gauge.desc=星瀺每刻圚眑络䞭流劚的电力$的电猆$由傚胜方块连接的拆分眑络被视䞺䞀䞪共享眑络。 tile.red_cable_paintable.name=可涂挆玫铜线 tile.red_connector.name=电力连接噚 tile.red_pylon.name=电线杆 diff --git a/src/main/resources/assets/hbm/models/TheGadget2.obj b/src/main/resources/assets/hbm/models/TheGadget2.obj deleted file mode 100644 index 7f13574d8..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget2.obj +++ /dev/null @@ -1,1616 +0,0 @@ -# Blender v2.70 (sub 0) OBJ File: 'TheGadget2.blend' -# www.blender.org -o Cylinder.002_Cylinder.004 -v -0.850000 1.000000 -0.650000 -v -0.750000 1.000000 -0.650000 -v -0.850000 0.751256 -0.600522 -v -0.750000 0.751256 -0.600522 -v -0.850000 0.540381 -0.459619 -v -0.750000 0.540381 -0.459619 -v -0.849999 0.399478 -0.248744 -v -0.749999 0.399478 -0.248744 -v -0.849999 0.350000 0.000000 -v -0.749999 0.350000 0.000000 -v -0.849999 0.399478 0.248744 -v -0.749999 0.399478 0.248744 -v -0.850000 0.540381 0.459619 -v -0.750000 0.540381 0.459619 -v -0.850000 0.751256 0.600522 -v -0.750000 0.751256 0.600522 -v -0.850000 1.000000 0.650000 -v -0.750000 1.000000 0.650000 -v -0.850000 1.248744 0.600522 -v -0.750000 1.248744 0.600522 -v -0.850000 1.459619 0.459620 -v -0.750000 1.459619 0.459620 -v -0.850001 1.600522 0.248744 -v -0.750001 1.600522 0.248744 -v -0.850001 1.650000 -0.000000 -v -0.750001 1.650000 -0.000000 -v -0.850001 1.600522 -0.248744 -v -0.750001 1.600522 -0.248744 -v -0.850000 1.459619 -0.459620 -v -0.750000 1.459619 -0.459620 -v -0.850000 1.248744 -0.600522 -v -0.750000 1.248744 -0.600522 -v 0.750000 1.000000 -0.650000 -v 0.850000 1.000000 -0.650000 -v 0.750000 0.751256 -0.600522 -v 0.850000 0.751256 -0.600522 -v 0.750001 0.540381 -0.459619 -v 0.850000 0.540381 -0.459619 -v 0.750001 0.399478 -0.248744 -v 0.850001 0.399478 -0.248744 -v 0.750001 0.350000 0.000000 -v 0.850001 0.350000 0.000000 -v 0.750001 0.399478 0.248744 -v 0.850001 0.399478 0.248744 -v 0.750001 0.540381 0.459619 -v 0.850000 0.540381 0.459619 -v 0.750000 0.751256 0.600522 -v 0.850000 0.751256 0.600522 -v 0.750000 1.000000 0.650000 -v 0.850000 1.000000 0.650000 -v 0.750000 1.248744 0.600522 -v 0.850000 1.248744 0.600522 -v 0.750000 1.459619 0.459620 -v 0.849999 1.459619 0.459620 -v 0.749999 1.600522 0.248744 -v 0.849999 1.600522 0.248744 -v 0.749999 1.650000 -0.000000 -v 0.849999 1.650000 -0.000000 -v 0.749999 1.600522 -0.248744 -v 0.849999 1.600522 -0.248744 -v 0.750000 1.459619 -0.459620 -v 0.849999 1.459619 -0.459620 -v 0.750000 1.248744 -0.600522 -v 0.850000 1.248744 -0.600522 -v -1.500000 0.999999 -0.500000 -v 1.000000 1.000001 -0.500000 -v -1.500000 0.808657 -0.461940 -v 1.000000 0.808659 -0.461940 -v -1.500000 0.646446 -0.353553 -v 1.000000 0.646448 -0.353553 -v -1.500000 0.538059 -0.191342 -v 1.000000 0.538061 -0.191342 -v -1.500000 0.499999 0.000000 -v 1.000000 0.500001 0.000000 -v -1.500000 0.538059 0.191342 -v 1.000000 0.538061 0.191342 -v -1.500000 0.646446 0.353553 -v 1.000000 0.646448 0.353553 -v -1.500000 0.808657 0.461940 -v 1.000000 0.808659 0.461940 -v -1.500000 0.999999 0.500000 -v 1.000000 1.000001 0.500000 -v -1.500000 1.191340 0.461940 -v 1.000000 1.191343 0.461940 -v -1.500000 1.353552 0.353554 -v 1.000000 1.353554 0.353554 -v -1.500000 1.461939 0.191342 -v 0.999999 1.461941 0.191342 -v -1.500000 1.499999 -0.000000 -v 0.999999 1.500001 -0.000000 -v -1.500000 1.461939 -0.191342 -v 0.999999 1.461941 -0.191342 -v -1.500000 1.353552 -0.353554 -v 1.000000 1.353554 -0.353554 -v -1.500000 1.191340 -0.461940 -v 1.000000 1.191343 -0.461940 -v -0.750000 1.000000 -0.800000 -v -0.650000 1.000000 -0.800000 -v -0.750000 0.693853 -0.739104 -v -0.650000 0.693853 -0.739104 -v -0.749999 0.434314 -0.565685 -v -0.649999 0.434315 -0.565685 -v -0.749999 0.260896 -0.306147 -v -0.649999 0.260896 -0.306147 -v -0.749999 0.200000 0.000000 -v -0.649999 0.200000 0.000000 -v -0.749999 0.260896 0.306147 -v -0.649999 0.260896 0.306147 -v -0.749999 0.434314 0.565685 -v -0.649999 0.434315 0.565685 -v -0.750000 0.693853 0.739104 -v -0.650000 0.693853 0.739104 -v -0.750000 1.000000 0.800000 -v -0.650000 1.000000 0.800000 -v -0.750000 1.306147 0.739104 -v -0.650000 1.306147 0.739104 -v -0.750001 1.565685 0.565686 -v -0.650001 1.565685 0.565686 -v -0.750001 1.739104 0.306147 -v -0.650001 1.739104 0.306147 -v -0.750001 1.800000 -0.000000 -v -0.650001 1.800000 -0.000000 -v -0.750001 1.739104 -0.306147 -v -0.650001 1.739104 -0.306147 -v -0.750001 1.565685 -0.565686 -v -0.650001 1.565685 -0.565686 -v -0.750000 1.306146 -0.739104 -v -0.650000 1.306146 -0.739104 -v 0.650000 1.000000 -0.800000 -v 0.750000 1.000000 -0.800000 -v 0.650000 0.693853 -0.739104 -v 0.750000 0.693853 -0.739104 -v 0.650001 0.434314 -0.565685 -v 0.750000 0.434315 -0.565685 -v 0.650001 0.260896 -0.306147 -v 0.750001 0.260896 -0.306147 -v 0.650001 0.200000 0.000000 -v 0.750001 0.200000 0.000000 -v 0.650001 0.260896 0.306147 -v 0.750001 0.260896 0.306147 -v 0.650001 0.434314 0.565685 -v 0.750000 0.434315 0.565685 -v 0.650000 0.693853 0.739104 -v 0.750000 0.693853 0.739104 -v 0.650000 1.000000 0.800000 -v 0.750000 1.000000 0.800000 -v 0.650000 1.306147 0.739104 -v 0.750000 1.306147 0.739104 -v 0.650000 1.565685 0.565686 -v 0.749999 1.565685 0.565686 -v 0.649999 1.739104 0.306147 -v 0.749999 1.739104 0.306147 -v 0.649999 1.800000 -0.000000 -v 0.749999 1.800000 -0.000000 -v 0.649999 1.739104 -0.306147 -v 0.749999 1.739104 -0.306147 -v 0.650000 1.565685 -0.565686 -v 0.749999 1.565685 -0.565686 -v 0.650000 1.306146 -0.739104 -v 0.750000 1.306146 -0.739104 -v 0.000000 0.000000 0.000000 -v 0.723607 0.552781 0.525725 -v -0.276388 0.552780 0.850649 -v -0.894426 0.552784 0.000000 -v -0.276388 0.552780 -0.850649 -v 0.723607 0.552781 -0.525725 -v 0.276388 1.447220 0.850649 -v -0.723607 1.447219 0.525725 -v -0.723607 1.447219 -0.525725 -v 0.276388 1.447220 -0.850649 -v 0.894426 1.447216 0.000000 -v 0.000000 2.000000 0.000000 -v -0.162456 0.149346 0.499995 -v 0.425323 0.149346 0.309011 -v 0.262869 0.474262 0.809012 -v 0.850648 0.474264 0.000000 -v 0.425323 0.149346 -0.309011 -v -0.525730 0.149348 0.000000 -v -0.688189 0.474264 0.499997 -v -0.162456 0.149346 -0.499995 -v -0.688189 0.474264 -0.499997 -v 0.262869 0.474262 -0.809012 -v 0.951058 1.000000 0.309013 -v 0.951058 1.000000 -0.309013 -v 0.000000 1.000000 1.000000 -v 0.587786 1.000000 0.809017 -v -0.951058 1.000000 0.309013 -v -0.587786 1.000000 0.809017 -v -0.587786 1.000000 -0.809017 -v -0.951058 1.000000 -0.309013 -v 0.587786 1.000000 -0.809017 -v 0.000000 1.000000 -1.000000 -v 0.688189 1.525736 0.499997 -v -0.262869 1.525738 0.809012 -v -0.850648 1.525736 0.000000 -v -0.262869 1.525738 -0.809012 -v 0.688189 1.525736 -0.499997 -v 0.162456 1.850654 0.499995 -v 0.525730 1.850652 0.000000 -v -0.425323 1.850654 0.309011 -v -0.425323 1.850654 -0.309011 -v 0.162456 1.850654 -0.499995 -v -1.187500 0.999999 -0.500000 -v -1.187500 0.808657 -0.461940 -v -1.187500 0.646446 -0.353553 -v -1.187500 0.538059 -0.191342 -v -1.187500 0.499999 0.000000 -v -1.187500 0.538059 0.191342 -v -1.187500 0.646446 0.353553 -v -1.187500 0.808657 0.461940 -v -1.187500 0.999999 0.500000 -v -1.187500 1.191341 0.461940 -v -1.187500 1.353552 0.353554 -v -1.187500 1.461939 0.191342 -v -1.187500 1.499999 -0.000000 -v -1.187500 1.461939 -0.191342 -v -1.187500 1.353552 -0.353554 -v -1.187500 1.191341 -0.461940 -vt 0.954445 0.915707 -vt 0.941459 0.915707 -vt 0.941459 0.882608 -vt 0.941459 0.877479 -vt 0.941459 0.844380 -vt 0.954445 0.844380 -vt 0.796072 0.927548 -vt 0.796072 0.894449 -vt 0.809058 0.894449 -vt 0.223742 0.946223 -vt 0.223742 0.913124 -vt 0.236729 0.913124 -vt 0.928624 0.190559 -vt 0.928624 0.157460 -vt 0.941611 0.157460 -vt 0.209444 0.946223 -vt 0.209444 0.913124 -vt 0.222430 0.913124 -vt 0.321191 0.950380 -vt 0.308205 0.950380 -vt 0.308205 0.917281 -vt 0.954446 0.806152 -vt 0.941459 0.806152 -vt 0.941459 0.773052 -vt 0.694459 0.938495 -vt 0.694459 0.905396 -vt 0.707445 0.905396 -vt 0.129689 0.914081 -vt 0.129689 0.947180 -vt 0.116702 0.947180 -vt 0.308205 0.884181 -vt 0.321191 0.884181 -vt 0.321191 0.917281 -vt 0.005275 0.913124 -vt 0.018262 0.913124 -vt 0.018262 0.946223 -vt 0.005275 0.880025 -vt 0.018262 0.880025 -vt 0.335490 0.917281 -vt 0.335490 0.950380 -vt 0.322504 0.950380 -vt 0.074105 0.422270 -vt 0.191188 0.445675 -vt 0.167899 0.563339 -vt 0.712194 0.931183 -vt 0.725180 0.931183 -vt 0.725180 0.964282 -vt 0.335490 0.884181 -vt 0.322503 0.917281 -vt 0.573167 0.304552 -vt 0.560563 0.335132 -vt 0.573167 0.271453 -vt 0.945391 0.119232 -vt 0.945391 0.086132 -vt 0.958377 0.086132 -vt 0.674509 0.938495 -vt 0.674509 0.905396 -vt 0.687496 0.905396 -vt 0.311513 0.812793 -vt 0.311513 0.779694 -vt 0.324499 0.779694 -vt 0.324499 0.812793 -vt 0.324499 0.779693 -vt 0.337486 0.779693 -vt 0.120707 0.812793 -vt 0.107720 0.812793 -vt 0.107720 0.779693 -vt 0.915638 0.190559 -vt 0.096753 0.947180 -vt 0.096753 0.914081 -vt 0.109739 0.914081 -vt 0.954446 0.811280 -vt 0.954446 0.844380 -vt 0.707445 0.938495 -vt 0.707445 0.971594 -vt 0.694459 0.971594 -vt 0.945391 0.157460 -vt 0.945391 0.124360 -vt 0.958377 0.124360 -vt 0.902651 0.190559 -vt 0.902651 0.157460 -vt 0.915638 0.157460 -vt 0.407585 0.706344 -vt 0.420572 0.706344 -vt 0.420572 0.739443 -vt 0.712194 0.898084 -vt 0.725180 0.898084 -vt 0.954597 0.157460 -vt 0.954597 0.190559 -vt 0.941611 0.190559 -vt 0.407585 0.509354 -vt 0.394981 0.539934 -vt 0.371692 0.563339 -vt 0.809058 0.927548 -vt 0.809058 0.960648 -vt 0.796072 0.960648 -vt 0.120707 0.779693 -vt 0.133693 0.779693 -vt 0.537273 0.383870 -vt 0.560563 0.407275 -vt 0.573167 0.437854 -vt 0.851858 0.531074 -vt 0.826522 0.531074 -vt 0.826522 0.245586 -vt 0.775851 0.204802 -vt 0.801187 0.204802 -vt 0.801187 0.490290 -vt 0.775851 0.531074 -vt 0.750516 0.531074 -vt 0.750516 0.245586 -vt 0.229128 0.735876 -vt 0.203793 0.735876 -vt 0.203793 0.450388 -vt 0.699845 0.245586 -vt 0.699845 0.531074 -vt 0.674509 0.531074 -vt 0.826522 0.204802 -vt 0.725180 0.531074 -vt 0.750516 0.857346 -vt 0.725180 0.857346 -vt 0.725180 0.571858 -vt 0.699845 0.857346 -vt 0.674509 0.857346 -vt 0.674509 0.571858 -vt 0.623838 0.531074 -vt 0.598502 0.531074 -vt 0.598502 0.245586 -vt 0.649173 0.531074 -vt 0.649173 0.245586 -vt 0.038211 0.735876 -vt 0.012876 0.735876 -vt 0.012876 0.450388 -vt 0.725180 0.204802 -vt 0.750516 0.204802 -vt 0.750516 0.490290 -vt 0.417281 0.565352 -vt 0.483938 0.537605 -vt 0.435196 0.655863 -vt 0.649173 0.857346 -vt 0.649173 0.571858 -vt 0.573167 0.531074 -vt 0.573167 0.245586 -vt 0.483938 0.204802 -vt 0.407585 0.153532 -vt 0.534956 0.128071 -vt 0.324499 0.738956 -vt 0.324499 0.698218 -vt 0.337486 0.698218 -vt 0.712831 0.694025 -vt 0.712831 0.734762 -vt 0.699845 0.734762 -vt 0.712831 0.775500 -vt 0.699845 0.775500 -vt 0.324499 0.657481 -vt 0.311513 0.698218 -vt 0.337486 0.657481 -vt 0.120707 0.738956 -vt 0.407585 0.665606 -vt 0.420572 0.665606 -vt 0.120707 0.698218 -vt 0.133693 0.698218 -vt 0.699845 0.653287 -vt 0.699845 0.612549 -vt 0.712831 0.612549 -vt 0.107720 0.738956 -vt 0.107720 0.698218 -vt 0.712831 0.531074 -vt 0.712831 0.571812 -vt 0.699845 0.571812 -vt 0.120707 0.657481 -vt 0.338077 0.657481 -vt 0.325090 0.657481 -vt 0.325090 0.616743 -vt 0.120707 0.616743 -vt 0.133693 0.616743 -vt 0.133693 0.657481 -vt 0.188280 0.044395 -vt 0.081628 0.204802 -vt 0.000000 0.082032 -vt 0.392072 0.249197 -vt 0.363409 0.394014 -vt 0.219305 0.365208 -vt 0.120707 0.576005 -vt 0.107720 0.616743 -vt 0.324499 0.616743 -vt 0.311513 0.657481 -vt 0.712831 0.816238 -vt 0.699845 0.816237 -vt 0.699845 0.694025 -vt 0.712831 0.653287 -vt 0.311513 0.738956 -vt 0.133693 0.738956 -vt 0.107720 0.657481 -vt 0.902651 0.198198 -vt 0.889665 0.198198 -vt 0.889665 0.157460 -vt 0.712194 0.857346 -vt 0.699845 0.856975 -vt 0.699845 0.816238 -vt 0.121297 0.616743 -vt 0.121297 0.576005 -vt 0.134284 0.576005 -vt 0.311513 0.616743 -vt 0.311513 0.576005 -vt 0.324499 0.576005 -vt 0.325090 0.576005 -vt 0.338077 0.576005 -vt 0.338077 0.616743 -vt 0.392072 0.160406 -vt 0.363409 0.189212 -vt 0.325957 0.204802 -vt 0.796072 0.853711 -vt 0.081628 0.409604 -vt 0.044177 0.220391 -vt 0.188280 0.249197 -vt 0.941459 0.956036 -vt 1.000000 0.915707 -vt 1.000000 0.996365 -vt 0.918059 0.316459 -vt 0.976600 0.276129 -vt 0.976600 0.356788 -vt 0.984258 0.388420 -vt 0.984258 0.459747 -vt 0.918058 0.414142 -vt 0.933801 0.652063 -vt 0.992341 0.611733 -vt 0.992341 0.692392 -vt 0.937191 0.045801 -vt 0.995731 0.005472 -vt 0.995731 0.086131 -vt 0.918059 0.285461 -vt 0.918059 0.356788 -vt 0.851858 0.311183 -vt 0.875259 0.773052 -vt 0.875259 0.844380 -vt 0.809058 0.798773 -vt 0.875259 0.915707 -vt 0.809058 0.889986 -vt 0.476413 0.786594 -vt 0.534956 0.746265 -vt 0.534956 0.826925 -vt 0.601157 0.779583 -vt 0.601157 0.850910 -vt 0.534956 0.805305 -vt 0.750516 0.571403 -vt 0.809058 0.531074 -vt 0.809058 0.611733 -vt 0.738588 0.076800 -vt 0.672388 0.051077 -vt 0.738588 0.005472 -vt 0.976599 0.276129 -vt 0.910399 0.250406 -vt 0.976599 0.204802 -vt 0.672388 0.005472 -vt 0.672388 0.076800 -vt 0.606188 0.031195 -vt 0.750516 0.732723 -vt 0.809058 0.692393 -vt 0.809058 0.773052 -vt 0.404277 0.817983 -vt 0.404277 0.889310 -vt 0.338077 0.843704 -vt 0.875259 0.571403 -vt 0.933801 0.531074 -vt 0.933801 0.611733 -vt 0.476413 0.947913 -vt 0.534954 0.907584 -vt 0.534954 0.988243 -vt 0.674509 0.928673 -vt 0.608309 0.883068 -vt 0.875259 0.798775 -vt 0.875259 0.889985 -vt 0.534956 0.739253 -vt 0.604463 0.698924 -vt 0.604463 0.779583 -vt 0.879191 0.131738 -vt 0.918058 0.505353 -vt 0.984258 0.531074 -vt 0.311512 0.737324 -vt 0.311512 0.817983 -vt 0.242004 0.777654 -vt 0.608310 0.954396 -vt 0.674509 1.000000 -vt 0.404277 0.960638 -vt 0.338078 0.915033 -vt 0.673974 0.117131 -vt 0.743482 0.076801 -vt 0.743482 0.157460 -vt 0.308205 0.817983 -vt 0.308205 0.889310 -vt 0.242004 0.863588 -vt 0.410213 0.872531 -vt 0.476413 0.826925 -vt 0.476413 0.898253 -vt 0.465448 0.705935 -vt 0.534956 0.665606 -vt 0.476413 0.969580 -vt 0.410214 0.943858 -vt 0.933801 0.692392 -vt 0.875259 0.652063 -vt 0.338077 0.777653 -vt 0.407585 0.737324 -vt 0.407585 0.817982 -vt 0.870991 0.031195 -vt 0.937191 0.005472 -vt 0.937191 0.076800 -vt 0.096753 0.969968 -vt 0.030553 0.924364 -vt 0.096753 0.898641 -vt 0.242004 0.696996 -vt 0.311512 0.656665 -vt 0.791381 0.857346 -vt 0.791381 0.928673 -vt 0.725180 0.902951 -vt 0.804789 0.076800 -vt 0.738588 0.031196 -vt 0.804789 0.005472 -vt 0.407585 0.576005 -vt 0.407585 0.656665 -vt 0.338077 0.616335 -vt 0.870991 0.005472 -vt 0.870991 0.076800 -vt 0.804789 0.051078 -vt 0.473786 0.076801 -vt 0.407585 0.031195 -vt 0.473786 0.005473 -vt 0.604464 0.537605 -vt 0.604464 0.618265 -vt 0.534956 0.577935 -vt 0.417871 0.786596 -vt 0.476413 0.746265 -vt 0.539987 0.051078 -vt 0.606188 0.005472 -vt 0.606188 0.076800 -vt 0.604465 0.157460 -vt 0.534956 0.117131 -vt 0.604465 0.076801 -vt 0.476413 0.867255 -vt 0.534954 0.826925 -vt 0.809058 0.853711 -vt 0.750516 0.813383 -vt 0.673974 0.157460 -vt 0.604465 0.117131 -vt 0.673974 0.076801 -vt 0.203793 0.817981 -vt 0.203793 0.889308 -vt 0.137592 0.863587 -vt 0.750516 0.652064 -vt 0.311513 0.656665 -vt 0.242004 0.616335 -vt 0.534956 0.876630 -vt 0.601156 0.850910 -vt 0.601156 0.922237 -vt 0.809058 0.657339 -vt 0.875259 0.611733 -vt 0.875259 0.683061 -vt 0.203793 0.656665 -vt 0.134284 0.616336 -vt 0.203793 0.576005 -vt 0.812990 0.111853 -vt 0.879191 0.086132 -vt 0.879191 0.157460 -vt 0.918058 0.459747 -vt 0.851858 0.414140 -vt 0.918058 0.388419 -vt 0.203793 0.737322 -vt 0.134283 0.696994 -vt 0.910399 0.285461 -vt 0.851858 0.245130 -vt 0.910399 0.204802 -vt 0.809058 0.747332 -vt 0.875259 0.701725 -vt 0.534956 0.658593 -vt 0.604464 0.698924 -vt 0.809058 0.556796 -vt 0.875259 0.531074 -vt 0.875259 0.602401 -vt 0.918058 0.531074 -vt 0.851858 0.485467 -vt 0.107720 0.656665 -vt 0.038211 0.616335 -vt 0.107720 0.576005 -vt 0.539987 0.005472 -vt 0.539987 0.076801 -vt 0.473786 0.051079 -vt 0.941459 0.987033 -vt 0.875259 0.941428 -vt 0.107719 0.656665 -vt 0.107719 0.737324 -vt 0.038211 0.696995 -vt 0.308205 0.960637 -vt 0.242005 0.934915 -vt 0.725180 0.974278 -vt 0.791380 0.928673 -vt 0.791380 0.999999 -vt 0.134285 0.777651 -vt 0.875259 0.727447 -vt 0.941459 0.701725 -vt 0.941459 0.773053 -vt 1.000000 0.692395 -vt 1.000000 0.773052 -vt 0.941459 0.732724 -vt 0.107719 0.817982 -vt 0.038211 0.777653 -vt 0.601156 0.993563 -vt 0.534956 0.967842 -vt 0.992342 0.531074 -vt 0.992342 0.611733 -vt 0.933801 0.571404 -vt 0.743482 0.117131 -vt 0.812990 0.076801 -vt 0.812990 0.157460 -vt 0.137593 0.915030 -vt 0.203793 0.960635 -vt 0.809058 0.961312 -vt 0.875259 0.987034 -vt 0.338077 0.696995 -vt 0.038211 0.858311 -vt 0.096753 0.817982 -vt 0.209444 0.883844 -vt 0.236729 0.880025 -vt 0.308205 0.821802 -vt 0.335490 0.817983 -vt 0.335490 0.851082 -vt 0.807809 0.161279 -vt 0.835094 0.157460 -vt 0.835094 0.190559 -vt 0.753238 0.161279 -vt 0.780524 0.157460 -vt 0.780524 0.190559 -vt 0.698668 0.161279 -vt 0.725953 0.157460 -vt 0.725953 0.190559 -vt 0.644097 0.161279 -vt 0.671382 0.157460 -vt 0.671382 0.190559 -vt 0.616812 0.161279 -vt 0.644097 0.157460 -vt 0.644097 0.190559 -vt 0.534956 0.161279 -vt 0.562241 0.157460 -vt 0.562241 0.190559 -vt 0.616812 0.157460 -vt 0.616812 0.190559 -vt 0.589526 0.186740 -vt 0.589526 0.161279 -vt 0.889665 0.190559 -vt 0.862379 0.186740 -vt 0.807809 0.157460 -vt 0.807809 0.190559 -vt 0.780524 0.186740 -vt 0.862379 0.157460 -vt 0.862379 0.190559 -vt 0.835094 0.186740 -vt 0.308205 0.880362 -vt 0.308205 0.854901 -vt 0.753238 0.157460 -vt 0.753238 0.190559 -vt 0.725953 0.186740 -vt 0.698668 0.157460 -vt 0.698668 0.190559 -vt 0.671382 0.186740 -vt 0.851858 0.204802 -vt 0.851858 0.245586 -vt 0.775851 0.490290 -vt 0.801187 0.531074 -vt 0.775851 0.245586 -vt 0.229128 0.450388 -vt 0.203793 0.409604 -vt 0.674509 0.245586 -vt 0.674509 0.204802 -vt 0.826522 0.490290 -vt 0.725180 0.245586 -vt 0.699845 0.204802 -vt 0.750516 0.571858 -vt 0.699845 0.571858 -vt 0.623838 0.204802 -vt 0.623838 0.245586 -vt 0.649173 0.204802 -vt 0.038211 0.450388 -vt 0.012876 0.409604 -vt 0.725180 0.490290 -vt 0.573167 0.204802 -vt 0.125889 0.914081 -vt 0.100553 0.914081 -vt 0.096753 0.866031 -vt 0.637401 0.825903 -vt 0.604464 0.825903 -vt 0.608265 0.777853 -vt 0.637401 0.585655 -vt 0.604464 0.585655 -vt 0.608265 0.537605 -vt 0.637401 0.633704 -vt 0.604464 0.633704 -vt 0.608265 0.585655 -vt 0.604464 0.729803 -vt 0.608265 0.681754 -vt 0.633600 0.681754 -vt 0.604464 0.681754 -vt 0.608265 0.633704 -vt 0.633600 0.633704 -vt 0.005275 0.783925 -vt 0.009075 0.735876 -vt 0.034411 0.735876 -vt 0.465448 0.665606 -vt 0.461647 0.713656 -vt 0.436312 0.713656 -vt 0.637401 0.729803 -vt 0.633600 0.777853 -vt 0.005275 0.831975 -vt 0.009075 0.783925 -vt 0.034411 0.783925 -vt 0.678309 0.857346 -vt 0.703645 0.857346 -vt 0.203793 0.831975 -vt 0.207593 0.783925 -vt 0.232928 0.783925 -vt 0.203793 0.783925 -vt 0.207593 0.735876 -vt 0.232928 0.735876 -vt 0.038211 0.880025 -vt 0.009075 0.831975 -vt 0.129689 0.866031 -vt 0.100553 0.817982 -vt 0.236729 0.831975 -vt 0.232929 0.880025 -vt 0.954445 0.882608 -vt 0.954445 0.877479 -vt 0.236729 0.946223 -vt 0.222430 0.946223 -vt 0.954446 0.773052 -vt 0.116702 0.914081 -vt 0.005275 0.946223 -vt 0.018261 0.913124 -vt 0.322504 0.917281 -vt 0.137470 0.576005 -vt 0.104534 0.576005 -vt 0.050815 0.539934 -vt 0.074105 0.563339 -vt 0.038211 0.509354 -vt 0.038211 0.476255 -vt 0.050815 0.445675 -vt 0.104534 0.409604 -vt 0.137470 0.409604 -vt 0.167899 0.422270 -vt 0.203793 0.476255 -vt 0.203793 0.509354 -vt 0.191188 0.539934 -vt 0.322503 0.884181 -vt 0.712194 0.964282 -vt 0.420189 0.335132 -vt 0.407585 0.304552 -vt 0.407585 0.271453 -vt 0.506844 0.371203 -vt 0.506844 0.204802 -vt 0.420189 0.240873 -vt 0.473908 0.204802 -vt 0.537273 0.217468 -vt 0.560563 0.240873 -vt 0.958377 0.119232 -vt 0.537273 0.358537 -vt 0.473908 0.371203 -vt 0.443479 0.358537 -vt 0.443479 0.217468 -vt 0.687496 0.938495 -vt 0.337486 0.812793 -vt 0.109739 0.947180 -vt 0.941459 0.811280 -vt 0.958377 0.157460 -vt 0.407585 0.739443 -vt 0.341263 0.576005 -vt 0.308326 0.576005 -vt 0.277897 0.563339 -vt 0.254608 0.539934 -vt 0.242004 0.476255 -vt 0.277897 0.422270 -vt 0.242004 0.509354 -vt 0.254608 0.445675 -vt 0.308326 0.409604 -vt 0.341263 0.409604 -vt 0.371692 0.422270 -vt 0.394981 0.445675 -vt 0.407585 0.476255 -vt 0.133693 0.812793 -vt 0.420189 0.407275 -vt 0.443479 0.383870 -vt 0.420189 0.501534 -vt 0.573167 0.470954 -vt 0.560563 0.501534 -vt 0.537273 0.524938 -vt 0.506844 0.537605 -vt 0.473908 0.537605 -vt 0.443479 0.524938 -vt 0.407585 0.470954 -vt 0.407585 0.437854 -vt 0.458603 0.665606 -vt 0.483938 0.665606 -vt 0.507345 0.655863 -vt 0.507345 0.547348 -vt 0.417281 0.637859 -vt 0.407585 0.614336 -vt 0.407585 0.588875 -vt 0.435196 0.547348 -vt 0.458603 0.537605 -vt 0.525260 0.565352 -vt 0.534956 0.588875 -vt 0.534956 0.614336 -vt 0.525260 0.637859 -vt 0.458603 0.076801 -vt 0.483938 0.076801 -vt 0.507345 0.086544 -vt 0.435196 0.086544 -vt 0.525260 0.104548 -vt 0.534956 0.153532 -vt 0.507345 0.195058 -vt 0.458603 0.204802 -vt 0.435196 0.195058 -vt 0.417281 0.177055 -vt 0.407585 0.128071 -vt 0.417281 0.104548 -vt 0.337486 0.738956 -vt 0.525260 0.177055 -vt 0.015513 0.044395 -vt 0.044177 0.015590 -vt 0.122165 0.000000 -vt 0.159616 0.015590 -vt 0.081628 0.000000 -vt 0.203793 0.082032 -vt 0.203793 0.122770 -vt 0.188280 0.160406 -vt 0.159616 0.189212 -vt 0.122165 0.204802 -vt 0.044177 0.189212 -vt 0.015513 0.160406 -vt 0.000000 0.122770 -vt 0.325957 0.409604 -vt 0.285421 0.409604 -vt 0.247969 0.394014 -vt 0.203793 0.327572 -vt 0.203793 0.286834 -vt 0.219305 0.249197 -vt 0.247969 0.220392 -vt 0.285420 0.204802 -vt 0.363408 0.220391 -vt 0.407585 0.327572 -vt 0.392072 0.365208 -vt 0.407585 0.286834 -vt 0.712831 0.856975 -vt 0.134284 0.616743 -vt 0.247969 0.189212 -vt 0.219305 0.160406 -vt 0.247969 0.015590 -vt 0.325957 0.000000 -vt 0.219305 0.044395 -vt 0.285421 0.000000 -vt 0.363409 0.015590 -vt 0.392072 0.044395 -vt 0.407585 0.082032 -vt 0.407585 0.122770 -vt 0.159616 0.394014 -vt 0.122165 0.409604 -vt 0.044177 0.394014 -vt 0.015513 0.365208 -vt 0.000000 0.327572 -vt 0.000000 0.286834 -vt 0.015513 0.249197 -vt 0.159616 0.220391 -vt 0.188280 0.365208 -vt 0.308205 0.847263 -vt 0.209444 0.909305 -vt 0.807809 0.186740 -vt 0.753238 0.186740 -vt 0.698668 0.186740 -vt 0.644097 0.186740 -vt 0.616812 0.186740 -vt 0.534956 0.186740 -vt 0.862379 0.161279 -vt 0.780524 0.161279 -vt 0.835094 0.161279 -vt 0.725953 0.161279 -vt 0.671382 0.161279 -vt 0.229128 0.409604 -vt 0.598502 0.204802 -vt 0.038211 0.409604 -vt 0.633600 0.537605 -vt 0.633600 0.585654 -vt 0.637401 0.681754 -vt 0.038211 0.783925 -vt 0.432511 0.665606 -vt 0.038211 0.831975 -vt 0.236729 0.783925 -vt 0.034411 0.831975 -vt 0.125889 0.817982 -vt 0.207593 0.880025 -vn 0.000000 -0.195090 -0.980785 -vn 0.000000 -0.555571 -0.831469 -vn 0.000001 -0.831470 -0.555570 -vn 0.000001 -0.980785 -0.195090 -vn 0.000001 -0.980785 0.195090 -vn 0.000001 -0.831470 0.555570 -vn 0.000001 -0.555571 0.831469 -vn 0.000000 -0.195090 0.980785 -vn -0.000000 0.195090 0.980785 -vn -0.000000 0.555569 0.831470 -vn -0.000001 0.831469 0.555571 -vn -0.000002 0.980785 0.195090 -vn -0.000001 0.980785 -0.195092 -vn -0.000001 0.831470 -0.555570 -vn 1.000000 0.000001 0.000000 -vn 0.000000 0.195090 -0.980785 -vn -0.000001 0.555570 -0.831470 -vn -1.000000 -0.000001 -0.000000 -vn 0.000001 -0.555570 -0.831469 -vn 0.000000 -0.555571 0.831469 -vn 0.000000 0.555570 0.831470 -vn -0.000001 0.980786 0.195088 -vn -0.000001 0.980785 -0.195091 -vn 1.000000 0.000004 0.000000 -vn -0.000001 0.555571 -0.831469 -vn 0.000000 -0.195091 -0.980785 -vn 0.000001 -0.555570 -0.831470 -vn 0.000001 -0.555570 0.831470 -vn 0.000000 -0.195091 0.980785 -vn -0.000001 0.555570 0.831470 -vn -0.000001 0.831469 0.555570 -vn -0.000001 0.980785 0.195091 -vn -0.000000 0.555570 -0.831470 -vn -0.000000 -0.555570 -0.831470 -vn 0.000000 -0.555570 0.831470 -vn 0.000000 0.831470 0.555570 -vn 0.000000 0.980785 0.195090 -vn 0.000000 0.980785 -0.195090 -vn 0.000000 0.831470 -0.555570 -vn -0.000001 0.555569 -0.831470 -vn -0.000001 0.831470 0.555570 -vn 0.000000 0.980785 -0.195091 -vn 1.000000 -0.000001 0.000000 -vn 0.102381 -0.943524 0.315090 -vn 0.700224 -0.661699 0.268032 -vn -0.268034 -0.943523 0.194736 -vn -0.268034 -0.943523 -0.194736 -vn 0.102381 -0.943524 -0.315090 -vn 0.904989 -0.330385 0.268032 -vn 0.024747 -0.330386 0.943521 -vn -0.889697 -0.330385 0.315095 -vn -0.574602 -0.330388 -0.748783 -vn 0.534576 -0.330387 -0.777865 -vn 0.802609 -0.125627 0.583126 -vn -0.306569 -0.125629 0.943522 -vn -0.992077 -0.125628 0.000000 -vn -0.306569 -0.125629 -0.943522 -vn 0.802609 -0.125627 -0.583126 -vn 0.408946 0.661699 0.628425 -vn -0.471300 0.661699 0.583122 -vn -0.700224 0.661699 -0.268032 -vn 0.038530 0.661699 -0.748779 -vn 0.724042 0.661695 -0.194736 -vn -0.038531 -0.661699 0.748779 -vn 0.187594 -0.794658 0.577345 -vn 0.471300 -0.661699 0.583122 -vn 0.700224 -0.661699 -0.268032 -vn 0.607060 -0.794656 0.000000 -vn 0.331305 -0.943524 0.000000 -vn -0.724042 -0.661695 0.194736 -vn -0.491120 -0.794657 0.356821 -vn -0.408946 -0.661698 0.628425 -vn -0.408946 -0.661698 -0.628425 -vn -0.491120 -0.794657 -0.356821 -vn -0.724042 -0.661695 -0.194736 -vn 0.471300 -0.661699 -0.583122 -vn 0.187594 -0.794658 -0.577345 -vn -0.038531 -0.661699 -0.748779 -vn 0.992077 0.125628 0.000000 -vn 0.982246 -0.187598 0.000000 -vn 0.904989 -0.330385 -0.268032 -vn 0.306569 0.125629 0.943522 -vn 0.303531 -0.187597 0.934171 -vn 0.534576 -0.330387 0.777865 -vn -0.802609 0.125627 0.583126 -vn -0.794656 -0.187595 0.577348 -vn -0.574602 -0.330388 0.748783 -vn -0.802609 0.125627 -0.583126 -vn -0.794656 -0.187595 -0.577348 -vn -0.889697 -0.330385 -0.315095 -vn 0.306569 0.125629 -0.943522 -vn 0.303531 -0.187597 -0.934171 -vn 0.024747 -0.330386 -0.943521 -vn 0.574602 0.330388 0.748784 -vn 0.794656 0.187595 0.577348 -vn 0.889697 0.330385 0.315094 -vn -0.534576 0.330386 0.777865 -vn -0.303531 0.187597 0.934171 -vn -0.024747 0.330386 0.943521 -vn -0.904989 0.330385 -0.268032 -vn -0.982246 0.187598 0.000000 -vn -0.904989 0.330385 0.268032 -vn -0.024747 0.330386 -0.943521 -vn -0.303531 0.187597 -0.934171 -vn -0.534576 0.330386 -0.777865 -vn 0.889697 0.330385 -0.315094 -vn 0.794656 0.187595 -0.577348 -vn 0.574602 0.330388 -0.748784 -vn 0.268034 0.943523 0.194737 -vn 0.491119 0.794657 0.356822 -vn 0.724042 0.661695 0.194736 -vn -0.102381 0.943523 0.315090 -vn -0.187594 0.794657 0.577346 -vn 0.038531 0.661699 0.748779 -vn -0.331305 0.943524 0.000000 -vn -0.607061 0.794655 0.000000 -vn -0.700224 0.661699 0.268032 -vn -0.102381 0.943523 -0.315090 -vn -0.187594 0.794658 -0.577345 -vn -0.471300 0.661699 -0.583122 -vn 0.268034 0.943523 -0.194737 -vn 0.491119 0.794657 -0.356822 -vn 0.408946 0.661699 -0.628425 -vn 0.700212 0.700217 0.139282 -vn 0.700212 0.593615 0.396641 -vn 0.700213 0.396641 0.593614 -vn 0.700214 0.139282 0.700215 -vn 0.700215 -0.139280 0.700214 -vn 0.700217 -0.396638 0.593612 -vn 0.700217 -0.593610 0.396639 -vn 0.700218 -0.700212 0.139281 -vn 0.700218 -0.700211 -0.139281 -vn 0.700217 -0.593610 -0.396639 -vn 0.700211 0.700217 -0.139282 -vn 0.700212 0.593615 -0.396641 -vn 0.700213 0.396641 -0.593614 -vn 0.700214 0.139282 -0.700215 -vn 0.700215 -0.139280 -0.700214 -vn 0.700217 -0.396638 -0.593612 -vn 0.000001 -0.555571 -0.831469 -vn 0.000001 -0.980785 -0.195091 -vn -0.000000 0.555571 0.831469 -vn -0.399591 0.178838 -0.899080 -vn -0.399592 0.509287 -0.762203 -vn -0.399593 0.762202 -0.509287 -vn -0.399593 0.899079 -0.178838 -vn -0.399593 0.899079 0.178839 -vn -0.399592 0.762202 0.509288 -vn -0.399592 0.509287 0.762203 -vn -0.399591 0.178838 0.899080 -vn -0.399590 -0.178838 0.899080 -vn -0.399590 -0.509288 0.762203 -vn -0.399589 -0.762204 0.509288 -vn -0.399589 -0.899080 0.178838 -vn -0.399589 -0.899080 -0.178838 -vn -0.399589 -0.762203 -0.509288 -vn -0.399590 -0.509288 -0.762203 -vn -0.399591 -0.178838 -0.899080 -vn 0.000001 -0.195090 -0.980785 -vn 0.000001 -0.831469 0.555571 -vn 0.000001 -0.195090 0.980785 -vn -0.000001 0.195090 0.980785 -vn -0.000002 0.831470 0.555570 -vn -0.000002 0.980785 0.195089 -vn -0.000002 0.980785 -0.195089 -vn 1.000000 0.000002 0.000000 -vn -1.000000 -0.000002 0.000000 -vn -1.000000 -0.000000 0.000000 -vn -0.000001 0.555569 0.831470 -vn 0.000000 0.831469 0.555571 -vn -0.000001 0.980785 0.195092 -vn 1.000000 0.000000 0.000000 -vn -1.000000 -0.000001 0.000001 -vn -1.000000 -0.000002 -0.000001 -vn 0.000001 -0.980785 0.195091 -vn -0.000001 0.831471 0.555569 -vn 1.000000 0.000001 0.000001 -vn 1.000000 0.000001 -0.000002 -vn 1.000000 0.000006 -0.000001 -vn 1.000000 0.000002 0.000001 -vn -1.000000 0.000000 -0.000001 -vn -1.000000 0.000002 0.000003 -vn -1.000000 -0.000001 0.000002 -vn -1.000000 -0.000001 -0.000001 -vn -1.000000 0.000002 0.000001 -vn 0.000000 -0.831470 -0.555570 -vn 0.000000 -0.831469 0.555570 -vn -0.000001 0.555570 0.831469 -vn 0.000000 0.831469 0.555570 -vn 0.000000 0.980785 0.195091 -vn 0.000000 0.555570 -0.831469 -vn -1.000000 -0.000004 0.000000 -vn -1.000000 -0.000003 -0.000000 -vn -0.000001 0.980785 0.195090 -vn -0.000001 0.980785 -0.195090 -vn 0.000000 0.555571 -0.831469 -vn -1.000000 0.000000 0.000001 -vn -1.000000 0.000001 0.000000 -vn 0.700211 0.593616 0.396641 -vn 0.700212 0.700217 0.139281 -vn 0.700212 0.396641 0.593615 -vn 0.700216 -0.139281 0.700213 -vn 0.700216 -0.396638 0.593612 -vn 0.700217 -0.593611 0.396639 -vn 0.700217 -0.700212 0.139281 -vn 0.700217 -0.593611 -0.396639 -vn 0.700212 0.700217 -0.139282 -vn 0.700211 0.593616 -0.396641 -vn 0.700215 -0.139281 -0.700214 -vn 0.700216 -0.396638 -0.593612 -vn 0.000001 -0.831469 -0.555571 -vn -0.000001 0.831469 -0.555571 -vn -0.399592 0.178837 -0.899079 -vn -0.399592 0.762202 -0.509288 -vn -0.399592 0.899079 -0.178839 -vn -0.399593 0.899079 0.178838 -vn -0.399593 0.762202 0.509287 -vn -0.399591 0.178837 0.899080 -vn -0.399591 -0.178838 0.899080 -vn -0.399589 -0.762203 0.509288 -vn -0.399589 -0.899081 0.178838 -vn -0.399589 -0.899081 -0.178838 -vn -0.399589 -0.762204 -0.509288 -vn -0.399590 -0.178838 -0.899080 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/4/2 6/5/2 5/6/2 -f 6/7/3 8/8/3 7/9/3 -f 8/10/4 10/11/4 9/12/4 -f 10/13/5 12/14/5 11/15/5 -f 12/16/6 14/17/6 13/18/6 -f 13/19/7 14/20/7 16/21/7 -f 15/22/8 16/23/8 18/24/8 -f 18/25/9 20/26/9 19/27/9 -f 20/28/10 22/29/10 21/30/10 -f 21/31/11 22/32/11 24/33/11 -f 23/34/12 24/35/12 26/36/12 -f 26/34/13 28/37/13 27/38/13 -f 28/39/14 30/40/14 29/41/14 -f 22/42/15 14/43/15 6/44/15 -f 31/45/16 32/46/16 2/47/16 -f 30/48/17 32/39/17 31/49/17 -f 19/50/18 21/51/18 17/52/18 -f 34/53/1 36/54/1 35/55/1 -f 36/56/19 38/57/19 37/58/19 -f 38/59/3 40/60/3 39/61/3 -f 40/62/4 42/63/4 41/64/4 -f 41/65/5 42/66/5 44/67/5 -f 44/14/6 46/13/6 45/68/6 -f 46/69/20 48/70/20 47/71/20 -f 48/72/8 50/73/8 49/5/8 -f 50/74/9 52/75/9 51/76/9 -f 52/77/21 54/78/21 53/79/21 -f 54/80/11 56/81/11 55/82/11 -f 55/83/22 56/84/22 58/85/22 -f 58/45/23 60/86/23 59/87/23 -f 60/88/14 62/89/14 61/90/14 -f 42/91/24 40/92/24 38/93/24 -f 64/94/16 34/95/16 33/96/16 -f 62/65/25 64/97/25 63/98/25 -f 45/99/18 47/100/18 49/101/18 -f 66/102/26 68/103/26 204/104/26 -f 68/105/27 70/106/27 205/107/27 -f 70/108/3 72/109/3 206/110/3 -f 72/111/4 74/112/4 207/113/4 -f 207/114/5 74/115/5 76/116/5 -f 208/107/6 76/106/6 78/117/6 -f 78/118/28 80/115/28 210/114/28 -f 80/119/29 82/120/29 211/121/29 -f 82/122/9 84/123/9 212/124/9 -f 84/125/30 86/126/30 213/127/30 -f 86/116/31 88/128/31 214/129/31 -f 214/129/32 88/128/32 90/125/32 -f 90/130/23 92/131/23 216/132/23 -f 92/133/14 94/134/14 217/135/14 -f 88/136/15 82/137/15 96/138/15 -f 96/123/16 66/139/16 203/140/16 -f 94/126/33 96/141/33 218/142/33 -f 79/143/18 87/144/18 71/145/18 -f 98/146/1 100/147/1 99/148/1 -f 100/149/34 102/150/34 101/151/34 -f 102/150/3 104/152/3 103/153/3 -f 104/154/4 106/147/4 105/155/4 -f 106/156/5 108/148/5 107/147/5 -f 108/157/6 110/97/6 109/67/6 -f 109/158/35 110/159/35 112/84/35 -f 112/157/8 114/160/8 113/161/8 -f 114/162/9 116/163/9 115/164/9 -f 116/165/21 118/166/21 117/160/21 -f 118/167/36 120/168/36 119/169/36 -f 120/170/37 122/160/37 121/166/37 -f 121/171/38 122/172/38 124/173/38 -f 123/174/39 124/175/39 126/176/39 -f 122/177/15 110/178/15 102/179/15 -f 127/64/16 128/63/16 98/146/16 -f 125/170/40 126/176/40 128/161/40 -f 119/180/18 127/181/18 103/182/18 -f 130/183/1 132/174/1 131/184/1 -f 132/185/34 134/154/34 133/186/34 -f 134/152/3 136/187/3 135/188/3 -f 136/189/4 138/162/4 137/190/4 -f 137/146/5 138/191/5 140/155/5 -f 140/192/6 142/98/6 141/97/6 -f 142/174/28 144/170/28 143/193/28 -f 143/194/8 144/195/8 146/196/8 -f 145/197/9 146/120/9 148/87/9 -f 148/198/21 150/199/21 149/187/21 -f 150/200/41 152/201/41 151/202/41 -f 151/164/32 152/163/32 154/169/32 -f 154/203/42 156/204/42 155/205/42 -f 155/206/39 156/207/39 158/208/39 -f 140/209/43 138/210/43 136/211/43 -f 159/9/16 160/8/16 130/212/16 -f 157/191/40 158/146/40 160/61/40 -f 131/213/18 143/214/18 151/215/18 -f 161/216/44 174/217/44 173/218/44 -f 162/219/45 174/220/45 176/221/45 -f 161/222/46 173/223/46 178/224/46 -f 161/225/47 178/226/47 180/227/47 -f 161/228/48 180/229/48 177/230/48 -f 162/231/49 176/232/49 183/233/49 -f 163/234/50 175/235/50 185/236/50 -f 164/237/51 179/238/51 187/235/51 -f 165/239/52 181/240/52 189/241/52 -f 166/242/53 182/243/53 191/244/53 -f 162/245/54 183/246/54 186/247/54 -f 163/248/55 185/249/55 188/250/55 -f 164/251/56 187/252/56 190/253/56 -f 165/254/57 189/255/57 192/256/57 -f 166/257/58 191/258/58 184/259/58 -f 167/260/59 193/261/59 198/262/59 -f 168/263/60 194/264/60 200/265/60 -f 169/266/61 195/267/61 201/268/61 -f 170/123/62 196/269/62 202/270/62 -f 171/24/63 197/5/63 199/271/63 -f 173/272/64 175/5/64 163/2/64 -f 173/273/65 174/274/65 175/275/65 -f 174/54/66 162/77/66 175/276/66 -f 176/277/67 177/223/67 166/278/67 -f 176/279/68 174/280/68 177/281/68 -f 174/282/69 161/269/69 177/283/69 -f 178/284/70 179/285/70 164/261/70 -f 178/286/71 173/287/71 179/288/71 -f 173/289/72 163/290/72 179/291/72 -f 180/292/73 181/293/73 165/294/73 -f 180/240/74 178/295/74 181/296/74 -f 178/294/75 164/297/75 181/298/75 -f 177/265/76 182/299/76 166/300/76 -f 177/301/77 180/302/77 182/303/77 -f 180/304/78 165/305/78 182/306/78 -f 183/307/79 184/308/79 171/309/79 -f 183/310/80 176/311/80 184/279/80 -f 176/312/81 166/313/81 184/314/81 -f 185/315/82 186/316/82 167/317/82 -f 185/318/83 175/319/83 186/320/83 -f 175/321/84 162/322/84 186/323/84 -f 187/324/85 188/325/85 168/326/85 -f 187/327/86 179/328/86 188/329/86 -f 179/293/87 163/330/87 188/331/87 -f 189/332/88 190/333/88 169/334/88 -f 189/335/89 181/336/89 190/337/89 -f 181/267/90 164/338/90 190/339/90 -f 191/259/91 192/340/91 170/341/91 -f 191/342/92 182/343/92 192/344/92 -f 182/345/93 165/346/93 192/347/93 -f 186/247/94 193/258/94 167/348/94 -f 186/349/95 183/350/95 193/204/95 -f 183/351/96 171/352/96 193/353/96 -f 188/354/97 194/355/97 168/356/97 -f 188/357/98 185/358/98 194/359/98 -f 185/360/99 167/361/99 194/362/99 -f 190/363/100 195/364/100 169/365/100 -f 190/357/101 187/366/101 195/367/101 -f 187/368/102 168/369/102 195/370/102 -f 192/371/103 196/372/103 170/234/103 -f 192/373/104 189/328/104 196/374/104 -f 189/375/105 169/376/105 196/377/105 -f 184/378/106 197/379/106 171/363/106 -f 184/380/107 191/381/107 197/382/107 -f 191/383/108 170/384/108 197/385/108 -f 198/386/109 199/387/109 172/2/109 -f 198/388/110 193/389/110 199/390/110 -f 193/290/111 171/391/111 199/392/111 -f 200/393/112 198/394/112 172/395/112 -f 200/366/113 194/345/113 198/396/113 -f 194/397/114 167/398/114 198/399/114 -f 201/400/115 200/401/115 172/402/115 -f 201/403/116 195/404/116 200/389/116 -f 195/353/117 168/405/117 200/406/117 -f 202/407/118 201/408/118 172/409/118 -f 202/410/119 196/411/119 201/412/119 -f 196/413/120 169/346/120 201/414/120 -f 199/415/121 202/237/121 172/416/121 -f 199/302/122 197/417/122 202/319/122 -f 197/309/123 170/418/123 202/419/123 -f 90/420/124 58/421/124 56/12/124 -f 88/422/125 56/423/125 54/424/125 -f 86/425/126 54/426/126 52/427/126 -f 84/428/127 52/429/127 50/430/127 -f 82/431/128 50/432/128 48/433/128 -f 80/434/129 48/435/129 46/436/129 -f 78/437/130 46/438/130 44/439/130 -f 76/440/131 44/441/131 42/442/131 -f 42/443/132 40/444/132 72/445/132 -f 40/442/133 38/441/133 70/446/133 -f 60/196/134 58/447/134 90/448/134 -f 62/449/135 60/450/135 92/451/135 -f 64/452/136 62/453/136 94/454/136 -f 96/455/137 66/456/137 34/424/137 -f 36/457/138 34/458/138 66/459/138 -f 38/460/139 36/461/139 68/462/139 -f 65/463/1 203/464/1 204/104/1 -f 204/465/140 205/107/140 69/466/140 -f 69/105/3 205/467/3 206/110/3 -f 206/468/141 207/113/141 73/469/141 -f 207/114/5 208/470/5 75/471/5 -f 208/107/6 209/472/6 77/103/6 -f 209/473/20 210/114/20 79/474/20 -f 210/475/8 211/121/8 81/118/8 -f 211/476/9 212/124/9 83/116/9 -f 83/477/142 212/478/142 213/127/142 -f 213/470/41 214/129/41 87/479/41 -f 87/479/32 214/129/32 215/478/32 -f 215/480/23 216/132/23 91/481/23 -f 91/118/14 216/482/14 217/135/14 -f 218/124/16 203/140/16 65/128/16 -f 217/127/17 218/142/17 95/483/17 -f 203/484/143 218/485/143 31/486/143 -f 29/487/144 31/488/144 218/489/144 -f 27/490/145 29/491/145 217/492/145 -f 25/493/146 27/494/146 216/495/146 -f 25/496/147 215/497/147 214/498/147 -f 23/499/148 214/500/148 213/501/148 -f 21/502/149 213/503/149 212/504/149 -f 19/505/150 212/506/150 211/507/150 -f 17/508/151 211/509/151 210/489/151 -f 15/510/152 210/511/152 209/512/152 -f 13/57/153 209/513/153 208/514/153 -f 11/515/154 208/516/154 207/517/154 -f 9/518/155 207/519/155 206/520/155 -f 5/521/156 7/37/156 206/522/156 -f 3/523/157 5/486/157 205/524/157 -f 1/515/158 3/525/158 204/526/158 -f 3/527/159 1/1/159 4/3/159 -f 3/528/27 4/4/27 5/6/27 -f 5/94/3 6/7/3 7/9/3 -f 7/529/4 8/10/4 9/12/4 -f 9/90/5 10/13/5 11/15/5 -f 11/530/160 12/16/160 13/18/160 -f 15/33/28 13/19/28 16/21/28 -f 17/531/161 15/22/161 18/24/161 -f 17/74/162 18/25/162 19/27/162 -f 19/532/30 20/28/30 21/30/30 -f 23/21/163 21/31/163 24/33/163 -f 25/533/164 23/34/164 26/36/164 -f 25/534/165 26/34/165 27/38/165 -f 27/535/14 28/39/14 29/41/14 -f 6/44/15 4/536/15 2/537/15 -f 30/538/15 6/44/15 32/539/15 -f 30/538/166 28/540/166 26/541/166 -f 26/541/24 24/542/24 22/42/24 -f 22/42/15 20/543/15 18/544/15 -f 18/544/15 16/545/15 14/43/15 -f 14/43/166 12/546/166 10/547/166 -f 6/44/15 14/43/15 8/548/15 -f 29/549/40 30/48/40 31/49/40 -f 22/42/15 6/44/15 26/541/15 -f 22/42/15 18/544/15 14/43/15 -f 6/44/15 2/537/15 32/539/15 -f 14/43/15 10/547/15 8/548/15 -f 1/550/16 31/45/16 2/47/16 -f 6/44/15 30/538/15 26/541/15 -f 31/551/18 1/552/18 3/553/18 -f 21/51/18 25/554/18 17/52/18 -f 11/555/18 5/556/18 9/557/18 -f 11/555/167 13/558/167 15/559/167 -f 33/560/1 34/53/1 35/55/1 -f 23/561/167 25/554/167 21/51/167 -f 31/551/18 5/556/18 27/562/18 -f 27/562/18 29/563/18 31/551/18 -f 5/556/18 17/52/18 25/554/18 -f 15/559/18 5/556/18 11/555/18 -f 31/551/18 3/553/18 5/556/18 -f 5/556/167 7/564/167 9/557/167 -f 15/559/168 17/52/168 5/556/168 -f 35/565/27 36/56/27 37/58/27 -f 5/556/18 25/554/18 27/562/18 -f 37/62/3 38/59/3 39/61/3 -f 39/566/4 40/62/4 41/64/4 -f 43/97/5 41/65/5 44/67/5 -f 43/82/6 44/14/6 45/68/6 -f 45/567/28 46/69/28 47/71/28 -f 47/568/8 48/72/8 49/5/8 -f 49/25/9 50/74/9 51/76/9 -f 51/569/169 52/77/169 53/79/169 -f 53/68/170 54/80/170 55/82/170 -f 57/570/171 55/83/171 58/85/171 -f 57/46/13 58/45/13 59/87/13 -f 59/15/14 60/88/14 61/90/14 -f 38/93/15 36/571/15 34/572/15 -f 34/572/172 64/573/172 62/574/172 -f 58/575/166 54/576/166 60/577/166 -f 58/575/172 56/578/172 54/576/172 -f 54/576/172 52/579/172 50/580/172 -f 50/580/15 48/581/15 46/582/15 -f 46/582/166 44/583/166 42/91/166 -f 63/7/16 64/94/16 33/96/16 -f 62/574/15 60/577/15 34/572/15 -f 60/577/15 54/576/15 38/93/15 -f 46/582/15 38/93/15 50/580/15 -f 46/582/15 42/91/15 38/93/15 -f 61/584/17 62/65/17 63/98/17 -f 60/577/15 38/93/15 34/572/15 -f 38/93/15 54/576/15 50/580/15 -f 37/585/18 39/586/18 63/587/18 -f 204/465/27 68/105/27 205/107/27 -f 39/586/168 41/562/168 43/554/168 -f 49/101/18 39/586/18 43/554/18 -f 51/588/18 39/586/18 49/101/18 -f 51/588/173 53/589/173 55/590/173 -f 55/590/168 57/591/168 59/592/168 -f 59/592/174 61/593/174 63/587/174 -f 33/594/18 35/595/18 37/585/18 -f 203/464/1 66/102/1 204/104/1 -f 51/588/18 55/590/18 59/592/18 -f 63/587/167 51/588/167 59/592/167 -f 33/594/18 37/585/18 63/587/18 -f 45/99/18 49/101/18 43/554/18 -f 39/586/18 51/588/18 63/587/18 -f 205/467/3 70/108/3 206/110/3 -f 206/468/141 72/111/141 207/113/141 -f 208/470/175 207/114/175 76/116/175 -f 209/472/6 208/107/6 78/117/6 -f 209/473/20 78/118/20 210/114/20 -f 210/475/29 80/119/29 211/121/29 -f 211/476/9 82/122/9 212/124/9 -f 212/478/30 84/125/30 213/127/30 -f 213/470/176 86/116/176 214/129/176 -f 215/478/32 214/129/32 90/125/32 -f 215/480/23 90/130/23 216/132/23 -f 216/482/14 92/133/14 217/135/14 -f 66/596/177 96/138/177 68/597/177 -f 70/598/43 82/137/43 80/599/43 -f 94/600/172 92/601/172 90/602/172 -f 218/124/16 96/123/16 203/140/16 -f 86/603/178 84/604/178 82/137/178 -f 78/605/166 70/598/166 80/599/166 -f 78/605/179 76/606/179 74/607/179 -f 74/607/180 72/608/180 70/598/180 -f 94/600/166 88/136/166 96/138/166 -f 88/136/15 86/603/15 82/137/15 -f 217/127/40 94/126/40 218/142/40 -f 78/605/15 74/607/15 70/598/15 -f 94/600/166 90/602/166 88/136/166 -f 96/138/178 70/598/178 68/597/178 -f 70/598/15 96/138/15 82/137/15 -f 95/609/18 65/610/18 67/611/18 -f 71/145/173 93/612/173 69/613/173 -f 99/189/27 100/149/27 101/151/27 -f 79/143/181 73/614/181 77/615/181 -f 79/143/18 81/616/18 83/617/18 -f 83/617/182 85/618/182 87/144/182 -f 87/144/168 89/619/168 91/620/168 -f 95/609/183 67/611/183 93/612/183 -f 91/620/184 93/612/184 71/145/184 -f 93/612/184 67/611/184 69/613/184 -f 79/143/18 83/617/18 87/144/18 -f 79/143/18 71/145/18 73/614/18 -f 97/621/26 98/146/26 99/148/26 -f 71/145/18 87/144/18 91/620/18 -f 73/614/185 75/622/185 77/615/185 -f 101/151/186 102/150/186 103/153/186 -f 103/186/141 104/154/141 105/155/141 -f 105/154/175 106/156/175 107/147/175 -f 107/165/187 108/157/187 109/67/187 -f 111/83/28 109/158/28 112/84/28 -f 111/192/29 112/157/29 113/161/29 -f 113/190/9 114/162/9 115/164/9 -f 115/157/188 116/165/188 117/160/188 -f 117/115/189 118/167/189 119/169/189 -f 119/193/190 120/170/190 121/166/190 -f 123/208/42 121/171/42 124/173/42 -f 125/170/14 123/174/14 126/176/14 -f 102/179/15 100/623/15 98/624/15 -f 126/625/172 124/626/172 128/627/172 -f 122/177/15 98/624/15 124/626/15 -f 122/177/166 120/628/166 118/629/166 -f 118/629/166 116/630/166 114/631/166 -f 110/178/15 122/177/15 112/632/15 -f 110/178/15 108/633/15 106/634/15 -f 102/179/15 110/178/15 104/635/15 -f 110/178/15 106/634/15 104/635/15 -f 122/177/15 114/631/15 112/632/15 -f 124/626/15 98/624/15 128/627/15 -f 122/177/15 118/629/15 114/631/15 -f 97/621/16 127/64/16 98/146/16 -f 122/177/15 102/179/15 98/624/15 -f 127/160/191 125/170/191 128/161/191 -f 127/181/18 97/636/18 99/637/18 -f 99/637/167 101/638/167 103/182/167 -f 103/182/192 105/639/192 107/640/192 -f 107/640/18 109/641/18 111/642/18 -f 111/642/18 113/643/18 115/211/18 -f 115/211/167 117/644/167 119/180/167 -f 123/645/193 125/646/193 121/647/193 -f 127/181/18 119/180/18 125/646/18 -f 127/181/18 99/637/18 103/182/18 -f 111/642/18 119/180/18 107/640/18 -f 111/642/18 115/211/18 119/180/18 -f 125/646/18 119/180/18 121/647/18 -f 131/203/27 132/185/27 133/186/27 -f 119/180/18 103/182/18 107/640/18 -f 129/382/1 130/183/1 131/184/1 -f 133/153/3 134/152/3 135/188/3 -f 135/149/4 136/189/4 137/190/4 -f 139/147/5 137/146/5 140/155/5 -f 139/157/6 140/192/6 141/97/6 -f 141/184/35 142/174/35 143/193/35 -f 145/81/29 143/194/29 146/196/29 -f 147/86/9 145/197/9 148/87/9 -f 147/648/30 148/198/30 149/187/30 -f 149/649/36 150/200/36 151/202/36 -f 153/168/194 151/164/194 154/169/194 -f 153/185/195 154/203/195 155/205/195 -f 157/173/14 155/206/14 158/208/14 -f 134/643/172 132/650/172 130/651/172 -f 130/651/15 160/629/15 158/628/15 -f 154/652/172 150/653/172 156/654/172 -f 154/652/166 152/655/166 150/653/166 -f 150/653/15 148/656/15 146/657/15 -f 146/657/172 144/658/172 142/659/172 -f 159/60/196 157/191/196 160/61/196 -f 134/643/166 140/209/166 136/211/166 -f 158/628/15 156/654/15 130/651/15 -f 156/654/15 150/653/15 134/643/15 -f 142/659/15 134/643/15 146/657/15 -f 129/340/16 159/9/16 130/212/16 -f 134/643/15 142/659/15 140/209/15 -f 156/654/15 134/643/15 130/651/15 -f 134/643/15 150/653/15 146/657/15 -f 159/660/18 129/661/18 131/213/18 -f 131/213/197 133/662/197 135/663/197 -f 135/663/198 137/664/198 139/665/198 -f 139/665/181 141/666/181 143/214/181 -f 147/632/173 151/215/173 145/178/173 -f 147/632/197 149/667/197 151/215/197 -f 151/215/198 153/640/198 155/639/198 -f 155/639/181 157/668/181 159/660/181 -f 135/663/18 139/665/18 131/213/18 -f 151/215/18 143/214/18 145/178/18 -f 86/669/199 88/422/199 54/424/199 -f 151/215/167 155/639/167 159/660/167 -f 88/670/200 90/420/200 56/12/200 -f 159/660/18 131/213/18 151/215/18 -f 131/213/18 139/665/18 143/214/18 -f 84/671/201 86/425/201 52/427/201 -f 82/672/127 84/428/127 50/430/127 -f 80/673/202 82/431/202 48/433/202 -f 78/674/203 80/434/203 46/436/203 -f 76/675/204 78/437/204 44/439/204 -f 74/676/205 76/440/205 42/442/205 -f 74/446/132 42/443/132 72/445/132 -f 72/445/206 40/442/206 70/446/206 -f 92/677/207 60/196/207 90/448/207 -f 94/678/208 62/449/208 92/451/208 -f 96/679/136 64/452/136 94/454/136 -f 64/48/137 96/455/137 34/424/137 -f 68/680/209 36/457/209 66/459/209 -f 70/681/210 38/460/210 68/462/210 -f 67/117/1 65/463/1 204/104/1 -f 67/108/34 204/465/34 69/466/34 -f 71/134/211 69/105/211 206/110/211 -f 71/682/4 206/468/4 73/469/4 -f 73/474/175 207/114/175 75/471/175 -f 75/466/160 208/107/160 77/103/160 -f 77/133/35 209/473/35 79/474/35 -f 79/109/8 210/475/8 81/118/8 -f 81/115/9 211/476/9 83/116/9 -f 85/683/10 83/477/10 213/127/10 -f 85/471/11 213/470/11 87/479/11 -f 89/477/194 87/479/194 215/478/194 -f 89/684/195 215/480/195 91/481/195 -f 93/109/212 91/118/212 217/135/212 -f 95/116/16 218/124/16 65/128/16 -f 93/683/33 217/127/33 95/483/33 -f 1/523/213 203/484/213 31/486/213 -f 217/509/144 29/487/144 218/489/144 -f 216/685/214 27/490/214 217/492/214 -f 215/686/215 25/493/215 216/495/215 -f 23/508/216 25/496/216 214/498/216 -f 21/687/217 23/499/217 213/501/217 -f 19/688/149 21/502/149 212/504/149 -f 17/689/218 19/505/218 211/507/218 -f 15/496/219 17/508/219 210/489/219 -f 13/690/152 15/510/152 209/512/152 -f 11/27/220 13/57/220 208/514/220 -f 9/525/221 11/515/221 207/517/221 -f 7/691/222 9/518/222 206/520/222 -f 205/692/223 5/521/223 206/522/223 -f 204/693/157 3/523/157 205/524/157 -f 203/694/224 1/515/224 204/526/224 diff --git a/src/main/resources/assets/hbm/models/TheGadget3.obj b/src/main/resources/assets/hbm/models/TheGadget3.obj deleted file mode 100644 index 1b3486829..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget3.obj +++ /dev/null @@ -1,1223 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'TheGadget3.blend1' -# www.blender.org -o Cylinder.003 -v 0.550000 1.500000 -0.850000 -v 0.650000 1.500000 -0.850000 -v 0.550000 1.174719 -0.785298 -v 0.650000 1.174719 -0.785298 -v 0.550001 0.898959 -0.601041 -v 0.650001 0.898959 -0.601041 -v 0.550001 0.714702 -0.325281 -v 0.650001 0.714702 -0.325281 -v 0.550001 0.650000 0.000000 -v 0.650001 0.650000 0.000000 -v 0.550001 0.714702 0.325281 -v 0.650001 0.714702 0.325281 -v 0.550001 0.898959 0.601041 -v 0.650001 0.898959 0.601041 -v 0.550000 1.174719 0.785298 -v 0.650000 1.174719 0.785298 -v 0.550000 1.500000 0.850000 -v 0.650000 1.500000 0.850000 -v 0.550000 1.825281 0.785298 -v 0.650000 1.825281 0.785298 -v 0.549999 2.101041 0.601041 -v 0.649999 2.101041 0.601041 -v 0.549999 2.285297 0.325281 -v 0.649999 2.285298 0.325281 -v 0.549999 2.350000 -0.000000 -v 0.649999 2.350000 -0.000000 -v 0.549999 2.285297 -0.325281 -v 0.649999 2.285298 -0.325281 -v 0.549999 2.101040 -0.601041 -v 0.649999 2.101041 -0.601041 -v 0.550000 1.825280 -0.785298 -v 0.650000 1.825281 -0.785298 -v -0.650000 1.500000 -0.850000 -v -0.550000 1.500000 -0.850000 -v -0.650000 1.174719 -0.785298 -v -0.550000 1.174719 -0.785298 -v -0.649999 0.898959 -0.601041 -v -0.549999 0.898959 -0.601041 -v -0.649999 0.714702 -0.325281 -v -0.549999 0.714702 -0.325281 -v -0.649999 0.650000 0.000000 -v -0.549999 0.650000 0.000000 -v -0.649999 0.714702 0.325281 -v -0.549999 0.714702 0.325281 -v -0.649999 0.898959 0.601041 -v -0.549999 0.898959 0.601041 -v -0.650000 1.174719 0.785298 -v -0.550000 1.174719 0.785298 -v -0.650000 1.500000 0.850000 -v -0.550000 1.500000 0.850000 -v -0.650000 1.825281 0.785298 -v -0.550000 1.825281 0.785298 -v -0.650001 2.101041 0.601041 -v -0.550001 2.101041 0.601041 -v -0.650001 2.285297 0.325281 -v -0.550001 2.285298 0.325281 -v -0.650001 2.350000 -0.000000 -v -0.550001 2.350000 -0.000000 -v -0.650001 2.285297 -0.325281 -v -0.550001 2.285298 -0.325281 -v -0.650001 2.101040 -0.601041 -v -0.550001 2.101041 -0.601041 -v -0.650000 1.825280 -0.785298 -v -0.550000 1.825281 -0.785298 -v -1.500000 1.499999 -0.700000 -v 1.000000 1.500001 -0.700000 -v -1.500000 1.232120 -0.646716 -v 1.000000 1.232123 -0.646716 -v -1.500000 1.005024 -0.494975 -v 1.000000 1.005026 -0.494975 -v -1.499999 0.853283 -0.267878 -v 1.000000 0.853285 -0.267878 -v -1.499999 0.799999 0.000000 -v 1.000000 0.800001 0.000000 -v -1.499999 0.853283 0.267878 -v 1.000000 0.853285 0.267878 -v -1.500000 1.005024 0.494975 -v 1.000000 1.005026 0.494975 -v -1.500000 1.232120 0.646716 -v 1.000000 1.232123 0.646716 -v -1.500000 1.499999 0.700000 -v 1.000000 1.500001 0.700000 -v -1.500000 1.767877 0.646716 -v 1.000000 1.767879 0.646716 -v -1.500000 1.994973 0.494975 -v 0.999999 1.994976 0.494975 -v -1.500001 2.146714 0.267879 -v 0.999999 2.146717 0.267879 -v -1.500001 2.199999 -0.000000 -v 0.999999 2.200001 -0.000000 -v -1.500001 2.146714 -0.267879 -v 0.999999 2.146717 -0.267879 -v -1.500000 1.994973 -0.494975 -v 0.999999 1.994976 -0.494975 -v -1.500000 1.767877 -0.646716 -v 1.000000 1.767879 -0.646716 -v 0.450000 1.500000 -1.000000 -v 0.550000 1.500000 -1.000000 -v 0.450000 1.117316 -0.923880 -v 0.550000 1.117316 -0.923880 -v 0.450001 0.792893 -0.707107 -v 0.550001 0.792893 -0.707107 -v 0.450001 0.576120 -0.382683 -v 0.550001 0.576120 -0.382683 -v 0.450001 0.500000 0.000000 -v 0.550001 0.500000 0.000000 -v 0.450001 0.576120 0.382684 -v 0.550001 0.576120 0.382684 -v 0.450001 0.792893 0.707107 -v 0.550001 0.792893 0.707107 -v 0.450000 1.117316 0.923880 -v 0.550000 1.117316 0.923880 -v 0.450000 1.500000 1.000000 -v 0.550000 1.500000 1.000000 -v 0.450000 1.882683 0.923880 -v 0.550000 1.882683 0.923880 -v 0.449999 2.207107 0.707107 -v 0.549999 2.207107 0.707107 -v 0.449999 2.423879 0.382684 -v 0.549999 2.423880 0.382684 -v 0.449999 2.500000 -0.000000 -v 0.549999 2.500000 -0.000000 -v 0.449999 2.423879 -0.382684 -v 0.549999 2.423879 -0.382684 -v 0.449999 2.207106 -0.707107 -v 0.549999 2.207107 -0.707107 -v 0.450000 1.882683 -0.923880 -v 0.550000 1.882683 -0.923880 -v -0.550000 1.500000 -1.000000 -v -0.450000 1.500000 -1.000000 -v -0.550000 1.117316 -0.923880 -v -0.450000 1.117317 -0.923880 -v -0.549999 0.792893 -0.707107 -v -0.449999 0.792893 -0.707107 -v -0.549999 0.576120 -0.382683 -v -0.449999 0.576120 -0.382683 -v -0.549999 0.500000 0.000000 -v -0.449999 0.500000 0.000000 -v -0.549999 0.576120 0.382684 -v -0.449999 0.576120 0.382684 -v -0.549999 0.792893 0.707107 -v -0.449999 0.792893 0.707107 -v -0.550000 1.117316 0.923880 -v -0.450000 1.117316 0.923880 -v -0.550000 1.500000 1.000000 -v -0.450000 1.500000 1.000000 -v -0.550000 1.882683 0.923880 -v -0.450000 1.882683 0.923880 -v -0.550001 2.207107 0.707107 -v -0.450001 2.207107 0.707107 -v -0.550001 2.423879 0.382684 -v -0.450001 2.423880 0.382684 -v -0.550001 2.500000 -0.000000 -v -0.450001 2.500000 -0.000000 -v -0.550001 2.423879 -0.382684 -v -0.450001 2.423879 -0.382684 -v -0.550001 2.207107 -0.707107 -v -0.450001 2.207107 -0.707107 -v -0.550000 1.882683 -0.923880 -v -0.450000 1.882683 -0.923880 -v -0.550000 -0.000000 -0.750000 -v -0.550000 -0.000000 -1.000000 -v -0.450000 -0.000000 -1.000000 -v -0.450000 -0.000000 -0.750000 -v -0.550000 -0.000000 1.000000 -v -0.550000 -0.000000 0.750000 -v -0.450000 -0.000000 0.750000 -v -0.450000 -0.000000 1.000000 -v 0.450000 0.000000 -0.750000 -v 0.450000 0.000000 -1.000000 -v 0.550000 0.000000 -1.000000 -v 0.550000 0.000000 -0.750000 -v 0.450000 -0.000000 1.000000 -v 0.450000 -0.000000 0.750000 -v 0.550000 -0.000000 0.750000 -v 0.550000 -0.000000 1.000000 -v -1.125000 1.499999 -0.700000 -v -1.125000 1.232121 -0.646716 -v -1.125000 1.005024 -0.494975 -v -1.124999 0.853284 -0.267878 -v -1.124999 0.799999 0.000000 -v -1.124999 0.853284 0.267878 -v -1.125000 1.005024 0.494975 -v -1.125000 1.232121 0.646716 -v -1.125000 1.499999 0.700000 -v -1.125000 1.767877 0.646716 -v -1.125000 1.994974 0.494975 -v -1.125001 2.146715 0.267879 -v -1.125001 2.199999 -0.000000 -v -1.125001 2.146715 -0.267879 -v -1.125000 1.994974 -0.494975 -v -1.125000 1.767877 -0.646716 -v 0.707106 2.207107 0.000000 -v 0.382683 2.423880 0.000000 -v -0.000001 2.500000 0.000000 -v -0.382684 2.423880 0.000000 -v -0.707107 2.207107 0.000000 -v 0.707106 2.000000 -0.500000 -v 0.382683 2.153281 -0.653281 -v -0.000001 2.207107 -0.707107 -v -0.382684 2.153281 -0.653281 -v -0.707107 2.000000 -0.500000 -v 0.707106 1.500000 -0.707107 -v 0.382683 1.500000 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.382684 1.500000 -0.923879 -v -0.707107 1.500000 -0.707107 -v 0.707106 1.000000 -0.500000 -v 0.382683 0.846719 -0.653281 -v -0.000000 0.792893 -0.707107 -v -0.382684 0.846719 -0.653281 -v -0.707107 1.000000 -0.500000 -v 0.707106 0.792894 -0.000000 -v 0.382683 0.576121 -0.000000 -v -0.000000 0.500001 -0.000000 -v -0.382684 0.576121 -0.000000 -v -0.707107 0.792894 -0.000000 -v 0.707106 1.000000 0.500000 -v 0.382683 0.846719 0.653281 -v -0.000000 0.792893 0.707107 -v -0.382684 0.846719 0.653281 -v -0.707107 1.000000 0.500000 -v 0.707106 1.500000 0.707107 -v 0.382683 1.500000 0.923879 -v -0.000000 1.500000 1.000000 -v -0.382684 1.500000 0.923879 -v -0.707107 1.500000 0.707107 -v 0.707106 2.000000 0.500000 -v 0.382683 2.153281 0.653281 -v -0.000001 2.207107 0.707107 -v -0.382684 2.153281 0.653281 -v -0.707107 2.000000 0.500000 -vt 0.167969 0.666472 -vt 0.167969 0.678076 -vt 0.129484 0.678076 -vt 0.090999 0.678076 -vt 0.090999 0.666472 -vt 0.052513 0.678076 -vt 0.052513 0.666472 -vt 0.014028 0.678076 -vt 0.014028 0.666472 -vt 0.629794 0.666472 -vt 0.629794 0.678076 -vt 0.591308 0.678076 -vt 0.552823 0.678076 -vt 0.552823 0.666472 -vt 0.514338 0.678076 -vt 0.475852 0.678076 -vt 0.475852 0.666472 -vt 0.437367 0.678076 -vt 0.437367 0.666472 -vt 0.398881 0.678076 -vt 0.360396 0.678076 -vt 0.360396 0.666472 -vt 0.321910 0.678076 -vt 0.321910 0.666472 -vt 0.283425 0.678076 -vt 0.283425 0.666472 -vt 0.244940 0.678076 -vt 0.206454 0.666472 -vt 0.206454 0.678076 -vt 0.244940 0.666472 -vt 0.167969 0.126901 -vt 0.129483 0.126888 -vt 0.129487 0.115284 -vt 0.090998 0.126875 -vt 0.091002 0.115271 -vt 0.052513 0.126861 -vt 0.052517 0.115257 -vt 0.014028 0.126848 -vt 0.629793 0.127059 -vt 0.591308 0.127046 -vt 0.591312 0.115442 -vt 0.552822 0.127033 -vt 0.552826 0.115429 -vt 0.514337 0.127020 -vt 0.514341 0.115416 -vt 0.475851 0.127007 -vt 0.475855 0.115403 -vt 0.437366 0.126994 -vt 0.437370 0.115389 -vt 0.398881 0.126980 -vt 0.398885 0.115376 -vt 0.360395 0.126967 -vt 0.321910 0.126954 -vt 0.321914 0.115350 -vt 0.283425 0.126941 -vt 0.283429 0.115337 -vt 0.244939 0.126927 -vt 0.206458 0.115310 -vt 0.206454 0.126914 -vt 0.244943 0.115323 -vt 0.589205 0.570129 -vt 0.537513 0.535589 -vt 0.559924 0.422922 -vt 0.421520 0.957030 -vt 0.466797 0.957030 -vt 0.466797 0.968634 -vt 0.897932 0.155115 -vt 0.943209 0.155115 -vt 0.943209 0.166719 -vt 0.871616 0.373560 -vt 0.826340 0.373560 -vt 0.826340 0.361956 -vt 0.781063 0.373560 -vt 0.781063 0.361956 -vt 0.455191 0.880859 -vt 0.409914 0.880859 -vt 0.409914 0.869255 -vt 0.364637 0.880859 -vt 0.364637 0.869255 -vt 0.943209 0.206379 -vt 0.897932 0.206379 -vt 0.897932 0.194775 -vt 0.014028 0.957029 -vt 0.059305 0.957029 -vt 0.059305 0.968633 -vt 0.104582 0.957029 -vt 0.104582 0.968633 -vt 0.149858 0.957029 -vt 0.195135 0.957029 -vt 0.195135 0.968633 -vt 0.240412 0.957029 -vt 0.240412 0.968633 -vt 0.285689 0.957029 -vt 0.285689 0.968633 -vt 0.330966 0.957029 -vt 0.105201 0.410793 -vt 0.241650 0.501966 -vt 0.014028 0.547243 -vt 0.376243 0.957029 -vt 0.421520 0.968634 -vt 0.330966 0.968634 -vt 0.574727 0.365411 -vt 0.525385 0.291565 -vt 0.616557 0.155115 -vt 0.772129 0.917369 -vt 0.817406 0.917369 -vt 0.817406 0.928973 -vt 0.601856 0.880859 -vt 0.601856 0.869255 -vt 0.647133 0.869255 -vt 0.573800 0.880859 -vt 0.528523 0.880859 -vt 0.528523 0.869255 -vt 0.483246 0.880859 -vt 0.483246 0.869255 -vt 0.961341 0.836081 -vt 0.916064 0.836081 -vt 0.916064 0.824477 -vt 0.870787 0.836081 -vt 0.870787 0.824477 -vt 0.916064 0.864137 -vt 0.916064 0.875741 -vt 0.870787 0.875741 -vt 0.364637 0.928973 -vt 0.364637 0.917369 -vt 0.409914 0.917369 -vt 0.455191 0.917369 -vt 0.455191 0.928973 -vt 0.500467 0.917369 -vt 0.500467 0.928973 -vt 0.545744 0.917369 -vt 0.545744 0.928973 -vt 0.591021 0.917369 -vt 0.591021 0.928973 -vt 0.636298 0.917369 -vt 0.636298 0.928973 -vt 0.681575 0.917369 -vt 0.681575 0.928973 -vt 0.105201 0.155115 -vt 0.241650 0.246288 -vt 0.014028 0.291565 -vt 0.726852 0.917369 -vt 0.772129 0.928973 -vt 0.360879 0.382738 -vt 0.269706 0.246288 -vt 0.406156 0.155115 -vt 0.350122 0.445333 -vt 0.462789 0.422922 -vt 0.485200 0.535589 -vt 0.787808 0.042971 -vt 0.657853 0.042971 -vt 0.693703 0.015316 -vt 0.787808 0.071027 -vt 0.785836 0.099970 -vt 0.693703 0.098682 -vt 0.975417 0.946312 -vt 0.845462 0.946312 -vt 0.881311 0.918657 -vt 0.364637 0.841199 -vt 0.364637 0.829595 -vt 0.494592 0.829595 -vt 0.624808 0.985972 -vt 0.494853 0.985972 -vt 0.530702 0.958317 -vt 0.399665 0.626770 -vt 0.399661 0.638374 -vt 0.269706 0.638329 -vt 0.842731 0.824477 -vt 0.840759 0.853420 -vt 0.748626 0.852132 -vt 0.520818 0.626812 -vt 0.520814 0.638416 -vt 0.428672 0.638384 -vt 0.523602 0.829595 -vt 0.615745 0.829595 -vt 0.615745 0.841199 -vt 0.678829 0.638416 -vt 0.548874 0.638416 -vt 0.584723 0.610761 -vt 0.945819 0.014028 -vt 0.943847 0.042971 -vt 0.851714 0.041683 -vt 0.945819 0.071027 -vt 0.943847 0.099970 -vt 0.851714 0.098682 -vt 0.523602 0.841199 -vt 0.494592 0.841199 -vt 0.523603 0.789935 -vt 0.615745 0.789935 -vt 0.615745 0.801539 -vt 0.364637 0.801539 -vt 0.364637 0.789935 -vt 0.494592 0.789935 -vt 0.494596 0.750233 -vt 0.494592 0.761837 -vt 0.364637 0.761792 -vt 0.615749 0.750275 -vt 0.615745 0.761879 -vt 0.523602 0.761847 -vt 0.428676 0.626780 -vt 0.523606 0.750243 -vt 0.523603 0.801539 -vt 0.494592 0.801539 -vt 0.164597 0.057593 -vt 0.132903 0.057583 -vt 0.132918 0.014067 -vt 0.126111 0.057580 -vt 0.094418 0.057569 -vt 0.094433 0.014054 -vt 0.087626 0.057567 -vt 0.055933 0.057556 -vt 0.055947 0.014041 -vt 0.049141 0.057554 -vt 0.017447 0.057543 -vt 0.017462 0.014028 -vt 0.626436 0.014236 -vt 0.626421 0.057751 -vt 0.594727 0.057740 -vt 0.587936 0.057738 -vt 0.556242 0.057727 -vt 0.556257 0.014212 -vt 0.549450 0.057725 -vt 0.517756 0.057714 -vt 0.517771 0.014199 -vt 0.510965 0.057712 -vt 0.479271 0.057701 -vt 0.479286 0.014186 -vt 0.472494 0.014183 -vt 0.472479 0.057699 -vt 0.440786 0.057688 -vt 0.434009 0.014170 -vt 0.433994 0.057686 -vt 0.402300 0.057675 -vt 0.395524 0.014157 -vt 0.395509 0.057672 -vt 0.363815 0.057662 -vt 0.357023 0.057659 -vt 0.325329 0.057648 -vt 0.325344 0.014133 -vt 0.318538 0.057646 -vt 0.286844 0.057635 -vt 0.286859 0.014120 -vt 0.280053 0.057633 -vt 0.248359 0.057622 -vt 0.248374 0.014107 -vt 0.203082 0.057607 -vt 0.171388 0.057596 -vt 0.171403 0.014081 -vt 0.241567 0.057620 -vt 0.209873 0.057609 -vt 0.209888 0.014094 -vt 0.360399 0.115363 -vt 0.014032 0.115244 -vt 0.167973 0.115297 -vt 0.357000 0.722132 -vt 0.286821 0.722132 -vt 0.248335 0.722132 -vt 0.209850 0.722132 -vt 0.171365 0.722132 -vt 0.132880 0.722132 -vt 0.094394 0.722132 -vt 0.055909 0.722132 -vt 0.017424 0.722132 -vt 0.626398 0.722133 -vt 0.587913 0.722133 -vt 0.549427 0.722132 -vt 0.510942 0.722132 -vt 0.472456 0.722132 -vt 0.433971 0.722132 -vt 0.395485 0.722132 -vt 0.336581 0.839581 -vt 0.247767 0.839581 -vt 0.251147 0.794430 -vt 0.323575 0.928973 -vt 0.260774 0.928973 -vt 0.251147 0.884731 -vt 0.333201 0.794430 -vt 0.260774 0.750188 -vt 0.333201 0.884731 -vt 0.918460 0.707029 -vt 0.829646 0.707029 -vt 0.833026 0.661878 -vt 0.905453 0.796421 -vt 0.842652 0.796421 -vt 0.833026 0.752179 -vt 0.915079 0.661878 -vt 0.842652 0.617636 -vt 0.915079 0.752179 -vt 0.089835 0.750188 -vt 0.099461 0.794430 -vt 0.017408 0.794430 -vt 0.099461 0.884731 -vt 0.017408 0.884731 -vt 0.014028 0.839581 -vt 0.102842 0.839581 -vt 0.089835 0.928973 -vt 0.027034 0.928973 -vt 0.798208 0.545339 -vt 0.716155 0.545336 -vt 0.712776 0.500185 -vt 0.801590 0.500188 -vt 0.716158 0.455035 -vt 0.788580 0.589580 -vt 0.725779 0.589578 -vt 0.788587 0.410796 -vt 0.798211 0.455038 -vt 0.801590 0.707029 -vt 0.712776 0.707029 -vt 0.716156 0.661878 -vt 0.788583 0.796421 -vt 0.725782 0.796421 -vt 0.716156 0.752179 -vt 0.788584 0.617636 -vt 0.798210 0.661878 -vt 0.798209 0.752179 -vt 0.905453 0.589578 -vt 0.842652 0.589578 -vt 0.833026 0.545336 -vt 0.915079 0.455035 -vt 0.833026 0.455035 -vt 0.842652 0.410793 -vt 0.918460 0.500186 -vt 0.915079 0.545336 -vt 0.829646 0.500186 -vt 0.866496 0.199357 -vt 0.784443 0.199357 -vt 0.794069 0.155115 -vt 0.869877 0.244508 -vt 0.866496 0.289658 -vt 0.784443 0.289658 -vt 0.781063 0.244507 -vt 0.856870 0.333900 -vt 0.794069 0.333900 -vt 0.216331 0.794430 -vt 0.219711 0.839581 -vt 0.130898 0.839581 -vt 0.206705 0.928973 -vt 0.143904 0.928973 -vt 0.134278 0.884731 -vt 0.134278 0.794430 -vt 0.143904 0.750188 -vt 0.216331 0.884731 -vt 0.129484 0.666472 -vt 0.591308 0.666472 -vt 0.514338 0.666472 -vt 0.398881 0.666472 -vt 0.629797 0.115455 -vt 0.589206 0.410793 -vt 0.620899 0.410793 -vt 0.650181 0.422922 -vt 0.672592 0.445333 -vt 0.684720 0.474614 -vt 0.684720 0.506308 -vt 0.672591 0.535590 -vt 0.650180 0.558000 -vt 0.620899 0.570129 -vt 0.559924 0.558000 -vt 0.525385 0.506308 -vt 0.525385 0.474614 -vt 0.537513 0.445333 -vt 0.897932 0.166719 -vt 0.871616 0.361956 -vt 0.455191 0.869255 -vt 0.943209 0.194775 -vt 0.014028 0.968633 -vt 0.149858 0.968633 -vt 0.150478 0.638416 -vt 0.105201 0.638416 -vt 0.063370 0.621089 -vt 0.031355 0.589073 -vt 0.014028 0.501966 -vt 0.031355 0.460136 -vt 0.063370 0.428120 -vt 0.150478 0.410793 -vt 0.192308 0.428120 -vt 0.224324 0.460136 -vt 0.241650 0.547243 -vt 0.224324 0.589074 -vt 0.192308 0.621089 -vt 0.376243 0.968634 -vt 0.661834 0.155115 -vt 0.703665 0.172442 -vt 0.735680 0.204457 -vt 0.753007 0.246288 -vt 0.753007 0.291565 -vt 0.735680 0.333395 -vt 0.703665 0.365411 -vt 0.661834 0.382738 -vt 0.616557 0.382738 -vt 0.542711 0.333395 -vt 0.525385 0.246288 -vt 0.542711 0.204457 -vt 0.574727 0.172442 -vt 0.647133 0.880859 -vt 0.573800 0.869255 -vt 0.961341 0.824477 -vt 0.870787 0.864137 -vt 0.409914 0.928973 -vt 0.150478 0.382738 -vt 0.105201 0.382738 -vt 0.063370 0.365411 -vt 0.031355 0.333395 -vt 0.014028 0.246288 -vt 0.031355 0.204458 -vt 0.063370 0.172442 -vt 0.150478 0.155115 -vt 0.192308 0.172442 -vt 0.224324 0.204457 -vt 0.241650 0.291565 -vt 0.224324 0.333395 -vt 0.192308 0.365411 -vt 0.726852 0.928973 -vt 0.447986 0.172442 -vt 0.480002 0.204457 -vt 0.497329 0.246288 -vt 0.497329 0.291565 -vt 0.480002 0.333395 -vt 0.447986 0.365411 -vt 0.406156 0.382738 -vt 0.319049 0.365411 -vt 0.287033 0.333395 -vt 0.269706 0.291565 -vt 0.287033 0.204458 -vt 0.319049 0.172442 -vt 0.360879 0.155115 -vt 0.462789 0.558000 -vt 0.433508 0.570129 -vt 0.401814 0.570129 -vt 0.372533 0.558000 -vt 0.350122 0.535589 -vt 0.337993 0.506308 -vt 0.337993 0.474614 -vt 0.372533 0.422922 -vt 0.401814 0.410793 -vt 0.433508 0.410793 -vt 0.485200 0.445333 -vt 0.497329 0.474614 -vt 0.497329 0.506308 -vt 0.785836 0.014028 -vt 0.657853 0.071027 -vt 0.973445 0.917369 -vt 0.622836 0.957029 -vt 0.269710 0.626725 -vt 0.712776 0.824477 -vt 0.676857 0.609473 -vt 0.815864 0.014028 -vt 0.815864 0.071027 -vt 0.364641 0.750188 -vt 0.164612 0.014078 -vt 0.126126 0.014065 -vt 0.087641 0.014052 -vt 0.049156 0.014039 -vt 0.594742 0.014225 -vt 0.587951 0.014223 -vt 0.549465 0.014210 -vt 0.510980 0.014196 -vt 0.440801 0.014172 -vt 0.402315 0.014159 -vt 0.363830 0.014146 -vt 0.357038 0.014144 -vt 0.318553 0.014131 -vt 0.280067 0.014118 -vt 0.203097 0.014091 -vt 0.241582 0.014104 -vt 0.325306 0.722132 -vt 0.318515 0.722132 -vt 0.280029 0.722132 -vt 0.241544 0.722132 -vt 0.203059 0.722132 -vt 0.164573 0.722132 -vt 0.126088 0.722132 -vt 0.087603 0.722132 -vt 0.049117 0.722132 -vt 0.594704 0.722133 -vt 0.556219 0.722133 -vt 0.517733 0.722132 -vt 0.479248 0.722132 -vt 0.440762 0.722132 -vt 0.402277 0.722132 -vt 0.363792 0.722132 -vt 0.323575 0.750188 -vt 0.905453 0.617636 -vt 0.027034 0.750188 -vt 0.725786 0.410793 -vt 0.725783 0.617636 -vt 0.905453 0.410793 -vt 0.856870 0.155115 -vt 0.206705 0.750188 -vn 0.000000 -0.195100 -0.980800 -vn -0.000000 -0.555600 -0.831500 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.195100 0.980800 -vn -0.000000 0.195100 0.980800 -vn 0.000000 0.555600 0.831500 -vn -0.000000 0.831500 0.555600 -vn 0.000000 0.980800 0.195100 -vn 0.000000 0.980800 -0.195100 -vn -0.000000 0.831500 -0.555600 -vn 0.000000 0.195100 -0.980800 -vn -0.000000 0.555600 -0.831500 -vn -1.000000 -0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.068000 -0.997700 -vn 0.000000 0.068000 0.997700 -vn 0.000000 -0.054000 -0.998500 -vn 0.000000 -0.054000 0.998500 -vn 0.000000 -1.000000 0.000000 -vn -0.295900 0.794200 -0.530700 -vn -0.295900 0.936900 -0.186400 -vn -0.295900 0.936900 0.186400 -vn -0.295900 0.794200 0.530700 -vn -0.295900 0.530700 0.794200 -vn -0.295900 0.186400 0.936900 -vn -0.295900 -0.186400 0.936900 -vn -0.295900 -0.530700 0.794200 -vn -0.295900 -0.794200 0.530700 -vn -0.295900 -0.936900 0.186400 -vn -0.295900 -0.936900 -0.186400 -vn -0.295900 -0.794200 -0.530700 -vn -0.295900 -0.530700 -0.794200 -vn -0.295900 -0.186400 -0.936900 -vn -0.295900 0.186400 -0.936900 -vn -0.295900 0.530700 -0.794200 -vn 0.387500 0.904200 0.179800 -vn 0.387500 0.904200 -0.179800 -vn 0.387500 0.766500 -0.512200 -vn 0.387500 0.512200 -0.766500 -vn 0.387500 0.179800 -0.904200 -vn 0.387500 -0.179800 -0.904200 -vn 0.387500 -0.512200 -0.766500 -vn 0.387500 -0.766500 -0.512200 -vn 0.387500 -0.904200 -0.179800 -vn 0.387500 -0.904200 0.179800 -vn 0.387500 -0.766500 0.512200 -vn 0.387500 -0.512200 0.766500 -vn 0.387500 -0.179800 0.904200 -vn 0.387500 0.179800 0.904200 -vn 0.387500 0.512200 0.766500 -vn 0.387500 0.766500 0.512200 -vn -0.180700 0.908700 -0.376400 -vn 0.525300 0.786200 -0.325600 -vn -0.525300 0.786200 -0.325600 -vn 0.180700 0.908700 -0.376400 -vn -0.180700 0.376400 -0.908700 -vn 0.525300 0.325600 -0.786200 -vn -0.525300 0.325600 -0.786200 -vn 0.180700 0.376400 -0.908700 -vn -0.525300 -0.325600 -0.786200 -vn 0.180700 -0.376400 -0.908700 -vn -0.180700 -0.376400 -0.908700 -vn 0.525300 -0.325600 -0.786200 -vn 0.180700 -0.908700 -0.376400 -vn -0.180700 -0.908700 -0.376400 -vn 0.525300 -0.786200 -0.325600 -vn -0.525300 -0.786200 -0.325600 -vn -0.180700 -0.908700 0.376400 -vn 0.525300 -0.786200 0.325600 -vn -0.525300 -0.786200 0.325600 -vn 0.180700 -0.908700 0.376400 -vn 0.525300 -0.325600 0.786200 -vn -0.525300 -0.325600 0.786200 -vn 0.180700 -0.376400 0.908700 -vn -0.180700 -0.376400 0.908700 -vn -0.525300 0.325600 0.786200 -vn 0.180700 0.376400 0.908700 -vn -0.180700 0.376400 0.908700 -vn 0.525300 0.325600 0.786200 -vn -0.180700 0.908700 0.376400 -vn 0.525300 0.786200 0.325600 -vn -0.525300 0.786200 0.325600 -vn 0.180700 0.908700 0.376400 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/3/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 9/10/5 10/11/5 12/12/5 -f 12/12/6 14/13/6 13/14/6 -f 13/14/7 14/13/7 16/15/7 -f 16/15/8 18/16/8 17/17/8 -f 18/16/9 20/18/9 19/19/9 -f 19/19/10 20/18/10 22/20/10 -f 22/20/11 24/21/11 23/22/11 -f 24/21/12 26/23/12 25/24/12 -f 25/24/13 26/23/13 28/25/13 -f 27/26/14 28/25/14 30/27/14 -f 31/28/15 32/29/15 2/2/15 -f 29/30/16 30/27/16 32/29/16 -f 34/31/1 36/32/1 35/33/1 -f 36/32/2 38/34/2 37/35/2 -f 37/35/3 38/34/3 40/36/3 -f 39/37/4 40/36/4 42/38/4 -f 42/39/5 44/40/5 43/41/5 -f 44/40/6 46/42/6 45/43/6 -f 46/42/7 48/44/7 47/45/7 -f 48/44/8 50/46/8 49/47/8 -f 50/46/9 52/48/9 51/49/9 -f 51/49/10 52/48/10 54/50/10 -f 53/51/11 54/50/11 56/52/11 -f 56/52/12 58/53/12 57/54/12 -f 57/54/13 58/53/13 60/55/13 -f 59/56/14 60/55/14 62/57/14 -f 63/58/15 64/59/15 34/31/15 -f 61/60/16 62/57/16 64/59/16 -f 83/61/17 87/62/17 95/63/17 -f 98/64/1 100/65/1 99/66/1 -f 100/67/2 102/68/2 101/69/2 -f 102/70/3 104/71/3 103/72/3 -f 104/71/4 106/73/4 105/74/4 -f 106/75/5 108/76/5 107/77/5 -f 108/76/6 110/78/6 109/79/6 -f 110/80/7 112/81/7 111/82/7 -f 112/83/8 114/84/8 113/85/8 -f 114/84/9 116/86/9 115/87/9 -f 115/87/10 116/86/10 118/88/10 -f 118/88/11 120/89/11 119/90/11 -f 120/89/12 122/91/12 121/92/12 -f 122/91/13 124/93/13 123/94/13 -f 123/94/14 124/93/14 126/95/14 -f 118/96/18 110/97/18 126/98/18 -f 128/99/15 98/64/15 97/100/15 -f 125/101/16 126/95/16 128/99/16 -f 115/102/17 119/103/17 127/104/17 -f 130/105/1 132/106/1 131/107/1 -f 131/108/2 132/109/2 134/110/2 -f 134/111/3 136/112/3 135/113/3 -f 136/112/4 138/114/4 137/115/4 -f 138/116/5 140/117/5 139/118/5 -f 140/117/6 142/119/6 141/120/6 -f 141/121/7 142/122/7 144/123/7 -f 143/124/8 144/125/8 146/126/8 -f 146/126/9 148/127/9 147/128/9 -f 148/127/10 150/129/10 149/130/10 -f 150/129/11 152/131/11 151/132/11 -f 152/131/12 154/133/12 153/134/12 -f 154/133/13 156/135/13 155/136/13 -f 156/135/14 158/137/14 157/138/14 -f 150/139/18 142/140/18 158/141/18 -f 160/142/15 130/105/15 129/143/15 -f 157/138/16 158/137/16 160/142/16 -f 143/144/17 151/145/17 159/146/17 -f 86/147/18 78/148/18 70/149/18 -f 163/150/18 132/151/18 134/152/18 -f 168/153/18 167/154/18 142/155/18 -f 173/156/17 111/157/17 109/158/17 -f 131/159/19 132/160/19 163/161/19 -f 165/162/17 143/163/17 141/164/17 -f 165/165/20 168/166/20 144/167/20 -f 162/168/17 161/169/17 133/170/17 -f 141/171/21 142/172/21 167/173/21 -f 164/174/22 134/175/22 133/176/22 -f 171/177/18 100/178/18 102/179/18 -f 176/180/18 175/181/18 110/182/18 -f 170/183/17 169/184/17 101/185/17 -f 164/174/23 161/186/23 162/187/23 -f 172/188/22 102/189/22 101/190/22 -f 99/191/19 100/192/19 171/193/19 -f 173/194/20 176/195/20 112/196/20 -f 109/197/21 110/198/21 175/199/21 -f 168/166/23 165/165/23 166/200/23 -f 176/195/23 173/194/23 174/201/23 -f 172/188/23 169/202/23 170/203/23 -f 177/204/1 178/205/1 67/206/1 -f 178/207/2 179/208/2 69/209/2 -f 179/210/3 180/211/3 71/212/3 -f 180/213/4 181/214/4 73/215/4 -f 73/216/5 181/217/5 182/218/5 -f 182/219/6 183/220/6 77/221/6 -f 183/222/7 184/223/7 79/224/7 -f 184/225/8 185/226/8 81/227/8 -f 81/228/9 185/229/9 186/230/9 -f 83/231/10 186/232/10 187/233/10 -f 85/234/11 187/235/11 188/236/11 -f 188/237/12 189/238/12 89/239/12 -f 189/240/13 190/241/13 91/242/13 -f 190/243/14 191/244/14 93/245/14 -f 192/246/15 177/247/15 65/248/15 -f 191/249/16 192/250/16 95/251/16 -f 190/243/24 59/56/24 61/60/24 -f 59/56/25 190/241/25 189/240/25 -f 57/54/26 189/238/26 188/237/26 -f 53/51/27 55/252/27 188/236/27 -f 51/49/28 53/51/28 187/233/28 -f 49/47/29 51/49/29 186/230/29 -f 47/45/30 49/47/30 185/226/30 -f 45/43/31 47/45/31 184/223/31 -f 43/41/32 45/43/32 183/220/32 -f 43/41/33 182/218/33 181/217/33 -f 39/37/34 41/253/34 181/214/34 -f 39/37/35 180/211/35 179/210/35 -f 37/35/36 179/208/36 178/207/36 -f 35/33/37 178/205/37 177/204/37 -f 33/254/38 177/247/38 192/246/38 -f 63/58/39 192/250/39 191/249/39 -f 26/23/40 24/21/40 88/255/40 -f 92/256/41 28/25/41 26/23/41 -f 94/257/42 30/27/42 28/25/42 -f 96/258/43 32/29/43 30/27/43 -f 66/259/44 2/2/44 32/29/44 -f 68/260/45 4/3/45 2/2/45 -f 70/261/46 6/4/46 4/3/46 -f 72/262/47 8/6/47 6/4/47 -f 74/263/48 10/8/48 8/6/48 -f 12/12/49 10/11/49 74/264/49 -f 14/13/50 12/12/50 76/265/50 -f 16/15/51 14/13/51 78/266/51 -f 18/16/52 16/15/52 80/267/52 -f 20/18/53 18/16/53 82/268/53 -f 22/20/54 20/18/54 84/269/54 -f 24/21/55 22/20/55 86/270/55 -f 195/271/56 200/272/56 201/273/56 -f 193/274/57 198/275/57 199/276/57 -f 196/277/58 201/273/58 202/278/58 -f 194/279/59 199/276/59 200/272/59 -f 200/280/60 205/281/60 206/282/60 -f 198/283/61 203/284/61 204/285/61 -f 201/286/62 206/282/62 207/287/62 -f 199/288/63 204/285/63 205/281/63 -f 207/289/64 206/290/64 211/291/64 -f 204/292/65 209/293/65 210/294/65 -f 205/295/66 210/294/66 211/291/66 -f 204/292/67 203/296/67 208/297/67 -f 209/298/68 214/299/68 215/300/68 -f 210/301/69 215/300/69 216/302/69 -f 209/298/70 208/303/70 213/304/70 -f 212/305/71 211/306/71 216/302/71 -f 215/307/72 220/308/72 221/309/72 -f 213/310/73 218/311/73 219/312/73 -f 217/313/74 216/314/74 221/309/74 -f 215/307/75 214/315/75 219/312/75 -f 218/316/76 223/317/76 224/318/76 -f 221/319/77 226/320/77 227/321/77 -f 220/322/78 219/323/78 224/318/78 -f 220/322/79 225/324/79 226/320/79 -f 226/325/80 231/326/80 232/327/80 -f 225/328/81 224/329/81 229/330/81 -f 226/325/82 225/328/82 230/331/82 -f 223/332/83 228/333/83 229/330/83 -f 231/334/84 230/335/84 195/336/84 -f 228/337/85 193/338/85 194/339/85 -f 231/334/86 196/340/86 197/341/86 -f 229/342/87 194/339/87 195/336/87 -f 3/343/1 1/1/1 4/3/1 -f 3/343/2 4/3/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 11/344/5 9/10/5 12/12/5 -f 11/344/6 12/12/6 13/14/6 -f 15/345/7 13/14/7 16/15/7 -f 15/345/8 16/15/8 17/17/8 -f 17/17/9 18/16/9 19/19/9 -f 21/346/10 19/19/10 22/20/10 -f 21/346/11 22/20/11 23/22/11 -f 23/22/12 24/21/12 25/24/12 -f 27/26/13 25/24/13 28/25/13 -f 29/30/14 27/26/14 30/27/14 -f 1/1/15 31/28/15 2/2/15 -f 31/28/16 29/30/16 32/29/16 -f 33/254/1 34/31/1 35/33/1 -f 35/33/2 36/32/2 37/35/2 -f 39/37/3 37/35/3 40/36/3 -f 41/253/4 39/37/4 42/38/4 -f 41/347/5 42/39/5 43/41/5 -f 43/41/6 44/40/6 45/43/6 -f 45/43/7 46/42/7 47/45/7 -f 47/45/8 48/44/8 49/47/8 -f 49/47/9 50/46/9 51/49/9 -f 53/51/10 51/49/10 54/50/10 -f 55/252/11 53/51/11 56/52/11 -f 55/252/12 56/52/12 57/54/12 -f 59/56/13 57/54/13 60/55/13 -f 61/60/14 59/56/14 62/57/14 -f 33/254/15 63/58/15 34/31/15 -f 63/58/16 61/60/16 64/59/16 -f 95/63/17 65/348/17 67/349/17 -f 67/349/17 69/350/17 71/351/17 -f 71/351/17 73/352/17 75/353/17 -f 75/353/17 77/354/17 71/351/17 -f 79/355/17 81/356/17 83/61/17 -f 83/61/17 85/357/17 87/62/17 -f 87/62/17 89/358/17 91/359/17 -f 91/359/17 93/360/17 87/62/17 -f 95/63/17 67/349/17 79/355/17 -f 71/351/17 77/354/17 79/355/17 -f 79/355/17 83/61/17 95/63/17 -f 87/62/17 93/360/17 95/63/17 -f 67/349/17 71/351/17 79/355/17 -f 97/100/1 98/64/1 99/66/1 -f 99/361/2 100/67/2 101/69/2 -f 101/362/3 102/70/3 103/72/3 -f 103/72/4 104/71/4 105/74/4 -f 105/363/5 106/75/5 107/77/5 -f 107/77/6 108/76/6 109/79/6 -f 109/364/7 110/80/7 111/82/7 -f 111/365/8 112/83/8 113/85/8 -f 113/85/9 114/84/9 115/87/9 -f 117/366/10 115/87/10 118/88/10 -f 117/366/11 118/88/11 119/90/11 -f 119/90/12 120/89/12 121/92/12 -f 121/92/13 122/91/13 123/94/13 -f 125/101/14 123/94/14 126/95/14 -f 102/367/18 100/368/18 98/369/18 -f 98/369/18 128/370/18 126/98/18 -f 126/98/18 124/371/18 118/96/18 -f 122/372/18 120/373/18 118/96/18 -f 118/96/18 116/374/18 110/97/18 -f 114/375/18 112/376/18 110/97/18 -f 110/97/18 108/377/18 106/378/18 -f 106/378/18 104/379/18 110/97/18 -f 102/367/18 98/369/18 126/98/18 -f 124/371/18 122/372/18 118/96/18 -f 116/374/18 114/375/18 110/97/18 -f 110/97/18 104/379/18 102/367/18 -f 102/367/18 126/98/18 110/97/18 -f 127/380/15 128/99/15 97/100/15 -f 127/380/16 125/101/16 128/99/16 -f 127/104/17 97/381/17 99/382/17 -f 99/382/17 101/383/17 103/384/17 -f 103/384/17 105/385/17 107/386/17 -f 107/386/17 109/387/17 111/388/17 -f 111/388/17 113/389/17 115/102/17 -f 115/102/17 117/390/17 119/103/17 -f 119/103/17 121/391/17 123/392/17 -f 123/392/17 125/393/17 127/104/17 -f 127/104/17 99/382/17 103/384/17 -f 103/384/17 107/386/17 111/388/17 -f 111/388/17 115/102/17 127/104/17 -f 119/103/17 123/392/17 127/104/17 -f 127/104/17 103/384/17 111/388/17 -f 129/143/1 130/105/1 131/107/1 -f 133/394/2 131/108/2 134/110/2 -f 133/395/3 134/111/3 135/113/3 -f 135/113/4 136/112/4 137/115/4 -f 137/396/5 138/116/5 139/118/5 -f 139/118/6 140/117/6 141/120/6 -f 143/397/7 141/121/7 144/123/7 -f 145/398/8 143/124/8 146/126/8 -f 145/398/9 146/126/9 147/128/9 -f 147/128/10 148/127/10 149/130/10 -f 149/130/11 150/129/11 151/132/11 -f 151/132/12 152/131/12 153/134/12 -f 153/134/13 154/133/13 155/136/13 -f 155/136/14 156/135/14 157/138/14 -f 134/399/18 132/400/18 130/401/18 -f 130/401/18 160/402/18 158/141/18 -f 158/141/18 156/403/18 150/139/18 -f 154/404/18 152/405/18 150/139/18 -f 150/139/18 148/406/18 142/140/18 -f 146/407/18 144/408/18 142/140/18 -f 142/140/18 140/409/18 138/410/18 -f 138/410/18 136/411/18 142/140/18 -f 134/399/18 130/401/18 158/141/18 -f 156/403/18 154/404/18 150/139/18 -f 148/406/18 146/407/18 142/140/18 -f 142/140/18 136/411/18 134/399/18 -f 134/399/18 158/141/18 142/140/18 -f 159/412/15 160/142/15 129/143/15 -f 159/412/16 157/138/16 160/142/16 -f 159/146/17 129/413/17 131/414/17 -f 131/414/17 133/415/17 159/146/17 -f 135/416/17 137/417/17 139/418/17 -f 139/418/17 141/419/17 135/416/17 -f 143/144/17 145/420/17 147/421/17 -f 147/421/17 149/422/17 151/145/17 -f 151/145/17 153/423/17 155/424/17 -f 155/424/17 157/425/17 159/146/17 -f 159/146/17 133/415/17 135/416/17 -f 135/416/17 141/419/17 143/144/17 -f 143/144/17 147/421/17 151/145/17 -f 151/145/17 155/424/17 159/146/17 -f 159/146/17 135/416/17 143/144/17 -f 70/149/18 68/426/18 66/427/18 -f 66/427/18 96/428/18 94/429/18 -f 94/429/18 92/430/18 90/431/18 -f 90/431/18 88/432/18 86/147/18 -f 86/147/18 84/433/18 78/148/18 -f 82/434/18 80/435/18 78/148/18 -f 78/148/18 76/436/18 70/149/18 -f 74/437/18 72/438/18 70/149/18 -f 70/149/18 66/427/18 94/429/18 -f 94/429/18 90/431/18 70/149/18 -f 84/433/18 82/434/18 78/148/18 -f 76/436/18 74/437/18 70/149/18 -f 70/149/18 90/431/18 86/147/18 -f 164/439/18 163/150/18 134/152/18 -f 144/440/18 168/153/18 142/155/18 -f 174/441/17 173/156/17 109/158/17 -f 162/187/19 131/159/19 163/161/19 -f 166/442/17 165/162/17 141/164/17 -f 143/443/20 165/165/20 144/167/20 -f 131/444/17 162/168/17 133/170/17 -f 166/200/21 141/171/21 167/173/21 -f 161/186/22 164/174/22 133/176/22 -f 172/445/18 171/177/18 102/179/18 -f 112/446/18 176/180/18 110/182/18 -f 99/447/17 170/183/17 101/185/17 -f 163/161/23 164/174/23 162/187/23 -f 169/202/22 172/188/22 101/190/22 -f 170/203/19 99/191/19 171/193/19 -f 111/448/20 173/194/20 112/196/20 -f 174/201/21 109/197/21 175/199/21 -f 167/173/23 168/166/23 166/200/23 -f 175/199/23 176/195/23 174/201/23 -f 171/193/23 172/188/23 170/203/23 -f 65/449/1 177/204/1 67/206/1 -f 67/450/2 178/207/2 69/209/2 -f 69/451/3 179/210/3 71/212/3 -f 71/452/4 180/213/4 73/215/4 -f 75/453/5 73/216/5 182/218/5 -f 75/454/6 182/219/6 77/221/6 -f 77/455/7 183/222/7 79/224/7 -f 79/456/8 184/225/8 81/227/8 -f 83/457/9 81/228/9 186/230/9 -f 85/458/10 83/231/10 187/233/10 -f 87/459/11 85/234/11 188/236/11 -f 87/460/12 188/237/12 89/239/12 -f 89/461/13 189/240/13 91/242/13 -f 91/462/14 190/243/14 93/245/14 -f 95/463/15 192/246/15 65/248/15 -f 93/464/16 191/249/16 95/251/16 -f 191/244/24 190/243/24 61/60/24 -f 57/54/25 59/56/25 189/240/25 -f 55/252/26 57/54/26 188/237/26 -f 187/235/27 53/51/27 188/236/27 -f 186/232/28 51/49/28 187/233/28 -f 185/229/29 49/47/29 186/230/29 -f 184/225/30 47/45/30 185/226/30 -f 183/222/31 45/43/31 184/223/31 -f 182/219/32 43/41/32 183/220/32 -f 41/347/33 43/41/33 181/217/33 -f 180/213/34 39/37/34 181/214/34 -f 37/35/35 39/37/35 179/210/35 -f 35/33/36 37/35/36 178/207/36 -f 33/254/37 35/33/37 177/204/37 -f 63/58/38 33/254/38 192/246/38 -f 61/60/39 63/58/39 191/249/39 -f 90/465/40 26/23/40 88/255/40 -f 90/466/41 92/256/41 26/23/41 -f 92/467/42 94/257/42 28/25/42 -f 94/468/43 96/258/43 30/27/43 -f 96/469/44 66/259/44 32/29/44 -f 66/470/45 68/260/45 2/2/45 -f 68/471/46 70/261/46 4/3/46 -f 70/472/47 72/262/47 6/4/47 -f 72/473/48 74/263/48 8/6/48 -f 76/474/49 12/12/49 74/264/49 -f 78/475/50 14/13/50 76/265/50 -f 80/476/51 16/15/51 78/266/51 -f 82/477/52 18/16/52 80/267/52 -f 84/478/53 20/18/53 82/268/53 -f 86/479/54 22/20/54 84/269/54 -f 88/480/55 24/21/55 86/270/55 -f 196/277/56 195/271/56 201/273/56 -f 194/279/57 193/274/57 199/276/57 -f 197/481/58 196/277/58 202/278/58 -f 195/271/59 194/279/59 200/272/59 -f 201/286/60 200/280/60 206/282/60 -f 199/288/61 198/283/61 204/285/61 -f 202/482/62 201/286/62 207/287/62 -f 200/280/63 199/288/63 205/281/63 -f 212/483/64 207/289/64 211/291/64 -f 205/295/65 204/292/65 210/294/65 -f 206/290/66 205/295/66 211/291/66 -f 209/293/67 204/292/67 208/297/67 -f 210/301/68 209/298/68 215/300/68 -f 211/306/69 210/301/69 216/302/69 -f 214/299/70 209/298/70 213/304/70 -f 217/484/71 212/305/71 216/302/71 -f 216/314/72 215/307/72 221/309/72 -f 214/315/73 213/310/73 219/312/73 -f 222/485/74 217/313/74 221/309/74 -f 220/308/75 215/307/75 219/312/75 -f 219/323/76 218/316/76 224/318/76 -f 222/486/77 221/319/77 227/321/77 -f 225/324/78 220/322/78 224/318/78 -f 221/319/79 220/322/79 226/320/79 -f 227/487/80 226/325/80 232/327/80 -f 230/331/81 225/328/81 229/330/81 -f 231/326/82 226/325/82 230/331/82 -f 224/329/83 223/332/83 229/330/83 -f 196/340/84 231/334/84 195/336/84 -f 229/342/85 228/337/85 194/339/85 -f 232/488/86 231/334/86 197/341/86 -f 230/335/87 229/342/87 195/336/87 diff --git a/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj b/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj deleted file mode 100644 index 745a9d304..000000000 --- a/src/main/resources/assets/hbm/models/TheGadget3_smooth.obj +++ /dev/null @@ -1,1293 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'TheGadget3_smooth.blend' -# www.blender.org -o Cylinder.003 -v 0.550000 1.500000 -0.850000 -v 0.650000 1.500000 -0.850000 -v 0.550000 1.174719 -0.785298 -v 0.650000 1.174719 -0.785298 -v 0.550001 0.898959 -0.601041 -v 0.650001 0.898959 -0.601041 -v 0.550001 0.714702 -0.325281 -v 0.650001 0.714702 -0.325281 -v 0.550001 0.650000 0.000000 -v 0.650001 0.650000 0.000000 -v 0.550001 0.714702 0.325281 -v 0.650001 0.714702 0.325281 -v 0.550001 0.898959 0.601041 -v 0.650001 0.898959 0.601041 -v 0.550000 1.174719 0.785298 -v 0.650000 1.174719 0.785298 -v 0.550000 1.500000 0.850000 -v 0.650000 1.500000 0.850000 -v 0.550000 1.825281 0.785298 -v 0.650000 1.825281 0.785298 -v 0.549999 2.101041 0.601041 -v 0.649999 2.101041 0.601041 -v 0.549999 2.285297 0.325281 -v 0.649999 2.285298 0.325281 -v 0.549999 2.350000 -0.000000 -v 0.649999 2.350000 -0.000000 -v 0.549999 2.285297 -0.325281 -v 0.649999 2.285298 -0.325281 -v 0.549999 2.101040 -0.601041 -v 0.649999 2.101041 -0.601041 -v 0.550000 1.825280 -0.785298 -v 0.650000 1.825281 -0.785298 -v -0.650000 1.500000 -0.850000 -v -0.550000 1.500000 -0.850000 -v -0.650000 1.174719 -0.785298 -v -0.550000 1.174719 -0.785298 -v -0.649999 0.898959 -0.601041 -v -0.549999 0.898959 -0.601041 -v -0.649999 0.714702 -0.325281 -v -0.549999 0.714702 -0.325281 -v -0.649999 0.650000 0.000000 -v -0.549999 0.650000 0.000000 -v -0.649999 0.714702 0.325281 -v -0.549999 0.714702 0.325281 -v -0.649999 0.898959 0.601041 -v -0.549999 0.898959 0.601041 -v -0.650000 1.174719 0.785298 -v -0.550000 1.174719 0.785298 -v -0.650000 1.500000 0.850000 -v -0.550000 1.500000 0.850000 -v -0.650000 1.825281 0.785298 -v -0.550000 1.825281 0.785298 -v -0.650001 2.101041 0.601041 -v -0.550001 2.101041 0.601041 -v -0.650001 2.285297 0.325281 -v -0.550001 2.285298 0.325281 -v -0.650001 2.350000 -0.000000 -v -0.550001 2.350000 -0.000000 -v -0.650001 2.285297 -0.325281 -v -0.550001 2.285298 -0.325281 -v -0.650001 2.101040 -0.601041 -v -0.550001 2.101041 -0.601041 -v -0.650000 1.825280 -0.785298 -v -0.550000 1.825281 -0.785298 -v -1.500000 1.499999 -0.700000 -v 1.000000 1.500001 -0.700000 -v -1.500000 1.232120 -0.646716 -v 1.000000 1.232123 -0.646716 -v -1.500000 1.005024 -0.494975 -v 1.000000 1.005026 -0.494975 -v -1.499999 0.853283 -0.267878 -v 1.000000 0.853285 -0.267878 -v -1.499999 0.799999 0.000000 -v 1.000000 0.800001 0.000000 -v -1.499999 0.853283 0.267878 -v 1.000000 0.853285 0.267878 -v -1.500000 1.005024 0.494975 -v 1.000000 1.005026 0.494975 -v -1.500000 1.232120 0.646716 -v 1.000000 1.232123 0.646716 -v -1.500000 1.499999 0.700000 -v 1.000000 1.500001 0.700000 -v -1.500000 1.767877 0.646716 -v 1.000000 1.767879 0.646716 -v -1.500000 1.994973 0.494975 -v 0.999999 1.994976 0.494975 -v -1.500001 2.146714 0.267879 -v 0.999999 2.146717 0.267879 -v -1.500001 2.199999 -0.000000 -v 0.999999 2.200001 -0.000000 -v -1.500001 2.146714 -0.267879 -v 0.999999 2.146717 -0.267879 -v -1.500000 1.994973 -0.494975 -v 0.999999 1.994976 -0.494975 -v -1.500000 1.767877 -0.646716 -v 1.000000 1.767879 -0.646716 -v 0.450000 1.500000 -1.000000 -v 0.550000 1.500000 -1.000000 -v 0.450000 1.117316 -0.923880 -v 0.550000 1.117316 -0.923880 -v 0.450001 0.792893 -0.707107 -v 0.550001 0.792893 -0.707107 -v 0.450001 0.576120 -0.382683 -v 0.550001 0.576120 -0.382683 -v 0.450001 0.500000 0.000000 -v 0.550001 0.500000 0.000000 -v 0.450001 0.576120 0.382684 -v 0.550001 0.576120 0.382684 -v 0.450001 0.792893 0.707107 -v 0.550001 0.792893 0.707107 -v 0.450000 1.117316 0.923880 -v 0.550000 1.117316 0.923880 -v 0.450000 1.500000 1.000000 -v 0.550000 1.500000 1.000000 -v 0.450000 1.882683 0.923880 -v 0.550000 1.882683 0.923880 -v 0.449999 2.207107 0.707107 -v 0.549999 2.207107 0.707107 -v 0.449999 2.423879 0.382684 -v 0.549999 2.423880 0.382684 -v 0.449999 2.500000 -0.000000 -v 0.549999 2.500000 -0.000000 -v 0.449999 2.423879 -0.382684 -v 0.549999 2.423879 -0.382684 -v 0.449999 2.207106 -0.707107 -v 0.549999 2.207107 -0.707107 -v 0.450000 1.882683 -0.923880 -v 0.550000 1.882683 -0.923880 -v -0.550000 1.500000 -1.000000 -v -0.450000 1.500000 -1.000000 -v -0.550000 1.117316 -0.923880 -v -0.450000 1.117317 -0.923880 -v -0.549999 0.792893 -0.707107 -v -0.449999 0.792893 -0.707107 -v -0.549999 0.576120 -0.382683 -v -0.449999 0.576120 -0.382683 -v -0.549999 0.500000 0.000000 -v -0.449999 0.500000 0.000000 -v -0.549999 0.576120 0.382684 -v -0.449999 0.576120 0.382684 -v -0.549999 0.792893 0.707107 -v -0.449999 0.792893 0.707107 -v -0.550000 1.117316 0.923880 -v -0.450000 1.117316 0.923880 -v -0.550000 1.500000 1.000000 -v -0.450000 1.500000 1.000000 -v -0.550000 1.882683 0.923880 -v -0.450000 1.882683 0.923880 -v -0.550001 2.207107 0.707107 -v -0.450001 2.207107 0.707107 -v -0.550001 2.423879 0.382684 -v -0.450001 2.423880 0.382684 -v -0.550001 2.500000 -0.000000 -v -0.450001 2.500000 -0.000000 -v -0.550001 2.423879 -0.382684 -v -0.450001 2.423879 -0.382684 -v -0.550001 2.207107 -0.707107 -v -0.450001 2.207107 -0.707107 -v -0.550000 1.882683 -0.923880 -v -0.450000 1.882683 -0.923880 -v -0.550000 -0.000000 -0.750000 -v -0.550000 -0.000000 -1.000000 -v -0.450000 -0.000000 -1.000000 -v -0.450000 -0.000000 -0.750000 -v -0.550000 -0.000000 1.000000 -v -0.550000 -0.000000 0.750000 -v -0.450000 -0.000000 0.750000 -v -0.450000 -0.000000 1.000000 -v 0.450000 0.000000 -0.750000 -v 0.450000 0.000000 -1.000000 -v 0.550000 0.000000 -1.000000 -v 0.550000 0.000000 -0.750000 -v 0.450000 -0.000000 1.000000 -v 0.450000 -0.000000 0.750000 -v 0.550000 -0.000000 0.750000 -v 0.550000 -0.000000 1.000000 -v -1.125000 1.499999 -0.700000 -v -1.125000 1.232121 -0.646716 -v -1.125000 1.005024 -0.494975 -v -1.124999 0.853284 -0.267878 -v -1.124999 0.799999 0.000000 -v -1.124999 0.853284 0.267878 -v -1.125000 1.005024 0.494975 -v -1.125000 1.232121 0.646716 -v -1.125000 1.499999 0.700000 -v -1.125000 1.767877 0.646716 -v -1.125000 1.994974 0.494975 -v -1.125001 2.146715 0.267879 -v -1.125001 2.199999 -0.000000 -v -1.125001 2.146715 -0.267879 -v -1.125000 1.994974 -0.494975 -v -1.125000 1.767877 -0.646716 -v 0.707106 2.207107 0.000000 -v 0.382683 2.423880 0.000000 -v -0.000001 2.500000 0.000000 -v -0.382684 2.423880 0.000000 -v -0.707107 2.207107 0.000000 -v 0.707106 2.000000 -0.500000 -v 0.382683 2.153281 -0.653281 -v -0.000001 2.207107 -0.707107 -v -0.382684 2.153281 -0.653281 -v -0.707107 2.000000 -0.500000 -v 0.707106 1.500000 -0.707107 -v 0.382683 1.500000 -0.923879 -v -0.000000 1.500000 -1.000000 -v -0.382684 1.500000 -0.923879 -v -0.707107 1.500000 -0.707107 -v 0.707106 1.000000 -0.500000 -v 0.382683 0.846719 -0.653281 -v -0.000000 0.792893 -0.707107 -v -0.382684 0.846719 -0.653281 -v -0.707107 1.000000 -0.500000 -v 0.707106 0.792894 -0.000000 -v 0.382683 0.576121 -0.000000 -v -0.000000 0.500001 -0.000000 -v -0.382684 0.576121 -0.000000 -v -0.707107 0.792894 -0.000000 -v 0.707106 1.000000 0.500000 -v 0.382683 0.846719 0.653281 -v -0.000000 0.792893 0.707107 -v -0.382684 0.846719 0.653281 -v -0.707107 1.000000 0.500000 -v 0.707106 1.500000 0.707107 -v 0.382683 1.500000 0.923879 -v -0.000000 1.500000 1.000000 -v -0.382684 1.500000 0.923879 -v -0.707107 1.500000 0.707107 -v 0.707106 2.000000 0.500000 -v 0.382683 2.153281 0.653281 -v -0.000001 2.207107 0.707107 -v -0.382684 2.153281 0.653281 -v -0.707107 2.000000 0.500000 -vt 0.589205 0.570129 -vt 0.537513 0.535589 -vt 0.559924 0.422922 -vt 0.897932 0.155115 -vt 0.943209 0.155115 -vt 0.943209 0.166719 -vt 0.943209 0.206379 -vt 0.897932 0.206379 -vt 0.897932 0.194775 -vt 0.105201 0.410793 -vt 0.241650 0.501966 -vt 0.014028 0.547243 -vt 0.574727 0.365411 -vt 0.525385 0.291565 -vt 0.616557 0.155115 -vt 0.601856 0.880859 -vt 0.601856 0.869255 -vt 0.647133 0.869255 -vt 0.916064 0.864137 -vt 0.916064 0.875741 -vt 0.870787 0.875741 -vt 0.105201 0.155115 -vt 0.241650 0.246288 -vt 0.014028 0.291565 -vt 0.360879 0.382738 -vt 0.269706 0.246288 -vt 0.406156 0.155115 -vt 0.350122 0.445333 -vt 0.462789 0.422922 -vt 0.485200 0.535589 -vt 0.787808 0.042971 -vt 0.657853 0.042971 -vt 0.693703 0.015316 -vt 0.787808 0.071027 -vt 0.785836 0.099970 -vt 0.693703 0.098682 -vt 0.975417 0.946312 -vt 0.845462 0.946312 -vt 0.881311 0.918657 -vt 0.364637 0.841199 -vt 0.364637 0.829595 -vt 0.494592 0.829595 -vt 0.624808 0.985972 -vt 0.494853 0.985972 -vt 0.530702 0.958317 -vt 0.399665 0.626770 -vt 0.399661 0.638374 -vt 0.269706 0.638329 -vt 0.842731 0.824477 -vt 0.840759 0.853420 -vt 0.748626 0.852132 -vt 0.520818 0.626812 -vt 0.520814 0.638416 -vt 0.428672 0.638384 -vt 0.523602 0.829595 -vt 0.615745 0.829595 -vt 0.615745 0.841199 -vt 0.678829 0.638416 -vt 0.548874 0.638416 -vt 0.584723 0.610761 -vt 0.945819 0.014028 -vt 0.943847 0.042971 -vt 0.851714 0.041683 -vt 0.945819 0.071027 -vt 0.943847 0.099970 -vt 0.851714 0.098682 -vt 0.523602 0.841199 -vt 0.494592 0.841199 -vt 0.523603 0.789935 -vt 0.615745 0.789935 -vt 0.615745 0.801539 -vt 0.364637 0.801539 -vt 0.364637 0.789935 -vt 0.494592 0.789935 -vt 0.494596 0.750233 -vt 0.494592 0.761837 -vt 0.364637 0.761792 -vt 0.615749 0.750275 -vt 0.615745 0.761879 -vt 0.523602 0.761847 -vt 0.428676 0.626780 -vt 0.523606 0.750243 -vt 0.523603 0.801539 -vt 0.494592 0.801539 -vt 0.589206 0.410793 -vt 0.620899 0.410793 -vt 0.650181 0.422922 -vt 0.672592 0.445333 -vt 0.684720 0.474614 -vt 0.684720 0.506308 -vt 0.672591 0.535590 -vt 0.650180 0.558000 -vt 0.620899 0.570129 -vt 0.559924 0.558000 -vt 0.525385 0.506308 -vt 0.525385 0.474614 -vt 0.537513 0.445333 -vt 0.897932 0.166719 -vt 0.943209 0.194775 -vt 0.150478 0.638416 -vt 0.105201 0.638416 -vt 0.063370 0.621089 -vt 0.031355 0.589073 -vt 0.014028 0.501966 -vt 0.031355 0.460136 -vt 0.063370 0.428120 -vt 0.150478 0.410793 -vt 0.192308 0.428120 -vt 0.224324 0.460136 -vt 0.241650 0.547243 -vt 0.224324 0.589074 -vt 0.192308 0.621089 -vt 0.661834 0.155115 -vt 0.703665 0.172442 -vt 0.735680 0.204457 -vt 0.753007 0.246288 -vt 0.753007 0.291565 -vt 0.735680 0.333395 -vt 0.703665 0.365411 -vt 0.661834 0.382738 -vt 0.616557 0.382738 -vt 0.542711 0.333395 -vt 0.525385 0.246288 -vt 0.542711 0.204457 -vt 0.574727 0.172442 -vt 0.647133 0.880859 -vt 0.870787 0.864137 -vt 0.150478 0.382738 -vt 0.105201 0.382738 -vt 0.063370 0.365411 -vt 0.031355 0.333395 -vt 0.014028 0.246288 -vt 0.031355 0.204458 -vt 0.063370 0.172442 -vt 0.150478 0.155115 -vt 0.192308 0.172442 -vt 0.224324 0.204457 -vt 0.241650 0.291565 -vt 0.224324 0.333395 -vt 0.192308 0.365411 -vt 0.447986 0.172442 -vt 0.480002 0.204457 -vt 0.497329 0.246288 -vt 0.497329 0.291565 -vt 0.480002 0.333395 -vt 0.447986 0.365411 -vt 0.406156 0.382738 -vt 0.319049 0.365411 -vt 0.287033 0.333395 -vt 0.269706 0.291565 -vt 0.287033 0.204458 -vt 0.319049 0.172442 -vt 0.360879 0.155115 -vt 0.462789 0.558000 -vt 0.433508 0.570129 -vt 0.401814 0.570129 -vt 0.372533 0.558000 -vt 0.350122 0.535589 -vt 0.337993 0.506308 -vt 0.337993 0.474614 -vt 0.372533 0.422922 -vt 0.401814 0.410793 -vt 0.433508 0.410793 -vt 0.485200 0.445333 -vt 0.497329 0.474614 -vt 0.497329 0.506308 -vt 0.785836 0.014028 -vt 0.657853 0.071027 -vt 0.973445 0.917369 -vt 0.622836 0.957029 -vt 0.269710 0.626725 -vt 0.712776 0.824477 -vt 0.676857 0.609473 -vt 0.815864 0.014028 -vt 0.815864 0.071027 -vt 0.364641 0.750188 -vt 0.167969 0.666472 -vt 0.167969 0.678076 -vt 0.129484 0.678076 -vt 0.090999 0.678076 -vt 0.090999 0.666472 -vt 0.052513 0.678076 -vt 0.052513 0.666472 -vt 0.014028 0.678076 -vt 0.014028 0.666472 -vt 0.629794 0.666472 -vt 0.629794 0.678076 -vt 0.591308 0.678076 -vt 0.552823 0.678076 -vt 0.552823 0.666472 -vt 0.514338 0.678076 -vt 0.475852 0.678076 -vt 0.475852 0.666472 -vt 0.437367 0.678076 -vt 0.437367 0.666472 -vt 0.398881 0.678076 -vt 0.360396 0.678076 -vt 0.360396 0.666472 -vt 0.321910 0.678076 -vt 0.321910 0.666472 -vt 0.283425 0.678076 -vt 0.283425 0.666472 -vt 0.244940 0.678076 -vt 0.206454 0.666472 -vt 0.206454 0.678076 -vt 0.244940 0.666472 -vt 0.167969 0.126901 -vt 0.129483 0.126888 -vt 0.129487 0.115284 -vt 0.090998 0.126875 -vt 0.091002 0.115271 -vt 0.052513 0.126861 -vt 0.052517 0.115257 -vt 0.014028 0.126848 -vt 0.629793 0.127059 -vt 0.591308 0.127046 -vt 0.591312 0.115442 -vt 0.552822 0.127033 -vt 0.552826 0.115429 -vt 0.514337 0.127020 -vt 0.514341 0.115416 -vt 0.475851 0.127007 -vt 0.475855 0.115403 -vt 0.437366 0.126994 -vt 0.437370 0.115389 -vt 0.398881 0.126980 -vt 0.398885 0.115376 -vt 0.360395 0.126967 -vt 0.321910 0.126954 -vt 0.321914 0.115350 -vt 0.283425 0.126941 -vt 0.283429 0.115337 -vt 0.244939 0.126927 -vt 0.206458 0.115310 -vt 0.206454 0.126914 -vt 0.244943 0.115323 -vt 0.421520 0.957030 -vt 0.466797 0.957030 -vt 0.466797 0.968634 -vt 0.871616 0.373560 -vt 0.826340 0.373560 -vt 0.826340 0.361956 -vt 0.781063 0.373560 -vt 0.781063 0.361956 -vt 0.455191 0.880859 -vt 0.409914 0.880859 -vt 0.409914 0.869255 -vt 0.364637 0.880859 -vt 0.364637 0.869255 -vt 0.014028 0.957029 -vt 0.059305 0.957029 -vt 0.059305 0.968633 -vt 0.104582 0.957029 -vt 0.104582 0.968633 -vt 0.149858 0.957029 -vt 0.195135 0.957029 -vt 0.195135 0.968633 -vt 0.240412 0.957029 -vt 0.240412 0.968633 -vt 0.285689 0.957029 -vt 0.285689 0.968633 -vt 0.330966 0.957029 -vt 0.376243 0.957029 -vt 0.421520 0.968634 -vt 0.330966 0.968634 -vt 0.772129 0.917369 -vt 0.817406 0.917369 -vt 0.817406 0.928973 -vt 0.573800 0.880859 -vt 0.528523 0.880859 -vt 0.528523 0.869255 -vt 0.483246 0.880859 -vt 0.483246 0.869255 -vt 0.961341 0.836081 -vt 0.916064 0.836081 -vt 0.916064 0.824477 -vt 0.870787 0.836081 -vt 0.870787 0.824477 -vt 0.364637 0.928973 -vt 0.364637 0.917369 -vt 0.409914 0.917369 -vt 0.455191 0.917369 -vt 0.455191 0.928973 -vt 0.500467 0.917369 -vt 0.500467 0.928973 -vt 0.545744 0.917369 -vt 0.545744 0.928973 -vt 0.591021 0.917369 -vt 0.591021 0.928973 -vt 0.636298 0.917369 -vt 0.636298 0.928973 -vt 0.681575 0.917369 -vt 0.681575 0.928973 -vt 0.726852 0.917369 -vt 0.772129 0.928973 -vt 0.164597 0.057593 -vt 0.132903 0.057583 -vt 0.132918 0.014067 -vt 0.126111 0.057580 -vt 0.094418 0.057569 -vt 0.094433 0.014054 -vt 0.087626 0.057567 -vt 0.055933 0.057556 -vt 0.055947 0.014041 -vt 0.049141 0.057554 -vt 0.017447 0.057543 -vt 0.017462 0.014028 -vt 0.626436 0.014236 -vt 0.626421 0.057751 -vt 0.594727 0.057740 -vt 0.587936 0.057738 -vt 0.556242 0.057727 -vt 0.556257 0.014212 -vt 0.549450 0.057725 -vt 0.517756 0.057714 -vt 0.517771 0.014199 -vt 0.510965 0.057712 -vt 0.479271 0.057701 -vt 0.479286 0.014186 -vt 0.472494 0.014183 -vt 0.472479 0.057699 -vt 0.440786 0.057688 -vt 0.434009 0.014170 -vt 0.433994 0.057686 -vt 0.402300 0.057675 -vt 0.395524 0.014157 -vt 0.395509 0.057672 -vt 0.363815 0.057662 -vt 0.357023 0.057659 -vt 0.325329 0.057648 -vt 0.325344 0.014133 -vt 0.318538 0.057646 -vt 0.286844 0.057635 -vt 0.286859 0.014120 -vt 0.280053 0.057633 -vt 0.248359 0.057622 -vt 0.248374 0.014107 -vt 0.203082 0.057607 -vt 0.171388 0.057596 -vt 0.171403 0.014081 -vt 0.241567 0.057620 -vt 0.209873 0.057609 -vt 0.209888 0.014094 -vt 0.360399 0.115363 -vt 0.014032 0.115244 -vt 0.167973 0.115297 -vt 0.357000 0.722132 -vt 0.286821 0.722132 -vt 0.248335 0.722132 -vt 0.209850 0.722132 -vt 0.171365 0.722132 -vt 0.132880 0.722132 -vt 0.094394 0.722132 -vt 0.055909 0.722132 -vt 0.017424 0.722132 -vt 0.626398 0.722133 -vt 0.587913 0.722133 -vt 0.549427 0.722132 -vt 0.510942 0.722132 -vt 0.472456 0.722132 -vt 0.433971 0.722132 -vt 0.395485 0.722132 -vt 0.336581 0.839581 -vt 0.247767 0.839581 -vt 0.251147 0.794430 -vt 0.323575 0.928973 -vt 0.260774 0.928973 -vt 0.251147 0.884731 -vt 0.333201 0.794430 -vt 0.260774 0.750188 -vt 0.333201 0.884731 -vt 0.918460 0.707029 -vt 0.829646 0.707029 -vt 0.833026 0.661878 -vt 0.905453 0.796421 -vt 0.842652 0.796421 -vt 0.833026 0.752179 -vt 0.915079 0.661878 -vt 0.842652 0.617636 -vt 0.915079 0.752179 -vt 0.089835 0.750188 -vt 0.099461 0.794430 -vt 0.017408 0.794430 -vt 0.099461 0.884731 -vt 0.017408 0.884731 -vt 0.014028 0.839581 -vt 0.102842 0.839581 -vt 0.089835 0.928973 -vt 0.027034 0.928973 -vt 0.798208 0.545339 -vt 0.716155 0.545336 -vt 0.712776 0.500185 -vt 0.801590 0.500188 -vt 0.716158 0.455035 -vt 0.788580 0.589580 -vt 0.725779 0.589578 -vt 0.788587 0.410796 -vt 0.798211 0.455038 -vt 0.801590 0.707029 -vt 0.712776 0.707029 -vt 0.716156 0.661878 -vt 0.788583 0.796421 -vt 0.725782 0.796421 -vt 0.716156 0.752179 -vt 0.788584 0.617636 -vt 0.798210 0.661878 -vt 0.798209 0.752179 -vt 0.905453 0.589578 -vt 0.842652 0.589578 -vt 0.833026 0.545336 -vt 0.915079 0.455035 -vt 0.833026 0.455035 -vt 0.842652 0.410793 -vt 0.918460 0.500186 -vt 0.915079 0.545336 -vt 0.829646 0.500186 -vt 0.866496 0.199357 -vt 0.784443 0.199357 -vt 0.794069 0.155115 -vt 0.869877 0.244508 -vt 0.866496 0.289658 -vt 0.784443 0.289658 -vt 0.781063 0.244507 -vt 0.856870 0.333900 -vt 0.794069 0.333900 -vt 0.216331 0.794430 -vt 0.219711 0.839581 -vt 0.130898 0.839581 -vt 0.206705 0.928973 -vt 0.143904 0.928973 -vt 0.134278 0.884731 -vt 0.134278 0.794430 -vt 0.143904 0.750188 -vt 0.216331 0.884731 -vt 0.129484 0.666472 -vt 0.591308 0.666472 -vt 0.514338 0.666472 -vt 0.398881 0.666472 -vt 0.629797 0.115455 -vt 0.871616 0.361956 -vt 0.455191 0.869255 -vt 0.014028 0.968633 -vt 0.149858 0.968633 -vt 0.376243 0.968634 -vt 0.573800 0.869255 -vt 0.961341 0.824477 -vt 0.409914 0.928973 -vt 0.726852 0.928973 -vt 0.164612 0.014078 -vt 0.126126 0.014065 -vt 0.087641 0.014052 -vt 0.049156 0.014039 -vt 0.594742 0.014225 -vt 0.587951 0.014223 -vt 0.549465 0.014210 -vt 0.510980 0.014196 -vt 0.440801 0.014172 -vt 0.402315 0.014159 -vt 0.363830 0.014146 -vt 0.357038 0.014144 -vt 0.318553 0.014131 -vt 0.280067 0.014118 -vt 0.203097 0.014091 -vt 0.241582 0.014104 -vt 0.325306 0.722132 -vt 0.318515 0.722132 -vt 0.280029 0.722132 -vt 0.241544 0.722132 -vt 0.203059 0.722132 -vt 0.164573 0.722132 -vt 0.126088 0.722132 -vt 0.087603 0.722132 -vt 0.049117 0.722132 -vt 0.594704 0.722133 -vt 0.556219 0.722133 -vt 0.517733 0.722132 -vt 0.479248 0.722132 -vt 0.440762 0.722132 -vt 0.402277 0.722132 -vt 0.363792 0.722132 -vt 0.323575 0.750188 -vt 0.905453 0.617636 -vt 0.027034 0.750188 -vt 0.725786 0.410793 -vt 0.725783 0.617636 -vt 0.905453 0.410793 -vt 0.856870 0.155115 -vt 0.206705 0.750188 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 -0.555600 -0.831500 -vn 0.000000 -0.555600 0.831500 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.068000 -0.997700 -vn 0.000000 0.068000 0.997700 -vn 0.000000 -0.054000 -0.998500 -vn 0.000000 -0.054000 0.998500 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.196300 0.000000 -0.980500 -vn 0.196300 -0.375200 -0.905900 -vn 0.196300 -0.693300 -0.693300 -vn 0.000000 -0.707100 -0.707100 -vn 0.196300 -0.905900 -0.375200 -vn 0.000000 -0.923900 -0.382700 -vn 0.196300 -0.980500 0.000000 -vn 0.196300 -0.905900 0.375200 -vn 0.196300 -0.693300 0.693300 -vn 0.000000 -0.707100 0.707100 -vn 0.196300 -0.375200 0.905900 -vn 0.196300 0.000000 0.980500 -vn 0.000000 0.000000 1.000000 -vn 0.196300 0.375200 0.905900 -vn 0.000000 0.382700 0.923900 -vn 0.196300 0.693300 0.693300 -vn 0.196300 0.905900 0.375200 -vn 0.000000 0.923900 0.382700 -vn 0.196300 0.980500 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.196300 0.905900 -0.375200 -vn 0.000000 0.923900 -0.382700 -vn 0.196300 0.693300 -0.693300 -vn 0.000000 0.382700 -0.923900 -vn 0.196300 0.375200 -0.905900 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 -0.382700 -0.923900 -vn -0.149500 -0.378400 -0.913500 -vn -0.149500 -0.699100 -0.699100 -vn -0.149500 -0.913500 -0.378400 -vn 0.000000 -0.923900 0.382700 -vn -0.149500 -0.913500 0.378400 -vn -0.149500 -0.699100 0.699100 -vn 0.000000 -0.382700 0.923900 -vn -0.149500 -0.378400 0.913500 -vn -0.149500 0.000000 0.988700 -vn -0.149500 0.378400 0.913500 -vn 0.000000 0.707100 0.707100 -vn -0.149500 0.699100 0.699100 -vn -0.149600 0.988700 0.000000 -vn -0.149600 0.913500 -0.378400 -vn -0.149500 0.378400 -0.913500 -vn -0.149600 0.699100 -0.699100 -vn 0.665700 0.000000 -0.746200 -vn 0.599900 -0.188900 -0.777400 -vn -0.599900 -0.188900 -0.777400 -vn 0.913000 -0.393800 -0.106200 -vn 0.665700 -0.689400 -0.285500 -vn -0.665700 -0.689400 -0.285500 -vn 0.665700 -0.746200 0.000000 -vn -0.665700 -0.746200 0.000000 -vn 0.665700 -0.689400 0.285500 -vn -0.665700 -0.689400 0.285500 -vn 0.913000 -0.393800 0.106200 -vn -0.913000 -0.393800 0.106200 -vn 0.599900 -0.188900 0.777400 -vn 0.665700 0.000000 0.746200 -vn -0.665700 0.000000 0.746200 -vn 0.665700 0.285500 0.689400 -vn -0.665700 0.285500 0.689400 -vn 0.665700 0.527600 0.527600 -vn 0.665700 0.689400 0.285500 -vn -0.665700 0.689400 0.285500 -vn 0.665700 0.746200 0.000000 -vn -0.665700 0.746200 0.000000 -vn 0.665700 0.689400 -0.285500 -vn -0.665700 0.689400 -0.285500 -vn 0.665700 0.527600 -0.527600 -vn 0.665700 0.285500 -0.689400 -vn -0.665700 0.000000 -0.746200 -vn -0.665700 0.527600 -0.527600 -vn -0.599900 -0.188900 0.777400 -vn -0.665700 0.527600 0.527600 -vn -0.155200 0.000000 -0.987900 -vn -0.155200 -0.378000 -0.912700 -vn -0.665700 -0.285500 -0.689400 -vn -0.155200 -0.698500 -0.698500 -vn -0.665700 -0.527600 -0.527600 -vn -0.155200 -0.912700 -0.378000 -vn -0.155200 -0.987900 0.000000 -vn -0.155200 -0.912700 0.378000 -vn -0.155200 -0.698500 0.698500 -vn -0.665700 -0.527600 0.527600 -vn -0.155200 -0.378000 0.912700 -vn -0.665700 -0.285500 0.689400 -vn -0.155200 0.000000 0.987900 -vn -0.155200 0.378000 0.912700 -vn -0.155200 0.698500 0.698500 -vn -0.155200 0.912700 0.378000 -vn -0.155200 0.987900 0.000000 -vn -0.155200 0.912700 -0.378000 -vn -0.155200 0.698500 -0.698500 -vn -0.155200 0.378000 -0.912700 -vn -0.665700 0.285500 -0.689400 -vn -0.149600 0.913500 0.378400 -vn -0.149500 -0.988700 0.000000 -vn -0.149500 0.000000 -0.988700 -vn 0.803800 0.549600 0.227600 -vn 0.803800 0.549600 -0.227600 -vn 0.803800 0.420600 -0.420600 -vn 0.803800 0.227600 -0.549600 -vn 0.803800 0.000000 -0.594900 -vn 0.803800 -0.227600 -0.549600 -vn 0.803800 -0.420600 -0.420600 -vn 0.803800 -0.549600 -0.227600 -vn 0.803800 -0.594900 0.000000 -vn 0.803800 -0.549600 0.227600 -vn 0.803800 -0.420600 0.420600 -vn 0.803800 -0.227600 0.549600 -vn 0.803800 0.000000 0.594900 -vn 0.803800 0.227600 0.549600 -vn 0.803800 0.420600 0.420600 -vn -0.366800 0.657800 -0.657800 -vn 0.555600 0.831400 0.000000 -vn 0.555600 0.587900 -0.587900 -vn 0.366800 0.657800 -0.657800 -vn -0.366800 0.930300 0.000000 -vn -0.555600 0.587900 -0.587900 -vn 0.366800 0.930300 0.000000 -vn -0.366800 0.000000 -0.930300 -vn 0.555600 0.000000 -0.831400 -vn 0.366800 0.000000 -0.930300 -vn -0.555600 0.000000 -0.831400 -vn -0.366800 -0.657800 -0.657800 -vn 0.366800 -0.657800 -0.657800 -vn 0.555600 -0.587900 -0.587900 -vn 0.366800 -0.930300 0.000000 -vn -0.366800 -0.930300 0.000000 -vn 0.555600 -0.831400 0.000000 -vn -0.555600 -0.587900 -0.587900 -vn -0.366800 -0.657800 0.657800 -vn 0.555600 -0.587900 0.587900 -vn 0.366800 -0.657800 0.657800 -vn -0.555600 -0.831400 0.000000 -vn 0.555600 0.000000 0.831400 -vn 0.366800 0.000000 0.930300 -vn -0.366800 0.000000 0.930300 -vn -0.555600 0.000000 0.831400 -vn -0.366800 0.657800 0.657800 -vn -0.555600 0.587900 0.587900 -vn 0.366800 0.657800 0.657800 -vn 0.555600 0.587900 0.587900 -vn -0.555600 0.831400 0.000000 -vn -0.913000 -0.393800 -0.106200 -vn 0.803800 0.594900 0.000000 -vn -0.555600 -0.587900 0.587900 -s off -f 83/1/1 87/2/1 95/3/1 -f 100/4/2 102/5/2 101/6/2 -f 110/7/3 112/8/3 111/9/3 -f 118/10/4 110/11/4 126/12/4 -f 115/13/1 119/14/1 127/15/1 -f 131/16/2 132/17/2 134/18/2 -f 141/19/3 142/20/3 144/21/3 -f 150/22/4 142/23/4 158/24/4 -f 143/25/1 151/26/1 159/27/1 -f 86/28/4 78/29/4 70/30/4 -f 163/31/4 132/32/4 134/33/4 -f 168/34/4 167/35/4 142/36/4 -f 173/37/1 111/38/1 109/39/1 -f 131/40/5 132/41/5 163/42/5 -f 165/43/1 143/44/1 141/45/1 -f 165/46/6 168/47/6 144/48/6 -f 162/49/1 161/50/1 133/51/1 -f 141/52/7 142/53/7 167/54/7 -f 164/55/8 134/56/8 133/57/8 -f 171/58/4 100/59/4 102/60/4 -f 176/61/4 175/62/4 110/63/4 -f 170/64/1 169/65/1 101/66/1 -f 164/55/9 161/67/9 162/68/9 -f 172/69/8 102/70/8 101/71/8 -f 99/72/5 100/73/5 171/74/5 -f 173/75/6 176/76/6 112/77/6 -f 109/78/7 110/79/7 175/80/7 -f 168/47/9 165/46/9 166/81/9 -f 176/76/9 173/75/9 174/82/9 -f 172/69/9 169/83/9 170/84/9 -f 95/3/1 65/85/1 67/86/1 -f 67/86/1 69/87/1 71/88/1 -f 71/88/1 73/89/1 75/90/1 -f 75/90/1 77/91/1 71/88/1 -f 79/92/1 81/93/1 83/1/1 -f 83/1/1 85/94/1 87/2/1 -f 87/2/1 89/95/1 91/96/1 -f 91/96/1 93/97/1 87/2/1 -f 95/3/1 67/86/1 79/92/1 -f 71/88/1 77/91/1 79/92/1 -f 79/92/1 83/1/1 95/3/1 -f 87/2/1 93/97/1 95/3/1 -f 67/86/1 71/88/1 79/92/1 -f 99/98/2 100/4/2 101/6/2 -f 109/99/3 110/7/3 111/9/3 -f 102/100/4 100/101/4 98/102/4 -f 98/102/4 128/103/4 126/12/4 -f 126/12/4 124/104/4 118/10/4 -f 122/105/4 120/106/4 118/10/4 -f 118/10/4 116/107/4 110/11/4 -f 114/108/4 112/109/4 110/11/4 -f 110/11/4 108/110/4 106/111/4 -f 106/111/4 104/112/4 110/11/4 -f 102/100/4 98/102/4 126/12/4 -f 124/104/4 122/105/4 118/10/4 -f 116/107/4 114/108/4 110/11/4 -f 110/11/4 104/112/4 102/100/4 -f 102/100/4 126/12/4 110/11/4 -f 127/15/1 97/113/1 99/114/1 -f 99/114/1 101/115/1 103/116/1 -f 103/116/1 105/117/1 107/118/1 -f 107/118/1 109/119/1 111/120/1 -f 111/120/1 113/121/1 115/13/1 -f 115/13/1 117/122/1 119/14/1 -f 119/14/1 121/123/1 123/124/1 -f 123/124/1 125/125/1 127/15/1 -f 127/15/1 99/114/1 103/116/1 -f 103/116/1 107/118/1 111/120/1 -f 111/120/1 115/13/1 127/15/1 -f 119/14/1 123/124/1 127/15/1 -f 127/15/1 103/116/1 111/120/1 -f 133/126/2 131/16/2 134/18/2 -f 143/127/3 141/19/3 144/21/3 -f 134/128/4 132/129/4 130/130/4 -f 130/130/4 160/131/4 158/24/4 -f 158/24/4 156/132/4 150/22/4 -f 154/133/4 152/134/4 150/22/4 -f 150/22/4 148/135/4 142/23/4 -f 146/136/4 144/137/4 142/23/4 -f 142/23/4 140/138/4 138/139/4 -f 138/139/4 136/140/4 142/23/4 -f 134/128/4 130/130/4 158/24/4 -f 156/132/4 154/133/4 150/22/4 -f 148/135/4 146/136/4 142/23/4 -f 142/23/4 136/140/4 134/128/4 -f 134/128/4 158/24/4 142/23/4 -f 159/27/1 129/141/1 131/142/1 -f 131/142/1 133/143/1 159/27/1 -f 135/144/1 137/145/1 139/146/1 -f 139/146/1 141/147/1 135/144/1 -f 143/25/1 145/148/1 147/149/1 -f 147/149/1 149/150/1 151/26/1 -f 151/26/1 153/151/1 155/152/1 -f 155/152/1 157/153/1 159/27/1 -f 159/27/1 133/143/1 135/144/1 -f 135/144/1 141/147/1 143/25/1 -f 143/25/1 147/149/1 151/26/1 -f 151/26/1 155/152/1 159/27/1 -f 159/27/1 135/144/1 143/25/1 -f 70/30/4 68/154/4 66/155/4 -f 66/155/4 96/156/4 94/157/4 -f 94/157/4 92/158/4 90/159/4 -f 90/159/4 88/160/4 86/28/4 -f 86/28/4 84/161/4 78/29/4 -f 82/162/4 80/163/4 78/29/4 -f 78/29/4 76/164/4 70/30/4 -f 74/165/4 72/166/4 70/30/4 -f 70/30/4 66/155/4 94/157/4 -f 94/157/4 90/159/4 70/30/4 -f 84/161/4 82/162/4 78/29/4 -f 76/164/4 74/165/4 70/30/4 -f 70/30/4 90/159/4 86/28/4 -f 164/167/4 163/31/4 134/33/4 -f 144/168/4 168/34/4 142/36/4 -f 174/169/1 173/37/1 109/39/1 -f 162/68/5 131/40/5 163/42/5 -f 166/170/1 165/43/1 141/45/1 -f 143/171/6 165/46/6 144/48/6 -f 131/172/1 162/49/1 133/51/1 -f 166/81/7 141/52/7 167/54/7 -f 161/67/8 164/55/8 133/57/8 -f 172/173/4 171/58/4 102/60/4 -f 112/174/4 176/61/4 110/63/4 -f 99/175/1 170/64/1 101/66/1 -f 163/42/9 164/55/9 162/68/9 -f 169/83/8 172/69/8 101/71/8 -f 170/84/5 99/72/5 171/74/5 -f 111/176/6 173/75/6 112/77/6 -f 174/82/7 109/78/7 175/80/7 -f 167/54/9 168/47/9 166/81/9 -f 175/80/9 176/76/9 174/82/9 -f 171/74/9 172/69/9 170/84/9 -s 1 -f 1/177/10 2/178/11 4/179/12 -f 4/179/12 6/180/13 5/181/14 -f 6/180/13 8/182/15 7/183/16 -f 8/182/15 10/184/17 9/185/9 -f 9/186/9 10/187/17 12/188/18 -f 12/188/18 14/189/19 13/190/20 -f 13/190/20 14/189/19 16/191/21 -f 16/191/21 18/192/22 17/193/23 -f 18/192/22 20/194/24 19/195/25 -f 19/195/25 20/194/24 22/196/26 -f 22/196/26 24/197/27 23/198/28 -f 24/197/27 26/199/29 25/200/30 -f 25/200/30 26/199/29 28/201/31 -f 27/202/32 28/201/31 30/203/33 -f 31/204/34 32/205/35 2/178/11 -f 29/206/36 30/203/33 32/205/35 -f 34/207/10 36/208/37 35/209/38 -f 36/208/37 38/210/14 37/211/39 -f 37/211/39 38/210/14 40/212/16 -f 39/213/40 40/212/16 42/214/9 -f 42/215/9 44/216/41 43/217/42 -f 44/216/41 46/218/20 45/219/43 -f 46/218/20 48/220/44 47/221/45 -f 48/220/44 50/222/23 49/223/46 -f 50/222/23 52/224/25 51/225/47 -f 51/225/47 52/224/25 54/226/48 -f 53/227/49 54/226/48 56/228/28 -f 56/228/28 58/229/30 57/230/50 -f 57/230/50 58/229/30 60/231/32 -f 59/232/51 60/231/32 62/233/36 -f 63/234/52 64/235/34 34/207/10 -f 61/236/53 62/233/36 64/235/34 -f 98/237/54 100/238/55 99/239/56 -f 102/240/57 104/241/58 103/242/59 -f 104/241/58 106/243/60 105/244/61 -f 106/245/60 108/246/62 107/247/63 -f 108/246/62 110/248/64 109/249/65 -f 112/250/66 114/251/67 113/252/68 -f 114/251/67 116/253/69 115/254/70 -f 115/254/70 116/253/69 118/255/71 -f 118/255/71 120/256/72 119/257/73 -f 120/256/72 122/258/74 121/259/75 -f 122/258/74 124/260/76 123/261/77 -f 123/261/77 124/260/76 126/262/78 -f 128/263/79 98/237/54 97/264/80 -f 125/265/81 126/262/78 128/263/79 -f 130/266/54 132/267/55 131/268/56 -f 134/269/57 136/270/58 135/271/59 -f 136/270/58 138/272/60 137/273/61 -f 138/274/60 140/275/62 139/276/63 -f 140/275/62 142/277/64 141/278/65 -f 143/279/82 144/280/66 146/281/67 -f 146/281/67 148/282/69 147/283/70 -f 148/282/69 150/284/71 149/285/83 -f 150/284/71 152/286/72 151/287/73 -f 152/286/72 154/288/74 153/289/75 -f 154/288/74 156/290/76 155/291/77 -f 156/290/76 158/292/78 157/293/81 -f 160/294/79 130/266/54 129/295/80 -f 157/293/81 158/292/78 160/294/79 -f 177/296/84 178/297/85 67/298/86 -f 178/299/85 179/300/87 69/301/88 -f 179/302/87 180/303/89 71/304/59 -f 180/305/89 181/306/90 73/307/61 -f 73/308/61 181/309/90 182/310/91 -f 182/311/91 183/312/92 77/313/93 -f 183/314/92 184/315/94 79/316/95 -f 184/317/94 185/318/96 81/319/68 -f 81/320/68 185/321/96 186/322/97 -f 83/323/70 186/324/97 187/325/98 -f 85/326/83 187/327/98 188/328/99 -f 188/329/99 189/330/100 89/331/75 -f 189/332/100 190/333/101 91/334/77 -f 190/335/101 191/336/102 93/337/81 -f 192/338/103 177/339/84 65/340/80 -f 191/341/102 192/342/103 95/343/104 -f 190/335/101 59/232/51 61/236/53 -f 59/232/51 190/333/101 189/332/100 -f 57/230/50 189/330/100 188/329/99 -f 53/227/49 55/344/105 188/328/99 -f 51/225/47 53/227/49 187/325/98 -f 49/223/46 51/225/47 186/322/97 -f 47/221/45 49/223/46 185/318/96 -f 45/219/43 47/221/45 184/315/94 -f 43/217/42 45/219/43 183/312/92 -f 43/217/42 182/310/91 181/309/90 -f 39/213/40 41/345/106 181/306/90 -f 39/213/40 180/303/89 179/302/87 -f 37/211/39 179/300/87 178/299/85 -f 35/209/38 178/297/85 177/296/84 -f 33/346/107 177/339/84 192/338/103 -f 63/234/52 192/342/103 191/341/102 -f 26/199/29 24/197/27 88/347/108 -f 92/348/109 28/201/31 26/199/29 -f 94/349/110 30/203/33 28/201/31 -f 96/350/111 32/205/35 30/203/33 -f 66/351/112 2/178/11 32/205/35 -f 68/352/113 4/179/12 2/178/11 -f 70/353/114 6/180/13 4/179/12 -f 72/354/115 8/182/15 6/180/13 -f 74/355/116 10/184/17 8/182/15 -f 12/188/18 10/187/17 74/356/116 -f 14/189/19 12/188/18 76/357/117 -f 16/191/21 14/189/19 78/358/118 -f 18/192/22 16/191/21 80/359/119 -f 20/194/24 18/192/22 82/360/120 -f 22/196/26 20/194/24 84/361/121 -f 24/197/27 22/196/26 86/362/122 -f 195/363/30 200/364/36 201/365/123 -f 193/366/124 198/367/125 199/368/126 -f 196/369/127 201/365/123 202/370/128 -f 194/371/129 199/368/126 200/364/36 -f 200/372/36 205/373/10 206/374/130 -f 198/375/125 203/376/131 204/377/132 -f 201/378/123 206/374/130 207/379/133 -f 199/380/126 204/377/132 205/373/10 -f 207/381/133 206/382/130 211/383/134 -f 204/384/132 209/385/135 210/386/14 -f 205/387/10 210/386/14 211/383/134 -f 204/384/132 203/388/131 208/389/136 -f 209/390/135 214/391/137 215/392/9 -f 210/393/14 215/392/9 216/394/138 -f 209/390/135 208/395/136 213/396/139 -f 212/397/140 211/398/134 216/394/138 -f 215/399/9 220/400/20 221/401/141 -f 213/402/139 218/403/142 219/404/143 -f 217/405/144 216/406/138 221/401/141 -f 215/399/9 214/407/137 219/404/143 -f 218/408/142 223/409/145 224/410/146 -f 221/411/141 226/412/147 227/413/148 -f 220/414/20 219/415/143 224/410/146 -f 220/414/20 225/416/23 226/412/147 -f 226/417/147 231/418/149 232/419/150 -f 225/420/23 224/421/146 229/422/151 -f 226/417/147 225/420/23 230/423/48 -f 223/424/145 228/425/152 229/422/151 -f 231/426/149 230/427/48 195/428/30 -f 228/429/152 193/430/124 194/431/129 -f 231/426/149 196/432/127 197/433/153 -f 229/434/151 194/431/129 195/428/30 -f 3/435/37 1/177/10 4/179/12 -f 3/435/37 4/179/12 5/181/14 -f 5/181/14 6/180/13 7/183/16 -f 7/183/16 8/182/15 9/185/9 -f 11/436/41 9/186/9 12/188/18 -f 11/436/41 12/188/18 13/190/20 -f 15/437/44 13/190/20 16/191/21 -f 15/437/44 16/191/21 17/193/23 -f 17/193/23 18/192/22 19/195/25 -f 21/438/48 19/195/25 22/196/26 -f 21/438/48 22/196/26 23/198/28 -f 23/198/28 24/197/27 25/200/30 -f 27/202/32 25/200/30 28/201/31 -f 29/206/36 27/202/32 30/203/33 -f 1/177/10 31/204/34 2/178/11 -f 31/204/34 29/206/36 32/205/35 -f 33/346/107 34/207/10 35/209/38 -f 35/209/38 36/208/37 37/211/39 -f 39/213/40 37/211/39 40/212/16 -f 41/345/106 39/213/40 42/214/9 -f 41/439/106 42/215/9 43/217/42 -f 43/217/42 44/216/41 45/219/43 -f 45/219/43 46/218/20 47/221/45 -f 47/221/45 48/220/44 49/223/46 -f 49/223/46 50/222/23 51/225/47 -f 53/227/49 51/225/47 54/226/48 -f 55/344/105 53/227/49 56/228/28 -f 55/344/105 56/228/28 57/230/50 -f 59/232/51 57/230/50 60/231/32 -f 61/236/53 59/232/51 62/233/36 -f 33/346/107 63/234/52 34/207/10 -f 63/234/52 61/236/53 64/235/34 -f 97/264/80 98/237/54 99/239/56 -f 101/440/154 102/240/57 103/242/59 -f 103/242/59 104/241/58 105/244/61 -f 105/441/61 106/245/60 107/247/63 -f 107/247/63 108/246/62 109/249/65 -f 111/442/82 112/250/66 113/252/68 -f 113/252/68 114/251/67 115/254/70 -f 117/443/83 115/254/70 118/255/71 -f 117/443/83 118/255/71 119/257/73 -f 119/257/73 120/256/72 121/259/75 -f 121/259/75 122/258/74 123/261/77 -f 125/265/81 123/261/77 126/262/78 -f 127/444/104 128/263/79 97/264/80 -f 127/444/104 125/265/81 128/263/79 -f 129/295/80 130/266/54 131/268/56 -f 133/445/154 134/269/57 135/271/59 -f 135/271/59 136/270/58 137/273/61 -f 137/446/61 138/274/60 139/276/63 -f 139/276/63 140/275/62 141/278/65 -f 145/447/68 143/279/82 146/281/67 -f 145/447/68 146/281/67 147/283/70 -f 147/283/70 148/282/69 149/285/83 -f 149/285/83 150/284/71 151/287/73 -f 151/287/73 152/286/72 153/289/75 -f 153/289/75 154/288/74 155/291/77 -f 155/291/77 156/290/76 157/293/81 -f 159/448/104 160/294/79 129/295/80 -f 159/448/104 157/293/81 160/294/79 -f 65/449/80 177/296/84 67/298/86 -f 67/450/86 178/299/85 69/301/88 -f 69/451/88 179/302/87 71/304/59 -f 71/452/59 180/305/89 73/307/61 -f 75/453/63 73/308/61 182/310/91 -f 75/454/63 182/311/91 77/313/93 -f 77/455/93 183/314/92 79/316/95 -f 79/456/95 184/317/94 81/319/68 -f 83/457/70 81/320/68 186/322/97 -f 85/458/83 83/323/70 187/325/98 -f 87/459/73 85/326/83 188/328/99 -f 87/460/73 188/329/99 89/331/75 -f 89/461/75 189/332/100 91/334/77 -f 91/462/77 190/335/101 93/337/81 -f 95/463/104 192/338/103 65/340/80 -f 93/464/81 191/341/102 95/343/104 -f 191/336/102 190/335/101 61/236/53 -f 57/230/50 59/232/51 189/332/100 -f 55/344/105 57/230/50 188/329/99 -f 187/327/98 53/227/49 188/328/99 -f 186/324/97 51/225/47 187/325/98 -f 185/321/96 49/223/46 186/322/97 -f 184/317/94 47/221/45 185/318/96 -f 183/314/92 45/219/43 184/315/94 -f 182/311/91 43/217/42 183/312/92 -f 41/439/106 43/217/42 181/309/90 -f 180/305/89 39/213/40 181/306/90 -f 37/211/39 39/213/40 179/302/87 -f 35/209/38 37/211/39 178/299/85 -f 33/346/107 35/209/38 177/296/84 -f 63/234/52 33/346/107 192/338/103 -f 61/236/53 63/234/52 191/341/102 -f 90/465/155 26/199/29 88/347/108 -f 90/466/155 92/348/109 26/199/29 -f 92/467/109 94/349/110 28/201/31 -f 94/468/110 96/350/111 30/203/33 -f 96/469/111 66/351/112 32/205/35 -f 66/470/112 68/352/113 2/178/11 -f 68/471/113 70/353/114 4/179/12 -f 70/472/114 72/354/115 6/180/13 -f 72/473/115 74/355/116 8/182/15 -f 76/474/117 12/188/18 74/356/116 -f 78/475/118 14/189/19 76/357/117 -f 80/476/119 16/191/21 78/358/118 -f 82/477/120 18/192/22 80/359/119 -f 84/478/121 20/194/24 82/360/120 -f 86/479/122 22/196/26 84/361/121 -f 88/480/108 24/197/27 86/362/122 -f 196/369/127 195/363/30 201/365/123 -f 194/371/129 193/366/124 199/368/126 -f 197/481/153 196/369/127 202/370/128 -f 195/363/30 194/371/129 200/364/36 -f 201/378/123 200/372/36 206/374/130 -f 199/380/126 198/375/125 204/377/132 -f 202/482/128 201/378/123 207/379/133 -f 200/372/36 199/380/126 205/373/10 -f 212/483/140 207/381/133 211/383/134 -f 205/387/10 204/384/132 210/386/14 -f 206/382/130 205/387/10 211/383/134 -f 209/385/135 204/384/132 208/389/136 -f 210/393/14 209/390/135 215/392/9 -f 211/398/134 210/393/14 216/394/138 -f 214/391/137 209/390/135 213/396/139 -f 217/484/144 212/397/140 216/394/138 -f 216/406/138 215/399/9 221/401/141 -f 214/407/137 213/402/139 219/404/143 -f 222/485/156 217/405/144 221/401/141 -f 220/400/20 215/399/9 219/404/143 -f 219/415/143 218/408/142 224/410/146 -f 222/486/156 221/411/141 227/413/148 -f 225/416/23 220/414/20 224/410/146 -f 221/411/141 220/414/20 226/412/147 -f 227/487/148 226/417/147 232/419/150 -f 230/423/48 225/420/23 229/422/151 -f 231/418/149 226/417/147 230/423/48 -f 224/421/146 223/424/145 229/422/151 -f 196/432/127 231/426/149 195/428/30 -f 229/434/151 228/429/152 194/431/129 -f 232/488/150 231/426/149 197/433/153 -f 230/427/48 229/434/151 195/428/30 diff --git a/src/main/resources/assets/hbm/models/armor/no9.obj b/src/main/resources/assets/hbm/models/armor/no9.obj index 44aa2277a..ac13e9c9a 100644 --- a/src/main/resources/assets/hbm/models/armor/no9.obj +++ b/src/main/resources/assets/hbm/models/armor/no9.obj @@ -202,6 +202,12 @@ v 0.999989 -9.625004 -6.750004 v 0.999989 -9.375004 -6.750004 v -1.000010 -9.375004 -6.750004 v -1.000011 -9.625004 -6.750004 +v 0.999989 -10.000000 -3.000000 +v -1.000011 -10.000000 -3.000000 +v 0.999989 -10.000000 -4.500000 +v -1.000011 -10.000000 -4.500000 +v 0.999989 -8.500000 -4.500000 +v -1.000011 -8.500000 -4.500000 vt 0.604167 0.444444 vt 0.562500 0.444444 vt 0.541667 0.416667 @@ -334,6 +340,14 @@ vt 0.583333 0.722222 vt 0.750000 0.722222 vt 0.750000 0.555556 vt 0.583333 0.555556 +vt 0.166667 0.388889 +vt 0.250000 0.277778 +vt 0.250000 0.388889 +vt 0.166667 0.277778 +vt 0.250000 0.166667 +vt 0.333333 0.277778 +vt 0.083333 0.277778 +vt 0.166667 0.166667 vt 0.541667 0.361111 vt 0.625000 0.361111 vt 0.562500 0.333333 @@ -623,19 +637,23 @@ f 158/132/11 164/133/11 160/134/11 f 159/135/10 162/131/10 157/136/10 f 160/137/9 161/129/9 159/138/9 f 157/139/13 163/130/13 158/140/13 -f 23/11/9 22/141/9 20/142/9 -f 22/141/9 135/143/9 20/142/9 -f 135/143/9 136/144/9 20/142/9 -f 20/142/9 24/145/9 23/11/9 -f 24/145/9 139/9/9 23/11/9 +f 166/141/9 167/142/9 165/143/9 +f 168/144/25 169/145/25 167/142/25 +f 167/142/10 169/145/10 165/146/10 +f 168/144/11 166/147/11 170/148/11 +f 23/11/9 22/149/9 20/150/9 +f 22/149/9 135/151/9 20/150/9 +f 135/151/9 136/152/9 20/150/9 +f 20/150/9 24/153/9 23/11/9 +f 24/153/9 139/9/9 23/11/9 f 24/12/10 20/18/10 19/13/10 f 25/15/11 21/105/11 22/16/11 -f 20/18/12 136/146/12 134/19/12 -f 26/22/13 19/147/13 21/148/13 -f 19/147/13 134/149/13 21/148/13 -f 134/149/13 133/150/13 21/148/13 -f 21/148/13 25/151/13 26/22/13 -f 25/151/13 138/20/13 26/22/13 +f 20/18/12 136/154/12 134/19/12 +f 26/22/13 19/155/13 21/156/13 +f 19/155/13 134/157/13 21/156/13 +f 134/157/13 133/158/13 21/156/13 +f 21/156/13 25/159/13 26/22/13 +f 25/159/13 138/20/13 26/22/13 f 42/23/14 41/44/14 33/24/14 f 38/26/15 37/46/15 29/27/15 f 39/29/16 40/55/16 32/30/16 @@ -643,7 +661,7 @@ f 35/32/17 36/57/17 28/33/17 f 40/35/18 35/51/18 27/34/18 f 37/37/19 39/50/19 31/31/19 f 33/39/20 41/47/20 38/40/20 -f 34/25/21 28/152/21 36/41/21 +f 34/25/21 28/160/21 36/41/21 f 42/23/11 50/60/11 49/43/11 f 38/26/22 46/73/22 45/45/22 f 41/47/23 49/74/23 46/48/23 @@ -652,139 +670,141 @@ f 35/51/12 40/35/12 48/52/12 f 39/29/10 47/62/10 48/54/10 f 35/32/25 43/67/25 44/56/25 f 42/42/26 36/41/26 44/58/26 -f 50/60/27 54/153/27 53/61/27 -f 47/62/28 51/154/28 52/63/28 -f 51/64/9 53/155/9 54/65/9 +f 50/60/27 54/161/27 53/61/27 +f 47/62/28 51/162/28 52/63/28 +f 51/64/9 53/163/9 54/65/9 f 43/67/29 52/66/29 54/65/29 -f 53/72/33 51/156/33 45/45/33 -f 56/76/11 58/157/11 57/77/11 -f 61/79/10 62/158/10 60/80/10 -f 66/82/35 65/159/35 63/83/35 +f 53/72/33 51/164/33 45/45/33 +f 56/76/11 58/165/11 57/77/11 +f 61/79/10 62/166/10 60/80/10 +f 66/82/35 65/167/35 63/83/35 f 71/85/25 74/89/25 73/86/25 f 68/88/11 73/86/11 74/89/11 f 69/91/10 71/85/10 72/87/10 f 70/93/9 74/89/9 71/85/9 f 67/95/13 72/87/13 73/86/13 -f 122/99/11 120/160/11 130/97/11 -f 120/160/11 118/161/11 130/97/11 -f 118/161/11 132/162/11 130/97/11 -f 130/97/11 128/163/11 126/98/11 -f 126/98/11 124/164/11 122/99/11 -f 131/101/10 117/165/10 119/166/10 -f 119/166/10 121/167/10 131/101/10 -f 121/167/10 123/102/10 131/101/10 -f 123/102/10 125/168/10 127/169/10 -f 127/169/10 129/100/10 123/102/10 -f 134/19/25 136/146/25 135/103/25 +f 122/99/11 120/168/11 130/97/11 +f 120/168/11 118/169/11 130/97/11 +f 118/169/11 132/170/11 130/97/11 +f 130/97/11 128/171/11 126/98/11 +f 126/98/11 124/172/11 122/99/11 +f 131/101/10 117/173/10 119/174/10 +f 119/174/10 121/175/10 131/101/10 +f 121/175/10 123/102/10 131/101/10 +f 123/102/10 125/176/10 127/177/10 +f 127/177/10 129/100/10 123/102/10 +f 134/19/25 136/154/25 135/103/25 f 21/105/26 133/104/26 135/103/26 f 137/106/22 139/110/22 140/107/22 -f 23/17/23 137/170/23 138/109/23 +f 23/17/23 137/178/23 138/109/23 f 24/12/24 26/14/24 140/107/24 -f 142/111/28 144/171/28 143/112/28 -f 143/114/25 144/172/25 148/115/25 +f 142/111/28 144/179/28 143/112/28 +f 143/114/25 144/180/25 148/115/25 f 148/115/36 146/122/36 145/117/36 f 150/118/10 152/123/10 151/119/10 f 147/116/37 145/117/37 141/113/37 -f 144/121/27 142/173/27 146/122/27 +f 144/121/27 142/181/27 146/122/27 f 152/123/25 156/125/25 155/124/25 -f 156/125/11 154/174/11 153/126/11 -f 155/124/13 153/175/13 149/127/13 -f 152/123/9 150/176/9 154/128/9 +f 156/125/11 154/182/11 153/126/11 +f 155/124/13 153/183/13 149/127/13 +f 152/123/9 150/184/9 154/128/9 f 161/129/25 164/133/25 163/130/25 f 158/132/11 163/130/11 164/133/11 f 159/135/10 161/129/10 162/131/10 f 160/137/9 164/133/9 161/129/9 f 157/139/13 162/131/13 163/130/13 +f 166/141/9 168/144/9 167/142/9 +f 168/144/25 170/148/25 169/145/25 s 1 -f 99/177/38 78/178/39 79/179/40 -f 75/180/41 76/181/22 77/182/42 -f 98/183/43 77/182/42 78/178/39 -f 77/184/42 81/185/44 78/186/39 -f 78/186/39 82/187/45 79/188/40 -f 77/184/42 76/181/22 80/189/46 -f 81/190/44 83/191/47 84/192/48 -f 81/190/44 85/193/49 82/194/45 -f 80/195/46 76/181/22 83/191/47 -f 83/196/47 87/197/50 84/198/48 -f 84/198/48 88/199/51 85/200/49 -f 83/196/47 76/181/22 86/201/52 -f 87/202/50 89/203/53 90/204/54 -f 87/202/50 91/205/55 88/206/51 -f 86/207/52 76/181/22 89/203/53 -f 89/208/53 93/209/56 90/210/54 -f 90/210/54 94/211/57 91/212/55 -f 89/208/53 76/181/22 92/213/58 -f 93/214/56 97/215/59 94/216/57 -f 92/217/58 76/181/22 95/218/60 -f 93/214/56 95/218/60 96/219/61 -f 96/220/61 99/221/38 97/222/59 -f 95/223/60 76/181/22 75/224/41 -f 95/223/60 98/225/43 96/220/61 -f 100/226/62 102/227/63 101/228/25 -f 116/229/64 102/227/63 100/226/62 -f 105/230/65 102/231/63 103/232/66 -f 102/231/63 104/233/67 101/228/25 -f 105/234/65 106/235/68 104/236/67 -f 104/236/67 106/235/68 101/228/25 -f 109/237/69 106/238/68 107/239/70 -f 106/238/68 108/240/71 101/228/25 -f 109/241/69 110/242/72 108/243/71 -f 108/243/71 110/242/72 101/228/25 -f 113/244/73 110/245/72 111/246/74 -f 110/245/72 112/247/75 101/228/25 -f 82/248/76 107/249/70 105/234/65 -f 88/250/77 107/239/70 85/251/78 -f 112/252/75 114/253/79 101/228/25 -f 91/254/80 109/241/69 88/255/77 -f 94/256/81 111/246/74 91/257/80 -f 113/258/73 114/253/79 112/252/75 -f 115/259/82 94/260/81 97/261/83 -f 99/262/84 115/263/82 97/264/83 -f 114/265/79 100/266/62 101/228/25 -f 103/267/66 99/268/84 79/269/85 -f 79/270/85 105/230/65 103/232/66 -f 116/271/64 114/265/79 115/263/82 -f 118/272/25 119/273/86 117/274/25 -f 120/275/86 121/276/87 119/273/86 -f 125/277/88 128/278/33 127/279/33 -f 128/278/33 129/280/9 127/279/33 -f 130/281/9 131/282/29 129/280/9 -f 132/283/29 117/274/25 131/282/29 -f 99/177/38 98/183/43 78/178/39 -f 98/183/43 75/180/41 77/182/42 -f 77/184/42 80/189/46 81/185/44 -f 78/186/39 81/185/44 82/187/45 -f 81/190/44 80/195/46 83/191/47 -f 81/190/44 84/192/48 85/193/49 -f 83/196/47 86/201/52 87/197/50 -f 84/198/48 87/197/50 88/199/51 -f 87/202/50 86/207/52 89/203/53 -f 87/202/50 90/204/54 91/205/55 -f 89/208/53 92/213/58 93/209/56 -f 90/210/54 93/209/56 94/211/57 -f 93/214/56 96/219/61 97/215/59 -f 93/214/56 92/217/58 95/218/60 -f 96/220/61 98/225/43 99/221/38 -f 95/223/60 75/224/41 98/225/43 -f 116/229/64 103/267/66 102/227/63 -f 105/230/65 104/233/67 102/231/63 -f 105/234/65 107/249/70 106/235/68 -f 109/237/69 108/240/71 106/238/68 -f 109/241/69 111/284/74 110/242/72 -f 113/244/73 112/247/75 110/245/72 -f 82/248/76 85/285/78 107/249/70 -f 88/250/77 109/237/69 107/239/70 -f 91/254/80 111/284/74 109/241/69 -f 94/256/81 113/244/73 111/246/74 -f 113/258/73 115/259/82 114/253/79 -f 115/259/82 113/258/73 94/260/81 -f 99/262/84 116/271/64 115/263/82 -f 103/267/66 116/229/64 99/268/84 -f 79/270/85 82/286/76 105/230/65 -f 116/271/64 100/266/62 114/265/79 -f 118/272/25 120/275/86 119/273/86 -f 120/275/86 122/287/87 121/276/87 -f 125/277/88 126/288/88 128/278/33 -f 128/278/33 130/281/9 129/280/9 -f 130/281/9 132/283/29 131/282/29 -f 132/283/29 118/272/25 117/274/25 +f 99/185/38 78/186/39 79/187/40 +f 75/188/41 76/189/22 77/190/42 +f 98/191/43 77/190/42 78/186/39 +f 77/192/42 81/193/44 78/194/39 +f 78/194/39 82/195/45 79/196/40 +f 77/192/42 76/189/22 80/197/46 +f 81/198/44 83/199/47 84/200/48 +f 81/198/44 85/201/49 82/202/45 +f 80/203/46 76/189/22 83/199/47 +f 83/204/47 87/205/50 84/206/48 +f 84/206/48 88/207/51 85/208/49 +f 83/204/47 76/189/22 86/209/52 +f 87/210/50 89/211/53 90/212/54 +f 87/210/50 91/213/55 88/214/51 +f 86/215/52 76/189/22 89/211/53 +f 89/216/53 93/217/56 90/218/54 +f 90/218/54 94/219/57 91/220/55 +f 89/216/53 76/189/22 92/221/58 +f 93/222/56 97/223/59 94/224/57 +f 92/225/58 76/189/22 95/226/60 +f 93/222/56 95/226/60 96/227/61 +f 96/228/61 99/229/38 97/230/59 +f 95/231/60 76/189/22 75/232/41 +f 95/231/60 98/233/43 96/228/61 +f 100/234/62 102/235/63 101/236/25 +f 116/237/64 102/235/63 100/234/62 +f 105/238/65 102/239/63 103/240/66 +f 102/239/63 104/241/67 101/236/25 +f 105/242/65 106/243/68 104/244/67 +f 104/244/67 106/243/68 101/236/25 +f 109/245/69 106/246/68 107/247/70 +f 106/246/68 108/248/71 101/236/25 +f 109/249/69 110/250/72 108/251/71 +f 108/251/71 110/250/72 101/236/25 +f 113/252/73 110/253/72 111/254/74 +f 110/253/72 112/255/75 101/236/25 +f 82/256/76 107/257/70 105/242/65 +f 88/258/77 107/247/70 85/259/78 +f 112/260/75 114/261/79 101/236/25 +f 91/262/80 109/249/69 88/263/77 +f 94/264/81 111/254/74 91/265/80 +f 113/266/73 114/261/79 112/260/75 +f 115/267/82 94/268/81 97/269/83 +f 99/270/84 115/271/82 97/272/83 +f 114/273/79 100/274/62 101/236/25 +f 103/275/66 99/276/84 79/277/85 +f 79/278/85 105/238/65 103/240/66 +f 116/279/64 114/273/79 115/271/82 +f 118/280/25 119/281/86 117/282/25 +f 120/283/86 121/284/87 119/281/86 +f 125/285/88 128/286/33 127/287/33 +f 128/286/33 129/288/9 127/287/33 +f 130/289/9 131/290/29 129/288/9 +f 132/291/29 117/282/25 131/290/29 +f 99/185/38 98/191/43 78/186/39 +f 98/191/43 75/188/41 77/190/42 +f 77/192/42 80/197/46 81/193/44 +f 78/194/39 81/193/44 82/195/45 +f 81/198/44 80/203/46 83/199/47 +f 81/198/44 84/200/48 85/201/49 +f 83/204/47 86/209/52 87/205/50 +f 84/206/48 87/205/50 88/207/51 +f 87/210/50 86/215/52 89/211/53 +f 87/210/50 90/212/54 91/213/55 +f 89/216/53 92/221/58 93/217/56 +f 90/218/54 93/217/56 94/219/57 +f 93/222/56 96/227/61 97/223/59 +f 93/222/56 92/225/58 95/226/60 +f 96/228/61 98/233/43 99/229/38 +f 95/231/60 75/232/41 98/233/43 +f 116/237/64 103/275/66 102/235/63 +f 105/238/65 104/241/67 102/239/63 +f 105/242/65 107/257/70 106/243/68 +f 109/245/69 108/248/71 106/246/68 +f 109/249/69 111/292/74 110/250/72 +f 113/252/73 112/255/75 110/253/72 +f 82/256/76 85/293/78 107/257/70 +f 88/258/77 109/245/69 107/247/70 +f 91/262/80 111/292/74 109/249/69 +f 94/264/81 113/252/73 111/254/74 +f 113/266/73 115/267/82 114/261/79 +f 115/267/82 113/266/73 94/268/81 +f 99/270/84 116/279/64 115/271/82 +f 103/275/66 116/237/64 99/276/84 +f 79/278/85 82/294/76 105/238/65 +f 116/279/64 100/274/62 114/273/79 +f 118/280/25 120/283/86 119/281/86 +f 120/283/86 122/295/87 121/284/87 +f 125/285/88 126/296/88 128/286/33 +f 128/286/33 130/289/9 129/288/9 +f 130/289/9 132/291/29 131/290/29 +f 132/291/29 118/280/25 117/282/25 diff --git a/src/main/resources/assets/hbm/models/armor/steamsuit.obj b/src/main/resources/assets/hbm/models/armor/steamsuit.obj index 099bfddd6..c36978b0e 100644 --- a/src/main/resources/assets/hbm/models/armor/steamsuit.obj +++ b/src/main/resources/assets/hbm/models/armor/steamsuit.obj @@ -1,5 +1,231 @@ # Blender v2.79 (sub 0) OBJ File: 'steamsuit.blend' # www.blender.org +o RightBoot +v -5.000000 24.500002 3.000000 +v -5.000000 24.500002 -3.000000 +v 1.000000 24.500000 3.000000 +v 1.000000 24.500000 -3.000000 +v -4.000000 24.500002 -4.000000 +v 0.000000 24.500000 -4.000000 +v -0.000001 21.500000 -4.000000 +v -4.000001 21.500002 -4.000000 +v -4.500001 20.500002 2.000000 +v -4.500001 20.500002 -2.000000 +v -5.000001 20.500002 -2.000000 +v -5.000001 20.500002 2.000000 +v -5.000001 20.500002 3.000000 +v -5.000001 20.500002 -3.000000 +v -4.000001 20.500002 3.000000 +v -4.000001 20.500002 -3.000000 +v -4.000001 20.500002 2.500000 +v -4.000001 20.500002 -2.500000 +v -0.000001 20.500000 2.500000 +v -0.000001 20.500000 -2.500000 +v 0.999999 20.500000 -2.000000 +v 0.999999 20.500000 2.000000 +v 0.999999 20.500000 3.000000 +v 0.999999 20.500000 -3.000000 +v 0.499999 20.500000 -2.000000 +v 0.499999 20.500000 2.000000 +v -0.000001 20.500000 3.000000 +v -0.000001 20.500000 -3.000000 +vt -0.000000 0.425926 +vt 0.142857 0.407407 +vt -0.000000 0.407407 +vt 0.250000 0.425926 +vt 0.392857 0.407407 +vt 0.250000 0.407407 +vt 0.500000 0.425926 +vt 0.642857 0.407407 +vt 0.500000 0.407407 +vt 0.750000 0.407407 +vt 0.892857 0.425926 +vt 0.892857 0.407407 +vt 0.642857 0.259259 +vt 0.678571 0.407407 +vt 0.821429 0.407407 +vt 0.428571 0.259259 +vt 0.464286 0.407407 +vt 0.607143 0.407407 +vt 0.178571 0.407407 +vt 0.214286 0.407407 +vt 0.214286 0.259259 +vt 0.250000 0.370370 +vt 0.392857 0.259259 +vt 0.250000 0.259259 +vt 0.392857 0.370370 +vt 0.214286 0.222222 +vt 0.142857 0.425926 +vt 0.392857 0.425926 +vt 0.642857 0.425926 +vt 0.750000 0.425926 +vt 0.857143 0.407407 +vt 0.857143 0.259259 +vt 0.642857 0.407407 +vt 0.428571 0.407407 +vt 0.000000 0.259259 +vt 0.035714 0.407407 +vt -0.000000 0.407407 +vt 0.428571 0.222222 +vt 0.428571 0.000000 +vt 0.214286 -0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +s off +f 26/1/1 21/2/1 22/3/1 +f 20/4/1 16/5/1 28/6/1 +f 10/7/1 12/8/1 11/9/1 +f 15/10/1 19/11/1 27/12/1 +f 1/13/2 15/14/2 27/15/2 +f 2/16/3 11/17/3 12/18/3 +f 21/19/4 24/20/4 4/21/4 +f 7/22/5 5/23/5 6/24/5 +f 7/22/6 28/6/6 16/5/6 +f 4/21/7 7/22/7 6/24/7 +f 8/25/8 2/16/8 5/23/8 +f 4/26/9 6/24/9 5/23/9 +f 26/1/1 25/27/1 21/2/1 +f 20/4/1 18/28/1 16/5/1 +f 10/7/1 9/29/1 12/8/1 +f 15/10/1 17/30/1 19/11/1 +f 23/31/2 3/32/2 27/15/2 +f 3/32/2 1/13/2 27/15/2 +f 1/13/2 13/33/2 15/14/2 +f 13/33/3 1/13/3 12/18/3 +f 1/13/3 2/16/3 12/18/3 +f 2/16/3 14/34/3 11/17/3 +f 4/21/4 3/35/4 22/36/4 +f 3/35/4 23/37/4 22/36/4 +f 22/36/4 21/19/4 4/21/4 +f 7/22/5 8/25/5 5/23/5 +f 14/34/6 8/25/6 16/5/6 +f 8/25/6 7/22/6 16/5/6 +f 7/22/6 24/20/6 28/6/6 +f 4/21/7 24/20/7 7/22/7 +f 8/25/8 14/34/8 2/16/8 +f 5/23/9 2/38/9 4/26/9 +f 2/38/9 1/39/9 4/26/9 +f 1/39/9 3/40/9 4/26/9 +o LeftBoot +v 5.000000 24.499998 3.000000 +v 5.000000 24.499998 -3.000000 +v -1.000000 24.500000 3.000000 +v -1.000000 24.500000 -3.000000 +v 4.000000 24.499998 -4.000000 +v 0.000000 24.500000 -4.000000 +v -0.000001 21.500000 -4.000000 +v 3.999999 21.499998 -4.000000 +v 4.499999 20.499998 2.000000 +v 4.499999 20.499998 -2.000000 +v 4.999999 20.499998 -2.000000 +v 4.999999 20.499998 2.000000 +v 4.999999 20.499998 3.000000 +v 4.999999 20.499998 -3.000000 +v 3.999999 20.499998 3.000000 +v 3.999999 20.499998 -3.000000 +v 3.999999 20.499998 2.500000 +v 3.999999 20.499998 -2.500000 +v -0.000001 20.500000 2.500000 +v -0.000001 20.500000 -2.500000 +v -1.000001 20.500000 -2.000000 +v -1.000001 20.500000 2.000000 +v -1.000001 20.500000 3.000000 +v -1.000001 20.500000 -3.000000 +v -0.500001 20.500000 -2.000000 +v -0.500001 20.500000 2.000000 +v -0.000001 20.500000 3.000000 +v -0.000001 20.500000 -3.000000 +vt 0.142857 0.407407 +vt -0.000000 0.425926 +vt -0.000000 0.407407 +vt 0.392857 0.407407 +vt 0.250000 0.425926 +vt 0.250000 0.407407 +vt 0.642857 0.407407 +vt 0.500000 0.425926 +vt 0.500000 0.407407 +vt 0.892857 0.425926 +vt 0.750000 0.407407 +vt 0.892857 0.407407 +vt 0.678571 0.407407 +vt 0.642857 0.407407 +vt 0.642857 0.259259 +vt 0.464286 0.407407 +vt 0.428571 0.407407 +vt 0.428571 0.259259 +vt 0.214286 0.259259 +vt 0.178571 0.407407 +vt 0.035714 0.407407 +vt 0.392857 0.259259 +vt 0.250000 0.370370 +vt 0.250000 0.259259 +vt 0.214286 0.407407 +vt 0.392857 0.370370 +vt 0.214286 0.222222 +vt 0.214286 -0.000000 +vt 0.428571 0.000000 +vt 0.142857 0.425926 +vt 0.392857 0.425926 +vt 0.642857 0.425926 +vt 0.750000 0.425926 +vt 0.857143 0.259259 +vt 0.821429 0.407407 +vt 0.857143 0.407407 +vt 0.607143 0.407407 +vt -0.000000 0.407407 +vt 0.000000 0.259259 +vt 0.428571 0.222222 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +s off +f 49/41/10 54/42/10 50/43/10 +f 44/44/10 48/45/10 56/46/10 +f 40/47/10 38/48/10 39/49/10 +f 47/50/10 43/51/10 55/52/10 +f 43/53/11 41/54/11 29/55/11 +f 39/56/12 42/57/12 30/58/12 +f 32/59/13 49/60/13 50/61/13 +f 33/62/14 35/63/14 34/64/14 +f 56/46/15 52/65/15 35/63/15 +f 35/63/16 32/59/16 34/64/16 +f 30/58/17 36/66/17 33/62/17 +f 32/67/18 31/68/18 29/69/18 +f 49/41/10 53/70/10 54/42/10 +f 44/44/10 46/71/10 48/45/10 +f 40/47/10 37/72/10 38/48/10 +f 47/50/10 45/73/10 43/51/10 +f 29/55/11 31/74/11 55/75/11 +f 31/74/11 51/76/11 55/75/11 +f 55/75/11 43/53/11 29/55/11 +f 30/58/12 29/55/12 40/77/12 +f 29/55/12 41/54/12 40/77/12 +f 40/77/12 39/56/12 30/58/12 +f 51/78/13 31/79/13 50/61/13 +f 31/79/13 32/59/13 50/61/13 +f 32/59/13 52/65/13 49/60/13 +f 33/62/14 36/66/14 35/63/14 +f 35/63/15 36/66/15 44/44/15 +f 36/66/15 42/57/15 44/44/15 +f 44/44/15 56/46/15 35/63/15 +f 35/63/16 52/65/16 32/59/16 +f 30/58/17 42/57/17 36/66/17 +f 29/69/18 30/80/18 32/67/18 +f 30/80/18 33/62/18 32/67/18 +f 33/62/18 34/64/18 32/67/18 o RightArm v -4.000008 0.000002 -2.500000 v -4.000004 12.000001 -2.500000 @@ -833,451 +1059,443 @@ vn 0.0000 0.7071 -0.7071 vn 0.7071 0.7071 0.0000 vn -0.2425 0.9701 0.0000 s off -f 3/1/1 28/2/1 23/3/1 -f 17/4/2 19/5/2 42/6/2 -f 12/7/3 9/8/3 10/9/3 -f 14/10/4 15/11/4 13/12/4 -f 20/13/5 17/14/5 18/15/5 -f 22/16/4 19/17/4 20/13/4 -f 14/10/3 22/16/3 16/18/3 -f 18/15/6 1/19/6 2/20/6 -f 35/21/7 44/22/7 4/23/7 -f 25/24/6 5/25/6 7/26/6 -f 35/21/1 26/27/1 44/22/1 -f 27/28/1 1/19/1 17/4/1 -f 32/29/4 11/30/4 12/7/4 -f 29/31/6 10/9/6 9/8/6 -f 34/32/3 31/33/3 32/29/3 -f 36/34/6 33/35/6 34/32/6 -f 5/25/5 36/34/5 7/26/5 -f 38/36/5 13/37/5 15/38/5 -f 40/39/4 37/40/4 38/36/4 -f 29/31/3 40/39/3 30/41/3 -f 42/6/8 43/42/8 4/23/8 -f 27/43/5 23/3/5 28/2/5 -f 23/3/6 44/44/6 49/45/6 -f 11/46/1 29/47/1 9/48/1 -f 37/49/1 14/50/1 13/51/1 -f 37/49/9 41/52/9 42/6/9 -f 27/43/4 6/53/4 8/54/4 -f 49/45/3 26/55/3 25/24/3 -f 29/47/10 31/56/10 43/42/10 -f 54/57/4 45/58/4 46/59/4 -f 50/60/1 22/16/1 20/13/1 -f 18/15/1 50/61/1 20/13/1 -f 8/54/5 2/20/5 1/19/5 -f 3/62/1 49/45/1 25/63/1 -f 51/64/1 36/34/1 34/32/1 -f 32/29/1 51/65/1 34/32/1 -f 52/66/1 38/36/1 15/67/1 -f 30/41/1 52/68/1 10/69/1 -f 47/70/11 51/71/11 12/7/11 -f 47/72/12 48/73/12 25/24/12 -f 46/74/13 50/75/13 2/20/13 -f 45/58/14 52/76/14 15/11/14 -f 47/72/15 54/77/15 48/73/15 -f 46/74/5 48/78/5 54/79/5 -f 45/80/3 53/81/3 47/70/3 -f 59/82/5 61/83/5 60/84/5 -f 62/85/1 57/86/1 58/87/1 -f 60/84/8 56/88/8 55/89/8 -f 61/83/4 58/90/4 56/91/4 -f 59/82/6 55/92/6 57/93/6 -f 66/94/6 70/95/6 68/96/6 -f 64/97/4 67/98/4 69/99/4 -f 65/100/8 69/101/8 70/102/8 -f 63/103/1 68/104/1 67/105/1 -f 66/94/5 64/97/5 65/100/5 -f 74/106/6 78/107/6 76/108/6 -f 72/109/4 75/110/4 77/111/4 -f 73/112/8 77/113/8 78/114/8 -f 71/115/1 76/116/1 75/117/1 -f 74/106/5 72/109/5 73/112/5 -f 83/118/5 85/119/5 84/120/5 -f 86/121/1 81/122/1 82/123/1 -f 84/120/8 80/124/8 79/125/8 -f 85/119/4 82/126/4 80/127/4 -f 83/118/6 79/128/6 81/129/6 -f 90/130/6 94/131/6 92/132/6 -f 88/133/4 91/134/4 93/135/4 -f 89/136/8 93/137/8 94/138/8 -f 87/139/1 92/140/1 91/141/1 -f 90/130/5 88/133/5 89/136/5 -f 99/142/5 101/143/5 100/144/5 -f 102/145/1 97/146/1 98/147/1 -f 100/144/8 96/148/8 95/149/8 -f 101/143/4 98/150/4 96/151/4 -f 99/142/6 95/152/6 97/153/6 -f 107/154/5 109/155/5 108/156/5 -f 110/157/1 105/158/1 106/159/1 -f 108/156/8 104/160/8 103/161/8 -f 109/155/4 106/162/4 104/163/4 -f 107/154/6 103/164/6 105/165/6 -f 115/166/5 117/167/5 116/168/5 -f 118/169/1 113/170/1 114/171/1 -f 116/168/8 112/172/8 111/173/8 -f 117/167/4 114/174/4 112/175/4 -f 115/166/6 111/176/6 113/177/6 -f 122/178/6 126/179/6 124/180/6 -f 120/181/4 123/182/4 125/183/4 -f 121/184/8 125/185/8 126/186/8 -f 119/187/1 124/188/1 123/189/1 -f 122/178/5 120/181/5 121/184/5 -f 130/190/6 134/191/6 132/192/6 -f 128/193/4 131/194/4 133/195/4 -f 129/196/8 133/197/8 134/198/8 -f 127/199/1 132/200/1 131/201/1 -f 130/190/5 128/193/5 129/196/5 -f 138/202/6 142/203/6 140/204/6 -f 136/205/4 139/206/4 141/207/4 -f 137/208/8 141/209/8 142/210/8 -f 135/211/1 140/212/1 139/213/1 -f 138/202/5 136/205/5 137/208/5 -f 147/214/5 149/215/5 148/216/5 -f 150/217/1 145/218/1 146/219/1 -f 148/216/8 144/220/8 143/221/8 -f 149/215/4 146/222/4 144/223/4 -f 147/214/6 143/224/6 145/225/6 -f 155/226/3 157/227/3 156/228/3 -f 158/229/1 153/230/1 154/231/1 -f 156/228/8 152/232/8 151/233/8 -f 157/227/6 154/234/6 152/235/6 -f 155/226/4 151/236/4 153/237/4 -f 162/238/4 166/239/4 164/240/4 -f 160/241/6 163/242/6 165/243/6 -f 161/244/8 165/245/8 166/246/8 -f 159/247/1 164/248/1 163/249/1 -f 162/238/3 160/241/3 161/244/3 -f 170/250/4 174/251/4 172/252/4 -f 168/253/6 171/254/6 173/255/6 -f 169/256/8 173/257/8 174/258/8 -f 167/259/1 172/260/1 171/261/1 -f 170/250/3 168/253/3 169/256/3 -f 179/262/3 181/263/3 180/264/3 -f 182/265/1 177/266/1 178/267/1 -f 180/264/8 176/268/8 175/269/8 -f 181/263/6 178/270/6 176/271/6 -f 179/262/4 175/272/4 177/273/4 -f 187/274/3 189/275/3 188/276/3 -f 190/277/1 185/278/1 186/279/1 -f 188/276/8 184/280/8 183/281/8 -f 189/275/6 186/282/6 184/283/6 -f 187/274/4 183/284/4 185/285/4 -f 194/286/4 198/287/4 196/288/4 -f 192/289/6 195/290/6 197/291/6 -f 193/292/8 197/293/8 198/294/8 -f 191/295/1 196/296/1 195/297/1 -f 194/286/3 192/289/3 193/292/3 -f 202/298/4 206/299/4 204/300/4 -f 200/301/6 203/302/6 205/303/6 -f 201/304/8 205/305/8 206/306/8 -f 199/307/1 204/308/1 203/309/1 -f 202/298/3 200/301/3 201/304/3 -f 211/310/3 213/311/3 212/312/3 -f 214/313/1 209/314/1 210/315/1 -f 212/312/8 208/316/8 207/317/8 -f 213/311/6 210/318/6 208/319/6 -f 211/310/4 207/320/4 209/321/4 -f 218/322/3 222/323/3 220/324/3 -f 216/325/5 219/326/5 221/327/5 -f 217/328/8 221/329/8 222/330/8 -f 215/331/1 220/332/1 219/333/1 -f 218/322/6 216/325/6 217/328/6 -f 227/334/6 229/335/6 228/336/6 -f 230/337/1 225/338/1 226/339/1 -f 228/336/8 224/340/8 223/341/8 -f 229/335/5 226/342/5 224/343/5 -f 227/334/3 223/344/3 225/345/3 -f 235/346/6 237/347/6 236/348/6 -f 238/349/1 233/350/1 234/351/1 -f 236/348/8 232/352/8 231/353/8 -f 237/347/5 234/354/5 232/355/5 -f 235/346/3 231/356/3 233/357/3 -f 243/358/6 245/359/6 244/360/6 -f 246/361/1 241/362/1 242/363/1 -f 244/360/8 240/364/8 239/365/8 -f 245/359/5 242/366/5 240/367/5 -f 243/358/3 239/368/3 241/369/3 -f 250/370/3 254/371/3 252/372/3 -f 248/373/5 251/374/5 253/375/5 -f 249/376/8 253/377/8 254/378/8 -f 247/379/1 252/380/1 251/381/1 -f 250/370/6 248/373/6 249/376/6 -f 258/382/3 262/383/3 260/384/3 -f 256/385/5 259/386/5 261/387/5 -f 257/388/8 261/389/8 262/390/8 -f 255/391/1 260/392/1 259/393/1 -f 258/382/6 256/385/6 257/388/6 -f 270/394/3 274/395/3 272/396/3 -f 268/397/5 271/398/5 273/399/5 -f 269/400/8 273/401/8 274/402/8 -f 267/403/1 272/404/1 271/405/1 -f 270/394/6 268/397/6 269/400/6 -f 279/406/6 281/407/6 280/408/6 -f 282/409/1 277/410/1 278/411/1 -f 280/408/8 276/412/8 275/413/8 -f 281/407/5 278/414/5 276/415/5 -f 279/406/3 275/416/3 277/417/3 -f 286/418/3 290/419/3 288/420/3 -f 284/421/5 287/422/5 289/423/5 -f 285/424/8 289/425/8 290/426/8 -f 283/427/1 288/428/1 287/429/1 -f 286/418/6 284/421/6 285/424/6 -f 295/430/6 297/431/6 296/432/6 -f 298/433/1 293/434/1 294/435/1 -f 296/432/8 292/436/8 291/437/8 -f 297/431/5 294/438/5 292/439/5 -f 295/430/3 291/440/3 293/441/3 -f 265/442/8 302/443/8 266/444/8 -f 265/445/6 264/446/6 263/447/6 -f 300/448/4 301/449/4 299/450/4 -f 299/451/1 264/446/1 300/448/1 -f 300/448/3 266/444/3 302/443/3 -f 307/452/6 309/453/6 308/454/6 -f 310/455/1 305/456/1 306/457/1 -f 308/454/8 304/458/8 303/459/8 -f 309/453/5 306/460/5 304/461/5 -f 307/452/3 303/462/3 305/463/3 -f 314/464/3 318/465/3 316/466/3 -f 312/467/5 315/468/5 317/469/5 -f 313/470/8 317/471/8 318/472/8 -f 311/473/1 316/474/1 315/475/1 -f 314/464/6 312/467/6 313/470/6 -f 3/1/1 6/476/1 28/2/1 -f 42/6/2 4/23/2 27/28/2 -f 4/23/2 24/477/2 27/28/2 -f 27/28/2 17/4/2 42/6/2 -f 12/7/3 11/30/3 9/8/3 -f 14/10/4 16/18/4 15/11/4 -f 20/13/5 19/17/5 17/14/5 -f 22/16/4 21/478/4 19/17/4 -f 14/10/3 21/478/3 22/16/3 -f 18/15/6 17/14/6 1/19/6 -f 44/22/7 24/477/7 4/23/7 -f 4/23/7 43/42/7 35/21/7 -f 43/42/7 33/479/7 35/21/7 -f 25/24/6 26/55/6 5/25/6 -f 35/21/1 5/480/1 26/27/1 -f 27/28/1 8/54/1 1/19/1 -f 32/29/4 31/33/4 11/30/4 -f 29/31/6 30/41/6 10/9/6 -f 34/32/3 33/35/3 31/33/3 -f 36/34/6 35/481/6 33/35/6 -f 5/25/5 35/481/5 36/34/5 -f 38/36/5 37/40/5 13/37/5 -f 40/39/4 39/482/4 37/40/4 -f 29/31/3 39/482/3 40/39/3 -f 42/6/8 41/52/8 43/42/8 -f 27/43/5 24/483/5 23/3/5 -f 23/3/6 24/483/6 44/44/6 -f 11/46/1 31/56/1 29/47/1 -f 37/49/1 21/484/1 14/50/1 -f 42/6/9 19/5/9 21/484/9 -f 37/49/9 39/485/9 41/52/9 -f 42/6/9 21/484/9 37/49/9 -f 27/43/4 28/2/4 6/53/4 -f 49/45/3 44/44/3 26/55/3 -f 31/56/10 33/479/10 43/42/10 -f 43/42/10 41/52/10 29/47/10 -f 41/52/10 39/485/10 29/47/10 -f 54/57/4 53/486/4 45/58/4 -f 50/60/1 16/487/1 22/16/1 -f 18/15/1 2/488/1 50/61/1 -f 8/54/5 6/53/5 2/20/5 -f 3/62/1 23/3/1 49/45/1 -f 51/64/1 7/489/1 36/34/1 -f 32/29/1 12/490/1 51/65/1 -f 52/66/1 40/39/1 38/36/1 -f 30/41/1 40/39/1 52/68/1 -f 12/7/11 10/9/11 47/70/11 -f 10/9/11 52/491/11 45/80/11 -f 47/70/11 10/9/11 45/80/11 -f 3/492/12 25/24/12 48/73/12 -f 25/24/12 7/26/12 47/72/12 -f 7/26/12 51/493/12 47/72/12 -f 2/20/13 6/53/13 46/74/13 -f 6/53/13 3/494/13 48/78/13 -f 46/74/13 6/53/13 48/78/13 -f 15/11/14 16/18/14 45/58/14 -f 16/18/14 50/495/14 46/59/14 -f 45/58/14 16/18/14 46/59/14 -f 47/72/15 53/496/15 54/77/15 -f 59/82/5 62/85/5 61/83/5 -f 62/85/1 59/82/1 57/86/1 -f 60/84/8 61/83/8 56/88/8 -f 61/83/4 62/85/4 58/90/4 -f 59/82/6 60/84/6 55/92/6 -f 66/94/6 65/100/6 70/95/6 -f 64/97/4 63/103/4 67/98/4 -f 65/100/8 64/97/8 69/101/8 -f 63/103/1 66/94/1 68/104/1 -f 66/94/5 63/103/5 64/97/5 -f 74/106/6 73/112/6 78/107/6 -f 72/109/4 71/115/4 75/110/4 -f 73/112/8 72/109/8 77/113/8 -f 71/115/1 74/106/1 76/116/1 -f 74/106/5 71/115/5 72/109/5 -f 83/118/5 86/121/5 85/119/5 -f 86/121/1 83/118/1 81/122/1 -f 84/120/8 85/119/8 80/124/8 -f 85/119/4 86/121/4 82/126/4 -f 83/118/6 84/120/6 79/128/6 -f 90/130/6 89/136/6 94/131/6 -f 88/133/4 87/139/4 91/134/4 -f 89/136/8 88/133/8 93/137/8 -f 87/139/1 90/130/1 92/140/1 -f 90/130/5 87/139/5 88/133/5 -f 99/142/5 102/145/5 101/143/5 -f 102/145/1 99/142/1 97/146/1 -f 100/144/8 101/143/8 96/148/8 -f 101/143/4 102/145/4 98/150/4 -f 99/142/6 100/144/6 95/152/6 -f 107/154/5 110/157/5 109/155/5 -f 110/157/1 107/154/1 105/158/1 -f 108/156/8 109/155/8 104/160/8 -f 109/155/4 110/157/4 106/162/4 -f 107/154/6 108/156/6 103/164/6 -f 115/166/5 118/169/5 117/167/5 -f 118/169/1 115/166/1 113/170/1 -f 116/168/8 117/167/8 112/172/8 -f 117/167/4 118/169/4 114/174/4 -f 115/166/6 116/168/6 111/176/6 -f 122/178/6 121/184/6 126/179/6 -f 120/181/4 119/187/4 123/182/4 -f 121/184/8 120/181/8 125/185/8 -f 119/187/1 122/178/1 124/188/1 -f 122/178/5 119/187/5 120/181/5 -f 130/190/6 129/196/6 134/191/6 -f 128/193/4 127/199/4 131/194/4 -f 129/196/8 128/193/8 133/197/8 -f 127/199/1 130/190/1 132/200/1 -f 130/190/5 127/199/5 128/193/5 -f 138/202/6 137/208/6 142/203/6 -f 136/205/4 135/211/4 139/206/4 -f 137/208/8 136/205/8 141/209/8 -f 135/211/1 138/202/1 140/212/1 -f 138/202/5 135/211/5 136/205/5 -f 147/214/5 150/217/5 149/215/5 -f 150/217/1 147/214/1 145/218/1 -f 148/216/8 149/215/8 144/220/8 -f 149/215/4 150/217/4 146/222/4 -f 147/214/6 148/216/6 143/224/6 -f 155/226/3 158/229/3 157/227/3 -f 158/229/1 155/226/1 153/230/1 -f 156/228/8 157/227/8 152/232/8 -f 157/227/6 158/229/6 154/234/6 -f 155/226/4 156/228/4 151/236/4 -f 162/238/4 161/244/4 166/239/4 -f 160/241/6 159/247/6 163/242/6 -f 161/244/8 160/241/8 165/245/8 -f 159/247/1 162/238/1 164/248/1 -f 162/238/3 159/247/3 160/241/3 -f 170/250/4 169/256/4 174/251/4 -f 168/253/6 167/259/6 171/254/6 -f 169/256/8 168/253/8 173/257/8 -f 167/259/1 170/250/1 172/260/1 -f 170/250/3 167/259/3 168/253/3 -f 179/262/3 182/265/3 181/263/3 -f 182/265/1 179/262/1 177/266/1 -f 180/264/8 181/263/8 176/268/8 -f 181/263/6 182/265/6 178/270/6 -f 179/262/4 180/264/4 175/272/4 -f 187/274/3 190/277/3 189/275/3 -f 190/277/1 187/274/1 185/278/1 -f 188/276/8 189/275/8 184/280/8 -f 189/275/6 190/277/6 186/282/6 -f 187/274/4 188/276/4 183/284/4 -f 194/286/4 193/292/4 198/287/4 -f 192/289/6 191/295/6 195/290/6 -f 193/292/8 192/289/8 197/293/8 -f 191/295/1 194/286/1 196/296/1 -f 194/286/3 191/295/3 192/289/3 -f 202/298/4 201/304/4 206/299/4 -f 200/301/6 199/307/6 203/302/6 -f 201/304/8 200/301/8 205/305/8 -f 199/307/1 202/298/1 204/308/1 -f 202/298/3 199/307/3 200/301/3 -f 211/310/3 214/313/3 213/311/3 -f 214/313/1 211/310/1 209/314/1 -f 212/312/8 213/311/8 208/316/8 -f 213/311/6 214/313/6 210/318/6 -f 211/310/4 212/312/4 207/320/4 -f 218/322/3 217/328/3 222/323/3 -f 216/325/5 215/331/5 219/326/5 -f 217/328/8 216/325/8 221/329/8 -f 215/331/1 218/322/1 220/332/1 -f 218/322/6 215/331/6 216/325/6 -f 227/334/6 230/337/6 229/335/6 -f 230/337/1 227/334/1 225/338/1 -f 228/336/8 229/335/8 224/340/8 -f 229/335/5 230/337/5 226/342/5 -f 227/334/3 228/336/3 223/344/3 -f 235/346/6 238/349/6 237/347/6 -f 238/349/1 235/346/1 233/350/1 -f 236/348/8 237/347/8 232/352/8 -f 237/347/5 238/349/5 234/354/5 -f 235/346/3 236/348/3 231/356/3 -f 243/358/6 246/361/6 245/359/6 -f 246/361/1 243/358/1 241/362/1 -f 244/360/8 245/359/8 240/364/8 -f 245/359/5 246/361/5 242/366/5 -f 243/358/3 244/360/3 239/368/3 -f 250/370/3 249/376/3 254/371/3 -f 248/373/5 247/379/5 251/374/5 -f 249/376/8 248/373/8 253/377/8 -f 247/379/1 250/370/1 252/380/1 -f 250/370/6 247/379/6 248/373/6 -f 258/382/3 257/388/3 262/383/3 -f 256/385/5 255/391/5 259/386/5 -f 257/388/8 256/385/8 261/389/8 -f 255/391/1 258/382/1 260/392/1 -f 258/382/6 255/391/6 256/385/6 -f 270/394/3 269/400/3 274/395/3 -f 268/397/5 267/403/5 271/398/5 -f 269/400/8 268/397/8 273/401/8 -f 267/403/1 270/394/1 272/404/1 -f 270/394/6 267/403/6 268/397/6 -f 279/406/6 282/409/6 281/407/6 -f 282/409/1 279/406/1 277/410/1 -f 280/408/8 281/407/8 276/412/8 -f 281/407/5 282/409/5 278/414/5 -f 279/406/3 280/408/3 275/416/3 -f 286/418/3 285/424/3 290/419/3 -f 284/421/5 283/427/5 287/422/5 -f 285/424/8 284/421/8 289/425/8 -f 283/427/1 286/418/1 288/428/1 -f 286/418/6 283/427/6 284/421/6 -f 295/430/6 298/433/6 297/431/6 -f 298/433/1 295/430/1 293/434/1 -f 296/432/8 297/431/8 292/436/8 -f 297/431/5 298/433/5 294/438/5 -f 295/430/3 296/432/3 291/440/3 -f 265/442/8 301/497/8 302/443/8 -f 265/445/6 266/444/6 264/446/6 -f 300/448/4 302/443/4 301/449/4 -f 299/451/1 263/498/1 264/446/1 -f 300/448/3 264/446/3 266/444/3 -f 307/452/6 310/455/6 309/453/6 -f 310/455/1 307/452/1 305/456/1 -f 308/454/8 309/453/8 304/458/8 -f 309/453/5 310/455/5 306/460/5 -f 307/452/3 308/454/3 303/462/3 -f 314/464/3 313/470/3 318/465/3 -f 312/467/5 311/473/5 315/468/5 -f 313/470/8 312/467/8 317/471/8 -f 311/473/1 314/464/1 316/474/1 -f 314/464/6 311/473/6 312/467/6 +f 59/81/19 84/82/19 79/83/19 +f 73/84/20 75/85/20 98/86/20 +f 68/87/21 65/88/21 66/89/21 +f 70/90/22 71/91/22 69/92/22 +f 76/93/23 73/94/23 74/95/23 +f 78/96/22 75/97/22 76/93/22 +f 70/90/21 78/96/21 72/98/21 +f 74/95/24 57/99/24 58/100/24 +f 91/101/25 100/102/25 60/103/25 +f 81/104/24 61/105/24 63/106/24 +f 91/101/19 82/107/19 100/102/19 +f 83/108/19 57/99/19 73/84/19 +f 88/109/22 67/110/22 68/87/22 +f 85/111/24 66/89/24 65/88/24 +f 90/112/21 87/113/21 88/109/21 +f 92/114/24 89/115/24 90/112/24 +f 61/105/23 92/114/23 63/106/23 +f 94/116/23 69/117/23 71/118/23 +f 96/119/22 93/120/22 94/116/22 +f 85/111/21 96/119/21 86/121/21 +f 98/86/26 99/122/26 60/103/26 +f 83/123/23 79/83/23 84/82/23 +f 79/83/24 100/124/24 105/125/24 +f 67/126/19 85/127/19 65/128/19 +f 93/129/19 70/130/19 69/131/19 +f 93/129/27 97/132/27 98/86/27 +f 83/123/22 62/133/22 64/134/22 +f 105/125/21 82/135/21 81/104/21 +f 85/127/28 87/136/28 99/122/28 +f 110/137/22 101/138/22 102/139/22 +f 106/140/19 78/96/19 76/93/19 +f 74/95/19 106/141/19 76/93/19 +f 64/134/23 58/100/23 57/99/23 +f 59/142/19 105/125/19 81/143/19 +f 107/144/19 92/114/19 90/112/19 +f 88/109/19 107/145/19 90/112/19 +f 108/146/19 94/116/19 71/147/19 +f 86/121/19 108/148/19 66/149/19 +f 103/150/29 107/151/29 68/87/29 +f 103/152/30 104/153/30 81/104/30 +f 102/154/31 106/155/31 58/100/31 +f 101/138/32 108/156/32 71/91/32 +f 103/152/33 110/157/33 104/153/33 +f 102/154/23 104/158/23 110/159/23 +f 101/160/21 109/161/21 103/150/21 +f 115/162/23 117/163/23 116/164/23 +f 118/165/19 113/166/19 114/167/19 +f 116/164/26 112/168/26 111/169/26 +f 117/163/22 114/170/22 112/171/22 +f 115/162/24 111/172/24 113/173/24 +f 122/174/24 126/175/24 124/176/24 +f 120/177/22 123/178/22 125/179/22 +f 121/180/26 125/181/26 126/182/26 +f 119/183/19 124/184/19 123/185/19 +f 122/174/23 120/177/23 121/180/23 +f 130/186/24 134/187/24 132/188/24 +f 128/189/22 131/190/22 133/191/22 +f 129/192/26 133/193/26 134/194/26 +f 127/195/19 132/196/19 131/197/19 +f 130/186/23 128/189/23 129/192/23 +f 139/198/23 141/199/23 140/200/23 +f 142/201/19 137/202/19 138/203/19 +f 140/200/26 136/204/26 135/205/26 +f 141/199/22 138/206/22 136/207/22 +f 139/198/24 135/208/24 137/209/24 +f 146/210/24 150/211/24 148/212/24 +f 144/213/22 147/214/22 149/215/22 +f 145/216/26 149/217/26 150/218/26 +f 143/219/19 148/220/19 147/221/19 +f 146/210/23 144/213/23 145/216/23 +f 155/222/23 157/223/23 156/224/23 +f 158/225/19 153/226/19 154/227/19 +f 156/224/26 152/228/26 151/229/26 +f 157/223/22 154/230/22 152/231/22 +f 155/222/24 151/232/24 153/233/24 +f 163/234/23 165/235/23 164/236/23 +f 166/237/19 161/238/19 162/239/19 +f 164/236/26 160/240/26 159/241/26 +f 165/235/22 162/242/22 160/243/22 +f 163/234/24 159/244/24 161/245/24 +f 171/246/23 173/247/23 172/248/23 +f 174/249/19 169/250/19 170/251/19 +f 172/248/26 168/252/26 167/253/26 +f 173/247/22 170/254/22 168/255/22 +f 171/246/24 167/256/24 169/257/24 +f 178/258/24 182/259/24 180/260/24 +f 176/261/22 179/262/22 181/263/22 +f 177/264/26 181/265/26 182/266/26 +f 175/267/19 180/268/19 179/269/19 +f 178/258/23 176/261/23 177/264/23 +f 186/270/24 190/271/24 188/272/24 +f 184/273/22 187/274/22 189/275/22 +f 185/276/26 189/277/26 190/278/26 +f 183/279/19 188/280/19 187/281/19 +f 186/270/23 184/273/23 185/276/23 +f 194/282/24 198/283/24 196/284/24 +f 192/285/22 195/286/22 197/287/22 +f 193/288/26 197/289/26 198/290/26 +f 191/291/19 196/292/19 195/293/19 +f 194/282/23 192/285/23 193/288/23 +f 203/294/23 205/295/23 204/296/23 +f 206/297/19 201/298/19 202/299/19 +f 204/296/26 200/300/26 199/301/26 +f 205/295/22 202/302/22 200/303/22 +f 203/294/24 199/304/24 201/305/24 +f 211/306/21 213/307/21 212/308/21 +f 214/309/19 209/310/19 210/311/19 +f 212/308/26 208/312/26 207/313/26 +f 213/307/24 210/314/24 208/315/24 +f 211/306/22 207/316/22 209/317/22 +f 218/318/22 222/319/22 220/320/22 +f 216/321/24 219/322/24 221/323/24 +f 217/324/26 221/325/26 222/326/26 +f 215/327/19 220/328/19 219/329/19 +f 218/318/21 216/321/21 217/324/21 +f 226/330/22 230/331/22 228/332/22 +f 224/333/24 227/334/24 229/335/24 +f 225/336/26 229/337/26 230/338/26 +f 223/339/19 228/340/19 227/341/19 +f 226/330/21 224/333/21 225/336/21 +f 235/342/21 237/343/21 236/344/21 +f 238/345/19 233/346/19 234/347/19 +f 236/344/26 232/348/26 231/349/26 +f 237/343/24 234/350/24 232/351/24 +f 235/342/22 231/352/22 233/353/22 +f 243/354/21 245/355/21 244/356/21 +f 246/357/19 241/358/19 242/359/19 +f 244/356/26 240/360/26 239/361/26 +f 245/355/24 242/362/24 240/363/24 +f 243/354/22 239/364/22 241/365/22 +f 250/366/22 254/367/22 252/368/22 +f 248/369/24 251/370/24 253/371/24 +f 249/372/26 253/373/26 254/374/26 +f 247/375/19 252/376/19 251/377/19 +f 250/366/21 248/369/21 249/372/21 +f 258/378/22 262/379/22 260/380/22 +f 256/381/24 259/382/24 261/383/24 +f 257/384/26 261/385/26 262/386/26 +f 255/387/19 260/388/19 259/389/19 +f 258/378/21 256/381/21 257/384/21 +f 267/390/21 269/391/21 268/392/21 +f 270/393/19 265/394/19 266/395/19 +f 268/392/26 264/396/26 263/397/26 +f 269/391/24 266/398/24 264/399/24 +f 267/390/22 263/400/22 265/401/22 +f 274/402/21 278/403/21 276/404/21 +f 272/405/23 275/406/23 277/407/23 +f 273/408/26 277/409/26 278/410/26 +f 271/411/19 276/412/19 275/413/19 +f 274/402/24 272/405/24 273/408/24 +f 283/414/24 285/415/24 284/416/24 +f 286/417/19 281/418/19 282/419/19 +f 284/416/26 280/420/26 279/421/26 +f 285/415/23 282/422/23 280/423/23 +f 283/414/21 279/424/21 281/425/21 +f 291/426/24 293/427/24 292/428/24 +f 294/429/19 289/430/19 290/431/19 +f 292/428/26 288/432/26 287/433/26 +f 293/427/23 290/434/23 288/435/23 +f 291/426/21 287/436/21 289/437/21 +f 299/438/24 301/439/24 300/440/24 +f 302/441/19 297/442/19 298/443/19 +f 300/440/26 296/444/26 295/445/26 +f 301/439/23 298/446/23 296/447/23 +f 299/438/21 295/448/21 297/449/21 +f 306/450/21 310/451/21 308/452/21 +f 304/453/23 307/454/23 309/455/23 +f 305/456/26 309/457/26 310/458/26 +f 303/459/19 308/460/19 307/461/19 +f 306/450/24 304/453/24 305/456/24 +f 314/462/21 318/463/21 316/464/21 +f 312/465/23 315/466/23 317/467/23 +f 313/468/26 317/469/26 318/470/26 +f 311/471/19 316/472/19 315/473/19 +f 314/462/24 312/465/24 313/468/24 +f 326/474/21 330/475/21 328/476/21 +f 324/477/23 327/478/23 329/479/23 +f 325/480/26 329/481/26 330/482/26 +f 323/483/19 328/484/19 327/485/19 +f 326/474/24 324/477/24 325/480/24 +f 335/486/24 337/487/24 336/488/24 +f 338/489/19 333/490/19 334/491/19 +f 336/488/26 332/492/26 331/493/26 +f 337/487/23 334/494/23 332/495/23 +f 335/486/21 331/496/21 333/497/21 +f 342/498/21 346/499/21 344/500/21 +f 340/501/23 343/502/23 345/503/23 +f 341/504/26 345/505/26 346/506/26 +f 339/507/19 344/508/19 343/509/19 +f 342/498/24 340/501/24 341/504/24 +f 351/510/24 353/511/24 352/512/24 +f 354/513/19 349/514/19 350/515/19 +f 352/512/26 348/516/26 347/517/26 +f 353/511/23 350/518/23 348/519/23 +f 351/510/21 347/520/21 349/521/21 +f 321/522/26 358/523/26 322/524/26 +f 321/525/24 320/526/24 319/527/24 +f 356/528/22 357/529/22 355/530/22 +f 355/531/19 320/526/19 356/528/19 +f 356/528/21 322/524/21 358/523/21 +f 363/532/24 365/533/24 364/534/24 +f 366/535/19 361/536/19 362/537/19 +f 364/534/26 360/538/26 359/539/26 +f 365/533/23 362/540/23 360/541/23 +f 363/532/21 359/542/21 361/543/21 +f 370/544/21 374/545/21 372/546/21 +f 368/547/23 371/548/23 373/549/23 +f 369/550/26 373/551/26 374/552/26 +f 367/553/19 372/554/19 371/555/19 +f 370/544/24 368/547/24 369/550/24 +f 59/81/19 62/556/19 84/82/19 +f 98/86/20 60/103/20 83/108/20 +f 60/103/20 80/557/20 83/108/20 +f 83/108/20 73/84/20 98/86/20 +f 68/87/21 67/110/21 65/88/21 +f 70/90/22 72/98/22 71/91/22 +f 76/93/23 75/97/23 73/94/23 +f 78/96/22 77/558/22 75/97/22 +f 70/90/21 77/558/21 78/96/21 +f 74/95/24 73/94/24 57/99/24 +f 100/102/25 80/557/25 60/103/25 +f 60/103/25 99/122/25 91/101/25 +f 99/122/25 89/559/25 91/101/25 +f 81/104/24 82/135/24 61/105/24 +f 91/101/19 61/560/19 82/107/19 +f 83/108/19 64/134/19 57/99/19 +f 88/109/22 87/113/22 67/110/22 +f 85/111/24 86/121/24 66/89/24 +f 90/112/21 89/115/21 87/113/21 +f 92/114/24 91/561/24 89/115/24 +f 61/105/23 91/561/23 92/114/23 +f 94/116/23 93/120/23 69/117/23 +f 96/119/22 95/562/22 93/120/22 +f 85/111/21 95/562/21 96/119/21 +f 98/86/26 97/132/26 99/122/26 +f 83/123/23 80/563/23 79/83/23 +f 79/83/24 80/563/24 100/124/24 +f 67/126/19 87/136/19 85/127/19 +f 93/129/19 77/564/19 70/130/19 +f 98/86/27 75/85/27 77/564/27 +f 93/129/27 95/565/27 97/132/27 +f 98/86/27 77/564/27 93/129/27 +f 83/123/22 84/82/22 62/133/22 +f 105/125/21 100/124/21 82/135/21 +f 87/136/28 89/559/28 99/122/28 +f 99/122/28 97/132/28 85/127/28 +f 97/132/28 95/565/28 85/127/28 +f 110/137/22 109/566/22 101/138/22 +f 106/140/19 72/567/19 78/96/19 +f 74/95/19 58/568/19 106/141/19 +f 64/134/23 62/133/23 58/100/23 +f 59/142/19 79/83/19 105/125/19 +f 107/144/19 63/569/19 92/114/19 +f 88/109/19 68/570/19 107/145/19 +f 108/146/19 96/119/19 94/116/19 +f 86/121/19 96/119/19 108/148/19 +f 68/87/29 66/89/29 103/150/29 +f 66/89/29 108/571/29 101/160/29 +f 103/150/29 66/89/29 101/160/29 +f 59/572/30 81/104/30 104/153/30 +f 81/104/30 63/106/30 103/152/30 +f 63/106/30 107/573/30 103/152/30 +f 58/100/31 62/133/31 102/154/31 +f 62/133/31 59/574/31 104/158/31 +f 102/154/31 62/133/31 104/158/31 +f 71/91/32 72/98/32 101/138/32 +f 72/98/32 106/575/32 102/139/32 +f 101/138/32 72/98/32 102/139/32 +f 103/152/33 109/576/33 110/157/33 +f 115/162/23 118/165/23 117/163/23 +f 118/165/19 115/162/19 113/166/19 +f 116/164/26 117/163/26 112/168/26 +f 117/163/22 118/165/22 114/170/22 +f 115/162/24 116/164/24 111/172/24 +f 122/174/24 121/180/24 126/175/24 +f 120/177/22 119/183/22 123/178/22 +f 121/180/26 120/177/26 125/181/26 +f 119/183/19 122/174/19 124/184/19 +f 122/174/23 119/183/23 120/177/23 +f 130/186/24 129/192/24 134/187/24 +f 128/189/22 127/195/22 131/190/22 +f 129/192/26 128/189/26 133/193/26 +f 127/195/19 130/186/19 132/196/19 +f 130/186/23 127/195/23 128/189/23 +f 139/198/23 142/201/23 141/199/23 +f 142/201/19 139/198/19 137/202/19 +f 140/200/26 141/199/26 136/204/26 +f 141/199/22 142/201/22 138/206/22 +f 139/198/24 140/200/24 135/208/24 +f 146/210/24 145/216/24 150/211/24 +f 144/213/22 143/219/22 147/214/22 +f 145/216/26 144/213/26 149/217/26 +f 143/219/19 146/210/19 148/220/19 +f 146/210/23 143/219/23 144/213/23 +f 155/222/23 158/225/23 157/223/23 +f 158/225/19 155/222/19 153/226/19 +f 156/224/26 157/223/26 152/228/26 +f 157/223/22 158/225/22 154/230/22 +f 155/222/24 156/224/24 151/232/24 +f 163/234/23 166/237/23 165/235/23 +f 166/237/19 163/234/19 161/238/19 +f 164/236/26 165/235/26 160/240/26 +f 165/235/22 166/237/22 162/242/22 +f 163/234/24 164/236/24 159/244/24 +f 171/246/23 174/249/23 173/247/23 +f 174/249/19 171/246/19 169/250/19 +f 172/248/26 173/247/26 168/252/26 +f 173/247/22 174/249/22 170/254/22 +f 171/246/24 172/248/24 167/256/24 +f 178/258/24 177/264/24 182/259/24 +f 176/261/22 175/267/22 179/262/22 +f 177/264/26 176/261/26 181/265/26 +f 175/267/19 178/258/19 180/268/19 +f 178/258/23 175/267/23 176/261/23 +f 186/270/24 185/276/24 190/271/24 +f 184/273/22 183/279/22 187/274/22 +f 185/276/26 184/273/26 189/277/26 +f 183/279/19 186/270/19 188/280/19 +f 186/270/23 183/279/23 184/273/23 +f 194/282/24 193/288/24 198/283/24 +f 192/285/22 191/291/22 195/286/22 +f 193/288/26 192/285/26 197/289/26 +f 191/291/19 194/282/19 196/292/19 +f 194/282/23 191/291/23 192/285/23 +f 203/294/23 206/297/23 205/295/23 +f 206/297/19 203/294/19 201/298/19 +f 204/296/26 205/295/26 200/300/26 +f 205/295/22 206/297/22 202/302/22 +f 203/294/24 204/296/24 199/304/24 +f 211/306/21 214/309/21 213/307/21 +f 214/309/19 211/306/19 209/310/19 +f 212/308/26 213/307/26 208/312/26 +f 213/307/24 214/309/24 210/314/24 +f 211/306/22 212/308/22 207/316/22 +f 218/318/22 217/324/22 222/319/22 +f 216/321/24 215/327/24 219/322/24 +f 217/324/26 216/321/26 221/325/26 +f 215/327/19 218/318/19 220/328/19 +f 218/318/21 215/327/21 216/321/21 +f 226/330/22 225/336/22 230/331/22 +f 224/333/24 223/339/24 227/334/24 +f 225/336/26 224/333/26 229/337/26 +f 223/339/19 226/330/19 228/340/19 +f 226/330/21 223/339/21 224/333/21 +f 235/342/21 238/345/21 237/343/21 +f 238/345/19 235/342/19 233/346/19 +f 236/344/26 237/343/26 232/348/26 +f 237/343/24 238/345/24 234/350/24 +f 235/342/22 236/344/22 231/352/22 +f 243/354/21 246/357/21 245/355/21 +f 246/357/19 243/354/19 241/358/19 +f 244/356/26 245/355/26 240/360/26 +f 245/355/24 246/357/24 242/362/24 +f 243/354/22 244/356/22 239/364/22 +f 250/366/22 249/372/22 254/367/22 +f 248/369/24 247/375/24 251/370/24 +f 249/372/26 248/369/26 253/373/26 +f 247/375/19 250/366/19 252/376/19 +f 250/366/21 247/375/21 248/369/21 +f 258/378/22 257/384/22 262/379/22 +f 256/381/24 255/387/24 259/382/24 +f 257/384/26 256/381/26 261/385/26 +f 255/387/19 258/378/19 260/388/19 +f 258/378/21 255/387/21 256/381/21 +f 267/390/21 270/393/21 269/391/21 +f 270/393/19 267/390/19 265/394/19 +f 268/392/26 269/391/26 264/396/26 +f 269/391/24 270/393/24 266/398/24 +f 267/390/22 268/392/22 263/400/22 +f 274/402/21 273/408/21 278/403/21 +f 272/405/23 271/411/23 275/406/23 +f 273/408/26 272/405/26 277/409/26 +f 271/411/19 274/402/19 276/412/19 +f 274/402/24 271/411/24 272/405/24 +f 283/414/24 286/417/24 285/415/24 +f 286/417/19 283/414/19 281/418/19 +f 284/416/26 285/415/26 280/420/26 +f 285/415/23 286/417/23 282/422/23 +f 283/414/21 284/416/21 279/424/21 +f 291/426/24 294/429/24 293/427/24 +f 294/429/19 291/426/19 289/430/19 +f 292/428/26 293/427/26 288/432/26 +f 293/427/23 294/429/23 290/434/23 +f 291/426/21 292/428/21 287/436/21 +f 299/438/24 302/441/24 301/439/24 +f 302/441/19 299/438/19 297/442/19 +f 300/440/26 301/439/26 296/444/26 +f 301/439/23 302/441/23 298/446/23 +f 299/438/21 300/440/21 295/448/21 +f 306/450/21 305/456/21 310/451/21 +f 304/453/23 303/459/23 307/454/23 +f 305/456/26 304/453/26 309/457/26 +f 303/459/19 306/450/19 308/460/19 +f 306/450/24 303/459/24 304/453/24 +f 314/462/21 313/468/21 318/463/21 +f 312/465/23 311/471/23 315/466/23 +f 313/468/26 312/465/26 317/469/26 +f 311/471/19 314/462/19 316/472/19 +f 314/462/24 311/471/24 312/465/24 +f 326/474/21 325/480/21 330/475/21 +f 324/477/23 323/483/23 327/478/23 +f 325/480/26 324/477/26 329/481/26 +f 323/483/19 326/474/19 328/484/19 +f 326/474/24 323/483/24 324/477/24 +f 335/486/24 338/489/24 337/487/24 +f 338/489/19 335/486/19 333/490/19 +f 336/488/26 337/487/26 332/492/26 +f 337/487/23 338/489/23 334/494/23 +f 335/486/21 336/488/21 331/496/21 +f 342/498/21 341/504/21 346/499/21 +f 340/501/23 339/507/23 343/502/23 +f 341/504/26 340/501/26 345/505/26 +f 339/507/19 342/498/19 344/508/19 +f 342/498/24 339/507/24 340/501/24 +f 351/510/24 354/513/24 353/511/24 +f 354/513/19 351/510/19 349/514/19 +f 352/512/26 353/511/26 348/516/26 +f 353/511/23 354/513/23 350/518/23 +f 351/510/21 352/512/21 347/520/21 +f 321/522/26 357/577/26 358/523/26 +f 321/525/24 322/524/24 320/526/24 +f 356/528/22 358/523/22 357/529/22 +f 355/531/19 319/578/19 320/526/19 +f 356/528/21 320/526/21 322/524/21 +f 363/532/24 366/535/24 365/533/24 +f 366/535/19 363/532/19 361/536/19 +f 364/534/26 365/533/26 360/538/26 +f 365/533/23 366/535/23 362/540/23 +f 363/532/21 364/534/21 359/542/21 +f 370/544/21 369/550/21 374/545/21 +f 368/547/23 367/553/23 371/548/23 +f 369/550/26 368/547/26 373/551/26 +f 367/553/19 370/544/19 372/554/19 +f 370/544/24 367/553/24 368/547/24 o RightLeg -v -5.000000 24.500002 3.000000 -v -5.000000 24.500002 -3.000000 -v 1.000000 24.500000 3.000000 -v 1.000000 24.500000 -3.000000 -v -4.000000 24.500002 -4.000000 -v 0.000000 24.500000 -4.000000 v -4.000004 11.000001 -2.000000 v -4.000004 11.000001 2.000000 -v -0.000001 21.500000 -4.000000 -v -4.000001 21.500002 -4.000000 v -4.500004 12.000002 2.000000 v -4.500004 12.000002 -2.000000 v -5.000004 12.000002 -2.000000 @@ -1501,18 +1719,10 @@ vt 0.392857 0.796296 vt 0.392857 0.759259 vt 0.250000 0.759259 vt 0.250000 0.796296 -vt -0.000000 0.425926 -vt 0.142857 0.407407 -vt -0.000000 0.407407 -vt 0.250000 0.425926 -vt 0.392857 0.407407 -vt 0.250000 0.407407 -vt 0.500000 0.425926 -vt 0.642857 0.407407 -vt 0.500000 0.407407 vt 0.750000 0.740741 vt 0.732143 0.425926 vt 0.732143 0.740741 +vt 0.500000 0.425926 vt 0.482143 0.740741 vt 0.500000 0.740741 vt 0.946429 0.425926 @@ -1531,6 +1741,7 @@ vt 0.250000 0.740741 vt 0.392857 0.740741 vt 0.482143 0.425926 vt 0.446429 0.740741 +vt 0.250000 0.425926 vt 0.160714 0.425926 vt 0.160714 0.740741 vt 0.696429 0.740741 @@ -1547,23 +1758,8 @@ vt 1.000000 0.740741 vt 0.410714 0.425926 vt 0.642857 0.425926 vt 0.000000 0.740741 -vt 0.750000 0.407407 -vt 0.892857 0.407407 -vt 0.642857 0.259259 -vt 0.678571 0.407407 -vt 0.821429 0.407407 -vt 0.428571 0.259259 -vt 0.464286 0.407407 -vt 0.607143 0.407407 -vt 0.178571 0.407407 -vt 0.214286 0.407407 -vt 0.214286 0.259259 -vt 0.250000 0.370370 -vt 0.392857 0.259259 -vt 0.250000 0.259259 vt 0.250000 0.981481 vt 0.392857 1.000000 -vt 0.392857 0.370370 vt 0.196429 0.796296 vt 0.214286 0.944444 vt 0.214286 0.796296 @@ -1824,361 +2020,315 @@ vt 0.071429 0.759259 vt 0.017857 0.796296 vt -0.000000 0.759259 vt -0.000000 0.796296 -vt 0.214286 0.222222 vt 0.214286 0.981481 vt 0.428571 0.981481 vt 0.214286 0.759259 vt 0.910714 0.425926 vt 0.232143 0.425926 -vt 0.857143 0.407407 -vt 0.857143 0.259259 -vt 0.642857 0.407407 -vt 0.428571 0.407407 -vt 0.000000 0.259259 -vt 0.035714 0.407407 -vt -0.000000 0.407407 +vt -0.000000 0.425926 vt 0.250000 1.000000 vt 0.196429 0.944444 vt 0.589286 0.740741 vt 0.446429 0.759259 -vt 0.428571 0.222222 -vt 0.428571 0.000000 -vt 0.214286 -0.000000 vn -0.0000 -0.7071 0.7071 vn -0.7071 -0.7071 0.0000 vn -0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 vn 1.0000 -0.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.7071 -0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 +vn -0.0000 -1.0000 0.0000 vn 0.7071 -0.7071 0.0000 vn 0.0000 0.4472 -0.8944 vn -0.4472 0.0000 -0.8944 vn -0.0000 -0.4472 -0.8944 vn 0.4472 -0.0000 -0.8944 s off -f 335/499/16 326/500/16 369/501/16 -f 331/502/17 334/503/17 325/504/17 -f 336/505/18 348/506/18 370/507/18 -f 366/508/19 361/509/19 362/510/19 -f 360/511/19 356/512/19 368/513/19 -f 350/514/19 352/515/19 351/516/19 -f 337/517/20 355/518/20 335/519/20 -f 350/514/21 331/520/21 330/521/21 -f 363/522/21 347/523/21 343/524/21 -f 339/525/21 357/526/21 337/517/21 -f 352/527/22 329/528/22 332/529/22 -f 348/530/22 364/531/22 344/532/22 -f 358/533/22 340/534/22 338/535/22 -f 351/536/23 334/537/23 331/520/23 -f 360/511/23 348/530/23 340/534/23 -f 344/532/20 361/538/20 341/539/20 -f 333/540/23 352/527/23 332/529/23 -f 347/523/23 359/541/23 339/525/23 -f 362/542/20 343/524/20 342/543/20 -f 335/519/21 353/544/21 333/540/21 -f 341/539/21 365/545/21 345/546/21 -f 354/547/22 336/548/22 334/537/22 -f 366/549/22 342/543/22 346/550/22 -f 356/551/20 338/535/20 336/548/20 -f 349/552/23 330/521/23 329/528/23 -f 365/545/20 346/553/20 345/546/20 -f 355/554/19 359/541/19 367/555/19 -f 319/556/21 355/557/21 367/558/21 -f 320/559/23 351/560/23 352/561/23 -f 361/562/20 364/563/20 322/564/20 -f 327/565/22 323/566/22 324/567/22 -f 327/565/18 368/513/18 356/512/18 -f 347/568/24 337/569/24 335/499/24 -f 338/535/24 348/506/24 336/505/24 -f 322/564/25 327/565/25 324/567/25 -f 328/570/26 320/559/26 323/566/26 -f 345/571/24 342/572/24 341/573/24 -f 330/574/24 332/575/24 329/576/24 -f 369/501/19 325/504/19 370/507/19 -f 370/507/27 341/573/27 342/572/27 -f 383/577/22 385/578/22 384/579/22 -f 375/580/22 377/581/22 376/582/22 -f 377/581/20 374/583/20 372/584/20 -f 375/580/23 371/585/23 373/586/23 -f 378/587/24 373/588/24 374/589/24 -f 376/582/19 372/590/19 371/591/19 -f 385/578/20 382/592/20 380/593/20 -f 383/577/23 379/594/23 381/595/23 -f 386/596/24 381/597/24 382/598/24 -f 384/579/19 380/599/19 379/600/19 -f 389/601/19 393/602/19 394/603/19 -f 387/604/24 392/605/24 391/606/24 -f 390/607/23 394/608/23 392/609/23 -f 388/610/20 391/611/20 393/612/20 -f 397/613/19 401/614/19 402/615/19 -f 395/616/24 400/617/24 399/618/24 -f 398/619/23 402/620/23 400/621/23 -f 396/622/20 399/623/20 401/624/20 -f 398/619/22 396/622/22 397/613/22 -f 390/607/22 388/610/22 389/601/22 -f 405/625/19 404/626/19 403/627/19 -f 414/628/22 412/629/22 413/630/22 -f 413/630/28 411/631/28 408/632/28 -f 412/629/29 406/633/29 411/631/29 -f 410/634/30 404/626/30 406/633/30 -f 411/631/24 407/635/24 408/632/24 -f 414/628/31 408/632/31 404/626/31 -f 411/631/23 405/636/23 409/637/23 -f 408/632/20 403/638/20 404/626/20 -f 427/639/23 429/640/23 428/641/23 -f 419/642/23 421/643/23 420/644/23 -f 421/643/22 418/645/22 416/646/22 -f 419/642/21 415/647/21 417/648/21 -f 422/649/24 417/650/24 418/651/24 -f 420/644/19 416/652/19 415/653/19 -f 429/640/22 426/654/22 424/655/22 -f 427/639/21 423/656/21 425/657/21 -f 430/658/24 425/659/24 426/660/24 -f 428/641/19 424/661/19 423/662/19 -f 443/663/23 445/664/23 444/665/23 -f 435/666/23 437/667/23 436/668/23 -f 437/667/22 434/669/22 432/670/22 -f 435/666/21 431/671/21 433/672/21 -f 438/673/24 433/674/24 434/675/24 -f 436/668/19 432/676/19 431/677/19 -f 445/664/22 442/678/22 440/679/22 -f 443/663/21 439/680/21 441/681/21 -f 446/682/24 441/683/24 442/684/24 -f 444/665/19 440/685/19 439/686/19 -f 449/687/19 453/688/19 454/689/19 -f 447/690/24 452/691/24 451/692/24 -f 450/693/21 454/694/21 452/695/21 -f 448/696/22 451/697/22 453/698/22 -f 457/699/19 461/700/19 462/701/19 -f 455/702/24 460/703/24 459/704/24 -f 458/705/21 462/706/21 460/707/21 -f 456/708/22 459/709/22 461/710/22 -f 458/705/23 456/708/23 457/699/23 -f 450/693/23 448/696/23 449/687/23 -f 465/711/19 469/712/19 470/713/19 -f 463/714/24 468/715/24 467/716/24 -f 466/717/21 470/718/21 468/719/21 -f 464/720/22 467/721/22 469/722/22 -f 473/723/19 477/724/19 478/725/19 -f 471/726/24 476/727/24 475/728/24 -f 474/729/21 478/730/21 476/731/21 -f 472/732/22 475/733/22 477/734/22 -f 474/729/23 472/732/23 473/723/23 -f 466/717/23 464/720/23 465/711/23 -f 491/735/21 493/736/21 492/737/21 -f 483/738/21 485/739/21 484/740/21 -f 485/739/23 482/741/23 480/742/23 -f 483/738/20 479/743/20 481/744/20 -f 486/745/24 481/746/24 482/747/24 -f 484/740/19 480/748/19 479/749/19 -f 493/736/23 490/750/23 488/751/23 -f 491/735/20 487/752/20 489/753/20 -f 494/754/24 489/755/24 490/756/24 -f 492/737/19 488/757/19 487/758/19 -f 507/759/21 509/760/21 508/761/21 -f 499/762/21 501/763/21 500/764/21 -f 501/763/23 498/765/23 496/766/23 -f 499/762/20 495/767/20 497/768/20 -f 502/769/24 497/770/24 498/771/24 -f 500/764/19 496/772/19 495/773/19 -f 509/760/23 506/774/23 504/775/23 -f 507/759/20 503/776/20 505/777/20 -f 510/778/24 505/779/24 506/780/24 -f 508/761/19 504/781/19 503/782/19 -f 513/783/19 517/784/19 518/785/19 -f 511/786/24 516/787/24 515/788/24 -f 514/789/20 518/790/20 516/791/20 -f 512/792/23 515/793/23 517/794/23 -f 521/795/19 525/796/19 526/797/19 -f 519/798/24 524/799/24 523/800/24 -f 522/801/20 526/802/20 524/803/20 -f 520/804/23 523/805/23 525/806/23 -f 522/801/21 520/804/21 521/795/21 -f 514/789/21 512/792/21 513/783/21 -f 529/807/19 533/808/19 534/809/19 -f 527/810/24 532/811/24 531/812/24 -f 530/813/20 534/814/20 532/815/20 -f 528/816/23 531/817/23 533/818/23 -f 537/819/19 541/820/19 542/821/19 -f 535/822/24 540/823/24 539/824/24 -f 538/825/20 542/826/20 540/827/20 -f 536/828/23 539/829/23 541/830/23 -f 538/825/21 536/828/21 537/819/21 -f 530/813/21 528/816/21 529/807/21 -f 322/831/24 324/567/24 323/566/24 -f 369/501/16 343/832/16 347/568/16 -f 335/499/16 333/833/16 326/500/16 -f 369/501/16 347/568/16 335/499/16 -f 325/504/17 326/500/17 332/575/17 -f 326/500/17 333/833/17 332/575/17 -f 332/575/17 331/502/17 325/504/17 -f 348/506/18 344/834/18 370/507/18 -f 370/507/18 325/504/18 336/505/18 -f 325/504/18 334/503/18 336/505/18 -f 366/508/19 365/545/19 361/509/19 -f 360/511/19 358/533/19 356/512/19 -f 350/514/19 349/552/19 352/515/19 -f 337/517/20 357/526/20 355/518/20 -f 350/514/21 351/536/21 331/520/21 -f 363/522/21 367/835/21 347/523/21 -f 339/525/21 359/541/21 357/526/21 -f 352/527/22 349/552/22 329/528/22 -f 348/530/22 368/836/22 364/531/22 -f 358/533/22 360/511/22 340/534/22 -f 351/536/23 354/547/23 334/537/23 -f 360/511/23 368/836/23 348/530/23 -f 344/532/20 364/531/20 361/538/20 -f 333/540/23 353/544/23 352/527/23 -f 347/523/23 367/835/23 359/541/23 -f 362/542/20 363/522/20 343/524/20 -f 335/519/21 355/518/21 353/544/21 -f 341/539/21 361/538/21 365/545/21 -f 354/547/22 356/551/22 336/548/22 -f 366/549/22 362/542/22 342/543/22 -f 356/551/20 358/533/20 338/535/20 -f 349/552/23 350/514/23 330/521/23 -f 365/545/20 366/508/20 346/553/20 -f 355/554/19 357/526/19 359/541/19 -f 363/837/21 321/838/21 367/558/21 -f 321/838/21 319/556/21 367/558/21 -f 319/556/21 353/839/21 355/557/21 -f 353/839/23 319/556/23 352/561/23 -f 319/556/23 320/559/23 352/561/23 -f 320/559/23 354/840/23 351/560/23 -f 322/564/20 321/841/20 362/842/20 -f 321/841/20 363/843/20 362/842/20 -f 362/842/20 361/562/20 322/564/20 -f 327/565/22 328/570/22 323/566/22 -f 354/840/18 328/570/18 356/512/18 -f 328/570/18 327/565/18 356/512/18 -f 327/565/18 364/563/18 368/513/18 -f 347/568/24 339/844/24 337/569/24 -f 338/535/24 340/534/24 348/506/24 -f 322/564/25 364/563/25 327/565/25 -f 328/570/26 354/840/26 320/559/26 -f 345/571/24 346/845/24 342/572/24 -f 330/574/24 331/502/24 332/575/24 -f 369/501/19 326/500/19 325/504/19 -f 343/832/27 369/501/27 342/572/27 -f 369/501/27 370/507/27 342/572/27 -f 370/507/27 344/834/27 341/573/27 -f 383/577/22 386/596/22 385/578/22 -f 375/580/22 378/587/22 377/581/22 -f 377/581/20 378/587/20 374/583/20 -f 375/580/23 376/582/23 371/585/23 -f 378/587/24 375/580/24 373/588/24 -f 376/582/19 377/581/19 372/590/19 -f 385/578/20 386/596/20 382/592/20 -f 383/577/23 384/579/23 379/594/23 -f 386/596/24 383/577/24 381/597/24 -f 384/579/19 385/578/19 380/599/19 -f 389/601/19 388/610/19 393/602/19 -f 387/604/24 390/607/24 392/605/24 -f 390/607/23 389/601/23 394/608/23 -f 388/610/20 387/604/20 391/611/20 -f 397/613/19 396/622/19 401/614/19 -f 395/616/24 398/619/24 400/617/24 -f 398/619/23 397/613/23 402/620/23 -f 396/622/20 395/616/20 399/623/20 -f 398/619/22 395/616/22 396/622/22 -f 390/607/22 387/604/22 388/610/22 -f 405/625/19 406/633/19 404/626/19 -f 414/628/22 410/634/22 412/629/22 -f 413/630/28 412/629/28 411/631/28 -f 412/629/29 410/634/29 406/633/29 -f 410/634/30 414/628/30 404/626/30 -f 411/631/24 409/846/24 407/635/24 -f 414/628/31 413/630/31 408/632/31 -f 411/631/23 406/633/23 405/636/23 -f 408/632/20 407/847/20 403/638/20 -f 427/639/23 430/658/23 429/640/23 -f 419/642/23 422/649/23 421/643/23 -f 421/643/22 422/649/22 418/645/22 -f 419/642/21 420/644/21 415/647/21 -f 422/649/24 419/642/24 417/650/24 -f 420/644/19 421/643/19 416/652/19 -f 429/640/22 430/658/22 426/654/22 -f 427/639/21 428/641/21 423/656/21 -f 430/658/24 427/639/24 425/659/24 -f 428/641/19 429/640/19 424/661/19 -f 443/663/23 446/682/23 445/664/23 -f 435/666/23 438/673/23 437/667/23 -f 437/667/22 438/673/22 434/669/22 -f 435/666/21 436/668/21 431/671/21 -f 438/673/24 435/666/24 433/674/24 -f 436/668/19 437/667/19 432/676/19 -f 445/664/22 446/682/22 442/678/22 -f 443/663/21 444/665/21 439/680/21 -f 446/682/24 443/663/24 441/683/24 -f 444/665/19 445/664/19 440/685/19 -f 449/687/19 448/696/19 453/688/19 -f 447/690/24 450/693/24 452/691/24 -f 450/693/21 449/687/21 454/694/21 -f 448/696/22 447/690/22 451/697/22 -f 457/699/19 456/708/19 461/700/19 -f 455/702/24 458/705/24 460/703/24 -f 458/705/21 457/699/21 462/706/21 -f 456/708/22 455/702/22 459/709/22 -f 458/705/23 455/702/23 456/708/23 -f 450/693/23 447/690/23 448/696/23 -f 465/711/19 464/720/19 469/712/19 -f 463/714/24 466/717/24 468/715/24 -f 466/717/21 465/711/21 470/718/21 -f 464/720/22 463/714/22 467/721/22 -f 473/723/19 472/732/19 477/724/19 -f 471/726/24 474/729/24 476/727/24 -f 474/729/21 473/723/21 478/730/21 -f 472/732/22 471/726/22 475/733/22 -f 474/729/23 471/726/23 472/732/23 -f 466/717/23 463/714/23 464/720/23 -f 491/735/21 494/754/21 493/736/21 -f 483/738/21 486/745/21 485/739/21 -f 485/739/23 486/745/23 482/741/23 -f 483/738/20 484/740/20 479/743/20 -f 486/745/24 483/738/24 481/746/24 -f 484/740/19 485/739/19 480/748/19 -f 493/736/23 494/754/23 490/750/23 -f 491/735/20 492/737/20 487/752/20 -f 494/754/24 491/735/24 489/755/24 -f 492/737/19 493/736/19 488/757/19 -f 507/759/21 510/778/21 509/760/21 -f 499/762/21 502/769/21 501/763/21 -f 501/763/23 502/769/23 498/765/23 -f 499/762/20 500/764/20 495/767/20 -f 502/769/24 499/762/24 497/770/24 -f 500/764/19 501/763/19 496/772/19 -f 509/760/23 510/778/23 506/774/23 -f 507/759/20 508/761/20 503/776/20 -f 510/778/24 507/759/24 505/779/24 -f 508/761/19 509/760/19 504/781/19 -f 513/783/19 512/792/19 517/784/19 -f 511/786/24 514/789/24 516/787/24 -f 514/789/20 513/783/20 518/790/20 -f 512/792/23 511/786/23 515/793/23 -f 521/795/19 520/804/19 525/796/19 -f 519/798/24 522/801/24 524/799/24 -f 522/801/20 521/795/20 526/802/20 -f 520/804/23 519/798/23 523/805/23 -f 522/801/21 519/798/21 520/804/21 -f 514/789/21 511/786/21 512/792/21 -f 529/807/19 528/816/19 533/808/19 -f 527/810/24 530/813/24 532/811/24 -f 530/813/20 529/807/20 534/814/20 -f 528/816/23 527/810/23 531/817/23 -f 537/819/19 536/828/19 541/820/19 -f 535/822/24 538/825/24 540/823/24 -f 538/825/20 537/819/20 542/826/20 -f 536/828/23 535/822/23 539/829/23 -f 538/825/21 535/822/21 536/828/21 -f 530/813/21 527/810/21 528/816/21 -f 323/566/24 320/848/24 322/831/24 -f 320/848/24 319/849/24 322/831/24 -f 319/849/24 321/850/24 322/831/24 +f 383/579/34 376/580/34 417/581/34 +f 379/582/35 382/583/35 375/584/35 +f 384/585/36 396/586/36 418/587/36 +f 385/588/37 403/589/37 383/590/37 +f 398/591/38 379/592/38 378/593/38 +f 411/594/38 395/595/38 391/596/38 +f 387/597/38 405/598/38 385/588/38 +f 400/599/39 377/600/39 380/601/39 +f 396/602/39 412/603/39 392/604/39 +f 406/605/39 388/606/39 386/607/39 +f 399/608/40 382/609/40 379/592/40 +f 408/610/40 396/602/40 388/606/40 +f 392/604/37 409/611/37 389/612/37 +f 381/613/40 400/599/40 380/601/40 +f 395/595/40 407/614/40 387/597/40 +f 410/615/37 391/596/37 390/616/37 +f 383/590/38 401/617/38 381/613/38 +f 389/612/38 413/618/38 393/619/38 +f 402/620/39 384/621/39 382/609/39 +f 414/622/39 390/616/39 394/623/39 +f 404/624/37 386/607/37 384/621/37 +f 397/625/40 378/593/40 377/600/40 +f 413/618/37 394/626/37 393/619/37 +f 395/627/41 385/628/41 383/579/41 +f 386/607/41 396/586/41 384/585/41 +f 393/629/41 390/630/41 389/631/41 +f 378/632/41 380/633/41 377/634/41 +f 417/581/42 375/584/42 418/587/42 +f 418/587/43 389/631/43 390/630/43 +f 431/635/39 433/636/39 432/637/39 +f 423/638/39 425/639/39 424/640/39 +f 425/639/37 422/641/37 420/642/37 +f 423/638/40 419/643/40 421/644/40 +f 426/645/41 421/646/41 422/647/41 +f 424/640/42 420/648/42 419/649/42 +f 433/636/37 430/650/37 428/651/37 +f 431/635/40 427/652/40 429/653/40 +f 434/654/41 429/655/41 430/656/41 +f 432/637/42 428/657/42 427/658/42 +f 437/659/42 441/660/42 442/661/42 +f 435/662/41 440/663/41 439/664/41 +f 438/665/40 442/666/40 440/667/40 +f 436/668/37 439/669/37 441/670/37 +f 445/671/42 449/672/42 450/673/42 +f 443/674/41 448/675/41 447/676/41 +f 446/677/40 450/678/40 448/679/40 +f 444/680/37 447/681/37 449/682/37 +f 446/677/39 444/680/39 445/671/39 +f 438/665/39 436/668/39 437/659/39 +f 453/683/42 452/684/42 451/685/42 +f 462/686/39 460/687/39 461/688/39 +f 461/688/44 459/689/44 456/690/44 +f 460/687/45 454/691/45 459/689/45 +f 458/692/46 452/684/46 454/691/46 +f 459/689/41 455/693/41 456/690/41 +f 462/686/47 456/690/47 452/684/47 +f 459/689/40 453/694/40 457/695/40 +f 456/690/37 451/696/37 452/684/37 +f 475/697/40 477/698/40 476/699/40 +f 467/700/40 469/701/40 468/702/40 +f 469/701/39 466/703/39 464/704/39 +f 467/700/38 463/705/38 465/706/38 +f 470/707/41 465/708/41 466/709/41 +f 468/702/42 464/710/42 463/711/42 +f 477/698/39 474/712/39 472/713/39 +f 475/697/38 471/714/38 473/715/38 +f 478/716/41 473/717/41 474/718/41 +f 476/699/42 472/719/42 471/720/42 +f 491/721/40 493/722/40 492/723/40 +f 483/724/40 485/725/40 484/726/40 +f 485/725/39 482/727/39 480/728/39 +f 483/724/38 479/729/38 481/730/38 +f 486/731/41 481/732/41 482/733/41 +f 484/726/42 480/734/42 479/735/42 +f 493/722/39 490/736/39 488/737/39 +f 491/721/38 487/738/38 489/739/38 +f 494/740/41 489/741/41 490/742/41 +f 492/723/42 488/743/42 487/744/42 +f 497/745/42 501/746/42 502/747/42 +f 495/748/41 500/749/41 499/750/41 +f 498/751/38 502/752/38 500/753/38 +f 496/754/39 499/755/39 501/756/39 +f 505/757/42 509/758/42 510/759/42 +f 503/760/41 508/761/41 507/762/41 +f 506/763/38 510/764/38 508/765/38 +f 504/766/39 507/767/39 509/768/39 +f 506/763/40 504/766/40 505/757/40 +f 498/751/40 496/754/40 497/745/40 +f 513/769/42 517/770/42 518/771/42 +f 511/772/41 516/773/41 515/774/41 +f 514/775/38 518/776/38 516/777/38 +f 512/778/39 515/779/39 517/780/39 +f 521/781/42 525/782/42 526/783/42 +f 519/784/41 524/785/41 523/786/41 +f 522/787/38 526/788/38 524/789/38 +f 520/790/39 523/791/39 525/792/39 +f 522/787/40 520/790/40 521/781/40 +f 514/775/40 512/778/40 513/769/40 +f 539/793/38 541/794/38 540/795/38 +f 531/796/38 533/797/38 532/798/38 +f 533/797/40 530/799/40 528/800/40 +f 531/796/37 527/801/37 529/802/37 +f 534/803/41 529/804/41 530/805/41 +f 532/798/42 528/806/42 527/807/42 +f 541/794/40 538/808/40 536/809/40 +f 539/793/37 535/810/37 537/811/37 +f 542/812/41 537/813/41 538/814/41 +f 540/795/42 536/815/42 535/816/42 +f 555/817/38 557/818/38 556/819/38 +f 547/820/38 549/821/38 548/822/38 +f 549/821/40 546/823/40 544/824/40 +f 547/820/37 543/825/37 545/826/37 +f 550/827/41 545/828/41 546/829/41 +f 548/822/42 544/830/42 543/831/42 +f 557/818/40 554/832/40 552/833/40 +f 555/817/37 551/834/37 553/835/37 +f 558/836/41 553/837/41 554/838/41 +f 556/819/42 552/839/42 551/840/42 +f 561/841/42 565/842/42 566/843/42 +f 559/844/41 564/845/41 563/846/41 +f 562/847/37 566/848/37 564/849/37 +f 560/850/40 563/851/40 565/852/40 +f 569/853/42 573/854/42 574/855/42 +f 567/856/41 572/857/41 571/858/41 +f 570/859/37 574/860/37 572/861/37 +f 568/862/40 571/863/40 573/864/40 +f 570/859/38 568/862/38 569/853/38 +f 562/847/38 560/850/38 561/841/38 +f 577/865/42 581/866/42 582/867/42 +f 575/868/41 580/869/41 579/870/41 +f 578/871/37 582/872/37 580/873/37 +f 576/874/40 579/875/40 581/876/40 +f 585/877/42 589/878/42 590/879/42 +f 583/880/41 588/881/41 587/882/41 +f 586/883/37 590/884/37 588/885/37 +f 584/886/40 587/887/40 589/888/40 +f 586/883/38 584/886/38 585/877/38 +f 578/871/38 576/874/38 577/865/38 +f 417/581/34 391/889/34 395/627/34 +f 383/579/34 381/890/34 376/580/34 +f 417/581/34 395/627/34 383/579/34 +f 375/584/35 376/580/35 380/633/35 +f 376/580/35 381/890/35 380/633/35 +f 380/633/35 379/582/35 375/584/35 +f 396/586/36 392/891/36 418/587/36 +f 418/587/36 375/584/36 384/585/36 +f 375/584/36 382/583/36 384/585/36 +f 385/588/37 405/598/37 403/589/37 +f 398/591/38 399/608/38 379/592/38 +f 411/594/38 415/892/38 395/595/38 +f 387/597/38 407/614/38 405/598/38 +f 400/599/39 397/625/39 377/600/39 +f 396/602/39 416/893/39 412/603/39 +f 406/605/39 408/610/39 388/606/39 +f 399/608/40 402/620/40 382/609/40 +f 408/610/40 416/893/40 396/602/40 +f 392/604/37 412/603/37 409/611/37 +f 381/613/40 401/617/40 400/599/40 +f 395/595/40 415/892/40 407/614/40 +f 410/615/37 411/594/37 391/596/37 +f 383/590/38 403/589/38 401/617/38 +f 389/612/38 409/611/38 413/618/38 +f 402/620/39 404/624/39 384/621/39 +f 414/622/39 410/615/39 390/616/39 +f 404/624/37 406/605/37 386/607/37 +f 397/625/40 398/591/40 378/593/40 +f 413/618/37 414/894/37 394/626/37 +f 395/627/41 387/895/41 385/628/41 +f 386/607/41 388/606/41 396/586/41 +f 393/629/41 394/896/41 390/630/41 +f 378/632/41 379/582/41 380/633/41 +f 417/581/42 376/580/42 375/584/42 +f 391/889/43 417/581/43 390/630/43 +f 417/581/43 418/587/43 390/630/43 +f 418/587/43 392/891/43 389/631/43 +f 431/635/39 434/654/39 433/636/39 +f 423/638/39 426/645/39 425/639/39 +f 425/639/37 426/645/37 422/641/37 +f 423/638/40 424/640/40 419/643/40 +f 426/645/41 423/638/41 421/646/41 +f 424/640/42 425/639/42 420/648/42 +f 433/636/37 434/654/37 430/650/37 +f 431/635/40 432/637/40 427/652/40 +f 434/654/41 431/635/41 429/655/41 +f 432/637/42 433/636/42 428/657/42 +f 437/659/42 436/668/42 441/660/42 +f 435/662/41 438/665/41 440/663/41 +f 438/665/40 437/659/40 442/666/40 +f 436/668/37 435/662/37 439/669/37 +f 445/671/42 444/680/42 449/672/42 +f 443/674/41 446/677/41 448/675/41 +f 446/677/40 445/671/40 450/678/40 +f 444/680/37 443/674/37 447/681/37 +f 446/677/39 443/674/39 444/680/39 +f 438/665/39 435/662/39 436/668/39 +f 453/683/42 454/691/42 452/684/42 +f 462/686/39 458/692/39 460/687/39 +f 461/688/44 460/687/44 459/689/44 +f 460/687/45 458/692/45 454/691/45 +f 458/692/46 462/686/46 452/684/46 +f 459/689/41 457/897/41 455/693/41 +f 462/686/47 461/688/47 456/690/47 +f 459/689/40 454/691/40 453/694/40 +f 456/690/37 455/898/37 451/696/37 +f 475/697/40 478/716/40 477/698/40 +f 467/700/40 470/707/40 469/701/40 +f 469/701/39 470/707/39 466/703/39 +f 467/700/38 468/702/38 463/705/38 +f 470/707/41 467/700/41 465/708/41 +f 468/702/42 469/701/42 464/710/42 +f 477/698/39 478/716/39 474/712/39 +f 475/697/38 476/699/38 471/714/38 +f 478/716/41 475/697/41 473/717/41 +f 476/699/42 477/698/42 472/719/42 +f 491/721/40 494/740/40 493/722/40 +f 483/724/40 486/731/40 485/725/40 +f 485/725/39 486/731/39 482/727/39 +f 483/724/38 484/726/38 479/729/38 +f 486/731/41 483/724/41 481/732/41 +f 484/726/42 485/725/42 480/734/42 +f 493/722/39 494/740/39 490/736/39 +f 491/721/38 492/723/38 487/738/38 +f 494/740/41 491/721/41 489/741/41 +f 492/723/42 493/722/42 488/743/42 +f 497/745/42 496/754/42 501/746/42 +f 495/748/41 498/751/41 500/749/41 +f 498/751/38 497/745/38 502/752/38 +f 496/754/39 495/748/39 499/755/39 +f 505/757/42 504/766/42 509/758/42 +f 503/760/41 506/763/41 508/761/41 +f 506/763/38 505/757/38 510/764/38 +f 504/766/39 503/760/39 507/767/39 +f 506/763/40 503/760/40 504/766/40 +f 498/751/40 495/748/40 496/754/40 +f 513/769/42 512/778/42 517/770/42 +f 511/772/41 514/775/41 516/773/41 +f 514/775/38 513/769/38 518/776/38 +f 512/778/39 511/772/39 515/779/39 +f 521/781/42 520/790/42 525/782/42 +f 519/784/41 522/787/41 524/785/41 +f 522/787/38 521/781/38 526/788/38 +f 520/790/39 519/784/39 523/791/39 +f 522/787/40 519/784/40 520/790/40 +f 514/775/40 511/772/40 512/778/40 +f 539/793/38 542/812/38 541/794/38 +f 531/796/38 534/803/38 533/797/38 +f 533/797/40 534/803/40 530/799/40 +f 531/796/37 532/798/37 527/801/37 +f 534/803/41 531/796/41 529/804/41 +f 532/798/42 533/797/42 528/806/42 +f 541/794/40 542/812/40 538/808/40 +f 539/793/37 540/795/37 535/810/37 +f 542/812/41 539/793/41 537/813/41 +f 540/795/42 541/794/42 536/815/42 +f 555/817/38 558/836/38 557/818/38 +f 547/820/38 550/827/38 549/821/38 +f 549/821/40 550/827/40 546/823/40 +f 547/820/37 548/822/37 543/825/37 +f 550/827/41 547/820/41 545/828/41 +f 548/822/42 549/821/42 544/830/42 +f 557/818/40 558/836/40 554/832/40 +f 555/817/37 556/819/37 551/834/37 +f 558/836/41 555/817/41 553/837/41 +f 556/819/42 557/818/42 552/839/42 +f 561/841/42 560/850/42 565/842/42 +f 559/844/41 562/847/41 564/845/41 +f 562/847/37 561/841/37 566/848/37 +f 560/850/40 559/844/40 563/851/40 +f 569/853/42 568/862/42 573/854/42 +f 567/856/41 570/859/41 572/857/41 +f 570/859/37 569/853/37 574/860/37 +f 568/862/40 567/856/40 571/863/40 +f 570/859/38 567/856/38 568/862/38 +f 562/847/38 559/844/38 560/850/38 +f 577/865/42 576/874/42 581/866/42 +f 575/868/41 578/871/41 580/869/41 +f 578/871/37 577/865/37 582/872/37 +f 576/874/40 575/868/40 579/875/40 +f 585/877/42 584/886/42 589/878/42 +f 583/880/41 586/883/41 588/881/41 +f 586/883/37 585/877/37 590/884/37 +f 584/886/40 583/880/40 587/887/40 +f 586/883/38 583/880/38 584/886/38 +f 578/871/38 575/868/38 576/874/38 o Body v -4.500008 0.000002 -2.500000 v 4.499992 -0.000002 -2.500000 @@ -2822,320 +2972,312 @@ vn 0.0000 -0.9239 0.3827 vn -0.7071 -0.1830 0.6830 vn 0.7071 0.1830 -0.6830 s off -f 545/851/32 571/852/32 583/853/32 -f 543/854/32 576/855/32 581/856/32 -f 543/857/32 567/858/32 555/859/32 -f 544/860/32 572/861/32 552/862/32 -f 544/863/32 568/864/32 579/865/32 -f 545/866/32 564/867/32 560/868/32 -f 547/869/33 549/870/33 548/871/33 -f 552/872/34 553/873/34 551/874/34 -f 555/875/35 558/876/35 556/877/35 -f 560/878/36 561/879/36 559/880/36 -f 561/879/34 563/881/34 559/880/34 -f 560/878/33 566/882/33 562/883/33 -f 555/875/34 569/884/34 557/885/34 -f 558/876/33 568/864/33 556/877/33 -f 552/872/36 574/886/36 554/887/36 -f 553/873/35 571/852/35 551/874/35 -f 549/870/36 576/855/36 548/871/36 -f 547/888/35 578/889/35 550/890/35 -f 577/891/33 581/856/33 576/855/33 -f 572/861/34 580/892/34 574/886/34 -f 575/893/33 586/894/33 578/889/33 -f 573/895/34 583/853/34 571/852/34 -f 565/896/36 585/897/36 563/881/36 -f 564/867/36 584/898/36 566/882/36 -f 567/858/35 582/899/35 569/884/35 -f 580/892/35 568/864/35 570/900/35 -f 588/901/32 589/902/32 587/903/32 -f 593/904/37 591/905/37 592/906/37 -f 546/907/32 563/881/32 585/897/32 -f 546/908/32 575/893/32 547/909/32 -f 548/910/38 588/901/38 587/903/38 -f 555/911/39 556/912/39 590/913/39 -f 552/914/40 551/915/40 589/902/40 -f 560/916/41 559/917/41 587/903/41 -f 596/918/37 573/895/37 553/919/37 -f 566/882/37 596/920/37 562/921/37 -f 578/889/37 595/922/37 550/923/37 -f 595/924/37 565/896/37 561/925/37 -f 597/926/37 577/891/37 549/927/37 -f 574/886/37 598/928/37 554/929/37 -f 598/930/37 570/900/37 558/931/37 -f 569/884/37 597/932/37 557/933/37 -f 592/906/42 595/934/42 561/935/42 -f 593/904/43 596/936/43 553/937/43 -f 591/905/44 594/938/44 558/939/44 -f 591/905/45 597/940/45 549/941/45 -f 599/942/32 602/943/32 600/944/32 -f 601/945/35 604/946/35 602/943/35 -f 603/947/46 606/948/46 604/946/46 -f 599/949/33 603/947/33 601/945/33 -f 604/946/34 600/950/34 602/943/34 -f 607/951/35 610/952/35 608/953/35 -f 625/954/35 623/955/35 624/956/35 -f 617/957/35 615/958/35 616/959/35 -f 611/960/34 615/958/34 613/961/34 -f 613/962/37 618/963/37 614/964/37 -f 612/965/32 616/959/32 611/966/32 -f 614/967/33 617/957/33 612/968/33 -f 619/969/34 623/955/34 621/970/34 -f 621/971/37 626/972/37 622/973/37 -f 620/974/32 624/956/32 619/975/32 -f 622/976/33 625/954/33 620/977/33 -f 641/978/35 639/979/35 640/980/35 -f 633/981/35 631/982/35 632/983/35 -f 627/984/34 631/982/34 629/985/34 -f 629/986/37 634/987/37 630/988/37 -f 628/989/32 632/983/32 627/990/32 -f 630/991/33 633/981/33 628/992/33 -f 635/993/34 639/979/34 637/994/34 -f 637/995/37 642/996/37 638/997/37 -f 636/998/32 640/980/32 635/999/32 -f 638/1000/33 641/978/33 636/1001/33 -f 645/1002/47 650/1003/47 646/1004/47 -f 648/1005/32 643/1006/32 644/1007/32 -f 650/1003/48 647/1008/48 648/1005/48 -f 652/1009/34 646/1010/34 650/1003/34 -f 649/1011/33 645/1012/33 651/1013/33 -f 662/1014/33 660/1015/33 658/1016/33 -f 657/1017/34 659/1018/34 661/1019/34 -f 661/1019/36 663/1020/36 653/1021/36 -f 654/1022/36 666/1023/36 662/1014/36 -f 665/1024/33 670/1025/33 666/1023/33 -f 664/1026/34 667/1027/34 663/1020/34 -f 668/1028/32 664/1026/32 661/1029/32 -f 653/1030/37 667/1031/37 669/1032/37 -f 693/1033/49 691/1034/49 689/1035/49 -f 684/1036/50 685/1037/50 686/1038/50 -f 677/1039/50 678/1040/50 679/1041/50 -f 701/1042/49 696/1043/49 697/1044/49 -f 704/1045/50 705/1046/50 703/1047/50 -f 707/1048/49 709/1049/49 708/1050/49 -f 710/1051/51 705/1052/51 706/1053/51 -f 708/1050/52 704/1045/52 703/1047/52 -f 704/1054/53 710/1051/53 706/1055/53 -f 707/1048/54 703/1056/54 705/1057/54 -f 545/851/32 551/1058/32 571/852/32 -f 543/854/32 548/1059/32 576/855/32 -f 543/857/32 581/856/32 567/858/32 -f 544/860/32 579/865/32 572/861/32 -f 544/863/32 556/1060/32 568/864/32 -f 545/866/32 583/853/32 564/867/32 -f 547/869/33 550/1061/33 549/870/33 -f 552/872/34 554/887/34 553/873/34 -f 555/875/35 557/885/35 558/876/35 -f 560/878/36 562/883/36 561/879/36 -f 561/879/34 565/896/34 563/881/34 -f 560/878/33 564/867/33 566/882/33 -f 555/875/34 567/858/34 569/884/34 -f 558/876/33 570/900/33 568/864/33 -f 552/872/36 572/861/36 574/886/36 -f 553/873/35 573/895/35 571/852/35 -f 549/870/36 577/891/36 576/855/36 -f 547/888/35 575/893/35 578/889/35 -f 577/891/33 582/899/33 581/856/33 -f 572/861/34 579/865/34 580/892/34 -f 575/893/33 585/897/33 586/894/33 -f 573/895/34 584/898/34 583/853/34 -f 565/896/36 586/894/36 585/897/36 -f 564/867/36 583/853/36 584/898/36 -f 567/858/35 581/856/35 582/899/35 -f 580/892/35 579/865/35 568/864/35 -f 588/901/32 590/913/32 589/902/32 -f 593/904/37 594/938/37 591/905/37 -f 546/907/32 559/1062/32 563/881/32 -f 546/908/32 585/897/32 575/893/32 -f 587/903/38 546/1063/38 547/1064/38 -f 548/910/38 543/1065/38 588/901/38 -f 587/903/38 547/1064/38 548/910/38 -f 556/912/39 544/1066/39 590/913/39 -f 590/913/39 588/901/39 555/911/39 -f 588/901/39 543/1067/39 555/911/39 -f 551/915/40 545/1068/40 589/902/40 -f 589/902/40 590/913/40 552/914/40 -f 590/913/40 544/1069/40 552/914/40 -f 559/917/41 546/1070/41 587/903/41 -f 587/903/41 589/902/41 560/916/41 -f 589/902/41 545/1071/41 560/916/41 -f 596/918/37 584/898/37 573/895/37 -f 566/882/37 584/898/37 596/920/37 -f 578/889/37 586/894/37 595/922/37 -f 595/924/37 586/894/37 565/896/37 -f 597/926/37 582/899/37 577/891/37 -f 574/886/37 580/892/37 598/928/37 -f 598/930/37 580/892/37 570/900/37 -f 569/884/37 582/899/37 597/932/37 -f 561/935/42 562/1072/42 592/906/42 -f 562/1072/42 596/1073/42 593/904/42 -f 592/906/42 562/1072/42 593/904/42 -f 553/937/43 554/1074/43 593/904/43 -f 554/1074/43 598/1075/43 594/938/43 -f 593/904/43 554/1074/43 594/938/43 -f 598/1076/44 558/939/44 594/938/44 -f 558/939/44 557/1077/44 591/905/44 -f 557/1077/44 597/1078/44 591/905/44 -f 549/941/45 550/1079/45 591/905/45 -f 550/1079/45 595/1080/45 592/906/45 -f 591/905/45 550/1079/45 592/906/45 -f 599/942/32 601/945/32 602/943/32 -f 601/945/35 603/947/35 604/946/35 -f 603/947/46 605/1081/46 606/948/46 -f 599/949/33 605/1082/33 603/947/33 -f 604/946/34 606/1083/34 600/950/34 -f 607/951/35 609/1084/35 610/952/35 -f 625/954/35 626/972/35 623/955/35 -f 617/957/35 618/963/35 615/958/35 -f 611/960/34 616/959/34 615/958/34 -f 613/962/37 615/958/37 618/963/37 -f 612/965/32 617/957/32 616/959/32 -f 614/967/33 618/963/33 617/957/33 -f 619/969/34 624/956/34 623/955/34 -f 621/971/37 623/955/37 626/972/37 -f 620/974/32 625/954/32 624/956/32 -f 622/976/33 626/972/33 625/954/33 -f 641/978/35 642/996/35 639/979/35 -f 633/981/35 634/987/35 631/982/35 -f 627/984/34 632/983/34 631/982/34 -f 629/986/37 631/982/37 634/987/37 -f 628/989/32 633/981/32 632/983/32 -f 630/991/33 634/987/33 633/981/33 -f 635/993/34 640/980/34 639/979/34 -f 637/995/37 639/979/37 642/996/37 -f 636/998/32 641/978/32 640/980/32 -f 638/1000/33 642/996/33 641/978/33 -f 645/1002/47 649/1011/47 650/1003/47 -f 648/1005/32 647/1008/32 643/1006/32 -f 650/1003/48 649/1011/48 647/1008/48 -f 648/1085/34 644/1086/34 650/1003/34 -f 644/1086/34 652/1009/34 650/1003/34 -f 651/1013/33 643/1087/33 649/1011/33 -f 643/1087/33 647/1088/33 649/1011/33 -f 658/1016/33 656/1089/33 654/1022/33 -f 654/1022/33 662/1014/33 658/1016/33 -f 661/1019/34 653/1021/34 655/1090/34 -f 655/1090/34 657/1017/34 661/1019/34 -f 661/1019/36 664/1026/36 663/1020/36 -f 654/1022/36 665/1024/36 666/1023/36 -f 665/1024/33 669/1091/33 670/1025/33 -f 664/1026/34 668/1028/34 667/1027/34 -f 661/1029/32 662/1092/32 668/1028/32 -f 662/1092/32 666/1023/32 670/1025/32 -f 668/1028/32 662/1092/32 670/1025/32 -f 669/1032/37 665/1093/37 654/1094/37 -f 653/1030/37 663/1095/37 667/1031/37 -f 669/1032/37 654/1094/37 653/1030/37 -f 689/1035/49 687/1096/49 688/1097/49 -f 688/1097/49 694/1098/49 689/1035/49 -f 694/1098/49 693/1033/49 689/1035/49 -f 693/1033/49 692/1099/49 691/1034/49 -f 691/1034/49 690/1100/49 689/1035/49 -f 686/1038/50 671/1101/50 682/1102/50 -f 671/1101/50 680/1103/50 682/1102/50 -f 680/1103/50 681/1104/50 682/1102/50 -f 682/1102/50 683/1105/50 686/1038/50 -f 683/1105/50 684/1036/50 686/1038/50 -f 679/1041/50 672/1106/50 675/1107/50 -f 672/1106/50 673/1108/50 675/1107/50 -f 673/1108/50 674/1109/50 675/1107/50 -f 675/1107/50 676/1110/50 679/1041/50 -f 676/1110/50 677/1039/50 679/1041/50 -f 697/1044/49 698/1111/49 700/1112/49 -f 700/1112/49 702/1113/49 697/1044/49 -f 702/1113/49 701/1042/49 697/1044/49 -f 701/1042/49 695/1114/49 696/1043/49 -f 696/1043/49 699/1115/49 697/1044/49 -f 704/1045/50 706/1116/50 705/1046/50 -f 707/1048/49 710/1051/49 709/1049/49 -f 710/1051/51 707/1048/51 705/1052/51 -f 708/1050/52 709/1049/52 704/1045/52 -f 704/1054/53 709/1049/53 710/1051/53 -f 707/1048/54 708/1050/54 703/1056/54 +f 593/899/48 619/900/48 631/901/48 +f 591/902/48 624/903/48 629/904/48 +f 591/905/48 615/906/48 603/907/48 +f 592/908/48 620/909/48 600/910/48 +f 592/911/48 616/912/48 627/913/48 +f 593/914/48 612/915/48 608/916/48 +f 595/917/49 597/918/49 596/919/49 +f 600/920/50 601/921/50 599/922/50 +f 603/923/51 606/924/51 604/925/51 +f 608/926/52 609/927/52 607/928/52 +f 609/927/50 611/929/50 607/928/50 +f 608/926/49 614/930/49 610/931/49 +f 603/923/50 617/932/50 605/933/50 +f 606/924/49 616/912/49 604/925/49 +f 600/920/52 622/934/52 602/935/52 +f 601/921/51 619/900/51 599/922/51 +f 597/918/52 624/903/52 596/919/52 +f 595/936/51 626/937/51 598/938/51 +f 625/939/49 629/904/49 624/903/49 +f 620/909/50 628/940/50 622/934/50 +f 623/941/49 634/942/49 626/937/49 +f 621/943/50 631/901/50 619/900/50 +f 613/944/52 633/945/52 611/929/52 +f 612/915/52 632/946/52 614/930/52 +f 615/906/51 630/947/51 617/932/51 +f 628/940/51 616/912/51 618/948/51 +f 636/949/48 637/950/48 635/951/48 +f 641/952/53 639/953/53 640/954/53 +f 594/955/48 611/929/48 633/945/48 +f 594/956/48 623/941/48 595/957/48 +f 596/958/54 636/949/54 635/951/54 +f 603/959/55 604/960/55 638/961/55 +f 600/962/56 599/963/56 637/950/56 +f 608/964/57 607/965/57 635/951/57 +f 644/966/53 621/943/53 601/967/53 +f 614/930/53 644/968/53 610/969/53 +f 626/937/53 643/970/53 598/971/53 +f 643/972/53 613/944/53 609/973/53 +f 645/974/53 625/939/53 597/975/53 +f 622/934/53 646/976/53 602/977/53 +f 646/978/53 618/948/53 606/979/53 +f 617/932/53 645/980/53 605/981/53 +f 640/954/58 643/982/58 609/983/58 +f 641/952/59 644/984/59 601/985/59 +f 639/953/60 642/986/60 606/987/60 +f 639/953/61 645/988/61 597/989/61 +f 647/990/48 650/991/48 648/992/48 +f 649/993/51 652/994/51 650/991/51 +f 651/995/62 654/996/62 652/994/62 +f 647/997/49 651/995/49 649/993/49 +f 652/994/50 648/998/50 650/991/50 +f 655/999/51 658/1000/51 656/1001/51 +f 673/1002/51 671/1003/51 672/1004/51 +f 665/1005/51 663/1006/51 664/1007/51 +f 659/1008/50 663/1006/50 661/1009/50 +f 661/1010/53 666/1011/53 662/1012/53 +f 660/1013/48 664/1007/48 659/1014/48 +f 662/1015/49 665/1005/49 660/1016/49 +f 667/1017/50 671/1003/50 669/1018/50 +f 669/1019/53 674/1020/53 670/1021/53 +f 668/1022/48 672/1004/48 667/1023/48 +f 670/1024/49 673/1002/49 668/1025/49 +f 689/1026/51 687/1027/51 688/1028/51 +f 681/1029/51 679/1030/51 680/1031/51 +f 675/1032/50 679/1030/50 677/1033/50 +f 677/1034/53 682/1035/53 678/1036/53 +f 676/1037/48 680/1031/48 675/1038/48 +f 678/1039/49 681/1029/49 676/1040/49 +f 683/1041/50 687/1027/50 685/1042/50 +f 685/1043/53 690/1044/53 686/1045/53 +f 684/1046/48 688/1028/48 683/1047/48 +f 686/1048/49 689/1026/49 684/1049/49 +f 693/1050/63 698/1051/63 694/1052/63 +f 696/1053/48 691/1054/48 692/1055/48 +f 698/1051/64 695/1056/64 696/1053/64 +f 700/1057/50 694/1058/50 698/1051/50 +f 697/1059/49 693/1060/49 699/1061/49 +f 710/1062/49 708/1063/49 706/1064/49 +f 705/1065/50 707/1066/50 709/1067/50 +f 709/1067/52 711/1068/52 701/1069/52 +f 702/1070/52 714/1071/52 710/1062/52 +f 713/1072/49 718/1073/49 714/1071/49 +f 712/1074/50 715/1075/50 711/1068/50 +f 716/1076/48 712/1074/48 709/1077/48 +f 701/1078/53 715/1079/53 717/1080/53 +f 741/1081/65 739/1082/65 737/1083/65 +f 732/1084/66 733/1085/66 734/1086/66 +f 725/1087/66 726/1088/66 727/1089/66 +f 749/1090/65 744/1091/65 745/1092/65 +f 752/1093/66 753/1094/66 751/1095/66 +f 755/1096/65 757/1097/65 756/1098/65 +f 758/1099/67 753/1100/67 754/1101/67 +f 756/1098/68 752/1093/68 751/1095/68 +f 752/1102/69 758/1099/69 754/1103/69 +f 755/1096/70 751/1104/70 753/1105/70 +f 593/899/48 599/1106/48 619/900/48 +f 591/902/48 596/1107/48 624/903/48 +f 591/905/48 629/904/48 615/906/48 +f 592/908/48 627/913/48 620/909/48 +f 592/911/48 604/1108/48 616/912/48 +f 593/914/48 631/901/48 612/915/48 +f 595/917/49 598/1109/49 597/918/49 +f 600/920/50 602/935/50 601/921/50 +f 603/923/51 605/933/51 606/924/51 +f 608/926/52 610/931/52 609/927/52 +f 609/927/50 613/944/50 611/929/50 +f 608/926/49 612/915/49 614/930/49 +f 603/923/50 615/906/50 617/932/50 +f 606/924/49 618/948/49 616/912/49 +f 600/920/52 620/909/52 622/934/52 +f 601/921/51 621/943/51 619/900/51 +f 597/918/52 625/939/52 624/903/52 +f 595/936/51 623/941/51 626/937/51 +f 625/939/49 630/947/49 629/904/49 +f 620/909/50 627/913/50 628/940/50 +f 623/941/49 633/945/49 634/942/49 +f 621/943/50 632/946/50 631/901/50 +f 613/944/52 634/942/52 633/945/52 +f 612/915/52 631/901/52 632/946/52 +f 615/906/51 629/904/51 630/947/51 +f 628/940/51 627/913/51 616/912/51 +f 636/949/48 638/961/48 637/950/48 +f 641/952/53 642/986/53 639/953/53 +f 594/955/48 607/1110/48 611/929/48 +f 594/956/48 633/945/48 623/941/48 +f 635/951/54 594/1111/54 595/1112/54 +f 596/958/54 591/1113/54 636/949/54 +f 635/951/54 595/1112/54 596/958/54 +f 604/960/55 592/1114/55 638/961/55 +f 638/961/55 636/949/55 603/959/55 +f 636/949/55 591/1115/55 603/959/55 +f 599/963/56 593/1116/56 637/950/56 +f 637/950/56 638/961/56 600/962/56 +f 638/961/56 592/1117/56 600/962/56 +f 607/965/57 594/1118/57 635/951/57 +f 635/951/57 637/950/57 608/964/57 +f 637/950/57 593/1119/57 608/964/57 +f 644/966/53 632/946/53 621/943/53 +f 614/930/53 632/946/53 644/968/53 +f 626/937/53 634/942/53 643/970/53 +f 643/972/53 634/942/53 613/944/53 +f 645/974/53 630/947/53 625/939/53 +f 622/934/53 628/940/53 646/976/53 +f 646/978/53 628/940/53 618/948/53 +f 617/932/53 630/947/53 645/980/53 +f 609/983/58 610/1120/58 640/954/58 +f 610/1120/58 644/1121/58 641/952/58 +f 640/954/58 610/1120/58 641/952/58 +f 601/985/59 602/1122/59 641/952/59 +f 602/1122/59 646/1123/59 642/986/59 +f 641/952/59 602/1122/59 642/986/59 +f 646/1124/60 606/987/60 642/986/60 +f 606/987/60 605/1125/60 639/953/60 +f 605/1125/60 645/1126/60 639/953/60 +f 597/989/61 598/1127/61 639/953/61 +f 598/1127/61 643/1128/61 640/954/61 +f 639/953/61 598/1127/61 640/954/61 +f 647/990/48 649/993/48 650/991/48 +f 649/993/51 651/995/51 652/994/51 +f 651/995/62 653/1129/62 654/996/62 +f 647/997/49 653/1130/49 651/995/49 +f 652/994/50 654/1131/50 648/998/50 +f 655/999/51 657/1132/51 658/1000/51 +f 673/1002/51 674/1020/51 671/1003/51 +f 665/1005/51 666/1011/51 663/1006/51 +f 659/1008/50 664/1007/50 663/1006/50 +f 661/1010/53 663/1006/53 666/1011/53 +f 660/1013/48 665/1005/48 664/1007/48 +f 662/1015/49 666/1011/49 665/1005/49 +f 667/1017/50 672/1004/50 671/1003/50 +f 669/1019/53 671/1003/53 674/1020/53 +f 668/1022/48 673/1002/48 672/1004/48 +f 670/1024/49 674/1020/49 673/1002/49 +f 689/1026/51 690/1044/51 687/1027/51 +f 681/1029/51 682/1035/51 679/1030/51 +f 675/1032/50 680/1031/50 679/1030/50 +f 677/1034/53 679/1030/53 682/1035/53 +f 676/1037/48 681/1029/48 680/1031/48 +f 678/1039/49 682/1035/49 681/1029/49 +f 683/1041/50 688/1028/50 687/1027/50 +f 685/1043/53 687/1027/53 690/1044/53 +f 684/1046/48 689/1026/48 688/1028/48 +f 686/1048/49 690/1044/49 689/1026/49 +f 693/1050/63 697/1059/63 698/1051/63 +f 696/1053/48 695/1056/48 691/1054/48 +f 698/1051/64 697/1059/64 695/1056/64 +f 696/1133/50 692/1134/50 698/1051/50 +f 692/1134/50 700/1057/50 698/1051/50 +f 699/1061/49 691/1135/49 697/1059/49 +f 691/1135/49 695/1136/49 697/1059/49 +f 706/1064/49 704/1137/49 702/1070/49 +f 702/1070/49 710/1062/49 706/1064/49 +f 709/1067/50 701/1069/50 703/1138/50 +f 703/1138/50 705/1065/50 709/1067/50 +f 709/1067/52 712/1074/52 711/1068/52 +f 702/1070/52 713/1072/52 714/1071/52 +f 713/1072/49 717/1139/49 718/1073/49 +f 712/1074/50 716/1076/50 715/1075/50 +f 709/1077/48 710/1140/48 716/1076/48 +f 710/1140/48 714/1071/48 718/1073/48 +f 716/1076/48 710/1140/48 718/1073/48 +f 717/1080/53 713/1141/53 702/1142/53 +f 701/1078/53 711/1143/53 715/1079/53 +f 717/1080/53 702/1142/53 701/1078/53 +f 737/1083/65 735/1144/65 736/1145/65 +f 736/1145/65 742/1146/65 737/1083/65 +f 742/1146/65 741/1081/65 737/1083/65 +f 741/1081/65 740/1147/65 739/1082/65 +f 739/1082/65 738/1148/65 737/1083/65 +f 734/1086/66 719/1149/66 730/1150/66 +f 719/1149/66 728/1151/66 730/1150/66 +f 728/1151/66 729/1152/66 730/1150/66 +f 730/1150/66 731/1153/66 734/1086/66 +f 731/1153/66 732/1084/66 734/1086/66 +f 727/1089/66 720/1154/66 723/1155/66 +f 720/1154/66 721/1156/66 723/1155/66 +f 721/1156/66 722/1157/66 723/1155/66 +f 723/1155/66 724/1158/66 727/1089/66 +f 724/1158/66 725/1087/66 727/1089/66 +f 745/1092/65 746/1159/65 748/1160/65 +f 748/1160/65 750/1161/65 745/1092/65 +f 750/1161/65 749/1090/65 745/1092/65 +f 749/1090/65 743/1162/65 744/1091/65 +f 744/1091/65 747/1163/65 745/1092/65 +f 752/1093/66 754/1164/66 753/1094/66 +f 755/1096/65 758/1099/65 757/1097/65 +f 758/1099/67 755/1096/67 753/1100/67 +f 756/1098/68 757/1097/68 752/1093/68 +f 752/1102/69 757/1097/69 758/1099/69 +f 755/1096/70 756/1098/70 751/1104/70 s 1 -f 745/1117/52 748/1118/55 747/1119/55 -f 726/1120/56 727/1121/33 725/1122/56 -f 748/1118/55 749/1123/34 747/1119/55 -f 724/1124/51 725/1122/56 723/1125/51 -f 753/1126/57 784/1127/58 782/1128/57 -f 765/1129/59 781/1130/60 778/1131/59 -f 763/1132/61 781/1133/60 764/1134/60 -f 768/1135/58 783/1136/62 784/1137/58 -f 753/1138/57 780/1139/63 762/1140/63 -f 766/1141/64 783/1142/62 767/1143/62 -f 763/1132/61 780/1144/63 779/1145/61 -f 760/1146/62 776/1147/58 761/1148/58 -f 756/1149/61 772/1150/60 757/1151/60 -f 754/1152/57 769/1153/63 755/1154/63 -f 758/1155/59 774/1156/64 759/1157/64 -f 758/1155/59 772/1158/60 773/1159/59 -f 754/1160/57 776/1161/58 770/1162/57 -f 759/1157/64 775/1163/62 760/1146/62 -f 765/1129/59 777/1164/64 766/1141/64 -f 755/1154/63 771/1165/61 756/1149/61 -f 712/1166/65 713/1167/42 711/1168/65 -f 714/1169/42 715/1170/36 713/1167/42 -f 716/1171/36 717/1172/41 715/1170/36 -f 718/1173/41 719/1174/66 717/1172/41 -f 727/1121/33 730/1175/67 729/1176/67 -f 744/1177/67 745/1117/52 743/1178/67 -f 730/1175/67 731/1179/52 729/1176/67 -f 741/1180/33 744/1177/67 743/1178/67 -f 731/1179/52 734/1181/55 733/1182/55 -f 752/1183/68 722/1184/51 751/1185/68 -f 739/1186/56 742/1187/33 741/1180/33 -f 734/1181/55 735/1188/34 733/1182/55 -f 722/1189/51 740/1190/56 739/1186/56 -f 736/1191/34 737/1192/68 735/1188/34 -f 750/1193/34 751/1185/68 749/1123/34 -f 738/1194/68 723/1195/51 737/1192/68 -f 745/1117/52 746/1196/52 748/1118/55 -f 726/1120/56 728/1197/33 727/1121/33 -f 748/1118/55 750/1193/34 749/1123/34 -f 724/1124/51 726/1120/56 725/1122/56 -f 753/1126/57 768/1135/58 784/1127/58 -f 765/1129/59 764/1134/60 781/1130/60 -f 763/1132/61 779/1198/61 781/1133/60 -f 768/1135/58 767/1143/62 783/1136/62 -f 753/1138/57 782/1199/57 780/1139/63 -f 766/1141/64 777/1200/64 783/1142/62 -f 763/1132/61 762/1140/63 780/1144/63 -f 760/1146/62 775/1201/62 776/1147/58 -f 756/1149/61 771/1202/61 772/1150/60 -f 754/1152/57 770/1203/57 769/1153/63 -f 758/1155/59 773/1204/59 774/1156/64 -f 758/1155/59 757/1151/60 772/1158/60 -f 754/1160/57 761/1148/58 776/1161/58 -f 759/1157/64 774/1205/64 775/1163/62 -f 765/1129/59 778/1206/59 777/1164/64 -f 755/1154/63 769/1207/63 771/1165/61 -f 712/1166/65 714/1169/42 713/1167/42 -f 714/1169/42 716/1171/36 715/1170/36 -f 716/1171/36 718/1173/41 717/1172/41 -f 718/1173/41 720/1208/66 719/1174/66 -f 727/1121/33 728/1197/33 730/1175/67 -f 744/1177/67 746/1196/52 745/1117/52 -f 730/1175/67 732/1209/52 731/1179/52 -f 741/1180/33 742/1187/33 744/1177/67 -f 731/1179/52 732/1209/52 734/1181/55 -f 752/1183/68 721/1210/51 722/1184/51 -f 739/1186/56 740/1190/56 742/1187/33 -f 734/1181/55 736/1191/34 735/1188/34 -f 722/1189/51 721/1211/51 740/1190/56 -f 736/1191/34 738/1194/68 737/1192/68 -f 750/1193/34 752/1183/68 751/1185/68 -f 738/1194/68 724/1212/51 723/1195/51 +f 793/1165/68 796/1166/71 795/1167/71 +f 774/1168/72 775/1169/49 773/1170/72 +f 796/1166/71 797/1171/50 795/1167/71 +f 772/1172/67 773/1170/72 771/1173/67 +f 801/1174/73 832/1175/74 830/1176/73 +f 813/1177/75 829/1178/76 826/1179/75 +f 811/1180/77 829/1181/76 812/1182/76 +f 816/1183/74 831/1184/78 832/1185/74 +f 801/1186/73 828/1187/79 810/1188/79 +f 814/1189/80 831/1190/78 815/1191/78 +f 811/1180/77 828/1192/79 827/1193/77 +f 808/1194/78 824/1195/74 809/1196/74 +f 804/1197/77 820/1198/76 805/1199/76 +f 802/1200/73 817/1201/79 803/1202/79 +f 806/1203/75 822/1204/80 807/1205/80 +f 806/1203/75 820/1206/76 821/1207/75 +f 802/1208/73 824/1209/74 818/1210/73 +f 807/1205/80 823/1211/78 808/1194/78 +f 813/1177/75 825/1212/80 814/1189/80 +f 803/1202/79 819/1213/77 804/1197/77 +f 760/1214/81 761/1215/58 759/1216/81 +f 762/1217/58 763/1218/52 761/1215/58 +f 764/1219/52 765/1220/57 763/1218/52 +f 766/1221/57 767/1222/82 765/1220/57 +f 775/1169/49 778/1223/83 777/1224/83 +f 792/1225/83 793/1165/68 791/1226/83 +f 778/1223/83 779/1227/68 777/1224/83 +f 789/1228/49 792/1225/83 791/1226/83 +f 779/1227/68 782/1229/71 781/1230/71 +f 800/1231/84 770/1232/67 799/1233/84 +f 787/1234/72 790/1235/49 789/1228/49 +f 782/1229/71 783/1236/50 781/1230/71 +f 770/1237/67 788/1238/72 787/1234/72 +f 784/1239/50 785/1240/84 783/1236/50 +f 798/1241/50 799/1233/84 797/1171/50 +f 786/1242/84 771/1243/67 785/1240/84 +f 793/1165/68 794/1244/68 796/1166/71 +f 774/1168/72 776/1245/49 775/1169/49 +f 796/1166/71 798/1241/50 797/1171/50 +f 772/1172/67 774/1168/72 773/1170/72 +f 801/1174/73 816/1183/74 832/1175/74 +f 813/1177/75 812/1182/76 829/1178/76 +f 811/1180/77 827/1246/77 829/1181/76 +f 816/1183/74 815/1191/78 831/1184/78 +f 801/1186/73 830/1247/73 828/1187/79 +f 814/1189/80 825/1248/80 831/1190/78 +f 811/1180/77 810/1188/79 828/1192/79 +f 808/1194/78 823/1249/78 824/1195/74 +f 804/1197/77 819/1250/77 820/1198/76 +f 802/1200/73 818/1251/73 817/1201/79 +f 806/1203/75 821/1252/75 822/1204/80 +f 806/1203/75 805/1199/76 820/1206/76 +f 802/1208/73 809/1196/74 824/1209/74 +f 807/1205/80 822/1253/80 823/1211/78 +f 813/1177/75 826/1254/75 825/1212/80 +f 803/1202/79 817/1255/79 819/1213/77 +f 760/1214/81 762/1217/58 761/1215/58 +f 762/1217/58 764/1219/52 763/1218/52 +f 764/1219/52 766/1221/57 765/1220/57 +f 766/1221/57 768/1256/82 767/1222/82 +f 775/1169/49 776/1245/49 778/1223/83 +f 792/1225/83 794/1244/68 793/1165/68 +f 778/1223/83 780/1257/68 779/1227/68 +f 789/1228/49 790/1235/49 792/1225/83 +f 779/1227/68 780/1257/68 782/1229/71 +f 800/1231/84 769/1258/67 770/1232/67 +f 787/1234/72 788/1238/72 790/1235/49 +f 782/1229/71 784/1239/50 783/1236/50 +f 770/1237/67 769/1259/67 788/1238/72 +f 784/1239/50 786/1242/84 785/1240/84 +f 798/1241/50 800/1231/84 799/1233/84 +f 786/1242/84 772/1260/67 771/1243/67 o LeftLeg -v 5.000000 24.499998 3.000000 -v 5.000000 24.499998 -3.000000 -v -1.000000 24.500000 3.000000 -v -1.000000 24.500000 -3.000000 -v 4.000000 24.499998 -4.000000 -v 0.000000 24.500000 -4.000000 v 3.999996 10.999999 -2.000000 v 3.999996 10.999999 2.000000 -v -0.000001 21.500000 -4.000000 -v 3.999999 21.499998 -4.000000 v 4.499996 11.999998 2.000000 v 4.499996 11.999998 -2.000000 v 4.999996 11.999998 -2.000000 @@ -3358,19 +3500,11 @@ vt 0.428571 0.796296 vt 0.428571 0.944444 vt 0.392857 0.759259 vt 0.250000 0.796296 -vt 0.142857 0.407407 -vt -0.000000 0.425926 -vt -0.000000 0.407407 -vt 0.392857 0.407407 -vt 0.250000 0.425926 -vt 0.250000 0.407407 -vt 0.642857 0.407407 -vt 0.500000 0.425926 -vt 0.500000 0.407407 vt 0.732143 0.425926 vt 0.750000 0.740741 vt 0.732143 0.740741 vt 0.482143 0.740741 +vt 0.500000 0.425926 vt 0.500000 0.740741 vt 0.910714 0.740741 vt 0.946429 0.425926 @@ -3388,6 +3522,7 @@ vt 0.392857 0.425926 vt 0.392857 0.740741 vt 0.446429 0.740741 vt 0.482143 0.425926 +vt 0.250000 0.425926 vt 0.160714 0.425926 vt 0.160714 0.740741 vt 0.696429 0.740741 @@ -3404,24 +3539,8 @@ vt 1.000000 0.740741 vt 0.410714 0.425926 vt 0.642857 0.425926 vt 0.000000 0.740741 -vt 0.750000 0.407407 -vt 0.892857 0.407407 -vt 0.678571 0.407407 -vt 0.642857 0.407407 -vt 0.642857 0.259259 -vt 0.464286 0.407407 -vt 0.428571 0.407407 -vt 0.428571 0.259259 -vt 0.214286 0.259259 -vt 0.178571 0.407407 -vt 0.035714 0.407407 -vt 0.392857 0.259259 -vt 0.250000 0.370370 -vt 0.250000 0.259259 -vt 0.214286 0.407407 vt 0.392857 1.000000 vt 0.250000 0.759259 -vt 0.392857 0.370370 vt 0.214286 0.944444 vt 0.196429 0.796296 vt 0.214286 0.796296 @@ -3682,361 +3801,316 @@ vt 0.071429 0.759259 vt -0.000000 0.759259 vt 0.017857 0.796296 vt -0.000000 0.796296 -vt 0.214286 0.222222 -vt 0.214286 -0.000000 -vt 0.428571 0.000000 vt 0.214286 0.981481 vt 0.392857 0.944444 vt 0.428571 0.981481 vt 0.428571 0.759259 vt 0.910714 0.425926 vt 0.232143 0.425926 -vt 0.857143 0.259259 -vt 0.821429 0.407407 -vt 0.857143 0.407407 -vt 0.607143 0.407407 -vt -0.000000 0.407407 -vt 0.000000 0.259259 +vt -0.000000 0.425926 vt 0.250000 1.000000 vt 0.196429 0.944444 vt 0.589286 0.740741 vt 0.446429 0.759259 -vt 0.428571 0.222222 vn -0.0000 -0.7071 0.7071 vn 0.7071 -0.7071 0.0000 vn -0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn 1.0000 -0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 -0.0000 -0.7071 +vn -0.0000 -1.0000 0.0000 vn -0.7071 -0.7071 0.0000 vn 0.0000 0.4472 -0.8944 vn 0.4472 -0.0000 -0.8944 vn -0.0000 -0.4472 -0.8944 vn -0.4472 0.0000 -0.8944 s off -f 801/1213/69 813/1214/69 835/1215/69 -f 791/1216/70 797/1217/70 798/1218/70 -f 802/1219/71 791/1216/71 836/1220/71 -f 827/1221/72 832/1222/72 828/1223/72 -f 822/1224/72 826/1225/72 834/1226/72 -f 818/1227/72 816/1228/72 817/1229/72 -f 821/1230/73 803/1231/73 801/1232/73 -f 797/1233/74 816/1228/74 796/1234/74 -f 813/1235/74 829/1236/74 809/1237/74 -f 823/1238/74 805/1239/74 803/1231/74 -f 795/1240/75 818/1241/75 798/1242/75 -f 830/1243/75 814/1244/75 810/1245/75 -f 806/1246/75 824/1247/75 804/1248/75 -f 800/1249/76 817/1250/76 797/1233/76 -f 814/1244/76 826/1225/76 806/1246/76 -f 827/1251/73 810/1245/73 807/1252/73 -f 818/1241/76 799/1253/76 798/1242/76 -f 825/1254/76 813/1235/76 805/1239/76 -f 809/1237/73 828/1255/73 808/1256/73 -f 819/1257/74 801/1232/74 799/1253/74 -f 831/1258/74 807/1252/74 811/1259/74 -f 802/1260/75 820/1261/75 800/1249/75 -f 808/1256/75 832/1262/75 812/1263/75 -f 804/1248/73 822/1264/73 802/1260/73 -f 796/1234/76 815/1265/76 795/1240/76 -f 812/1266/73 831/1258/73 811/1259/73 -f 825/1254/72 821/1267/72 833/1268/72 -f 821/1269/74 819/1270/74 785/1271/74 -f 817/1272/76 820/1273/76 786/1274/76 -f 788/1275/73 827/1276/73 828/1277/73 -f 789/1278/75 793/1279/75 790/1280/75 -f 834/1226/71 830/1281/71 793/1279/71 -f 803/1282/77 813/1214/77 801/1213/77 -f 814/1283/77 804/1248/77 802/1219/77 -f 793/1279/78 788/1275/78 790/1280/78 -f 786/1274/79 794/1284/79 789/1278/79 -f 808/1285/77 811/1286/77 807/1287/77 -f 798/1218/77 796/1288/77 795/1289/77 -f 791/1216/72 835/1215/72 836/1220/72 -f 807/1287/80 810/1290/80 836/1220/80 -f 851/1291/75 849/1292/75 850/1293/75 -f 843/1294/75 841/1295/75 842/1296/75 -f 840/1297/73 843/1294/73 838/1298/73 -f 837/1299/76 841/1295/76 839/1300/76 -f 839/1301/77 844/1302/77 840/1303/77 -f 838/1304/72 842/1296/72 837/1305/72 -f 848/1306/73 851/1291/73 846/1307/73 -f 845/1308/76 849/1292/76 847/1309/76 -f 847/1310/77 852/1311/77 848/1312/77 -f 846/1313/72 850/1293/72 845/1314/72 -f 859/1315/72 855/1316/72 860/1317/72 -f 858/1318/77 853/1319/77 857/1320/77 -f 860/1321/76 856/1322/76 858/1323/76 -f 857/1324/73 854/1325/73 859/1326/73 -f 867/1327/72 863/1328/72 868/1329/72 -f 866/1330/77 861/1331/77 865/1332/77 -f 868/1333/76 864/1334/76 866/1335/76 -f 865/1336/73 862/1337/73 867/1338/73 -f 862/1337/75 864/1334/75 863/1328/75 -f 854/1325/75 856/1322/75 855/1316/75 -f 870/1339/72 871/1340/72 869/1341/72 -f 878/1342/75 880/1343/75 879/1344/75 -f 877/1345/81 879/1344/81 874/1346/81 -f 872/1347/82 878/1342/82 877/1345/82 -f 870/1339/83 876/1348/83 872/1347/83 -f 873/1349/77 877/1345/77 874/1346/77 -f 874/1346/84 880/1343/84 870/1339/84 -f 871/1350/76 877/1345/76 875/1351/76 -f 869/1352/73 874/1346/73 870/1339/73 -f 895/1353/76 893/1354/76 894/1355/76 -f 887/1356/76 885/1357/76 886/1358/76 -f 884/1359/75 887/1356/75 882/1360/75 -f 881/1361/74 885/1357/74 883/1362/74 -f 883/1363/77 888/1364/77 884/1365/77 -f 882/1366/72 886/1358/72 881/1367/72 -f 892/1368/75 895/1353/75 890/1369/75 -f 889/1370/74 893/1354/74 891/1371/74 -f 891/1372/77 896/1373/77 892/1374/77 -f 890/1375/72 894/1355/72 889/1376/72 -f 911/1377/76 909/1378/76 910/1379/76 -f 903/1380/76 901/1381/76 902/1382/76 -f 900/1383/75 903/1380/75 898/1384/75 -f 897/1385/74 901/1381/74 899/1386/74 -f 899/1387/77 904/1388/77 900/1389/77 -f 898/1390/72 902/1382/72 897/1391/72 -f 908/1392/75 911/1377/75 906/1393/75 -f 905/1394/74 909/1378/74 907/1395/74 -f 907/1396/77 912/1397/77 908/1398/77 -f 906/1399/72 910/1379/72 905/1400/72 -f 919/1401/72 915/1402/72 920/1403/72 -f 918/1404/77 913/1405/77 917/1406/77 -f 920/1407/74 916/1408/74 918/1409/74 -f 917/1410/75 914/1411/75 919/1412/75 -f 927/1413/72 923/1414/72 928/1415/72 -f 926/1416/77 921/1417/77 925/1418/77 -f 928/1419/74 924/1420/74 926/1421/74 -f 925/1422/75 922/1423/75 927/1424/75 -f 922/1423/76 924/1420/76 923/1414/76 -f 914/1411/76 916/1408/76 915/1402/76 -f 935/1425/72 931/1426/72 936/1427/72 -f 934/1428/77 929/1429/77 933/1430/77 -f 936/1431/74 932/1432/74 934/1433/74 -f 933/1434/75 930/1435/75 935/1436/75 -f 943/1437/72 939/1438/72 944/1439/72 -f 942/1440/77 937/1441/77 941/1442/77 -f 944/1443/74 940/1444/74 942/1445/74 -f 941/1446/75 938/1447/75 943/1448/75 -f 938/1447/76 940/1444/76 939/1438/76 -f 930/1435/76 932/1432/76 931/1426/76 -f 959/1449/74 957/1450/74 958/1451/74 -f 951/1452/74 949/1453/74 950/1454/74 -f 948/1455/76 951/1452/76 946/1456/76 -f 945/1457/73 949/1453/73 947/1458/73 -f 947/1459/77 952/1460/77 948/1461/77 -f 946/1462/72 950/1454/72 945/1463/72 -f 956/1464/76 959/1449/76 954/1465/76 -f 953/1466/73 957/1450/73 955/1467/73 -f 955/1468/77 960/1469/77 956/1470/77 -f 954/1471/72 958/1451/72 953/1472/72 -f 975/1473/74 973/1474/74 974/1475/74 -f 967/1476/74 965/1477/74 966/1478/74 -f 964/1479/76 967/1476/76 962/1480/76 -f 961/1481/73 965/1477/73 963/1482/73 -f 963/1483/77 968/1484/77 964/1485/77 -f 962/1486/72 966/1478/72 961/1487/72 -f 972/1488/76 975/1473/76 970/1489/76 -f 969/1490/73 973/1474/73 971/1491/73 -f 971/1492/77 976/1493/77 972/1494/77 -f 970/1495/72 974/1475/72 969/1496/72 -f 983/1497/72 979/1498/72 984/1499/72 -f 982/1500/77 977/1501/77 981/1502/77 -f 984/1503/73 980/1504/73 982/1505/73 -f 981/1506/76 978/1507/76 983/1508/76 -f 991/1509/72 987/1510/72 992/1511/72 -f 990/1512/77 985/1513/77 989/1514/77 -f 992/1515/73 988/1516/73 990/1517/73 -f 989/1518/76 986/1519/76 991/1520/76 -f 986/1519/74 988/1516/74 987/1510/74 -f 978/1507/74 980/1504/74 979/1498/74 -f 999/1521/72 995/1522/72 1000/1523/72 -f 998/1524/77 993/1525/77 997/1526/77 -f 1000/1527/73 996/1528/73 998/1529/73 -f 997/1530/76 994/1531/76 999/1532/76 -f 1007/1533/72 1003/1534/72 1008/1535/72 -f 1006/1536/77 1001/1537/77 1005/1538/77 -f 1008/1539/73 1004/1540/73 1006/1541/73 -f 1005/1542/76 1002/1543/76 1007/1544/76 -f 1002/1543/74 1004/1540/74 1003/1534/74 -f 994/1531/74 996/1528/74 995/1522/74 -f 788/1545/77 787/1546/77 785/1547/77 -f 813/1214/69 809/1548/69 835/1215/69 -f 835/1215/69 792/1549/69 801/1213/69 -f 792/1549/69 799/1550/69 801/1213/69 -f 799/1550/70 792/1549/70 798/1218/70 -f 792/1549/70 791/1216/70 798/1218/70 -f 791/1216/70 800/1551/70 797/1217/70 -f 836/1220/71 810/1290/71 814/1283/71 -f 802/1219/71 800/1551/71 791/1216/71 -f 836/1220/71 814/1283/71 802/1219/71 -f 827/1221/72 831/1258/72 832/1222/72 -f 822/1224/72 824/1247/72 826/1225/72 -f 818/1227/72 815/1265/72 816/1228/72 -f 821/1230/73 823/1238/73 803/1231/73 -f 797/1233/74 817/1250/74 816/1228/74 -f 813/1235/74 833/1552/74 829/1236/74 -f 823/1238/74 825/1254/74 805/1239/74 -f 795/1240/75 815/1265/75 818/1241/75 -f 830/1243/75 834/1553/75 814/1244/75 -f 806/1246/75 826/1225/75 824/1247/75 -f 800/1249/76 820/1261/76 817/1250/76 -f 814/1244/76 834/1553/76 826/1225/76 -f 827/1251/73 830/1243/73 810/1245/73 -f 818/1241/76 819/1257/76 799/1253/76 -f 825/1254/76 833/1552/76 813/1235/76 -f 809/1237/73 829/1236/73 828/1255/73 -f 819/1257/74 821/1230/74 801/1232/74 -f 831/1258/74 827/1251/74 807/1252/74 -f 802/1260/75 822/1264/75 820/1261/75 -f 808/1256/75 828/1255/75 832/1262/75 -f 804/1248/73 824/1247/73 822/1264/73 -f 796/1234/76 816/1228/76 815/1265/76 -f 812/1266/73 832/1222/73 831/1258/73 -f 825/1254/72 823/1238/72 821/1267/72 -f 785/1271/74 787/1554/74 833/1555/74 -f 787/1554/74 829/1556/74 833/1555/74 -f 833/1555/74 821/1269/74 785/1271/74 -f 786/1274/76 785/1271/76 818/1557/76 -f 785/1271/76 819/1270/76 818/1557/76 -f 818/1557/76 817/1272/76 786/1274/76 -f 829/1558/73 787/1559/73 828/1277/73 -f 787/1559/73 788/1275/73 828/1277/73 -f 788/1275/73 830/1281/73 827/1276/73 -f 789/1278/75 794/1284/75 793/1279/75 -f 793/1279/71 794/1284/71 822/1224/71 -f 794/1284/71 820/1273/71 822/1224/71 -f 822/1224/71 834/1226/71 793/1279/71 -f 803/1282/77 805/1560/77 813/1214/77 -f 814/1283/77 806/1246/77 804/1248/77 -f 793/1279/78 830/1281/78 788/1275/78 -f 786/1274/79 820/1273/79 794/1284/79 -f 808/1285/77 812/1561/77 811/1286/77 -f 798/1218/77 797/1217/77 796/1288/77 -f 791/1216/72 792/1549/72 835/1215/72 -f 836/1220/80 835/1215/80 808/1285/80 -f 835/1215/80 809/1548/80 808/1285/80 -f 808/1285/80 807/1287/80 836/1220/80 -f 851/1291/75 852/1311/75 849/1292/75 -f 843/1294/75 844/1302/75 841/1295/75 -f 840/1297/73 844/1302/73 843/1294/73 -f 837/1299/76 842/1296/76 841/1295/76 -f 839/1301/77 841/1295/77 844/1302/77 -f 838/1304/72 843/1294/72 842/1296/72 -f 848/1306/73 852/1311/73 851/1291/73 -f 845/1308/76 850/1293/76 849/1292/76 -f 847/1310/77 849/1292/77 852/1311/77 -f 846/1313/72 851/1291/72 850/1293/72 -f 859/1315/72 854/1325/72 855/1316/72 -f 858/1318/77 856/1322/77 853/1319/77 -f 860/1321/76 855/1316/76 856/1322/76 -f 857/1324/73 853/1319/73 854/1325/73 -f 867/1327/72 862/1337/72 863/1328/72 -f 866/1330/77 864/1334/77 861/1331/77 -f 868/1333/76 863/1328/76 864/1334/76 -f 865/1336/73 861/1331/73 862/1337/73 -f 862/1337/75 861/1331/75 864/1334/75 -f 854/1325/75 853/1319/75 856/1322/75 -f 870/1339/72 872/1347/72 871/1340/72 -f 878/1342/75 876/1348/75 880/1343/75 -f 877/1345/81 878/1342/81 879/1344/81 -f 872/1347/82 876/1348/82 878/1342/82 -f 870/1339/83 880/1343/83 876/1348/83 -f 873/1349/77 875/1562/77 877/1345/77 -f 874/1346/84 879/1344/84 880/1343/84 -f 871/1350/76 872/1347/76 877/1345/76 -f 869/1352/73 873/1563/73 874/1346/73 -f 895/1353/76 896/1373/76 893/1354/76 -f 887/1356/76 888/1364/76 885/1357/76 -f 884/1359/75 888/1364/75 887/1356/75 -f 881/1361/74 886/1358/74 885/1357/74 -f 883/1363/77 885/1357/77 888/1364/77 -f 882/1366/72 887/1356/72 886/1358/72 -f 892/1368/75 896/1373/75 895/1353/75 -f 889/1370/74 894/1355/74 893/1354/74 -f 891/1372/77 893/1354/77 896/1373/77 -f 890/1375/72 895/1353/72 894/1355/72 -f 911/1377/76 912/1397/76 909/1378/76 -f 903/1380/76 904/1388/76 901/1381/76 -f 900/1383/75 904/1388/75 903/1380/75 -f 897/1385/74 902/1382/74 901/1381/74 -f 899/1387/77 901/1381/77 904/1388/77 -f 898/1390/72 903/1380/72 902/1382/72 -f 908/1392/75 912/1397/75 911/1377/75 -f 905/1394/74 910/1379/74 909/1378/74 -f 907/1396/77 909/1378/77 912/1397/77 -f 906/1399/72 911/1377/72 910/1379/72 -f 919/1401/72 914/1411/72 915/1402/72 -f 918/1404/77 916/1408/77 913/1405/77 -f 920/1407/74 915/1402/74 916/1408/74 -f 917/1410/75 913/1405/75 914/1411/75 -f 927/1413/72 922/1423/72 923/1414/72 -f 926/1416/77 924/1420/77 921/1417/77 -f 928/1419/74 923/1414/74 924/1420/74 -f 925/1422/75 921/1417/75 922/1423/75 -f 922/1423/76 921/1417/76 924/1420/76 -f 914/1411/76 913/1405/76 916/1408/76 -f 935/1425/72 930/1435/72 931/1426/72 -f 934/1428/77 932/1432/77 929/1429/77 -f 936/1431/74 931/1426/74 932/1432/74 -f 933/1434/75 929/1429/75 930/1435/75 -f 943/1437/72 938/1447/72 939/1438/72 -f 942/1440/77 940/1444/77 937/1441/77 -f 944/1443/74 939/1438/74 940/1444/74 -f 941/1446/75 937/1441/75 938/1447/75 -f 938/1447/76 937/1441/76 940/1444/76 -f 930/1435/76 929/1429/76 932/1432/76 -f 959/1449/74 960/1469/74 957/1450/74 -f 951/1452/74 952/1460/74 949/1453/74 -f 948/1455/76 952/1460/76 951/1452/76 -f 945/1457/73 950/1454/73 949/1453/73 -f 947/1459/77 949/1453/77 952/1460/77 -f 946/1462/72 951/1452/72 950/1454/72 -f 956/1464/76 960/1469/76 959/1449/76 -f 953/1466/73 958/1451/73 957/1450/73 -f 955/1468/77 957/1450/77 960/1469/77 -f 954/1471/72 959/1449/72 958/1451/72 -f 975/1473/74 976/1493/74 973/1474/74 -f 967/1476/74 968/1484/74 965/1477/74 -f 964/1479/76 968/1484/76 967/1476/76 -f 961/1481/73 966/1478/73 965/1477/73 -f 963/1483/77 965/1477/77 968/1484/77 -f 962/1486/72 967/1476/72 966/1478/72 -f 972/1488/76 976/1493/76 975/1473/76 -f 969/1490/73 974/1475/73 973/1474/73 -f 971/1492/77 973/1474/77 976/1493/77 -f 970/1495/72 975/1473/72 974/1475/72 -f 983/1497/72 978/1507/72 979/1498/72 -f 982/1500/77 980/1504/77 977/1501/77 -f 984/1503/73 979/1498/73 980/1504/73 -f 981/1506/76 977/1501/76 978/1507/76 -f 991/1509/72 986/1519/72 987/1510/72 -f 990/1512/77 988/1516/77 985/1513/77 -f 992/1515/73 987/1510/73 988/1516/73 -f 989/1518/76 985/1513/76 986/1519/76 -f 986/1519/74 985/1513/74 988/1516/74 -f 978/1507/74 977/1501/74 980/1504/74 -f 999/1521/72 994/1531/72 995/1522/72 -f 998/1524/77 996/1528/77 993/1525/77 -f 1000/1527/73 995/1522/73 996/1528/73 -f 997/1530/76 993/1525/76 994/1531/76 -f 1007/1533/72 1002/1543/72 1003/1534/72 -f 1006/1536/77 1004/1540/77 1001/1537/77 -f 1008/1539/73 1003/1534/73 1004/1540/73 -f 1005/1542/76 1001/1537/76 1002/1543/76 -f 1002/1543/74 1001/1537/74 1004/1540/74 -f 994/1531/74 993/1525/74 996/1528/74 -f 785/1547/77 786/1564/77 788/1545/77 -f 786/1564/77 789/1278/77 788/1545/77 -f 789/1278/77 790/1280/77 788/1545/77 +f 841/1261/85 853/1262/85 875/1263/85 +f 833/1264/86 837/1265/86 838/1266/86 +f 842/1267/87 833/1264/87 876/1268/87 +f 861/1269/88 843/1270/88 841/1271/88 +f 837/1272/89 856/1273/89 836/1274/89 +f 853/1275/89 869/1276/89 849/1277/89 +f 863/1278/89 845/1279/89 843/1270/89 +f 835/1280/90 858/1281/90 838/1282/90 +f 870/1283/90 854/1284/90 850/1285/90 +f 846/1286/90 864/1287/90 844/1288/90 +f 840/1289/91 857/1290/91 837/1272/91 +f 854/1284/91 866/1291/91 846/1286/91 +f 867/1292/88 850/1285/88 847/1293/88 +f 858/1281/91 839/1294/91 838/1282/91 +f 865/1295/91 853/1275/91 845/1279/91 +f 849/1277/88 868/1296/88 848/1297/88 +f 859/1298/89 841/1271/89 839/1294/89 +f 871/1299/89 847/1293/89 851/1300/89 +f 842/1301/90 860/1302/90 840/1289/90 +f 848/1297/90 872/1303/90 852/1304/90 +f 844/1288/88 862/1305/88 842/1301/88 +f 836/1274/91 855/1306/91 835/1280/91 +f 852/1307/88 871/1299/88 851/1300/88 +f 843/1308/92 853/1262/92 841/1261/92 +f 854/1309/92 844/1288/92 842/1267/92 +f 848/1310/92 851/1311/92 847/1312/92 +f 838/1266/92 836/1313/92 835/1314/92 +f 833/1264/93 875/1263/93 876/1268/93 +f 847/1312/94 850/1315/94 876/1268/94 +f 891/1316/90 889/1317/90 890/1318/90 +f 883/1319/90 881/1320/90 882/1321/90 +f 880/1322/88 883/1319/88 878/1323/88 +f 877/1324/91 881/1320/91 879/1325/91 +f 879/1326/92 884/1327/92 880/1328/92 +f 878/1329/93 882/1321/93 877/1330/93 +f 888/1331/88 891/1316/88 886/1332/88 +f 885/1333/91 889/1317/91 887/1334/91 +f 887/1335/92 892/1336/92 888/1337/92 +f 886/1338/93 890/1318/93 885/1339/93 +f 899/1340/93 895/1341/93 900/1342/93 +f 898/1343/92 893/1344/92 897/1345/92 +f 900/1346/91 896/1347/91 898/1348/91 +f 897/1349/88 894/1350/88 899/1351/88 +f 907/1352/93 903/1353/93 908/1354/93 +f 906/1355/92 901/1356/92 905/1357/92 +f 908/1358/91 904/1359/91 906/1360/91 +f 905/1361/88 902/1362/88 907/1363/88 +f 902/1362/90 904/1359/90 903/1353/90 +f 894/1350/90 896/1347/90 895/1341/90 +f 910/1364/93 911/1365/93 909/1366/93 +f 918/1367/90 920/1368/90 919/1369/90 +f 917/1370/95 919/1369/95 914/1371/95 +f 912/1372/96 918/1367/96 917/1370/96 +f 910/1364/97 916/1373/97 912/1372/97 +f 913/1374/92 917/1370/92 914/1371/92 +f 914/1371/98 920/1368/98 910/1364/98 +f 911/1375/91 917/1370/91 915/1376/91 +f 909/1377/88 914/1371/88 910/1364/88 +f 935/1378/91 933/1379/91 934/1380/91 +f 927/1381/91 925/1382/91 926/1383/91 +f 924/1384/90 927/1381/90 922/1385/90 +f 921/1386/89 925/1382/89 923/1387/89 +f 923/1388/92 928/1389/92 924/1390/92 +f 922/1391/93 926/1383/93 921/1392/93 +f 932/1393/90 935/1378/90 930/1394/90 +f 929/1395/89 933/1379/89 931/1396/89 +f 931/1397/92 936/1398/92 932/1399/92 +f 930/1400/93 934/1380/93 929/1401/93 +f 951/1402/91 949/1403/91 950/1404/91 +f 943/1405/91 941/1406/91 942/1407/91 +f 940/1408/90 943/1405/90 938/1409/90 +f 937/1410/89 941/1406/89 939/1411/89 +f 939/1412/92 944/1413/92 940/1414/92 +f 938/1415/93 942/1407/93 937/1416/93 +f 948/1417/90 951/1402/90 946/1418/90 +f 945/1419/89 949/1403/89 947/1420/89 +f 947/1421/92 952/1422/92 948/1423/92 +f 946/1424/93 950/1404/93 945/1425/93 +f 959/1426/93 955/1427/93 960/1428/93 +f 958/1429/92 953/1430/92 957/1431/92 +f 960/1432/89 956/1433/89 958/1434/89 +f 957/1435/90 954/1436/90 959/1437/90 +f 967/1438/93 963/1439/93 968/1440/93 +f 966/1441/92 961/1442/92 965/1443/92 +f 968/1444/89 964/1445/89 966/1446/89 +f 965/1447/90 962/1448/90 967/1449/90 +f 962/1448/91 964/1445/91 963/1439/91 +f 954/1436/91 956/1433/91 955/1427/91 +f 975/1450/93 971/1451/93 976/1452/93 +f 974/1453/92 969/1454/92 973/1455/92 +f 976/1456/89 972/1457/89 974/1458/89 +f 973/1459/90 970/1460/90 975/1461/90 +f 983/1462/93 979/1463/93 984/1464/93 +f 982/1465/92 977/1466/92 981/1467/92 +f 984/1468/89 980/1469/89 982/1470/89 +f 981/1471/90 978/1472/90 983/1473/90 +f 978/1472/91 980/1469/91 979/1463/91 +f 970/1460/91 972/1457/91 971/1451/91 +f 999/1474/89 997/1475/89 998/1476/89 +f 991/1477/89 989/1478/89 990/1479/89 +f 988/1480/91 991/1477/91 986/1481/91 +f 985/1482/88 989/1478/88 987/1483/88 +f 987/1484/92 992/1485/92 988/1486/92 +f 986/1487/93 990/1479/93 985/1488/93 +f 996/1489/91 999/1474/91 994/1490/91 +f 993/1491/88 997/1475/88 995/1492/88 +f 995/1493/92 1000/1494/92 996/1495/92 +f 994/1496/93 998/1476/93 993/1497/93 +f 1015/1498/89 1013/1499/89 1014/1500/89 +f 1007/1501/89 1005/1502/89 1006/1503/89 +f 1004/1504/91 1007/1501/91 1002/1505/91 +f 1001/1506/88 1005/1502/88 1003/1507/88 +f 1003/1508/92 1008/1509/92 1004/1510/92 +f 1002/1511/93 1006/1503/93 1001/1512/93 +f 1012/1513/91 1015/1498/91 1010/1514/91 +f 1009/1515/88 1013/1499/88 1011/1516/88 +f 1011/1517/92 1016/1518/92 1012/1519/92 +f 1010/1520/93 1014/1500/93 1009/1521/93 +f 1023/1522/93 1019/1523/93 1024/1524/93 +f 1022/1525/92 1017/1526/92 1021/1527/92 +f 1024/1528/88 1020/1529/88 1022/1530/88 +f 1021/1531/91 1018/1532/91 1023/1533/91 +f 1031/1534/93 1027/1535/93 1032/1536/93 +f 1030/1537/92 1025/1538/92 1029/1539/92 +f 1032/1540/88 1028/1541/88 1030/1542/88 +f 1029/1543/91 1026/1544/91 1031/1545/91 +f 1026/1544/89 1028/1541/89 1027/1535/89 +f 1018/1532/89 1020/1529/89 1019/1523/89 +f 1039/1546/93 1035/1547/93 1040/1548/93 +f 1038/1549/92 1033/1550/92 1037/1551/92 +f 1040/1552/88 1036/1553/88 1038/1554/88 +f 1037/1555/91 1034/1556/91 1039/1557/91 +f 1047/1558/93 1043/1559/93 1048/1560/93 +f 1046/1561/92 1041/1562/92 1045/1563/92 +f 1048/1564/88 1044/1565/88 1046/1566/88 +f 1045/1567/91 1042/1568/91 1047/1569/91 +f 1042/1568/89 1044/1565/89 1043/1559/89 +f 1034/1556/89 1036/1553/89 1035/1547/89 +f 853/1262/85 849/1570/85 875/1263/85 +f 875/1263/85 834/1571/85 841/1261/85 +f 834/1571/85 839/1572/85 841/1261/85 +f 839/1572/86 834/1571/86 838/1266/86 +f 834/1571/86 833/1264/86 838/1266/86 +f 833/1264/86 840/1573/86 837/1265/86 +f 876/1268/87 850/1315/87 854/1309/87 +f 842/1267/87 840/1573/87 833/1264/87 +f 876/1268/87 854/1309/87 842/1267/87 +f 861/1269/88 863/1278/88 843/1270/88 +f 837/1272/89 857/1290/89 856/1273/89 +f 853/1275/89 873/1574/89 869/1276/89 +f 863/1278/89 865/1295/89 845/1279/89 +f 835/1280/90 855/1306/90 858/1281/90 +f 870/1283/90 874/1575/90 854/1284/90 +f 846/1286/90 866/1291/90 864/1287/90 +f 840/1289/91 860/1302/91 857/1290/91 +f 854/1284/91 874/1575/91 866/1291/91 +f 867/1292/88 870/1283/88 850/1285/88 +f 858/1281/91 859/1298/91 839/1294/91 +f 865/1295/91 873/1574/91 853/1275/91 +f 849/1277/88 869/1276/88 868/1296/88 +f 859/1298/89 861/1269/89 841/1271/89 +f 871/1299/89 867/1292/89 847/1293/89 +f 842/1301/90 862/1305/90 860/1302/90 +f 848/1297/90 868/1296/90 872/1303/90 +f 844/1288/88 864/1287/88 862/1305/88 +f 836/1274/91 856/1273/91 855/1306/91 +f 852/1307/88 872/1576/88 871/1299/88 +f 843/1308/92 845/1577/92 853/1262/92 +f 854/1309/92 846/1286/92 844/1288/92 +f 848/1310/92 852/1578/92 851/1311/92 +f 838/1266/92 837/1265/92 836/1313/92 +f 833/1264/93 834/1571/93 875/1263/93 +f 876/1268/94 875/1263/94 848/1310/94 +f 875/1263/94 849/1570/94 848/1310/94 +f 848/1310/94 847/1312/94 876/1268/94 +f 891/1316/90 892/1336/90 889/1317/90 +f 883/1319/90 884/1327/90 881/1320/90 +f 880/1322/88 884/1327/88 883/1319/88 +f 877/1324/91 882/1321/91 881/1320/91 +f 879/1326/92 881/1320/92 884/1327/92 +f 878/1329/93 883/1319/93 882/1321/93 +f 888/1331/88 892/1336/88 891/1316/88 +f 885/1333/91 890/1318/91 889/1317/91 +f 887/1335/92 889/1317/92 892/1336/92 +f 886/1338/93 891/1316/93 890/1318/93 +f 899/1340/93 894/1350/93 895/1341/93 +f 898/1343/92 896/1347/92 893/1344/92 +f 900/1346/91 895/1341/91 896/1347/91 +f 897/1349/88 893/1344/88 894/1350/88 +f 907/1352/93 902/1362/93 903/1353/93 +f 906/1355/92 904/1359/92 901/1356/92 +f 908/1358/91 903/1353/91 904/1359/91 +f 905/1361/88 901/1356/88 902/1362/88 +f 902/1362/90 901/1356/90 904/1359/90 +f 894/1350/90 893/1344/90 896/1347/90 +f 910/1364/93 912/1372/93 911/1365/93 +f 918/1367/90 916/1373/90 920/1368/90 +f 917/1370/95 918/1367/95 919/1369/95 +f 912/1372/96 916/1373/96 918/1367/96 +f 910/1364/97 920/1368/97 916/1373/97 +f 913/1374/92 915/1579/92 917/1370/92 +f 914/1371/98 919/1369/98 920/1368/98 +f 911/1375/91 912/1372/91 917/1370/91 +f 909/1377/88 913/1580/88 914/1371/88 +f 935/1378/91 936/1398/91 933/1379/91 +f 927/1381/91 928/1389/91 925/1382/91 +f 924/1384/90 928/1389/90 927/1381/90 +f 921/1386/89 926/1383/89 925/1382/89 +f 923/1388/92 925/1382/92 928/1389/92 +f 922/1391/93 927/1381/93 926/1383/93 +f 932/1393/90 936/1398/90 935/1378/90 +f 929/1395/89 934/1380/89 933/1379/89 +f 931/1397/92 933/1379/92 936/1398/92 +f 930/1400/93 935/1378/93 934/1380/93 +f 951/1402/91 952/1422/91 949/1403/91 +f 943/1405/91 944/1413/91 941/1406/91 +f 940/1408/90 944/1413/90 943/1405/90 +f 937/1410/89 942/1407/89 941/1406/89 +f 939/1412/92 941/1406/92 944/1413/92 +f 938/1415/93 943/1405/93 942/1407/93 +f 948/1417/90 952/1422/90 951/1402/90 +f 945/1419/89 950/1404/89 949/1403/89 +f 947/1421/92 949/1403/92 952/1422/92 +f 946/1424/93 951/1402/93 950/1404/93 +f 959/1426/93 954/1436/93 955/1427/93 +f 958/1429/92 956/1433/92 953/1430/92 +f 960/1432/89 955/1427/89 956/1433/89 +f 957/1435/90 953/1430/90 954/1436/90 +f 967/1438/93 962/1448/93 963/1439/93 +f 966/1441/92 964/1445/92 961/1442/92 +f 968/1444/89 963/1439/89 964/1445/89 +f 965/1447/90 961/1442/90 962/1448/90 +f 962/1448/91 961/1442/91 964/1445/91 +f 954/1436/91 953/1430/91 956/1433/91 +f 975/1450/93 970/1460/93 971/1451/93 +f 974/1453/92 972/1457/92 969/1454/92 +f 976/1456/89 971/1451/89 972/1457/89 +f 973/1459/90 969/1454/90 970/1460/90 +f 983/1462/93 978/1472/93 979/1463/93 +f 982/1465/92 980/1469/92 977/1466/92 +f 984/1468/89 979/1463/89 980/1469/89 +f 981/1471/90 977/1466/90 978/1472/90 +f 978/1472/91 977/1466/91 980/1469/91 +f 970/1460/91 969/1454/91 972/1457/91 +f 999/1474/89 1000/1494/89 997/1475/89 +f 991/1477/89 992/1485/89 989/1478/89 +f 988/1480/91 992/1485/91 991/1477/91 +f 985/1482/88 990/1479/88 989/1478/88 +f 987/1484/92 989/1478/92 992/1485/92 +f 986/1487/93 991/1477/93 990/1479/93 +f 996/1489/91 1000/1494/91 999/1474/91 +f 993/1491/88 998/1476/88 997/1475/88 +f 995/1493/92 997/1475/92 1000/1494/92 +f 994/1496/93 999/1474/93 998/1476/93 +f 1015/1498/89 1016/1518/89 1013/1499/89 +f 1007/1501/89 1008/1509/89 1005/1502/89 +f 1004/1504/91 1008/1509/91 1007/1501/91 +f 1001/1506/88 1006/1503/88 1005/1502/88 +f 1003/1508/92 1005/1502/92 1008/1509/92 +f 1002/1511/93 1007/1501/93 1006/1503/93 +f 1012/1513/91 1016/1518/91 1015/1498/91 +f 1009/1515/88 1014/1500/88 1013/1499/88 +f 1011/1517/92 1013/1499/92 1016/1518/92 +f 1010/1520/93 1015/1498/93 1014/1500/93 +f 1023/1522/93 1018/1532/93 1019/1523/93 +f 1022/1525/92 1020/1529/92 1017/1526/92 +f 1024/1528/88 1019/1523/88 1020/1529/88 +f 1021/1531/91 1017/1526/91 1018/1532/91 +f 1031/1534/93 1026/1544/93 1027/1535/93 +f 1030/1537/92 1028/1541/92 1025/1538/92 +f 1032/1540/88 1027/1535/88 1028/1541/88 +f 1029/1543/91 1025/1538/91 1026/1544/91 +f 1026/1544/89 1025/1538/89 1028/1541/89 +f 1018/1532/89 1017/1526/89 1020/1529/89 +f 1039/1546/93 1034/1556/93 1035/1547/93 +f 1038/1549/92 1036/1553/92 1033/1550/92 +f 1040/1552/88 1035/1547/88 1036/1553/88 +f 1037/1555/91 1033/1550/91 1034/1556/91 +f 1047/1558/93 1042/1568/93 1043/1559/93 +f 1046/1561/92 1044/1565/92 1041/1562/92 +f 1048/1564/88 1043/1559/88 1044/1565/88 +f 1045/1567/91 1041/1562/91 1042/1568/91 +f 1042/1568/89 1041/1562/89 1044/1565/89 +f 1034/1556/89 1033/1550/89 1036/1553/89 o LeftArm v 3.999992 -0.000002 -2.500000 v 3.999996 11.999999 -2.500000 @@ -4870,440 +4944,440 @@ vn 0.0000 0.7071 -0.7071 vn -0.7071 0.7071 0.0000 vn 0.2425 0.9701 0.0000 s off -f 1036/1565/85 1011/1566/85 1031/1567/85 -f 1050/1568/86 1025/1569/86 1035/1570/86 -f 1017/1571/87 1020/1572/87 1018/1573/87 -f 1023/1574/88 1022/1575/88 1021/1576/88 -f 1025/1577/89 1028/1578/89 1026/1579/89 -f 1027/1580/88 1030/1581/88 1028/1578/88 -f 1030/1581/87 1022/1575/87 1024/1582/87 -f 1009/1583/90 1026/1579/90 1010/1584/90 -f 1043/1585/91 1051/1586/91 1012/1587/91 -f 1013/1588/90 1033/1589/90 1015/1590/90 -f 1034/1591/85 1043/1585/85 1052/1592/85 -f 1009/1583/85 1035/1570/85 1025/1569/85 -f 1019/1593/88 1040/1594/88 1020/1572/88 -f 1018/1573/90 1037/1595/90 1017/1571/90 -f 1039/1596/87 1042/1597/87 1040/1594/87 -f 1041/1598/90 1044/1599/90 1042/1597/90 -f 1044/1599/89 1013/1588/89 1015/1590/89 -f 1021/1600/89 1046/1601/89 1023/1602/89 -f 1045/1603/88 1048/1604/88 1046/1601/88 -f 1048/1604/87 1037/1595/87 1038/1605/87 -f 1051/1586/92 1050/1568/92 1012/1587/92 -f 1031/1567/89 1035/1606/89 1036/1565/89 -f 1052/1607/90 1031/1567/90 1057/1608/90 -f 1037/1609/85 1019/1610/85 1017/1611/85 -f 1022/1612/85 1045/1613/85 1021/1614/85 -f 1045/1613/93 1029/1615/93 1050/1568/93 -f 1014/1616/88 1035/1606/88 1016/1617/88 -f 1034/1618/87 1057/1608/87 1033/1589/87 -f 1037/1609/94 1049/1619/94 1051/1586/94 -f 1053/1620/88 1062/1621/88 1054/1622/88 -f 1058/1623/85 1030/1581/85 1024/1624/85 -f 1058/1625/85 1026/1579/85 1028/1578/85 -f 1010/1584/89 1016/1617/89 1009/1583/89 -f 1011/1626/85 1057/1608/85 1031/1567/85 -f 1059/1627/85 1044/1599/85 1015/1628/85 -f 1040/1594/85 1059/1629/85 1020/1630/85 -f 1060/1631/85 1046/1601/85 1048/1604/85 -f 1038/1605/85 1060/1632/85 1048/1604/85 -f 1055/1633/95 1053/1634/95 1018/1573/95 -f 1055/1635/96 1059/1636/96 1015/1590/96 -f 1054/1637/97 1056/1638/97 1014/1616/97 -f 1053/1620/98 1054/1622/98 1024/1582/98 -f 1062/1639/99 1055/1635/99 1056/1640/99 -f 1054/1637/89 1062/1641/89 1056/1638/89 -f 1053/1634/87 1055/1633/87 1061/1642/87 -f 1069/1643/89 1067/1644/89 1068/1645/89 -f 1065/1646/85 1070/1647/85 1066/1648/85 -f 1064/1649/92 1068/1645/92 1063/1650/92 -f 1066/1651/88 1069/1643/88 1064/1652/88 -f 1063/1653/90 1067/1644/90 1065/1654/90 -f 1078/1655/90 1074/1656/90 1076/1657/90 -f 1075/1658/88 1072/1659/88 1077/1660/88 -f 1077/1661/92 1073/1662/92 1078/1663/92 -f 1076/1664/85 1071/1665/85 1075/1666/85 -f 1072/1659/89 1074/1656/89 1073/1662/89 -f 1086/1667/90 1082/1668/90 1084/1669/90 -f 1083/1670/88 1080/1671/88 1085/1672/88 -f 1085/1673/92 1081/1674/92 1086/1675/92 -f 1084/1676/85 1079/1677/85 1083/1678/85 -f 1080/1671/89 1082/1668/89 1081/1674/89 -f 1093/1679/89 1091/1680/89 1092/1681/89 -f 1089/1682/85 1094/1683/85 1090/1684/85 -f 1088/1685/92 1092/1681/92 1087/1686/92 -f 1090/1687/88 1093/1679/88 1088/1688/88 -f 1087/1689/90 1091/1680/90 1089/1690/90 -f 1102/1691/90 1098/1692/90 1100/1693/90 -f 1099/1694/88 1096/1695/88 1101/1696/88 -f 1101/1697/92 1097/1698/92 1102/1699/92 -f 1100/1700/85 1095/1701/85 1099/1702/85 -f 1096/1695/89 1098/1692/89 1097/1698/89 -f 1109/1703/89 1107/1704/89 1108/1705/89 -f 1105/1706/85 1110/1707/85 1106/1708/85 -f 1104/1709/92 1108/1705/92 1103/1710/92 -f 1106/1711/88 1109/1703/88 1104/1712/88 -f 1103/1713/90 1107/1704/90 1105/1714/90 -f 1117/1715/89 1115/1716/89 1116/1717/89 -f 1113/1718/85 1118/1719/85 1114/1720/85 -f 1112/1721/92 1116/1717/92 1111/1722/92 -f 1114/1723/88 1117/1715/88 1112/1724/88 -f 1111/1725/90 1115/1716/90 1113/1726/90 -f 1125/1727/89 1123/1728/89 1124/1729/89 -f 1121/1730/85 1126/1731/85 1122/1732/85 -f 1120/1733/92 1124/1729/92 1119/1734/92 -f 1122/1735/88 1125/1727/88 1120/1736/88 -f 1119/1737/90 1123/1728/90 1121/1738/90 -f 1134/1739/90 1130/1740/90 1132/1741/90 -f 1131/1742/88 1128/1743/88 1133/1744/88 -f 1133/1745/92 1129/1746/92 1134/1747/92 -f 1132/1748/85 1127/1749/85 1131/1750/85 -f 1128/1743/89 1130/1740/89 1129/1746/89 -f 1142/1751/90 1138/1752/90 1140/1753/90 -f 1139/1754/88 1136/1755/88 1141/1756/88 -f 1141/1757/92 1137/1758/92 1142/1759/92 -f 1140/1760/85 1135/1761/85 1139/1762/85 -f 1136/1755/89 1138/1752/89 1137/1758/89 -f 1150/1763/90 1146/1764/90 1148/1765/90 -f 1147/1766/88 1144/1767/88 1149/1768/88 -f 1149/1769/92 1145/1770/92 1150/1771/92 -f 1148/1772/85 1143/1773/85 1147/1774/85 -f 1144/1767/89 1146/1764/89 1145/1770/89 -f 1157/1775/89 1155/1776/89 1156/1777/89 -f 1153/1778/85 1158/1779/85 1154/1780/85 -f 1152/1781/92 1156/1777/92 1151/1782/92 -f 1154/1783/88 1157/1775/88 1152/1784/88 -f 1151/1785/90 1155/1776/90 1153/1786/90 -f 1165/1787/87 1163/1788/87 1164/1789/87 -f 1161/1790/85 1166/1791/85 1162/1792/85 -f 1160/1793/92 1164/1789/92 1159/1794/92 -f 1162/1795/90 1165/1787/90 1160/1796/90 -f 1159/1797/88 1163/1788/88 1161/1798/88 -f 1174/1799/88 1170/1800/88 1172/1801/88 -f 1171/1802/90 1168/1803/90 1173/1804/90 -f 1173/1805/92 1169/1806/92 1174/1807/92 -f 1172/1808/85 1167/1809/85 1171/1810/85 -f 1168/1803/87 1170/1800/87 1169/1806/87 -f 1182/1811/88 1178/1812/88 1180/1813/88 -f 1179/1814/90 1176/1815/90 1181/1816/90 -f 1181/1817/92 1177/1818/92 1182/1819/92 -f 1180/1820/85 1175/1821/85 1179/1822/85 -f 1176/1815/87 1178/1812/87 1177/1818/87 -f 1189/1823/87 1187/1824/87 1188/1825/87 -f 1185/1826/85 1190/1827/85 1186/1828/85 -f 1184/1829/92 1188/1825/92 1183/1830/92 -f 1186/1831/90 1189/1823/90 1184/1832/90 -f 1183/1833/88 1187/1824/88 1185/1834/88 -f 1197/1835/87 1195/1836/87 1196/1837/87 -f 1193/1838/85 1198/1839/85 1194/1840/85 -f 1192/1841/92 1196/1837/92 1191/1842/92 -f 1194/1843/90 1197/1835/90 1192/1844/90 -f 1191/1845/88 1195/1836/88 1193/1846/88 -f 1206/1847/88 1202/1848/88 1204/1849/88 -f 1203/1850/90 1200/1851/90 1205/1852/90 -f 1205/1853/92 1201/1854/92 1206/1855/92 -f 1204/1856/85 1199/1857/85 1203/1858/85 -f 1200/1851/87 1202/1848/87 1201/1854/87 -f 1214/1859/88 1210/1860/88 1212/1861/88 -f 1211/1862/90 1208/1863/90 1213/1864/90 -f 1213/1865/92 1209/1866/92 1214/1867/92 -f 1212/1868/85 1207/1869/85 1211/1870/85 -f 1208/1863/87 1210/1860/87 1209/1866/87 -f 1221/1871/87 1219/1872/87 1220/1873/87 -f 1217/1874/85 1222/1875/85 1218/1876/85 -f 1216/1877/92 1220/1873/92 1215/1878/92 -f 1218/1879/90 1221/1871/90 1216/1880/90 -f 1215/1881/88 1219/1872/88 1217/1882/88 -f 1230/1883/87 1226/1884/87 1228/1885/87 -f 1227/1886/89 1224/1887/89 1229/1888/89 -f 1229/1889/92 1225/1890/92 1230/1891/92 -f 1228/1892/85 1223/1893/85 1227/1894/85 -f 1224/1887/90 1226/1884/90 1225/1890/90 -f 1237/1895/90 1235/1896/90 1236/1897/90 -f 1233/1898/85 1238/1899/85 1234/1900/85 -f 1232/1901/92 1236/1897/92 1231/1902/92 -f 1234/1903/89 1237/1895/89 1232/1904/89 -f 1231/1905/87 1235/1896/87 1233/1906/87 -f 1245/1907/90 1243/1908/90 1244/1909/90 -f 1241/1910/85 1246/1911/85 1242/1912/85 -f 1240/1913/92 1244/1909/92 1239/1914/92 -f 1242/1915/89 1245/1907/89 1240/1916/89 -f 1239/1917/87 1243/1908/87 1241/1918/87 -f 1253/1919/90 1251/1920/90 1252/1921/90 -f 1249/1922/85 1254/1923/85 1250/1924/85 -f 1248/1925/92 1252/1921/92 1247/1926/92 -f 1250/1927/89 1253/1919/89 1248/1928/89 -f 1247/1929/87 1251/1920/87 1249/1930/87 -f 1262/1931/87 1258/1932/87 1260/1933/87 -f 1259/1934/89 1256/1935/89 1261/1936/89 -f 1261/1937/92 1257/1938/92 1262/1939/92 -f 1260/1940/85 1255/1941/85 1259/1942/85 -f 1256/1935/90 1258/1932/90 1257/1938/90 -f 1270/1943/87 1266/1944/87 1268/1945/87 -f 1267/1946/89 1264/1947/89 1269/1948/89 -f 1269/1949/92 1265/1950/92 1270/1951/92 -f 1268/1952/85 1263/1953/85 1267/1954/85 -f 1264/1947/90 1266/1944/90 1265/1950/90 -f 1282/1955/87 1278/1956/87 1280/1957/87 -f 1279/1958/89 1276/1959/89 1281/1960/89 -f 1281/1961/92 1277/1962/92 1282/1963/92 -f 1280/1964/85 1275/1965/85 1279/1966/85 -f 1276/1959/90 1278/1956/90 1277/1962/90 -f 1289/1967/90 1287/1968/90 1288/1969/90 -f 1285/1970/85 1290/1971/85 1286/1972/85 -f 1284/1973/92 1288/1969/92 1283/1974/92 -f 1286/1975/89 1289/1967/89 1284/1976/89 -f 1283/1977/87 1287/1968/87 1285/1978/87 -f 1298/1979/87 1294/1980/87 1296/1981/87 -f 1295/1982/89 1292/1983/89 1297/1984/89 -f 1297/1985/92 1293/1986/92 1298/1987/92 -f 1296/1988/85 1291/1989/85 1295/1990/85 -f 1292/1983/90 1294/1980/90 1293/1986/90 -f 1305/1991/90 1303/1992/90 1304/1993/90 -f 1301/1994/85 1306/1995/85 1302/1996/85 -f 1300/1997/92 1304/1993/92 1299/1998/92 -f 1302/1999/89 1305/1991/89 1300/2000/89 -f 1299/2001/87 1303/1992/87 1301/2002/87 -f 1310/2003/92 1273/2004/92 1274/2005/92 -f 1272/2006/90 1273/2007/90 1271/2008/90 -f 1309/2009/88 1308/2010/88 1307/2011/88 -f 1272/2006/85 1307/2012/85 1308/2010/85 -f 1274/2005/87 1308/2010/87 1310/2003/87 -f 1317/2013/90 1315/2014/90 1316/2015/90 -f 1313/2016/85 1318/2017/85 1314/2018/85 -f 1312/2019/92 1316/2015/92 1311/2020/92 -f 1314/2021/89 1317/2013/89 1312/2022/89 -f 1311/2023/87 1315/2014/87 1313/2024/87 -f 1326/2025/87 1322/2026/87 1324/2027/87 -f 1323/2028/89 1320/2029/89 1325/2030/89 -f 1325/2031/92 1321/2032/92 1326/2033/92 -f 1324/2034/85 1319/2035/85 1323/2036/85 -f 1320/2029/90 1322/2026/90 1321/2032/90 -f 1036/1565/85 1014/2037/85 1011/1566/85 -f 1032/2038/86 1012/1587/86 1035/1570/86 -f 1012/1587/86 1050/1568/86 1035/1570/86 -f 1050/1568/86 1027/2039/86 1025/1569/86 -f 1017/1571/87 1019/1593/87 1020/1572/87 -f 1023/1574/88 1024/1582/88 1022/1575/88 -f 1025/1577/89 1027/1580/89 1028/1578/89 -f 1027/1580/88 1029/2040/88 1030/1581/88 -f 1030/1581/87 1029/2040/87 1022/1575/87 -f 1009/1583/90 1025/1577/90 1026/1579/90 -f 1012/1587/91 1032/2038/91 1052/1592/91 -f 1043/1585/91 1041/2041/91 1051/1586/91 -f 1012/1587/91 1052/1592/91 1043/1585/91 -f 1013/1588/90 1034/1618/90 1033/1589/90 -f 1034/1591/85 1013/2042/85 1043/1585/85 -f 1009/1583/85 1016/1617/85 1035/1570/85 -f 1019/1593/88 1039/1596/88 1040/1594/88 -f 1018/1573/90 1038/1605/90 1037/1595/90 -f 1039/1596/87 1041/1598/87 1042/1597/87 -f 1041/1598/90 1043/2043/90 1044/1599/90 -f 1044/1599/89 1043/2043/89 1013/1588/89 -f 1021/1600/89 1045/1603/89 1046/1601/89 -f 1045/1603/88 1047/2044/88 1048/1604/88 -f 1048/1604/87 1047/2044/87 1037/1595/87 -f 1051/1586/92 1049/1619/92 1050/1568/92 -f 1031/1567/89 1032/2045/89 1035/1606/89 -f 1052/1607/90 1032/2045/90 1031/1567/90 -f 1037/1609/85 1039/2046/85 1019/1610/85 -f 1022/1612/85 1029/1615/85 1045/1613/85 -f 1029/1615/93 1027/2039/93 1050/1568/93 -f 1050/1568/93 1049/1619/93 1045/1613/93 -f 1049/1619/93 1047/2047/93 1045/1613/93 -f 1014/1616/88 1036/1565/88 1035/1606/88 -f 1034/1618/87 1052/1607/87 1057/1608/87 -f 1051/1586/94 1041/2041/94 1039/2046/94 -f 1037/1609/94 1047/2047/94 1049/1619/94 -f 1051/1586/94 1039/2046/94 1037/1609/94 -f 1053/1620/88 1061/2048/88 1062/1621/88 -f 1058/1623/85 1028/1578/85 1030/1581/85 -f 1058/1625/85 1010/2049/85 1026/1579/85 -f 1010/1584/89 1014/1616/89 1016/1617/89 -f 1011/1626/85 1033/2050/85 1057/1608/85 -f 1059/1627/85 1042/1597/85 1044/1599/85 -f 1040/1594/85 1042/1597/85 1059/1629/85 -f 1060/1631/85 1023/2051/85 1046/1601/85 -f 1038/1605/85 1018/2052/85 1060/1632/85 -f 1060/2053/95 1018/1573/95 1053/1634/95 -f 1018/1573/95 1020/1572/95 1055/1633/95 -f 1020/1572/95 1059/2054/95 1055/1633/95 -f 1015/1590/96 1033/1589/96 1055/1635/96 -f 1033/1589/96 1011/2055/96 1056/1640/96 -f 1055/1635/96 1033/1589/96 1056/1640/96 -f 1011/2056/97 1014/1616/97 1056/1638/97 -f 1014/1616/97 1010/1584/97 1054/1637/97 -f 1010/1584/97 1058/2057/97 1054/1637/97 -f 1058/2058/98 1024/1582/98 1054/1622/98 -f 1024/1582/98 1023/1574/98 1053/1620/98 -f 1023/1574/98 1060/2059/98 1053/1620/98 -f 1062/1639/99 1061/2060/99 1055/1635/99 -f 1069/1643/89 1070/1647/89 1067/1644/89 -f 1065/1646/85 1067/1644/85 1070/1647/85 -f 1064/1649/92 1069/1643/92 1068/1645/92 -f 1066/1651/88 1070/1647/88 1069/1643/88 -f 1063/1653/90 1068/1645/90 1067/1644/90 -f 1078/1655/90 1073/1662/90 1074/1656/90 -f 1075/1658/88 1071/1665/88 1072/1659/88 -f 1077/1661/92 1072/1659/92 1073/1662/92 -f 1076/1664/85 1074/1656/85 1071/1665/85 -f 1072/1659/89 1071/1665/89 1074/1656/89 -f 1086/1667/90 1081/1674/90 1082/1668/90 -f 1083/1670/88 1079/1677/88 1080/1671/88 -f 1085/1673/92 1080/1671/92 1081/1674/92 -f 1084/1676/85 1082/1668/85 1079/1677/85 -f 1080/1671/89 1079/1677/89 1082/1668/89 -f 1093/1679/89 1094/1683/89 1091/1680/89 -f 1089/1682/85 1091/1680/85 1094/1683/85 -f 1088/1685/92 1093/1679/92 1092/1681/92 -f 1090/1687/88 1094/1683/88 1093/1679/88 -f 1087/1689/90 1092/1681/90 1091/1680/90 -f 1102/1691/90 1097/1698/90 1098/1692/90 -f 1099/1694/88 1095/1701/88 1096/1695/88 -f 1101/1697/92 1096/1695/92 1097/1698/92 -f 1100/1700/85 1098/1692/85 1095/1701/85 -f 1096/1695/89 1095/1701/89 1098/1692/89 -f 1109/1703/89 1110/1707/89 1107/1704/89 -f 1105/1706/85 1107/1704/85 1110/1707/85 -f 1104/1709/92 1109/1703/92 1108/1705/92 -f 1106/1711/88 1110/1707/88 1109/1703/88 -f 1103/1713/90 1108/1705/90 1107/1704/90 -f 1117/1715/89 1118/1719/89 1115/1716/89 -f 1113/1718/85 1115/1716/85 1118/1719/85 -f 1112/1721/92 1117/1715/92 1116/1717/92 -f 1114/1723/88 1118/1719/88 1117/1715/88 -f 1111/1725/90 1116/1717/90 1115/1716/90 -f 1125/1727/89 1126/1731/89 1123/1728/89 -f 1121/1730/85 1123/1728/85 1126/1731/85 -f 1120/1733/92 1125/1727/92 1124/1729/92 -f 1122/1735/88 1126/1731/88 1125/1727/88 -f 1119/1737/90 1124/1729/90 1123/1728/90 -f 1134/1739/90 1129/1746/90 1130/1740/90 -f 1131/1742/88 1127/1749/88 1128/1743/88 -f 1133/1745/92 1128/1743/92 1129/1746/92 -f 1132/1748/85 1130/1740/85 1127/1749/85 -f 1128/1743/89 1127/1749/89 1130/1740/89 -f 1142/1751/90 1137/1758/90 1138/1752/90 -f 1139/1754/88 1135/1761/88 1136/1755/88 -f 1141/1757/92 1136/1755/92 1137/1758/92 -f 1140/1760/85 1138/1752/85 1135/1761/85 -f 1136/1755/89 1135/1761/89 1138/1752/89 -f 1150/1763/90 1145/1770/90 1146/1764/90 -f 1147/1766/88 1143/1773/88 1144/1767/88 -f 1149/1769/92 1144/1767/92 1145/1770/92 -f 1148/1772/85 1146/1764/85 1143/1773/85 -f 1144/1767/89 1143/1773/89 1146/1764/89 -f 1157/1775/89 1158/1779/89 1155/1776/89 -f 1153/1778/85 1155/1776/85 1158/1779/85 -f 1152/1781/92 1157/1775/92 1156/1777/92 -f 1154/1783/88 1158/1779/88 1157/1775/88 -f 1151/1785/90 1156/1777/90 1155/1776/90 -f 1165/1787/87 1166/1791/87 1163/1788/87 -f 1161/1790/85 1163/1788/85 1166/1791/85 -f 1160/1793/92 1165/1787/92 1164/1789/92 -f 1162/1795/90 1166/1791/90 1165/1787/90 -f 1159/1797/88 1164/1789/88 1163/1788/88 -f 1174/1799/88 1169/1806/88 1170/1800/88 -f 1171/1802/90 1167/1809/90 1168/1803/90 -f 1173/1805/92 1168/1803/92 1169/1806/92 -f 1172/1808/85 1170/1800/85 1167/1809/85 -f 1168/1803/87 1167/1809/87 1170/1800/87 -f 1182/1811/88 1177/1818/88 1178/1812/88 -f 1179/1814/90 1175/1821/90 1176/1815/90 -f 1181/1817/92 1176/1815/92 1177/1818/92 -f 1180/1820/85 1178/1812/85 1175/1821/85 -f 1176/1815/87 1175/1821/87 1178/1812/87 -f 1189/1823/87 1190/1827/87 1187/1824/87 -f 1185/1826/85 1187/1824/85 1190/1827/85 -f 1184/1829/92 1189/1823/92 1188/1825/92 -f 1186/1831/90 1190/1827/90 1189/1823/90 -f 1183/1833/88 1188/1825/88 1187/1824/88 -f 1197/1835/87 1198/1839/87 1195/1836/87 -f 1193/1838/85 1195/1836/85 1198/1839/85 -f 1192/1841/92 1197/1835/92 1196/1837/92 -f 1194/1843/90 1198/1839/90 1197/1835/90 -f 1191/1845/88 1196/1837/88 1195/1836/88 -f 1206/1847/88 1201/1854/88 1202/1848/88 -f 1203/1850/90 1199/1857/90 1200/1851/90 -f 1205/1853/92 1200/1851/92 1201/1854/92 -f 1204/1856/85 1202/1848/85 1199/1857/85 -f 1200/1851/87 1199/1857/87 1202/1848/87 -f 1214/1859/88 1209/1866/88 1210/1860/88 -f 1211/1862/90 1207/1869/90 1208/1863/90 -f 1213/1865/92 1208/1863/92 1209/1866/92 -f 1212/1868/85 1210/1860/85 1207/1869/85 -f 1208/1863/87 1207/1869/87 1210/1860/87 -f 1221/1871/87 1222/1875/87 1219/1872/87 -f 1217/1874/85 1219/1872/85 1222/1875/85 -f 1216/1877/92 1221/1871/92 1220/1873/92 -f 1218/1879/90 1222/1875/90 1221/1871/90 -f 1215/1881/88 1220/1873/88 1219/1872/88 -f 1230/1883/87 1225/1890/87 1226/1884/87 -f 1227/1886/89 1223/1893/89 1224/1887/89 -f 1229/1889/92 1224/1887/92 1225/1890/92 -f 1228/1892/85 1226/1884/85 1223/1893/85 -f 1224/1887/90 1223/1893/90 1226/1884/90 -f 1237/1895/90 1238/1899/90 1235/1896/90 -f 1233/1898/85 1235/1896/85 1238/1899/85 -f 1232/1901/92 1237/1895/92 1236/1897/92 -f 1234/1903/89 1238/1899/89 1237/1895/89 -f 1231/1905/87 1236/1897/87 1235/1896/87 -f 1245/1907/90 1246/1911/90 1243/1908/90 -f 1241/1910/85 1243/1908/85 1246/1911/85 -f 1240/1913/92 1245/1907/92 1244/1909/92 -f 1242/1915/89 1246/1911/89 1245/1907/89 -f 1239/1917/87 1244/1909/87 1243/1908/87 -f 1253/1919/90 1254/1923/90 1251/1920/90 -f 1249/1922/85 1251/1920/85 1254/1923/85 -f 1248/1925/92 1253/1919/92 1252/1921/92 -f 1250/1927/89 1254/1923/89 1253/1919/89 -f 1247/1929/87 1252/1921/87 1251/1920/87 -f 1262/1931/87 1257/1938/87 1258/1932/87 -f 1259/1934/89 1255/1941/89 1256/1935/89 -f 1261/1937/92 1256/1935/92 1257/1938/92 -f 1260/1940/85 1258/1932/85 1255/1941/85 -f 1256/1935/90 1255/1941/90 1258/1932/90 -f 1270/1943/87 1265/1950/87 1266/1944/87 -f 1267/1946/89 1263/1953/89 1264/1947/89 -f 1269/1949/92 1264/1947/92 1265/1950/92 -f 1268/1952/85 1266/1944/85 1263/1953/85 -f 1264/1947/90 1263/1953/90 1266/1944/90 -f 1282/1955/87 1277/1962/87 1278/1956/87 -f 1279/1958/89 1275/1965/89 1276/1959/89 -f 1281/1961/92 1276/1959/92 1277/1962/92 -f 1280/1964/85 1278/1956/85 1275/1965/85 -f 1276/1959/90 1275/1965/90 1278/1956/90 -f 1289/1967/90 1290/1971/90 1287/1968/90 -f 1285/1970/85 1287/1968/85 1290/1971/85 -f 1284/1973/92 1289/1967/92 1288/1969/92 -f 1286/1975/89 1290/1971/89 1289/1967/89 -f 1283/1977/87 1288/1969/87 1287/1968/87 -f 1298/1979/87 1293/1986/87 1294/1980/87 -f 1295/1982/89 1291/1989/89 1292/1983/89 -f 1297/1985/92 1292/1983/92 1293/1986/92 -f 1296/1988/85 1294/1980/85 1291/1989/85 -f 1292/1983/90 1291/1989/90 1294/1980/90 -f 1305/1991/90 1306/1995/90 1303/1992/90 -f 1301/1994/85 1303/1992/85 1306/1995/85 -f 1300/1997/92 1305/1991/92 1304/1993/92 -f 1302/1999/89 1306/1995/89 1305/1991/89 -f 1299/2001/87 1304/1993/87 1303/1992/87 -f 1310/2003/92 1309/2061/92 1273/2004/92 -f 1272/2006/90 1274/2005/90 1273/2007/90 -f 1309/2009/88 1310/2003/88 1308/2010/88 -f 1272/2006/85 1271/2062/85 1307/2012/85 -f 1274/2005/87 1272/2006/87 1308/2010/87 -f 1317/2013/90 1318/2017/90 1315/2014/90 -f 1313/2016/85 1315/2014/85 1318/2017/85 -f 1312/2019/92 1317/2013/92 1316/2015/92 -f 1314/2021/89 1318/2017/89 1317/2013/89 -f 1311/2023/87 1316/2015/87 1315/2014/87 -f 1326/2025/87 1321/2032/87 1322/2026/87 -f 1323/2028/89 1319/2035/89 1320/2029/89 -f 1325/2031/92 1320/2029/92 1321/2032/92 -f 1324/2034/85 1322/2026/85 1319/2035/85 -f 1320/2029/90 1319/2035/90 1322/2026/90 +f 1076/1581/99 1051/1582/99 1071/1583/99 +f 1090/1584/100 1065/1585/100 1075/1586/100 +f 1057/1587/101 1060/1588/101 1058/1589/101 +f 1063/1590/102 1062/1591/102 1061/1592/102 +f 1065/1593/103 1068/1594/103 1066/1595/103 +f 1067/1596/102 1070/1597/102 1068/1594/102 +f 1070/1597/101 1062/1591/101 1064/1598/101 +f 1049/1599/104 1066/1595/104 1050/1600/104 +f 1083/1601/105 1091/1602/105 1052/1603/105 +f 1053/1604/104 1073/1605/104 1055/1606/104 +f 1074/1607/99 1083/1601/99 1092/1608/99 +f 1049/1599/99 1075/1586/99 1065/1585/99 +f 1059/1609/102 1080/1610/102 1060/1588/102 +f 1058/1589/104 1077/1611/104 1057/1587/104 +f 1079/1612/101 1082/1613/101 1080/1610/101 +f 1081/1614/104 1084/1615/104 1082/1613/104 +f 1084/1615/103 1053/1604/103 1055/1606/103 +f 1061/1616/103 1086/1617/103 1063/1618/103 +f 1085/1619/102 1088/1620/102 1086/1617/102 +f 1088/1620/101 1077/1611/101 1078/1621/101 +f 1091/1602/106 1090/1584/106 1052/1603/106 +f 1071/1583/103 1075/1622/103 1076/1581/103 +f 1092/1623/104 1071/1583/104 1097/1624/104 +f 1077/1625/99 1059/1626/99 1057/1627/99 +f 1062/1628/99 1085/1629/99 1061/1630/99 +f 1085/1629/107 1069/1631/107 1090/1584/107 +f 1054/1632/102 1075/1622/102 1056/1633/102 +f 1074/1634/101 1097/1624/101 1073/1605/101 +f 1077/1625/108 1089/1635/108 1091/1602/108 +f 1093/1636/102 1102/1637/102 1094/1638/102 +f 1098/1639/99 1070/1597/99 1064/1640/99 +f 1098/1641/99 1066/1595/99 1068/1594/99 +f 1050/1600/103 1056/1633/103 1049/1599/103 +f 1051/1642/99 1097/1624/99 1071/1583/99 +f 1099/1643/99 1084/1615/99 1055/1644/99 +f 1080/1610/99 1099/1645/99 1060/1646/99 +f 1100/1647/99 1086/1617/99 1088/1620/99 +f 1078/1621/99 1100/1648/99 1088/1620/99 +f 1095/1649/109 1093/1650/109 1058/1589/109 +f 1095/1651/110 1099/1652/110 1055/1606/110 +f 1094/1653/111 1096/1654/111 1054/1632/111 +f 1093/1636/112 1094/1638/112 1064/1598/112 +f 1102/1655/113 1095/1651/113 1096/1656/113 +f 1094/1653/103 1102/1657/103 1096/1654/103 +f 1093/1650/101 1095/1649/101 1101/1658/101 +f 1109/1659/103 1107/1660/103 1108/1661/103 +f 1105/1662/99 1110/1663/99 1106/1664/99 +f 1104/1665/106 1108/1661/106 1103/1666/106 +f 1106/1667/102 1109/1659/102 1104/1668/102 +f 1103/1669/104 1107/1660/104 1105/1670/104 +f 1118/1671/104 1114/1672/104 1116/1673/104 +f 1115/1674/102 1112/1675/102 1117/1676/102 +f 1117/1677/106 1113/1678/106 1118/1679/106 +f 1116/1680/99 1111/1681/99 1115/1682/99 +f 1112/1675/103 1114/1672/103 1113/1678/103 +f 1126/1683/104 1122/1684/104 1124/1685/104 +f 1123/1686/102 1120/1687/102 1125/1688/102 +f 1125/1689/106 1121/1690/106 1126/1691/106 +f 1124/1692/99 1119/1693/99 1123/1694/99 +f 1120/1687/103 1122/1684/103 1121/1690/103 +f 1133/1695/103 1131/1696/103 1132/1697/103 +f 1129/1698/99 1134/1699/99 1130/1700/99 +f 1128/1701/106 1132/1697/106 1127/1702/106 +f 1130/1703/102 1133/1695/102 1128/1704/102 +f 1127/1705/104 1131/1696/104 1129/1706/104 +f 1142/1707/104 1138/1708/104 1140/1709/104 +f 1139/1710/102 1136/1711/102 1141/1712/102 +f 1141/1713/106 1137/1714/106 1142/1715/106 +f 1140/1716/99 1135/1717/99 1139/1718/99 +f 1136/1711/103 1138/1708/103 1137/1714/103 +f 1149/1719/103 1147/1720/103 1148/1721/103 +f 1145/1722/99 1150/1723/99 1146/1724/99 +f 1144/1725/106 1148/1721/106 1143/1726/106 +f 1146/1727/102 1149/1719/102 1144/1728/102 +f 1143/1729/104 1147/1720/104 1145/1730/104 +f 1157/1731/103 1155/1732/103 1156/1733/103 +f 1153/1734/99 1158/1735/99 1154/1736/99 +f 1152/1737/106 1156/1733/106 1151/1738/106 +f 1154/1739/102 1157/1731/102 1152/1740/102 +f 1151/1741/104 1155/1732/104 1153/1742/104 +f 1165/1743/103 1163/1744/103 1164/1745/103 +f 1161/1746/99 1166/1747/99 1162/1748/99 +f 1160/1749/106 1164/1745/106 1159/1750/106 +f 1162/1751/102 1165/1743/102 1160/1752/102 +f 1159/1753/104 1163/1744/104 1161/1754/104 +f 1174/1755/104 1170/1756/104 1172/1757/104 +f 1171/1758/102 1168/1759/102 1173/1760/102 +f 1173/1761/106 1169/1762/106 1174/1763/106 +f 1172/1764/99 1167/1765/99 1171/1766/99 +f 1168/1759/103 1170/1756/103 1169/1762/103 +f 1182/1767/104 1178/1768/104 1180/1769/104 +f 1179/1770/102 1176/1771/102 1181/1772/102 +f 1181/1773/106 1177/1774/106 1182/1775/106 +f 1180/1776/99 1175/1777/99 1179/1778/99 +f 1176/1771/103 1178/1768/103 1177/1774/103 +f 1190/1779/104 1186/1780/104 1188/1781/104 +f 1187/1782/102 1184/1783/102 1189/1784/102 +f 1189/1785/106 1185/1786/106 1190/1787/106 +f 1188/1788/99 1183/1789/99 1187/1790/99 +f 1184/1783/103 1186/1780/103 1185/1786/103 +f 1197/1791/103 1195/1792/103 1196/1793/103 +f 1193/1794/99 1198/1795/99 1194/1796/99 +f 1192/1797/106 1196/1793/106 1191/1798/106 +f 1194/1799/102 1197/1791/102 1192/1800/102 +f 1191/1801/104 1195/1792/104 1193/1802/104 +f 1205/1803/101 1203/1804/101 1204/1805/101 +f 1201/1806/99 1206/1807/99 1202/1808/99 +f 1200/1809/106 1204/1805/106 1199/1810/106 +f 1202/1811/104 1205/1803/104 1200/1812/104 +f 1199/1813/102 1203/1804/102 1201/1814/102 +f 1214/1815/102 1210/1816/102 1212/1817/102 +f 1211/1818/104 1208/1819/104 1213/1820/104 +f 1213/1821/106 1209/1822/106 1214/1823/106 +f 1212/1824/99 1207/1825/99 1211/1826/99 +f 1208/1819/101 1210/1816/101 1209/1822/101 +f 1222/1827/102 1218/1828/102 1220/1829/102 +f 1219/1830/104 1216/1831/104 1221/1832/104 +f 1221/1833/106 1217/1834/106 1222/1835/106 +f 1220/1836/99 1215/1837/99 1219/1838/99 +f 1216/1831/101 1218/1828/101 1217/1834/101 +f 1229/1839/101 1227/1840/101 1228/1841/101 +f 1225/1842/99 1230/1843/99 1226/1844/99 +f 1224/1845/106 1228/1841/106 1223/1846/106 +f 1226/1847/104 1229/1839/104 1224/1848/104 +f 1223/1849/102 1227/1840/102 1225/1850/102 +f 1237/1851/101 1235/1852/101 1236/1853/101 +f 1233/1854/99 1238/1855/99 1234/1856/99 +f 1232/1857/106 1236/1853/106 1231/1858/106 +f 1234/1859/104 1237/1851/104 1232/1860/104 +f 1231/1861/102 1235/1852/102 1233/1862/102 +f 1246/1863/102 1242/1864/102 1244/1865/102 +f 1243/1866/104 1240/1867/104 1245/1868/104 +f 1245/1869/106 1241/1870/106 1246/1871/106 +f 1244/1872/99 1239/1873/99 1243/1874/99 +f 1240/1867/101 1242/1864/101 1241/1870/101 +f 1254/1875/102 1250/1876/102 1252/1877/102 +f 1251/1878/104 1248/1879/104 1253/1880/104 +f 1253/1881/106 1249/1882/106 1254/1883/106 +f 1252/1884/99 1247/1885/99 1251/1886/99 +f 1248/1879/101 1250/1876/101 1249/1882/101 +f 1261/1887/101 1259/1888/101 1260/1889/101 +f 1257/1890/99 1262/1891/99 1258/1892/99 +f 1256/1893/106 1260/1889/106 1255/1894/106 +f 1258/1895/104 1261/1887/104 1256/1896/104 +f 1255/1897/102 1259/1888/102 1257/1898/102 +f 1270/1899/101 1266/1900/101 1268/1901/101 +f 1267/1902/103 1264/1903/103 1269/1904/103 +f 1269/1905/106 1265/1906/106 1270/1907/106 +f 1268/1908/99 1263/1909/99 1267/1910/99 +f 1264/1903/104 1266/1900/104 1265/1906/104 +f 1277/1911/104 1275/1912/104 1276/1913/104 +f 1273/1914/99 1278/1915/99 1274/1916/99 +f 1272/1917/106 1276/1913/106 1271/1918/106 +f 1274/1919/103 1277/1911/103 1272/1920/103 +f 1271/1921/101 1275/1912/101 1273/1922/101 +f 1285/1923/104 1283/1924/104 1284/1925/104 +f 1281/1926/99 1286/1927/99 1282/1928/99 +f 1280/1929/106 1284/1925/106 1279/1930/106 +f 1282/1931/103 1285/1923/103 1280/1932/103 +f 1279/1933/101 1283/1924/101 1281/1934/101 +f 1293/1935/104 1291/1936/104 1292/1937/104 +f 1289/1938/99 1294/1939/99 1290/1940/99 +f 1288/1941/106 1292/1937/106 1287/1942/106 +f 1290/1943/103 1293/1935/103 1288/1944/103 +f 1287/1945/101 1291/1936/101 1289/1946/101 +f 1302/1947/101 1298/1948/101 1300/1949/101 +f 1299/1950/103 1296/1951/103 1301/1952/103 +f 1301/1953/106 1297/1954/106 1302/1955/106 +f 1300/1956/99 1295/1957/99 1299/1958/99 +f 1296/1951/104 1298/1948/104 1297/1954/104 +f 1310/1959/101 1306/1960/101 1308/1961/101 +f 1307/1962/103 1304/1963/103 1309/1964/103 +f 1309/1965/106 1305/1966/106 1310/1967/106 +f 1308/1968/99 1303/1969/99 1307/1970/99 +f 1304/1963/104 1306/1960/104 1305/1966/104 +f 1322/1971/101 1318/1972/101 1320/1973/101 +f 1319/1974/103 1316/1975/103 1321/1976/103 +f 1321/1977/106 1317/1978/106 1322/1979/106 +f 1320/1980/99 1315/1981/99 1319/1982/99 +f 1316/1975/104 1318/1972/104 1317/1978/104 +f 1329/1983/104 1327/1984/104 1328/1985/104 +f 1325/1986/99 1330/1987/99 1326/1988/99 +f 1324/1989/106 1328/1985/106 1323/1990/106 +f 1326/1991/103 1329/1983/103 1324/1992/103 +f 1323/1993/101 1327/1984/101 1325/1994/101 +f 1338/1995/101 1334/1996/101 1336/1997/101 +f 1335/1998/103 1332/1999/103 1337/2000/103 +f 1337/2001/106 1333/2002/106 1338/2003/106 +f 1336/2004/99 1331/2005/99 1335/2006/99 +f 1332/1999/104 1334/1996/104 1333/2002/104 +f 1345/2007/104 1343/2008/104 1344/2009/104 +f 1341/2010/99 1346/2011/99 1342/2012/99 +f 1340/2013/106 1344/2009/106 1339/2014/106 +f 1342/2015/103 1345/2007/103 1340/2016/103 +f 1339/2017/101 1343/2008/101 1341/2018/101 +f 1350/2019/106 1313/2020/106 1314/2021/106 +f 1312/2022/104 1313/2023/104 1311/2024/104 +f 1349/2025/102 1348/2026/102 1347/2027/102 +f 1312/2022/99 1347/2028/99 1348/2026/99 +f 1314/2021/101 1348/2026/101 1350/2019/101 +f 1357/2029/104 1355/2030/104 1356/2031/104 +f 1353/2032/99 1358/2033/99 1354/2034/99 +f 1352/2035/106 1356/2031/106 1351/2036/106 +f 1354/2037/103 1357/2029/103 1352/2038/103 +f 1351/2039/101 1355/2030/101 1353/2040/101 +f 1366/2041/101 1362/2042/101 1364/2043/101 +f 1363/2044/103 1360/2045/103 1365/2046/103 +f 1365/2047/106 1361/2048/106 1366/2049/106 +f 1364/2050/99 1359/2051/99 1363/2052/99 +f 1360/2045/104 1362/2042/104 1361/2048/104 +f 1076/1581/99 1054/2053/99 1051/1582/99 +f 1072/2054/100 1052/1603/100 1075/1586/100 +f 1052/1603/100 1090/1584/100 1075/1586/100 +f 1090/1584/100 1067/2055/100 1065/1585/100 +f 1057/1587/101 1059/1609/101 1060/1588/101 +f 1063/1590/102 1064/1598/102 1062/1591/102 +f 1065/1593/103 1067/1596/103 1068/1594/103 +f 1067/1596/102 1069/2056/102 1070/1597/102 +f 1070/1597/101 1069/2056/101 1062/1591/101 +f 1049/1599/104 1065/1593/104 1066/1595/104 +f 1052/1603/105 1072/2054/105 1092/1608/105 +f 1083/1601/105 1081/2057/105 1091/1602/105 +f 1052/1603/105 1092/1608/105 1083/1601/105 +f 1053/1604/104 1074/1634/104 1073/1605/104 +f 1074/1607/99 1053/2058/99 1083/1601/99 +f 1049/1599/99 1056/1633/99 1075/1586/99 +f 1059/1609/102 1079/1612/102 1080/1610/102 +f 1058/1589/104 1078/1621/104 1077/1611/104 +f 1079/1612/101 1081/1614/101 1082/1613/101 +f 1081/1614/104 1083/2059/104 1084/1615/104 +f 1084/1615/103 1083/2059/103 1053/1604/103 +f 1061/1616/103 1085/1619/103 1086/1617/103 +f 1085/1619/102 1087/2060/102 1088/1620/102 +f 1088/1620/101 1087/2060/101 1077/1611/101 +f 1091/1602/106 1089/1635/106 1090/1584/106 +f 1071/1583/103 1072/2061/103 1075/1622/103 +f 1092/1623/104 1072/2061/104 1071/1583/104 +f 1077/1625/99 1079/2062/99 1059/1626/99 +f 1062/1628/99 1069/1631/99 1085/1629/99 +f 1069/1631/107 1067/2055/107 1090/1584/107 +f 1090/1584/107 1089/1635/107 1085/1629/107 +f 1089/1635/107 1087/2063/107 1085/1629/107 +f 1054/1632/102 1076/1581/102 1075/1622/102 +f 1074/1634/101 1092/1623/101 1097/1624/101 +f 1091/1602/108 1081/2057/108 1079/2062/108 +f 1077/1625/108 1087/2063/108 1089/1635/108 +f 1091/1602/108 1079/2062/108 1077/1625/108 +f 1093/1636/102 1101/2064/102 1102/1637/102 +f 1098/1639/99 1068/1594/99 1070/1597/99 +f 1098/1641/99 1050/2065/99 1066/1595/99 +f 1050/1600/103 1054/1632/103 1056/1633/103 +f 1051/1642/99 1073/2066/99 1097/1624/99 +f 1099/1643/99 1082/1613/99 1084/1615/99 +f 1080/1610/99 1082/1613/99 1099/1645/99 +f 1100/1647/99 1063/2067/99 1086/1617/99 +f 1078/1621/99 1058/2068/99 1100/1648/99 +f 1100/2069/109 1058/1589/109 1093/1650/109 +f 1058/1589/109 1060/1588/109 1095/1649/109 +f 1060/1588/109 1099/2070/109 1095/1649/109 +f 1055/1606/110 1073/1605/110 1095/1651/110 +f 1073/1605/110 1051/2071/110 1096/1656/110 +f 1095/1651/110 1073/1605/110 1096/1656/110 +f 1051/2072/111 1054/1632/111 1096/1654/111 +f 1054/1632/111 1050/1600/111 1094/1653/111 +f 1050/1600/111 1098/2073/111 1094/1653/111 +f 1098/2074/112 1064/1598/112 1094/1638/112 +f 1064/1598/112 1063/1590/112 1093/1636/112 +f 1063/1590/112 1100/2075/112 1093/1636/112 +f 1102/1655/113 1101/2076/113 1095/1651/113 +f 1109/1659/103 1110/1663/103 1107/1660/103 +f 1105/1662/99 1107/1660/99 1110/1663/99 +f 1104/1665/106 1109/1659/106 1108/1661/106 +f 1106/1667/102 1110/1663/102 1109/1659/102 +f 1103/1669/104 1108/1661/104 1107/1660/104 +f 1118/1671/104 1113/1678/104 1114/1672/104 +f 1115/1674/102 1111/1681/102 1112/1675/102 +f 1117/1677/106 1112/1675/106 1113/1678/106 +f 1116/1680/99 1114/1672/99 1111/1681/99 +f 1112/1675/103 1111/1681/103 1114/1672/103 +f 1126/1683/104 1121/1690/104 1122/1684/104 +f 1123/1686/102 1119/1693/102 1120/1687/102 +f 1125/1689/106 1120/1687/106 1121/1690/106 +f 1124/1692/99 1122/1684/99 1119/1693/99 +f 1120/1687/103 1119/1693/103 1122/1684/103 +f 1133/1695/103 1134/1699/103 1131/1696/103 +f 1129/1698/99 1131/1696/99 1134/1699/99 +f 1128/1701/106 1133/1695/106 1132/1697/106 +f 1130/1703/102 1134/1699/102 1133/1695/102 +f 1127/1705/104 1132/1697/104 1131/1696/104 +f 1142/1707/104 1137/1714/104 1138/1708/104 +f 1139/1710/102 1135/1717/102 1136/1711/102 +f 1141/1713/106 1136/1711/106 1137/1714/106 +f 1140/1716/99 1138/1708/99 1135/1717/99 +f 1136/1711/103 1135/1717/103 1138/1708/103 +f 1149/1719/103 1150/1723/103 1147/1720/103 +f 1145/1722/99 1147/1720/99 1150/1723/99 +f 1144/1725/106 1149/1719/106 1148/1721/106 +f 1146/1727/102 1150/1723/102 1149/1719/102 +f 1143/1729/104 1148/1721/104 1147/1720/104 +f 1157/1731/103 1158/1735/103 1155/1732/103 +f 1153/1734/99 1155/1732/99 1158/1735/99 +f 1152/1737/106 1157/1731/106 1156/1733/106 +f 1154/1739/102 1158/1735/102 1157/1731/102 +f 1151/1741/104 1156/1733/104 1155/1732/104 +f 1165/1743/103 1166/1747/103 1163/1744/103 +f 1161/1746/99 1163/1744/99 1166/1747/99 +f 1160/1749/106 1165/1743/106 1164/1745/106 +f 1162/1751/102 1166/1747/102 1165/1743/102 +f 1159/1753/104 1164/1745/104 1163/1744/104 +f 1174/1755/104 1169/1762/104 1170/1756/104 +f 1171/1758/102 1167/1765/102 1168/1759/102 +f 1173/1761/106 1168/1759/106 1169/1762/106 +f 1172/1764/99 1170/1756/99 1167/1765/99 +f 1168/1759/103 1167/1765/103 1170/1756/103 +f 1182/1767/104 1177/1774/104 1178/1768/104 +f 1179/1770/102 1175/1777/102 1176/1771/102 +f 1181/1773/106 1176/1771/106 1177/1774/106 +f 1180/1776/99 1178/1768/99 1175/1777/99 +f 1176/1771/103 1175/1777/103 1178/1768/103 +f 1190/1779/104 1185/1786/104 1186/1780/104 +f 1187/1782/102 1183/1789/102 1184/1783/102 +f 1189/1785/106 1184/1783/106 1185/1786/106 +f 1188/1788/99 1186/1780/99 1183/1789/99 +f 1184/1783/103 1183/1789/103 1186/1780/103 +f 1197/1791/103 1198/1795/103 1195/1792/103 +f 1193/1794/99 1195/1792/99 1198/1795/99 +f 1192/1797/106 1197/1791/106 1196/1793/106 +f 1194/1799/102 1198/1795/102 1197/1791/102 +f 1191/1801/104 1196/1793/104 1195/1792/104 +f 1205/1803/101 1206/1807/101 1203/1804/101 +f 1201/1806/99 1203/1804/99 1206/1807/99 +f 1200/1809/106 1205/1803/106 1204/1805/106 +f 1202/1811/104 1206/1807/104 1205/1803/104 +f 1199/1813/102 1204/1805/102 1203/1804/102 +f 1214/1815/102 1209/1822/102 1210/1816/102 +f 1211/1818/104 1207/1825/104 1208/1819/104 +f 1213/1821/106 1208/1819/106 1209/1822/106 +f 1212/1824/99 1210/1816/99 1207/1825/99 +f 1208/1819/101 1207/1825/101 1210/1816/101 +f 1222/1827/102 1217/1834/102 1218/1828/102 +f 1219/1830/104 1215/1837/104 1216/1831/104 +f 1221/1833/106 1216/1831/106 1217/1834/106 +f 1220/1836/99 1218/1828/99 1215/1837/99 +f 1216/1831/101 1215/1837/101 1218/1828/101 +f 1229/1839/101 1230/1843/101 1227/1840/101 +f 1225/1842/99 1227/1840/99 1230/1843/99 +f 1224/1845/106 1229/1839/106 1228/1841/106 +f 1226/1847/104 1230/1843/104 1229/1839/104 +f 1223/1849/102 1228/1841/102 1227/1840/102 +f 1237/1851/101 1238/1855/101 1235/1852/101 +f 1233/1854/99 1235/1852/99 1238/1855/99 +f 1232/1857/106 1237/1851/106 1236/1853/106 +f 1234/1859/104 1238/1855/104 1237/1851/104 +f 1231/1861/102 1236/1853/102 1235/1852/102 +f 1246/1863/102 1241/1870/102 1242/1864/102 +f 1243/1866/104 1239/1873/104 1240/1867/104 +f 1245/1869/106 1240/1867/106 1241/1870/106 +f 1244/1872/99 1242/1864/99 1239/1873/99 +f 1240/1867/101 1239/1873/101 1242/1864/101 +f 1254/1875/102 1249/1882/102 1250/1876/102 +f 1251/1878/104 1247/1885/104 1248/1879/104 +f 1253/1881/106 1248/1879/106 1249/1882/106 +f 1252/1884/99 1250/1876/99 1247/1885/99 +f 1248/1879/101 1247/1885/101 1250/1876/101 +f 1261/1887/101 1262/1891/101 1259/1888/101 +f 1257/1890/99 1259/1888/99 1262/1891/99 +f 1256/1893/106 1261/1887/106 1260/1889/106 +f 1258/1895/104 1262/1891/104 1261/1887/104 +f 1255/1897/102 1260/1889/102 1259/1888/102 +f 1270/1899/101 1265/1906/101 1266/1900/101 +f 1267/1902/103 1263/1909/103 1264/1903/103 +f 1269/1905/106 1264/1903/106 1265/1906/106 +f 1268/1908/99 1266/1900/99 1263/1909/99 +f 1264/1903/104 1263/1909/104 1266/1900/104 +f 1277/1911/104 1278/1915/104 1275/1912/104 +f 1273/1914/99 1275/1912/99 1278/1915/99 +f 1272/1917/106 1277/1911/106 1276/1913/106 +f 1274/1919/103 1278/1915/103 1277/1911/103 +f 1271/1921/101 1276/1913/101 1275/1912/101 +f 1285/1923/104 1286/1927/104 1283/1924/104 +f 1281/1926/99 1283/1924/99 1286/1927/99 +f 1280/1929/106 1285/1923/106 1284/1925/106 +f 1282/1931/103 1286/1927/103 1285/1923/103 +f 1279/1933/101 1284/1925/101 1283/1924/101 +f 1293/1935/104 1294/1939/104 1291/1936/104 +f 1289/1938/99 1291/1936/99 1294/1939/99 +f 1288/1941/106 1293/1935/106 1292/1937/106 +f 1290/1943/103 1294/1939/103 1293/1935/103 +f 1287/1945/101 1292/1937/101 1291/1936/101 +f 1302/1947/101 1297/1954/101 1298/1948/101 +f 1299/1950/103 1295/1957/103 1296/1951/103 +f 1301/1953/106 1296/1951/106 1297/1954/106 +f 1300/1956/99 1298/1948/99 1295/1957/99 +f 1296/1951/104 1295/1957/104 1298/1948/104 +f 1310/1959/101 1305/1966/101 1306/1960/101 +f 1307/1962/103 1303/1969/103 1304/1963/103 +f 1309/1965/106 1304/1963/106 1305/1966/106 +f 1308/1968/99 1306/1960/99 1303/1969/99 +f 1304/1963/104 1303/1969/104 1306/1960/104 +f 1322/1971/101 1317/1978/101 1318/1972/101 +f 1319/1974/103 1315/1981/103 1316/1975/103 +f 1321/1977/106 1316/1975/106 1317/1978/106 +f 1320/1980/99 1318/1972/99 1315/1981/99 +f 1316/1975/104 1315/1981/104 1318/1972/104 +f 1329/1983/104 1330/1987/104 1327/1984/104 +f 1325/1986/99 1327/1984/99 1330/1987/99 +f 1324/1989/106 1329/1983/106 1328/1985/106 +f 1326/1991/103 1330/1987/103 1329/1983/103 +f 1323/1993/101 1328/1985/101 1327/1984/101 +f 1338/1995/101 1333/2002/101 1334/1996/101 +f 1335/1998/103 1331/2005/103 1332/1999/103 +f 1337/2001/106 1332/1999/106 1333/2002/106 +f 1336/2004/99 1334/1996/99 1331/2005/99 +f 1332/1999/104 1331/2005/104 1334/1996/104 +f 1345/2007/104 1346/2011/104 1343/2008/104 +f 1341/2010/99 1343/2008/99 1346/2011/99 +f 1340/2013/106 1345/2007/106 1344/2009/106 +f 1342/2015/103 1346/2011/103 1345/2007/103 +f 1339/2017/101 1344/2009/101 1343/2008/101 +f 1350/2019/106 1349/2077/106 1313/2020/106 +f 1312/2022/104 1314/2021/104 1313/2023/104 +f 1349/2025/102 1350/2019/102 1348/2026/102 +f 1312/2022/99 1311/2078/99 1347/2028/99 +f 1314/2021/101 1312/2022/101 1348/2026/101 +f 1357/2029/104 1358/2033/104 1355/2030/104 +f 1353/2032/99 1355/2030/99 1358/2033/99 +f 1352/2035/106 1357/2029/106 1356/2031/106 +f 1354/2037/103 1358/2033/103 1357/2029/103 +f 1351/2039/101 1356/2031/101 1355/2030/101 +f 1366/2041/101 1361/2048/101 1362/2042/101 +f 1363/2044/103 1359/2051/103 1360/2045/103 +f 1365/2047/106 1360/2045/106 1361/2048/106 +f 1364/2050/99 1362/2042/99 1359/2051/99 +f 1360/2045/104 1359/2051/104 1362/2042/104 o Head v -4.000008 0.000002 -5.000000 v 3.999992 -0.000002 -5.000000 @@ -5851,248 +5925,248 @@ vn 0.1445 0.9063 -0.3971 vn 0.8917 0.2418 -0.3825 vn -0.3068 -0.0904 -0.9474 s off -f 1328/2063/100 1329/2064/100 1327/2065/100 -f 1331/2066/101 1334/2067/101 1332/2068/101 -f 1335/2069/102 1338/2070/102 1336/2071/102 -f 1340/2072/103 1342/2073/103 1339/2074/103 -f 1343/2075/104 1345/2076/104 1344/2077/104 -f 1349/2078/105 1348/2079/105 1347/2080/105 -f 1327/2065/106 1350/2081/106 1328/2063/106 -f 1350/2082/107 1331/2066/107 1332/2068/107 -f 1332/2068/108 1330/2083/108 1328/2063/108 -f 1350/2084/109 1332/2068/109 1328/2063/109 -f 1336/2071/110 1333/2085/110 1331/2066/110 -f 1349/2086/111 1335/2069/111 1336/2071/111 -f 1349/2087/112 1336/2071/112 1331/2066/112 -f 1339/2088/113 1337/2089/113 1335/2069/113 -f 1347/2090/114 1340/2072/114 1339/2074/114 -f 1347/2091/115 1339/2088/115 1335/2069/115 -f 1341/2092/116 1327/2065/116 1329/2064/116 -f 1348/2093/117 1327/2065/117 1340/2072/117 -f 1333/2085/118 1346/2094/118 1334/2067/118 -f 1346/2095/119 1329/2064/119 1330/2083/119 -f 1334/2067/120 1346/2096/120 1330/2083/120 -f 1337/2089/121 1345/2097/121 1338/2070/121 -f 1338/2070/122 1345/2098/122 1333/2085/122 -f 1341/2092/123 1344/2099/123 1342/2073/123 -f 1342/2100/124 1344/2101/124 1337/2089/124 -f 1341/2092/125 1329/2064/125 1343/2102/125 -f 1353/2103/100 1393/2104/100 1391/2105/100 -f 1352/2106/116 1358/2107/116 1354/2108/116 -f 1353/2103/108 1355/2109/108 1351/2110/108 -f 1356/2111/103 1363/2112/103 1362/2113/103 -f 1364/2114/101 1355/2109/101 1361/2115/101 -f 1360/2116/104 1369/2117/104 1370/2118/104 -f 1352/2106/104 1369/2119/104 1356/2111/104 -f 1366/2120/104 1352/2106/104 1351/2110/104 -f 1368/2121/104 1351/2110/104 1355/2109/104 -f 1368/2122/104 1359/2123/104 1367/2124/104 -f 1361/2115/105 1374/2125/105 1373/2126/105 -f 1353/2103/105 1374/2127/105 1357/2128/105 -f 1354/2108/105 1372/2129/105 1353/2103/105 -f 1376/2130/105 1354/2108/105 1358/2107/105 -f 1376/2131/105 1362/2113/105 1375/2132/105 -f 1367/2133/102 1364/2114/102 1377/2134/102 -f 1361/2135/126 1377/2134/126 1364/2114/126 -f 1360/2116/102 1378/2136/102 1363/2112/102 -f 1378/2136/126 1362/2137/126 1363/2112/126 -f 1387/2138/104 1390/2139/104 1388/2140/104 -f 1381/2141/103 1388/2140/103 1382/2142/103 -f 1390/2139/101 1385/2143/101 1386/2144/101 -f 1385/2143/101 1389/2145/101 1383/2146/101 -f 1381/2141/103 1379/2147/103 1387/2138/103 -f 1379/2147/127 1389/2145/127 1387/2138/127 -f 1386/2144/101 1384/2148/101 1390/2139/101 -f 1382/2142/103 1388/2140/103 1380/2149/103 -f 1390/2139/128 1380/2149/128 1388/2140/128 -f 1391/2105/100 1354/2108/100 1353/2103/100 -f 1398/2150/103 1391/2151/103 1393/2152/103 -f 1396/2153/104 1392/2154/104 1391/2155/104 -f 1395/2156/101 1394/2157/101 1392/2158/101 -f 1397/2159/105 1393/2160/105 1394/2161/105 -f 1352/2106/100 1393/2104/100 1351/2110/100 -f 1354/2108/100 1394/2162/100 1352/2106/100 -f 1398/2150/100 1395/2156/100 1396/2153/100 -f 1429/2163/129 1434/2164/129 1432/2165/129 -f 1465/2166/130 1470/2167/130 1468/2168/130 -f 1477/2169/100 1478/2170/100 1479/2171/100 -f 1480/2172/100 1482/2173/100 1481/2174/100 -f 1472/2175/105 1477/2169/105 1471/2176/105 -f 1475/2177/107 1482/2178/107 1476/2179/107 -f 1474/2180/104 1481/2174/104 1475/2177/104 -f 1471/2176/123 1479/2181/123 1473/2182/123 -f 1476/2183/114 1480/2172/114 1474/2180/114 -f 1473/2184/118 1478/2170/118 1472/2175/118 -f 1328/2063/100 1330/2083/100 1329/2064/100 -f 1331/2066/101 1333/2085/101 1334/2067/101 -f 1335/2069/102 1337/2089/102 1338/2070/102 -f 1340/2072/103 1341/2092/103 1342/2073/103 -f 1343/2075/104 1346/2095/104 1345/2076/104 -f 1349/2078/105 1350/2081/105 1348/2079/105 -f 1327/2065/106 1348/2079/106 1350/2081/106 -f 1350/2082/107 1349/2185/107 1331/2066/107 -f 1332/2068/108 1334/2067/108 1330/2083/108 -f 1336/2071/110 1338/2070/110 1333/2085/110 -f 1349/2086/111 1347/2186/111 1335/2069/111 -f 1339/2088/113 1342/2100/113 1337/2089/113 -f 1347/2090/114 1348/2187/114 1340/2072/114 -f 1341/2092/116 1340/2072/116 1327/2065/116 -f 1333/2085/118 1345/2188/118 1346/2094/118 -f 1346/2095/119 1343/2075/119 1329/2064/119 -f 1337/2089/121 1344/2189/121 1345/2097/121 -f 1341/2092/123 1343/2190/123 1344/2099/123 -f 1353/2103/100 1351/2110/100 1393/2104/100 -f 1352/2106/116 1356/2111/116 1358/2107/116 -f 1353/2103/108 1357/2128/108 1355/2109/108 -f 1362/2113/103 1358/2107/103 1356/2111/103 -f 1356/2111/103 1360/2116/103 1363/2112/103 -f 1359/2123/101 1355/2109/101 1364/2114/101 -f 1355/2109/101 1357/2128/101 1361/2115/101 -f 1360/2116/104 1356/2111/104 1369/2117/104 -f 1352/2106/104 1365/2191/104 1369/2119/104 -f 1366/2120/104 1365/2192/104 1352/2106/104 -f 1368/2121/104 1366/2193/104 1351/2110/104 -f 1368/2122/104 1355/2109/104 1359/2123/104 -f 1361/2115/105 1357/2128/105 1374/2125/105 -f 1353/2103/105 1372/2194/105 1374/2127/105 -f 1354/2108/105 1371/2195/105 1372/2129/105 -f 1376/2130/105 1371/2196/105 1354/2108/105 -f 1376/2131/105 1358/2107/105 1362/2113/105 -f 1367/2133/102 1359/2123/102 1364/2114/102 -f 1361/2135/126 1373/2197/126 1377/2134/126 -f 1360/2116/102 1370/2198/102 1378/2136/102 -f 1378/2136/126 1375/2199/126 1362/2137/126 -f 1387/2138/104 1389/2145/104 1390/2139/104 -f 1381/2141/103 1387/2138/103 1388/2140/103 -f 1390/2139/101 1389/2145/101 1385/2143/101 -f 1379/2147/127 1383/2146/127 1389/2145/127 -f 1390/2139/128 1384/2148/128 1380/2149/128 -f 1391/2105/100 1392/2200/100 1354/2108/100 -f 1398/2150/103 1396/2153/103 1391/2151/103 -f 1396/2153/104 1395/2156/104 1392/2154/104 -f 1395/2156/101 1397/2159/101 1394/2157/101 -f 1397/2159/105 1398/2150/105 1393/2160/105 -f 1352/2106/100 1394/2162/100 1393/2104/100 -f 1354/2108/100 1392/2200/100 1394/2162/100 -f 1398/2150/100 1397/2159/100 1395/2156/100 -f 1425/2201/129 1424/2202/129 1423/2203/129 -f 1423/2203/129 1434/2164/129 1425/2201/129 -f 1434/2164/129 1433/2204/129 1432/2165/129 -f 1425/2201/129 1434/2164/129 1429/2163/129 -f 1432/2165/129 1431/2205/129 1429/2163/129 -f 1431/2205/129 1430/2206/129 1429/2163/129 -f 1429/2163/129 1428/2207/129 1427/2208/129 -f 1427/2208/129 1426/2209/129 1429/2163/129 -f 1426/2209/129 1425/2201/129 1429/2163/129 -f 1461/2210/130 1460/2211/130 1459/2212/130 -f 1459/2212/130 1470/2167/130 1461/2210/130 -f 1470/2167/130 1469/2213/130 1468/2168/130 -f 1461/2210/130 1470/2167/130 1465/2166/130 -f 1468/2168/130 1467/2214/130 1465/2166/130 -f 1467/2214/130 1466/2215/130 1465/2166/130 -f 1465/2166/130 1464/2216/130 1463/2217/130 -f 1463/2217/130 1462/2218/130 1465/2166/130 -f 1462/2218/130 1461/2210/130 1465/2166/130 -f 1472/2175/105 1478/2170/105 1477/2169/105 -f 1475/2177/107 1481/2174/107 1482/2178/107 -f 1474/2180/104 1480/2172/104 1481/2174/104 -f 1471/2176/123 1477/2169/123 1479/2181/123 -f 1476/2183/114 1482/2219/114 1480/2172/114 -f 1473/2184/118 1479/2220/118 1478/2170/118 +f 1368/2079/114 1369/2080/114 1367/2081/114 +f 1371/2082/115 1374/2083/115 1372/2084/115 +f 1375/2085/116 1378/2086/116 1376/2087/116 +f 1380/2088/117 1382/2089/117 1379/2090/117 +f 1383/2091/118 1385/2092/118 1384/2093/118 +f 1389/2094/119 1388/2095/119 1387/2096/119 +f 1367/2081/120 1390/2097/120 1368/2079/120 +f 1390/2098/121 1371/2082/121 1372/2084/121 +f 1372/2084/122 1370/2099/122 1368/2079/122 +f 1390/2100/123 1372/2084/123 1368/2079/123 +f 1376/2087/124 1373/2101/124 1371/2082/124 +f 1389/2102/125 1375/2085/125 1376/2087/125 +f 1389/2103/126 1376/2087/126 1371/2082/126 +f 1379/2104/127 1377/2105/127 1375/2085/127 +f 1387/2106/128 1380/2088/128 1379/2090/128 +f 1387/2107/129 1379/2104/129 1375/2085/129 +f 1381/2108/130 1367/2081/130 1369/2080/130 +f 1388/2109/131 1367/2081/131 1380/2088/131 +f 1373/2101/132 1386/2110/132 1374/2083/132 +f 1386/2111/133 1369/2080/133 1370/2099/133 +f 1374/2083/134 1386/2112/134 1370/2099/134 +f 1377/2105/135 1385/2113/135 1378/2086/135 +f 1378/2086/136 1385/2114/136 1373/2101/136 +f 1381/2108/137 1384/2115/137 1382/2089/137 +f 1382/2116/138 1384/2117/138 1377/2105/138 +f 1381/2108/139 1369/2080/139 1383/2118/139 +f 1393/2119/114 1433/2120/114 1431/2121/114 +f 1392/2122/130 1398/2123/130 1394/2124/130 +f 1393/2119/122 1395/2125/122 1391/2126/122 +f 1396/2127/117 1403/2128/117 1402/2129/117 +f 1404/2130/115 1395/2125/115 1401/2131/115 +f 1400/2132/118 1409/2133/118 1410/2134/118 +f 1392/2122/118 1409/2135/118 1396/2127/118 +f 1406/2136/118 1392/2122/118 1391/2126/118 +f 1408/2137/118 1391/2126/118 1395/2125/118 +f 1408/2138/118 1399/2139/118 1407/2140/118 +f 1401/2131/119 1414/2141/119 1413/2142/119 +f 1393/2119/119 1414/2143/119 1397/2144/119 +f 1394/2124/119 1412/2145/119 1393/2119/119 +f 1416/2146/119 1394/2124/119 1398/2123/119 +f 1416/2147/119 1402/2129/119 1415/2148/119 +f 1407/2149/116 1404/2130/116 1417/2150/116 +f 1401/2151/140 1417/2150/140 1404/2130/140 +f 1400/2132/116 1418/2152/116 1403/2128/116 +f 1418/2152/140 1402/2153/140 1403/2128/140 +f 1427/2154/118 1430/2155/118 1428/2156/118 +f 1421/2157/117 1428/2156/117 1422/2158/117 +f 1430/2155/115 1425/2159/115 1426/2160/115 +f 1425/2159/115 1429/2161/115 1423/2162/115 +f 1421/2157/117 1419/2163/117 1427/2154/117 +f 1419/2163/141 1429/2161/141 1427/2154/141 +f 1426/2160/115 1424/2164/115 1430/2155/115 +f 1422/2158/117 1428/2156/117 1420/2165/117 +f 1430/2155/142 1420/2165/142 1428/2156/142 +f 1431/2121/114 1394/2124/114 1393/2119/114 +f 1438/2166/117 1431/2167/117 1433/2168/117 +f 1436/2169/118 1432/2170/118 1431/2171/118 +f 1435/2172/115 1434/2173/115 1432/2174/115 +f 1437/2175/119 1433/2176/119 1434/2177/119 +f 1392/2122/114 1433/2120/114 1391/2126/114 +f 1394/2124/114 1434/2178/114 1392/2122/114 +f 1438/2166/114 1435/2172/114 1436/2169/114 +f 1469/2179/143 1474/2180/143 1472/2181/143 +f 1505/2182/144 1510/2183/144 1508/2184/144 +f 1517/2185/114 1518/2186/114 1519/2187/114 +f 1520/2188/114 1522/2189/114 1521/2190/114 +f 1512/2191/119 1517/2185/119 1511/2192/119 +f 1515/2193/121 1522/2194/121 1516/2195/121 +f 1514/2196/118 1521/2190/118 1515/2193/118 +f 1511/2192/137 1519/2197/137 1513/2198/137 +f 1516/2199/128 1520/2188/128 1514/2196/128 +f 1513/2200/132 1518/2186/132 1512/2191/132 +f 1368/2079/114 1370/2099/114 1369/2080/114 +f 1371/2082/115 1373/2101/115 1374/2083/115 +f 1375/2085/116 1377/2105/116 1378/2086/116 +f 1380/2088/117 1381/2108/117 1382/2089/117 +f 1383/2091/118 1386/2111/118 1385/2092/118 +f 1389/2094/119 1390/2097/119 1388/2095/119 +f 1367/2081/120 1388/2095/120 1390/2097/120 +f 1390/2098/121 1389/2201/121 1371/2082/121 +f 1372/2084/122 1374/2083/122 1370/2099/122 +f 1376/2087/124 1378/2086/124 1373/2101/124 +f 1389/2102/125 1387/2202/125 1375/2085/125 +f 1379/2104/127 1382/2116/127 1377/2105/127 +f 1387/2106/128 1388/2203/128 1380/2088/128 +f 1381/2108/130 1380/2088/130 1367/2081/130 +f 1373/2101/132 1385/2204/132 1386/2110/132 +f 1386/2111/133 1383/2091/133 1369/2080/133 +f 1377/2105/135 1384/2205/135 1385/2113/135 +f 1381/2108/137 1383/2206/137 1384/2115/137 +f 1393/2119/114 1391/2126/114 1433/2120/114 +f 1392/2122/130 1396/2127/130 1398/2123/130 +f 1393/2119/122 1397/2144/122 1395/2125/122 +f 1402/2129/117 1398/2123/117 1396/2127/117 +f 1396/2127/117 1400/2132/117 1403/2128/117 +f 1399/2139/115 1395/2125/115 1404/2130/115 +f 1395/2125/115 1397/2144/115 1401/2131/115 +f 1400/2132/118 1396/2127/118 1409/2133/118 +f 1392/2122/118 1405/2207/118 1409/2135/118 +f 1406/2136/118 1405/2208/118 1392/2122/118 +f 1408/2137/118 1406/2209/118 1391/2126/118 +f 1408/2138/118 1395/2125/118 1399/2139/118 +f 1401/2131/119 1397/2144/119 1414/2141/119 +f 1393/2119/119 1412/2210/119 1414/2143/119 +f 1394/2124/119 1411/2211/119 1412/2145/119 +f 1416/2146/119 1411/2212/119 1394/2124/119 +f 1416/2147/119 1398/2123/119 1402/2129/119 +f 1407/2149/116 1399/2139/116 1404/2130/116 +f 1401/2151/140 1413/2213/140 1417/2150/140 +f 1400/2132/116 1410/2214/116 1418/2152/116 +f 1418/2152/140 1415/2215/140 1402/2153/140 +f 1427/2154/118 1429/2161/118 1430/2155/118 +f 1421/2157/117 1427/2154/117 1428/2156/117 +f 1430/2155/115 1429/2161/115 1425/2159/115 +f 1419/2163/141 1423/2162/141 1429/2161/141 +f 1430/2155/142 1424/2164/142 1420/2165/142 +f 1431/2121/114 1432/2216/114 1394/2124/114 +f 1438/2166/117 1436/2169/117 1431/2167/117 +f 1436/2169/118 1435/2172/118 1432/2170/118 +f 1435/2172/115 1437/2175/115 1434/2173/115 +f 1437/2175/119 1438/2166/119 1433/2176/119 +f 1392/2122/114 1434/2178/114 1433/2120/114 +f 1394/2124/114 1432/2216/114 1434/2178/114 +f 1438/2166/114 1437/2175/114 1435/2172/114 +f 1465/2217/143 1464/2218/143 1463/2219/143 +f 1463/2219/143 1474/2180/143 1465/2217/143 +f 1474/2180/143 1473/2220/143 1472/2181/143 +f 1465/2217/143 1474/2180/143 1469/2179/143 +f 1472/2181/143 1471/2221/143 1469/2179/143 +f 1471/2221/143 1470/2222/143 1469/2179/143 +f 1469/2179/143 1468/2223/143 1467/2224/143 +f 1467/2224/143 1466/2225/143 1469/2179/143 +f 1466/2225/143 1465/2217/143 1469/2179/143 +f 1501/2226/144 1500/2227/144 1499/2228/144 +f 1499/2228/144 1510/2183/144 1501/2226/144 +f 1510/2183/144 1509/2229/144 1508/2184/144 +f 1501/2226/144 1510/2183/144 1505/2182/144 +f 1508/2184/144 1507/2230/144 1505/2182/144 +f 1507/2230/144 1506/2231/144 1505/2182/144 +f 1505/2182/144 1504/2232/144 1503/2233/144 +f 1503/2233/144 1502/2234/144 1505/2182/144 +f 1502/2234/144 1501/2226/144 1505/2182/144 +f 1512/2191/119 1518/2186/119 1517/2185/119 +f 1515/2193/121 1521/2190/121 1522/2194/121 +f 1514/2196/118 1520/2188/118 1521/2190/118 +f 1511/2192/137 1517/2185/137 1519/2197/137 +f 1516/2199/128 1522/2235/128 1520/2188/128 +f 1513/2200/132 1519/2236/132 1518/2186/132 s 1 -f 1401/2221/131 1414/2222/132 1402/2223/132 -f 1420/2224/133 1409/2225/134 1408/2226/133 -f 1405/2227/135 1418/2228/136 1406/2229/136 -f 1402/2223/132 1415/2230/137 1403/2231/137 -f 1421/2232/134 1410/2233/138 1409/2225/134 -f 1411/2234/139 1400/2235/140 1399/2236/139 -f 1418/2228/136 1407/2237/141 1406/2229/136 -f 1415/2230/137 1404/2238/142 1403/2231/137 -f 1410/2233/138 1411/2234/139 1399/2236/139 -f 1412/2239/140 1401/2221/131 1400/2235/140 -f 1419/2240/141 1408/2226/133 1407/2237/141 -f 1416/2241/142 1405/2242/135 1404/2238/142 -f 1507/2243/143 1520/2244/144 1508/2245/144 -f 1529/2246/145 1518/2247/146 1517/2248/145 -f 1522/2249/147 1511/2250/148 1510/2251/147 -f 1525/2252/149 1514/2253/150 1513/2254/149 -f 1516/2255/151 1529/2246/145 1517/2248/145 -f 1521/2256/152 1510/2251/147 1509/2257/152 -f 1524/2258/153 1513/2259/149 1512/2260/153 -f 1515/2261/154 1528/2262/151 1516/2255/151 -f 1508/2245/144 1521/2256/152 1509/2257/152 -f 1518/2247/146 1519/2263/143 1507/2243/143 -f 1523/2264/148 1512/2260/153 1511/2250/148 -f 1514/2253/150 1527/2265/154 1515/2261/154 -f 1437/2266/155 1450/2267/156 1438/2268/156 -f 1456/2269/157 1445/2270/158 1444/2271/157 -f 1441/2272/159 1454/2273/160 1442/2274/160 -f 1438/2268/156 1451/2275/161 1439/2276/161 -f 1457/2277/158 1446/2278/162 1445/2270/158 -f 1447/2279/163 1436/2280/164 1435/2281/163 -f 1442/2274/160 1455/2282/165 1443/2283/165 -f 1439/2276/161 1452/2284/166 1440/2285/166 -f 1446/2278/162 1447/2279/163 1435/2281/163 -f 1448/2286/164 1437/2266/155 1436/2280/164 -f 1455/2282/165 1444/2271/157 1443/2283/165 -f 1452/2284/166 1441/2287/159 1440/2285/166 -f 1490/2288/167 1503/2289/168 1491/2290/168 -f 1499/2291/169 1488/2292/170 1487/2293/169 -f 1494/2294/171 1495/2295/172 1483/2296/172 -f 1484/2297/173 1497/2298/174 1485/2299/174 -f 1491/2290/168 1504/2300/175 1492/2301/175 -f 1500/2302/170 1489/2303/176 1488/2292/170 -f 1497/2298/174 1486/2304/177 1485/2299/174 -f 1492/2301/175 1505/2305/178 1493/2306/178 -f 1489/2307/176 1502/2308/167 1490/2288/167 -f 1498/2309/177 1487/2293/169 1486/2304/177 -f 1505/2305/178 1494/2294/171 1493/2306/178 -f 1495/2295/172 1484/2297/173 1483/2296/172 -f 1401/2221/131 1413/2310/131 1414/2222/132 -f 1420/2224/133 1421/2232/134 1409/2225/134 -f 1405/2227/135 1417/2311/135 1418/2228/136 -f 1402/2223/132 1414/2222/132 1415/2230/137 -f 1421/2232/134 1422/2312/138 1410/2233/138 -f 1411/2234/139 1412/2239/140 1400/2235/140 -f 1418/2228/136 1419/2240/141 1407/2237/141 -f 1415/2230/137 1416/2241/142 1404/2238/142 -f 1410/2233/138 1422/2312/138 1411/2234/139 -f 1412/2239/140 1413/2310/131 1401/2221/131 -f 1419/2240/141 1420/2224/133 1408/2226/133 -f 1416/2241/142 1417/2313/135 1405/2242/135 -f 1507/2243/143 1519/2263/143 1520/2244/144 -f 1529/2246/145 1530/2314/146 1518/2247/146 -f 1522/2249/147 1523/2264/148 1511/2250/148 -f 1525/2252/149 1526/2315/150 1514/2253/150 -f 1516/2255/151 1528/2262/151 1529/2246/145 -f 1521/2256/152 1522/2249/147 1510/2251/147 -f 1524/2258/153 1525/2316/149 1513/2259/149 -f 1515/2261/154 1527/2265/154 1528/2262/151 -f 1508/2245/144 1520/2244/144 1521/2256/152 -f 1518/2247/146 1530/2314/146 1519/2263/143 -f 1523/2264/148 1524/2258/153 1512/2260/153 -f 1514/2253/150 1526/2315/150 1527/2265/154 -f 1437/2266/155 1449/2317/155 1450/2267/156 -f 1456/2269/157 1457/2277/158 1445/2270/158 -f 1441/2272/159 1453/2318/159 1454/2273/160 -f 1438/2268/156 1450/2267/156 1451/2275/161 -f 1457/2277/158 1458/2319/162 1446/2278/162 -f 1447/2279/163 1448/2286/164 1436/2280/164 -f 1442/2274/160 1454/2273/160 1455/2282/165 -f 1439/2276/161 1451/2275/161 1452/2284/166 -f 1446/2278/162 1458/2319/162 1447/2279/163 -f 1448/2286/164 1449/2317/155 1437/2266/155 -f 1455/2282/165 1456/2269/157 1444/2271/157 -f 1452/2284/166 1453/2320/159 1441/2287/159 -f 1490/2288/167 1502/2308/167 1503/2289/168 -f 1499/2291/169 1500/2302/170 1488/2292/170 -f 1494/2294/171 1506/2321/171 1495/2295/172 -f 1484/2297/173 1496/2322/173 1497/2298/174 -f 1491/2290/168 1503/2289/168 1504/2300/175 -f 1500/2302/170 1501/2323/176 1489/2303/176 -f 1497/2298/174 1498/2309/177 1486/2304/177 -f 1492/2301/175 1504/2300/175 1505/2305/178 -f 1489/2307/176 1501/2324/176 1502/2308/167 -f 1498/2309/177 1499/2291/169 1487/2293/169 -f 1505/2305/178 1506/2321/171 1494/2294/171 -f 1495/2295/172 1496/2322/173 1484/2297/173 +f 1441/2237/145 1454/2238/146 1442/2239/146 +f 1460/2240/147 1449/2241/148 1448/2242/147 +f 1445/2243/149 1458/2244/150 1446/2245/150 +f 1442/2239/146 1455/2246/151 1443/2247/151 +f 1461/2248/148 1450/2249/152 1449/2241/148 +f 1451/2250/153 1440/2251/154 1439/2252/153 +f 1458/2244/150 1447/2253/155 1446/2245/150 +f 1455/2246/151 1444/2254/156 1443/2247/151 +f 1450/2249/152 1451/2250/153 1439/2252/153 +f 1452/2255/154 1441/2237/145 1440/2251/154 +f 1459/2256/155 1448/2242/147 1447/2253/155 +f 1456/2257/156 1445/2258/149 1444/2254/156 +f 1547/2259/157 1560/2260/158 1548/2261/158 +f 1569/2262/159 1558/2263/160 1557/2264/159 +f 1562/2265/161 1551/2266/162 1550/2267/161 +f 1565/2268/163 1554/2269/164 1553/2270/163 +f 1556/2271/165 1569/2262/159 1557/2264/159 +f 1561/2272/166 1550/2267/161 1549/2273/166 +f 1564/2274/167 1553/2275/163 1552/2276/167 +f 1555/2277/168 1568/2278/165 1556/2271/165 +f 1548/2261/158 1561/2272/166 1549/2273/166 +f 1558/2263/160 1559/2279/157 1547/2259/157 +f 1563/2280/162 1552/2276/167 1551/2266/162 +f 1554/2269/164 1567/2281/168 1555/2277/168 +f 1477/2282/169 1490/2283/170 1478/2284/170 +f 1496/2285/171 1485/2286/172 1484/2287/171 +f 1481/2288/173 1494/2289/174 1482/2290/174 +f 1478/2284/170 1491/2291/175 1479/2292/175 +f 1497/2293/172 1486/2294/176 1485/2286/172 +f 1487/2295/177 1476/2296/178 1475/2297/177 +f 1482/2290/174 1495/2298/179 1483/2299/179 +f 1479/2292/175 1492/2300/180 1480/2301/180 +f 1486/2294/176 1487/2295/177 1475/2297/177 +f 1488/2302/178 1477/2282/169 1476/2296/178 +f 1495/2298/179 1484/2287/171 1483/2299/179 +f 1492/2300/180 1481/2303/173 1480/2301/180 +f 1530/2304/181 1543/2305/182 1531/2306/182 +f 1539/2307/183 1528/2308/184 1527/2309/183 +f 1534/2310/185 1535/2311/186 1523/2312/186 +f 1524/2313/187 1537/2314/188 1525/2315/188 +f 1531/2306/182 1544/2316/189 1532/2317/189 +f 1540/2318/184 1529/2319/190 1528/2308/184 +f 1537/2314/188 1526/2320/191 1525/2315/188 +f 1532/2317/189 1545/2321/192 1533/2322/192 +f 1529/2323/190 1542/2324/181 1530/2304/181 +f 1538/2325/191 1527/2309/183 1526/2320/191 +f 1545/2321/192 1534/2310/185 1533/2322/192 +f 1535/2311/186 1524/2313/187 1523/2312/186 +f 1441/2237/145 1453/2326/145 1454/2238/146 +f 1460/2240/147 1461/2248/148 1449/2241/148 +f 1445/2243/149 1457/2327/149 1458/2244/150 +f 1442/2239/146 1454/2238/146 1455/2246/151 +f 1461/2248/148 1462/2328/152 1450/2249/152 +f 1451/2250/153 1452/2255/154 1440/2251/154 +f 1458/2244/150 1459/2256/155 1447/2253/155 +f 1455/2246/151 1456/2257/156 1444/2254/156 +f 1450/2249/152 1462/2328/152 1451/2250/153 +f 1452/2255/154 1453/2326/145 1441/2237/145 +f 1459/2256/155 1460/2240/147 1448/2242/147 +f 1456/2257/156 1457/2329/149 1445/2258/149 +f 1547/2259/157 1559/2279/157 1560/2260/158 +f 1569/2262/159 1570/2330/160 1558/2263/160 +f 1562/2265/161 1563/2280/162 1551/2266/162 +f 1565/2268/163 1566/2331/164 1554/2269/164 +f 1556/2271/165 1568/2278/165 1569/2262/159 +f 1561/2272/166 1562/2265/161 1550/2267/161 +f 1564/2274/167 1565/2332/163 1553/2275/163 +f 1555/2277/168 1567/2281/168 1568/2278/165 +f 1548/2261/158 1560/2260/158 1561/2272/166 +f 1558/2263/160 1570/2330/160 1559/2279/157 +f 1563/2280/162 1564/2274/167 1552/2276/167 +f 1554/2269/164 1566/2331/164 1567/2281/168 +f 1477/2282/169 1489/2333/169 1490/2283/170 +f 1496/2285/171 1497/2293/172 1485/2286/172 +f 1481/2288/173 1493/2334/173 1494/2289/174 +f 1478/2284/170 1490/2283/170 1491/2291/175 +f 1497/2293/172 1498/2335/176 1486/2294/176 +f 1487/2295/177 1488/2302/178 1476/2296/178 +f 1482/2290/174 1494/2289/174 1495/2298/179 +f 1479/2292/175 1491/2291/175 1492/2300/180 +f 1486/2294/176 1498/2335/176 1487/2295/177 +f 1488/2302/178 1489/2333/169 1477/2282/169 +f 1495/2298/179 1496/2285/171 1484/2287/171 +f 1492/2300/180 1493/2336/173 1481/2303/173 +f 1530/2304/181 1542/2324/181 1543/2305/182 +f 1539/2307/183 1540/2318/184 1528/2308/184 +f 1534/2310/185 1546/2337/185 1535/2311/186 +f 1524/2313/187 1536/2338/187 1537/2314/188 +f 1531/2306/182 1543/2305/182 1544/2316/189 +f 1540/2318/184 1541/2339/190 1529/2319/190 +f 1537/2314/188 1538/2325/191 1526/2320/191 +f 1532/2317/189 1544/2316/189 1545/2321/192 +f 1529/2323/190 1541/2340/190 1542/2324/181 +f 1538/2325/191 1539/2307/183 1527/2309/183 +f 1545/2321/192 1546/2337/185 1534/2310/185 +f 1535/2311/186 1536/2338/187 1524/2313/187 diff --git a/src/main/resources/assets/hbm/models/armor/trenchmaster.obj b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj new file mode 100644 index 000000000..afb0242b7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj @@ -0,0 +1,3533 @@ +# Blender v2.79 (sub 0) OBJ File: 'trenchmaster_scaled.blend' +# www.blender.org +o LeftBoot +v 4.625000 24.299997 2.625000 +v -0.625000 24.299999 2.625000 +v 4.625000 24.299997 -2.625000 +v -0.625000 24.299999 -2.625000 +v 3.575000 24.299999 -3.675000 +v 0.425000 24.299999 -3.675000 +v 3.574999 22.199999 -3.675000 +v 0.424999 22.199999 -3.675000 +v 3.574999 21.149998 -2.625000 +v 0.424999 21.150000 -2.625000 +v 4.625000 22.199999 -2.625000 +v -0.625001 22.200001 -2.625000 +v -0.100001 20.100000 -2.100000 +v 4.099998 20.099998 -2.100000 +v -0.100001 20.100000 2.100000 +v 4.099998 20.099998 2.100000 +v 4.624999 20.099998 2.625000 +v -0.625001 20.100000 2.625000 +v 4.624999 20.099998 -2.625000 +v -0.625001 20.100000 -2.625000 +vt 0.250000 0.000000 +vt 0.000000 0.222222 +vt 0.000000 -0.000000 +vt 0.500000 0.000000 +vt 0.300000 0.044444 +vt 0.250000 0.000000 +vt 0.450000 0.044444 +vt 0.300000 0.133333 +vt 0.450000 0.133333 +vt 0.300000 0.177778 +vt 0.750000 0.400000 +vt 0.525000 0.422222 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.450000 0.177778 +vt 0.300000 0.355556 +vt 0.450000 0.355556 +vt 1.000000 0.400000 +vt 0.775000 0.422222 +vt 0.025000 0.422222 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 1.000000 0.222222 +vt 0.750000 0.222222 +vt 0.250000 0.222222 +vt 0.725000 0.422222 +vt 0.500000 0.222222 +vt 0.475000 0.422222 +vt 0.975000 0.422222 +vt 0.225000 0.422222 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5774 -0.5774 -0.5773 +vn -0.5773 -0.5773 -0.5774 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 3/4/1 6/5/1 4/6/1 +f 5/7/2 8/8/2 6/5/2 +f 7/9/3 10/10/3 8/8/3 +f 17/11/4 14/12/4 19/13/4 +f 17/11/5 19/13/5 11/14/5 +f 19/13/4 13/15/4 20/16/4 +f 11/17/6 5/7/6 3/18/6 +f 6/5/7 12/19/7 4/20/7 +f 9/21/8 7/9/8 11/17/8 +f 10/22/2 9/23/2 19/13/2 +f 8/8/9 10/10/9 12/19/9 +f 18/24/4 16/25/4 17/11/4 +f 20/16/4 15/26/4 18/27/4 +f 2/2/10 12/28/10 18/27/10 +f 2/29/11 17/11/11 1/30/11 +f 3/1/1 4/31/1 2/2/1 +f 3/4/1 5/7/1 6/5/1 +f 5/7/2 7/9/2 8/8/2 +f 7/9/3 9/21/3 10/10/3 +f 17/11/4 16/32/4 14/12/4 +f 3/33/5 1/30/5 11/14/5 +f 1/30/5 17/11/5 11/14/5 +f 19/13/4 14/34/4 13/15/4 +f 11/17/6 7/9/6 5/7/6 +f 6/5/7 8/8/7 12/19/7 +f 20/16/2 12/28/2 10/22/2 +f 9/23/2 11/14/2 19/13/2 +f 20/16/2 10/22/2 19/13/2 +f 18/24/4 15/35/4 16/25/4 +f 20/16/4 13/36/4 15/26/4 +f 4/31/10 12/28/10 2/2/10 +f 12/28/10 20/16/10 18/27/10 +f 2/29/11 18/24/11 17/11/11 +o RightBoot +v -4.625000 24.300001 2.625000 +v 0.625000 24.299999 2.625000 +v -4.625000 24.300001 -2.625000 +v 0.625000 24.299999 -2.625000 +v -3.575000 24.300001 -3.675000 +v -0.425000 24.299999 -3.675000 +v -3.575000 22.200001 -3.675000 +v -0.425001 22.200001 -3.675000 +v -3.575001 21.150002 -2.625000 +v -0.425001 21.150000 -2.625000 +v -4.625000 22.200001 -2.625000 +v 0.624999 22.199999 -2.625000 +v 0.099999 20.100000 -2.100000 +v -4.100001 20.100002 -2.100000 +v 0.099999 20.100000 2.100000 +v -4.100001 20.100002 2.100000 +v -4.625001 20.100002 2.625000 +v 0.624999 20.100000 2.625000 +v -4.625001 20.100002 -2.625000 +v 0.624999 20.100000 -2.625000 +vt 0.000000 0.222222 +vt 0.250000 0.000000 +vt 0.000000 -0.000000 +vt 0.300000 0.044444 +vt 0.500000 0.000000 +vt 0.250000 0.000000 +vt 0.300000 0.133333 +vt 0.450000 0.044444 +vt 0.300000 0.177778 +vt 0.450000 0.133333 +vt 0.525000 0.422222 +vt 0.750000 0.400000 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.450000 0.177778 +vt 0.450000 0.355556 +vt 0.300000 0.355556 +vt 0.775000 0.422222 +vt 1.000000 0.400000 +vt 0.025000 0.422222 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 0.750000 0.222222 +vt 1.000000 0.222222 +vt 0.250000 0.222222 +vt 0.725000 0.422222 +vt 0.500000 0.222222 +vt 0.475000 0.422222 +vt 0.975000 0.422222 +vt 0.225000 0.422222 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.5773 -0.5774 -0.5774 +vn 0.5773 -0.5773 -0.5774 +vn 1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 22/37/12 23/38/12 21/39/12 +f 26/40/12 23/41/12 24/42/12 +f 28/43/13 25/44/13 26/40/13 +f 30/45/14 27/46/14 28/43/14 +f 34/47/15 37/48/15 39/49/15 +f 31/50/16 39/49/16 37/48/16 +f 33/51/15 39/49/15 40/52/15 +f 25/44/17 31/53/17 23/54/17 +f 32/55/18 26/40/18 24/56/18 +f 29/57/19 31/53/19 27/46/19 +f 29/58/13 30/59/13 40/52/13 +f 28/43/20 32/55/20 30/45/20 +f 36/60/15 38/61/15 37/48/15 +f 35/62/15 40/52/15 38/63/15 +f 38/63/21 32/64/21 22/37/21 +f 21/65/22 38/61/22 22/66/22 +f 22/37/12 24/67/12 23/38/12 +f 26/40/12 25/44/12 23/41/12 +f 28/43/13 27/46/13 25/44/13 +f 30/45/14 29/57/14 27/46/14 +f 34/47/15 36/68/15 37/48/15 +f 37/48/16 21/65/16 31/50/16 +f 21/65/16 23/69/16 31/50/16 +f 33/51/15 34/70/15 39/49/15 +f 25/44/17 27/46/17 31/53/17 +f 32/55/18 28/43/18 26/40/18 +f 39/49/13 31/50/13 29/58/13 +f 30/59/13 32/64/13 40/52/13 +f 39/49/13 29/58/13 40/52/13 +f 36/60/15 35/71/15 38/61/15 +f 35/62/15 33/72/15 40/52/15 +f 40/52/21 32/64/21 38/63/21 +f 32/64/21 24/67/21 22/37/21 +f 21/65/22 37/48/22 38/61/22 +o Light +v 2.099990 -5.575001 -5.250000 +v 3.463980 -4.787502 -5.250000 +v 3.463981 -3.212502 -5.250000 +v 2.099991 -2.424999 -5.250000 +v 0.736001 -3.212500 -5.250000 +v 0.736001 -4.787500 -5.250000 +v -2.100009 -5.575001 -5.250000 +v -0.736019 -4.787500 -5.250000 +v -0.736019 -3.212500 -5.250000 +v -2.100008 -2.424999 -5.250000 +v -3.463999 -3.212498 -5.250000 +v -3.463999 -4.787498 -5.250000 +v 1.574989 -10.825001 -7.349999 +v 1.574990 -7.674999 -7.349999 +v -1.575010 -7.674999 -7.349999 +v -1.575011 -10.825001 -7.349999 +v 1.049989 -10.299999 -7.875000 +v 1.049989 -8.200001 -7.875000 +v -1.050010 -8.200001 -7.875000 +v -1.050011 -10.299999 -7.875000 +vt 0.770035 0.472036 +vt 0.770035 0.411685 +vt 0.859930 0.441860 +vt 0.770035 0.411685 +vt 0.829965 0.411685 +vt 0.859930 0.441860 +vt 0.320000 0.372093 +vt 0.420000 0.360465 +vt 0.440000 0.372093 +vt 0.340000 0.313953 +vt 0.420000 0.313953 +vt 0.440000 0.302326 +vt 0.320000 0.302326 +vt 0.340000 0.360465 +vt 0.829965 0.472036 +vt 0.740070 0.441860 +vt 0.829965 0.411685 +vt 0.829965 0.472036 +vt 0.770035 0.472036 +vt 0.740070 0.441860 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 41/73/23 45/74/23 43/75/23 +f 51/76/23 50/77/23 49/78/23 +f 56/79/24 57/80/24 53/81/24 +f 57/80/23 59/82/23 58/83/23 +f 53/81/25 58/83/25 54/84/25 +f 54/84/26 59/82/26 55/85/26 +f 55/85/27 60/86/27 56/79/27 +f 43/75/23 42/87/23 41/73/23 +f 41/73/23 46/88/23 45/74/23 +f 45/74/23 44/89/23 43/75/23 +f 49/78/23 48/90/23 51/76/23 +f 48/90/23 47/91/23 51/76/23 +f 47/91/23 52/92/23 51/76/23 +f 56/79/24 60/86/24 57/80/24 +f 57/80/23 60/86/23 59/82/23 +f 53/81/25 57/80/25 58/83/25 +f 54/84/26 58/83/26 59/82/26 +f 55/85/27 59/82/27 60/86/27 +o RightLeg +v -4.100004 11.700002 2.100000 +v 0.099996 11.700001 2.100000 +v -4.100004 11.700002 -2.100000 +v 0.099996 11.700001 -2.100000 +v 0.099999 20.100000 -2.100000 +v -4.100001 20.100002 -2.100000 +v 0.099999 20.100000 2.100000 +v -4.100001 20.100002 2.100000 +v -4.100001 19.050001 2.100000 +v 0.099998 19.049999 2.100000 +v -4.100001 19.050001 -2.100000 +v 0.099998 19.049999 -2.100000 +v -4.625001 19.050001 2.625000 +v 0.624998 19.049999 2.625000 +v -4.625001 19.050001 -2.625000 +v 0.624998 19.049999 -2.625000 +v -4.625003 15.900002 2.625000 +v 0.624997 15.900000 2.625000 +v -4.625003 15.900002 -2.625000 +v 0.624997 15.900000 -2.625000 +v -4.100003 15.900001 2.100000 +v 0.099997 15.900000 2.100000 +v -4.100003 15.900001 -2.100000 +v 0.099997 15.900000 -2.100000 +vt 0.225000 1.000000 +vt 0.025000 0.822222 +vt 0.025000 1.000000 +vt 0.525000 0.422222 +vt 0.725000 0.466667 +vt 0.725000 0.422222 +vt 0.275000 0.422222 +vt 0.475000 0.466667 +vt 0.475000 0.422222 +vt 0.025000 0.422222 +vt 0.225000 0.466667 +vt 0.225000 0.422222 +vt 0.750000 0.488889 +vt 0.975000 0.466667 +vt 0.775000 0.466667 +vt 0.000000 0.488889 +vt 0.025000 0.466667 +vt 0.250000 0.488889 +vt 0.275000 0.466667 +vt 0.500000 0.488889 +vt 0.525000 0.466667 +vt 0.750000 0.622222 +vt 1.000000 0.488889 +vt 0.500000 0.622222 +vt 0.250000 0.622222 +vt 0.000000 0.622222 +vt 0.525000 0.644444 +vt 0.275000 0.644444 +vt 0.025000 0.644444 +vt 0.975000 0.644444 +vt 1.000000 0.622222 +vt 0.975000 0.822222 +vt 0.775000 0.644444 +vt 0.775000 0.822222 +vt 0.725000 0.644444 +vt 0.525000 0.822222 +vt 0.725000 0.822222 +vt 0.475000 0.644444 +vt 0.275000 0.822222 +vt 0.475000 0.822222 +vt 0.225000 0.644444 +vt 0.225000 0.822222 +vt 0.775000 0.422222 +vt 0.975000 0.422222 +vn -0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 63/93/28 62/94/28 61/95/28 +f 66/96/29 69/97/29 68/98/29 +f 65/99/30 71/100/30 66/101/30 +f 67/102/31 72/103/31 65/104/31 +f 73/105/32 70/106/32 69/107/32 +f 74/108/32 72/103/32 70/109/32 +f 76/110/32 71/100/32 72/111/32 +f 75/112/32 69/97/32 71/113/32 +f 77/114/33 74/115/33 73/105/33 +f 79/116/29 73/105/29 75/112/29 +f 80/117/30 75/112/30 76/110/30 +f 78/118/31 76/110/31 74/108/31 +f 83/119/28 77/114/28 79/116/28 +f 84/120/28 79/116/28 80/117/28 +f 82/121/28 80/117/28 78/118/28 +f 77/114/28 82/122/28 78/123/28 +f 62/124/33 81/125/33 61/126/33 +f 81/127/29 63/128/29 61/129/29 +f 83/130/30 64/131/30 63/132/30 +f 84/133/31 62/94/31 64/134/31 +f 68/135/33 70/106/33 67/136/33 +f 63/93/28 64/134/28 62/94/28 +f 66/96/29 71/113/29 69/97/29 +f 65/99/30 72/111/30 71/100/30 +f 67/102/31 70/109/31 72/103/31 +f 73/105/32 74/115/32 70/106/32 +f 74/108/32 76/110/32 72/103/32 +f 76/110/32 75/112/32 71/100/32 +f 75/112/32 73/105/32 69/97/32 +f 77/114/33 78/123/33 74/115/33 +f 79/116/29 77/114/29 73/105/29 +f 80/117/30 79/116/30 75/112/30 +f 78/118/31 80/117/31 76/110/31 +f 83/119/28 81/127/28 77/114/28 +f 84/120/28 83/130/28 79/116/28 +f 82/121/28 84/133/28 80/117/28 +f 77/114/28 81/125/28 82/122/28 +f 62/124/33 82/122/33 81/125/33 +f 81/127/29 83/119/29 63/128/29 +f 83/130/30 84/120/30 64/131/30 +f 84/133/31 82/121/31 62/94/31 +f 68/135/33 69/107/33 70/106/33 +o LeftLeg +v 4.099996 11.700000 2.100000 +v -0.100004 11.700001 2.100000 +v 4.099996 11.700000 -2.100000 +v -0.100004 11.700001 -2.100000 +v -0.100001 20.100000 -2.100000 +v 4.099998 20.099998 -2.100000 +v -0.100001 20.100000 2.100000 +v 4.099998 20.099998 2.100000 +v 4.099998 19.049999 2.100000 +v -0.100002 19.049999 2.100000 +v 4.099998 19.049999 -2.100000 +v -0.100002 19.049999 -2.100000 +v 4.624999 19.049999 2.625000 +v -0.625002 19.049999 2.625000 +v 4.624999 19.049999 -2.625000 +v -0.625002 19.049999 -2.625000 +v 4.624997 15.899998 2.625000 +v -0.625003 15.900000 2.625000 +v 4.624997 15.899998 -2.625000 +v -0.625003 15.900000 -2.625000 +v 4.099997 15.899999 2.100000 +v -0.100003 15.900000 2.100000 +v 4.099997 15.899999 -2.100000 +v -0.100003 15.900000 -2.100000 +vt 0.025000 0.822222 +vt 0.225000 1.000000 +vt 0.025000 1.000000 +vt 0.725000 0.466667 +vt 0.525000 0.422222 +vt 0.725000 0.422222 +vt 0.475000 0.466667 +vt 0.275000 0.422222 +vt 0.475000 0.422222 +vt 0.225000 0.466667 +vt 0.025000 0.422222 +vt 0.225000 0.422222 +vt 0.975000 0.466667 +vt 0.750000 0.488889 +vt 0.775000 0.466667 +vt 0.000000 0.488889 +vt 0.025000 0.466667 +vt 0.250000 0.488889 +vt 0.275000 0.466667 +vt 0.500000 0.488889 +vt 0.525000 0.466667 +vt 1.000000 0.622222 +vt 0.750000 0.622222 +vt 0.500000 0.622222 +vt 0.250000 0.622222 +vt 0.000000 0.622222 +vt 0.525000 0.644444 +vt 0.275000 0.644444 +vt 0.025000 0.644444 +vt 0.775000 0.644444 +vt 0.775000 0.822222 +vt 0.975000 0.644444 +vt 0.975000 0.822222 +vt 0.525000 0.822222 +vt 0.725000 0.644444 +vt 0.725000 0.822222 +vt 0.275000 0.822222 +vt 0.475000 0.644444 +vt 0.475000 0.822222 +vt 0.225000 0.644444 +vt 0.225000 0.822222 +vt 0.775000 0.422222 +vt 0.975000 0.422222 +vt 1.000000 0.488889 +vn -0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 86/137/34 87/138/34 85/139/34 +f 93/140/35 90/141/35 92/142/35 +f 95/143/36 89/144/36 90/145/36 +f 96/146/37 91/147/37 89/148/37 +f 94/149/38 97/150/38 93/151/38 +f 96/146/38 98/152/38 94/153/38 +f 95/143/38 100/154/38 96/155/38 +f 93/140/38 99/156/38 95/157/38 +f 97/150/39 102/158/39 101/159/39 +f 97/150/35 103/160/35 99/156/35 +f 99/156/36 104/161/36 100/154/36 +f 100/154/37 102/162/37 98/152/37 +f 101/159/34 107/163/34 103/160/34 +f 103/160/34 108/164/34 104/161/34 +f 104/161/34 106/165/34 102/162/34 +f 102/158/34 105/166/34 101/159/34 +f 85/167/39 106/168/39 86/169/39 +f 87/170/35 105/171/35 85/172/35 +f 88/173/36 107/174/36 87/175/36 +f 86/137/37 108/176/37 88/177/37 +f 94/149/39 92/178/39 91/179/39 +f 86/137/34 88/177/34 87/138/34 +f 93/140/35 95/157/35 90/141/35 +f 95/143/36 96/155/36 89/144/36 +f 96/146/37 94/153/37 91/147/37 +f 94/149/38 98/180/38 97/150/38 +f 96/146/38 100/154/38 98/152/38 +f 95/143/38 99/156/38 100/154/38 +f 93/140/38 97/150/38 99/156/38 +f 97/150/39 98/180/39 102/158/39 +f 97/150/35 101/159/35 103/160/35 +f 99/156/36 103/160/36 104/161/36 +f 100/154/37 104/161/37 102/162/37 +f 101/159/34 105/171/34 107/163/34 +f 103/160/34 107/174/34 108/164/34 +f 104/161/34 108/176/34 106/165/34 +f 102/158/34 106/168/34 105/166/34 +f 85/167/39 105/166/39 106/168/39 +f 87/170/35 107/163/35 105/171/35 +f 88/173/36 108/164/36 107/174/36 +f 86/137/37 106/165/37 108/176/37 +f 94/149/39 93/151/39 92/178/39 +o RightArm +v -8.625008 1.275002 0.525000 +v -8.625007 2.325003 0.525000 +v -8.625008 1.275002 -0.525000 +v -8.625007 2.325003 -0.525000 +v -9.150007 1.275003 -0.525000 +v -9.150007 1.275003 0.525000 +v -9.150006 2.325005 0.525000 +v -9.150006 2.325005 -0.525000 +v -9.150007 1.800003 -1.050000 +v -9.150007 1.057541 -0.742462 +v -9.150007 0.750004 0.000000 +v -9.150007 1.057541 0.742462 +v -9.150007 1.800003 1.050000 +v -9.150006 2.542467 0.742462 +v -9.150006 2.850004 -0.000000 +v -9.150006 2.542467 -0.742462 +v -9.412508 1.057541 -0.742462 +v -9.412508 1.800003 -1.050000 +v -9.412508 0.750004 0.000000 +v -9.412508 1.057541 0.742462 +v -9.412508 1.800003 1.050000 +v -9.412507 2.542467 0.742462 +v -9.412507 2.850004 -0.000000 +v -9.412507 2.542467 -0.742462 +v -8.625008 1.537502 0.525000 +v -8.625007 2.062502 0.525000 +v -8.625008 1.537502 2.625000 +v -8.625007 2.062502 2.625000 +v -8.887507 1.537504 0.525000 +v -8.887506 2.062504 0.525000 +v -8.887507 1.537504 2.625000 +v -8.887506 2.062504 2.625000 +v -8.887507 0.750004 0.525000 +v -8.887506 2.850004 0.525000 +v -8.887507 0.750004 -0.525000 +v -8.887506 2.850004 -0.525000 +v -8.625008 0.225002 0.525000 +v -8.625008 0.225002 -0.525000 +v -8.625007 3.375002 0.525000 +v -8.625007 3.375002 -0.525000 +v -8.100007 3.900002 2.100000 +v -8.100007 3.900002 -2.100000 +v -3.900007 3.900002 -2.100000 +v -3.900007 3.900002 2.100000 +v -3.375006 3.900002 -2.625000 +v -3.375006 3.900002 2.625000 +v -8.625007 3.900002 -2.625000 +v -8.625007 3.900002 2.625000 +v -3.375008 -0.299997 -2.625000 +v -3.375008 -0.299997 2.625000 +v -8.625008 -0.299997 -2.625000 +v -8.625008 -0.299997 2.625000 +v -4.950008 -2.399998 -2.625000 +v -4.950008 -2.399998 2.625000 +v -8.100006 6.000002 2.100000 +v -3.900006 6.000002 2.100000 +v -3.900006 6.000002 -2.100000 +v -8.100006 6.000002 -2.100000 +v -8.625006 6.000002 -2.625000 +v -8.625006 6.000002 2.625000 +v -3.375006 6.000002 -2.625000 +v -3.375006 6.000002 2.625000 +v -8.625005 10.200003 -2.625000 +v -8.625005 10.200003 2.625000 +v -3.375005 10.200001 -2.625000 +v -3.375005 10.200001 2.625000 +v -3.900005 10.200001 2.100000 +v -3.900005 10.200001 -2.100000 +v -8.100005 10.200003 -2.100000 +v -8.100005 10.200003 2.100000 +v -3.900004 11.250001 -2.100000 +v -3.900004 11.250001 2.100000 +v -8.100004 11.250003 -2.100000 +v -8.100004 11.250003 2.100000 +v -3.375004 11.250001 -2.625000 +v -3.375004 11.250001 2.625000 +v -8.625004 11.250003 -2.625000 +v -8.625004 11.250003 2.625000 +v -3.375004 13.350000 -2.625000 +v -3.375004 13.350000 2.625000 +v -8.100004 13.350002 -2.625000 +v -8.100004 13.350002 2.625000 +v -8.625009 -2.399998 0.525000 +v -5.475008 -2.399998 0.525000 +v -8.625009 -2.399998 -0.525000 +v -5.475008 -2.399998 -0.525000 +v -7.575008 -0.299997 -0.525000 +v -7.575008 -0.299997 0.525000 +v -5.475008 -0.299997 0.525000 +v -5.475008 -0.299997 -0.525000 +vt 0.650000 0.827586 +vt 0.700000 0.810345 +vt 0.700000 0.827586 +vt 0.725000 0.810345 +vt 0.700000 0.844828 +vt 0.700000 0.810345 +vt 0.725000 0.913793 +vt 0.700000 0.879310 +vt 0.725000 0.879310 +vt 0.725000 0.948276 +vt 0.700000 0.913793 +vt 0.725000 0.844828 +vt 0.601300 0.034483 +vt 0.650000 0.000897 +vt 0.698699 0.034483 +vt 0.476300 0.034483 +vt 0.525000 0.000897 +vt 0.573700 0.034483 +vt 0.575000 0.034483 +vt 0.600000 0.017241 +vt 0.600000 0.034483 +vt 0.575000 0.051724 +vt 0.600000 0.068966 +vt 0.575000 0.068966 +vt 0.575000 0.086207 +vt 0.600000 0.103448 +vt 0.575000 0.103448 +vt 0.600000 0.120690 +vt 0.575000 0.120690 +vt 0.575000 -0.000000 +vt 0.575000 0.017241 +vt 0.600000 0.051724 +vt 0.600000 0.086207 +vt 0.600000 0.137931 +vt 0.575000 0.137931 +vt 0.700000 0.896552 +vt 0.650000 0.913793 +vt 0.650000 0.896552 +vt 0.775000 0.810345 +vt 0.750000 0.879310 +vt 0.750000 0.810345 +vt 0.725000 0.810345 +vt 0.725000 0.879310 +vt 0.800000 0.879310 +vt 0.800000 0.810345 +vt 0.750000 0.896552 +vt 0.775000 0.879310 +vt 0.775000 0.896552 +vt 0.750000 0.448276 +vt 0.525000 0.465517 +vt 0.725000 0.465517 +vt 0.250000 0.551724 +vt 0.025000 0.534483 +vt -0.000000 0.551724 +vt 0.975000 0.534483 +vt 0.750000 0.551724 +vt 1.000000 0.551724 +vt 0.525000 0.534483 +vt 0.500000 0.551724 +vt 0.725000 0.534483 +vt 0.475000 0.534483 +vt 0.250000 0.689655 +vt 0.325000 0.758621 +vt 0.500000 0.689655 +vt -0.000000 0.689655 +vt 0.750000 0.689655 +vt 1.000000 0.689655 +vt 0.925000 0.758621 +vt -0.000000 0.758621 +vt 0.750000 0.810345 +vt 0.475000 0.465517 +vt 0.275000 0.534483 +vt 0.775000 0.465517 +vt 0.775000 0.534483 +vt 0.225000 0.465517 +vt 0.225000 0.534483 +vt 0.250000 0.310345 +vt 0.000000 0.448276 +vt 0.250000 0.448276 +vt 0.025000 0.465517 +vt 0.975000 0.465517 +vt 0.500000 0.448276 +vt 0.275000 0.465517 +vt 0.475000 0.293103 +vt 0.500000 0.310345 +vt 1.000000 0.448276 +vt 0.750000 0.310345 +vt 0.975000 0.258621 +vt 0.775000 0.293103 +vt 0.975000 0.293103 +vt 0.525000 0.293103 +vt 1.000000 0.310345 +vt 0.025000 0.293103 +vt -0.000000 0.310345 +vt 0.750000 0.241379 +vt 0.525000 0.258621 +vt 0.725000 0.258621 +vt 0.725000 0.293103 +vt 0.275000 0.258621 +vt 0.275000 0.293103 +vt 0.225000 0.258621 +vt 0.225000 0.293103 +vt 0.475000 0.172414 +vt 0.250000 0.241379 +vt 0.500000 0.241379 +vt 0.475000 0.258621 +vt 0.025000 0.258621 +vt 0.775000 0.258621 +vt 0.250000 -0.000000 +vt 0.250000 0.172414 +vt -0.000000 0.241379 +vt 1.000000 0.241379 +vt 0.775000 0.172414 +vt 0.750000 0.172414 +vt 0.150000 0.931035 +vt 0.100000 0.827586 +vt 0.100000 0.931035 +vt 0.250000 0.896552 +vt 0.150000 0.827586 +vt 0.000000 0.896552 +vt 0.150000 0.758621 +vt 0.100000 1.000000 +vt 0.650000 0.810345 +vt 0.700000 0.948276 +vt 0.650000 0.068069 +vt 0.615564 0.058232 +vt 0.615564 0.010734 +vt 0.684436 0.010734 +vt 0.684436 0.058232 +vt 0.559436 0.058232 +vt 0.525000 0.068069 +vt 0.490564 0.058232 +vt 0.490564 0.010734 +vt 0.559436 0.010734 +vt 0.600000 -0.000000 +vt 0.700000 0.913793 +vt 0.250000 0.758621 +vt 0.500000 0.810345 +vt 0.475000 0.000000 +vt -0.000000 0.172414 +vt 1.000000 0.172414 +vt 0.500000 0.172414 +vt 0.250000 0.827586 +vt 0.000000 0.827586 +vt 0.100000 0.758621 +vt 0.150000 1.000000 +vn -0.8944 0.4472 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.3827 0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.9239 -0.3827 +vn -0.8944 -0.4472 0.0000 +vn 0.8000 -0.6000 0.0000 +vn -0.4961 -0.8682 0.0000 +vn -0.9701 0.2425 0.0000 +s off +f 142/181/40 148/182/40 144/183/40 +f 112/184/41 113/185/41 116/186/41 +f 110/187/42 114/188/42 109/189/42 +f 112/190/43 115/191/43 110/187/43 +f 109/189/44 113/185/44 111/192/44 +f 117/193/45 123/194/45 121/195/45 +f 129/196/46 131/197/46 126/198/46 +f 121/199/47 130/200/47 129/201/47 +f 120/202/48 127/203/48 119/204/48 +f 118/205/49 126/206/49 117/207/49 +f 117/207/50 132/208/50 124/209/50 +f 123/210/51 130/200/51 122/211/51 +f 121/199/52 128/212/52 120/202/52 +f 119/204/53 125/213/53 118/205/53 +f 124/209/54 131/214/54 123/215/54 +f 143/216/55 145/217/55 141/218/55 +f 137/219/46 140/220/46 138/221/46 +f 134/222/43 140/220/43 136/223/43 +f 142/181/46 143/216/46 141/218/46 +f 135/224/44 137/219/44 133/225/44 +f 136/226/42 139/227/42 135/228/42 +f 168/229/44 166/230/44 163/231/44 +f 153/232/43 152/233/43 154/234/43 +f 152/235/43 156/236/43 154/237/43 +f 156/236/43 150/238/43 155/239/43 +f 163/231/46 150/238/46 149/240/46 +f 150/241/43 153/232/43 155/239/43 +f 157/242/41 161/243/41 159/244/41 +f 157/242/41 155/239/41 153/232/41 +f 158/245/45 153/232/45 154/234/45 +f 160/246/42 154/237/42 156/236/42 +f 159/244/46 156/236/46 155/239/46 +f 158/247/42 160/246/42 162/248/42 +f 162/249/56 157/242/56 158/245/56 +f 159/244/57 162/250/57 160/246/57 +f 166/251/41 151/252/41 150/241/41 +f 152/235/42 163/253/42 149/254/42 +f 165/255/45 152/233/45 151/256/45 +f 173/257/45 170/258/45 169/259/45 +f 169/259/44 164/260/44 165/255/44 +f 164/261/44 168/229/44 163/253/44 +f 167/262/44 165/263/44 166/251/44 +f 177/264/43 173/257/43 171/265/43 +f 167/262/41 173/257/41 169/259/41 +f 170/266/42 172/267/42 168/229/42 +f 172/267/46 167/262/46 168/229/46 +f 180/268/42 178/269/42 175/270/42 +f 172/267/43 177/271/43 171/265/43 +f 174/272/43 178/269/43 172/267/43 +f 173/257/43 175/273/43 174/274/43 +f 186/275/44 181/276/44 182/277/44 +f 182/277/46 177/271/46 178/278/46 +f 177/264/41 179/279/41 176/280/41 +f 179/281/45 175/273/45 176/282/45 +f 189/283/41 183/284/41 185/285/41 +f 185/285/44 179/279/44 181/286/44 +f 183/284/44 180/287/44 179/281/44 +f 180/268/44 186/275/44 182/288/44 +f 189/283/43 188/289/43 187/290/43 +f 187/290/45 184/291/45 183/284/45 +f 184/292/42 190/293/42 186/275/42 +f 190/294/58 185/285/58 186/275/58 +f 193/295/44 192/296/44 191/297/44 +f 195/298/41 194/299/41 193/295/41 +f 192/296/42 196/300/42 191/297/42 +f 198/301/45 192/296/45 194/299/45 +f 196/302/40 193/295/40 191/297/40 +f 142/181/40 147/303/40 148/182/40 +f 112/184/41 111/192/41 113/185/41 +f 110/187/42 115/191/42 114/188/42 +f 112/190/43 116/304/43 115/191/43 +f 109/189/44 114/188/44 113/185/44 +f 119/305/45 118/306/45 117/193/45 +f 117/193/45 124/307/45 123/194/45 +f 123/194/45 122/308/45 121/195/45 +f 121/195/45 120/309/45 119/305/45 +f 119/305/45 117/193/45 121/195/45 +f 126/198/46 125/310/46 127/311/46 +f 127/311/46 128/312/46 129/196/46 +f 129/196/46 130/313/46 131/197/46 +f 131/197/46 132/314/46 126/198/46 +f 126/198/46 127/311/46 129/196/46 +f 121/199/47 122/211/47 130/200/47 +f 120/202/48 128/212/48 127/203/48 +f 118/205/49 125/213/49 126/206/49 +f 117/207/50 126/206/50 132/208/50 +f 123/210/51 131/315/51 130/200/51 +f 121/199/52 129/201/52 128/212/52 +f 119/204/53 127/203/53 125/213/53 +f 124/209/54 132/208/54 131/214/54 +f 143/216/55 146/316/55 145/217/55 +f 137/219/46 139/227/46 140/220/46 +f 134/222/43 138/221/43 140/220/43 +f 142/181/46 144/183/46 143/216/46 +f 135/224/44 139/227/44 137/219/44 +f 136/226/42 140/220/42 139/227/42 +f 168/229/44 167/262/44 166/230/44 +f 153/232/43 151/256/43 152/233/43 +f 152/235/43 149/254/43 156/236/43 +f 156/236/43 149/240/43 150/238/43 +f 163/231/46 166/230/46 150/238/46 +f 150/241/43 151/252/43 153/232/43 +f 157/242/41 159/244/41 155/239/41 +f 158/245/45 157/242/45 153/232/45 +f 160/246/42 158/247/42 154/237/42 +f 159/244/46 160/246/46 156/236/46 +f 162/249/56 161/317/56 157/242/56 +f 159/244/57 161/318/57 162/250/57 +f 166/251/41 165/263/41 151/252/41 +f 152/235/42 164/261/42 163/253/42 +f 165/255/45 164/260/45 152/233/45 +f 173/257/45 174/274/45 170/258/45 +f 169/259/44 170/258/44 164/260/44 +f 164/261/44 170/266/44 168/229/44 +f 167/262/44 169/259/44 165/263/44 +f 177/264/43 176/280/43 173/257/43 +f 167/262/41 171/265/41 173/257/41 +f 170/266/42 174/272/42 172/267/42 +f 172/267/46 171/265/46 167/262/46 +f 180/268/42 182/288/42 178/269/42 +f 172/267/43 178/278/43 177/271/43 +f 174/272/43 175/270/43 178/269/43 +f 173/257/43 176/282/43 175/273/43 +f 186/275/44 185/285/44 181/276/44 +f 182/277/46 181/276/46 177/271/46 +f 177/264/41 181/286/41 179/279/41 +f 179/281/45 180/287/45 175/273/45 +f 189/283/41 187/290/41 183/284/41 +f 185/285/44 183/284/44 179/279/44 +f 183/284/44 184/291/44 180/287/44 +f 180/268/44 184/292/44 186/275/44 +f 189/283/43 190/319/43 188/289/43 +f 187/290/45 188/320/45 184/291/45 +f 184/292/42 188/321/42 190/293/42 +f 190/294/58 189/322/58 185/285/58 +f 193/295/44 194/299/44 192/296/44 +f 195/298/41 198/323/41 194/299/41 +f 192/296/42 197/324/42 196/300/42 +f 198/301/45 197/325/45 192/296/45 +f 196/302/40 195/326/40 193/295/40 +o LeftArm +v 8.099994 3.899998 2.100000 +v 8.099994 3.899998 -2.100000 +v 3.899994 3.899998 -2.100000 +v 3.899994 3.899998 2.100000 +v 3.374994 3.899998 -2.625000 +v 3.374994 3.899998 2.625000 +v 8.624993 3.899998 -2.625000 +v 8.624993 3.899998 2.625000 +v 3.374992 -0.300001 -2.625000 +v 3.374992 -0.300001 2.625000 +v 8.624992 -0.300001 -2.625000 +v 8.624992 -0.300001 2.625000 +v 4.949991 -2.400002 -2.625000 +v 4.949991 -2.400002 2.625000 +v 8.099995 5.999998 2.100000 +v 3.899994 5.999998 2.100000 +v 3.899994 5.999998 -2.100000 +v 8.099995 5.999998 -2.100000 +v 8.624994 5.999998 -2.625000 +v 8.624994 5.999998 2.625000 +v 3.374994 5.999998 -2.625000 +v 3.374994 5.999998 2.625000 +v 8.624995 10.199997 -2.625000 +v 8.624995 10.199997 2.625000 +v 3.374995 10.199999 -2.625000 +v 3.374995 10.199999 2.625000 +v 3.899996 10.199999 2.100000 +v 3.899996 10.199999 -2.100000 +v 8.099996 10.199997 -2.100000 +v 8.099996 10.199997 2.100000 +v 3.899996 11.249999 -2.100000 +v 3.899996 11.249999 2.100000 +v 8.099997 11.249997 -2.100000 +v 8.099997 11.249997 2.100000 +v 3.374996 11.249999 -2.625000 +v 3.374996 11.249999 2.625000 +v 8.624996 11.249997 -2.625000 +v 8.624996 11.249997 2.625000 +v 3.374996 13.349998 -2.625000 +v 3.374996 13.349998 2.625000 +v 8.099997 13.349997 -2.625000 +v 8.099997 13.349997 2.625000 +v 9.149992 1.274996 1.575000 +v 9.149993 2.324997 1.575000 +v 9.149992 1.274996 -0.525000 +v 9.149993 2.324997 -0.525000 +v 8.624992 0.224998 1.575000 +v 8.624993 3.374998 1.575000 +v 8.624992 0.224998 -0.525000 +v 8.624993 3.374998 -0.525000 +v 8.756243 1.274998 3.150000 +v 8.756244 2.324999 2.100000 +v 8.756243 1.274998 -1.050000 +v 8.756244 2.324999 -1.050000 +v 9.018743 1.274996 -1.050000 +v 9.018743 1.274996 3.150000 +v 9.018744 2.324997 2.100000 +v 9.018744 2.324997 -1.050000 +v 8.624992 1.012499 -1.050000 +v 8.624993 2.587498 -1.050000 +v 9.149992 1.012497 -1.050000 +v 9.149993 2.587496 -1.050000 +v 8.624993 2.587498 -1.575000 +v 8.624992 1.012499 -1.575000 +v 9.149993 2.587496 -1.575000 +v 9.149992 1.012497 -1.575000 +v 9.149993 2.062496 -1.575000 +v 8.624993 2.062498 -1.575000 +v 9.149992 1.537497 -1.575000 +v 8.624992 1.537498 -1.575000 +v 9.149992 1.537497 -2.625000 +v 9.149993 2.062496 -2.625000 +v 8.624993 2.062498 -2.625000 +v 8.624992 1.537498 -2.625000 +v 8.624991 -2.400002 0.525000 +v 5.474991 -2.400002 0.525000 +v 8.624991 -2.400002 -0.525000 +v 5.474991 -2.400002 -0.525000 +v 7.574992 -0.300001 -0.525000 +v 7.574992 -0.300001 0.525000 +v 5.474992 -0.300001 0.525000 +v 5.474992 -0.300001 -0.525000 +vt 0.525000 0.465517 +vt 0.750000 0.448276 +vt 0.725000 0.465517 +vt 0.025000 0.534483 +vt 0.250000 0.551724 +vt -0.000000 0.551724 +vt 0.750000 0.551724 +vt 0.975000 0.534483 +vt 1.000000 0.551724 +vt 0.500000 0.551724 +vt 0.725000 0.534483 +vt 0.525000 0.534483 +vt 0.275000 0.534483 +vt 0.475000 0.534483 +vt 0.250000 0.689655 +vt 0.500000 0.689655 +vt 0.325000 0.758621 +vt -0.000000 0.689655 +vt 0.750000 0.689655 +vt 1.000000 0.689655 +vt 0.925000 0.758621 +vt -0.000000 0.758621 +vt 0.750000 0.810345 +vt 0.275000 0.465517 +vt 0.475000 0.465517 +vt 0.775000 0.534483 +vt 0.975000 0.465517 +vt 0.225000 0.465517 +vt 0.225000 0.534483 +vt 0.000000 0.448276 +vt 0.250000 0.310345 +vt 0.250000 0.448276 +vt 0.025000 0.465517 +vt 1.000000 0.448276 +vt 0.500000 0.448276 +vt 0.500000 0.310345 +vt 0.275000 0.293103 +vt 0.475000 0.293103 +vt 1.000000 0.310345 +vt 0.750000 0.310345 +vt 0.775000 0.293103 +vt 0.975000 0.258621 +vt 0.975000 0.293103 +vt 0.725000 0.293103 +vt 0.025000 0.293103 +vt -0.000000 0.310345 +vt 0.525000 0.258621 +vt 0.750000 0.241379 +vt 0.725000 0.258621 +vt 0.525000 0.293103 +vt 0.475000 0.258621 +vt 0.225000 0.258621 +vt 0.225000 0.293103 +vt 0.250000 0.241379 +vt 0.475000 0.172414 +vt 0.500000 0.241379 +vt 0.275000 0.258621 +vt 0.025000 0.258621 +vt 1.000000 0.241379 +vt 0.250000 -0.000000 +vt 0.250000 0.172414 +vt -0.000000 0.241379 +vt 0.775000 0.172414 +vt 1.000000 0.172414 +vt 0.750000 0.172414 +vt 0.250000 0.827586 +vt 0.350000 0.793103 +vt 0.350000 0.827586 +vt 0.250000 0.793103 +vt 0.350000 0.758621 +vt 0.250000 0.862069 +vt 0.500000 0.913793 +vt 0.550000 0.810345 +vt 0.550000 0.948276 +vt 0.575000 0.810345 +vt 0.625000 0.913793 +vt 0.575000 0.948276 +vt 0.650000 0.948276 +vt 0.650000 0.913793 +vt 0.625000 0.810345 +vt 0.650000 0.810345 +vt 0.375000 0.862069 +vt 0.450000 0.844828 +vt 0.450000 0.862069 +vt 0.375000 0.810345 +vt 0.450000 0.827586 +vt 0.375000 0.827586 +vt 0.350000 0.844828 +vt 0.375000 0.844828 +vt 0.475000 0.827586 +vt 0.475000 0.844828 +vt 0.400000 0.775862 +vt 0.375000 0.758621 +vt 0.400000 0.758621 +vt 0.375000 0.810345 +vt 0.400000 0.810345 +vt 0.350000 0.810345 +vt 0.375000 0.775862 +vt 0.425000 0.775862 +vt 0.425000 0.810345 +vt 0.100000 0.827586 +vt 0.150000 0.931035 +vt 0.100000 0.931035 +vt 0.150000 0.827586 +vt 0.250000 0.896552 +vt 0.000000 0.896552 +vt 0.000000 0.827586 +vt 0.150000 0.758621 +vt 0.100000 1.000000 +vt 0.250000 0.758621 +vt 0.500000 0.810345 +vt 0.775000 0.465517 +vt 0.775000 0.258621 +vt 0.475000 0.000000 +vt -0.000000 0.172414 +vt 0.500000 0.172414 +vt 0.250000 0.758621 +vt 0.350000 0.862069 +vt 0.500000 0.810345 +vt 0.625000 0.948276 +vt 0.450000 0.810345 +vt 0.350000 0.827586 +vt 0.350000 0.775862 +vt 0.250000 0.827586 +vt 0.100000 0.758621 +vt 0.150000 1.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8000 -0.6000 0.0000 +vn 0.4961 -0.8682 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.0000 0.7071 0.7071 +s off +f 216/327/59 218/328/59 213/329/59 +f 202/330/60 203/331/60 204/332/60 +f 206/333/60 202/334/60 204/335/60 +f 205/336/60 199/337/60 206/333/60 +f 200/338/61 213/329/61 199/337/61 +f 205/336/60 201/339/60 200/340/60 +f 207/341/62 209/342/62 211/343/62 +f 203/331/62 209/342/62 207/341/62 +f 203/331/63 208/344/63 204/332/63 +f 204/335/64 210/345/64 206/333/64 +f 206/333/61 209/342/61 205/336/61 +f 208/346/64 212/347/64 210/345/64 +f 207/341/65 212/348/65 208/344/65 +f 212/349/66 209/342/66 210/345/66 +f 200/340/62 215/350/62 216/351/62 +f 199/352/64 214/353/64 202/334/64 +f 202/330/63 215/354/63 201/355/63 +f 220/356/63 223/357/63 219/358/63 +f 214/359/59 219/358/59 215/354/59 +f 214/353/59 218/328/59 220/360/59 +f 215/350/59 217/361/59 216/351/59 +f 221/362/60 226/363/60 227/364/60 +f 219/358/62 221/362/62 217/361/62 +f 218/328/64 224/365/64 220/360/64 +f 217/361/61 222/366/61 218/328/61 +f 228/367/64 230/368/64 225/369/64 +f 221/362/60 228/370/60 222/366/60 +f 222/366/60 225/369/60 224/365/60 +f 225/371/60 223/357/60 224/372/60 +f 231/373/59 236/374/59 232/375/59 +f 227/376/61 232/375/61 228/370/61 +f 226/363/62 231/377/62 227/364/62 +f 225/371/63 229/378/63 226/379/63 +f 233/380/62 239/381/62 235/382/62 +f 229/383/59 235/382/59 231/377/59 +f 230/384/59 233/380/59 229/378/59 +f 230/368/59 236/374/59 234/385/59 +f 238/386/60 239/381/60 237/387/60 +f 234/388/63 237/387/63 233/380/63 +f 234/385/64 240/389/64 238/390/64 +f 235/382/67 240/391/67 236/374/67 +f 243/392/61 242/393/61 241/394/61 +f 244/395/68 246/396/68 242/393/68 +f 241/394/69 247/397/69 243/392/69 +f 250/398/63 251/399/63 249/400/63 +f 253/401/61 255/402/61 254/403/61 +f 249/404/70 255/402/70 250/405/70 +f 250/405/60 256/406/60 252/407/60 +f 251/399/59 254/403/59 249/400/59 +f 257/408/64 260/409/64 258/410/64 +f 262/411/62 263/412/62 264/413/62 +f 257/414/59 264/413/59 259/415/59 +f 259/415/61 263/412/61 260/409/61 +f 260/409/60 261/416/60 258/417/60 +f 270/418/62 272/419/62 271/420/62 +f 267/421/61 270/418/61 265/422/61 +f 268/423/59 269/424/59 267/421/59 +f 265/422/60 271/425/60 266/426/60 +f 274/427/59 275/428/59 273/429/59 +f 276/430/62 277/431/62 275/428/62 +f 274/427/64 278/432/64 279/433/64 +f 274/427/63 280/434/63 276/430/63 +f 275/428/68 278/435/68 273/429/68 +f 216/327/59 217/361/59 218/328/59 +f 202/330/60 201/355/60 203/331/60 +f 206/333/60 199/352/60 202/334/60 +f 205/336/60 200/338/60 199/337/60 +f 200/338/61 216/327/61 213/329/61 +f 205/336/60 203/331/60 201/339/60 +f 203/331/62 205/336/62 209/342/62 +f 203/331/63 207/341/63 208/344/63 +f 204/335/64 208/346/64 210/345/64 +f 206/333/61 210/345/61 209/342/61 +f 207/341/65 211/436/65 212/348/65 +f 212/349/66 211/437/66 209/342/66 +f 200/340/62 201/339/62 215/350/62 +f 199/352/64 213/438/64 214/353/64 +f 202/330/63 214/359/63 215/354/63 +f 220/356/63 224/372/63 223/357/63 +f 214/359/59 220/356/59 219/358/59 +f 214/353/59 213/438/59 218/328/59 +f 215/350/59 219/358/59 217/361/59 +f 221/362/60 223/357/60 226/363/60 +f 219/358/62 223/357/62 221/362/62 +f 218/328/64 222/366/64 224/365/64 +f 217/361/61 221/362/61 222/366/61 +f 228/367/64 232/439/64 230/368/64 +f 221/362/60 227/376/60 228/370/60 +f 222/366/60 228/367/60 225/369/60 +f 225/371/60 226/379/60 223/357/60 +f 231/373/59 235/382/59 236/374/59 +f 227/376/61 231/373/61 232/375/61 +f 226/363/62 229/383/62 231/377/62 +f 225/371/63 230/384/63 229/378/63 +f 233/380/62 237/387/62 239/381/62 +f 229/383/59 233/380/59 235/382/59 +f 230/384/59 234/388/59 233/380/59 +f 230/368/59 232/439/59 236/374/59 +f 238/386/60 240/440/60 239/381/60 +f 234/388/63 238/441/63 237/387/63 +f 234/385/64 236/374/64 240/389/64 +f 235/382/67 239/442/67 240/391/67 +f 243/392/61 244/395/61 242/393/61 +f 244/395/68 248/443/68 246/396/68 +f 241/394/69 245/444/69 247/397/69 +f 250/398/63 252/445/63 251/399/63 +f 253/401/61 256/406/61 255/402/61 +f 249/404/70 254/446/70 255/402/70 +f 250/405/60 255/402/60 256/406/60 +f 251/399/59 253/401/59 254/403/59 +f 257/408/64 259/415/64 260/409/64 +f 262/411/62 261/447/62 263/412/62 +f 257/414/59 262/448/59 264/413/59 +f 259/415/61 264/413/61 263/412/61 +f 260/409/60 263/412/60 261/416/60 +f 270/418/62 269/424/62 272/419/62 +f 267/421/61 269/424/61 270/418/61 +f 268/423/59 272/449/59 269/424/59 +f 265/422/60 270/418/60 271/425/60 +f 274/427/59 276/430/59 275/428/59 +f 276/430/62 280/450/62 277/431/62 +f 274/427/64 273/429/64 278/432/64 +f 274/427/63 279/451/63 280/434/63 +f 275/428/68 277/452/68 278/435/68 +o Helmet +v 5.249990 -8.200001 -4.200000 +v 5.249990 -8.200001 4.200000 +v -4.200010 -8.200001 5.250000 +v 4.199989 -8.200001 5.250000 +v -4.200010 -8.200001 -5.250000 +v 4.199989 -8.200001 -5.250000 +v -5.250010 -8.200001 4.200000 +v -5.250010 -8.200001 -4.200000 +v 5.249990 -6.100002 -4.200000 +v 5.249990 -6.100002 4.200000 +v -4.200010 -6.099998 5.250000 +v 4.199990 -6.100002 5.250000 +v -4.200010 -6.099998 -5.250000 +v 4.199990 -6.100002 -5.250000 +v -5.250010 -6.099998 4.200000 +v -5.250010 -6.099998 -4.200000 +v 7.349990 -5.050001 -4.200000 +v 7.349990 -5.050001 4.200000 +v -4.200009 -5.049997 7.349999 +v 4.199990 -5.050001 7.349999 +v -4.200009 -5.049997 -7.349999 +v 4.199990 -5.050001 -7.349999 +v -7.350009 -5.049997 4.200000 +v -7.350009 -5.049997 -4.200000 +v -3.150011 -10.299999 3.150000 +v -3.150011 -10.299999 -3.150000 +v 3.149989 -10.299999 -3.150000 +v 3.149989 -10.299999 3.150000 +v 4.724989 -8.200001 -3.675000 +v 4.724989 -8.200001 3.675000 +v -3.675010 -8.200001 4.725000 +v 3.674989 -8.200001 4.725000 +v -3.675010 -8.200001 -4.725000 +v 3.674989 -8.200001 -4.725000 +v -4.725010 -8.200001 3.675000 +v -4.725010 -8.200001 -3.675000 +v 4.724992 0.199999 -3.675000 +v 4.724992 0.199999 3.675000 +v -3.675008 0.200003 4.725000 +v 3.674992 0.199999 4.725000 +v -3.675008 0.200003 -4.725000 +v 3.674992 0.199999 -4.725000 +v -4.725008 0.200003 3.675000 +v -4.725008 0.200003 -3.675000 +v -3.675007 1.250002 3.675000 +v -3.675007 1.250002 -3.675000 +v 3.674992 1.249998 -3.675000 +v 3.674992 1.249998 3.675000 +v 1.574991 -2.950001 -4.725000 +v -1.575009 -2.950001 -4.725000 +v 1.574992 0.200001 -4.725000 +v -1.575008 0.200001 -4.725000 +v 1.574992 0.200001 -5.775000 +v 1.574991 -1.900000 -5.775000 +v -1.575008 -1.900000 -5.775000 +v -1.575008 0.200001 -5.775000 +v -2.100009 -5.575001 -4.725000 +v -0.736019 -4.787500 -4.725000 +v -0.736019 -3.212500 -4.725000 +v -2.100008 -2.424999 -4.725000 +v -3.463999 -3.212498 -4.725000 +v -3.463999 -4.787498 -4.725000 +v 2.099990 -5.575001 -4.725000 +v 3.463980 -4.787502 -4.725000 +v 3.463981 -3.212502 -4.725000 +v 2.099991 -2.424999 -4.725000 +v 0.736001 -3.212500 -4.725000 +v 0.736001 -4.787500 -4.725000 +v 2.099990 -5.575001 -5.250000 +v 3.463980 -4.787502 -5.250000 +v 3.463981 -3.212502 -5.250000 +v 2.099991 -2.424999 -5.250000 +v 0.736001 -3.212500 -5.250000 +v 0.736001 -4.787500 -5.250000 +v -2.100009 -5.575001 -5.250000 +v -0.736019 -4.787500 -5.250000 +v -0.736019 -3.212500 -5.250000 +v -2.100008 -2.424999 -5.250000 +v -3.463999 -3.212498 -5.250000 +v -3.463999 -4.787498 -5.250000 +v 0.524990 -6.100000 -4.200000 +v 1.049990 -6.100000 -4.725000 +v 1.049989 -10.299999 -4.725000 +v 0.524989 -10.299999 -4.200000 +v 1.049990 -6.100000 -5.775000 +v 0.524990 -6.100000 -6.300000 +v 0.524989 -10.299999 -6.300000 +v 1.049989 -10.299999 -5.775000 +v -1.050010 -6.100000 -4.725000 +v -0.525010 -6.100000 -4.200000 +v -0.525011 -10.299999 -4.200000 +v -1.050011 -10.299999 -4.725000 +v -0.525010 -6.100000 -6.300000 +v -1.050010 -6.100000 -5.775000 +v -1.050011 -10.299999 -5.775000 +v -0.525011 -10.299999 -6.300000 +v 1.049989 -8.200001 -6.300000 +v -1.050010 -8.200001 -6.300000 +v 1.049989 -10.299999 -6.300000 +v -1.050011 -10.299999 -6.300000 +v 2.099988 -11.349998 -7.349999 +v 2.099990 -7.150000 -7.349999 +v -2.100010 -7.150000 -7.349999 +v -2.100011 -11.349998 -7.349999 +v -4.725009 -4.524998 2.100000 +v -4.725008 -1.374998 2.100000 +v -4.725009 -4.524998 -2.100000 +v -4.725008 -1.374998 -2.100000 +v -5.775009 -4.524998 -2.100000 +v -5.775009 -4.524998 2.100000 +v -5.775008 -1.374998 2.100000 +v -5.775008 -1.374998 -2.100000 +v -5.775009 -3.999998 1.575000 +v -5.775008 -1.899998 1.575000 +v -5.775009 -3.999998 -1.575000 +v -5.775008 -1.899998 -1.575000 +v -6.300009 -3.999998 -1.575000 +v -6.300009 -3.999998 1.575000 +v -6.300008 -1.899998 1.575000 +v -6.300008 -1.899998 -1.575000 +v -7.087509 -5.049997 0.262500 +v -7.612509 -5.049997 0.262500 +v -7.087509 -5.049997 -0.262500 +v -7.612509 -5.049997 -0.262500 +v -7.087511 -11.349995 -0.262500 +v -7.087511 -11.349995 0.262500 +v -7.612511 -11.349995 0.262500 +v -7.612511 -11.349995 -0.262500 +v -5.512508 -2.949999 -0.262500 +v -5.512508 -2.949999 0.262500 +v -6.037508 -2.949999 0.262500 +v -6.037508 -2.949999 -0.262500 +v 1.574993 1.377384 -5.467462 +v 1.049993 1.748615 -5.096232 +v -1.050007 1.748615 -5.096232 +v -1.575007 1.377384 -5.467462 +v 1.049992 -0.478769 -7.323617 +v 1.574992 -0.107536 -6.952385 +v -1.575008 -0.107536 -6.952385 +v -1.050008 -0.478769 -7.323617 +v 1.574993 1.377388 -8.437310 +v 1.049992 1.006157 -8.808541 +v 1.049993 3.233541 -6.581155 +v 1.574993 2.862312 -6.952386 +v -1.575007 2.862312 -6.952386 +v -1.050007 3.233541 -6.581155 +v -1.050007 1.006157 -8.808541 +v -1.575007 1.377388 -8.437310 +v 1.049992 -0.478769 -4.353768 +v 0.524992 -0.107536 -3.982538 +v -0.525008 -0.107536 -3.982538 +v -1.050008 -0.478769 -4.353768 +v 0.524992 -1.592463 -5.467462 +v 1.049992 -1.221231 -5.096231 +v -1.050008 -1.221231 -5.096231 +v -0.525008 -1.592463 -5.467462 +v 1.049992 0.263695 -6.581154 +v 0.524992 -0.107536 -6.952386 +v 0.524993 1.377384 -5.467462 +v 1.049992 1.006153 -5.838693 +v -1.050007 1.006153 -5.838693 +v -0.525007 1.377384 -5.467462 +v -0.525008 -0.107536 -6.952386 +v -1.050008 0.263695 -6.581154 +v 5.774991 -4.525002 -2.100000 +v 5.774991 -4.525002 2.100000 +v 5.774992 -1.375002 2.100000 +v 5.774992 -1.375002 -2.100000 +v 4.724991 -4.525002 -2.100000 +v 4.724991 -4.525002 2.100000 +v 4.724992 -1.375002 2.100000 +v 4.724992 -1.375002 -2.100000 +v 6.824991 -1.900002 3.150000 +v 6.824991 -4.000002 5.250000 +v 6.824991 -1.900002 1.050000 +v 6.824991 -4.000002 1.050000 +v 5.774991 -1.900002 0.000000 +v 5.774991 -4.000002 0.000000 +v 5.354990 -6.100002 -1.443750 +v 5.354990 -8.200001 -1.443750 +v 5.354990 -6.100002 -2.756250 +v 5.354990 -8.200001 -2.756250 +v 5.459991 -6.100002 -0.393750 +v 5.459990 -8.200001 -0.393750 +v 5.459991 -6.100002 -1.706250 +v 5.459990 -8.200001 -1.706250 +v 5.564991 -6.625002 0.000000 +v 5.564991 -6.100002 0.000000 +v 5.564991 -6.100002 -3.150000 +v 5.564991 -6.625002 -3.150000 +v 5.249990 -6.100002 -4.200000 +v 5.249990 -6.625002 -4.200000 +v 5.249990 -6.625002 1.050000 +v 5.249990 -6.100002 1.050000 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.600000 0.000000 +vt 0.760000 0.000000 +vt 0.760000 0.000000 +vt 0.280000 0.000000 +vt 0.600000 0.000000 +vt 0.280000 0.046512 +vt 0.600000 -0.000000 +vt 0.640000 0.046512 +vt 0.760000 0.000000 +vt 0.280000 0.046512 +vt 0.760000 0.000000 +vt 0.280000 -0.000000 +vt 0.280000 0.046512 +vt 0.560000 0.162791 +vt 0.320000 0.302326 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.720000 0.093023 +vt 0.680000 0.162791 +vt 0.680000 0.162791 +vt 0.720000 0.093023 +vt 0.680000 0.162791 +vt 0.680000 0.162791 +vt 0.280000 0.372093 +vt 0.320000 0.186047 +vt 0.320000 0.372093 +vt -0.000000 0.372093 +vt 0.280000 0.186047 +vt 0.000000 0.372093 +vt 0.280000 0.186047 +vt 0.280000 0.372093 +vt 0.280000 0.186047 +vt 0.320000 0.372093 +vt 0.280000 0.372093 +vt 0.320000 0.372093 +vt 0.000000 0.372093 +vt 0.000000 0.186047 +vt 0.280000 0.372093 +vt 0.000000 0.372093 +vt 0.320000 0.186047 +vt 0.320000 0.372093 +vt -0.000000 -0.000000 +vt 0.280000 0.162791 +vt -0.000000 0.162791 +vt -0.000000 0.186047 +vt 0.000000 0.186047 +vt 0.280000 0.162791 +vt 0.300000 0.162791 +vt 0.320000 0.186047 +vt 0.000000 0.186047 +vt 0.280000 0.162791 +vt 0.300000 0.162791 +vt 0.000000 0.162791 +vt 0.280000 0.186047 +vt 0.300000 0.162791 +vt 0.320000 0.186047 +vt 0.300000 0.162791 +vt 0.160000 0.441860 +vt 0.040000 0.395349 +vt 0.160000 0.395349 +vt 0.160000 0.372093 +vt 0.040000 0.372093 +vt 0.160000 0.465116 +vt 0.040000 0.441860 +vt -0.000000 0.395349 +vt -0.000000 0.465116 +vt 0.200000 0.395349 +vt 0.280000 0.372093 +vt 0.320000 0.418605 +vt 0.280000 0.418605 +vt 0.400000 0.418605 +vt 0.440000 0.372093 +vt 0.440000 0.418605 +vt 0.220000 0.372093 +vt 0.260000 0.418605 +vt 0.220000 0.418605 +vt 0.660000 0.465116 +vt 0.740000 0.418605 +vt 0.740000 0.465116 +vt 0.440000 0.360465 +vt 0.460000 0.348837 +vt 0.540000 0.418605 +vt 0.360000 0.465116 +vt 0.440000 0.418605 +vt 0.440000 0.465116 +vt 0.540000 0.465116 +vt 0.460000 0.418605 +vt 0.460000 0.465116 +vt 0.560000 0.476744 +vt 0.800000 0.406977 +vt 0.740000 0.395349 +vt 0.800000 0.395349 +vt 0.920000 0.406977 +vt 0.860000 0.395349 +vt 0.920000 0.395349 +vt 0.680000 0.406977 +vt 0.620000 0.395349 +vt 0.680000 0.395349 +vt 0.860000 0.406977 +vt 0.620000 0.406977 +vt 0.560000 0.395349 +vt 0.740000 0.406977 +vt 0.620000 0.406977 +vt 0.560000 0.395349 +vt 0.620000 0.395349 +vt 0.740000 0.406977 +vt 0.680000 0.395349 +vt 0.740000 0.395349 +vt 0.800000 0.406977 +vt 0.800000 0.395349 +vt 0.920000 0.406977 +vt 0.860000 0.395349 +vt 0.920000 0.395349 +vt 0.680000 0.406977 +vt 0.860000 0.406977 +vt 1.000000 0.046512 +vt 0.960000 0.139535 +vt 0.960000 0.046512 +vt 0.820000 0.139535 +vt 0.780000 0.046512 +vt 0.820000 0.046512 +vt 0.880000 0.186047 +vt 0.840000 0.186047 +vt 0.820000 0.174419 +vt 0.940000 0.139535 +vt 0.900000 0.046512 +vt 0.940000 0.046512 +vt 0.880000 0.139535 +vt 0.840000 0.046512 +vt 0.880000 0.046512 +vt 0.900000 0.139535 +vt 0.840000 0.139535 +vt 0.760000 0.139535 +vt 0.780000 0.139535 +vt 0.840000 0.000000 +vt 0.880000 0.000000 +vt 0.900000 0.011628 +vt 0.800000 0.279070 +vt 0.880000 0.232558 +vt 0.880000 0.279070 +vt 0.920000 0.395349 +vt 0.760000 0.302326 +vt 0.920000 0.302326 +vt 0.880000 0.279070 +vt 0.760000 0.302326 +vt 0.800000 0.279070 +vt 0.800000 0.279070 +vt 0.920000 0.302326 +vt 0.760000 0.302326 +vt 0.880000 0.279070 +vt 0.760000 0.302326 +vt 0.800000 0.279070 +vt 0.600000 0.186047 +vt 0.760000 0.255814 +vt 0.600000 0.255814 +vt 0.760000 0.162791 +vt 0.600000 0.162791 +vt 0.600000 0.279070 +vt 0.760000 0.279070 +vt 0.800000 0.255814 +vt 0.760000 0.186047 +vt 0.800000 0.186047 +vt 0.560000 0.255814 +vt 0.580000 0.290698 +vt 0.700000 0.337209 +vt 0.580000 0.337209 +vt 0.720000 0.337209 +vt 0.700000 0.290698 +vt 0.720000 0.290698 +vt 0.560000 0.337209 +vt 0.700000 0.279070 +vt 0.580000 0.279070 +vt 0.580000 0.348837 +vt 0.700000 0.348837 +vt 0.940000 0.290698 +vt 0.960000 0.232558 +vt 0.960000 0.290698 +vt 0.940000 0.430233 +vt 0.960000 0.441860 +vt 0.940000 0.441860 +vt 1.000000 0.290698 +vt 0.980000 0.430233 +vt 0.980000 0.290698 +vt 0.960000 0.430233 +vt 0.920000 0.430233 +vt 0.920000 0.290698 +vt 1.000000 0.232558 +vt 0.980000 0.232558 +vt 0.940000 0.232558 +vt 0.560000 0.418605 +vt 0.640000 0.418605 +vt 0.640000 0.465116 +vt 0.340000 0.418605 +vt 0.360000 0.418605 +vt 0.260000 0.372093 +vt 0.200000 0.418605 +vt 0.200000 0.372093 +vt 0.380000 0.418605 +vt 0.400000 0.372093 +vt 0.340000 0.418605 +vt 0.320000 0.372093 +vt 0.340000 0.372093 +vt 0.380000 0.372093 +vt 0.600000 0.255814 +vt 0.760000 0.186047 +vt 0.760000 0.255814 +vt 0.560000 0.186047 +vt 0.600000 0.186047 +vt 0.800000 0.186047 +vt 0.800000 0.255814 +vt 0.760000 0.162791 +vt 0.600000 0.279070 +vt 0.920000 0.186047 +vt 0.840000 0.232558 +vt 0.840000 0.186047 +vt 0.800000 0.186047 +vt 0.500000 1.000000 +vt 0.000000 0.534884 +vt 0.500000 0.534884 +vt 1.000000 1.000000 +vt 0.500000 0.534884 +vt 1.000000 0.534884 +vt 0.160000 0.476744 +vt 0.040000 0.465116 +vt 0.160000 0.465116 +vt 0.040000 0.476744 +vt -0.000000 0.465116 +vt 0.200000 0.476744 +vt 0.280000 0.046512 +vt 0.640000 0.046512 +vt 0.600000 0.000000 +vt 0.280000 -0.000000 +vt 0.280000 -0.000000 +vt 0.560000 0.302326 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.320000 0.162791 +vt 0.280000 -0.000000 +vt 0.000000 0.162791 +vt 0.000000 0.162791 +vt 0.280000 0.162791 +vt 0.040000 0.465116 +vt 0.200000 0.465116 +vt 0.660000 0.418605 +vt 0.540000 0.348837 +vt 0.560000 0.360465 +vt 0.560000 0.406977 +vt 0.440000 0.406977 +vt 0.560000 0.523256 +vt 0.540000 0.534884 +vt 0.460000 0.534884 +vt 0.440000 0.523256 +vt 0.440000 0.476744 +vt 0.560000 0.406977 +vt 0.560000 0.406977 +vt 1.000000 0.139535 +vt 0.820000 0.151163 +vt 0.900000 0.151163 +vt 0.900000 0.174419 +vt 0.760000 0.046512 +vt 0.900000 0.034884 +vt 0.820000 0.034884 +vt 0.820000 0.011628 +vt 0.800000 0.232558 +vt 0.760000 0.395349 +vt 0.920000 0.302326 +vt 0.880000 0.279070 +vt 0.920000 0.302326 +vt 0.560000 0.186047 +vt 0.560000 0.290698 +vt 1.000000 0.430233 +vt 0.920000 0.232558 +vt 0.560000 0.465116 +vt 0.340000 0.465116 +vt 0.560000 0.255814 +vt 0.600000 0.162791 +vt 0.760000 0.279070 +vt 1.000000 0.232558 +vt 0.800000 0.232558 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt -0.000000 0.476744 +vt 0.200000 0.465116 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.4082 -0.8165 -0.4082 +vn -0.4082 -0.8165 0.4082 +vn -0.0000 -0.8944 -0.4472 +vn 0.4472 -0.8944 0.0000 +vn 0.4082 -0.8165 0.4082 +vn -0.4472 -0.8944 0.0000 +vn 0.4082 -0.8165 -0.4082 +vn -0.0000 -0.8944 0.4472 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.4851 -0.7276 0.4851 +vn -0.4851 -0.7276 -0.4851 +vn 0.4851 -0.7276 -0.4851 +vn 0.4851 -0.7276 0.4851 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.5774 0.5774 -0.5774 +vn 0.7071 0.7071 0.0000 +vn 0.5773 0.5774 -0.5774 +vn 0.0000 0.7071 0.7071 +vn 0.5773 0.5774 0.5774 +vn -0.5774 0.5774 0.5774 +vn -0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8000 0.6000 0.0000 +vn 0.8000 -0.6000 0.0000 +vn -0.7071 -0.5000 -0.5000 +vn 0.7071 -0.5000 -0.5000 +vn 0.7071 0.5000 0.5000 +vn -0.7071 0.5000 0.5000 +vn 0.9578 0.0000 -0.2873 +vn 0.9578 0.0000 0.2873 +s off +f 284/453/71 291/454/71 283/455/71 +f 285/456/72 294/457/72 286/458/72 +f 281/459/73 290/460/73 282/461/73 +f 287/462/74 296/463/74 288/464/74 +f 289/465/75 286/466/75 294/467/75 +f 282/468/76 292/469/76 284/470/76 +f 295/471/77 283/472/77 291/473/77 +f 288/474/78 293/475/78 285/476/78 +f 293/475/79 304/477/79 301/478/79 +f 291/473/80 303/479/80 295/471/80 +f 294/457/81 301/480/81 302/481/81 +f 289/482/82 298/483/82 290/460/82 +f 290/484/83 300/485/83 292/469/83 +f 295/486/84 304/477/84 296/463/84 +f 294/467/85 297/487/85 289/465/85 +f 300/488/86 291/454/86 292/489/86 +f 307/490/87 305/491/87 306/492/87 +f 307/490/88 285/456/88 286/458/88 +f 308/493/89 281/459/89 282/461/89 +f 283/455/90 308/494/90 284/453/90 +f 306/495/91 287/462/91 288/464/91 +f 287/496/92 305/497/92 283/472/92 +f 288/474/93 285/476/93 306/498/93 +f 281/499/94 307/500/94 286/466/94 +f 282/468/95 284/470/95 308/501/95 +f 314/502/75 317/503/75 309/504/75 +f 313/505/72 322/506/72 314/502/72 +f 309/507/73 318/508/73 310/509/73 +f 324/510/78 313/511/78 316/512/78 +f 318/508/76 312/513/76 310/509/76 +f 315/514/74 324/510/74 316/512/74 +f 320/515/71 311/516/71 312/517/71 +f 311/516/77 323/518/77 315/519/77 +f 325/520/96 327/521/96 326/522/96 +f 321/523/97 327/521/97 322/506/97 +f 323/524/98 326/525/98 324/510/98 +f 324/510/99 326/526/99 321/527/99 +f 317/528/100 328/529/100 318/508/100 +f 317/503/101 322/506/101 327/530/101 +f 328/531/102 319/532/102 320/515/102 +f 318/508/103 328/533/103 320/534/103 +f 323/518/104 319/532/104 325/535/104 +f 334/536/72 336/537/72 333/538/72 +f 331/539/96 336/537/96 332/540/96 +f 329/541/88 335/542/88 334/536/88 +f 332/543/74 335/542/74 330/544/74 +f 331/545/73 334/536/73 333/538/73 +f 443/546/88 433/547/88 436/548/88 +f 430/549/102 442/550/102 431/551/102 +f 441/552/74 435/553/74 432/554/74 +f 414/555/102 426/556/102 415/557/102 +f 425/558/97 426/559/97 422/560/97 +f 416/561/74 428/562/74 419/563/74 +f 417/564/88 427/565/88 422/560/88 +f 420/566/90 417/564/90 418/567/90 +f 354/568/105 343/569/105 348/570/105 +f 352/571/106 347/572/106 346/573/106 +f 350/574/73 345/575/73 344/576/73 +f 353/577/74 348/570/74 347/572/74 +f 351/578/107 346/579/107 345/575/107 +f 349/580/108 344/576/108 343/569/108 +f 357/581/107 340/582/107 339/583/107 +f 355/584/108 338/585/108 337/586/108 +f 360/587/105 337/586/105 342/588/105 +f 358/589/106 341/590/106 340/591/106 +f 356/592/73 339/583/73 338/585/73 +f 359/593/74 342/588/74 341/590/74 +f 370/594/71 364/595/71 361/596/71 +f 375/597/74 369/598/74 374/599/74 +f 364/600/87 371/601/87 372/602/87 +f 363/603/73 365/604/73 362/605/73 +f 367/606/72 373/607/72 366/608/72 +f 364/595/76 362/605/76 361/596/76 +f 366/608/75 368/609/75 367/606/75 +f 374/599/78 376/610/78 375/597/78 +f 371/611/77 369/598/77 372/612/77 +f 370/613/96 361/614/96 362/615/96 +f 378/616/71 379/617/71 377/618/71 +f 381/619/72 383/620/72 382/621/72 +f 378/622/77 384/623/77 380/624/77 +f 377/625/76 381/626/76 382/627/76 +f 380/628/90 381/629/90 379/630/90 +f 377/618/102 383/620/102 378/616/102 +f 391/631/74 389/632/74 390/633/74 +f 388/634/96 391/631/96 386/635/96 +f 385/636/87 389/632/87 387/637/87 +f 387/638/72 392/639/72 388/640/72 +f 385/641/71 391/631/71 390/633/71 +f 399/642/74 397/643/74 398/644/74 +f 395/645/72 400/646/72 396/647/72 +f 393/648/71 399/642/71 398/644/71 +f 396/649/96 399/642/96 394/650/96 +f 393/651/87 397/643/87 395/652/87 +f 402/653/109 412/654/109 404/655/109 +f 407/656/87 405/657/87 406/658/87 +f 404/655/74 407/656/74 402/653/74 +f 401/659/73 405/660/73 403/661/73 +f 403/661/72 408/662/72 404/655/72 +f 402/653/71 406/663/71 401/664/71 +f 403/661/110 410/665/110 401/659/110 +f 403/661/72 412/654/72 409/666/72 +f 401/664/71 411/667/71 402/653/71 +f 428/562/111 420/566/111 419/563/111 +f 421/668/112 417/564/112 422/560/112 +f 424/669/113 414/555/113 413/670/113 +f 416/561/114 426/671/114 425/672/114 +f 413/670/73 421/668/73 424/669/73 +f 444/673/111 436/548/111 435/553/111 +f 441/552/114 431/674/114 442/675/114 +f 429/676/113 439/677/113 430/549/113 +f 434/678/112 438/679/112 437/680/112 +f 434/678/73 440/681/73 429/676/73 +f 445/682/73 447/683/73 446/684/73 +f 445/682/72 452/685/72 448/686/72 +f 446/684/71 451/687/71 450/688/71 +f 448/686/96 451/689/96 447/683/96 +f 446/684/87 449/690/87 445/682/87 +f 453/691/73 456/692/73 455/693/73 +f 456/692/75 457/694/75 455/693/75 +f 460/695/73 461/696/73 459/697/73 +f 464/698/73 465/699/73 463/700/73 +f 467/701/73 469/702/73 468/703/73 +f 470/704/115 471/705/115 469/702/115 +f 468/703/116 473/706/116 467/701/116 +f 284/453/71 292/489/71 291/454/71 +f 285/456/72 293/707/72 294/457/72 +f 281/459/73 289/482/73 290/460/73 +f 287/462/74 295/486/74 296/463/74 +f 289/465/75 281/499/75 286/466/75 +f 282/468/76 290/484/76 292/469/76 +f 295/471/77 287/496/77 283/472/77 +f 288/474/78 296/708/78 293/475/78 +f 293/475/79 296/708/79 304/477/79 +f 291/473/80 299/709/80 303/479/80 +f 294/457/81 293/707/81 301/480/81 +f 289/482/82 297/710/82 298/483/82 +f 290/484/83 298/483/83 300/485/83 +f 295/486/84 303/711/84 304/477/84 +f 294/467/85 302/481/85 297/487/85 +f 300/488/86 299/709/86 291/454/86 +f 307/490/87 308/712/87 305/491/87 +f 307/490/88 306/492/88 285/456/88 +f 308/493/89 307/713/89 281/459/89 +f 283/455/90 305/714/90 308/494/90 +f 306/495/91 305/715/91 287/462/91 +f 314/502/75 322/506/75 317/503/75 +f 313/505/72 321/523/72 322/506/72 +f 309/507/73 317/528/73 318/508/73 +f 324/510/78 321/527/78 313/511/78 +f 318/508/76 320/534/76 312/513/76 +f 315/514/74 323/524/74 324/510/74 +f 320/515/71 319/532/71 311/516/71 +f 311/516/77 319/532/77 323/518/77 +f 325/520/96 328/716/96 327/521/96 +f 321/523/97 326/522/97 327/521/97 +f 323/524/98 325/717/98 326/525/98 +f 317/528/100 327/718/100 328/529/100 +f 328/531/102 325/719/102 319/532/102 +f 334/536/72 335/542/72 336/537/72 +f 331/539/96 333/538/96 336/537/96 +f 329/541/88 330/720/88 335/542/88 +f 332/543/74 336/537/74 335/542/74 +f 331/545/73 329/721/73 334/536/73 +f 443/546/88 438/679/88 433/547/88 +f 430/549/102 439/677/102 442/550/102 +f 441/552/74 444/673/74 435/553/74 +f 414/555/102 423/722/102 426/556/102 +f 426/559/97 423/723/97 424/724/97 +f 424/724/97 421/725/97 426/559/97 +f 421/725/97 422/560/97 426/559/97 +f 422/560/97 427/565/97 428/726/97 +f 428/726/97 425/558/97 422/560/97 +f 416/561/74 425/672/74 428/562/74 +f 417/564/88 420/566/88 427/565/88 +f 418/567/90 413/727/90 414/728/90 +f 414/728/90 415/729/90 418/567/90 +f 415/729/90 416/730/90 418/567/90 +f 416/730/90 419/731/90 418/567/90 +f 419/731/90 420/566/90 418/567/90 +f 354/568/105 349/580/105 343/569/105 +f 352/571/106 353/577/106 347/572/106 +f 350/574/73 351/578/73 345/575/73 +f 353/577/74 354/568/74 348/570/74 +f 351/578/107 352/732/107 346/579/107 +f 349/580/108 350/574/108 344/576/108 +f 357/581/107 358/733/107 340/582/107 +f 355/584/108 356/592/108 338/585/108 +f 360/587/105 355/584/105 337/586/105 +f 358/589/106 359/593/106 341/590/106 +f 356/592/73 357/581/73 339/583/73 +f 359/593/74 360/587/74 342/588/74 +f 370/594/71 371/734/71 364/595/71 +f 375/597/74 372/612/74 369/598/74 +f 372/602/87 375/735/87 368/736/87 +f 375/735/87 376/610/87 368/736/87 +f 376/610/87 367/606/87 368/736/87 +f 368/736/87 363/737/87 372/602/87 +f 363/737/87 364/600/87 372/602/87 +f 363/603/73 368/609/73 365/604/73 +f 367/606/72 376/610/72 373/607/72 +f 364/595/76 363/603/76 362/605/76 +f 366/608/75 365/604/75 368/609/75 +f 374/599/78 373/607/78 376/610/78 +f 371/611/77 370/738/77 369/598/77 +f 362/615/96 365/739/96 374/740/96 +f 365/739/96 366/608/96 374/740/96 +f 366/608/96 373/607/96 374/740/96 +f 374/740/96 369/741/96 362/615/96 +f 369/741/96 370/613/96 362/615/96 +f 378/616/71 380/742/71 379/617/71 +f 381/619/72 384/743/72 383/620/72 +f 378/622/77 383/744/77 384/623/77 +f 377/625/76 379/745/76 381/626/76 +f 380/628/90 384/746/90 381/629/90 +f 377/618/102 382/621/102 383/620/102 +f 391/631/74 392/639/74 389/632/74 +f 388/634/96 392/639/96 391/631/96 +f 385/636/87 390/633/87 389/632/87 +f 387/638/72 389/632/72 392/639/72 +f 385/641/71 386/747/71 391/631/71 +f 399/642/74 400/646/74 397/643/74 +f 395/645/72 397/643/72 400/646/72 +f 393/648/71 394/748/71 399/642/71 +f 396/649/96 400/646/96 399/642/96 +f 393/651/87 398/644/87 397/643/87 +f 402/653/109 411/667/109 412/654/109 +f 407/656/87 408/662/87 405/657/87 +f 404/655/74 408/662/74 407/656/74 +f 401/659/73 406/749/73 405/660/73 +f 403/661/72 405/660/72 408/662/72 +f 402/653/71 407/656/71 406/663/71 +f 403/661/110 409/666/110 410/665/110 +f 403/661/72 404/655/72 412/654/72 +f 401/664/71 410/750/71 411/667/71 +f 428/562/111 427/565/111 420/566/111 +f 421/668/112 418/751/112 417/564/112 +f 424/669/113 423/722/113 414/555/113 +f 416/561/114 415/752/114 426/671/114 +f 413/670/73 418/751/73 421/668/73 +f 444/673/111 443/546/111 436/548/111 +f 441/552/114 432/554/114 431/674/114 +f 429/676/113 440/681/113 439/677/113 +f 434/678/112 433/547/112 438/679/112 +f 434/678/73 437/680/73 440/681/73 +f 445/682/73 448/686/73 447/683/73 +f 445/682/72 449/753/72 452/685/72 +f 446/684/71 447/683/71 451/687/71 +f 448/686/96 452/754/96 451/689/96 +f 446/684/87 450/755/87 449/690/87 +f 453/691/73 454/756/73 456/692/73 +f 456/692/75 458/757/75 457/694/75 +f 460/695/73 462/758/73 461/696/73 +f 464/698/73 466/759/73 465/699/73 +f 467/701/73 470/704/73 469/702/73 +f 470/704/115 472/760/115 471/705/115 +f 468/703/116 474/761/116 473/706/116 +o Chest +v 4.199992 -0.300001 2.100000 +v 4.199992 -0.300001 -2.100000 +v -4.200008 -0.299997 -2.100000 +v -1.575008 -0.299999 -2.100000 +v -1.575008 -0.299999 2.100000 +v -3.675008 -0.299997 2.100000 +v -3.675008 -0.299997 -2.100000 +v -4.200008 -0.299997 2.100000 +v 4.199994 7.994997 -2.100000 +v -4.200005 7.995001 -2.100000 +v 4.199995 10.094998 -2.100000 +v -4.200004 10.095000 -2.100000 +v 4.199995 10.094998 -2.625000 +v 4.199994 7.994997 -2.625000 +v -4.200005 7.995001 -2.625000 +v -4.200004 10.095000 -2.625000 +v 4.199994 7.994997 2.100000 +v -4.200005 7.995001 2.100000 +v 4.199995 10.094998 2.100000 +v -4.200004 10.095000 2.100000 +v 4.199994 7.994997 2.625000 +v -4.200005 7.995001 2.625000 +v 4.199995 10.094998 2.625000 +v -4.200004 10.095000 2.625000 +v -4.725005 7.995001 -2.100000 +v -4.725005 10.095001 -2.100000 +v -4.725005 7.995001 2.100000 +v -4.725005 10.095001 2.100000 +v 4.724995 7.994997 -2.100000 +v 4.724995 10.094997 -2.100000 +v 4.724995 7.994997 2.100000 +v 4.724995 10.094997 2.100000 +v -4.200005 9.150001 2.100000 +v -4.200005 9.150001 -2.100000 +v 4.199995 9.149999 2.100000 +v 4.199995 9.149999 -2.100000 +v -4.200000 22.800001 5.250000 +v 4.199999 22.799997 5.250000 +v 5.249998 17.549997 2.100000 +v 5.249998 17.549997 -2.100000 +v -5.250002 17.550001 2.100000 +v -5.250002 17.550001 -2.100000 +v -0.000005 9.150000 -2.100000 +v -4.200003 15.450001 -3.150000 +v -2.100003 15.450001 -3.150000 +v 4.199997 15.449999 -3.150000 +v 2.099997 15.449999 -3.150000 +v 4.199996 12.299998 2.100000 +v 4.199996 12.299998 -2.100000 +v -4.200004 12.300000 -2.100000 +v -4.200004 12.300000 2.100000 +v 3.674992 -0.300001 -2.100000 +v 3.674992 -0.300001 2.100000 +v 1.574992 -0.299999 2.100000 +v 1.574992 -0.299999 -2.100000 +v -1.575007 1.799999 -2.100000 +v -1.575007 1.799999 2.100000 +v -3.675007 1.800001 2.100000 +v -3.675007 1.800001 -2.100000 +v 3.674993 1.799997 -2.100000 +v 3.674993 1.799997 2.100000 +v 1.574993 1.799999 2.100000 +v 1.574993 1.799999 -2.100000 +v -4.200007 1.800001 2.100000 +v -4.200007 1.800001 -2.100000 +v 4.199993 1.799997 -2.100000 +v 4.199993 1.799997 2.100000 +v -1.575008 -0.299999 -3.150000 +v -3.675008 -0.299997 -3.150000 +v 3.674992 -0.300001 -3.150000 +v 1.574992 -0.299999 -3.150000 +v -1.575007 1.799999 -3.150000 +v -3.675007 1.800001 -3.150000 +v 3.674993 1.799997 -3.150000 +v 1.574993 1.799999 -3.150000 +v -4.200007 1.800001 -3.150000 +v 4.199993 1.799997 -3.150000 +v -5.250007 1.800001 2.100000 +v -5.250007 1.800001 -2.100000 +v 5.249993 1.799997 -2.100000 +v 5.249993 1.799997 2.100000 +v -1.575008 -0.299999 3.150000 +v -3.675008 -0.299997 3.150000 +v 3.674992 -0.300001 3.150000 +v 1.574992 -0.299999 3.150000 +v -1.575007 1.799999 3.150000 +v -3.675007 1.800001 3.150000 +v 3.674993 1.799997 3.150000 +v 1.574993 1.799999 3.150000 +v -4.200007 1.800001 3.150000 +v 4.199993 1.799997 3.150000 +v -4.200006 6.000002 -3.150000 +v 4.199994 5.999998 -3.150000 +v -5.250006 7.050001 2.100000 +v -5.250006 7.050001 -2.100000 +v 5.249994 7.049997 -2.100000 +v 5.249994 7.049997 2.100000 +v -4.200006 6.000002 3.150000 +v 4.199994 5.999998 3.150000 +v -4.200006 7.050001 2.100000 +v -4.200006 7.050001 -2.100000 +v 4.199994 7.049997 -2.100000 +v 4.199994 7.049997 2.100000 +v -1.575008 -1.349998 -2.100000 +v -1.575008 -1.349998 2.100000 +v -3.675008 -1.349997 2.100000 +v -3.675008 -1.349997 -2.100000 +v 3.674991 -1.350000 -2.100000 +v 3.674991 -1.350000 2.100000 +v 1.574992 -1.349998 2.100000 +v 1.574992 -1.349998 -2.100000 +v 3.149996 11.249999 3.150000 +v -3.150004 11.250001 3.150000 +v 3.149992 0.749998 3.150000 +v -3.150007 0.750002 3.150000 +v 3.149992 0.749998 5.250000 +v -3.150007 0.750002 5.250000 +v 3.149993 2.849998 7.349999 +v 3.149996 11.249999 7.349999 +v -3.150004 11.250001 7.349999 +v -3.150007 2.850002 7.349999 +v 4.199993 4.949999 6.300000 +v 4.199995 10.199999 6.300000 +v 2.624996 12.824999 4.200000 +v -2.625004 12.825001 4.200000 +v 2.624996 14.309922 4.815076 +v -2.625003 14.309924 4.815076 +v 2.624997 14.924998 6.300000 +v -2.625002 14.925000 6.300000 +v 2.624996 14.309922 7.784924 +v -2.625003 14.309924 7.784924 +v 2.624996 12.824999 8.400000 +v -2.625004 12.825001 8.400000 +v 2.624995 11.340075 7.784924 +v -2.625004 11.340077 7.784924 +v 2.624995 10.724999 6.300000 +v -2.625004 10.725001 6.300000 +v 2.624995 11.340075 4.815076 +v -2.625004 11.340077 4.815076 +v 4.199995 10.199999 4.200000 +v 4.199993 4.949999 4.200000 +v 3.149996 11.249999 6.300000 +v 3.149993 4.949999 6.300000 +v 3.149996 11.249999 4.200000 +v 3.149993 4.949999 4.200000 +v 3.937494 4.949999 5.512500 +v 3.412494 4.949999 5.512500 +v 3.937494 4.949999 4.987500 +v 3.412494 4.949999 4.987500 +v 3.412493 3.899998 4.987500 +v 3.937493 3.899998 4.987500 +v 3.412493 3.899998 5.512500 +v 3.937493 3.899998 5.512500 +v 4.199993 3.899998 6.300000 +v 4.199993 3.899998 4.200000 +v 3.149993 3.899998 6.300000 +v 3.149993 3.899998 4.200000 +v 4.199992 1.799997 4.200000 +v 3.674992 1.799997 4.200000 +v 3.674992 1.799997 6.300000 +v 4.199992 1.799997 6.300000 +v 3.674993 3.899998 6.825000 +v 4.199993 3.899998 6.825000 +v 3.674993 2.849998 6.825000 +v 4.199993 2.849998 6.825000 +v 4.199993 3.899998 3.675000 +v 3.674993 3.899998 3.675000 +v 4.199993 2.849998 3.675000 +v 3.674993 2.849998 3.675000 +v -4.200006 4.950003 6.300000 +v -4.200004 10.200001 6.300000 +v -4.200004 10.200001 4.200000 +v -4.200006 4.950003 4.200000 +v -3.150006 4.950003 4.200000 +v -3.150004 11.250001 4.200000 +v -3.150006 4.950003 6.300000 +v -3.150004 11.250001 6.300000 +v -3.412506 4.950003 5.512500 +v -3.937506 4.950003 5.512500 +v -3.412506 4.950003 4.987500 +v -3.937506 4.950003 4.987500 +v -3.412507 1.800001 4.987500 +v -3.412507 1.800001 5.512500 +v -3.937507 1.800001 5.512500 +v -3.937507 1.800001 4.987500 +v -3.150007 2.325003 4.725000 +v -3.150007 2.325003 5.775000 +v -4.200007 2.325003 5.775000 +v -4.200007 2.325003 4.725000 +v -3.150006 3.900002 4.725000 +v -3.150006 3.900002 5.775000 +v -4.200006 3.900002 5.775000 +v -4.200006 3.900002 4.725000 +v -3.412507 2.587502 5.775000 +v -3.937507 2.587502 5.775000 +v -3.412507 3.637503 5.775000 +v -3.937506 3.637503 5.775000 +v -3.412507 3.112501 6.825000 +v -3.937507 3.112501 6.825000 +v -3.412507 3.637503 6.825000 +v -3.937506 3.637503 6.825000 +v -3.412507 3.637503 7.875000 +v -3.937506 3.637503 7.875000 +v -3.412506 4.162502 7.875000 +v -3.937506 4.162502 7.875000 +v -3.412507 2.587502 4.725000 +v -3.937507 2.587502 4.725000 +v -3.412507 3.637503 4.725000 +v -3.937506 3.637503 4.725000 +v -3.412507 3.112501 3.675000 +v -3.937507 3.112501 3.675000 +v -3.412507 3.637503 3.675000 +v -3.937506 3.637503 3.675000 +v -3.412507 3.637503 2.625000 +v -3.937506 3.637503 2.625000 +v -3.412506 4.162502 2.625000 +v -3.937506 4.162502 2.625000 +v 4.199992 0.749998 6.300000 +v -4.200007 0.750002 6.300000 +v 4.199993 2.234922 6.915076 +v -4.200006 2.234926 6.915076 +v 4.199994 2.849998 8.400000 +v -4.200006 2.850002 8.400000 +v 4.199993 2.234922 9.884923 +v -4.200006 2.234926 9.884923 +v 4.199992 0.749998 10.500000 +v -4.200007 0.750002 10.500000 +v 4.199991 -0.734926 9.884923 +v -4.200008 -0.734922 9.884923 +v 4.199991 -1.350000 8.400000 +v -4.200008 -1.349997 8.400000 +v 4.199991 -0.734926 6.915076 +v -4.200008 -0.734922 6.915076 +v 2.099995 10.199999 7.349999 +v -2.100004 10.200001 7.349999 +v 2.099994 6.000000 7.349999 +v -2.100006 6.000000 7.349999 +v 2.099994 6.000000 9.450000 +v 2.099995 10.199999 9.450000 +v -2.100004 10.200001 9.450000 +v -2.100006 6.000000 9.450000 +v -1.312506 6.000000 8.662499 +v -1.837506 6.000000 8.662499 +v -1.312506 6.000000 8.137500 +v -1.837506 6.000000 8.137500 +v -0.262506 6.000000 8.662499 +v -0.787506 6.000000 8.662499 +v -0.262506 6.000000 8.137500 +v -0.787506 6.000000 8.137500 +v -1.312506 4.950001 8.137500 +v -1.312506 4.950001 8.662499 +v -1.837506 4.950001 8.662499 +v -1.837506 4.950001 8.137500 +v -0.262506 4.950001 8.137500 +v -0.262506 4.950001 8.662499 +v -0.787506 4.950001 8.662499 +v -0.787506 4.950001 8.137500 +v -1.312507 1.799999 11.287499 +v -1.312507 1.799999 11.812499 +v -1.837507 1.799999 11.812499 +v -1.837507 1.799999 11.287499 +v -0.262507 1.799999 11.287499 +v -0.262507 1.799999 11.812499 +v -0.787507 1.799999 11.812499 +v -0.787507 1.799999 11.287499 +v -1.312509 -4.500000 11.287499 +v -1.312509 -4.500000 11.812499 +v -1.837509 -4.500000 11.812499 +v -1.837509 -4.500000 11.287499 +v -0.262508 -0.299999 11.287499 +v -0.262508 -0.299999 11.812499 +v -0.787508 -0.299999 11.812499 +v -0.787508 -0.299999 11.287499 +v 2.957832 11.899478 6.163495 +v 3.412495 11.874217 5.902212 +v 3.412496 11.899478 6.163495 +v 3.412495 8.764097 6.466626 +v 3.185164 11.912108 6.294134 +v 3.185163 8.776729 6.597267 +v 3.185164 11.937369 6.555416 +v 3.185163 8.801990 6.858547 +v 3.412496 11.950000 6.686055 +v 3.412495 8.814620 6.989188 +v 3.639827 11.937369 6.555416 +v 3.639826 8.801990 6.858547 +v 3.639827 11.912108 6.294134 +v 3.639826 8.776729 6.597267 +v 2.957832 11.950000 6.686055 +v 3.412496 11.975261 6.947338 +v 3.867159 11.950000 6.686055 +v 3.867158 11.899478 6.163495 +v 4.094490 12.931973 5.931808 +v 3.412496 12.894082 5.539885 +v 4.094490 13.007758 6.715653 +v 3.412496 13.045648 7.107575 +v 2.730501 13.007758 6.715653 +v 2.730501 12.931973 5.931808 +v 4.094491 13.977101 5.830763 +v 3.412496 13.939210 5.438842 +v 4.094491 14.052884 6.614610 +v 3.412496 14.090775 7.006532 +v 2.730501 14.052884 6.614610 +v 2.730501 13.977101 5.830763 +v 2.957832 12.447959 7.446981 +v 3.412496 12.491173 7.188064 +v 3.412496 12.447959 7.446981 +v 3.412495 9.340938 6.928412 +v 3.185164 12.426353 7.576441 +v 3.185163 9.319330 7.057871 +v 3.185164 12.383138 7.835360 +v 3.185163 9.276116 7.316791 +v 3.412496 12.361531 7.964818 +v 3.412495 9.254509 7.446248 +v 3.639827 12.383138 7.835360 +v 3.639826 9.276116 7.316791 +v 3.639827 12.426353 7.576441 +v 3.639826 9.319330 7.057871 +v 2.957832 12.361531 7.964818 +v 3.412496 12.318316 8.223737 +v 3.867159 12.361531 7.964818 +v 3.867159 12.447959 7.446981 +v 4.094491 13.505240 7.490378 +v 3.412496 13.570062 7.102001 +v 4.094491 13.375598 8.267134 +v 3.412496 13.310778 8.655512 +v 2.730501 13.375598 8.267134 +v 2.730501 13.505240 7.490378 +v 4.094491 14.540915 7.663234 +v 3.412496 14.605736 7.274856 +v 4.094491 14.411272 8.439990 +v 3.412496 14.346450 8.828368 +v 2.730502 14.411272 8.439990 +v 2.730502 14.540915 7.663234 +vt 0.629630 0.225000 +vt 0.611111 0.175000 +vt 0.629630 0.175000 +vt 0.620370 0.175000 +vt 0.675926 0.150000 +vt 0.675926 0.175000 +vt 0.648148 0.175000 +vt 0.629630 0.225000 +vt 0.629630 0.175000 +vt 0.712963 0.175000 +vt 0.722222 0.150000 +vt 0.722222 0.175000 +vt 0.333333 0.400000 +vt 0.481481 0.387500 +vt 0.481481 0.400000 +vt 0.240741 0.387500 +vt 0.092593 0.337500 +vt 0.240741 0.337500 +vt 0.240741 0.325000 +vt 0.092593 0.325000 +vt 0.092593 0.400000 +vt 0.240741 0.400000 +vt 0.092593 0.325000 +vt 0.166667 0.125000 +vt 0.166667 0.325000 +vt 0.203704 0.325000 +vt 0.351852 0.000000 +vt 0.351852 0.325000 +vt 0.481481 0.325000 +vt 0.333333 0.337500 +vt 0.333333 0.325000 +vt 0.481481 0.337500 +vt 0.333333 0.387500 +vt 0.009259 0.400000 +vt 0.083333 0.387500 +vt 0.083333 0.400000 +vt 0.083333 0.325000 +vt 0.009259 0.337500 +vt 0.009259 0.325000 +vt 0.250000 0.400000 +vt 0.324074 0.387500 +vt 0.324074 0.400000 +vt 0.324074 0.325000 +vt 0.250000 0.337500 +vt 0.250000 0.325000 +vt 0.324074 0.337500 +vt 0.083333 0.337500 +vt 0.092593 0.387500 +vt 0.083333 0.400000 +vt 0.083333 0.325000 +vt 0.000000 0.325000 +vt -0.000000 0.337500 +vt 0.009259 0.387500 +vt -0.000000 0.387500 +vt 0.000000 0.400000 +vt 0.324074 0.325000 +vt 0.324074 0.400000 +vt 0.240741 0.325000 +vt 0.250000 0.387500 +vt 0.240741 0.400000 +vt 0.388889 0.325000 +vt 0.462963 0.125000 +vt 0.462963 0.325000 +vt 0.203704 0.000000 +vt 0.388889 0.125000 +vt 0.481481 0.325000 +vt 0.518519 0.175000 +vt 0.555556 0.325000 +vt 0.074074 0.325000 +vt 0.037037 0.175000 +vt 0.074074 0.175000 +vt 0.481481 0.175000 +vt 0.092593 0.125000 +vt 0.296296 0.700000 +vt 0.444444 0.400000 +vt 0.444444 0.700000 +vt 0.222222 0.700000 +vt 0.296296 0.400000 +vt 0.074074 0.700000 +vt 0.222222 0.400000 +vt 0.000000 0.700000 +vt 0.074074 0.400000 +vt 0.703704 0.225000 +vt 0.685185 0.175000 +vt 0.703704 0.175000 +vt 0.574074 0.175000 +vt 0.555556 0.225000 +vt 0.555556 0.175000 +vt 0.574074 0.150000 +vt 0.583333 0.175000 +vt 0.574074 0.175000 +vt 0.574074 0.225000 +vt 0.648148 0.225000 +vt 0.481481 0.175000 +vt 0.555556 0.150000 +vt 0.555556 0.175000 +vt 0.740741 0.175000 +vt 0.814815 0.150000 +vt 0.814815 0.175000 +vt 0.574074 0.375000 +vt 0.555556 0.425000 +vt 0.555556 0.375000 +vt 0.972222 0.150000 +vt 0.981481 0.175000 +vt 0.972222 0.175000 +vt 0.833333 0.175000 +vt 0.842593 0.150000 +vt 0.842593 0.175000 +vt 0.648148 0.375000 +vt 0.629630 0.425000 +vt 0.629630 0.375000 +vt 0.629630 0.425000 +vt 0.611111 0.375000 +vt 0.629630 0.375000 +vt 0.879630 0.150000 +vt 0.935185 0.175000 +vt 0.879630 0.175000 +vt 0.703704 0.425000 +vt 0.685185 0.375000 +vt 0.703704 0.375000 +vt 1.000000 0.175000 +vt 0.981481 0.150000 +vt 0.814815 0.175000 +vt 0.833333 0.150000 +vt 0.740741 0.175000 +vt 0.555556 0.175000 +vt 1.000000 0.150000 +vt 0.981481 0.050000 +vt 1.000000 0.025000 +vt 0.574074 0.050000 +vt 0.833333 0.050000 +vt 0.481481 0.150000 +vt 0.555556 0.025000 +vt 0.740741 0.150000 +vt 0.722222 0.050000 +vt 0.740741 0.025000 +vt 0.814815 0.025000 +vt 0.620370 0.150000 +vt 0.583333 0.150000 +vt 0.685185 0.425000 +vt 0.611111 0.425000 +vt 0.574074 0.425000 +vt 0.814815 -0.000000 +vt 0.481481 0.025000 +vt 0.555556 0.000000 +vt 0.574074 0.025000 +vt 0.722222 0.025000 +vt 0.833333 0.025000 +vt 0.981481 0.025000 +vt 0.574074 0.250000 +vt 0.555556 0.350000 +vt 0.555556 0.250000 +vt 0.703704 0.350000 +vt 0.685185 0.250000 +vt 0.703704 0.250000 +vt 0.629630 0.350000 +vt 0.611111 0.250000 +vt 0.629630 0.250000 +vt 0.648148 0.250000 +vt 0.629630 0.350000 +vt 0.629630 0.250000 +vt 0.611111 0.350000 +vt 0.648148 0.350000 +vt 0.611111 0.225000 +vt 0.685185 0.225000 +vt 0.685185 0.350000 +vt 0.574074 0.350000 +vt 0.629630 0.350000 +vt 0.703704 0.350000 +vt 0.629630 0.350000 +vt 0.555556 0.350000 +vt 0.555556 0.250000 +vt 0.629630 0.250000 +vt 0.629630 0.250000 +vt 0.703704 0.250000 +vt 0.222222 0.800000 +vt 0.555556 0.525000 +vt 0.444444 0.775000 +vt 0.444444 0.525000 +vt 0.629630 0.825000 +vt 0.740741 0.775000 +vt 0.740741 0.825000 +vt 0.740741 0.725000 +vt 0.814815 0.525000 +vt 0.814815 0.775000 +vt 0.740741 0.525000 +vt 0.629630 0.425000 +vt 0.740741 0.425000 +vt 0.629630 0.525000 +vt 0.629630 0.725000 +vt 0.592593 0.775000 +vt 0.555556 0.775000 +vt 0.537037 0.850000 +vt 0.500000 0.900000 +vt 0.500000 0.850000 +vt 0.546296 0.900000 +vt 0.555556 0.875000 +vt 0.555556 0.900000 +vt 0.222222 0.925000 +vt 0.314815 0.962500 +vt 0.222222 0.962500 +vt 0.500000 0.775000 +vt 0.500000 0.825000 +vt 0.490741 0.800000 +vt 0.018519 0.850000 +vt 0.055556 0.875000 +vt 0.018519 0.875000 +vt 0.222222 1.000000 +vt 0.453704 0.775000 +vt 0.444444 0.800000 +vt 0.444444 0.775000 +vt 0.018519 0.700000 +vt 0.055556 0.725000 +vt 0.018519 0.725000 +vt 0.314815 0.700000 +vt 0.222222 0.737500 +vt 0.222222 0.700000 +vt 0.462963 0.775000 +vt 0.453704 0.800000 +vt 0.074074 0.850000 +vt 0.074074 0.700000 +vt 0.314815 0.775000 +vt 0.222222 0.775000 +vt 0.472222 0.775000 +vt 0.462963 0.800000 +vt 0.537037 0.912500 +vt 0.500000 0.912500 +vt 0.314815 0.812500 +vt 0.222222 0.812500 +vt 0.481481 0.775000 +vt 0.472222 0.800000 +vt 0.000000 0.850000 +vt 0.000000 0.700000 +vt 0.222222 0.850000 +vt 0.315778 0.750000 +vt 0.326344 0.715564 +vt 0.351852 0.701301 +vt 0.055556 0.850000 +vt 0.314815 0.850000 +vt 0.222222 0.887500 +vt 0.537037 0.825000 +vt 0.537037 0.775000 +vt 0.314815 0.887500 +vt 0.377360 0.815565 +vt 0.377360 0.884436 +vt 0.326344 0.884436 +vt 0.555556 0.850000 +vt 0.546296 0.875000 +vt 0.546296 0.850000 +vt 0.546296 0.837500 +vt 0.537037 0.900000 +vt 0.546296 0.800000 +vt 0.546296 0.825000 +vt 0.490741 0.850000 +vt 0.481481 0.875000 +vt 0.481481 0.850000 +vt 0.490741 0.900000 +vt 0.490741 0.875000 +vt 0.490741 0.837500 +vt 0.055556 0.725000 +vt 0.018519 0.850000 +vt 0.018519 0.725000 +vt 0.611111 0.887500 +vt 0.629630 0.912500 +vt 0.611111 0.912500 +vt 0.000000 0.850000 +vt 0.000000 0.700000 +vt 0.074074 0.850000 +vt 0.055556 0.850000 +vt 0.055556 0.700000 +vt 0.018519 0.875000 +vt 0.564815 0.850000 +vt 0.574074 0.862500 +vt 0.564815 0.862500 +vt 0.583333 0.775000 +vt 0.574074 0.850000 +vt 0.574074 0.775000 +vt 0.564815 0.775000 +vt 0.555556 0.850000 +vt 0.555556 0.775000 +vt 0.592593 0.775000 +vt 0.583333 0.850000 +vt 0.629630 0.825000 +vt 0.611111 0.850000 +vt 0.611111 0.825000 +vt 0.629630 0.887500 +vt 0.648148 0.850000 +vt 0.666667 0.887500 +vt 0.648148 0.887500 +vt 0.629630 0.850000 +vt 0.592593 0.887500 +vt 0.666667 0.862500 +vt 0.675926 0.837500 +vt 0.675926 0.862500 +vt 0.666667 0.887500 +vt 0.675926 0.887500 +vt 0.694444 0.887500 +vt 0.703704 0.862500 +vt 0.703704 0.887500 +vt 0.685185 0.862500 +vt 0.694444 0.862500 +vt 0.685185 0.887500 +vt 0.685185 0.825000 +vt 0.685185 0.837500 +vt 0.703704 0.837500 +vt 0.694444 0.837500 +vt 0.694444 0.862500 +vt 0.685185 0.837500 +vt 0.694444 0.837500 +vt 0.694444 0.887500 +vt 0.685185 0.862500 +vt 0.703704 0.862500 +vt 0.703704 0.887500 +vt 0.666667 0.887500 +vt 0.675926 0.862500 +vt 0.675926 0.887500 +vt 0.685185 0.887500 +vt 0.675926 0.825000 +vt 0.685185 0.825000 +vt 0.703704 0.837500 +vt 0.666667 0.862500 +vt 0.675926 0.837500 +vt 0.814815 0.662500 +vt 0.962963 0.700000 +vt 0.814815 0.700000 +vt 0.962963 0.737500 +vt 0.814815 0.737500 +vt 0.962963 0.437500 +vt 0.814815 0.475000 +vt 0.814815 0.437500 +vt 0.962963 0.475000 +vt 0.814815 0.512500 +vt 0.962963 0.512500 +vt 0.814815 0.550000 +vt 0.962963 0.550000 +vt 0.814815 0.587500 +vt 0.937455 0.253064 +vt 0.962963 0.238801 +vt 0.962963 0.336199 +vt 0.962963 0.587500 +vt 0.814815 0.625000 +vt 0.962963 0.662500 +vt 0.937455 0.421935 +vt 0.937455 0.353064 +vt 0.988471 0.353064 +vt 0.814815 0.225000 +vt 0.740741 0.325000 +vt 0.740741 0.225000 +vt 0.740741 0.375000 +vt 0.814815 0.325000 +vt 0.814815 0.375000 +vt 0.814815 0.175000 +vt 0.740741 0.175000 +vt 0.851852 0.325000 +vt 0.851852 0.225000 +vt 0.703704 0.225000 +vt 0.703704 0.325000 +vt 0.916667 0.200000 +vt 0.925926 0.275000 +vt 0.916667 0.275000 +vt 0.861111 0.200000 +vt 0.851852 0.275000 +vt 0.851852 0.200000 +vt 0.916667 0.175000 +vt 0.907407 0.200000 +vt 0.907407 0.175000 +vt 0.898148 0.175000 +vt 0.888889 0.200000 +vt 0.888889 0.175000 +vt 0.879630 0.175000 +vt 0.870370 0.200000 +vt 0.870370 0.175000 +vt 0.861111 0.175000 +vt 0.851852 0.175000 +vt 0.925926 0.200000 +vt 0.898148 0.200000 +vt 0.888889 0.200000 +vt 0.879630 0.200000 +vt 0.898148 0.275000 +vt 0.888889 0.325000 +vt 0.888889 0.275000 +vt 0.907407 0.325000 +vt 0.907407 0.275000 +vt 0.879630 0.275000 +vt 0.861111 0.275000 +vt 0.870370 0.275000 +vt 0.870370 0.425000 +vt 0.861111 0.437500 +vt 0.861111 0.425000 +vt 0.898148 0.337500 +vt 0.898148 0.325000 +vt 0.851852 0.425000 +vt 0.925926 0.325000 +vt 0.916667 0.325000 +vt 0.888889 0.275000 +vt 0.879630 0.425000 +vt 0.425926 0.800000 +vt 0.435185 0.825000 +vt 0.425926 0.825000 +vt 0.398148 0.787500 +vt 0.388889 0.800000 +vt 0.388889 0.787500 +vt 0.398148 0.712500 +vt 0.407407 0.800000 +vt 0.416667 0.825000 +vt 0.407407 0.825000 +vt 0.425926 0.787500 +vt 0.435185 0.800000 +vt 0.407407 0.787500 +vt 0.444444 0.800000 +vt 0.435185 0.787500 +vt 0.416667 0.712500 +vt 0.416667 0.787500 +vt 0.398148 0.850000 +vt 0.398148 0.825000 +vt 0.416667 0.800000 +vt 0.425926 0.712500 +vt 0.397836 0.706250 +vt 0.391360 0.711298 +vt 0.391360 0.701202 +vt 0.388889 0.825000 +vt 0.435185 0.712500 +vt 0.398148 0.800000 +vt 0.444444 0.787500 +vt 0.390314 0.856394 +vt 0.398148 0.850287 +vt 0.405982 0.856394 +vt 0.416667 0.850000 +vt 0.444444 0.850000 +vt 0.435185 0.850000 +vt 0.388889 0.850000 +vt 0.407407 0.850000 +vt 0.425926 0.850000 +vt 0.425926 0.800000 +vt 0.435185 0.825000 +vt 0.425926 0.825000 +vt 0.398148 0.787500 +vt 0.388889 0.800000 +vt 0.388889 0.787500 +vt 0.388889 0.712500 +vt 0.416667 0.800000 +vt 0.407407 0.825000 +vt 0.407407 0.800000 +vt 0.435185 0.787500 +vt 0.425926 0.787500 +vt 0.407407 0.712500 +vt 0.407407 0.787500 +vt 0.444444 0.800000 +vt 0.435185 0.800000 +vt 0.444444 0.787500 +vt 0.416667 0.787500 +vt 0.398148 0.825000 +vt 0.407407 0.850000 +vt 0.398148 0.850000 +vt 0.425926 0.712500 +vt 0.389201 0.706250 +vt 0.391360 0.701202 +vt 0.397836 0.706250 +vt 0.388889 0.825000 +vt 0.416667 0.825000 +vt 0.398148 0.800000 +vt 0.435185 0.712500 +vt 0.393625 0.851924 +vt 0.402671 0.851924 +vt 0.402671 0.873076 +vt 0.416667 0.850000 +vt 0.444444 0.850000 +vt 0.435185 0.850000 +vt 0.388889 0.850000 +vt 0.425926 0.850000 +vt 0.490741 0.825000 +vt 0.712963 0.150000 +vt -0.000000 0.325000 +vt 0.000000 0.400000 +vt 0.648148 0.425000 +vt 0.935185 0.150000 +vt 0.740741 -0.000000 +vt 0.481481 0.000000 +vt 0.074074 0.800000 +vt 0.629630 0.775000 +vt 0.777778 0.775000 +vt 0.314815 0.925000 +vt 0.314815 1.000000 +vt 0.055556 0.700000 +vt 0.314815 0.737500 +vt 0.481481 0.800000 +vt 0.377360 0.715564 +vt 0.351852 0.798699 +vt 0.387925 0.750000 +vt 0.377360 0.784436 +vt 0.326344 0.784436 +vt 0.315778 0.850000 +vt 0.326344 0.815564 +vt 0.351852 0.801301 +vt 0.387925 0.850000 +vt 0.351852 0.898699 +vt 0.481481 0.900000 +vt 0.074074 0.700000 +vt 0.018519 0.700000 +vt 0.055556 0.875000 +vt 0.592593 0.850000 +vt 0.666667 0.850000 +vt 0.592593 0.850000 +vt 0.666667 0.837500 +vt 0.675926 0.825000 +vt 0.666667 0.837500 +vt 0.988471 0.253064 +vt 0.999037 0.287500 +vt 0.988471 0.321936 +vt 0.937455 0.321936 +vt 0.926890 0.287500 +vt 0.962963 0.625000 +vt 0.926889 0.387500 +vt 0.962963 0.338801 +vt 0.999036 0.387500 +vt 0.988471 0.421936 +vt 0.962963 0.436199 +vt 0.925926 0.175000 +vt 0.888889 0.175000 +vt 0.870370 0.437500 +vt 0.907407 0.337500 +vt 0.888889 0.425000 +vt 0.388889 0.712500 +vt 0.407407 0.712500 +vt 0.444444 0.825000 +vt 0.395677 0.701202 +vt 0.395677 0.711298 +vt 0.389201 0.706250 +vt 0.444444 0.712500 +vt 0.405982 0.868606 +vt 0.398148 0.874712 +vt 0.390314 0.868606 +vt 0.398148 0.712500 +vt 0.444444 0.825000 +vt 0.416667 0.712500 +vt 0.395677 0.701202 +vt 0.395677 0.711298 +vt 0.391360 0.711298 +vt 0.444444 0.712500 +vt 0.407194 0.862500 +vt 0.393625 0.873076 +vt 0.389102 0.862500 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.0000 -0.2249 0.9744 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.9923 -0.1240 0.0000 +vn 0.8740 -0.1093 0.4734 +vn -0.8740 -0.1093 0.4734 +vn 0.0000 -0.1644 -0.9864 +vn -0.7960 -0.0995 -0.5970 +vn 0.7960 -0.0995 -0.5970 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 -0.7071 0.7071 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 0.3827 -0.9239 +vn -0.8729 -0.2182 -0.4364 +vn 0.0000 0.9239 -0.3827 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.9239 -0.3827 +vn -0.9701 -0.2425 0.0000 +vn -0.0000 -0.3827 -0.9239 +vn 0.0000 -0.4472 -0.8944 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.9774 -0.2106 0.0204 +vn -0.0000 -0.9954 0.0962 +vn -0.5000 -0.0833 -0.8620 +vn -0.4887 -0.1292 0.8628 +vn 0.4887 -0.2921 -0.8221 +vn -0.5000 0.0833 0.8620 +vn 0.5000 0.0833 0.8620 +vn -0.4887 -0.2921 -0.8221 +vn 0.4887 -0.1292 0.8628 +vn 0.5000 -0.0833 -0.8620 +vn -0.9774 -0.2106 0.0204 +vn 0.0000 0.9954 -0.0962 +vn 0.9774 -0.2087 -0.0348 +vn -0.0000 -0.9864 -0.1646 +vn -0.5000 0.1426 -0.8542 +vn -0.4887 -0.3481 0.8000 +vn 0.4887 -0.0694 -0.8697 +vn -0.5000 -0.1426 0.8542 +vn 0.5000 -0.1426 0.8542 +vn -0.4887 -0.0694 -0.8697 +vn 0.4887 -0.3481 0.8000 +vn 0.5000 0.1426 -0.8542 +vn -0.9774 -0.2087 -0.0348 +vn 0.0000 0.9864 0.1646 +vn -0.8729 -0.2182 0.4364 +s off +f 478/762/117 546/763/117 530/764/117 +f 530/765/118 549/766/118 537/767/118 +f 549/768/119 529/769/119 537/770/119 +f 534/771/118 551/772/118 540/773/118 +f 491/774/118 496/775/118 492/776/118 +f 488/777/120 490/778/120 487/779/120 +f 485/780/121 490/778/121 486/781/121 +f 484/782/118 488/777/118 483/783/118 +f 510/784/122 513/785/122 509/786/122 +f 509/787/123 511/788/123 507/789/123 +f 494/790/121 497/791/121 493/792/121 +f 498/793/124 495/794/124 497/791/124 +f 492/795/118 499/796/118 484/797/118 +f 486/798/121 502/799/121 494/800/121 +f 483/801/118 505/802/118 491/803/118 +f 493/804/121 504/805/121 485/806/121 +f 505/802/117 504/805/117 506/807/117 +f 499/796/119 502/799/119 500/808/119 +f 499/796/125 490/778/125 489/809/125 +f 484/782/118 499/810/118 489/809/118 +f 486/781/121 490/778/121 500/811/121 +f 494/800/121 502/799/121 498/812/121 +f 498/813/126 501/814/126 496/815/126 +f 492/795/118 496/816/118 501/814/118 +f 493/792/121 497/791/121 506/817/121 +f 495/794/127 506/807/127 497/791/127 +f 491/774/118 505/818/118 495/794/118 +f 485/806/121 504/805/121 487/819/121 +f 488/777/128 504/805/128 503/820/128 +f 483/801/118 488/821/118 503/820/118 +f 507/822/129 516/823/129 508/824/129 +f 509/787/130 513/785/130 512/825/130 +f 507/789/131 511/788/131 515/826/131 +f 508/827/132 519/828/132 517/829/132 +f 510/830/132 521/831/132 520/832/132 +f 508/824/133 516/823/133 518/833/133 +f 510/784/134 520/832/134 514/834/134 +f 475/835/124 525/836/124 482/837/124 +f 476/838/117 522/839/117 475/835/117 +f 477/840/120 523/841/120 476/838/120 +f 482/842/119 524/843/119 477/840/119 +f 526/844/117 548/845/117 534/846/117 +f 547/847/119 481/848/119 533/849/119 +f 550/850/118 533/851/118 539/852/118 +f 546/763/120 543/853/120 547/847/120 +f 548/845/120 545/854/120 549/768/120 +f 538/855/118 553/856/118 539/857/118 +f 540/858/118 555/859/118 541/860/118 +f 557/861/119 532/862/119 480/863/119 +f 561/864/118 538/865/118 532/866/118 +f 541/867/118 562/868/118 535/869/118 +f 559/870/119 536/871/119 528/872/119 +f 531/873/117 556/874/117 479/875/117 +f 563/876/118 531/877/118 536/878/118 +f 535/879/117 558/880/117 527/881/117 +f 552/882/118 538/865/118 564/883/118 +f 541/867/118 555/884/118 565/885/118 +f 540/773/118 551/772/118 554/886/118 +f 539/852/118 553/887/118 550/850/118 +f 552/888/126 572/889/126 568/890/126 +f 553/856/125 566/891/125 550/850/125 +f 555/859/127 573/892/127 565/885/127 +f 552/893/119 569/894/119 553/856/119 +f 554/895/128 567/896/128 570/897/128 +f 554/895/117 571/898/117 555/859/117 +f 546/899/120 547/900/120 566/891/120 +f 562/901/124 559/870/124 558/880/124 +f 557/861/124 560/902/124 561/903/124 +f 572/889/124 564/883/124 561/864/124 +f 570/897/121 577/904/121 571/898/121 +f 568/905/121 575/906/121 569/894/121 +f 569/894/135 575/907/135 566/891/135 +f 570/897/135 567/896/135 576/908/135 +f 566/891/135 576/908/135 567/896/135 +f 573/892/136 571/898/136 577/909/136 +f 572/889/136 574/910/136 568/890/136 +f 572/889/136 577/909/136 574/910/136 +f 581/911/119 480/912/119 481/913/119 +f 527/914/117 582/915/117 526/916/117 +f 479/917/117 578/918/117 478/919/117 +f 585/920/119 528/921/119 529/922/119 +f 579/923/118 581/911/118 578/918/118 +f 582/915/118 584/924/118 585/920/118 +f 542/925/137 581/911/137 543/853/137 +f 544/926/137 585/920/137 545/854/137 +f 558/880/138 584/924/138 583/927/138 +f 580/928/138 556/874/138 557/861/138 +f 479/875/117 556/874/117 579/929/117 +f 527/881/117 558/880/117 583/930/117 +f 528/872/119 584/931/119 559/870/119 +f 480/863/119 580/932/119 557/861/119 +f 481/848/119 543/853/119 581/933/119 +f 478/762/117 578/934/117 542/925/117 +f 529/769/119 545/854/119 585/935/119 +f 526/844/117 582/936/117 544/926/117 +f 475/937/118 477/840/118 476/838/118 +f 586/938/120 589/939/120 587/940/120 +f 588/941/118 591/942/118 589/943/118 +f 595/944/119 587/945/119 589/946/119 +f 594/947/121 586/948/121 587/949/121 +f 593/950/124 595/944/124 592/951/124 +f 591/942/138 592/951/138 595/944/138 +f 592/951/117 590/952/117 588/953/117 +f 628/954/117 632/955/117 629/956/117 +f 635/957/139 638/958/139 634/959/139 +f 598/960/140 601/961/140 600/962/140 +f 633/963/141 631/964/141 643/965/141 +f 615/966/118 617/967/118 619/968/118 +f 601/961/142 602/969/142 600/962/142 +f 622/970/120 624/971/120 623/972/120 +f 618/973/143 597/974/143 614/975/143 +f 603/976/144 604/977/144 602/978/144 +f 620/979/117 625/980/117 622/970/117 +f 617/981/124 597/974/124 616/982/124 +f 604/977/145 607/983/145 606/984/145 +f 621/985/124 627/986/124 620/979/124 +f 632/955/118 634/987/118 633/988/118 +f 606/984/146 609/989/146 608/990/146 +f 623/991/119 626/992/119 621/985/119 +f 614/975/120 619/993/120 618/994/120 +f 609/989/147 610/995/147 608/990/147 +f 607/996/119 605/997/119 603/998/119 +f 596/999/117 614/975/117 597/974/117 +f 611/1000/148 612/1001/148 610/995/148 +f 630/1002/121 629/956/121 631/964/121 +f 631/964/149 634/1003/149 630/1002/149 +f 613/1004/150 598/960/150 612/1001/150 +f 604/1005/117 608/1006/117 612/1007/117 +f 636/1008/124 639/1009/124 637/1010/124 +f 628/954/121 636/1011/121 637/1010/121 +f 628/954/117 639/1009/117 635/1012/117 +f 630/1002/126 638/1013/126 636/1014/126 +f 640/1015/120 643/1016/120 641/1017/120 +f 632/1018/151 643/1016/151 642/1019/151 +f 629/956/121 641/1020/121 631/964/121 +f 629/956/117 642/1019/117 640/1015/117 +f 646/1021/119 644/1022/119 645/1023/119 +f 662/1024/118 660/1025/118 661/1026/118 +f 645/1023/124 650/1027/124 651/1028/124 +f 646/1021/120 648/1029/120 647/1030/120 +f 645/1023/152 649/1031/152 646/1021/152 +f 647/1030/118 650/1032/118 644/1022/118 +f 658/1033/118 656/1034/118 657/1035/118 +f 654/1036/120 659/1037/120 655/1038/120 +f 653/1039/124 657/1040/124 652/1041/124 +f 655/1038/119 658/1033/119 653/1039/119 +f 652/1042/117 656/1043/117 654/1036/117 +f 664/1044/121 666/1045/121 665/1046/121 +f 666/1045/119 663/1047/119 662/1024/119 +f 664/1048/117 661/1049/117 660/1050/117 +f 667/1051/120 660/1050/120 663/1047/120 +f 661/1052/124 666/1045/124 662/1024/124 +f 674/1053/117 676/1054/117 672/1055/117 +f 670/1056/117 672/1055/117 668/1057/117 +f 671/1058/121 674/1059/121 670/1060/121 +f 671/1058/119 673/1061/119 675/1062/119 +f 668/1057/153 673/1061/153 669/1063/153 +f 676/1054/124 679/1064/124 677/1065/124 +f 675/1062/154 678/1066/154 674/1059/154 +f 675/1062/119 677/1065/119 679/1067/119 +f 672/1055/153 677/1065/153 673/1061/153 +f 686/1068/117 688/1069/117 690/1070/117 +f 682/1071/117 684/1072/117 686/1068/117 +f 682/1071/121 687/1073/121 683/1074/121 +f 683/1075/119 685/1076/119 681/1077/119 +f 681/1077/155 684/1072/155 680/1078/155 +f 688/1069/120 691/1079/120 690/1080/120 +f 686/1068/156 691/1081/156 687/1073/156 +f 687/1082/119 689/1083/119 685/1076/119 +f 684/1072/155 689/1083/155 688/1069/155 +f 692/1084/140 695/1085/140 694/1086/140 +f 694/1086/142 697/1087/142 696/1088/142 +f 697/1089/144 698/1090/144 696/1091/144 +f 699/1092/145 700/1093/145 698/1090/145 +f 701/1094/146 702/1095/146 700/1093/146 +f 703/1096/147 704/1097/147 702/1095/147 +f 699/1098/119 697/1099/119 705/1100/119 +f 705/1101/148 706/1102/148 704/1097/148 +f 706/1102/150 693/1103/150 692/1084/150 +f 706/1104/117 694/1105/117 698/1106/117 +f 714/1107/124 712/1108/124 713/1109/124 +f 710/1110/118 715/1111/118 711/1112/118 +f 709/1113/121 713/1109/121 708/1114/121 +f 711/1115/119 714/1107/119 709/1116/119 +f 708/1117/117 712/1108/117 710/1118/117 +f 731/1119/137 736/1120/137 739/1121/137 +f 725/1122/117 732/1123/117 724/1124/117 +f 723/1125/119 730/1126/119 721/1127/119 +f 720/1128/117 728/1129/117 722/1130/117 +f 719/1131/119 726/1132/119 717/1133/119 +f 716/1134/117 724/1124/117 718/1135/117 +f 723/1125/120 728/1136/120 731/1119/120 +f 721/1127/124 729/1137/124 720/1128/124 +f 719/1131/120 724/1138/120 727/1139/120 +f 717/1133/124 725/1122/124 716/1134/124 +f 737/1140/117 744/1141/117 736/1142/117 +f 739/1121/119 746/1143/119 738/1144/119 +f 729/1137/136 738/1144/136 737/1140/136 +f 724/1138/137 735/1145/137 727/1139/137 +f 726/1132/136 733/1146/136 725/1122/136 +f 730/1126/119 739/1121/119 738/1144/119 +f 729/1137/117 736/1142/117 728/1129/117 +f 726/1132/119 735/1145/119 734/1147/119 +f 742/1148/118 740/1149/118 741/1150/118 +f 746/1143/118 744/1151/118 745/1152/118 +f 735/1145/119 742/1148/119 734/1147/119 +f 733/1146/117 740/1153/117 732/1123/117 +f 739/1121/120 744/1154/120 747/1155/120 +f 738/1144/124 745/1152/124 737/1140/124 +f 732/1156/120 743/1157/120 735/1145/120 +f 734/1147/124 741/1150/124 733/1146/124 +f 764/1158/157 766/1159/157 768/1160/157 +f 752/1161/158 749/1162/158 750/1163/158 +f 750/1163/159 753/1164/159 752/1161/159 +f 762/1165/160 769/1166/160 770/1167/160 +f 758/1168/158 765/1169/158 764/1158/158 +f 753/1164/119 754/1170/119 752/1161/119 +f 749/1171/161 766/1159/161 765/1169/161 +f 760/1172/158 749/1171/158 765/1169/158 +f 754/1170/162 757/1173/162 756/1174/162 +f 770/1167/119 777/1175/119 771/1176/119 +f 758/1168/158 763/1177/158 756/1174/158 +f 756/1174/163 759/1178/163 758/1168/163 +f 751/1179/158 759/1180/158 755/1181/158 +f 749/1162/164 771/1176/164 767/1182/164 +f 758/1168/117 761/1183/117 760/1172/117 +f 763/1177/165 768/1160/165 769/1166/165 +f 752/1161/158 762/1165/158 748/1184/158 +f 761/1183/166 750/1185/166 760/1172/166 +f 754/1170/158 763/1177/158 762/1165/158 +f 762/1165/167 771/1176/167 748/1184/167 +f 775/1186/168 774/1187/168 772/1188/168 +f 768/1160/163 775/1189/163 769/1166/163 +f 766/1159/166 773/1190/166 772/1191/166 +f 767/1182/159 777/1175/159 773/1192/159 +f 769/1166/162 776/1193/162 770/1167/162 +f 768/1160/117 772/1191/117 774/1194/117 +f 794/1195/169 796/1196/169 798/1197/169 +f 782/1198/170 779/1199/170 780/1200/170 +f 781/1201/171 782/1198/171 780/1200/171 +f 793/1202/172 800/1203/172 792/1204/172 +f 790/1205/170 794/1195/170 788/1206/170 +f 782/1198/119 785/1207/119 784/1208/119 +f 779/1209/173 796/1196/173 795/1210/173 +f 780/1211/170 795/1210/170 790/1205/170 +f 785/1207/174 786/1212/174 784/1208/174 +f 801/1213/119 806/1214/119 807/1215/119 +f 788/1206/170 793/1202/170 786/1212/170 +f 786/1212/175 789/1216/175 788/1206/175 +f 787/1217/170 785/1218/170 781/1219/170 +f 779/1199/176 801/1213/176 797/1220/176 +f 789/1216/117 790/1205/117 788/1206/117 +f 793/1202/177 798/1197/177 799/1221/177 +f 782/1198/170 792/1204/170 778/1222/170 +f 791/1223/178 780/1211/178 790/1205/178 +f 784/1208/170 793/1202/170 792/1204/170 +f 792/1204/179 801/1213/179 778/1222/179 +f 804/1224/180 802/1225/180 807/1226/180 +f 798/1197/175 805/1227/175 799/1221/175 +f 796/1196/178 803/1228/178 802/1229/178 +f 797/1220/171 807/1215/171 803/1230/171 +f 799/1221/174 806/1214/174 800/1203/174 +f 798/1197/117 802/1229/117 804/1231/117 +f 638/1013/181 630/1002/181 634/1003/181 +f 643/965/125 631/964/125 641/1232/125 +f 478/762/117 542/925/117 546/763/117 +f 530/765/118 546/899/118 549/766/118 +f 549/768/119 545/854/119 529/769/119 +f 534/771/118 548/1233/118 551/772/118 +f 491/774/118 495/794/118 496/775/118 +f 488/777/120 489/809/120 490/778/120 +f 485/780/121 487/779/121 490/778/121 +f 484/782/118 489/809/118 488/777/118 +f 510/784/122 514/834/122 513/785/122 +f 509/787/123 512/825/123 511/788/123 +f 494/790/121 498/793/121 497/791/121 +f 498/793/124 496/775/124 495/794/124 +f 492/795/118 501/814/118 499/796/118 +f 486/798/121 500/808/121 502/799/121 +f 483/801/118 503/820/118 505/802/118 +f 493/804/121 506/807/121 504/805/121 +f 505/802/117 503/820/117 504/805/117 +f 499/796/119 501/814/119 502/799/119 +f 499/796/125 500/808/125 490/778/125 +f 498/813/126 502/799/126 501/814/126 +f 495/794/127 505/802/127 506/807/127 +f 488/777/128 487/779/128 504/805/128 +f 507/822/129 515/826/129 516/823/129 +f 508/827/132 518/833/132 519/828/132 +f 510/830/132 517/1234/132 521/831/132 +f 475/835/124 522/839/124 525/836/124 +f 476/838/117 523/841/117 522/839/117 +f 477/840/120 524/843/120 523/841/120 +f 482/842/119 525/1235/119 524/843/119 +f 526/844/117 544/926/117 548/845/117 +f 547/847/119 543/853/119 481/848/119 +f 550/850/118 547/900/118 533/851/118 +f 546/763/120 542/925/120 543/853/120 +f 548/845/120 544/926/120 545/854/120 +f 538/855/118 552/893/118 553/856/118 +f 540/858/118 554/895/118 555/859/118 +f 557/861/119 561/903/119 532/862/119 +f 561/864/118 564/883/118 538/865/118 +f 541/867/118 565/885/118 562/868/118 +f 559/870/119 563/1236/119 536/871/119 +f 531/873/117 560/902/117 556/874/117 +f 563/876/118 560/1237/118 531/877/118 +f 535/879/117 562/901/117 558/880/117 +f 552/888/126 564/883/126 572/889/126 +f 553/856/125 569/894/125 566/891/125 +f 555/859/127 571/898/127 573/892/127 +f 552/893/119 568/905/119 569/894/119 +f 554/895/128 551/772/128 567/896/128 +f 554/895/117 570/897/117 571/898/117 +f 547/900/120 550/850/120 566/891/120 +f 566/891/120 567/896/120 549/766/120 +f 567/896/120 551/772/120 548/1233/120 +f 549/766/120 567/896/120 548/1233/120 +f 549/766/120 546/899/120 566/891/120 +f 562/901/124 563/1236/124 559/870/124 +f 557/861/124 556/874/124 560/902/124 +f 561/864/124 560/1237/124 572/889/124 +f 560/1237/124 563/876/124 572/889/124 +f 563/876/124 562/868/124 573/892/124 +f 562/868/124 565/885/124 573/892/124 +f 573/892/124 572/889/124 563/876/124 +f 570/897/121 576/1238/121 577/904/121 +f 568/905/121 574/1239/121 575/906/121 +f 566/891/135 575/907/135 576/908/135 +f 572/889/136 573/892/136 577/909/136 +f 581/911/119 580/928/119 480/912/119 +f 527/914/117 583/927/117 582/915/117 +f 479/917/117 579/923/117 578/918/117 +f 585/920/119 584/924/119 528/921/119 +f 579/923/118 580/928/118 581/911/118 +f 582/915/118 583/927/118 584/924/118 +f 542/925/137 578/918/137 581/911/137 +f 544/926/137 582/915/137 585/920/137 +f 558/880/138 559/870/138 584/924/138 +f 580/928/138 579/923/138 556/874/138 +f 475/937/118 482/1240/118 477/840/118 +f 586/938/120 588/953/120 589/939/120 +f 588/941/118 590/1241/118 591/942/118 +f 589/946/119 591/1242/119 595/944/119 +f 595/944/119 594/947/119 587/945/119 +f 594/947/121 593/950/121 586/948/121 +f 593/950/124 594/947/124 595/944/124 +f 591/942/138 590/1241/138 592/951/138 +f 588/953/117 586/938/117 592/951/117 +f 586/938/117 593/950/117 592/951/117 +f 628/954/117 635/1012/117 632/955/117 +f 635/957/139 639/1009/139 638/958/139 +f 598/960/140 599/1243/140 601/961/140 +f 615/966/118 596/999/118 617/967/118 +f 601/961/142 603/1244/142 602/969/142 +f 622/970/120 625/980/120 624/971/120 +f 618/973/143 616/1245/143 597/974/143 +f 603/976/144 605/1246/144 604/977/144 +f 620/979/117 627/986/117 625/980/117 +f 617/981/124 596/999/124 597/974/124 +f 604/977/145 605/1246/145 607/983/145 +f 621/985/124 626/992/124 627/986/124 +f 632/955/118 635/1012/118 634/987/118 +f 606/984/146 607/983/146 609/989/146 +f 623/991/119 624/1247/119 626/992/119 +f 614/975/120 615/966/120 619/993/120 +f 609/989/147 611/1000/147 610/995/147 +f 603/998/119 601/1248/119 611/1249/119 +f 601/1248/119 599/1250/119 611/1249/119 +f 599/1250/119 613/1251/119 611/1249/119 +f 611/1249/119 609/1252/119 603/998/119 +f 609/1252/119 607/996/119 603/998/119 +f 596/999/117 615/966/117 614/975/117 +f 611/1000/148 613/1004/148 612/1001/148 +f 630/1002/121 628/954/121 629/956/121 +f 631/964/149 633/963/149 634/1003/149 +f 613/1004/150 599/1243/150 598/960/150 +f 612/1007/117 598/1253/117 600/1254/117 +f 600/1254/117 602/1255/117 604/1005/117 +f 604/1005/117 606/1256/117 608/1006/117 +f 608/1006/117 610/1257/117 612/1007/117 +f 612/1007/117 600/1254/117 604/1005/117 +f 636/1008/124 638/958/124 639/1009/124 +f 628/954/121 630/1002/121 636/1011/121 +f 628/954/117 637/1010/117 639/1009/117 +f 640/1015/120 642/1019/120 643/1016/120 +f 632/1018/151 633/1258/151 643/1016/151 +f 629/956/121 640/1015/121 641/1020/121 +f 629/956/117 632/955/117 642/1019/117 +f 646/1021/119 647/1030/119 644/1022/119 +f 662/1024/118 663/1047/118 660/1025/118 +f 645/1023/124 644/1022/124 650/1027/124 +f 646/1021/120 649/1259/120 648/1029/120 +f 645/1023/152 651/1260/152 649/1031/152 +f 647/1030/118 648/1261/118 650/1032/118 +f 658/1033/118 659/1037/118 656/1034/118 +f 654/1036/120 656/1043/120 659/1037/120 +f 653/1039/124 658/1033/124 657/1040/124 +f 655/1038/119 659/1037/119 658/1033/119 +f 652/1042/117 657/1262/117 656/1043/117 +f 664/1044/121 667/1051/121 666/1045/121 +f 666/1045/119 667/1051/119 663/1047/119 +f 664/1048/117 665/1263/117 661/1049/117 +f 667/1051/120 664/1048/120 660/1050/120 +f 661/1052/124 665/1264/124 666/1045/124 +f 674/1053/117 678/1265/117 676/1054/117 +f 670/1056/117 674/1053/117 672/1055/117 +f 671/1058/121 675/1062/121 674/1059/121 +f 671/1058/119 669/1063/119 673/1061/119 +f 668/1057/153 672/1055/153 673/1061/153 +f 676/1054/124 678/1266/124 679/1064/124 +f 675/1062/154 679/1067/154 678/1066/154 +f 675/1062/119 673/1061/119 677/1065/119 +f 672/1055/153 676/1054/153 677/1065/153 +f 686/1068/117 684/1072/117 688/1069/117 +f 682/1071/117 680/1078/117 684/1072/117 +f 682/1071/121 686/1068/121 687/1073/121 +f 683/1075/119 687/1082/119 685/1076/119 +f 681/1077/155 685/1076/155 684/1072/155 +f 688/1069/120 689/1083/120 691/1079/120 +f 686/1068/156 690/1070/156 691/1081/156 +f 687/1082/119 691/1267/119 689/1083/119 +f 684/1072/155 685/1076/155 689/1083/155 +f 692/1084/140 693/1103/140 695/1085/140 +f 694/1086/142 695/1085/142 697/1087/142 +f 697/1089/144 699/1092/144 698/1090/144 +f 699/1092/145 701/1094/145 700/1093/145 +f 701/1094/146 703/1096/146 702/1095/146 +f 703/1096/147 705/1101/147 704/1097/147 +f 697/1099/119 695/1268/119 705/1100/119 +f 695/1268/119 693/1269/119 705/1100/119 +f 693/1269/119 707/1270/119 705/1100/119 +f 705/1100/119 703/1271/119 701/1272/119 +f 701/1272/119 699/1098/119 705/1100/119 +f 705/1101/148 707/1273/148 706/1102/148 +f 706/1102/150 707/1273/150 693/1103/150 +f 706/1104/117 692/1274/117 694/1105/117 +f 694/1105/117 696/1275/117 698/1106/117 +f 698/1106/117 700/1276/117 702/1277/117 +f 702/1277/117 704/1278/117 698/1106/117 +f 704/1278/117 706/1104/117 698/1106/117 +f 714/1107/124 715/1111/124 712/1108/124 +f 710/1110/118 712/1108/118 715/1111/118 +f 709/1113/121 714/1107/121 713/1109/121 +f 711/1115/119 715/1111/119 714/1107/119 +f 708/1117/117 713/1109/117 712/1108/117 +f 731/1119/137 728/1136/137 736/1120/137 +f 725/1122/117 733/1146/117 732/1123/117 +f 723/1125/119 731/1119/119 730/1126/119 +f 720/1128/117 729/1137/117 728/1129/117 +f 719/1131/119 727/1139/119 726/1132/119 +f 716/1134/117 725/1122/117 724/1124/117 +f 723/1125/120 722/1279/120 728/1136/120 +f 721/1127/124 730/1126/124 729/1137/124 +f 719/1131/120 718/1280/120 724/1138/120 +f 717/1133/124 726/1132/124 725/1122/124 +f 737/1140/117 745/1152/117 744/1141/117 +f 739/1121/119 747/1155/119 746/1143/119 +f 729/1137/136 730/1126/136 738/1144/136 +f 724/1138/137 732/1156/137 735/1145/137 +f 726/1132/136 734/1147/136 733/1146/136 +f 730/1126/119 731/1119/119 739/1121/119 +f 729/1137/117 737/1140/117 736/1142/117 +f 726/1132/119 727/1139/119 735/1145/119 +f 742/1148/118 743/1281/118 740/1149/118 +f 746/1143/118 747/1282/118 744/1151/118 +f 735/1145/119 743/1157/119 742/1148/119 +f 733/1146/117 741/1150/117 740/1153/117 +f 739/1121/120 736/1120/120 744/1154/120 +f 738/1144/124 746/1143/124 745/1152/124 +f 732/1156/120 740/1283/120 743/1157/120 +f 734/1147/124 742/1148/124 741/1150/124 +f 764/1158/157 765/1169/157 766/1159/157 +f 752/1161/158 748/1184/158 749/1162/158 +f 750/1163/159 751/1284/159 753/1164/159 +f 762/1165/160 763/1177/160 769/1166/160 +f 758/1168/158 760/1172/158 765/1169/158 +f 753/1164/119 755/1285/119 754/1170/119 +f 749/1171/161 767/1286/161 766/1159/161 +f 760/1172/158 750/1185/158 749/1171/158 +f 754/1170/162 755/1285/162 757/1173/162 +f 770/1167/119 776/1193/119 777/1175/119 +f 758/1168/158 764/1158/158 763/1177/158 +f 756/1174/163 757/1173/163 759/1178/163 +f 755/1181/158 753/1287/158 751/1179/158 +f 751/1179/158 761/1288/158 759/1180/158 +f 759/1180/158 757/1289/158 755/1181/158 +f 749/1162/164 748/1184/164 771/1176/164 +f 758/1168/117 759/1178/117 761/1183/117 +f 763/1177/165 764/1158/165 768/1160/165 +f 752/1161/158 754/1170/158 762/1165/158 +f 761/1183/166 751/1290/166 750/1185/166 +f 754/1170/158 756/1174/158 763/1177/158 +f 762/1165/167 770/1167/167 771/1176/167 +f 772/1188/168 773/1291/168 775/1186/168 +f 773/1291/168 777/1292/168 775/1186/168 +f 777/1292/168 776/1293/168 775/1186/168 +f 768/1160/163 774/1194/163 775/1189/163 +f 766/1159/166 767/1286/166 773/1190/166 +f 767/1182/159 771/1176/159 777/1175/159 +f 769/1166/162 775/1189/162 776/1193/162 +f 768/1160/117 766/1159/117 772/1191/117 +f 794/1195/169 795/1210/169 796/1196/169 +f 782/1198/170 778/1222/170 779/1199/170 +f 781/1201/171 783/1294/171 782/1198/171 +f 793/1202/172 799/1221/172 800/1203/172 +f 790/1205/170 795/1210/170 794/1195/170 +f 782/1198/119 783/1294/119 785/1207/119 +f 779/1209/173 797/1295/173 796/1196/173 +f 780/1211/170 779/1209/170 795/1210/170 +f 785/1207/174 787/1296/174 786/1212/174 +f 801/1213/119 800/1203/119 806/1214/119 +f 788/1206/170 794/1195/170 793/1202/170 +f 786/1212/175 787/1296/175 789/1216/175 +f 785/1218/170 783/1297/170 781/1219/170 +f 781/1219/170 791/1298/170 789/1299/170 +f 789/1299/170 787/1217/170 781/1219/170 +f 779/1199/176 778/1222/176 801/1213/176 +f 789/1216/117 791/1223/117 790/1205/117 +f 793/1202/177 794/1195/177 798/1197/177 +f 782/1198/170 784/1208/170 792/1204/170 +f 791/1223/178 781/1300/178 780/1211/178 +f 784/1208/170 786/1212/170 793/1202/170 +f 792/1204/179 800/1203/179 801/1213/179 +f 802/1225/180 803/1301/180 807/1226/180 +f 807/1226/180 806/1302/180 805/1303/180 +f 805/1303/180 804/1224/180 807/1226/180 +f 798/1197/175 804/1231/175 805/1227/175 +f 796/1196/178 797/1295/178 803/1228/178 +f 797/1220/171 801/1213/171 807/1215/171 +f 799/1221/174 805/1227/174 806/1214/174 +f 798/1197/117 796/1196/117 802/1229/117 diff --git a/src/main/resources/assets/hbm/models/blocks/funnel.obj b/src/main/resources/assets/hbm/models/blocks/funnel.obj new file mode 100644 index 000000000..c166fd7a3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/funnel.obj @@ -0,0 +1,90 @@ +# Blender v2.79 (sub 0) OBJ File: 'funnel.blend' +# www.blender.org +o Bottom +v -0.250000 0.000000 0.250000 +v -0.250000 0.000000 -0.250000 +v 0.250000 0.000000 0.250000 +v 0.250000 0.000000 -0.250000 +vt 0.750000 0.750000 +vt 0.250000 0.250000 +vt 0.750000 0.250000 +vt 0.250000 0.750000 +vn 0.0000 -1.0000 0.0000 +s off +f 4/1/1 1/2/1 2/3/1 +f 4/1/1 3/4/1 1/2/1 +o Top +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt -0.000000 1.000000 +vn 0.0000 1.0000 0.0000 +s off +f 6/5/2 7/6/2 8/7/2 +f 6/5/2 5/8/2 7/6/2 +o Side +v -0.250000 0.000000 0.250000 +v -0.500000 1.000000 0.500000 +v -0.250000 0.000000 -0.250000 +v -0.500000 1.000000 -0.500000 +v 0.250000 0.000000 0.250000 +v 0.500000 1.000000 0.500000 +v 0.250000 0.000000 -0.250000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.000000 +vt 0.750000 -0.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000097 0.999903 +vt 0.000097 0.999903 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.8944 -0.4472 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn -0.8944 -0.4472 0.0000 +s off +f 10/9/3 18/10/3 17/11/3 +f 12/12/4 19/13/4 18/14/4 +f 16/15/5 20/16/5 19/17/5 +f 14/18/6 17/19/6 20/20/6 +f 20/20/7 9/21/7 13/22/7 +f 19/17/8 13/23/8 15/24/8 +f 18/14/9 15/25/9 11/26/9 +f 17/11/10 11/27/10 9/28/10 +f 10/9/3 12/29/3 18/10/3 +f 12/12/4 16/30/4 19/13/4 +f 16/15/5 14/31/5 20/16/5 +f 14/18/6 10/32/6 17/19/6 +f 20/20/7 17/19/7 9/21/7 +f 19/17/8 20/16/8 13/23/8 +f 18/14/9 19/13/9 15/25/9 +f 17/11/10 18/10/10 11/27/10 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj new file mode 100644 index 000000000..2bb100bbd --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide.obj @@ -0,0 +1,1366 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve_wide.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.312500 0.187500 0.500000 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.502685 0.000000 0.251008 +v 0.489705 0.000000 0.076696 +v -1.535368 0.000000 -0.122565 +v 0.457022 0.000000 -0.296877 +v -1.535368 0.062500 -0.122565 +v -1.502685 0.062500 0.251008 +v 0.489705 0.062500 0.076696 +v 0.457022 0.062500 -0.296877 +v 0.405654 0.125000 -0.166905 +v 0.094343 0.125000 -0.139669 +v 0.416548 0.125000 -0.042381 +v 0.105237 0.125000 -0.015145 +v 0.405654 0.062500 -0.166905 +v 0.094343 0.062500 -0.139669 +v 0.416548 0.062500 -0.042381 +v 0.105237 0.062500 -0.015145 +v -1.451317 0.062500 0.121036 +v -1.140006 0.062500 0.093800 +v -1.462212 0.062500 -0.003488 +v -1.150901 0.062500 -0.030724 +v -1.451317 0.125000 0.121036 +v -1.140006 0.125000 0.093800 +v -1.462212 0.125000 -0.003488 +v -1.150901 0.125000 -0.030724 +v -6.500000 0.187500 -6.249998 +v -6.500000 0.187500 -6.312497 +v -6.500000 0.062500 -6.312497 +v -6.500000 0.062500 -6.249998 +v -6.500000 0.187500 -4.749999 +v -6.500000 0.062500 -4.749999 +v -6.500000 0.187500 -4.687499 +v -6.500000 0.062500 -4.687499 +v -5.599200 0.187500 -4.608689 +v -5.588348 0.187500 -4.670239 +v -5.588348 0.062500 -4.670239 +v -5.599200 0.062500 -4.608689 +v -5.327875 0.062500 -6.147450 +v -5.327875 0.187500 -6.147450 +v -5.317022 0.062500 -6.209000 +v -5.317022 0.187500 -6.209000 +v -4.191364 0.187500 -5.842923 +v -4.169989 0.187500 -5.901654 +v -4.169989 0.062500 -5.901654 +v -4.191364 0.062500 -5.842923 +v -4.704395 0.187500 -4.433385 +v -4.704395 0.062500 -4.433385 +v -4.725770 0.187500 -4.374655 +v -4.725770 0.062500 -4.374655 +v -3.906250 0.187500 -3.992507 +v -3.875001 0.187500 -4.046633 +v -3.875001 0.062500 -4.046633 +v -3.906250 0.062500 -3.992507 +v -3.125000 0.062500 -5.345670 +v -3.125000 0.187500 -5.345670 +v -3.093751 0.062500 -5.399796 +v -3.093751 0.187500 -5.399796 +v -2.161184 0.187500 -4.670798 +v -2.121011 0.187500 -4.718676 +v -2.121011 0.062500 -4.718676 +v -2.161184 0.062500 -4.670798 +v -3.125366 0.187500 -3.521733 +v -3.125366 0.062500 -3.521733 +v -3.165539 0.187500 -3.473855 +v -3.165539 0.062500 -3.473855 +v -2.526145 0.187500 -2.834461 +v -2.478267 0.187500 -2.874635 +v -2.478267 0.062500 -2.874635 +v -2.526145 0.062500 -2.834461 +v -1.329201 0.062500 -3.838815 +v -1.329201 0.187500 -3.838815 +v -1.281323 0.062500 -3.878989 +v -1.281323 0.187500 -3.878989 +v -0.654329 0.187500 -2.874999 +v -0.600204 0.187500 -2.906249 +v -0.600204 0.062500 -2.906249 +v -0.654329 0.062500 -2.874999 +v -1.953367 0.187500 -2.125000 +v -1.953367 0.062500 -2.125000 +v -2.007493 0.187500 -2.093750 +v -2.007493 0.062500 -2.093750 +v -1.625344 0.187500 -1.274230 +v -1.566614 0.187500 -1.295606 +v -1.566614 0.062500 -1.295606 +v -1.625344 0.062500 -1.274230 +v -0.157075 0.062500 -1.808635 +v -0.157075 0.187500 -1.808635 +v -0.098345 0.062500 -1.830012 +v -0.098345 0.187500 -1.830012 +v 0.147452 0.187500 -0.672125 +v 0.209002 0.187500 -0.682978 +v 0.209002 0.062500 -0.682978 +v 0.147452 0.062500 -0.672125 +v -1.329760 0.187500 -0.411653 +v -1.329760 0.062500 -0.411653 +v -1.391310 0.187500 -0.400800 +v -1.391310 0.062500 -0.400800 +v -1.621842 0.000000 -0.612984 +v 0.310009 0.000000 -1.130622 +v -1.718900 0.000000 -0.975206 +v 0.212953 0.000000 -1.492844 +v -1.718900 0.062500 -0.975206 +v -1.621842 0.062500 -0.612984 +v 0.310009 0.062500 -1.130622 +v 0.212953 0.062500 -1.492844 +v 0.184934 0.125000 -1.355928 +v -0.116918 0.125000 -1.275047 +v 0.217287 0.125000 -1.235187 +v -0.084565 0.125000 -1.154306 +v 0.184934 0.062500 -1.355928 +v -0.116918 0.062500 -1.275047 +v 0.217287 0.062500 -1.235187 +v -0.084565 0.062500 -1.154306 +v -1.593824 0.062500 -0.749901 +v -1.291972 0.062500 -0.830782 +v -1.626177 0.062500 -0.870642 +v -1.324325 0.062500 -0.951523 +v -1.593824 0.125000 -0.749901 +v -1.291972 0.125000 -0.830782 +v -1.626177 0.125000 -0.870642 +v -1.324325 0.125000 -0.951523 +v -1.889220 0.000000 -1.443159 +v -0.076604 0.000000 -2.288395 +v -2.047702 0.000000 -1.783024 +v -0.235086 0.000000 -2.628261 +v -2.047702 0.062500 -1.783024 +v -1.889220 0.062500 -1.443159 +v -0.076604 0.062500 -2.288395 +v -0.235086 0.062500 -2.628261 +v -0.238903 0.125000 -2.488559 +v -0.522124 0.125000 -2.356490 +v -0.186076 0.125000 -2.375270 +v -0.469297 0.125000 -2.243202 +v -0.238903 0.062500 -2.488559 +v -0.522124 0.062500 -2.356490 +v -0.186076 0.062500 -2.375270 +v -0.469297 0.062500 -2.243202 +v -1.885403 0.062500 -1.582861 +v -1.602182 0.062500 -1.714929 +v -1.938231 0.062500 -1.696149 +v -1.655010 0.062500 -1.828217 +v -1.885403 0.125000 -1.582861 +v -1.602182 0.125000 -1.714929 +v -1.938231 0.125000 -1.696149 +v -1.655010 0.125000 -1.828217 +v -2.296694 0.000000 -2.214291 +v -0.658390 0.000000 -3.361444 +v -2.511786 0.000000 -2.521473 +v -0.873481 0.000000 -3.668626 +v -2.511786 0.062500 -2.521473 +v -2.296694 0.062500 -2.214291 +v -0.658390 0.062500 -3.361444 +v -0.873481 0.062500 -3.668626 +v -0.852982 0.125000 -3.530384 +v -1.108966 0.125000 -3.351141 +v -0.781284 0.125000 -3.427989 +v -1.037269 0.125000 -3.248747 +v -0.852982 0.062500 -3.530384 +v -1.108966 0.062500 -3.351141 +v -0.781284 0.062500 -3.427989 +v -1.037269 0.062500 -3.248747 +v -2.317194 0.062500 -2.352534 +v -2.061209 0.062500 -2.531776 +v -2.388892 0.062500 -2.454927 +v -2.132906 0.062500 -2.634170 +v -2.317194 0.125000 -2.352534 +v -2.061209 0.125000 -2.531776 +v -2.388892 0.125000 -2.454927 +v -2.132906 0.125000 -2.634170 +v -2.831883 0.000000 -2.902951 +v -1.417670 0.000000 -4.317164 +v -3.097049 0.000000 -3.168117 +v -1.682835 0.000000 -4.582330 +v -3.097049 0.062500 -3.168117 +v -2.831883 0.062500 -2.902951 +v -1.417670 0.062500 -4.317164 +v -1.682835 0.062500 -4.582330 +v -1.638640 0.125000 -4.449748 +v -1.859611 0.125000 -4.228776 +v -1.550253 0.125000 -4.361359 +v -1.771223 0.125000 -4.140388 +v -1.638640 0.062500 -4.449748 +v -1.859611 0.062500 -4.228776 +v -1.550253 0.062500 -4.361359 +v -1.771223 0.062500 -4.140388 +v -2.876078 0.062500 -3.035534 +v -2.655107 0.062500 -3.256505 +v -2.964466 0.062500 -3.123922 +v -2.743495 0.062500 -3.344893 +v -2.876078 0.125000 -3.035534 +v -2.655107 0.125000 -3.256505 +v -2.964466 0.125000 -3.123922 +v -2.743495 0.125000 -3.344893 +v -3.478527 0.000000 -3.488214 +v -2.331373 0.000000 -5.126518 +v -3.785709 0.000000 -3.703305 +v -2.638556 0.000000 -5.341610 +v -3.785709 0.062500 -3.703305 +v -3.478527 0.062500 -3.488214 +v -2.331373 0.062500 -5.126518 +v -2.638556 0.062500 -5.341610 +v -2.572011 0.125000 -5.218716 +v -2.751253 0.125000 -4.962731 +v -2.469616 0.125000 -5.147019 +v -2.648859 0.125000 -4.891034 +v -2.572011 0.062500 -5.218716 +v -2.751253 0.062500 -4.962731 +v -2.469616 0.062500 -5.147019 +v -2.648859 0.062500 -4.891034 +v -3.545072 0.062500 -3.611109 +v -3.365830 0.062500 -3.867094 +v -3.647467 0.062500 -3.682805 +v -3.468224 0.062500 -3.938790 +v -3.545072 0.125000 -3.611109 +v -3.365830 0.125000 -3.867094 +v -3.647467 0.125000 -3.682805 +v -3.468224 0.125000 -3.938790 +v -4.216976 0.000000 -3.952298 +v -3.371739 0.000000 -5.764913 +v -4.556841 0.000000 -4.110780 +v -3.711604 0.000000 -5.923395 +v -4.556841 0.062500 -4.110780 +v -4.216976 0.062500 -3.952298 +v -3.371739 0.062500 -5.764913 +v -3.711604 0.062500 -5.923395 +v -3.624729 0.125000 -5.813924 +v -3.756797 0.125000 -5.530703 +v -3.511442 0.125000 -5.761096 +v -3.643509 0.125000 -5.477876 +v -3.624729 0.062500 -5.813924 +v -3.756797 0.062500 -5.530703 +v -3.511442 0.062500 -5.761096 +v -3.643509 0.062500 -5.477876 +v -4.303851 0.062500 -4.061769 +v -4.171782 0.062500 -4.344991 +v -4.417139 0.062500 -4.114597 +v -4.285071 0.062500 -4.397818 +v -4.303851 0.125000 -4.061769 +v -4.171782 0.125000 -4.344991 +v -4.417139 0.125000 -4.114597 +v -4.285071 0.125000 -4.397818 +v -5.024794 0.000000 -4.281100 +v -4.507154 0.000000 -6.212952 +v -5.387016 0.000000 -4.378157 +v -4.869377 0.000000 -6.310009 +v -5.387016 0.062500 -4.378157 +v -5.024794 0.062500 -4.281100 +v -4.507154 0.062500 -6.212952 +v -4.869377 0.062500 -6.310009 +v -4.764813 0.125000 -6.217286 +v -4.845694 0.125000 -5.915435 +v -4.644072 0.125000 -6.184934 +v -4.724953 0.125000 -5.883083 +v -4.764813 0.062500 -6.217286 +v -4.845694 0.062500 -5.915435 +v -4.644072 0.062500 -6.184934 +v -4.724953 0.062500 -5.883083 +v -5.129358 0.062500 -4.373823 +v -5.048478 0.062500 -4.675675 +v -5.250099 0.062500 -4.406175 +v -5.169218 0.062500 -4.708027 +v -5.129358 0.125000 -4.373823 +v -5.048478 0.125000 -4.675675 +v -5.250099 0.125000 -4.406175 +v -5.169218 0.125000 -4.708027 +v -5.877435 0.000000 -4.464632 +v -5.703122 0.000000 -6.457021 +v -6.251008 0.000000 -4.497314 +v -6.076696 0.000000 -6.489705 +v -6.251008 0.062500 -4.497314 +v -5.877435 0.062500 -4.464632 +v -5.703122 0.062500 -6.457021 +v -6.076696 0.062500 -6.489705 +v -5.957620 0.125000 -6.416547 +v -5.984855 0.125000 -6.105237 +v -5.833095 0.125000 -6.405653 +v -5.860331 0.125000 -6.094343 +v -5.957620 0.062500 -6.416547 +v -5.984855 0.062500 -6.105237 +v -5.833095 0.062500 -6.405653 +v -5.860331 0.062500 -6.094343 +v -5.996511 0.062500 -4.537788 +v -5.969276 0.062500 -4.849099 +v -6.121037 0.062500 -4.548682 +v -6.093800 0.062500 -4.859993 +v -5.996511 0.125000 -4.537788 +v -5.969276 0.125000 -4.849099 +v -6.121037 0.125000 -4.548682 +v -6.093800 0.125000 -4.859993 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9962 0.0000 0.0872 +vn 0.0872 0.0000 0.9962 +vn 0.9962 0.0000 -0.0872 +vn -0.0872 0.0000 -0.9962 +vn -0.0872 0.0000 0.9962 +vn 0.0872 0.0000 -0.9962 +vn -1.0000 0.0000 0.0000 +vn 0.2588 0.0000 -0.9659 +vn -0.2588 0.0000 0.9659 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 0.0000 0.9063 +vn -0.5736 0.0000 0.8192 +vn 0.5736 0.0000 -0.8192 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.8192 0.0000 -0.5736 +vn -0.8192 0.0000 0.5736 +vn 0.9063 0.0000 -0.4226 +vn -0.9063 0.0000 0.4226 +vn -0.9659 0.0000 0.2588 +vn 0.9659 0.0000 -0.2588 +vn 0.2588 0.0000 0.9659 +vn -0.2588 0.0000 -0.9659 +vn 0.4226 0.0000 0.9063 +vn -0.4226 0.0000 -0.9063 +vn 0.5736 0.0000 0.8192 +vn -0.5736 0.0000 -0.8192 +vn -0.8191 0.0000 0.5736 +vn 0.8191 0.0000 -0.5736 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.8192 0.0000 0.5736 +vn -0.8192 0.0000 -0.5736 +vn 0.9063 0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn 0.9659 0.0000 0.2588 +vn -0.9659 0.0000 -0.2588 +vn 0.9962 0.0000 0.0872 +vn -0.9962 0.0000 -0.0872 +vn -0.0871 0.0000 0.9962 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/1 6/5/1 7/6/1 +f 11/7/2 10/8/2 9/9/2 +f 15/10/3 13/11/3 14/12/3 +f 9/13/4 13/14/4 11/15/4 +f 10/16/5 14/17/5 9/18/5 +f 12/19/6 15/20/6 10/8/6 +f 11/7/7 16/21/7 12/22/7 +f 39/23/8 44/24/8 41/25/8 +f 42/26/3 39/23/3 41/25/3 +f 36/27/2 47/28/2 45/29/2 +f 33/30/8 45/31/8 46/32/8 +f 38/33/9 42/26/9 43/34/9 +f 40/35/2 43/34/2 44/36/2 +f 35/37/10 33/38/10 34/39/10 +f 39/40/10 38/41/10 40/42/10 +f 44/43/2 54/44/2 56/45/2 +f 43/46/11 53/47/11 54/44/11 +f 46/48/12 52/49/12 49/50/12 +f 45/51/2 51/52/2 52/53/2 +f 53/47/3 41/54/3 55/55/3 +f 41/54/12 56/56/12 55/55/12 +f 34/57/3 46/32/3 48/58/3 +f 35/59/9 48/58/9 47/28/9 +f 54/60/13 58/61/13 59/62/13 +f 56/63/2 59/62/2 60/64/2 +f 64/65/3 49/66/3 62/67/3 +f 51/68/13 64/65/13 63/69/13 +f 55/70/14 60/71/14 57/72/14 +f 58/61/3 55/70/3 57/72/3 +f 47/73/11 50/74/11 51/52/11 +f 50/74/3 46/48/3 49/50/3 +f 29/75/4 27/76/4 25/77/4 +f 20/78/3 17/79/3 18/80/3 +f 17/79/6 23/81/6 21/82/6 +f 19/83/5 24/84/5 23/85/5 +f 18/80/7 21/86/7 22/87/7 +f 20/78/4 22/88/4 24/89/4 +f 31/90/7 28/91/7 27/92/7 +f 30/93/5 25/94/5 26/95/5 +f 32/96/6 26/97/6 28/98/6 +f 29/75/3 32/96/3 31/90/3 +f 69/99/3 57/100/3 71/101/3 +f 57/100/15 72/102/15 71/101/15 +f 63/103/16 66/104/16 67/105/16 +f 66/104/3 62/106/3 65/107/3 +f 60/108/2 70/109/2 72/110/2 +f 59/111/16 69/99/16 70/109/16 +f 52/112/2 63/69/2 61/113/2 +f 49/66/14 61/114/14 62/67/14 +f 71/115/17 76/116/17 73/117/17 +f 69/118/3 73/117/3 74/119/3 +f 68/120/2 79/121/2 77/122/2 +f 65/123/17 77/124/17 78/125/17 +f 70/126/18 74/119/18 75/127/18 +f 72/128/2 75/127/2 76/129/2 +f 62/106/15 68/130/15 65/107/15 +f 61/131/2 67/105/2 68/132/2 +f 75/133/19 85/134/19 86/135/19 +f 78/136/20 84/137/20 81/138/20 +f 84/139/2 79/140/2 83/141/2 +f 85/134/3 73/142/3 87/143/3 +f 73/142/20 88/144/20 87/143/20 +f 79/140/19 82/145/19 83/141/19 +f 80/146/3 65/123/3 78/125/3 +f 67/147/18 80/146/18 79/121/18 +f 86/148/21 90/149/21 91/150/21 +f 88/151/2 91/150/2 92/152/2 +f 82/153/3 94/154/3 96/155/3 +f 83/156/21 96/155/21 95/157/21 +f 87/158/22 92/159/22 89/160/22 +f 90/149/3 87/158/3 89/160/3 +f 82/145/3 78/136/3 81/138/3 +f 76/161/2 86/135/2 88/162/2 +f 89/163/23 104/164/23 103/165/23 +f 95/166/24 98/167/24 99/168/24 +f 98/167/3 94/169/3 97/170/3 +f 92/171/2 102/172/2 104/173/2 +f 91/174/24 101/175/24 102/172/24 +f 94/169/23 100/176/23 97/170/23 +f 84/177/2 95/157/2 93/178/2 +f 81/179/22 93/180/22 94/154/22 +f 102/181/6 4/182/6 3/183/6 +f 99/184/6 7/185/6 6/186/6 +f 104/187/2 3/183/2 1/188/2 +f 100/189/2 6/186/2 5/190/2 +f 97/191/4 5/192/4 8/193/4 +f 101/194/3 2/195/3 4/182/3 +f 103/196/4 1/197/4 2/195/4 +f 7/185/3 97/191/3 8/193/3 +f 93/198/2 99/168/2 100/199/2 +f 101/175/3 89/163/3 103/165/3 +f 107/200/2 106/201/2 105/202/2 +f 111/203/3 109/204/3 110/205/3 +f 105/206/23 109/207/23 107/208/23 +f 106/209/25 110/210/25 105/211/25 +f 108/212/24 111/213/24 106/201/24 +f 107/200/26 112/214/26 108/215/26 +f 125/216/23 123/217/23 121/218/23 +f 116/219/3 113/220/3 114/221/3 +f 113/220/24 119/222/24 117/223/24 +f 115/224/25 120/225/25 119/226/25 +f 114/221/26 117/227/26 118/228/26 +f 116/219/23 118/229/23 120/230/23 +f 127/231/26 124/232/26 123/233/26 +f 126/234/25 121/235/25 122/236/25 +f 128/237/24 122/238/24 124/239/24 +f 125/216/3 128/237/3 127/231/3 +f 131/240/2 130/241/2 129/242/2 +f 135/243/3 133/244/3 134/245/3 +f 129/246/22 133/247/22 131/248/22 +f 130/249/27 134/250/27 129/251/27 +f 132/252/21 135/253/21 130/241/21 +f 131/240/28 136/254/28 132/255/28 +f 149/256/22 147/257/22 145/258/22 +f 138/259/3 139/260/3 137/261/3 +f 137/261/21 143/262/21 141/263/21 +f 139/260/27 144/264/27 143/265/27 +f 138/259/28 141/266/28 142/267/28 +f 140/268/22 142/269/22 144/270/22 +f 151/271/28 148/272/28 147/273/28 +f 150/274/27 145/275/27 146/276/27 +f 152/277/21 146/278/21 148/279/21 +f 149/256/3 152/277/3 151/271/3 +f 155/280/2 154/281/2 153/282/2 +f 158/283/3 160/284/3 157/285/3 +f 153/286/20 157/287/20 155/288/20 +f 154/289/29 158/290/29 153/291/29 +f 156/292/19 159/293/19 154/281/19 +f 155/280/30 160/284/30 156/294/30 +f 173/295/31 171/296/31 169/297/31 +f 164/298/3 161/299/3 162/300/3 +f 161/299/32 167/301/32 165/302/32 +f 163/303/29 168/304/29 167/305/29 +f 162/300/30 165/306/30 166/307/30 +f 164/298/20 166/308/20 168/309/20 +f 175/310/30 172/311/30 171/312/30 +f 174/313/29 169/314/29 170/315/29 +f 176/316/19 170/317/19 172/318/19 +f 173/295/3 176/316/3 175/310/3 +f 179/319/2 178/320/2 177/321/2 +f 183/322/3 181/323/3 182/324/3 +f 177/325/17 181/326/17 179/327/17 +f 178/328/33 182/329/33 177/330/33 +f 180/331/18 183/332/18 178/320/18 +f 179/319/34 184/333/34 180/334/34 +f 197/335/17 195/336/17 193/337/17 +f 186/338/3 187/339/3 185/340/3 +f 185/340/18 191/341/18 189/342/18 +f 187/339/33 192/343/33 191/344/33 +f 186/338/34 189/345/34 190/346/34 +f 188/347/17 190/348/17 192/349/17 +f 199/350/34 196/351/34 195/352/34 +f 198/353/33 193/354/33 194/355/33 +f 200/356/18 194/357/18 196/358/18 +f 197/335/3 200/356/3 199/350/3 +f 201/359/2 204/360/2 202/361/2 +f 206/362/3 208/363/3 205/364/3 +f 201/365/15 205/366/15 203/367/15 +f 202/368/35 206/369/35 201/370/35 +f 204/371/16 207/372/16 202/361/16 +f 203/373/36 208/363/36 204/360/36 +f 221/374/15 219/375/15 217/376/15 +f 212/377/3 209/378/3 210/379/3 +f 209/378/16 215/380/16 213/381/16 +f 211/382/35 216/383/35 215/384/35 +f 210/379/36 213/385/36 214/386/36 +f 212/377/15 214/387/15 216/388/15 +f 223/389/36 220/390/36 219/391/36 +f 222/392/35 217/393/35 218/394/35 +f 224/395/16 218/396/16 220/397/16 +f 221/374/3 224/395/3 223/389/3 +f 227/398/2 226/399/2 225/400/2 +f 231/401/3 229/402/3 230/403/3 +f 225/404/14 229/405/14 227/406/14 +f 226/407/37 230/408/37 225/409/37 +f 228/410/13 231/411/13 226/399/13 +f 227/398/38 232/412/38 228/413/38 +f 245/414/14 243/415/14 241/416/14 +f 234/417/3 235/418/3 233/419/3 +f 233/419/13 239/420/13 237/421/13 +f 235/418/37 240/422/37 239/423/37 +f 234/417/38 237/424/38 238/425/38 +f 236/426/14 238/427/14 240/428/14 +f 247/429/38 244/430/38 243/431/38 +f 246/432/37 241/433/37 242/434/37 +f 248/435/13 242/436/13 244/437/13 +f 245/414/3 248/435/3 247/429/3 +f 249/438/2 252/439/2 250/440/2 +f 254/441/3 256/442/3 253/443/3 +f 249/444/12 253/445/12 251/446/12 +f 250/447/39 254/448/39 249/449/39 +f 252/450/11 255/451/11 250/440/11 +f 251/452/40 256/442/40 252/439/40 +f 269/453/12 267/454/12 265/455/12 +f 260/456/3 257/457/3 258/458/3 +f 257/457/11 263/459/11 261/460/11 +f 259/461/39 264/462/39 263/463/39 +f 258/458/40 261/464/40 262/465/40 +f 260/456/12 262/466/12 264/467/12 +f 271/468/40 268/469/40 267/470/40 +f 270/471/39 265/472/39 266/473/39 +f 272/474/11 266/475/11 268/476/11 +f 269/453/3 272/474/3 271/468/3 +f 273/477/2 276/478/2 274/479/2 +f 278/480/3 280/481/3 277/482/3 +f 273/483/8 277/484/8 275/485/8 +f 274/486/41 278/487/41 273/488/41 +f 276/489/9 279/490/9 274/479/9 +f 275/491/42 280/481/42 276/478/42 +f 293/492/43 291/493/43 289/494/43 +f 284/495/3 281/496/3 282/497/3 +f 281/496/9 287/498/9 285/499/9 +f 283/500/41 288/501/41 287/502/41 +f 282/497/42 285/503/42 286/504/42 +f 284/495/8 286/505/8 288/506/8 +f 295/507/42 292/508/42 291/509/42 +f 294/510/41 289/511/41 290/512/41 +f 296/513/9 290/514/9 292/515/9 +f 293/492/3 296/513/3 295/507/3 +f 3/1/1 4/516/1 2/2/1 +f 8/4/1 5/517/1 6/5/1 +f 11/7/2 12/22/2 10/8/2 +f 15/10/3 16/21/3 13/11/3 +f 9/13/4 14/518/4 13/14/4 +f 10/16/5 15/519/5 14/17/5 +f 12/19/6 16/520/6 15/20/6 +f 11/7/7 13/11/7 16/21/7 +f 39/23/8 40/521/8 44/24/8 +f 42/26/3 37/522/3 39/23/3 +f 36/27/2 35/59/2 47/28/2 +f 33/30/8 36/523/8 45/31/8 +f 38/33/9 37/522/9 42/26/9 +f 40/35/2 38/33/2 43/34/2 +f 35/37/10 36/524/10 33/38/10 +f 39/40/10 37/525/10 38/41/10 +f 44/43/2 43/46/2 54/44/2 +f 43/46/11 42/526/11 53/47/11 +f 46/48/12 45/527/12 52/49/12 +f 45/51/2 47/73/2 51/52/2 +f 53/47/3 42/526/3 41/54/3 +f 41/54/12 44/528/12 56/56/12 +f 34/57/3 33/30/3 46/32/3 +f 35/59/9 34/57/9 48/58/9 +f 54/60/13 53/529/13 58/61/13 +f 56/63/2 54/60/2 59/62/2 +f 64/65/3 50/530/3 49/66/3 +f 51/68/13 50/530/13 64/65/13 +f 55/70/14 56/531/14 60/71/14 +f 58/61/3 53/529/3 55/70/3 +f 47/73/11 48/532/11 50/74/11 +f 50/74/3 48/532/3 46/48/3 +f 29/75/4 31/90/4 27/76/4 +f 20/78/3 19/83/3 17/79/3 +f 17/79/6 19/83/6 23/81/6 +f 19/83/5 20/78/5 24/84/5 +f 18/80/7 17/79/7 21/86/7 +f 20/78/4 18/80/4 22/88/4 +f 31/90/7 32/96/7 28/91/7 +f 30/93/5 29/75/5 25/94/5 +f 32/96/6 30/93/6 26/97/6 +f 29/75/3 30/93/3 32/96/3 +f 69/99/3 58/533/3 57/100/3 +f 57/100/15 60/534/15 72/102/15 +f 63/103/16 64/535/16 66/104/16 +f 66/104/3 64/535/3 62/106/3 +f 60/108/2 59/111/2 70/109/2 +f 59/111/16 58/533/16 69/99/16 +f 52/112/2 51/68/2 63/69/2 +f 49/66/14 52/536/14 61/114/14 +f 71/115/17 72/537/17 76/116/17 +f 69/118/3 71/115/3 73/117/3 +f 68/120/2 67/147/2 79/121/2 +f 65/123/17 68/538/17 77/124/17 +f 70/126/18 69/118/18 74/119/18 +f 72/128/2 70/126/2 75/127/2 +f 62/106/15 61/539/15 68/130/15 +f 61/131/2 63/103/2 67/105/2 +f 75/133/19 74/540/19 85/134/19 +f 78/136/20 77/541/20 84/137/20 +f 84/139/2 77/542/2 79/140/2 +f 85/134/3 74/540/3 73/142/3 +f 73/142/20 76/543/20 88/144/20 +f 79/140/19 80/544/19 82/145/19 +f 80/146/3 66/545/3 65/123/3 +f 67/147/18 66/545/18 80/146/18 +f 86/148/21 85/546/21 90/149/21 +f 88/151/2 86/148/2 91/150/2 +f 82/153/3 81/179/3 94/154/3 +f 83/156/21 82/153/21 96/155/21 +f 87/158/22 88/547/22 92/159/22 +f 90/149/3 85/546/3 87/158/3 +f 82/145/3 80/544/3 78/136/3 +f 76/161/2 75/133/2 86/135/2 +f 89/163/23 92/548/23 104/164/23 +f 95/166/24 96/549/24 98/167/24 +f 98/167/3 96/549/3 94/169/3 +f 92/171/2 91/174/2 102/172/2 +f 91/174/24 90/550/24 101/175/24 +f 94/169/23 93/551/23 100/176/23 +f 84/177/2 83/156/2 95/157/2 +f 81/179/22 84/552/22 93/180/22 +f 102/181/6 101/194/6 4/182/6 +f 99/184/6 98/553/6 7/185/6 +f 104/187/2 102/181/2 3/183/2 +f 100/189/2 99/184/2 6/186/2 +f 97/191/4 100/554/4 5/192/4 +f 101/194/3 103/196/3 2/195/3 +f 103/196/4 104/555/4 1/197/4 +f 7/185/3 98/553/3 97/191/3 +f 93/198/2 95/166/2 99/168/2 +f 101/175/3 90/550/3 89/163/3 +f 107/200/2 108/215/2 106/201/2 +f 111/203/3 112/214/3 109/204/3 +f 105/206/23 110/556/23 109/207/23 +f 106/209/25 111/557/25 110/210/25 +f 108/212/24 112/558/24 111/213/24 +f 107/200/26 109/204/26 112/214/26 +f 125/216/23 127/231/23 123/217/23 +f 116/219/3 115/224/3 113/220/3 +f 113/220/24 115/224/24 119/222/24 +f 115/224/25 116/219/25 120/225/25 +f 114/221/26 113/220/26 117/227/26 +f 116/219/23 114/221/23 118/229/23 +f 127/231/26 128/237/26 124/232/26 +f 126/234/25 125/216/25 121/235/25 +f 128/237/24 126/234/24 122/238/24 +f 125/216/3 126/234/3 128/237/3 +f 131/240/2 132/255/2 130/241/2 +f 135/243/3 136/254/3 133/244/3 +f 129/246/22 134/559/22 133/247/22 +f 130/249/27 135/560/27 134/250/27 +f 132/252/21 136/561/21 135/253/21 +f 131/240/28 133/244/28 136/254/28 +f 149/256/22 151/271/22 147/257/22 +f 138/259/3 140/268/3 139/260/3 +f 137/261/21 139/260/21 143/262/21 +f 139/260/27 140/268/27 144/264/27 +f 138/259/28 137/261/28 141/266/28 +f 140/268/22 138/259/22 142/269/22 +f 151/271/28 152/277/28 148/272/28 +f 150/274/27 149/256/27 145/275/27 +f 152/277/21 150/274/21 146/278/21 +f 149/256/3 150/274/3 152/277/3 +f 155/280/2 156/294/2 154/281/2 +f 158/283/3 159/562/3 160/284/3 +f 153/286/20 158/563/20 157/287/20 +f 154/289/29 159/564/29 158/290/29 +f 156/292/19 160/565/19 159/293/19 +f 155/280/30 157/285/30 160/284/30 +f 173/295/31 175/310/31 171/296/31 +f 164/298/3 163/303/3 161/299/3 +f 161/299/32 163/303/32 167/301/32 +f 163/303/29 164/298/29 168/304/29 +f 162/300/30 161/299/30 165/306/30 +f 164/298/20 162/300/20 166/308/20 +f 175/310/30 176/316/30 172/311/30 +f 174/313/29 173/295/29 169/314/29 +f 176/316/19 174/313/19 170/317/19 +f 173/295/3 174/313/3 176/316/3 +f 179/319/2 180/334/2 178/320/2 +f 183/322/3 184/333/3 181/323/3 +f 177/325/17 182/566/17 181/326/17 +f 178/328/33 183/567/33 182/329/33 +f 180/331/18 184/568/18 183/332/18 +f 179/319/34 181/323/34 184/333/34 +f 197/335/17 199/350/17 195/336/17 +f 186/338/3 188/347/3 187/339/3 +f 185/340/18 187/339/18 191/341/18 +f 187/339/33 188/347/33 192/343/33 +f 186/338/34 185/340/34 189/345/34 +f 188/347/17 186/338/17 190/348/17 +f 199/350/34 200/356/34 196/351/34 +f 198/353/33 197/335/33 193/354/33 +f 200/356/18 198/353/18 194/357/18 +f 197/335/3 198/353/3 200/356/3 +f 201/359/2 203/373/2 204/360/2 +f 206/362/3 207/569/3 208/363/3 +f 201/365/15 206/570/15 205/366/15 +f 202/368/35 207/571/35 206/369/35 +f 204/371/16 208/572/16 207/372/16 +f 203/373/36 205/364/36 208/363/36 +f 221/374/15 223/389/15 219/375/15 +f 212/377/3 211/382/3 209/378/3 +f 209/378/16 211/382/16 215/380/16 +f 211/382/35 212/377/35 216/383/35 +f 210/379/36 209/378/36 213/385/36 +f 212/377/15 210/379/15 214/387/15 +f 223/389/36 224/395/36 220/390/36 +f 222/392/35 221/374/35 217/393/35 +f 224/395/16 222/392/16 218/396/16 +f 221/374/3 222/392/3 224/395/3 +f 227/398/2 228/413/2 226/399/2 +f 231/401/3 232/412/3 229/402/3 +f 225/404/14 230/573/14 229/405/14 +f 226/407/37 231/574/37 230/408/37 +f 228/410/13 232/575/13 231/411/13 +f 227/398/38 229/402/38 232/412/38 +f 245/414/14 247/429/14 243/415/14 +f 234/417/3 236/426/3 235/418/3 +f 233/419/13 235/418/13 239/420/13 +f 235/418/37 236/426/37 240/422/37 +f 234/417/38 233/419/38 237/424/38 +f 236/426/14 234/417/14 238/427/14 +f 247/429/38 248/435/38 244/430/38 +f 246/432/37 245/414/37 241/433/37 +f 248/435/13 246/432/13 242/436/13 +f 245/414/3 246/432/3 248/435/3 +f 249/438/2 251/452/2 252/439/2 +f 254/441/3 255/576/3 256/442/3 +f 249/444/12 254/577/12 253/445/12 +f 250/447/39 255/578/39 254/448/39 +f 252/450/11 256/579/11 255/451/11 +f 251/452/40 253/443/40 256/442/40 +f 269/453/12 271/468/12 267/454/12 +f 260/456/3 259/461/3 257/457/3 +f 257/457/11 259/461/11 263/459/11 +f 259/461/39 260/456/39 264/462/39 +f 258/458/40 257/457/40 261/464/40 +f 260/456/12 258/458/12 262/466/12 +f 271/468/40 272/474/40 268/469/40 +f 270/471/39 269/453/39 265/472/39 +f 272/474/11 270/471/11 266/475/11 +f 269/453/3 270/471/3 272/474/3 +f 273/477/2 275/491/2 276/478/2 +f 278/480/3 279/580/3 280/481/3 +f 273/483/8 278/581/8 277/484/8 +f 274/486/41 279/582/41 278/487/41 +f 276/489/9 280/583/9 279/490/9 +f 275/491/42 277/482/42 280/481/42 +f 293/492/8 295/507/8 291/493/8 +f 284/495/3 283/500/3 281/496/3 +f 281/496/9 283/500/9 287/498/9 +f 283/500/41 284/495/41 288/501/41 +f 282/497/42 281/496/42 285/503/42 +f 284/495/8 282/497/8 286/505/8 +f 295/507/42 296/513/42 292/508/42 +f 294/510/41 293/492/41 289/511/41 +f 296/513/9 294/510/9 290/514/9 +f 293/492/3 294/510/3 296/513/3 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj new file mode 100644 index 000000000..d03d672a0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend_wide9.obj @@ -0,0 +1,1966 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve_wide9.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.312500 0.187500 0.500000 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.502724 0.000000 0.229277 +v 0.492993 0.000000 0.098470 +v -1.527250 0.000000 -0.144921 +v 0.468467 0.000000 -0.275727 +v -1.527250 0.062500 -0.144921 +v -1.502724 0.062500 0.229277 +v 0.492993 0.062500 0.098470 +v 0.468467 0.062500 -0.275727 +v 0.414277 0.125000 -0.146907 +v 0.102446 0.125000 -0.126468 +v 0.422452 0.125000 -0.022174 +v 0.110621 0.125000 -0.001736 +v 0.414277 0.062500 -0.146907 +v 0.102446 0.062500 -0.126468 +v 0.422452 0.062500 -0.022174 +v 0.110621 0.062500 -0.001736 +v -1.448533 0.062500 0.100457 +v -1.136702 0.062500 0.080018 +v -1.456709 0.062500 -0.024276 +v -1.144878 0.062500 -0.044714 +v -1.448533 0.125000 0.100457 +v -1.136702 0.125000 0.080018 +v -1.456709 0.125000 -0.024276 +v -1.144878 0.125000 -0.044714 +v 0.202066 0.187500 -0.414624 +v 0.264223 0.187500 -0.421157 +v 0.264223 0.062500 -0.421157 +v 0.202066 0.062500 -0.414624 +v -1.289716 0.187500 -0.257831 +v -1.289716 0.062500 -0.257831 +v -1.351874 0.187500 -0.251298 +v -1.351874 0.062500 -0.251298 +v 0.119925 0.187500 -1.332222 +v 0.119925 0.062500 -1.332222 +v 0.058792 0.187500 -1.319227 +v 0.058792 0.062500 -1.319227 +v -1.469564 0.062500 -0.994365 +v -1.408430 0.062500 -1.007360 +v -1.408430 0.187500 -1.007360 +v -1.469564 0.187500 -0.994365 +v -0.118814 0.187500 -2.223212 +v -0.118814 0.062500 -2.223212 +v -0.178254 0.187500 -2.203898 +v -0.178254 0.062500 -2.203898 +v -1.664281 0.062500 -1.721060 +v -1.604840 0.062500 -1.740373 +v -1.604840 0.187500 -1.740373 +v -1.664281 0.187500 -1.721060 +v -0.449381 0.187500 -3.084367 +v -0.449381 0.062500 -3.084367 +v -0.506476 0.187500 -3.058946 +v -0.506476 0.062500 -3.058946 +v -1.933891 0.062500 -2.423420 +v -1.876795 0.062500 -2.448841 +v -1.876795 0.187500 -2.448841 +v -1.933891 0.187500 -2.423420 +v -0.868151 0.187500 -3.906250 +v -0.868151 0.062500 -3.906250 +v -0.922276 0.187500 -3.875000 +v -0.922276 0.062500 -3.875000 +v -2.275442 0.062500 -3.093750 +v -2.221315 0.062500 -3.125000 +v -2.221315 0.187500 -3.125000 +v -2.275442 0.187500 -3.093750 +v -1.370537 0.187500 -4.679857 +v -1.370537 0.062500 -4.679857 +v -1.421100 0.187500 -4.643121 +v -1.421100 0.062500 -4.643121 +v -2.685189 0.062500 -3.724707 +v -2.634626 0.062500 -3.761444 +v -2.634626 0.187500 -3.761444 +v -2.685189 0.187500 -3.724707 +v -1.951035 0.187500 -5.396713 +v -1.951035 0.062500 -5.396713 +v -1.997481 0.187500 -5.354893 +v -1.997481 0.062500 -5.354893 +v -3.158646 0.062500 -4.309377 +v -3.112200 0.062500 -4.351198 +v -3.112200 0.187500 -4.351198 +v -3.158646 0.187500 -4.309377 +v -2.603286 0.187500 -6.048964 +v -2.603286 0.062500 -6.048964 +v -2.645105 0.187500 -6.002518 +v -2.645105 0.062500 -6.002518 +v -3.690623 0.062500 -4.841354 +v -3.648803 0.062500 -4.887801 +v -3.648803 0.187500 -4.887801 +v -3.690623 0.187500 -4.841354 +v -3.320142 0.187500 -6.629462 +v -3.320142 0.062500 -6.629462 +v -3.356877 0.187500 -6.578900 +v -3.356877 0.062500 -6.578900 +v -4.275292 0.062500 -5.314811 +v -4.238556 0.062500 -5.365375 +v -4.238556 0.187500 -5.365375 +v -4.275292 0.187500 -5.314811 +v -4.093749 0.187500 -7.131849 +v -4.093749 0.062500 -7.131849 +v -4.124998 0.187500 -7.077724 +v -4.124998 0.062500 -7.077724 +v -4.906249 0.062500 -5.724559 +v -4.875000 0.062500 -5.778686 +v -4.875000 0.187500 -5.778686 +v -4.906249 0.187500 -5.724559 +v -4.915632 0.187500 -7.550620 +v -4.915632 0.062500 -7.550620 +v -4.941052 0.187500 -7.493525 +v -4.941052 0.062500 -7.493525 +v -5.576580 0.062500 -6.066110 +v -5.551159 0.062500 -6.123206 +v -5.551159 0.187500 -6.123206 +v -5.576580 0.187500 -6.066110 +v -5.776787 0.187500 -7.881186 +v -5.776787 0.062500 -7.881186 +v -5.796100 0.187500 -7.821747 +v -5.796100 0.062500 -7.821747 +v -6.278940 0.062500 -6.335721 +v -6.259626 0.062500 -6.395162 +v -6.259626 0.187500 -6.395162 +v -6.278940 0.187500 -6.335721 +v -6.667778 0.187500 -8.119927 +v -6.667778 0.062500 -8.119927 +v -6.680771 0.187500 -8.058794 +v -6.680771 0.062500 -8.058794 +v -7.005634 0.062500 -6.530438 +v -6.992640 0.062500 -6.591572 +v -6.992640 0.187500 -6.591572 +v -7.005634 0.187500 -6.530438 +v -7.578842 0.187500 -8.264227 +v -7.578842 0.062500 -8.264227 +v -7.585375 0.187500 -8.202069 +v -7.585375 0.062500 -8.202069 +v -7.748702 0.062500 -6.648129 +v -7.742168 0.062500 -6.710286 +v -7.742168 0.187500 -6.710286 +v -7.748702 0.187500 -6.648129 +v -8.500000 0.187500 -8.312503 +v -8.500000 0.062500 -8.312503 +v -8.499999 0.187500 -8.250003 +v -8.499999 0.062500 -8.250003 +v -8.500000 0.062500 -6.687503 +v -8.500000 0.062500 -6.750003 +v -8.500000 0.187500 -6.750003 +v -8.500000 0.187500 -6.687503 +v -1.593841 0.000000 -0.657635 +v 0.369080 0.000000 -1.040966 +v -1.665715 0.000000 -1.025683 +v 0.297205 0.000000 -1.409014 +v -1.665715 0.062500 -1.025683 +v -1.593841 0.062500 -0.657635 +v 0.369080 0.062500 -1.040966 +v 0.297205 0.062500 -1.409014 +v 0.259823 0.125000 -1.274352 +v -0.046885 0.125000 -1.214457 +v 0.283780 0.125000 -1.151670 +v -0.022925 0.125000 -1.091774 +v 0.259823 0.062500 -1.274352 +v -0.046885 0.062500 -1.214457 +v 0.283780 0.062500 -1.151670 +v -0.022925 0.062500 -1.091774 +v -1.556457 0.062500 -0.792297 +v -1.249751 0.062500 -0.852192 +v -1.580416 0.062500 -0.914979 +v -1.273710 0.062500 -0.974875 +v -1.556457 0.125000 -0.792297 +v -1.249751 0.125000 -0.852192 +v -1.580416 0.125000 -0.914979 +v -1.273710 0.125000 -0.974875 +v -1.804025 0.000000 -1.549166 +v 0.092067 0.000000 -2.185431 +v -1.923324 0.000000 -1.904684 +v -0.027232 0.000000 -2.540948 +v -1.923324 0.062500 -1.904684 +v -1.804025 0.062500 -1.549166 +v 0.092067 0.062500 -2.185431 +v -0.027232 0.062500 -2.540948 +v -0.046719 0.125000 -2.402559 +v -0.342983 0.125000 -2.303143 +v -0.006952 0.125000 -2.284053 +v -0.303216 0.125000 -2.184637 +v -0.046719 0.062500 -2.402559 +v -0.342983 0.062500 -2.303143 +v -0.006952 0.062500 -2.284053 +v -0.303216 0.062500 -2.184637 +v -1.784539 0.062500 -1.687555 +v -1.488274 0.062500 -1.786972 +v -1.824306 0.062500 -1.806061 +v -1.528041 0.062500 -1.905477 +v -1.784539 0.125000 -1.687555 +v -1.488274 0.125000 -1.786972 +v -1.824306 0.125000 -1.806061 +v -1.528041 0.125000 -1.905477 +v -2.128780 0.000000 -2.405635 +v -0.331959 0.000000 -3.283946 +v -2.293463 0.000000 -2.742540 +v -0.496641 0.000000 -3.620850 +v -2.293463 0.062500 -2.742540 +v -2.128780 0.062500 -2.405635 +v -0.331959 0.062500 -3.283946 +v -0.496641 0.062500 -3.620850 +v -0.497897 0.125000 -3.481102 +v -0.778651 0.125000 -3.343866 +v -0.443003 0.125000 -3.368800 +v -0.723756 0.125000 -3.231565 +v -0.497897 0.062500 -3.481102 +v -0.778651 0.062500 -3.343866 +v -0.443003 0.062500 -3.368800 +v -0.723756 0.062500 -3.231565 +v -2.127524 0.062500 -2.545384 +v -1.846769 0.062500 -2.682620 +v -2.182419 0.062500 -2.657685 +v -1.901665 0.062500 -2.794921 +v -2.127524 0.125000 -2.545384 +v -1.846769 0.125000 -2.682620 +v -2.182419 0.125000 -2.657685 +v -1.901665 0.125000 -2.794921 +v -2.562548 0.000000 -3.212389 +v -0.895741 0.000000 -4.317718 +v -2.769797 0.000000 -3.524915 +v -1.102990 0.000000 -4.630244 +v -2.769797 0.062500 -3.524915 +v -2.562548 0.062500 -3.212389 +v -0.895741 0.062500 -4.317718 +v -1.102990 0.062500 -4.630244 +v -1.085994 0.125000 -4.491527 +v -1.346433 0.125000 -4.318820 +v -1.016911 0.125000 -4.387352 +v -1.277349 0.125000 -4.214644 +v -1.085994 0.062500 -4.491527 +v -1.346433 0.062500 -4.318820 +v -1.016911 0.062500 -4.387352 +v -1.277349 0.062500 -4.214644 +v -2.579544 0.062500 -3.351105 +v -2.319104 0.062500 -3.523814 +v -2.648627 0.062500 -3.455281 +v -2.388188 0.062500 -3.627988 +v -2.579544 0.125000 -3.351105 +v -2.319104 0.125000 -3.523814 +v -2.648627 0.125000 -3.455281 +v -2.388188 0.125000 -3.627988 +v -3.097907 0.000000 -3.955622 +v -1.589635 0.000000 -5.269057 +v -3.344176 0.000000 -4.238423 +v -1.835903 0.000000 -5.551857 +v -3.344176 0.062500 -4.238423 +v -3.097907 0.062500 -3.955622 +v -1.589635 0.062500 -5.269057 +v -1.835903 0.062500 -5.551857 +v -1.800947 0.125000 -5.416546 +v -2.036615 0.125000 -5.211322 +v -1.718857 0.125000 -5.322279 +v -1.954525 0.125000 -5.117055 +v -1.800947 0.062500 -5.416546 +v -2.036615 0.062500 -5.211322 +v -1.718857 0.062500 -5.322279 +v -1.954525 0.062500 -5.117055 +v -3.132864 0.062500 -4.090933 +v -2.897195 0.062500 -4.296158 +v -3.214954 0.062500 -4.185201 +v -2.979286 0.062500 -4.390424 +v -3.132864 0.125000 -4.090933 +v -2.897195 0.125000 -4.296158 +v -3.214954 0.125000 -4.185201 +v -2.979286 0.125000 -4.390424 +v -3.725698 0.000000 -4.622618 +v -2.401767 0.000000 -6.121686 +v -4.006773 0.000000 -4.870855 +v -2.682841 0.000000 -6.369922 +v -4.006773 0.062500 -4.870855 +v -3.725698 0.062500 -4.622618 +v -2.401767 0.062500 -6.121686 +v -2.682841 0.062500 -6.369922 +v -2.630522 0.125000 -6.240331 +v -2.837387 0.125000 -6.006102 +v -2.536831 0.125000 -6.157585 +v -2.743695 0.125000 -5.923357 +v -2.630522 0.062500 -6.240331 +v -2.837387 0.062500 -6.006102 +v -2.536831 0.062500 -6.157585 +v -2.743695 0.062500 -5.923357 +v -3.778018 0.062500 -4.752209 +v -3.571152 0.062500 -4.986439 +v -3.871710 0.062500 -4.834955 +v -3.664845 0.062500 -5.069184 +v -3.778018 0.125000 -4.752209 +v -3.571152 0.125000 -4.986439 +v -3.871710 0.125000 -4.834955 +v -3.664845 0.125000 -5.069184 +v -4.435179 0.000000 -5.201965 +v -3.318242 0.000000 -6.861015 +v -4.746251 0.000000 -5.411391 +v -3.629313 0.000000 -7.070441 +v -4.746251 0.062500 -5.411391 +v -4.435179 0.062500 -5.201965 +v -3.318242 0.062500 -6.861015 +v -3.629313 0.062500 -7.070441 +v -3.560526 0.125000 -6.948788 +v -3.735048 0.125000 -6.689561 +v -3.456836 0.125000 -6.878979 +v -3.631357 0.125000 -6.619753 +v -3.560526 0.062500 -6.948788 +v -3.735048 0.062500 -6.689561 +v -3.456836 0.062500 -6.878979 +v -3.631357 0.062500 -6.619753 +v -4.503965 0.062500 -5.323618 +v -4.329443 0.062500 -5.582846 +v -4.607657 0.062500 -5.393427 +v -4.433135 0.062500 -5.652653 +v -4.503965 0.125000 -5.323618 +v -4.329443 0.125000 -5.582846 +v -4.607657 0.125000 -5.393427 +v -4.433135 0.125000 -5.652653 +v -5.214210 0.000000 -5.683750 +v -4.323378 0.000000 -7.474396 +v -5.549956 0.000000 -5.850781 +v -4.659122 0.000000 -7.641427 +v -5.549956 0.062500 -5.850781 +v -5.214210 0.062500 -5.683750 +v -4.323378 0.062500 -7.474396 +v -4.659122 0.062500 -7.641427 +v -4.575046 0.125000 -7.529794 +v -4.714239 0.125000 -7.250005 +v -4.463130 0.125000 -7.474116 +v -4.602324 0.125000 -7.194328 +v -4.575046 0.062500 -7.529794 +v -4.714239 0.062500 -7.250005 +v -4.463130 0.062500 -7.474116 +v -4.602324 0.062500 -7.194328 +v -5.298286 0.062500 -5.795384 +v -5.159094 0.062500 -6.075173 +v -5.410203 0.062500 -5.851061 +v -5.271009 0.062500 -6.130849 +v -5.298286 0.125000 -5.795384 +v -5.159094 0.125000 -6.075173 +v -5.410203 0.125000 -5.851061 +v -5.271009 0.125000 -6.130849 +v -6.049461 0.000000 -6.059729 +v -5.399977 0.000000 -7.951333 +v -6.404138 0.000000 -6.181507 +v -5.754651 0.000000 -8.073112 +v -6.404138 0.062500 -6.181507 +v -6.049461 0.062500 -6.059729 +v -5.399977 0.062500 -7.951333 +v -5.754651 0.062500 -8.073112 +v -5.656723 0.125000 -7.973407 +v -5.758205 0.125000 -7.677843 +v -5.538497 0.125000 -7.932814 +v -5.639980 0.125000 -7.637251 +v -5.656723 0.062500 -7.973407 +v -5.758205 0.062500 -7.677843 +v -5.538497 0.062500 -7.932814 +v -5.639980 0.062500 -7.637251 +v -6.147390 0.062500 -6.159434 +v -6.045908 0.062500 -6.454998 +v -6.265616 0.062500 -6.200027 +v -6.164133 0.062500 -6.495589 +v -6.147390 0.125000 -6.159434 +v -6.045908 0.125000 -6.454998 +v -6.265616 0.125000 -6.200027 +v -6.164133 0.125000 -6.495589 +v -6.926642 0.000000 -6.323469 +v -6.529619 0.000000 -8.283666 +v -7.294180 0.000000 -6.397911 +v -6.897154 0.000000 -8.358108 +v -7.294180 0.062500 -6.397911 +v -6.926642 0.062500 -6.323469 +v -6.529619 0.062500 -8.283666 +v -6.897154 0.062500 -8.358108 +v -6.787049 0.125000 -8.272038 +v -6.849084 0.125000 -7.965756 +v -6.664536 0.125000 -8.247224 +v -6.726572 0.125000 -7.940943 +v -6.787049 0.062500 -8.272038 +v -6.849084 0.062500 -7.965756 +v -6.664536 0.062500 -8.247224 +v -6.726572 0.062500 -7.940943 +v -7.036747 0.062500 -6.409539 +v -6.974712 0.062500 -6.715820 +v -7.159261 0.062500 -6.434352 +v -7.097224 0.062500 -6.740633 +v -7.036747 0.125000 -6.409539 +v -6.974712 0.125000 -6.715820 +v -7.159261 0.125000 -6.434352 +v -7.097224 0.125000 -6.740633 +v -7.830744 0.000000 -6.470458 +v -7.692974 0.000000 -8.465706 +v -8.204854 0.000000 -6.496290 +v -8.067081 0.000000 -8.491539 +v -8.204854 0.062500 -6.496290 +v -7.830744 0.062500 -6.470458 +v -7.692974 0.062500 -8.465706 +v -8.067081 0.062500 -8.491539 +v -7.946684 0.125000 -8.420578 +v -7.968211 0.125000 -8.108818 +v -7.821981 0.125000 -8.411966 +v -7.843508 0.125000 -8.100208 +v -7.946684 0.062500 -8.420578 +v -7.968211 0.062500 -8.108818 +v -7.821981 0.062500 -8.411966 +v -7.843508 0.062500 -8.100208 +v -7.951141 0.062500 -6.541420 +v -7.929615 0.062500 -6.853178 +v -8.075846 0.062500 -6.550030 +v -8.054317 0.062500 -6.861787 +v -7.951141 0.125000 -6.541420 +v -7.929615 0.125000 -6.853178 +v -8.075846 0.125000 -6.550030 +v -8.054317 0.125000 -6.861787 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.000000 0.000000 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9979 0.0000 0.0654 +vn 0.0654 0.0000 0.9979 +vn 0.9979 0.0000 -0.0654 +vn -0.0654 0.0000 -0.9979 +vn 0.9986 0.0000 -0.0523 +vn -0.9986 0.0000 0.0523 +vn -0.9659 0.0000 0.2588 +vn 0.9877 0.0000 -0.1564 +vn -0.9877 0.0000 0.1564 +vn -0.9336 0.0000 0.3584 +vn 0.9659 0.0000 -0.2588 +vn 0.9336 0.0000 -0.3584 +vn 0.8387 0.0000 -0.5446 +vn 0.8910 0.0000 -0.4540 +vn -0.8910 0.0000 0.4540 +vn -0.8387 0.0000 0.5446 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7771 0.0000 0.6293 +vn 0.7771 0.0000 -0.6293 +vn 0.6293 0.0000 -0.7771 +vn 0.5446 0.0000 -0.8387 +vn -0.5446 0.0000 0.8387 +vn -0.6293 0.0000 0.7771 +vn -0.4540 0.0000 0.8910 +vn 0.3584 0.0000 -0.9336 +vn 0.4540 0.0000 -0.8910 +vn 0.2588 0.0000 -0.9659 +vn -0.3584 0.0000 0.9336 +vn -0.1564 0.0000 0.9877 +vn -0.2588 0.0000 0.9659 +vn -0.0523 0.0000 0.9986 +vn 0.1564 0.0000 -0.9877 +vn -1.0000 0.0000 0.0000 +vn 0.0523 0.0000 -0.9986 +vn -0.9815 0.0000 0.1917 +vn 0.1917 0.0000 0.9815 +vn 0.9815 0.0000 -0.1917 +vn -0.1917 0.0000 -0.9815 +vn -0.9480 0.0000 0.3181 +vn 0.3181 0.0000 0.9480 +vn 0.9480 0.0000 -0.3181 +vn -0.3181 0.0000 -0.9480 +vn -0.8984 0.0000 0.4392 +vn 0.4392 0.0000 0.8984 +vn 0.8984 0.0000 -0.4392 +vn -0.4392 0.0000 -0.8984 +vn -0.8334 0.0000 0.5527 +vn 0.5527 0.0000 0.8334 +vn 0.8334 0.0000 -0.5527 +vn -0.5527 0.0000 -0.8334 +vn -0.7541 0.0000 0.6567 +vn 0.6567 0.0000 0.7541 +vn 0.7541 0.0000 -0.6567 +vn -0.6567 0.0000 -0.7541 +vn -0.6620 0.0000 0.7495 +vn 0.7495 0.0000 0.6620 +vn 0.6620 0.0000 -0.7495 +vn -0.7495 0.0000 -0.6620 +vn -0.5585 0.0000 0.8295 +vn 0.8295 0.0000 0.5585 +vn 0.5585 0.0000 -0.8295 +vn -0.8295 0.0000 -0.5585 +vn -0.4454 0.0000 0.8953 +vn 0.8953 0.0000 0.4454 +vn 0.4454 0.0000 -0.8953 +vn -0.8953 0.0000 -0.4454 +vn -0.3247 0.0000 0.9458 +vn 0.9458 0.0000 0.3247 +vn 0.3247 0.0000 -0.9458 +vn -0.9458 0.0000 -0.3247 +vn -0.1985 0.0000 0.9801 +vn 0.9801 0.0000 0.1985 +vn 0.1985 0.0000 -0.9801 +vn -0.9801 0.0000 -0.1985 +vn -0.0689 0.0000 0.9976 +vn 0.9976 0.0000 0.0689 +vn 0.0689 0.0000 -0.9976 +vn -0.9976 0.0000 -0.0689 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/1 6/5/1 7/6/1 +f 9/7/2 12/8/2 10/9/2 +f 14/10/3 16/11/3 13/12/3 +f 9/13/4 13/14/4 11/15/4 +f 10/16/5 14/17/5 9/18/5 +f 12/19/6 15/20/6 10/9/6 +f 11/21/7 16/11/7 12/8/7 +f 29/22/4 27/23/4 25/24/4 +f 20/25/3 17/26/3 18/27/3 +f 17/26/6 23/28/6 21/29/6 +f 19/30/5 24/31/5 23/32/5 +f 18/27/7 21/33/7 22/34/7 +f 20/25/4 22/35/4 24/36/4 +f 31/37/7 28/38/7 27/39/7 +f 30/40/5 25/41/5 26/42/5 +f 32/43/6 26/44/6 28/45/6 +f 29/22/3 32/43/3 31/37/3 +f 40/46/2 3/47/2 1/48/2 +f 7/49/3 33/50/3 8/51/3 +f 35/52/8 7/49/8 6/53/8 +f 39/54/9 1/55/9 2/56/9 +f 37/57/3 2/56/3 4/58/3 +f 36/59/2 6/53/2 5/60/2 +f 33/50/9 5/61/9 8/51/9 +f 38/62/8 4/58/8 3/47/8 +f 34/63/3 43/64/3 33/65/3 +f 45/66/2 38/67/2 40/68/2 +f 51/69/10 44/70/10 43/71/10 +f 52/72/2 42/73/2 44/74/2 +f 42/75/11 34/63/11 35/76/11 +f 48/77/12 40/78/12 39/79/12 +f 47/80/3 39/79/3 37/81/3 +f 44/82/2 35/76/2 36/83/2 +f 43/64/12 36/84/12 33/65/12 +f 46/85/11 37/81/11 38/67/11 +f 55/86/3 64/87/3 56/88/3 +f 64/87/13 53/89/13 56/88/13 +f 54/90/14 47/91/14 46/92/14 +f 45/93/2 54/90/2 46/92/2 +f 41/94/3 51/69/3 43/71/3 +f 50/95/14 41/94/14 42/73/14 +f 56/96/10 45/97/10 48/98/10 +f 55/99/3 48/98/3 47/91/3 +f 57/100/3 67/101/3 59/102/3 +f 69/103/2 62/104/2 61/105/2 +f 60/106/2 50/107/2 52/108/2 +f 59/109/13 52/110/13 51/111/13 +f 62/112/15 55/86/15 54/113/15 +f 61/114/2 54/113/2 53/115/2 +f 49/116/3 59/109/3 51/111/3 +f 58/117/15 49/116/15 50/107/15 +f 77/118/2 70/119/2 69/120/2 +f 78/121/16 71/122/16 70/119/16 +f 66/123/17 57/100/17 58/124/17 +f 72/125/18 61/126/18 64/127/18 +f 63/128/3 72/125/3 64/127/3 +f 68/129/2 58/124/2 60/130/2 +f 67/101/18 60/131/18 59/102/18 +f 70/132/17 63/128/17 62/104/17 +f 84/133/2 74/134/2 76/135/2 +f 79/136/3 88/137/3 80/138/3 +f 65/139/3 75/140/3 67/141/3 +f 74/142/16 65/139/16 66/143/16 +f 80/144/19 69/145/19 72/146/19 +f 71/122/3 80/144/3 72/146/3 +f 76/147/2 66/143/2 68/148/2 +f 75/140/19 68/149/19 67/141/19 +f 96/150/20 85/151/20 88/152/20 +f 90/153/21 81/154/21 82/155/21 +f 83/156/22 76/157/22 75/158/22 +f 86/159/23 79/136/23 78/160/23 +f 85/161/2 78/160/2 77/162/2 +f 73/163/3 83/156/3 75/158/3 +f 82/164/23 73/163/23 74/134/23 +f 88/137/22 77/165/22 80/138/22 +f 101/166/2 94/167/2 93/168/2 +f 102/169/24 95/170/24 94/167/24 +f 87/171/3 96/150/3 88/152/3 +f 92/172/2 82/155/2 84/173/2 +f 91/174/20 84/175/20 83/176/20 +f 94/177/21 87/171/21 86/178/21 +f 93/179/2 86/178/2 85/180/2 +f 81/154/3 91/174/3 83/176/3 +f 110/181/25 103/182/25 102/183/25 +f 107/184/26 100/185/26 99/186/26 +f 89/187/3 99/188/3 91/189/3 +f 98/190/24 89/187/24 90/191/24 +f 104/192/27 93/193/27 96/194/27 +f 95/170/3 104/192/3 96/194/3 +f 100/195/2 90/191/2 92/196/2 +f 99/188/27 92/197/27 91/189/27 +f 111/198/3 120/199/3 112/200/3 +f 120/199/28 109/201/28 112/200/28 +f 109/202/2 102/183/2 101/203/2 +f 97/204/3 107/184/3 99/186/3 +f 106/205/25 97/204/25 98/206/25 +f 112/207/26 101/208/26 104/209/26 +f 103/182/3 112/207/3 104/209/3 +f 108/210/2 98/206/2 100/211/2 +f 122/212/29 113/213/29 114/214/29 +f 113/213/3 123/215/3 115/216/3 +f 116/217/2 106/218/2 108/219/2 +f 115/220/28 108/221/28 107/222/28 +f 118/223/30 111/198/30 110/224/30 +f 117/225/2 110/224/2 109/226/2 +f 105/227/3 115/220/3 107/222/3 +f 114/228/30 105/227/30 106/218/30 +f 133/229/2 126/230/2 125/231/2 +f 134/232/31 127/233/31 126/230/31 +f 128/234/32 117/235/32 120/236/32 +f 119/237/3 128/234/3 120/236/3 +f 124/238/2 114/214/2 116/239/2 +f 123/215/32 116/240/32 115/216/32 +f 126/241/29 119/237/29 118/242/29 +f 125/243/2 118/242/2 117/244/2 +f 139/245/33 132/246/33 131/247/33 +f 140/248/2 130/249/2 132/250/2 +f 121/251/3 131/252/3 123/253/3 +f 130/254/31 121/251/31 122/255/31 +f 136/256/34 125/257/34 128/258/34 +f 127/233/3 136/256/3 128/258/3 +f 132/259/2 122/255/2 124/260/2 +f 131/252/34 124/261/34 123/253/34 +f 151/262/3 144/263/3 143/264/3 +f 152/265/35 141/266/35 144/263/35 +f 142/267/36 135/268/36 134/269/36 +f 133/270/2 142/267/2 134/269/2 +f 129/271/3 139/245/3 131/247/3 +f 138/272/36 129/271/36 130/249/36 +f 144/273/33 133/274/33 136/275/33 +f 143/276/3 136/275/3 135/268/3 +f 146/277/37 147/278/37 145/279/37 +f 152/280/37 150/281/37 149/282/37 +f 148/283/2 138/284/2 140/285/2 +f 147/286/35 140/287/35 139/288/35 +f 150/289/38 143/264/38 142/290/38 +f 149/291/2 142/290/2 141/292/2 +f 137/293/3 147/286/3 139/288/3 +f 146/294/38 137/293/38 138/284/38 +f 155/295/2 154/296/2 153/297/2 +f 159/298/3 157/299/3 158/300/3 +f 153/301/39 157/302/39 155/303/39 +f 154/304/40 158/305/40 153/306/40 +f 156/307/41 159/308/41 154/296/41 +f 155/295/42 160/309/42 156/310/42 +f 173/311/39 171/312/39 169/313/39 +f 164/314/3 161/315/3 162/316/3 +f 161/315/41 167/317/41 165/318/41 +f 163/319/40 168/320/40 167/321/40 +f 162/316/42 165/322/42 166/323/42 +f 164/314/39 166/324/39 168/325/39 +f 175/326/42 172/327/42 171/328/42 +f 174/329/40 169/330/40 170/331/40 +f 176/332/41 170/333/41 172/334/41 +f 173/311/3 176/332/3 175/326/3 +f 179/335/2 178/336/2 177/337/2 +f 183/338/3 181/339/3 182/340/3 +f 177/341/43 181/342/43 179/343/43 +f 178/344/44 182/345/44 177/346/44 +f 180/347/45 183/348/45 178/336/45 +f 179/335/46 184/349/46 180/350/46 +f 197/351/43 195/352/43 193/353/43 +f 188/354/3 185/355/3 186/356/3 +f 185/355/45 191/357/45 189/358/45 +f 187/359/44 192/360/44 191/361/44 +f 186/356/46 189/362/46 190/363/46 +f 188/354/43 190/364/43 192/365/43 +f 199/366/46 196/367/46 195/368/46 +f 198/369/44 193/370/44 194/371/44 +f 200/372/45 194/373/45 196/374/45 +f 197/351/3 200/372/3 199/366/3 +f 203/375/2 202/376/2 201/377/2 +f 207/378/3 205/379/3 206/380/3 +f 201/381/47 205/382/47 203/383/47 +f 202/384/48 206/385/48 201/386/48 +f 204/387/49 207/388/49 202/376/49 +f 203/375/50 208/389/50 204/390/50 +f 221/391/47 219/392/47 217/393/47 +f 212/394/3 209/395/3 210/396/3 +f 209/395/49 215/397/49 213/398/49 +f 211/399/48 216/400/48 215/401/48 +f 210/396/50 213/402/50 214/403/50 +f 212/394/47 214/404/47 216/405/47 +f 223/406/50 220/407/50 219/408/50 +f 222/409/48 217/410/48 218/411/48 +f 224/412/49 218/413/49 220/414/49 +f 221/391/3 224/412/3 223/406/3 +f 227/415/2 226/416/2 225/417/2 +f 231/418/3 229/419/3 230/420/3 +f 225/421/51 229/422/51 227/423/51 +f 226/424/52 230/425/52 225/426/52 +f 228/427/53 231/428/53 226/416/53 +f 227/415/54 232/429/54 228/430/54 +f 245/431/51 243/432/51 241/433/51 +f 236/434/3 233/435/3 234/436/3 +f 233/435/53 239/437/53 237/438/53 +f 235/439/52 240/440/52 239/441/52 +f 234/436/54 237/442/54 238/443/54 +f 236/434/51 238/444/51 240/445/51 +f 247/446/54 244/447/54 243/448/54 +f 246/449/52 241/450/52 242/451/52 +f 248/452/53 242/453/53 244/454/53 +f 245/431/3 248/452/3 247/446/3 +f 251/455/2 250/456/2 249/457/2 +f 255/458/3 253/459/3 254/460/3 +f 249/461/55 253/462/55 251/463/55 +f 250/464/56 254/465/56 249/466/56 +f 252/467/57 255/468/57 250/456/57 +f 251/455/58 256/469/58 252/470/58 +f 269/471/55 267/472/55 265/473/55 +f 260/474/3 257/475/3 258/476/3 +f 257/475/57 263/477/57 261/478/57 +f 259/479/56 264/480/56 263/481/56 +f 258/476/58 261/482/58 262/483/58 +f 260/474/55 262/484/55 264/485/55 +f 271/486/58 268/487/58 267/488/58 +f 270/489/56 265/490/56 266/491/56 +f 272/492/57 266/493/57 268/494/57 +f 269/471/3 272/492/3 271/486/3 +f 275/495/2 274/496/2 273/497/2 +f 279/498/3 277/499/3 278/500/3 +f 273/501/59 277/502/59 275/503/59 +f 274/504/60 278/505/60 273/506/60 +f 276/507/61 279/508/61 274/496/61 +f 275/495/62 280/509/62 276/510/62 +f 293/511/59 291/512/59 289/513/59 +f 284/514/3 281/515/3 282/516/3 +f 281/515/61 287/517/61 285/518/61 +f 283/519/60 288/520/60 287/521/60 +f 282/516/62 285/522/62 286/523/62 +f 284/514/59 286/524/59 288/525/59 +f 295/526/62 292/527/62 291/528/62 +f 294/529/60 289/530/60 290/531/60 +f 296/532/61 290/533/61 292/534/61 +f 293/511/3 296/532/3 295/526/3 +f 299/535/2 298/536/2 297/537/2 +f 303/538/3 301/539/3 302/540/3 +f 297/541/63 301/542/63 299/543/63 +f 298/544/64 302/545/64 297/546/64 +f 300/547/65 303/548/65 298/536/65 +f 299/535/66 304/549/66 300/550/66 +f 317/551/63 315/552/63 313/553/63 +f 308/554/3 305/555/3 306/556/3 +f 305/555/65 311/557/65 309/558/65 +f 307/559/64 312/560/64 311/561/64 +f 306/556/66 309/562/66 310/563/66 +f 308/554/63 310/564/63 312/565/63 +f 319/566/66 316/567/66 315/568/66 +f 318/569/64 313/570/64 314/571/64 +f 320/572/65 314/573/65 316/574/65 +f 317/551/3 320/572/3 319/566/3 +f 323/575/2 322/576/2 321/577/2 +f 327/578/3 325/579/3 326/580/3 +f 321/581/67 325/582/67 323/583/67 +f 322/584/68 326/585/68 321/586/68 +f 324/587/69 327/588/69 322/576/69 +f 323/575/70 328/589/70 324/590/70 +f 341/591/67 339/592/67 337/593/67 +f 332/594/3 329/595/3 330/596/3 +f 329/595/69 335/597/69 333/598/69 +f 331/599/68 336/600/68 335/601/68 +f 330/596/70 333/602/70 334/603/70 +f 332/594/67 334/604/67 336/605/67 +f 343/606/70 340/607/70 339/608/70 +f 342/609/68 337/610/68 338/611/68 +f 344/612/69 338/613/69 340/614/69 +f 341/591/3 344/612/3 343/606/3 +f 347/615/2 346/616/2 345/617/2 +f 351/618/3 349/619/3 350/620/3 +f 345/621/71 349/622/71 347/623/71 +f 346/624/72 350/625/72 345/626/72 +f 348/627/73 351/628/73 346/616/73 +f 347/615/74 352/629/74 348/630/74 +f 365/631/71 363/632/71 361/633/71 +f 356/634/3 353/635/3 354/636/3 +f 353/635/73 359/637/73 357/638/73 +f 355/639/72 360/640/72 359/641/72 +f 354/636/74 357/642/74 358/643/74 +f 356/634/71 358/644/71 360/645/71 +f 367/646/74 364/647/74 363/648/74 +f 366/649/72 361/650/72 362/651/72 +f 368/652/73 362/653/73 364/654/73 +f 365/631/3 368/652/3 367/646/3 +f 371/655/2 370/656/2 369/657/2 +f 375/658/3 373/659/3 374/660/3 +f 369/661/75 373/662/75 371/663/75 +f 370/664/76 374/665/76 369/666/76 +f 372/667/77 375/668/77 370/656/77 +f 371/655/78 376/669/78 372/670/78 +f 389/671/75 387/672/75 385/673/75 +f 380/674/3 377/675/3 378/676/3 +f 377/675/77 383/677/77 381/678/77 +f 379/679/76 384/680/76 383/681/76 +f 378/676/78 381/682/78 382/683/78 +f 380/674/75 382/684/75 384/685/75 +f 391/686/78 388/687/78 387/688/78 +f 390/689/76 385/690/76 386/691/76 +f 392/692/77 386/693/77 388/694/77 +f 389/671/3 392/692/3 391/686/3 +f 395/695/2 394/696/2 393/697/2 +f 399/698/3 397/699/3 398/700/3 +f 393/701/79 397/702/79 395/703/79 +f 394/704/80 398/705/80 393/706/80 +f 396/707/81 399/708/81 394/696/81 +f 395/695/82 400/709/82 396/710/82 +f 413/711/79 411/712/79 409/713/79 +f 404/714/3 401/715/3 402/716/3 +f 401/715/81 407/717/81 405/718/81 +f 403/719/80 408/720/80 407/721/80 +f 402/716/82 405/722/82 406/723/82 +f 404/714/79 406/724/79 408/725/79 +f 415/726/82 412/727/82 411/728/82 +f 414/729/80 409/730/80 410/731/80 +f 416/732/81 410/733/81 412/734/81 +f 413/711/3 416/732/3 415/726/3 +f 3/1/1 4/735/1 2/2/1 +f 8/4/1 5/736/1 6/5/1 +f 9/7/2 11/21/2 12/8/2 +f 14/10/3 15/737/3 16/11/3 +f 9/13/4 14/738/4 13/14/4 +f 10/16/5 15/739/5 14/17/5 +f 12/19/6 16/740/6 15/20/6 +f 11/21/7 13/12/7 16/11/7 +f 29/22/4 31/37/4 27/23/4 +f 20/25/3 19/30/3 17/26/3 +f 17/26/6 19/30/6 23/28/6 +f 19/30/5 20/25/5 24/31/5 +f 18/27/7 17/26/7 21/33/7 +f 20/25/4 18/27/4 22/35/4 +f 31/37/7 32/43/7 28/38/7 +f 30/40/5 29/22/5 25/41/5 +f 32/43/6 30/40/6 26/44/6 +f 29/22/3 30/40/3 32/43/3 +f 40/46/2 38/62/2 3/47/2 +f 7/49/3 34/741/3 33/50/3 +f 35/52/8 34/741/8 7/49/8 +f 39/54/9 40/742/9 1/55/9 +f 37/57/3 39/54/3 2/56/3 +f 36/59/2 35/52/2 6/53/2 +f 33/50/9 36/743/9 5/61/9 +f 38/62/8 37/57/8 4/58/8 +f 34/63/3 41/744/3 43/64/3 +f 45/66/2 46/85/2 38/67/2 +f 51/69/10 52/745/10 44/70/10 +f 52/72/2 50/95/2 42/73/2 +f 42/75/11 41/744/11 34/63/11 +f 48/77/12 45/746/12 40/78/12 +f 47/80/3 48/77/3 39/79/3 +f 44/82/2 42/75/2 35/76/2 +f 43/64/12 44/747/12 36/84/12 +f 46/85/11 47/80/11 37/81/11 +f 55/86/3 63/748/3 64/87/3 +f 64/87/13 61/749/13 53/89/13 +f 54/90/14 55/99/14 47/91/14 +f 45/93/2 53/750/2 54/90/2 +f 41/94/3 49/751/3 51/69/3 +f 50/95/14 49/751/14 41/94/14 +f 56/96/10 53/752/10 45/97/10 +f 55/99/3 56/96/3 48/98/3 +f 57/100/3 65/753/3 67/101/3 +f 69/103/2 70/132/2 62/104/2 +f 60/106/2 58/117/2 50/107/2 +f 59/109/13 60/754/13 52/110/13 +f 62/112/15 63/748/15 55/86/15 +f 61/114/2 62/112/2 54/113/2 +f 49/116/3 57/755/3 59/109/3 +f 58/117/15 57/755/15 49/116/15 +f 77/118/2 78/121/2 70/119/2 +f 78/121/16 79/756/16 71/122/16 +f 66/123/17 65/753/17 57/100/17 +f 72/125/18 69/757/18 61/126/18 +f 63/128/3 71/758/3 72/125/3 +f 68/129/2 66/123/2 58/124/2 +f 67/101/18 68/759/18 60/131/18 +f 70/132/17 71/758/17 63/128/17 +f 84/133/2 82/164/2 74/134/2 +f 79/136/3 87/760/3 88/137/3 +f 65/139/3 73/761/3 75/140/3 +f 74/142/16 73/761/16 65/139/16 +f 80/144/19 77/762/19 69/145/19 +f 71/122/3 79/756/3 80/144/3 +f 76/147/2 74/142/2 66/143/2 +f 75/140/19 76/763/19 68/149/19 +f 96/150/20 93/764/20 85/151/20 +f 90/153/21 89/765/21 81/154/21 +f 83/156/22 84/766/22 76/157/22 +f 86/159/23 87/760/23 79/136/23 +f 85/161/2 86/159/2 78/160/2 +f 73/163/3 81/767/3 83/156/3 +f 82/164/23 81/767/23 73/163/23 +f 88/137/22 85/768/22 77/165/22 +f 101/166/2 102/169/2 94/167/2 +f 102/169/24 103/769/24 95/170/24 +f 87/171/3 95/770/3 96/150/3 +f 92/172/2 90/153/2 82/155/2 +f 91/174/20 92/771/20 84/175/20 +f 94/177/21 95/770/21 87/171/21 +f 93/179/2 94/177/2 86/178/2 +f 81/154/3 89/765/3 91/174/3 +f 110/181/25 111/772/25 103/182/25 +f 107/184/26 108/773/26 100/185/26 +f 89/187/3 97/774/3 99/188/3 +f 98/190/24 97/774/24 89/187/24 +f 104/192/27 101/775/27 93/193/27 +f 95/170/3 103/769/3 104/192/3 +f 100/195/2 98/190/2 90/191/2 +f 99/188/27 100/776/27 92/197/27 +f 111/198/3 119/777/3 120/199/3 +f 120/199/28 117/778/28 109/201/28 +f 109/202/2 110/181/2 102/183/2 +f 97/204/3 105/779/3 107/184/3 +f 106/205/25 105/779/25 97/204/25 +f 112/207/26 109/780/26 101/208/26 +f 103/182/3 111/772/3 112/207/3 +f 108/210/2 106/205/2 98/206/2 +f 122/212/29 121/781/29 113/213/29 +f 113/213/3 121/781/3 123/215/3 +f 116/217/2 114/228/2 106/218/2 +f 115/220/28 116/782/28 108/221/28 +f 118/223/30 119/777/30 111/198/30 +f 117/225/2 118/223/2 110/224/2 +f 105/227/3 113/783/3 115/220/3 +f 114/228/30 113/783/30 105/227/30 +f 133/229/2 134/232/2 126/230/2 +f 134/232/31 135/784/31 127/233/31 +f 128/234/32 125/785/32 117/235/32 +f 119/237/3 127/786/3 128/234/3 +f 124/238/2 122/212/2 114/214/2 +f 123/215/32 124/787/32 116/240/32 +f 126/241/29 127/786/29 119/237/29 +f 125/243/2 126/241/2 118/242/2 +f 139/245/33 140/788/33 132/246/33 +f 140/248/2 138/272/2 130/249/2 +f 121/251/3 129/789/3 131/252/3 +f 130/254/31 129/789/31 121/251/31 +f 136/256/34 133/790/34 125/257/34 +f 127/233/3 135/784/3 136/256/3 +f 132/259/2 130/254/2 122/255/2 +f 131/252/34 132/791/34 124/261/34 +f 151/262/3 152/265/3 144/263/3 +f 152/265/35 149/792/35 141/266/35 +f 142/267/36 143/276/36 135/268/36 +f 133/270/2 141/793/2 142/267/2 +f 129/271/3 137/794/3 139/245/3 +f 138/272/36 137/794/36 129/271/36 +f 144/273/33 141/795/33 133/274/33 +f 143/276/3 144/273/3 136/275/3 +f 146/277/37 148/796/37 147/278/37 +f 152/280/37 151/797/37 150/281/37 +f 148/283/2 146/294/2 138/284/2 +f 147/286/35 148/798/35 140/287/35 +f 150/289/38 151/262/38 143/264/38 +f 149/291/2 150/289/2 142/290/2 +f 137/293/3 145/799/3 147/286/3 +f 146/294/38 145/799/38 137/293/38 +f 155/295/2 156/310/2 154/296/2 +f 159/298/3 160/309/3 157/299/3 +f 153/301/39 158/800/39 157/302/39 +f 154/304/40 159/801/40 158/305/40 +f 156/307/41 160/802/41 159/308/41 +f 155/295/42 157/299/42 160/309/42 +f 173/311/39 175/326/39 171/312/39 +f 164/314/3 163/319/3 161/315/3 +f 161/315/41 163/319/41 167/317/41 +f 163/319/40 164/314/40 168/320/40 +f 162/316/42 161/315/42 165/322/42 +f 164/314/39 162/316/39 166/324/39 +f 175/326/42 176/332/42 172/327/42 +f 174/329/40 173/311/40 169/330/40 +f 176/332/41 174/329/41 170/333/41 +f 173/311/3 174/329/3 176/332/3 +f 179/335/2 180/350/2 178/336/2 +f 183/338/3 184/349/3 181/339/3 +f 177/341/43 182/803/43 181/342/43 +f 178/344/44 183/804/44 182/345/44 +f 180/347/45 184/805/45 183/348/45 +f 179/335/46 181/339/46 184/349/46 +f 197/351/43 199/366/43 195/352/43 +f 188/354/3 187/359/3 185/355/3 +f 185/355/45 187/359/45 191/357/45 +f 187/359/44 188/354/44 192/360/44 +f 186/356/46 185/355/46 189/362/46 +f 188/354/43 186/356/43 190/364/43 +f 199/366/46 200/372/46 196/367/46 +f 198/369/44 197/351/44 193/370/44 +f 200/372/45 198/369/45 194/373/45 +f 197/351/3 198/369/3 200/372/3 +f 203/375/2 204/390/2 202/376/2 +f 207/378/3 208/389/3 205/379/3 +f 201/381/47 206/806/47 205/382/47 +f 202/384/48 207/807/48 206/385/48 +f 204/387/49 208/808/49 207/388/49 +f 203/375/50 205/379/50 208/389/50 +f 221/391/47 223/406/47 219/392/47 +f 212/394/3 211/399/3 209/395/3 +f 209/395/49 211/399/49 215/397/49 +f 211/399/48 212/394/48 216/400/48 +f 210/396/50 209/395/50 213/402/50 +f 212/394/47 210/396/47 214/404/47 +f 223/406/50 224/412/50 220/407/50 +f 222/409/48 221/391/48 217/410/48 +f 224/412/49 222/409/49 218/413/49 +f 221/391/3 222/409/3 224/412/3 +f 227/415/2 228/430/2 226/416/2 +f 231/418/3 232/429/3 229/419/3 +f 225/421/51 230/809/51 229/422/51 +f 226/424/52 231/810/52 230/425/52 +f 228/427/53 232/811/53 231/428/53 +f 227/415/54 229/419/54 232/429/54 +f 245/431/51 247/446/51 243/432/51 +f 236/434/3 235/439/3 233/435/3 +f 233/435/53 235/439/53 239/437/53 +f 235/439/52 236/434/52 240/440/52 +f 234/436/54 233/435/54 237/442/54 +f 236/434/51 234/436/51 238/444/51 +f 247/446/54 248/452/54 244/447/54 +f 246/449/52 245/431/52 241/450/52 +f 248/452/53 246/449/53 242/453/53 +f 245/431/3 246/449/3 248/452/3 +f 251/455/2 252/470/2 250/456/2 +f 255/458/3 256/469/3 253/459/3 +f 249/461/55 254/812/55 253/462/55 +f 250/464/56 255/813/56 254/465/56 +f 252/467/57 256/814/57 255/468/57 +f 251/455/58 253/459/58 256/469/58 +f 269/471/55 271/486/55 267/472/55 +f 260/474/3 259/479/3 257/475/3 +f 257/475/57 259/479/57 263/477/57 +f 259/479/56 260/474/56 264/480/56 +f 258/476/58 257/475/58 261/482/58 +f 260/474/55 258/476/55 262/484/55 +f 271/486/58 272/492/58 268/487/58 +f 270/489/56 269/471/56 265/490/56 +f 272/492/57 270/489/57 266/493/57 +f 269/471/3 270/489/3 272/492/3 +f 275/495/2 276/510/2 274/496/2 +f 279/498/3 280/509/3 277/499/3 +f 273/501/59 278/815/59 277/502/59 +f 274/504/60 279/816/60 278/505/60 +f 276/507/61 280/817/61 279/508/61 +f 275/495/62 277/499/62 280/509/62 +f 293/511/59 295/526/59 291/512/59 +f 284/514/3 283/519/3 281/515/3 +f 281/515/61 283/519/61 287/517/61 +f 283/519/60 284/514/60 288/520/60 +f 282/516/62 281/515/62 285/522/62 +f 284/514/59 282/516/59 286/524/59 +f 295/526/62 296/532/62 292/527/62 +f 294/529/60 293/511/60 289/530/60 +f 296/532/61 294/529/61 290/533/61 +f 293/511/3 294/529/3 296/532/3 +f 299/535/2 300/550/2 298/536/2 +f 303/538/3 304/549/3 301/539/3 +f 297/541/63 302/818/63 301/542/63 +f 298/544/64 303/819/64 302/545/64 +f 300/547/65 304/820/65 303/548/65 +f 299/535/66 301/539/66 304/549/66 +f 317/551/63 319/566/63 315/552/63 +f 308/554/3 307/559/3 305/555/3 +f 305/555/65 307/559/65 311/557/65 +f 307/559/64 308/554/64 312/560/64 +f 306/556/66 305/555/66 309/562/66 +f 308/554/63 306/556/63 310/564/63 +f 319/566/66 320/572/66 316/567/66 +f 318/569/64 317/551/64 313/570/64 +f 320/572/65 318/569/65 314/573/65 +f 317/551/3 318/569/3 320/572/3 +f 323/575/2 324/590/2 322/576/2 +f 327/578/3 328/589/3 325/579/3 +f 321/581/67 326/821/67 325/582/67 +f 322/584/68 327/822/68 326/585/68 +f 324/587/69 328/823/69 327/588/69 +f 323/575/70 325/579/70 328/589/70 +f 341/591/67 343/606/67 339/592/67 +f 332/594/3 331/599/3 329/595/3 +f 329/595/69 331/599/69 335/597/69 +f 331/599/68 332/594/68 336/600/68 +f 330/596/70 329/595/70 333/602/70 +f 332/594/67 330/596/67 334/604/67 +f 343/606/70 344/612/70 340/607/70 +f 342/609/68 341/591/68 337/610/68 +f 344/612/69 342/609/69 338/613/69 +f 341/591/3 342/609/3 344/612/3 +f 347/615/2 348/630/2 346/616/2 +f 351/618/3 352/629/3 349/619/3 +f 345/621/71 350/824/71 349/622/71 +f 346/624/72 351/825/72 350/625/72 +f 348/627/73 352/826/73 351/628/73 +f 347/615/74 349/619/74 352/629/74 +f 365/631/71 367/646/71 363/632/71 +f 356/634/3 355/639/3 353/635/3 +f 353/635/73 355/639/73 359/637/73 +f 355/639/72 356/634/72 360/640/72 +f 354/636/74 353/635/74 357/642/74 +f 356/634/71 354/636/71 358/644/71 +f 367/646/74 368/652/74 364/647/74 +f 366/649/72 365/631/72 361/650/72 +f 368/652/73 366/649/73 362/653/73 +f 365/631/3 366/649/3 368/652/3 +f 371/655/2 372/670/2 370/656/2 +f 375/658/3 376/669/3 373/659/3 +f 369/661/75 374/827/75 373/662/75 +f 370/664/76 375/828/76 374/665/76 +f 372/667/77 376/829/77 375/668/77 +f 371/655/78 373/659/78 376/669/78 +f 389/671/75 391/686/75 387/672/75 +f 380/674/3 379/679/3 377/675/3 +f 377/675/77 379/679/77 383/677/77 +f 379/679/76 380/674/76 384/680/76 +f 378/676/78 377/675/78 381/682/78 +f 380/674/75 378/676/75 382/684/75 +f 391/686/78 392/692/78 388/687/78 +f 390/689/76 389/671/76 385/690/76 +f 392/692/77 390/689/77 386/693/77 +f 389/671/3 390/689/3 392/692/3 +f 395/695/2 396/710/2 394/696/2 +f 399/698/3 400/709/3 397/699/3 +f 393/701/79 398/830/79 397/702/79 +f 394/704/80 399/831/80 398/705/80 +f 396/707/81 400/832/81 399/708/81 +f 395/695/82 397/699/82 400/709/82 +f 413/711/79 415/726/79 411/712/79 +f 404/714/3 403/719/3 401/715/3 +f 401/715/81 403/719/81 407/717/81 +f 403/719/80 404/714/80 408/720/80 +f 402/716/82 401/715/82 405/722/82 +f 404/714/79 402/716/79 406/724/79 +f 415/726/82 416/732/82 412/727/82 +f 414/729/80 413/711/80 409/730/80 +f 416/732/81 414/729/81 410/733/81 +f 413/711/3 414/729/3 416/732/3 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj new file mode 100644 index 000000000..4fb15ebb7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_short.obj @@ -0,0 +1,185 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_straight_short.blend' +# www.blender.org +o Plane.001 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.062500 0.187500 +v 1.000000 0.062500 0.187500 +v 1.000000 0.062500 -0.187500 +v -0.812500 0.062500 0.500000 +v 0.812500 0.062500 0.500000 +v -0.812500 0.187500 0.500000 +v 0.812500 0.187500 0.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.187500 0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.187500 0.500000 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v -0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -0.500000 +v -0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.187500 -0.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.187500 -0.500000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 1/7/3 5/8/3 3/9/3 +f 2/10/4 6/11/4 1/12/4 +f 4/13/5 7/14/5 2/2/5 +f 3/1/6 8/15/6 4/16/6 +f 36/17/5 10/18/5 34/19/5 +f 13/20/3 38/21/3 37/22/3 +f 12/23/4 13/24/4 10/25/4 +f 10/18/1 37/26/1 34/19/1 +f 11/27/2 40/28/2 35/29/2 +f 9/30/4 16/31/4 11/32/4 +f 21/33/3 19/34/3 17/35/3 +f 23/36/6 20/37/6 19/38/6 +f 22/39/4 17/40/4 18/41/4 +f 24/42/5 18/43/5 20/44/5 +f 21/33/2 24/42/2 23/36/2 +f 29/45/3 27/46/3 25/47/3 +f 31/48/6 28/49/6 27/50/6 +f 30/51/4 25/52/4 26/53/4 +f 32/54/5 26/55/5 28/56/5 +f 29/45/2 32/54/2 31/48/2 +f 33/57/1 15/58/1 9/59/1 +f 39/60/5 16/61/5 15/58/5 +f 36/17/2 14/62/2 12/63/2 +f 11/27/3 33/64/3 9/65/3 +f 33/66/6 40/67/6 39/68/6 +f 38/69/6 34/70/6 37/71/6 +f 3/1/1 4/16/1 2/2/1 +f 7/4/2 8/15/2 5/5/2 +f 1/7/3 6/72/3 5/8/3 +f 2/10/4 7/73/4 6/11/4 +f 4/13/5 8/74/5 7/14/5 +f 3/1/6 5/5/6 8/15/6 +f 36/17/5 12/63/5 10/18/5 +f 13/20/3 14/62/3 38/21/3 +f 12/23/4 14/75/4 13/24/4 +f 10/18/1 13/76/1 37/26/1 +f 11/27/2 16/61/2 40/28/2 +f 9/30/4 15/77/4 16/31/4 +f 21/33/3 23/36/3 19/34/3 +f 23/36/6 24/42/6 20/37/6 +f 22/39/4 21/33/4 17/40/4 +f 24/42/5 22/39/5 18/43/5 +f 21/33/2 22/39/2 24/42/2 +f 29/45/3 31/48/3 27/46/3 +f 31/48/6 32/54/6 28/49/6 +f 30/51/4 29/45/4 25/52/4 +f 32/54/5 30/51/5 26/55/5 +f 29/45/2 30/51/2 32/54/2 +f 33/57/1 39/60/1 15/58/1 +f 39/60/5 40/28/5 16/61/5 +f 36/17/2 38/21/2 14/62/2 +f 11/27/3 35/29/3 33/64/3 +f 33/66/6 35/78/6 40/67/6 +f 38/69/6 36/79/6 34/70/6 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj new file mode 100644 index 000000000..9cfecc35f --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch.obj @@ -0,0 +1,3923 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_switch.blend' +# www.blender.org +o SignTurn +v -2.500000 1.000000 -1.125000 +v -1.500000 1.000000 -1.125000 +v -2.500000 2.000000 -1.125000 +v -1.500000 2.000000 -1.125000 +v -2.500000 2.000000 -0.875000 +v -2.500000 1.000000 -0.875000 +v -1.500000 1.000000 -0.875000 +v -1.500000 2.000000 -0.875000 +v -2.125000 1.000000 -0.875000 +v -1.875000 1.000000 -0.875000 +v -2.125000 1.000000 -1.125000 +v -1.875000 1.000000 -1.125000 +v -2.125000 0.000000 -1.125000 +v -2.125000 0.000000 -0.875000 +v -1.875000 0.000000 -0.875000 +v -1.875000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 2/9/3 +f 1/3/4 5/10/4 3/1/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/15/6 1/16/6 +f 13/17/6 15/18/6 14/19/6 +f 16/20/1 11/21/1 12/22/1 +f 14/23/2 10/24/2 9/25/2 +f 15/26/3 12/27/3 10/28/3 +f 13/29/4 9/30/4 11/31/4 +f 3/1/1 4/32/1 2/2/1 +f 7/4/2 8/33/2 5/5/2 +f 4/7/3 8/34/3 7/8/3 +f 1/3/4 6/35/4 5/10/4 +f 3/11/5 5/36/5 8/12/5 +f 2/14/6 7/37/6 6/15/6 +f 13/17/6 16/38/6 15/18/6 +f 16/20/1 13/39/1 11/21/1 +f 14/23/2 15/40/2 10/24/2 +f 15/26/3 16/41/3 12/27/3 +f 13/29/4 14/42/4 9/30/4 +o SignStraight +v -2.500000 1.000000 -1.125000 +v -1.500000 1.000000 -1.125000 +v -2.500000 2.000000 -1.125000 +v -1.500000 2.000000 -1.125000 +v -2.500000 2.000000 -0.875000 +v -2.500000 1.000000 -0.875000 +v -1.500000 1.000000 -0.875000 +v -1.500000 2.000000 -0.875000 +v -2.125000 1.000000 -0.875000 +v -1.875000 1.000000 -0.875000 +v -2.125000 1.000000 -1.125000 +v -1.875000 1.000000 -1.125000 +v -2.125000 0.000000 -1.125000 +v -2.125000 0.000000 -0.875000 +v -1.875000 0.000000 -0.875000 +v -1.875000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000100 0.999900 +vt 0.000000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 19/43/7 18/44/7 17/45/7 +f 23/46/8 21/47/8 22/48/8 +f 20/49/9 23/50/9 18/51/9 +f 17/45/10 21/52/10 19/43/10 +f 19/53/11 24/54/11 20/55/11 +f 18/56/12 22/57/12 17/58/12 +f 29/59/12 31/60/12 30/61/12 +f 32/62/7 27/63/7 28/64/7 +f 30/65/8 26/66/8 25/67/8 +f 31/68/9 28/69/9 26/70/9 +f 29/71/10 25/72/10 27/73/10 +f 19/43/7 20/74/7 18/44/7 +f 23/46/8 24/75/8 21/47/8 +f 20/49/9 24/76/9 23/50/9 +f 17/45/10 22/77/10 21/52/10 +f 19/53/11 21/78/11 24/54/11 +f 18/56/12 23/79/12 22/57/12 +f 29/59/12 32/80/12 31/60/12 +f 32/62/7 29/81/7 27/63/7 +f 30/65/8 31/82/8 26/66/8 +f 31/68/9 32/83/9 28/69/9 +f 29/71/10 30/84/10 25/72/10 +o Rail +v 1.000000 0.062500 4.812500 +v 1.000000 0.062500 5.187500 +v -1.000000 0.062500 5.187500 +v -1.000000 0.062500 4.812500 +v -1.000000 0.000000 5.187500 +v 1.000000 0.000000 5.187500 +v -1.000000 0.000000 4.812500 +v 1.000000 0.000000 4.812500 +v -1.000000 0.000000 4.187500 +v 1.000000 0.000000 4.187500 +v -1.000000 0.000000 3.812500 +v 1.000000 0.000000 3.812500 +v -1.000000 0.000000 3.187500 +v 1.000000 0.000000 3.187500 +v -1.000000 0.000000 2.812500 +v 1.000000 0.000000 2.812500 +v -1.000000 0.000000 7.187500 +v 1.000000 0.000000 7.187500 +v -1.000000 0.000000 6.812500 +v 1.000000 0.000000 6.812500 +v -1.000000 0.000000 6.187500 +v 1.000000 0.000000 6.187500 +v -1.000000 0.000000 5.812500 +v 1.000000 0.000000 5.812500 +v -1.000000 0.062500 3.812500 +v -1.000000 0.062500 4.187500 +v 1.000000 0.062500 4.187500 +v 1.000000 0.062500 3.812500 +v -1.000000 0.062500 2.812500 +v -1.000000 0.062500 3.187500 +v 1.000000 0.062500 3.187500 +v 1.000000 0.062500 2.812500 +v -1.000000 0.062500 6.812500 +v -1.000000 0.062500 7.187500 +v 1.000000 0.062500 7.187500 +v 1.000000 0.062500 6.812500 +v -1.000000 0.062500 5.812500 +v -1.000000 0.062500 6.187500 +v 1.000000 0.062500 6.187500 +v 1.000000 0.062500 5.812500 +v -0.812500 0.062500 7.500000 +v 0.812500 0.062500 7.500000 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.187500 7.500000 +v 0.812500 0.187500 7.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v 0.750000 0.062500 7.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.187500 2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 7.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 7.500000 +v 0.625000 0.062500 7.062500 +v 0.937500 0.062500 7.062500 +v 0.625000 0.062500 6.937500 +v 0.937500 0.062500 6.937500 +v 0.625000 0.125000 7.062500 +v 0.937500 0.125000 7.062500 +v 0.625000 0.125000 6.937500 +v 0.937500 0.125000 6.937500 +v -0.937500 0.062500 7.062500 +v -0.625000 0.062500 7.062500 +v -0.937500 0.062500 6.937500 +v -0.625000 0.062500 6.937500 +v -0.937500 0.125000 7.062500 +v -0.625000 0.125000 7.062500 +v -0.937500 0.125000 6.937500 +v -0.625000 0.125000 6.937500 +v 0.625000 0.062500 6.062500 +v 0.937500 0.062500 6.062500 +v 0.625000 0.062500 5.937500 +v 0.937500 0.062500 5.937500 +v 0.625000 0.125000 6.062500 +v 0.937500 0.125000 6.062500 +v 0.625000 0.125000 5.937500 +v 0.937500 0.125000 5.937500 +v -0.937500 0.062500 6.062500 +v -0.625000 0.062500 6.062500 +v -0.937500 0.062500 5.937500 +v -0.625000 0.062500 5.937500 +v -0.937500 0.125000 6.062500 +v -0.625000 0.125000 6.062500 +v -0.937500 0.125000 5.937500 +v -0.625000 0.125000 5.937500 +v 0.625000 0.062500 5.062500 +v 0.937500 0.062500 5.062500 +v 0.625000 0.062500 4.937500 +v 0.937500 0.062500 4.937500 +v 0.625000 0.125000 5.062500 +v 0.937500 0.125000 5.062500 +v 0.625000 0.125000 4.937500 +v 0.937500 0.125000 4.937500 +v -0.937500 0.062500 5.062500 +v -0.625000 0.062500 5.062500 +v -0.937500 0.062500 4.937500 +v -0.625000 0.062500 4.937500 +v -0.937500 0.125000 5.062500 +v -0.625000 0.125000 5.062500 +v -0.937500 0.125000 4.937500 +v -0.625000 0.125000 4.937500 +v 0.625000 0.062500 4.062500 +v 0.937500 0.062500 4.062500 +v 0.625000 0.062500 3.937500 +v 0.937500 0.062500 3.937500 +v 0.625000 0.125000 4.062500 +v 0.937500 0.125000 4.062500 +v 0.625000 0.125000 3.937500 +v 0.937500 0.125000 3.937500 +v -0.937500 0.062500 4.062500 +v -0.625000 0.062500 4.062500 +v -0.937500 0.062500 3.937500 +v -0.625000 0.062500 3.937500 +v -0.937500 0.125000 4.062500 +v -0.625000 0.125000 4.062500 +v -0.937500 0.125000 3.937500 +v -0.625000 0.125000 3.937500 +v 0.625000 0.062500 3.062500 +v 0.937500 0.062500 3.062500 +v 0.625000 0.062500 2.937500 +v 0.937500 0.062500 2.937500 +v 0.625000 0.125000 3.062500 +v 0.937500 0.125000 3.062500 +v 0.625000 0.125000 2.937500 +v 0.937500 0.125000 2.937500 +v -0.937500 0.062500 3.062500 +v -0.625000 0.062500 3.062500 +v -0.937500 0.062500 2.937500 +v -0.625000 0.062500 2.937500 +v -0.937500 0.125000 3.062500 +v -0.625000 0.125000 3.062500 +v -0.937500 0.125000 2.937500 +v -0.625000 0.125000 2.937500 +v -0.812500 0.062500 3.500000 +v -0.812500 0.062500 4.500000 +v -0.812500 0.062500 5.500000 +v -0.812500 0.062500 6.500000 +v 0.812500 0.062500 6.500000 +v 0.812500 0.062500 5.500000 +v 0.812500 0.062500 4.500000 +v 0.812500 0.062500 3.500000 +v -0.812500 0.187500 3.500000 +v -0.812500 0.187500 4.500000 +v -0.812500 0.187500 5.500000 +v -0.812500 0.187500 6.500000 +v 0.812500 0.187500 6.500000 +v 0.812500 0.187500 5.500000 +v 0.812500 0.187500 4.500000 +v 0.812500 0.187500 3.500000 +v 0.750000 0.062500 6.500000 +v 0.750000 0.062500 5.500000 +v 0.750000 0.062500 4.500000 +v 0.750000 0.062500 3.500000 +v 0.750000 0.187500 6.500000 +v 0.750000 0.187500 5.500000 +v 0.750000 0.187500 4.500000 +v 0.750000 0.187500 3.500000 +v -0.750000 0.062500 3.500000 +v -0.750000 0.062500 4.500000 +v -0.750000 0.062500 5.500000 +v -0.750000 0.062500 6.500000 +v -0.750000 0.187500 3.500000 +v -0.750000 0.187500 4.500000 +v -0.750000 0.187500 5.500000 +v -0.750000 0.187500 6.500000 +v 1.000000 0.062500 -5.187500 +v 1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -5.187500 +v -1.000000 0.000000 -4.812500 +v 1.000000 0.000000 -4.812500 +v -1.000000 0.000000 -5.187500 +v 1.000000 0.000000 -5.187500 +v -1.000000 0.000000 -5.812500 +v 1.000000 0.000000 -5.812500 +v -1.000000 0.000000 -6.187500 +v 1.000000 0.000000 -6.187500 +v -1.000000 0.000000 -6.812500 +v 1.000000 0.000000 -6.812500 +v -1.000000 0.000000 -7.187500 +v 1.000000 0.000000 -7.187500 +v -1.000000 0.000000 -2.812500 +v 1.000000 0.000000 -2.812500 +v -1.000000 0.000000 -3.187500 +v 1.000000 0.000000 -3.187500 +v -1.000000 0.000000 -3.812500 +v 1.000000 0.000000 -3.812500 +v -1.000000 0.000000 -4.187500 +v 1.000000 0.000000 -4.187500 +v -1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -4.187500 +v -1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -4.187500 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.062500 -7.500000 +v 0.812500 0.062500 -7.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.187500 -7.500000 +v 0.812500 0.187500 -7.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.062500 -7.500000 +v 0.750000 0.187500 -2.500000 +v 0.750000 0.187500 -7.500000 +v -0.750000 0.062500 -7.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.187500 -7.500000 +v -0.750000 0.187500 -2.500000 +v 0.625000 0.062500 -2.937500 +v 0.937500 0.062500 -2.937500 +v 0.625000 0.062500 -3.062500 +v 0.937500 0.062500 -3.062500 +v 0.625000 0.125000 -2.937500 +v 0.937500 0.125000 -2.937500 +v 0.625000 0.125000 -3.062500 +v 0.937500 0.125000 -3.062500 +v -0.937500 0.062500 -2.937500 +v -0.625000 0.062500 -2.937500 +v -0.937500 0.062500 -3.062500 +v -0.625000 0.062500 -3.062500 +v -0.937500 0.125000 -2.937500 +v -0.625000 0.125000 -2.937500 +v -0.937500 0.125000 -3.062500 +v -0.625000 0.125000 -3.062500 +v 0.625000 0.062500 -3.937500 +v 0.937500 0.062500 -3.937500 +v 0.625000 0.062500 -4.062500 +v 0.937500 0.062500 -4.062500 +v 0.625000 0.125000 -3.937500 +v 0.937500 0.125000 -3.937500 +v 0.625000 0.125000 -4.062500 +v 0.937500 0.125000 -4.062500 +v -0.937500 0.062500 -3.937500 +v -0.625000 0.062500 -3.937500 +v -0.937500 0.062500 -4.062500 +v -0.625000 0.062500 -4.062500 +v -0.937500 0.125000 -3.937500 +v -0.625000 0.125000 -3.937500 +v -0.937500 0.125000 -4.062500 +v -0.625000 0.125000 -4.062500 +v 0.625000 0.062500 -4.937500 +v 0.937500 0.062500 -4.937500 +v 0.625000 0.062500 -5.062500 +v 0.937500 0.062500 -5.062500 +v 0.625000 0.125000 -4.937500 +v 0.937500 0.125000 -4.937500 +v 0.625000 0.125000 -5.062500 +v 0.937500 0.125000 -5.062500 +v -0.937500 0.062500 -4.937500 +v -0.625000 0.062500 -4.937500 +v -0.937500 0.062500 -5.062500 +v -0.625000 0.062500 -5.062500 +v -0.937500 0.125000 -4.937500 +v -0.625000 0.125000 -4.937500 +v -0.937500 0.125000 -5.062500 +v -0.625000 0.125000 -5.062500 +v 0.625000 0.062500 -5.937500 +v 0.937500 0.062500 -5.937500 +v 0.625000 0.062500 -6.062500 +v 0.937500 0.062500 -6.062500 +v 0.625000 0.125000 -5.937500 +v 0.937500 0.125000 -5.937500 +v 0.625000 0.125000 -6.062500 +v 0.937500 0.125000 -6.062500 +v -0.937500 0.062500 -5.937500 +v -0.625000 0.062500 -5.937500 +v -0.937500 0.062500 -6.062500 +v -0.625000 0.062500 -6.062500 +v -0.937500 0.125000 -5.937500 +v -0.625000 0.125000 -5.937500 +v -0.937500 0.125000 -6.062500 +v -0.625000 0.125000 -6.062500 +v 0.625000 0.062500 -6.937500 +v 0.937500 0.062500 -6.937500 +v 0.625000 0.062500 -7.062500 +v 0.937500 0.062500 -7.062500 +v 0.625000 0.125000 -6.937500 +v 0.937500 0.125000 -6.937500 +v 0.625000 0.125000 -7.062500 +v 0.937500 0.125000 -7.062500 +v -0.937500 0.062500 -6.937500 +v -0.625000 0.062500 -6.937500 +v -0.937500 0.062500 -7.062500 +v -0.625000 0.062500 -7.062500 +v -0.937500 0.125000 -6.937500 +v -0.625000 0.125000 -6.937500 +v -0.937500 0.125000 -7.062500 +v -0.625000 0.125000 -7.062500 +v -0.812500 0.062500 -6.500000 +v -0.812500 0.062500 -5.500000 +v -0.812500 0.062500 -4.500000 +v -0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -4.500000 +v 0.812500 0.062500 -5.500000 +v 0.812500 0.062500 -6.500000 +v -0.812500 0.187500 -6.500000 +v -0.812500 0.187500 -5.500000 +v -0.812500 0.187500 -4.500000 +v -0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -4.500000 +v 0.812500 0.187500 -5.500000 +v 0.812500 0.187500 -6.500000 +v 0.750000 0.062500 -3.500000 +v 0.750000 0.062500 -4.500000 +v 0.750000 0.062500 -5.500000 +v 0.750000 0.062500 -6.500000 +v 0.750000 0.187500 -3.500000 +v 0.750000 0.187500 -4.500000 +v 0.750000 0.187500 -5.500000 +v 0.750000 0.187500 -6.500000 +v -0.750000 0.062500 -6.500000 +v -0.750000 0.062500 -5.500000 +v -0.750000 0.062500 -4.500000 +v -0.750000 0.062500 -3.500000 +v -0.750000 0.187500 -6.500000 +v -0.750000 0.187500 -5.500000 +v -0.750000 0.187500 -4.500000 +v -0.750000 0.187500 -3.500000 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v -1.725096 0.062500 1.451439 +v -1.966661 0.062500 1.649687 +v -1.645797 0.062500 1.548066 +v -1.887362 0.062500 1.746314 +v -1.756082 0.062500 1.315164 +v -1.518184 0.062500 1.605042 +v -3.064205 0.062500 2.873829 +v -3.302103 0.062500 2.583950 +v -1.756082 0.000000 1.315164 +v -3.302103 0.000000 2.583950 +v -1.518184 0.000000 1.605042 +v -3.064205 0.000000 2.873829 +v -0.504144 0.062500 3.159608 +v -0.504144 0.187500 3.159608 +v -1.855282 0.187500 4.062409 +v -1.855282 0.062500 4.062409 +v -0.556111 0.062500 3.194331 +v -0.556111 0.187500 3.194331 +v -1.803315 0.187500 4.027686 +v -1.803315 0.062500 4.027686 +v 0.217808 0.062500 4.510286 +v 0.217808 0.187500 4.510286 +v -1.283496 0.187500 5.132147 +v -1.283496 0.062500 5.132147 +v 0.160065 0.062500 4.534204 +v 0.160065 0.187500 4.534204 +v -1.225753 0.187500 5.108229 +v -1.225753 0.062500 5.108229 +v 0.662384 0.062500 5.975857 +v 0.662384 0.187500 5.975857 +v -0.931392 0.187500 6.292879 +v -0.931392 0.062500 6.292879 +v 0.601084 0.062500 5.988050 +v 0.601084 0.187500 5.988050 +v -0.870092 0.187500 6.280685 +v -0.870092 0.062500 6.280685 +v 0.812499 0.062500 7.500000 +v 0.812499 0.187500 7.500000 +v -0.812501 0.187500 7.500000 +v -0.812501 0.062500 7.500000 +v 0.749998 0.062500 7.500000 +v 0.749998 0.187500 7.500000 +v -0.750000 0.187500 7.500000 +v -0.750000 0.062500 7.500000 +v -1.376398 0.062500 2.183322 +v -1.376398 0.187500 2.183322 +v -1.324431 0.187500 2.148599 +v -1.324431 0.062500 2.148599 +v -3.495856 0.062500 2.040392 +v -3.495856 0.187500 2.040392 +v -2.144718 0.187500 1.137591 +v -2.144718 0.062500 1.137591 +v -3.443888 0.062500 2.005669 +v -3.443888 0.187500 2.005669 +v -2.196684 0.187500 1.172314 +v -2.196684 0.062500 1.172314 +v -4.217808 0.062500 0.689714 +v -4.217808 0.187500 0.689714 +v -2.716504 0.187500 0.067853 +v -2.716504 0.062500 0.067853 +v -4.160065 0.062500 0.665796 +v -4.160065 0.187500 0.665796 +v -2.774246 0.187500 0.091771 +v -2.774246 0.062500 0.091771 +v -4.662384 0.062500 -0.775857 +v -4.662384 0.187500 -0.775857 +v -3.068608 0.187500 -1.092879 +v -3.068608 0.062500 -1.092879 +v -4.601084 0.062500 -0.788050 +v -4.601084 0.187500 -0.788050 +v -3.129908 0.187500 -1.080685 +v -3.129908 0.062500 -1.080685 +v -4.812499 0.062500 -2.300000 +v -4.812499 0.187500 -2.300000 +v -3.187499 0.187500 -2.300000 +v -3.187499 0.062500 -2.300000 +v -4.749998 0.062500 -2.300000 +v -4.749998 0.187500 -2.300000 +v -3.250000 0.187500 -2.300000 +v -3.250000 0.062500 -2.300000 +v -2.932924 0.125000 2.442679 +v -3.174490 0.125000 2.640927 +v -2.853625 0.125000 2.539305 +v -3.095191 0.125000 2.737553 +v -2.623602 0.062500 3.016677 +v -2.623602 0.187500 3.016677 +v -2.675569 0.062500 3.051401 +v -2.675569 0.187500 3.051401 +v -2.932924 0.062500 2.442679 +v -3.174490 0.062500 2.640927 +v -2.853625 0.062500 2.539305 +v -3.095191 0.062500 2.737553 +v -1.725096 0.125000 1.451439 +v -1.966661 0.125000 1.649687 +v -1.645797 0.125000 1.548066 +v -1.887362 0.125000 1.746314 +v -3.000000 0.062500 -5.187500 +v -3.000000 0.062500 -4.812500 +v -5.000000 0.062500 -4.812500 +v -5.000000 0.062500 -5.187500 +v -5.000000 0.000000 -4.812500 +v -3.000000 0.000000 -4.812500 +v -5.000000 0.000000 -5.187500 +v -3.000000 0.000000 -5.187500 +v -5.000000 0.000000 -5.812500 +v -3.000000 0.000000 -5.812500 +v -5.000000 0.000000 -6.187500 +v -3.000000 0.000000 -6.187500 +v -5.000000 0.000000 -6.812500 +v -3.000000 0.000000 -6.812500 +v -5.000000 0.000000 -7.187500 +v -3.000000 0.000000 -7.187500 +v -5.000000 0.000000 -3.812500 +v -3.000000 0.000000 -3.812500 +v -5.000000 0.000000 -4.187500 +v -3.000000 0.000000 -4.187500 +v -5.000000 0.062500 -6.187500 +v -5.000000 0.062500 -5.812500 +v -3.000000 0.062500 -5.812500 +v -3.000000 0.062500 -6.187500 +v -5.000000 0.062500 -7.187500 +v -5.000000 0.062500 -6.812500 +v -3.000000 0.062500 -6.812500 +v -3.000000 0.062500 -7.187500 +v -5.000000 0.062500 -4.187500 +v -5.000000 0.062500 -3.812500 +v -3.000000 0.062500 -3.812500 +v -3.000000 0.062500 -4.187500 +v -4.812500 0.062500 -7.500000 +v -3.187500 0.062500 -7.500000 +v -4.812500 0.187500 -7.500000 +v -3.187500 0.187500 -7.500000 +v -3.250000 0.062500 -7.500000 +v -3.250000 0.187500 -7.500000 +v -4.750000 0.062500 -7.500000 +v -4.750000 0.187500 -7.500000 +v -3.375000 0.062500 -3.937500 +v -3.062500 0.062500 -3.937500 +v -3.375000 0.062500 -4.062500 +v -3.062500 0.062500 -4.062500 +v -3.375000 0.125000 -3.937500 +v -3.062500 0.125000 -3.937500 +v -3.375000 0.125000 -4.062500 +v -3.062500 0.125000 -4.062500 +v -4.937500 0.062500 -3.937500 +v -4.625000 0.062500 -3.937500 +v -4.937500 0.062500 -4.062500 +v -4.625000 0.062500 -4.062500 +v -4.937500 0.125000 -3.937500 +v -4.625000 0.125000 -3.937500 +v -4.937500 0.125000 -4.062500 +v -4.625000 0.125000 -4.062500 +v -3.375000 0.062500 -4.937500 +v -3.062500 0.062500 -4.937500 +v -3.375000 0.062500 -5.062500 +v -3.062500 0.062500 -5.062500 +v -3.375000 0.125000 -4.937500 +v -3.062500 0.125000 -4.937500 +v -3.375000 0.125000 -5.062500 +v -3.062500 0.125000 -5.062500 +v -4.937500 0.062500 -4.937500 +v -4.625000 0.062500 -4.937500 +v -4.937500 0.062500 -5.062500 +v -4.625000 0.062500 -5.062500 +v -4.937500 0.125000 -4.937500 +v -4.625000 0.125000 -4.937500 +v -4.937500 0.125000 -5.062500 +v -4.625000 0.125000 -5.062500 +v -3.375000 0.062500 -5.937500 +v -3.062500 0.062500 -5.937500 +v -3.375000 0.062500 -6.062500 +v -3.062500 0.062500 -6.062500 +v -3.375000 0.125000 -5.937500 +v -3.062500 0.125000 -5.937500 +v -3.375000 0.125000 -6.062500 +v -3.062500 0.125000 -6.062500 +v -4.937500 0.062500 -5.937500 +v -4.625000 0.062500 -5.937500 +v -4.937500 0.062500 -6.062500 +v -4.625000 0.062500 -6.062500 +v -4.937500 0.125000 -5.937500 +v -4.625000 0.125000 -5.937500 +v -4.937500 0.125000 -6.062500 +v -4.625000 0.125000 -6.062500 +v -3.375000 0.062500 -6.937500 +v -3.062500 0.062500 -6.937500 +v -3.375000 0.062500 -7.062500 +v -3.062500 0.062500 -7.062500 +v -3.375000 0.125000 -6.937500 +v -3.062500 0.125000 -6.937500 +v -3.375000 0.125000 -7.062500 +v -3.062500 0.125000 -7.062500 +v -4.937500 0.062500 -6.937500 +v -4.625000 0.062500 -6.937500 +v -4.937500 0.062500 -7.062500 +v -4.625000 0.062500 -7.062500 +v -4.937500 0.125000 -6.937500 +v -4.625000 0.125000 -6.937500 +v -4.937500 0.125000 -7.062500 +v -4.625000 0.125000 -7.062500 +v -4.812500 0.062500 -6.500000 +v -4.812500 0.062500 -5.500000 +v -4.812500 0.062500 -4.500000 +v -4.812500 0.062500 -3.500000 +v -3.187500 0.062500 -3.500000 +v -3.187500 0.062500 -4.500000 +v -3.187500 0.062500 -5.500000 +v -3.187500 0.062500 -6.500000 +v -4.812500 0.187500 -6.500000 +v -4.812500 0.187500 -5.500000 +v -4.812500 0.187500 -4.500000 +v -4.812500 0.187500 -3.500000 +v -3.187500 0.187500 -3.500000 +v -3.187500 0.187500 -4.500000 +v -3.187500 0.187500 -5.500000 +v -3.187500 0.187500 -6.500000 +v -3.250000 0.062500 -3.500000 +v -3.250000 0.062500 -4.500000 +v -3.250000 0.062500 -5.500000 +v -3.250000 0.062500 -6.500000 +v -3.250000 0.187500 -3.500000 +v -3.250000 0.187500 -4.500000 +v -3.250000 0.187500 -5.500000 +v -3.250000 0.187500 -6.500000 +v -4.750000 0.062500 -6.500000 +v -4.750000 0.062500 -5.500000 +v -4.750000 0.062500 -4.500000 +v -4.750000 0.062500 -3.500000 +v -4.750000 0.187500 -6.500000 +v -4.750000 0.187500 -5.500000 +v -4.750000 0.187500 -4.500000 +v -4.750000 0.187500 -3.500000 +v -2.346383 0.062500 0.486832 +v -2.621983 0.062500 0.634143 +v -2.287458 0.062500 0.597072 +v -2.563059 0.062500 0.744383 +v -2.350187 0.062500 0.347129 +v -2.173414 0.062500 0.677850 +v -3.937256 0.062500 1.620643 +v -4.114030 0.062500 1.289923 +v -2.350187 0.000000 0.347129 +v -4.114030 0.000000 1.289923 +v -2.173414 0.000000 0.677850 +v -3.937256 0.000000 1.620643 +v -3.724385 0.125000 1.223389 +v -3.999985 0.125000 1.370701 +v -3.665460 0.125000 1.333629 +v -3.941061 0.125000 1.480941 +v -3.724385 0.062500 1.223389 +v -3.999985 0.062500 1.370701 +v -3.665460 0.062500 1.333629 +v -3.941061 0.062500 1.480941 +v -2.346383 0.125000 0.486832 +v -2.621983 0.125000 0.634143 +v -2.287458 0.125000 0.597072 +v -2.563059 0.125000 0.744383 +v -2.787336 0.062500 -0.609743 +v -3.086380 0.062500 -0.519029 +v -2.751051 0.062500 -0.490125 +v -3.050095 0.062500 -0.399411 +v -2.763813 0.062500 -0.747503 +v -2.654956 0.062500 -0.388651 +v -4.568837 0.062500 0.191919 +v -4.677694 0.062500 -0.166934 +v -2.763813 0.000000 -0.747503 +v -4.677694 0.000000 -0.166934 +v -2.654956 0.000000 -0.388651 +v -4.568837 0.000000 0.191919 +v -4.282555 0.125000 -0.156173 +v -4.581599 0.125000 -0.065459 +v -4.246270 0.125000 -0.036556 +v -4.545314 0.125000 0.054159 +v -4.282555 0.062500 -0.156173 +v -4.581599 0.062500 -0.065459 +v -4.246270 0.062500 -0.036556 +v -4.545314 0.062500 0.054159 +v -2.787336 0.125000 -0.609743 +v -3.086380 0.125000 -0.519029 +v -2.751051 0.125000 -0.490125 +v -3.050095 0.125000 -0.399411 +v -3.005888 0.062500 -1.771274 +v -3.316883 0.062500 -1.740644 +v -2.993635 0.062500 -1.646876 +v -3.304631 0.062500 -1.616246 +v -2.955941 0.062500 -1.901798 +v -2.919184 0.062500 -1.528604 +v -4.909554 0.062500 -1.332570 +v -4.946310 0.062500 -1.705764 +v -2.955941 0.000000 -1.901798 +v -4.946310 0.000000 -1.705764 +v -2.919184 0.000000 -1.528604 +v -4.909554 0.000000 -1.332570 +v -4.560863 0.125000 -1.618122 +v -4.871859 0.125000 -1.587492 +v -4.548611 0.125000 -1.493724 +v -4.859607 0.125000 -1.463094 +v -4.560863 0.062500 -1.618122 +v -4.871859 0.062500 -1.587492 +v -4.548611 0.062500 -1.493724 +v -4.859607 0.062500 -1.463094 +v -3.005888 0.125000 -1.771274 +v -3.316883 0.125000 -1.740644 +v -2.993635 0.125000 -1.646876 +v -3.304631 0.125000 -1.616246 +v -0.904809 0.062500 2.462447 +v -1.146375 0.062500 2.660695 +v -0.825510 0.062500 2.559073 +v -1.067076 0.062500 2.757321 +v -0.935795 0.062500 2.326171 +v -0.697898 0.062500 2.616050 +v -2.243919 0.062500 3.884836 +v -2.481816 0.062500 3.594958 +v -0.935795 0.000000 2.326171 +v -2.481816 0.000000 3.594958 +v -0.697898 0.000000 2.616050 +v -2.243919 0.000000 3.884836 +v -2.112638 0.125000 3.453686 +v -2.354204 0.125000 3.651934 +v -2.033339 0.125000 3.550313 +v -2.274905 0.125000 3.748561 +v -2.112638 0.062500 3.453686 +v -2.354204 0.062500 3.651934 +v -2.033339 0.062500 3.550313 +v -2.274905 0.062500 3.748561 +v -0.904809 0.125000 2.462447 +v -1.146375 0.125000 2.660695 +v -0.825510 0.125000 2.559073 +v -1.067076 0.125000 2.757321 +v -5.000000 0.000000 -2.812500 +v -3.000000 0.000000 -2.812500 +v -5.000000 0.000000 -3.187500 +v -3.000000 0.000000 -3.187500 +v -5.000000 0.062500 -3.187500 +v -5.000000 0.062500 -2.812500 +v -3.000000 0.062500 -2.812500 +v -3.000000 0.062500 -3.187500 +v -3.375000 0.062500 -2.937500 +v -3.062500 0.062500 -2.937500 +v -3.375000 0.062500 -3.062500 +v -3.062500 0.062500 -3.062500 +v -3.375000 0.125000 -2.937500 +v -3.062500 0.125000 -2.937500 +v -3.375000 0.125000 -3.062500 +v -3.062500 0.125000 -3.062500 +v -4.937500 0.062500 -2.937500 +v -4.625000 0.062500 -2.937500 +v -4.937500 0.062500 -3.062500 +v -4.625000 0.062500 -3.062500 +v -4.937500 0.125000 -2.937500 +v -4.625000 0.125000 -2.937500 +v -4.937500 0.125000 -3.062500 +v -4.625000 0.125000 -3.062500 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.406250 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.031250 +vt 0.406250 0.156250 +vt 0.187500 1.000000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7765 0.0000 -0.6301 +vn 0.8819 0.0000 -0.4714 +vn -0.7730 0.0000 0.6344 +vn 0.6344 0.0000 0.7730 +vn 0.9569 0.0000 -0.2903 +vn -0.9569 0.0000 0.2903 +vn -0.8819 0.0000 0.4714 +vn -0.9952 0.0000 0.0980 +vn 0.9952 0.0000 -0.0980 +vn -0.7765 0.0000 0.6301 +vn 0.7730 0.0000 -0.6344 +vn -0.6344 0.0000 -0.7730 +vn 0.4714 0.0000 0.8819 +vn -0.4714 0.0000 -0.8819 +vn 0.2903 0.0000 0.9569 +vn -0.2903 0.0000 -0.9569 +vn 0.0980 0.0000 0.9952 +vn -0.0980 0.0000 -0.9952 +s off +f 34/85/13 36/86/13 35/87/13 +f 39/88/14 38/89/14 37/90/14 +f 43/91/14 42/92/14 41/93/14 +f 47/94/14 46/95/14 45/96/14 +f 51/97/14 50/98/14 49/99/14 +f 55/100/14 54/101/14 53/102/14 +f 59/103/13 57/104/13 58/105/13 +f 63/106/13 61/107/13 62/108/13 +f 67/109/13 65/110/13 66/111/13 +f 71/112/13 69/113/13 70/114/13 +f 49/115/15 65/116/15 51/117/15 +f 42/118/16 58/119/16 41/120/16 +f 50/121/16 66/122/16 49/123/16 +f 44/124/17 59/125/17 42/92/17 +f 52/126/17 67/127/17 50/98/17 +f 43/91/18 60/128/18 44/129/18 +f 37/130/15 36/131/15 39/132/15 +f 51/97/18 68/133/18 52/134/18 +f 45/135/15 61/136/15 47/137/15 +f 38/138/16 35/139/16 37/140/16 +f 53/141/15 69/142/15 55/143/15 +f 46/144/16 62/145/16 45/146/16 +f 40/147/17 34/148/17 38/89/17 +f 54/149/16 70/150/16 53/151/16 +f 48/152/17 63/153/17 46/95/17 +f 39/88/18 33/154/18 40/155/18 +f 56/156/17 71/157/17 54/101/17 +f 47/94/18 64/158/18 48/159/18 +f 41/160/15 57/161/15 43/162/15 +f 55/100/18 72/163/18 56/164/18 +f 181/165/17 74/166/17 173/167/17 +f 177/168/15 75/169/15 169/170/15 +f 81/171/15 189/172/15 185/173/15 +f 78/174/16 81/175/16 74/176/16 +f 80/177/13 192/178/13 184/179/13 +f 74/166/14 185/180/14 173/167/14 +f 75/181/14 516/182/14 85/183/14 +f 85/183/17 197/184/17 193/185/17 +f 77/186/13 200/187/13 180/188/13 +f 75/181/14 193/185/14 169/189/14 +f 79/190/15 492/191/15 75/169/15 +f 73/192/16 88/193/16 77/194/16 +f 93/195/15 91/196/15 89/197/15 +f 95/198/18 92/199/18 91/200/18 +f 94/201/16 89/202/16 90/203/16 +f 96/204/17 90/205/17 92/206/17 +f 93/195/13 96/204/13 95/198/13 +f 101/207/15 99/208/15 97/209/15 +f 103/210/18 100/211/18 99/212/18 +f 102/213/16 97/214/16 98/215/16 +f 104/216/17 98/217/17 100/218/17 +f 101/207/13 104/216/13 103/210/13 +f 109/219/15 107/220/15 105/221/15 +f 111/222/18 108/223/18 107/224/18 +f 110/225/16 105/226/16 106/227/16 +f 112/228/17 106/229/17 108/230/17 +f 109/219/13 112/228/13 111/222/13 +f 117/231/15 115/232/15 113/233/15 +f 119/234/18 116/235/18 115/236/18 +f 118/237/16 113/238/16 114/239/16 +f 120/240/17 114/241/17 116/242/17 +f 117/231/13 120/240/13 119/234/13 +f 125/243/15 123/244/15 121/245/15 +f 127/246/18 124/247/18 123/248/18 +f 126/249/16 121/250/16 122/251/16 +f 128/252/17 122/253/17 124/254/17 +f 125/243/13 128/252/13 127/246/13 +f 133/255/15 131/256/15 129/257/15 +f 135/258/18 132/259/18 131/260/18 +f 134/261/16 129/262/16 130/263/16 +f 136/264/17 130/265/17 132/266/17 +f 133/255/13 136/264/13 135/258/13 +f 141/267/15 139/268/15 137/269/15 +f 143/270/18 140/271/18 139/272/18 +f 142/273/16 137/274/16 138/275/16 +f 144/276/17 138/277/17 140/278/17 +f 141/267/13 144/276/13 143/270/13 +f 149/279/15 147/280/15 145/281/15 +f 151/282/18 148/283/18 147/284/18 +f 150/285/16 145/286/16 146/287/16 +f 152/288/17 146/289/17 148/290/17 +f 149/279/13 152/288/13 151/282/13 +f 157/291/15 155/292/15 153/293/15 +f 159/294/18 156/295/18 155/296/18 +f 158/297/16 153/298/16 154/299/16 +f 160/300/17 154/301/17 156/302/17 +f 157/291/13 160/300/13 159/294/13 +f 165/303/15 163/304/15 161/305/15 +f 167/306/18 164/307/18 163/308/18 +f 166/309/16 161/310/16 162/311/16 +f 168/312/17 162/313/17 164/314/17 +f 165/303/13 168/312/13 167/306/13 +f 172/315/14 86/316/14 73/317/14 +f 171/318/14 196/319/14 172/320/14 +f 170/321/14 195/322/14 171/323/14 +f 169/324/14 194/325/14 170/326/14 +f 177/168/13 87/327/13 79/190/13 +f 178/328/13 197/329/13 177/330/13 +f 179/331/13 198/332/13 178/333/13 +f 180/334/13 199/335/13 179/336/13 +f 196/337/17 88/338/17 86/316/17 +f 195/339/17 200/340/17 196/319/17 +f 194/341/17 199/342/17 195/322/17 +f 193/343/17 198/344/17 194/325/17 +f 176/345/14 82/346/14 76/347/14 +f 175/348/14 188/349/14 176/350/14 +f 174/351/14 187/352/14 175/353/14 +f 173/354/14 186/355/14 174/356/14 +f 181/165/13 83/357/13 78/358/13 +f 182/359/13 189/360/13 181/361/13 +f 183/362/13 190/363/13 182/364/13 +f 184/365/13 191/366/13 183/367/13 +f 188/368/15 84/369/15 82/370/15 +f 187/371/15 192/372/15 188/373/15 +f 186/374/15 191/375/15 187/376/15 +f 185/377/15 190/378/15 186/379/15 +f 77/186/15 172/380/15 73/381/15 +f 180/334/15 171/382/15 172/383/15 +f 179/331/15 170/384/15 171/385/15 +f 178/328/15 169/386/15 170/387/15 +f 80/177/17 176/345/17 76/347/17 +f 184/365/17 175/348/17 176/350/17 +f 183/362/17 174/351/17 175/353/17 +f 182/359/17 173/354/17 174/356/17 +f 202/388/13 204/389/13 203/390/13 +f 207/391/14 206/392/14 205/393/14 +f 211/394/14 210/395/14 209/396/14 +f 215/397/14 214/398/14 213/399/14 +f 219/400/14 218/401/14 217/402/14 +f 223/403/14 222/404/14 221/405/14 +f 227/406/13 225/407/13 226/408/13 +f 231/409/13 229/410/13 230/411/13 +f 235/412/13 233/413/13 234/414/13 +f 239/415/13 237/416/13 238/417/13 +f 217/418/15 233/419/15 219/420/15 +f 210/421/16 226/422/16 209/423/16 +f 218/424/16 234/425/16 217/426/16 +f 212/427/17 227/428/17 210/395/17 +f 220/429/17 235/430/17 218/401/17 +f 211/394/18 228/431/18 212/432/18 +f 205/433/15 204/434/15 207/435/15 +f 219/400/18 236/436/18 220/437/18 +f 213/438/15 229/439/15 215/440/15 +f 206/441/16 203/442/16 205/443/16 +f 221/444/15 237/445/15 223/446/15 +f 214/447/16 230/448/16 213/449/16 +f 208/450/17 202/451/17 206/392/17 +f 222/452/16 238/453/16 221/454/16 +f 216/455/17 231/456/17 214/398/17 +f 207/391/18 201/457/18 208/458/18 +f 224/459/17 239/460/17 222/404/17 +f 215/397/18 232/461/18 216/462/18 +f 209/463/15 225/464/15 211/465/15 +f 223/403/18 240/466/18 224/467/18 +f 349/468/17 242/469/17 341/470/17 +f 345/471/15 243/472/15 337/473/15 +f 249/474/15 357/475/15 353/476/15 +f 520/477/13 79/190/13 87/327/13 +f 248/478/13 360/479/13 352/480/13 +f 242/469/14 353/481/14 341/470/14 +f 244/482/18 252/483/18 248/484/18 +f 253/485/17 365/486/17 361/487/17 +f 245/488/13 368/489/13 348/490/13 +f 243/491/14 361/487/14 337/492/14 +f 247/493/18 253/494/18 243/495/18 +f 85/183/17 520/477/17 87/327/17 +f 261/496/15 259/497/15 257/498/15 +f 263/499/18 260/500/18 259/501/18 +f 262/502/16 257/503/16 258/504/16 +f 264/505/17 258/506/17 260/507/17 +f 261/496/13 264/505/13 263/499/13 +f 269/508/15 267/509/15 265/510/15 +f 271/511/18 268/512/18 267/513/18 +f 270/514/16 265/515/16 266/516/16 +f 272/517/17 266/518/17 268/519/17 +f 269/508/13 272/517/13 271/511/13 +f 277/520/15 275/521/15 273/522/15 +f 279/523/18 276/524/18 275/525/18 +f 278/526/16 273/527/16 274/528/16 +f 280/529/17 274/530/17 276/531/17 +f 277/520/13 280/529/13 279/523/13 +f 285/532/15 283/533/15 281/534/15 +f 287/535/18 284/536/18 283/537/18 +f 286/538/16 281/539/16 282/540/16 +f 288/541/17 282/542/17 284/543/17 +f 285/532/13 288/541/13 287/535/13 +f 293/544/15 291/545/15 289/546/15 +f 295/547/18 292/548/18 291/549/18 +f 294/550/16 289/551/16 290/552/16 +f 296/553/17 290/554/17 292/555/17 +f 293/544/13 296/553/13 295/547/13 +f 301/556/15 299/557/15 297/558/15 +f 303/559/18 300/560/18 299/561/18 +f 302/562/16 297/563/16 298/564/16 +f 304/565/17 298/566/17 300/567/17 +f 301/556/13 304/565/13 303/559/13 +f 309/568/15 307/569/15 305/570/15 +f 311/571/18 308/572/18 307/573/18 +f 310/574/16 305/575/16 306/576/16 +f 312/577/17 306/578/17 308/579/17 +f 309/568/13 312/577/13 311/571/13 +f 317/580/15 315/581/15 313/582/15 +f 319/583/18 316/584/18 315/585/18 +f 318/586/16 313/587/16 314/588/16 +f 320/589/17 314/590/17 316/591/17 +f 317/580/13 320/589/13 319/583/13 +f 325/592/15 323/593/15 321/594/15 +f 327/595/18 324/596/18 323/597/18 +f 326/598/16 321/599/16 322/600/16 +f 328/601/17 322/602/17 324/603/17 +f 325/592/13 328/601/13 327/595/13 +f 333/604/15 331/605/15 329/606/15 +f 335/607/18 332/608/18 331/609/18 +f 334/610/16 329/611/16 330/612/16 +f 336/613/17 330/614/17 332/615/17 +f 333/604/13 336/613/13 335/607/13 +f 340/616/14 254/617/14 241/618/14 +f 339/619/14 364/620/14 340/621/14 +f 338/622/14 363/623/14 339/624/14 +f 337/625/14 362/626/14 338/627/14 +f 345/471/13 255/628/13 247/629/13 +f 346/630/13 365/631/13 345/632/13 +f 347/633/13 366/634/13 346/635/13 +f 348/636/13 367/637/13 347/638/13 +f 364/639/17 256/640/17 254/617/17 +f 363/641/17 368/642/17 364/620/17 +f 362/643/17 367/644/17 363/623/17 +f 361/645/17 366/646/17 362/626/17 +f 344/647/14 250/648/14 244/649/14 +f 343/650/14 356/651/14 344/652/14 +f 342/653/14 355/654/14 343/655/14 +f 341/656/14 354/657/14 342/658/14 +f 349/468/13 251/659/13 246/660/13 +f 350/661/13 357/662/13 349/663/13 +f 351/664/13 358/665/13 350/666/13 +f 352/667/13 359/668/13 351/669/13 +f 356/670/15 252/671/15 250/672/15 +f 355/673/15 360/674/15 356/675/15 +f 354/676/15 359/677/15 355/678/15 +f 353/679/15 358/680/15 354/681/15 +f 245/488/15 340/682/15 241/683/15 +f 348/636/15 339/684/15 340/685/15 +f 347/633/15 338/686/15 339/687/15 +f 346/630/15 337/688/15 338/689/15 +f 248/478/17 344/647/17 244/649/17 +f 352/667/17 343/650/17 344/652/17 +f 351/664/17 342/653/17 343/655/17 +f 350/661/17 341/656/17 342/658/17 +f 370/690/13 372/691/13 371/692/13 +f 375/693/14 374/694/14 373/695/14 +f 379/696/14 378/697/14 377/698/14 +f 383/699/14 382/700/14 381/701/14 +f 387/702/14 386/703/14 385/704/14 +f 391/705/14 390/706/14 389/707/14 +f 395/708/13 393/709/13 394/710/13 +f 399/711/13 397/712/13 398/713/13 +f 403/714/13 401/715/13 402/716/13 +f 407/717/13 405/718/13 406/719/13 +f 385/720/15 401/721/15 387/722/15 +f 378/723/16 394/724/16 377/725/16 +f 386/726/16 402/727/16 385/728/16 +f 380/729/17 395/730/17 378/697/17 +f 388/731/17 403/732/17 386/703/17 +f 379/696/18 396/733/18 380/734/18 +f 373/735/15 372/736/15 375/737/15 +f 387/702/18 404/738/18 388/739/18 +f 381/740/15 397/741/15 383/742/15 +f 374/743/16 371/744/16 373/745/16 +f 389/746/15 405/747/15 391/748/15 +f 382/749/16 398/750/16 381/751/16 +f 376/752/17 370/753/17 374/694/17 +f 390/754/16 406/755/16 389/756/16 +f 384/757/17 399/758/17 382/700/17 +f 375/693/18 369/759/18 376/760/18 +f 392/761/17 407/762/17 390/706/17 +f 383/699/18 400/763/18 384/764/18 +f 377/765/15 393/766/15 379/767/15 +f 391/705/18 408/768/18 392/769/18 +f 413/770/15 411/771/15 409/772/15 +f 415/773/18 412/774/18 411/775/18 +f 414/776/16 409/777/16 410/778/16 +f 416/779/17 410/780/17 412/781/17 +f 413/770/13 416/779/13 415/773/13 +f 421/782/15 419/783/15 417/784/15 +f 423/785/18 420/786/18 419/787/18 +f 422/788/16 417/789/16 418/790/16 +f 424/791/17 418/792/17 420/793/17 +f 421/782/13 424/791/13 423/785/13 +f 429/794/15 427/795/15 425/796/15 +f 431/797/18 428/798/18 427/799/18 +f 430/800/16 425/801/16 426/802/16 +f 432/803/17 426/804/17 428/805/17 +f 429/794/13 432/803/13 431/797/13 +f 437/806/15 435/807/15 433/808/15 +f 439/809/18 436/810/18 435/811/18 +f 438/812/16 433/813/16 434/814/16 +f 440/815/17 434/816/17 436/817/17 +f 437/806/13 440/815/13 439/809/13 +f 445/818/15 443/819/15 441/820/15 +f 447/821/18 444/822/18 443/823/18 +f 446/824/16 441/825/16 442/826/16 +f 448/827/17 442/828/17 444/829/17 +f 445/818/13 448/827/13 447/821/13 +f 453/830/15 451/831/15 449/832/15 +f 455/833/18 452/834/18 451/835/18 +f 454/836/16 449/837/16 450/838/16 +f 456/839/17 450/840/17 452/841/17 +f 453/830/13 456/839/13 455/833/13 +f 461/842/15 459/843/15 457/844/15 +f 463/845/18 460/846/18 459/847/18 +f 462/848/16 457/849/16 458/850/16 +f 464/851/17 458/852/17 460/853/17 +f 461/842/13 464/851/13 463/845/13 +f 469/854/15 467/855/15 465/856/15 +f 471/857/18 468/858/18 467/859/18 +f 470/860/16 465/861/16 466/862/16 +f 472/863/17 466/864/17 468/865/17 +f 469/854/13 472/863/13 471/857/13 +f 477/866/15 475/867/15 473/868/15 +f 479/869/18 476/870/18 475/871/18 +f 478/872/16 473/873/16 474/874/16 +f 480/875/17 474/876/17 476/877/17 +f 477/866/13 480/875/13 479/869/13 +f 485/878/15 483/879/15 481/880/15 +f 487/881/18 484/882/18 483/883/18 +f 486/884/16 481/885/16 482/886/16 +f 488/887/17 482/888/17 484/889/17 +f 485/878/13 488/887/13 487/881/13 +f 491/890/14 516/182/14 492/891/14 +f 490/892/14 515/893/14 491/894/14 +f 489/895/14 514/896/14 490/897/14 +f 498/898/13 517/899/13 497/900/13 +f 499/901/13 518/902/13 498/903/13 +f 500/904/13 519/905/13 499/906/13 +f 515/907/17 520/477/17 516/182/17 +f 514/908/17 519/909/17 515/893/17 +f 513/910/17 518/911/17 514/896/17 +f 495/912/14 508/913/14 496/914/14 +f 494/915/14 507/916/14 495/917/14 +f 493/918/14 506/919/14 494/920/14 +f 502/921/13 509/922/13 501/923/13 +f 503/924/13 510/925/13 502/926/13 +f 504/927/13 511/928/13 503/929/13 +f 507/930/15 512/931/15 508/932/15 +f 506/933/15 511/934/15 507/935/15 +f 505/936/15 510/937/15 506/938/15 +f 500/904/15 491/939/15 492/191/15 +f 499/901/15 490/940/15 491/941/15 +f 498/898/15 489/942/15 490/943/15 +f 504/927/17 495/912/17 496/914/17 +f 503/924/17 494/915/17 495/917/17 +f 502/921/17 493/918/17 494/920/17 +f 493/918/17 80/177/17 76/347/17 +f 80/177/13 509/922/13 84/369/13 +f 509/922/15 82/370/15 84/369/15 +f 505/944/14 76/347/14 82/346/14 +f 517/899/17 254/617/17 256/640/17 +f 245/488/13 517/899/13 256/640/13 +f 489/942/15 245/488/15 241/683/15 +f 513/910/14 241/618/14 254/617/14 +f 246/660/17 496/914/17 242/469/17 +f 512/931/13 246/660/13 251/659/13 +f 249/474/15 512/931/15 251/659/15 +f 242/469/14 508/913/14 249/945/14 +f 571/946/19 568/947/19 572/948/19 +f 605/949/19 539/950/19 540/951/19 +f 605/952/19 574/953/19 606/954/19 +f 539/955/20 548/956/20 540/957/20 +f 536/958/14 548/956/14 544/959/14 +f 530/960/14 531/961/14 532/962/14 +f 537/963/14 568/964/14 533/965/14 +f 532/966/21 528/967/21 530/968/21 +f 534/969/19 568/964/19 567/970/19 +f 615/971/22 524/972/22 523/973/22 +f 571/946/13 566/974/13 567/975/13 +f 538/976/13 567/970/13 566/977/13 +f 616/978/21 522/979/21 524/980/21 +f 542/981/23 549/982/23 541/983/23 +f 545/984/24 554/985/24 546/986/24 +f 534/987/13 546/988/13 542/989/13 +f 536/990/25 543/991/25 535/992/25 +f 535/992/13 547/993/13 539/955/13 +f 533/994/14 545/995/14 537/996/14 +f 537/997/25 546/988/25 538/998/25 +f 534/987/20 541/999/20 533/994/20 +f 549/1000/14 561/1001/14 553/1002/14 +f 551/1003/13 563/1004/13 555/1005/13 +f 544/1006/14 556/1007/14 552/1008/14 +f 547/1009/23 556/1007/23 548/1010/23 +f 542/981/13 554/985/13 550/1011/13 +f 544/1012/24 551/1013/24 543/1014/24 +f 543/1014/13 555/1015/13 547/1009/13 +f 541/983/14 553/1016/14 545/1017/14 +f 553/1018/26 562/1019/26 554/1020/26 +f 550/1021/27 557/1022/27 549/1000/27 +f 552/1023/14 564/1024/14 560/1025/14 +f 555/1005/27 564/1024/27 556/1026/27 +f 550/1021/13 562/1019/13 558/1027/13 +f 552/1028/26 559/1029/26 551/1003/26 +f 606/1030/13 535/1031/13 539/950/13 +f 575/1032/25 584/1033/25 576/1034/25 +f 572/1035/14 584/1036/14 580/1037/14 +f 576/1038/28 566/974/28 575/1039/28 +f 537/1040/28 566/977/28 565/1041/28 +f 529/1042/29 526/1043/29 531/961/29 +f 565/1044/14 572/948/14 568/947/14 +f 526/1045/13 528/1046/13 527/1047/13 +f 614/1048/30 521/1049/30 522/1050/30 +f 530/960/30 525/1051/30 529/1052/30 +f 531/1053/22 527/1054/22 532/1055/22 +f 578/1056/24 585/1057/24 577/1058/24 +f 581/1059/23 590/1060/23 582/1061/23 +f 570/1062/13 582/1063/13 578/1064/13 +f 572/1035/20 579/1065/20 571/1066/20 +f 571/1066/13 583/1067/13 575/1032/13 +f 569/1068/14 581/1069/14 573/1070/14 +f 573/1070/20 582/1063/20 574/1071/20 +f 570/1062/25 577/1072/25 569/1073/25 +f 589/1074/14 593/1075/14 597/1076/14 +f 587/1077/13 599/1078/13 591/1079/13 +f 580/1080/14 592/1081/14 588/1082/14 +f 583/1083/24 592/1084/24 584/1085/24 +f 578/1056/13 590/1060/13 586/1086/13 +f 580/1080/23 587/1087/23 579/1088/23 +f 579/1088/13 591/1089/13 583/1083/13 +f 577/1090/14 589/1091/14 581/1059/14 +f 589/1074/27 598/1092/27 590/1093/27 +f 586/1094/26 593/1095/26 585/1096/26 +f 588/1097/14 600/1098/14 596/1099/14 +f 591/1079/26 600/1100/26 592/1101/26 +f 590/1093/13 594/1102/13 586/1094/13 +f 588/1097/27 595/1103/27 587/1077/27 +f 570/1104/28 607/1105/28 608/1106/28 +f 602/1107/13 603/1108/13 601/1109/13 +f 574/953/13 608/1106/13 606/954/13 +f 601/1109/29 611/1110/29 609/1111/29 +f 603/1108/22 612/1112/22 611/1113/22 +f 602/1107/30 609/1114/30 610/1115/30 +f 536/1116/14 605/949/14 540/951/14 +f 604/1117/21 610/1118/21 612/1119/21 +f 607/1120/14 573/1121/14 605/952/14 +f 614/1048/13 615/971/13 613/1122/13 +f 613/1122/29 523/1123/29 521/1124/29 +f 618/1125/13 620/1126/13 619/1127/13 +f 623/1128/14 622/1129/14 621/1130/14 +f 627/1131/14 626/1132/14 625/1133/14 +f 631/1134/14 630/1135/14 629/1136/14 +f 635/1137/14 634/1138/14 633/1139/14 +f 639/1140/13 637/1141/13 638/1142/13 +f 643/1143/13 641/1144/13 642/1145/13 +f 647/1146/13 645/1147/13 646/1148/13 +f 626/1149/16 638/1150/16 625/1151/16 +f 628/1152/17 639/1153/17 626/1132/17 +f 627/1131/18 640/1154/18 628/1155/18 +f 621/1156/15 620/1157/15 623/1158/15 +f 629/1159/15 641/1160/15 631/1161/15 +f 622/1162/16 619/1163/16 621/1164/16 +f 633/1165/15 645/1166/15 635/1167/15 +f 630/1168/16 642/1169/16 629/1170/16 +f 624/1171/17 618/1172/17 622/1129/17 +f 634/1173/16 646/1174/16 633/1175/16 +f 632/1176/17 643/1177/17 630/1135/17 +f 623/1128/18 617/1178/18 624/1179/18 +f 636/1180/17 647/1181/17 634/1138/17 +f 631/1134/18 644/1182/18 632/1183/18 +f 625/1184/15 637/1185/15 627/1186/15 +f 635/1137/18 648/1187/18 636/1188/18 +f 729/1189/15 649/1190/15 721/1191/15 +f 652/1192/13 744/1193/13 736/1194/13 +f 650/1195/18 654/1196/18 652/1197/18 +f 655/1198/17 749/1199/17 745/1200/17 +f 649/1201/14 745/1200/14 721/1202/14 +f 651/1203/18 655/1204/18 649/1205/18 +f 661/1206/15 659/1207/15 657/1208/15 +f 663/1209/18 660/1210/18 659/1211/18 +f 662/1212/16 657/1213/16 658/1214/16 +f 664/1215/17 658/1216/17 660/1217/17 +f 661/1206/13 664/1215/13 663/1209/13 +f 669/1218/15 667/1219/15 665/1220/15 +f 671/1221/18 668/1222/18 667/1223/18 +f 670/1224/16 665/1225/16 666/1226/16 +f 672/1227/17 666/1228/17 668/1229/17 +f 669/1218/13 672/1227/13 671/1221/13 +f 677/1230/15 675/1231/15 673/1232/15 +f 679/1233/18 676/1234/18 675/1235/18 +f 678/1236/16 673/1237/16 674/1238/16 +f 680/1239/17 674/1240/17 676/1241/17 +f 677/1230/13 680/1239/13 679/1233/13 +f 685/1242/15 683/1243/15 681/1244/15 +f 687/1245/18 684/1246/18 683/1247/18 +f 686/1248/16 681/1249/16 682/1250/16 +f 688/1251/17 682/1252/17 684/1253/17 +f 685/1242/13 688/1251/13 687/1245/13 +f 693/1254/15 691/1255/15 689/1256/15 +f 695/1257/18 692/1258/18 691/1259/18 +f 694/1260/16 689/1261/16 690/1262/16 +f 696/1263/17 690/1264/17 692/1265/17 +f 693/1254/13 696/1263/13 695/1257/13 +f 701/1266/15 699/1267/15 697/1268/15 +f 703/1269/18 700/1270/18 699/1271/18 +f 702/1272/16 697/1273/16 698/1274/16 +f 704/1275/17 698/1276/17 700/1277/17 +f 701/1266/13 704/1275/13 703/1269/13 +f 709/1278/15 707/1279/15 705/1280/15 +f 711/1281/18 708/1282/18 707/1283/18 +f 710/1284/16 705/1285/16 706/1286/16 +f 712/1287/17 706/1288/17 708/1289/17 +f 709/1278/13 712/1287/13 711/1281/13 +f 717/1290/15 715/1291/15 713/1292/15 +f 719/1293/18 716/1294/18 715/1295/18 +f 718/1296/16 713/1297/16 714/1298/16 +f 720/1299/17 714/1300/17 716/1301/17 +f 717/1290/13 720/1299/13 719/1293/13 +f 723/1302/14 748/1303/14 724/1304/14 +f 722/1305/14 747/1306/14 723/1307/14 +f 721/1308/14 746/1309/14 722/1310/14 +f 729/1189/13 656/1311/13 651/1312/13 +f 730/1313/13 749/1314/13 729/1315/13 +f 731/1316/13 750/1317/13 730/1318/13 +f 732/1319/13 751/1320/13 731/1321/13 +f 747/1322/17 752/1323/17 748/1303/17 +f 746/1324/17 751/1325/17 747/1306/17 +f 745/1326/17 750/1327/17 746/1309/17 +f 728/1328/14 653/1329/14 650/1330/14 +f 727/1331/14 740/1332/14 728/1333/14 +f 726/1334/14 739/1335/14 727/1336/14 +f 725/1337/14 738/1338/14 726/1339/14 +f 734/1340/13 741/1341/13 733/1342/13 +f 735/1343/13 742/1344/13 734/1345/13 +f 736/1346/13 743/1347/13 735/1348/13 +f 740/1349/15 654/1350/15 653/1351/15 +f 739/1352/15 744/1353/15 740/1354/15 +f 738/1355/15 743/1356/15 739/1357/15 +f 737/1358/15 742/1359/15 738/1360/15 +f 732/1319/15 723/1361/15 724/1362/15 +f 731/1316/15 722/1363/15 723/1364/15 +f 730/1313/15 721/1365/15 722/1366/15 +f 652/1192/17 728/1328/17 650/1330/17 +f 736/1346/17 727/1331/17 728/1333/17 +f 735/1343/17 726/1334/17 727/1336/17 +f 734/1340/17 725/1337/17 726/1339/17 +f 741/1367/15 600/1368/15 599/1369/15 +f 595/1370/13 741/1367/13 599/1369/13 +f 725/1371/17 595/1370/17 596/1372/17 +f 737/1373/14 596/1372/14 600/1374/14 +f 594/1375/15 724/1376/15 593/1377/15 +f 752/1378/13 594/1375/13 598/1379/13 +f 597/1380/17 752/1378/17 598/1379/17 +f 597/1380/14 724/1381/14 748/1382/14 +f 608/1383/28 536/1384/28 535/1031/28 +f 762/1385/14 763/1386/14 764/1387/14 +f 764/1388/25 760/1389/25 762/1390/25 +f 775/1391/31 756/1392/31 755/1393/31 +f 776/1394/25 754/1395/25 756/1396/25 +f 761/1397/20 758/1398/20 763/1386/20 +f 758/1399/13 760/1400/13 759/1401/13 +f 774/1402/32 753/1403/32 754/1404/32 +f 762/1385/32 757/1405/32 761/1406/32 +f 763/1407/31 759/1408/31 764/1409/31 +f 766/1410/13 767/1411/13 765/1412/13 +f 765/1412/20 771/1413/20 769/1414/20 +f 767/1411/31 772/1415/31 771/1416/31 +f 766/1410/32 769/1417/32 770/1418/32 +f 768/1419/25 770/1420/25 772/1421/25 +f 774/1402/13 775/1391/13 773/1422/13 +f 773/1422/20 755/1423/20 753/1424/20 +f 788/1425/14 785/1426/14 787/1427/14 +f 788/1428/24 784/1429/24 786/1430/24 +f 799/1431/33 780/1432/33 779/1433/33 +f 800/1434/24 778/1435/24 780/1436/24 +f 785/1437/23 782/1438/23 787/1427/23 +f 783/1439/13 781/1440/13 784/1441/13 +f 798/1442/34 777/1443/34 778/1444/34 +f 786/1445/34 781/1440/34 785/1426/34 +f 787/1446/33 783/1447/33 788/1448/33 +f 790/1449/13 791/1450/13 789/1451/13 +f 789/1451/23 795/1452/23 793/1453/23 +f 791/1450/33 796/1454/33 795/1455/33 +f 790/1449/34 793/1456/34 794/1457/34 +f 792/1458/24 794/1459/24 796/1460/24 +f 798/1442/13 799/1431/13 797/1461/13 +f 797/1461/23 779/1462/23 777/1463/23 +f 810/1464/14 811/1465/14 812/1466/14 +f 812/1467/26 808/1468/26 810/1469/26 +f 823/1470/35 804/1471/35 803/1472/35 +f 824/1473/26 802/1474/26 804/1475/26 +f 809/1476/27 806/1477/27 811/1465/27 +f 806/1478/13 808/1479/13 807/1480/13 +f 822/1481/36 801/1482/36 802/1483/36 +f 810/1464/36 805/1484/36 809/1485/36 +f 811/1486/35 807/1487/35 812/1488/35 +f 816/1489/13 813/1490/13 814/1491/13 +f 813/1490/27 819/1492/27 817/1493/27 +f 815/1494/35 820/1495/35 819/1496/35 +f 814/1491/36 817/1497/36 818/1498/36 +f 816/1489/26 818/1499/26 820/1500/26 +f 822/1481/13 823/1470/13 821/1501/13 +f 821/1501/27 803/1502/27 801/1503/27 +f 836/1504/14 833/1505/14 835/1506/14 +f 836/1507/21 832/1508/21 834/1509/21 +f 847/1510/22 828/1511/22 827/1512/22 +f 848/1513/21 826/1514/21 828/1515/21 +f 833/1516/29 830/1517/29 835/1506/29 +f 831/1518/13 829/1519/13 832/1520/13 +f 846/1521/30 825/1522/30 826/1523/30 +f 834/1524/30 829/1519/30 833/1505/30 +f 835/1525/22 831/1526/22 836/1527/22 +f 838/1528/13 839/1529/13 837/1530/13 +f 837/1530/29 843/1531/29 841/1532/29 +f 839/1529/22 844/1533/22 843/1534/22 +f 838/1528/30 841/1535/30 842/1536/30 +f 840/1537/21 842/1538/21 844/1539/21 +f 846/1521/13 847/1510/13 845/1540/13 +f 845/1540/29 827/1541/29 825/1542/29 +f 851/1543/14 850/1544/14 849/1545/14 +f 855/1546/13 853/1547/13 854/1548/13 +f 849/1549/15 853/1550/15 851/1551/15 +f 850/1552/16 854/1553/16 849/1554/16 +f 852/1555/17 855/1556/17 850/1544/17 +f 851/1543/18 856/1557/18 852/1558/18 +f 861/1559/15 859/1560/15 857/1561/15 +f 863/1562/18 860/1563/18 859/1564/18 +f 862/1565/16 857/1566/16 858/1567/16 +f 864/1568/17 858/1569/17 860/1570/17 +f 861/1559/13 864/1568/13 863/1562/13 +f 869/1571/15 867/1572/15 865/1573/15 +f 871/1574/18 868/1575/18 867/1576/18 +f 870/1577/16 865/1578/16 866/1579/16 +f 872/1580/17 866/1581/17 868/1582/17 +f 869/1571/13 872/1580/13 871/1574/13 +f 34/85/13 33/154/13 36/86/13 +f 39/88/14 40/155/14 38/89/14 +f 43/91/14 44/129/14 42/92/14 +f 47/94/14 48/159/14 46/95/14 +f 51/97/14 52/134/14 50/98/14 +f 55/100/14 56/164/14 54/101/14 +f 59/103/13 60/128/13 57/104/13 +f 63/106/13 64/158/13 61/107/13 +f 67/109/13 68/133/13 65/110/13 +f 71/112/13 72/163/13 69/113/13 +f 49/115/15 66/1583/15 65/116/15 +f 42/118/16 59/1584/16 58/119/16 +f 50/121/16 67/1585/16 66/122/16 +f 44/124/17 60/1586/17 59/125/17 +f 52/126/17 68/1587/17 67/127/17 +f 43/91/18 57/104/18 60/128/18 +f 37/130/15 35/1588/15 36/131/15 +f 51/97/18 65/110/18 68/133/18 +f 45/135/15 62/1589/15 61/136/15 +f 38/138/16 34/1590/16 35/139/16 +f 53/141/15 70/1591/15 69/142/15 +f 46/144/16 63/1592/16 62/145/16 +f 40/147/17 33/1593/17 34/148/17 +f 54/149/16 71/1594/16 70/150/16 +f 48/152/17 64/1595/17 63/153/17 +f 39/88/18 36/86/18 33/154/18 +f 56/156/17 72/1596/17 71/157/17 +f 47/94/18 61/107/18 64/158/18 +f 41/160/15 58/1597/15 57/161/15 +f 55/100/18 69/113/18 72/163/18 +f 181/165/17 78/358/17 74/166/17 +f 177/168/15 79/190/15 75/169/15 +f 81/171/15 83/357/15 189/172/15 +f 78/174/16 83/1598/16 81/175/16 +f 80/177/13 84/369/13 192/178/13 +f 74/166/14 81/1599/14 185/180/14 +f 75/181/14 492/891/14 516/182/14 +f 85/183/17 87/327/17 197/184/17 +f 77/186/13 88/338/13 200/187/13 +f 75/181/14 85/183/14 193/185/14 +f 79/190/15 500/904/15 492/191/15 +f 73/192/16 86/1600/16 88/193/16 +f 93/195/15 95/198/15 91/196/15 +f 95/198/18 96/204/18 92/199/18 +f 94/201/16 93/195/16 89/202/16 +f 96/204/17 94/201/17 90/205/17 +f 93/195/13 94/201/13 96/204/13 +f 101/207/15 103/210/15 99/208/15 +f 103/210/18 104/216/18 100/211/18 +f 102/213/16 101/207/16 97/214/16 +f 104/216/17 102/213/17 98/217/17 +f 101/207/13 102/213/13 104/216/13 +f 109/219/15 111/222/15 107/220/15 +f 111/222/18 112/228/18 108/223/18 +f 110/225/16 109/219/16 105/226/16 +f 112/228/17 110/225/17 106/229/17 +f 109/219/13 110/225/13 112/228/13 +f 117/231/15 119/234/15 115/232/15 +f 119/234/18 120/240/18 116/235/18 +f 118/237/16 117/231/16 113/238/16 +f 120/240/17 118/237/17 114/241/17 +f 117/231/13 118/237/13 120/240/13 +f 125/243/15 127/246/15 123/244/15 +f 127/246/18 128/252/18 124/247/18 +f 126/249/16 125/243/16 121/250/16 +f 128/252/17 126/249/17 122/253/17 +f 125/243/13 126/249/13 128/252/13 +f 133/255/15 135/258/15 131/256/15 +f 135/258/18 136/264/18 132/259/18 +f 134/261/16 133/255/16 129/262/16 +f 136/264/17 134/261/17 130/265/17 +f 133/255/13 134/261/13 136/264/13 +f 141/267/15 143/270/15 139/268/15 +f 143/270/18 144/276/18 140/271/18 +f 142/273/16 141/267/16 137/274/16 +f 144/276/17 142/273/17 138/277/17 +f 141/267/13 142/273/13 144/276/13 +f 149/279/15 151/282/15 147/280/15 +f 151/282/18 152/288/18 148/283/18 +f 150/285/16 149/279/16 145/286/16 +f 152/288/17 150/285/17 146/289/17 +f 149/279/13 150/285/13 152/288/13 +f 157/291/15 159/294/15 155/292/15 +f 159/294/18 160/300/18 156/295/18 +f 158/297/16 157/291/16 153/298/16 +f 160/300/17 158/297/17 154/301/17 +f 157/291/13 158/297/13 160/300/13 +f 165/303/15 167/306/15 163/304/15 +f 167/306/18 168/312/18 164/307/18 +f 166/309/16 165/303/16 161/310/16 +f 168/312/17 166/309/17 162/313/17 +f 165/303/13 166/309/13 168/312/13 +f 172/315/14 196/337/14 86/316/14 +f 171/318/14 195/339/14 196/319/14 +f 170/321/14 194/341/14 195/322/14 +f 169/324/14 193/343/14 194/325/14 +f 177/168/13 197/184/13 87/327/13 +f 178/328/13 198/344/13 197/329/13 +f 179/331/13 199/342/13 198/332/13 +f 180/334/13 200/340/13 199/335/13 +f 196/337/17 200/187/17 88/338/17 +f 195/339/17 199/335/17 200/340/17 +f 194/341/17 198/332/17 199/342/17 +f 193/343/17 197/329/17 198/344/17 +f 176/345/14 188/1601/14 82/346/14 +f 175/348/14 187/1602/14 188/349/14 +f 174/351/14 186/1603/14 187/352/14 +f 173/354/14 185/1604/14 186/355/14 +f 181/165/13 189/172/13 83/357/13 +f 182/359/13 190/378/13 189/360/13 +f 183/362/13 191/375/13 190/363/13 +f 184/365/13 192/372/13 191/366/13 +f 188/368/15 192/178/15 84/369/15 +f 187/371/15 191/366/15 192/372/15 +f 186/374/15 190/363/15 191/375/15 +f 185/377/15 189/360/15 190/378/15 +f 77/186/15 180/188/15 172/380/15 +f 180/334/15 179/336/15 171/382/15 +f 179/331/15 178/333/15 170/384/15 +f 178/328/15 177/330/15 169/386/15 +f 80/177/17 184/179/17 176/345/17 +f 184/365/17 183/367/17 175/348/17 +f 183/362/17 182/364/17 174/351/17 +f 182/359/17 181/361/17 173/354/17 +f 202/388/13 201/457/13 204/389/13 +f 207/391/14 208/458/14 206/392/14 +f 211/394/14 212/432/14 210/395/14 +f 215/397/14 216/462/14 214/398/14 +f 219/400/14 220/437/14 218/401/14 +f 223/403/14 224/467/14 222/404/14 +f 227/406/13 228/431/13 225/407/13 +f 231/409/13 232/461/13 229/410/13 +f 235/412/13 236/436/13 233/413/13 +f 239/415/13 240/466/13 237/416/13 +f 217/418/15 234/1605/15 233/419/15 +f 210/421/16 227/1606/16 226/422/16 +f 218/424/16 235/1607/16 234/425/16 +f 212/427/17 228/1608/17 227/428/17 +f 220/429/17 236/1609/17 235/430/17 +f 211/394/18 225/407/18 228/431/18 +f 205/433/15 203/1610/15 204/434/15 +f 219/400/18 233/413/18 236/436/18 +f 213/438/15 230/1611/15 229/439/15 +f 206/441/16 202/1612/16 203/442/16 +f 221/444/15 238/1613/15 237/445/15 +f 214/447/16 231/1614/16 230/448/16 +f 208/450/17 201/1615/17 202/451/17 +f 222/452/16 239/1616/16 238/453/16 +f 216/455/17 232/1617/17 231/456/17 +f 207/391/18 204/389/18 201/457/18 +f 224/459/17 240/1618/17 239/460/17 +f 215/397/18 229/410/18 232/461/18 +f 209/463/15 226/1619/15 225/464/15 +f 223/403/18 237/416/18 240/466/18 +f 349/468/17 246/660/17 242/469/17 +f 345/471/15 247/629/15 243/472/15 +f 249/474/15 251/659/15 357/475/15 +f 520/477/13 500/904/13 79/190/13 +f 248/478/13 252/671/13 360/479/13 +f 242/469/14 249/945/14 353/481/14 +f 244/482/18 250/1620/18 252/483/18 +f 253/485/17 255/628/17 365/486/17 +f 245/488/13 256/640/13 368/489/13 +f 243/491/14 253/485/14 361/487/14 +f 247/493/18 255/1621/18 253/494/18 +f 85/183/17 516/182/17 520/477/17 +f 261/496/15 263/499/15 259/497/15 +f 263/499/18 264/505/18 260/500/18 +f 262/502/16 261/496/16 257/503/16 +f 264/505/17 262/502/17 258/506/17 +f 261/496/13 262/502/13 264/505/13 +f 269/508/15 271/511/15 267/509/15 +f 271/511/18 272/517/18 268/512/18 +f 270/514/16 269/508/16 265/515/16 +f 272/517/17 270/514/17 266/518/17 +f 269/508/13 270/514/13 272/517/13 +f 277/520/15 279/523/15 275/521/15 +f 279/523/18 280/529/18 276/524/18 +f 278/526/16 277/520/16 273/527/16 +f 280/529/17 278/526/17 274/530/17 +f 277/520/13 278/526/13 280/529/13 +f 285/532/15 287/535/15 283/533/15 +f 287/535/18 288/541/18 284/536/18 +f 286/538/16 285/532/16 281/539/16 +f 288/541/17 286/538/17 282/542/17 +f 285/532/13 286/538/13 288/541/13 +f 293/544/15 295/547/15 291/545/15 +f 295/547/18 296/553/18 292/548/18 +f 294/550/16 293/544/16 289/551/16 +f 296/553/17 294/550/17 290/554/17 +f 293/544/13 294/550/13 296/553/13 +f 301/556/15 303/559/15 299/557/15 +f 303/559/18 304/565/18 300/560/18 +f 302/562/16 301/556/16 297/563/16 +f 304/565/17 302/562/17 298/566/17 +f 301/556/13 302/562/13 304/565/13 +f 309/568/15 311/571/15 307/569/15 +f 311/571/18 312/577/18 308/572/18 +f 310/574/16 309/568/16 305/575/16 +f 312/577/17 310/574/17 306/578/17 +f 309/568/13 310/574/13 312/577/13 +f 317/580/15 319/583/15 315/581/15 +f 319/583/18 320/589/18 316/584/18 +f 318/586/16 317/580/16 313/587/16 +f 320/589/17 318/586/17 314/590/17 +f 317/580/13 318/586/13 320/589/13 +f 325/592/15 327/595/15 323/593/15 +f 327/595/18 328/601/18 324/596/18 +f 326/598/16 325/592/16 321/599/16 +f 328/601/17 326/598/17 322/602/17 +f 325/592/13 326/598/13 328/601/13 +f 333/604/15 335/607/15 331/605/15 +f 335/607/18 336/613/18 332/608/18 +f 334/610/16 333/604/16 329/611/16 +f 336/613/17 334/610/17 330/614/17 +f 333/604/13 334/610/13 336/613/13 +f 340/616/14 364/639/14 254/617/14 +f 339/619/14 363/641/14 364/620/14 +f 338/622/14 362/643/14 363/623/14 +f 337/625/14 361/645/14 362/626/14 +f 345/471/13 365/486/13 255/628/13 +f 346/630/13 366/646/13 365/631/13 +f 347/633/13 367/644/13 366/634/13 +f 348/636/13 368/642/13 367/637/13 +f 364/639/17 368/489/17 256/640/17 +f 363/641/17 367/637/17 368/642/17 +f 362/643/17 366/634/17 367/644/17 +f 361/645/17 365/631/17 366/646/17 +f 344/647/14 356/1622/14 250/648/14 +f 343/650/14 355/1623/14 356/651/14 +f 342/653/14 354/1624/14 355/654/14 +f 341/656/14 353/1625/14 354/657/14 +f 349/468/13 357/475/13 251/659/13 +f 350/661/13 358/680/13 357/662/13 +f 351/664/13 359/677/13 358/665/13 +f 352/667/13 360/674/13 359/668/13 +f 356/670/15 360/479/15 252/671/15 +f 355/673/15 359/668/15 360/674/15 +f 354/676/15 358/665/15 359/677/15 +f 353/679/15 357/662/15 358/680/15 +f 245/488/15 348/490/15 340/682/15 +f 348/636/15 347/638/15 339/684/15 +f 347/633/15 346/635/15 338/686/15 +f 346/630/15 345/632/15 337/688/15 +f 248/478/17 352/480/17 344/647/17 +f 352/667/17 351/669/17 343/650/17 +f 351/664/17 350/666/17 342/653/17 +f 350/661/17 349/663/17 341/656/17 +f 370/690/13 369/759/13 372/691/13 +f 375/693/14 376/760/14 374/694/14 +f 379/696/14 380/734/14 378/697/14 +f 383/699/14 384/764/14 382/700/14 +f 387/702/14 388/739/14 386/703/14 +f 391/705/14 392/769/14 390/706/14 +f 395/708/13 396/733/13 393/709/13 +f 399/711/13 400/763/13 397/712/13 +f 403/714/13 404/738/13 401/715/13 +f 407/717/13 408/768/13 405/718/13 +f 385/720/15 402/1626/15 401/721/15 +f 378/723/16 395/1627/16 394/724/16 +f 386/726/16 403/1628/16 402/727/16 +f 380/729/17 396/1629/17 395/730/17 +f 388/731/17 404/1630/17 403/732/17 +f 379/696/18 393/709/18 396/733/18 +f 373/735/15 371/1631/15 372/736/15 +f 387/702/18 401/715/18 404/738/18 +f 381/740/15 398/1632/15 397/741/15 +f 374/743/16 370/1633/16 371/744/16 +f 389/746/15 406/1634/15 405/747/15 +f 382/749/16 399/1635/16 398/750/16 +f 376/752/17 369/1636/17 370/753/17 +f 390/754/16 407/1637/16 406/755/16 +f 384/757/17 400/1638/17 399/758/17 +f 375/693/18 372/691/18 369/759/18 +f 392/761/17 408/1639/17 407/762/17 +f 383/699/18 397/712/18 400/763/18 +f 377/765/15 394/1640/15 393/766/15 +f 391/705/18 405/718/18 408/768/18 +f 413/770/15 415/773/15 411/771/15 +f 415/773/18 416/779/18 412/774/18 +f 414/776/16 413/770/16 409/777/16 +f 416/779/17 414/776/17 410/780/17 +f 413/770/13 414/776/13 416/779/13 +f 421/782/15 423/785/15 419/783/15 +f 423/785/18 424/791/18 420/786/18 +f 422/788/16 421/782/16 417/789/16 +f 424/791/17 422/788/17 418/792/17 +f 421/782/13 422/788/13 424/791/13 +f 429/794/15 431/797/15 427/795/15 +f 431/797/18 432/803/18 428/798/18 +f 430/800/16 429/794/16 425/801/16 +f 432/803/17 430/800/17 426/804/17 +f 429/794/13 430/800/13 432/803/13 +f 437/806/15 439/809/15 435/807/15 +f 439/809/18 440/815/18 436/810/18 +f 438/812/16 437/806/16 433/813/16 +f 440/815/17 438/812/17 434/816/17 +f 437/806/13 438/812/13 440/815/13 +f 445/818/15 447/821/15 443/819/15 +f 447/821/18 448/827/18 444/822/18 +f 446/824/16 445/818/16 441/825/16 +f 448/827/17 446/824/17 442/828/17 +f 445/818/13 446/824/13 448/827/13 +f 453/830/15 455/833/15 451/831/15 +f 455/833/18 456/839/18 452/834/18 +f 454/836/16 453/830/16 449/837/16 +f 456/839/17 454/836/17 450/840/17 +f 453/830/13 454/836/13 456/839/13 +f 461/842/15 463/845/15 459/843/15 +f 463/845/18 464/851/18 460/846/18 +f 462/848/16 461/842/16 457/849/16 +f 464/851/17 462/848/17 458/852/17 +f 461/842/13 462/848/13 464/851/13 +f 469/854/15 471/857/15 467/855/15 +f 471/857/18 472/863/18 468/858/18 +f 470/860/16 469/854/16 465/861/16 +f 472/863/17 470/860/17 466/864/17 +f 469/854/13 470/860/13 472/863/13 +f 477/866/15 479/869/15 475/867/15 +f 479/869/18 480/875/18 476/870/18 +f 478/872/16 477/866/16 473/873/16 +f 480/875/17 478/872/17 474/876/17 +f 477/866/13 478/872/13 480/875/13 +f 485/878/15 487/881/15 483/879/15 +f 487/881/18 488/887/18 484/882/18 +f 486/884/16 485/878/16 481/885/16 +f 488/887/17 486/884/17 482/888/17 +f 485/878/13 486/884/13 488/887/13 +f 491/890/14 515/907/14 516/182/14 +f 490/892/14 514/908/14 515/893/14 +f 489/895/14 513/910/14 514/896/14 +f 498/898/13 518/911/13 517/899/13 +f 499/901/13 519/909/13 518/902/13 +f 500/904/13 520/477/13 519/905/13 +f 515/907/17 519/905/17 520/477/17 +f 514/908/17 518/902/17 519/909/17 +f 513/910/17 517/899/17 518/911/17 +f 495/912/14 507/1641/14 508/913/14 +f 494/915/14 506/1642/14 507/916/14 +f 493/918/14 505/944/14 506/919/14 +f 502/921/13 510/937/13 509/922/13 +f 503/924/13 511/934/13 510/925/13 +f 504/927/13 512/931/13 511/928/13 +f 507/930/15 511/928/15 512/931/15 +f 506/933/15 510/925/15 511/934/15 +f 505/936/15 509/922/15 510/937/15 +f 500/904/15 499/906/15 491/939/15 +f 499/901/15 498/903/15 490/940/15 +f 498/898/15 497/900/15 489/942/15 +f 504/927/17 503/929/17 495/912/17 +f 503/924/17 502/926/17 494/915/17 +f 502/921/17 501/923/17 493/918/17 +f 493/918/17 501/923/17 80/177/17 +f 80/177/13 501/923/13 509/922/13 +f 509/922/15 505/936/15 82/370/15 +f 505/944/14 493/918/14 76/347/14 +f 517/899/17 513/910/17 254/617/17 +f 245/488/13 497/900/13 517/899/13 +f 489/942/15 497/900/15 245/488/15 +f 513/910/14 489/895/14 241/618/14 +f 246/660/17 504/927/17 496/914/17 +f 512/931/13 504/927/13 246/660/13 +f 249/474/15 508/932/15 512/931/15 +f 242/469/14 496/914/14 508/913/14 +f 571/946/19 567/975/19 568/947/19 +f 605/949/19 606/1030/19 539/950/19 +f 605/952/19 573/1121/19 574/953/19 +f 539/955/20 547/993/20 548/956/20 +f 536/958/14 540/957/14 548/956/14 +f 530/960/14 529/1052/14 531/961/14 +f 537/963/14 565/1643/14 568/964/14 +f 532/966/21 527/1644/21 528/967/21 +f 534/969/19 533/965/19 568/964/19 +f 615/971/22 616/978/22 524/972/22 +f 571/946/13 575/1039/13 566/974/13 +f 538/976/13 534/969/13 567/970/13 +f 616/978/21 614/1048/21 522/979/21 +f 542/981/23 550/1011/23 549/982/23 +f 545/984/24 553/1645/24 554/985/24 +f 534/987/13 538/998/13 546/988/13 +f 536/990/25 544/1646/25 543/991/25 +f 535/992/13 543/991/13 547/993/13 +f 533/994/14 541/999/14 545/995/14 +f 537/997/25 545/1647/25 546/988/25 +f 534/987/20 542/989/20 541/999/20 +f 549/1000/14 557/1022/14 561/1001/14 +f 551/1003/13 559/1029/13 563/1004/13 +f 544/1006/14 548/1010/14 556/1007/14 +f 547/1009/23 555/1015/23 556/1007/23 +f 542/981/13 546/986/13 554/985/13 +f 544/1012/24 552/1648/24 551/1013/24 +f 543/1014/13 551/1013/13 555/1015/13 +f 541/983/14 549/982/14 553/1016/14 +f 553/1018/26 561/1649/26 562/1019/26 +f 550/1021/27 558/1027/27 557/1022/27 +f 552/1023/14 556/1026/14 564/1024/14 +f 555/1005/27 563/1004/27 564/1024/27 +f 550/1021/13 554/1020/13 562/1019/13 +f 552/1028/26 560/1650/26 559/1029/26 +f 606/1030/13 608/1383/13 535/1031/13 +f 575/1032/25 583/1067/25 584/1033/25 +f 572/1035/14 576/1651/14 584/1036/14 +f 576/1038/28 565/1652/28 566/974/28 +f 537/1040/28 538/976/28 566/977/28 +f 529/1042/29 525/1653/29 526/1043/29 +f 565/1044/14 576/1654/14 572/948/14 +f 526/1045/13 525/1051/13 528/1046/13 +f 614/1048/30 613/1122/30 521/1049/30 +f 530/960/30 528/1046/30 525/1051/30 +f 531/1053/22 526/1655/22 527/1054/22 +f 578/1056/24 586/1086/24 585/1057/24 +f 581/1059/23 589/1091/23 590/1060/23 +f 570/1062/13 574/1071/13 582/1063/13 +f 572/1035/20 580/1037/20 579/1065/20 +f 571/1066/13 579/1065/13 583/1067/13 +f 569/1068/14 577/1656/14 581/1069/14 +f 573/1070/20 581/1069/20 582/1063/20 +f 570/1062/25 578/1064/25 577/1072/25 +f 589/1074/14 585/1657/14 593/1075/14 +f 587/1077/13 595/1103/13 599/1078/13 +f 580/1080/14 584/1658/14 592/1081/14 +f 583/1083/24 591/1089/24 592/1084/24 +f 578/1056/13 582/1061/13 590/1060/13 +f 580/1080/23 588/1082/23 587/1087/23 +f 579/1088/13 587/1087/13 591/1089/13 +f 577/1090/14 585/1659/14 589/1091/14 +f 589/1074/27 597/1076/27 598/1092/27 +f 586/1094/26 594/1102/26 593/1095/26 +f 588/1097/14 592/1660/14 600/1098/14 +f 591/1079/26 599/1078/26 600/1100/26 +f 590/1093/13 598/1092/13 594/1102/13 +f 588/1097/27 596/1099/27 595/1103/27 +f 570/1104/28 569/1661/28 607/1105/28 +f 602/1107/13 604/1117/13 603/1108/13 +f 574/953/13 570/1104/13 608/1106/13 +f 601/1109/29 603/1108/29 611/1110/29 +f 603/1108/22 604/1117/22 612/1112/22 +f 602/1107/30 601/1109/30 609/1114/30 +f 536/1116/14 607/1662/14 605/949/14 +f 604/1117/21 602/1107/21 610/1118/21 +f 607/1120/14 569/1663/14 573/1121/14 +f 614/1048/13 616/978/13 615/971/13 +f 613/1122/29 615/971/29 523/1123/29 +f 618/1125/13 617/1178/13 620/1126/13 +f 623/1128/14 624/1179/14 622/1129/14 +f 627/1131/14 628/1155/14 626/1132/14 +f 631/1134/14 632/1183/14 630/1135/14 +f 635/1137/14 636/1188/14 634/1138/14 +f 639/1140/13 640/1154/13 637/1141/13 +f 643/1143/13 644/1182/13 641/1144/13 +f 647/1146/13 648/1187/13 645/1147/13 +f 626/1149/16 639/1664/16 638/1150/16 +f 628/1152/17 640/1665/17 639/1153/17 +f 627/1131/18 637/1141/18 640/1154/18 +f 621/1156/15 619/1666/15 620/1157/15 +f 629/1159/15 642/1667/15 641/1160/15 +f 622/1162/16 618/1668/16 619/1163/16 +f 633/1165/15 646/1669/15 645/1166/15 +f 630/1168/16 643/1670/16 642/1169/16 +f 624/1171/17 617/1671/17 618/1172/17 +f 634/1173/16 647/1672/16 646/1174/16 +f 632/1176/17 644/1673/17 643/1177/17 +f 623/1128/18 620/1126/18 617/1178/18 +f 636/1180/17 648/1674/17 647/1181/17 +f 631/1134/18 641/1144/18 644/1182/18 +f 625/1184/15 638/1675/15 637/1185/15 +f 635/1137/18 645/1147/18 648/1187/18 +f 729/1189/15 651/1312/15 649/1190/15 +f 652/1192/13 654/1350/13 744/1193/13 +f 650/1195/18 653/1676/18 654/1196/18 +f 655/1198/17 656/1311/17 749/1199/17 +f 649/1201/14 655/1198/14 745/1200/14 +f 651/1203/18 656/1677/18 655/1204/18 +f 661/1206/15 663/1209/15 659/1207/15 +f 663/1209/18 664/1215/18 660/1210/18 +f 662/1212/16 661/1206/16 657/1213/16 +f 664/1215/17 662/1212/17 658/1216/17 +f 661/1206/13 662/1212/13 664/1215/13 +f 669/1218/15 671/1221/15 667/1219/15 +f 671/1221/18 672/1227/18 668/1222/18 +f 670/1224/16 669/1218/16 665/1225/16 +f 672/1227/17 670/1224/17 666/1228/17 +f 669/1218/13 670/1224/13 672/1227/13 +f 677/1230/15 679/1233/15 675/1231/15 +f 679/1233/18 680/1239/18 676/1234/18 +f 678/1236/16 677/1230/16 673/1237/16 +f 680/1239/17 678/1236/17 674/1240/17 +f 677/1230/13 678/1236/13 680/1239/13 +f 685/1242/15 687/1245/15 683/1243/15 +f 687/1245/18 688/1251/18 684/1246/18 +f 686/1248/16 685/1242/16 681/1249/16 +f 688/1251/17 686/1248/17 682/1252/17 +f 685/1242/13 686/1248/13 688/1251/13 +f 693/1254/15 695/1257/15 691/1255/15 +f 695/1257/18 696/1263/18 692/1258/18 +f 694/1260/16 693/1254/16 689/1261/16 +f 696/1263/17 694/1260/17 690/1264/17 +f 693/1254/13 694/1260/13 696/1263/13 +f 701/1266/15 703/1269/15 699/1267/15 +f 703/1269/18 704/1275/18 700/1270/18 +f 702/1272/16 701/1266/16 697/1273/16 +f 704/1275/17 702/1272/17 698/1276/17 +f 701/1266/13 702/1272/13 704/1275/13 +f 709/1278/15 711/1281/15 707/1279/15 +f 711/1281/18 712/1287/18 708/1282/18 +f 710/1284/16 709/1278/16 705/1285/16 +f 712/1287/17 710/1284/17 706/1288/17 +f 709/1278/13 710/1284/13 712/1287/13 +f 717/1290/15 719/1293/15 715/1291/15 +f 719/1293/18 720/1299/18 716/1294/18 +f 718/1296/16 717/1290/16 713/1297/16 +f 720/1299/17 718/1296/17 714/1300/17 +f 717/1290/13 718/1296/13 720/1299/13 +f 723/1302/14 747/1322/14 748/1303/14 +f 722/1305/14 746/1324/14 747/1306/14 +f 721/1308/14 745/1326/14 746/1309/14 +f 729/1189/13 749/1199/13 656/1311/13 +f 730/1313/13 750/1327/13 749/1314/13 +f 731/1316/13 751/1325/13 750/1317/13 +f 732/1319/13 752/1323/13 751/1320/13 +f 747/1322/17 751/1320/17 752/1323/17 +f 746/1324/17 750/1317/17 751/1325/17 +f 745/1326/17 749/1314/17 750/1327/17 +f 728/1328/14 740/1678/14 653/1329/14 +f 727/1331/14 739/1679/14 740/1332/14 +f 726/1334/14 738/1680/14 739/1335/14 +f 725/1337/14 737/1681/14 738/1338/14 +f 734/1340/13 742/1359/13 741/1341/13 +f 735/1343/13 743/1356/13 742/1344/13 +f 736/1346/13 744/1353/13 743/1347/13 +f 740/1349/15 744/1193/15 654/1350/15 +f 739/1352/15 743/1347/15 744/1353/15 +f 738/1355/15 742/1344/15 743/1356/15 +f 737/1358/15 741/1341/15 742/1359/15 +f 732/1319/15 731/1321/15 723/1361/15 +f 731/1316/15 730/1318/15 722/1363/15 +f 730/1313/15 729/1315/15 721/1365/15 +f 652/1192/17 736/1194/17 728/1328/17 +f 736/1346/17 735/1348/17 727/1331/17 +f 735/1343/17 734/1345/17 726/1334/17 +f 734/1340/17 733/1342/17 725/1337/17 +f 741/1367/15 737/1682/15 600/1368/15 +f 595/1370/13 733/1683/13 741/1367/13 +f 725/1371/17 733/1683/17 595/1370/17 +f 737/1373/14 725/1371/14 596/1372/14 +f 594/1375/15 732/1684/15 724/1376/15 +f 752/1378/13 732/1684/13 594/1375/13 +f 597/1380/17 748/1382/17 752/1378/17 +f 597/1380/14 593/1685/14 724/1381/14 +f 608/1383/28 607/1686/28 536/1384/28 +f 762/1385/14 761/1406/14 763/1386/14 +f 764/1388/25 759/1687/25 760/1389/25 +f 775/1391/31 776/1394/31 756/1392/31 +f 776/1394/25 774/1402/25 754/1395/25 +f 761/1397/20 757/1688/20 758/1398/20 +f 758/1399/13 757/1405/13 760/1400/13 +f 774/1402/32 773/1422/32 753/1403/32 +f 762/1385/32 760/1400/32 757/1405/32 +f 763/1407/31 758/1689/31 759/1408/31 +f 766/1410/13 768/1419/13 767/1411/13 +f 765/1412/20 767/1411/20 771/1413/20 +f 767/1411/31 768/1419/31 772/1415/31 +f 766/1410/32 765/1412/32 769/1417/32 +f 768/1419/25 766/1410/25 770/1420/25 +f 774/1402/13 776/1394/13 775/1391/13 +f 773/1422/20 775/1391/20 755/1423/20 +f 788/1425/14 786/1445/14 785/1426/14 +f 788/1428/24 783/1690/24 784/1429/24 +f 799/1431/33 800/1434/33 780/1432/33 +f 800/1434/24 798/1442/24 778/1435/24 +f 785/1437/23 781/1691/23 782/1438/23 +f 783/1439/13 782/1692/13 781/1440/13 +f 798/1442/34 797/1461/34 777/1443/34 +f 786/1445/34 784/1441/34 781/1440/34 +f 787/1446/33 782/1693/33 783/1447/33 +f 790/1449/13 792/1458/13 791/1450/13 +f 789/1451/23 791/1450/23 795/1452/23 +f 791/1450/33 792/1458/33 796/1454/33 +f 790/1449/34 789/1451/34 793/1456/34 +f 792/1458/24 790/1449/24 794/1459/24 +f 798/1442/13 800/1434/13 799/1431/13 +f 797/1461/23 799/1431/23 779/1462/23 +f 810/1464/14 809/1485/14 811/1465/14 +f 812/1467/26 807/1694/26 808/1468/26 +f 823/1470/35 824/1473/35 804/1471/35 +f 824/1473/26 822/1481/26 802/1474/26 +f 809/1476/27 805/1695/27 806/1477/27 +f 806/1478/13 805/1484/13 808/1479/13 +f 822/1481/36 821/1501/36 801/1482/36 +f 810/1464/36 808/1479/36 805/1484/36 +f 811/1486/35 806/1696/35 807/1487/35 +f 816/1489/13 815/1494/13 813/1490/13 +f 813/1490/27 815/1494/27 819/1492/27 +f 815/1494/35 816/1489/35 820/1495/35 +f 814/1491/36 813/1490/36 817/1497/36 +f 816/1489/26 814/1491/26 818/1499/26 +f 822/1481/13 824/1473/13 823/1470/13 +f 821/1501/27 823/1470/27 803/1502/27 +f 836/1504/14 834/1524/14 833/1505/14 +f 836/1507/21 831/1697/21 832/1508/21 +f 847/1510/22 848/1513/22 828/1511/22 +f 848/1513/21 846/1521/21 826/1514/21 +f 833/1516/29 829/1698/29 830/1517/29 +f 831/1518/13 830/1699/13 829/1519/13 +f 846/1521/30 845/1540/30 825/1522/30 +f 834/1524/30 832/1520/30 829/1519/30 +f 835/1525/22 830/1700/22 831/1526/22 +f 838/1528/13 840/1537/13 839/1529/13 +f 837/1530/29 839/1529/29 843/1531/29 +f 839/1529/22 840/1537/22 844/1533/22 +f 838/1528/30 837/1530/30 841/1535/30 +f 840/1537/21 838/1528/21 842/1538/21 +f 846/1521/13 848/1513/13 847/1510/13 +f 845/1540/29 847/1510/29 827/1541/29 +f 851/1543/14 852/1558/14 850/1544/14 +f 855/1546/13 856/1557/13 853/1547/13 +f 849/1549/15 854/1701/15 853/1550/15 +f 850/1552/16 855/1702/16 854/1553/16 +f 852/1555/17 856/1703/17 855/1556/17 +f 851/1543/18 853/1547/18 856/1557/18 +f 861/1559/15 863/1562/15 859/1560/15 +f 863/1562/18 864/1568/18 860/1563/18 +f 862/1565/16 861/1559/16 857/1566/16 +f 864/1568/17 862/1565/17 858/1569/17 +f 861/1559/13 862/1565/13 864/1568/13 +f 869/1571/15 871/1574/15 867/1572/15 +f 871/1574/18 872/1580/18 868/1575/18 +f 870/1577/16 869/1571/16 865/1578/16 +f 872/1580/17 870/1577/17 866/1581/17 +f 869/1571/13 870/1577/13 872/1580/13 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj new file mode 100644 index 000000000..f4ebf2c55 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_switch_flipped.obj @@ -0,0 +1,3933 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_switch_flipped.blend' +# www.blender.org +o SignTurn +v 1.500000 1.000000 -1.125000 +v 2.500000 1.000000 -1.125000 +v 1.500000 2.000000 -1.125000 +v 2.500000 2.000000 -1.125000 +v 1.500000 2.000000 -0.875000 +v 1.500000 1.000000 -0.875000 +v 2.500000 1.000000 -0.875000 +v 2.500000 2.000000 -0.875000 +v 1.875000 1.000000 -0.875000 +v 2.125000 1.000000 -0.875000 +v 1.875000 1.000000 -1.125000 +v 2.125000 1.000000 -1.125000 +v 1.875000 0.000000 -1.125000 +v 1.875000 0.000000 -0.875000 +v 2.125000 0.000000 -0.875000 +v 2.125000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/8/3 2/9/3 +f 1/3/4 5/10/4 3/1/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/15/6 1/16/6 +f 13/17/6 15/18/6 14/19/6 +f 16/20/1 11/21/1 12/22/1 +f 14/23/2 10/24/2 9/25/2 +f 15/26/3 12/27/3 10/28/3 +f 13/29/4 9/30/4 11/31/4 +f 3/1/1 4/32/1 2/2/1 +f 7/4/2 8/33/2 5/5/2 +f 4/7/3 8/34/3 7/8/3 +f 1/3/4 6/35/4 5/10/4 +f 3/11/5 5/36/5 8/12/5 +f 2/14/6 7/37/6 6/15/6 +f 13/17/6 16/38/6 15/18/6 +f 16/20/1 13/39/1 11/21/1 +f 14/23/2 15/40/2 10/24/2 +f 15/26/3 16/41/3 12/27/3 +f 13/29/4 14/42/4 9/30/4 +o SignStraight +v 1.500000 1.000000 -1.125000 +v 2.500000 1.000000 -1.125000 +v 1.500000 2.000000 -1.125000 +v 2.500000 2.000000 -1.125000 +v 1.500000 2.000000 -0.875000 +v 1.500000 1.000000 -0.875000 +v 2.500000 1.000000 -0.875000 +v 2.500000 2.000000 -0.875000 +v 1.875000 1.000000 -0.875000 +v 2.125000 1.000000 -0.875000 +v 1.875000 1.000000 -1.125000 +v 2.125000 1.000000 -1.125000 +v 1.875000 0.000000 -1.125000 +v 1.875000 0.000000 -0.875000 +v 2.125000 0.000000 -0.875000 +v 2.125000 0.000000 -1.125000 +vt 0.500000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000100 0.999900 +vt 0.000000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.500000 -0.000000 +vt 0.625000 -0.000000 +vt 0.500000 0.000000 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 0.375000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.500000 0.500000 +vt 0.625000 0.000000 +vt 0.875000 0.375000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 19/43/7 18/44/7 17/45/7 +f 23/46/8 21/47/8 22/48/8 +f 20/49/9 23/50/9 18/51/9 +f 17/45/10 21/52/10 19/43/10 +f 19/53/11 24/54/11 20/55/11 +f 18/56/12 22/57/12 17/58/12 +f 29/59/12 31/60/12 30/61/12 +f 32/62/7 27/63/7 28/64/7 +f 30/65/8 26/66/8 25/67/8 +f 31/68/9 28/69/9 26/70/9 +f 29/71/10 25/72/10 27/73/10 +f 19/43/7 20/74/7 18/44/7 +f 23/46/8 24/75/8 21/47/8 +f 20/49/9 24/76/9 23/50/9 +f 17/45/10 22/77/10 21/52/10 +f 19/53/11 21/78/11 24/54/11 +f 18/56/12 23/79/12 22/57/12 +f 29/59/12 32/80/12 31/60/12 +f 32/62/7 29/81/7 27/63/7 +f 30/65/8 31/82/8 26/66/8 +f 31/68/9 32/83/9 28/69/9 +f 29/71/10 30/84/10 25/72/10 +o Rail +v 1.000000 0.062500 4.812500 +v 1.000000 0.062500 5.187500 +v -1.000000 0.062500 5.187500 +v -1.000000 0.062500 4.812500 +v -1.000000 0.000000 5.187500 +v 1.000000 0.000000 5.187500 +v -1.000000 0.000000 4.812500 +v 1.000000 0.000000 4.812500 +v -1.000000 0.000000 4.187500 +v 1.000000 0.000000 4.187500 +v -1.000000 0.000000 3.812500 +v 1.000000 0.000000 3.812500 +v -1.000000 0.000000 3.187500 +v 1.000000 0.000000 3.187500 +v -1.000000 0.000000 2.812500 +v 1.000000 0.000000 2.812500 +v -1.000000 0.000000 7.187500 +v 1.000000 0.000000 7.187500 +v -1.000000 0.000000 6.812500 +v 1.000000 0.000000 6.812500 +v -1.000000 0.000000 6.187500 +v 1.000000 0.000000 6.187500 +v -1.000000 0.000000 5.812500 +v 1.000000 0.000000 5.812500 +v -1.000000 0.062500 3.812500 +v -1.000000 0.062500 4.187500 +v 1.000000 0.062500 4.187500 +v 1.000000 0.062500 3.812500 +v -1.000000 0.062500 2.812500 +v -1.000000 0.062500 3.187500 +v 1.000000 0.062500 3.187500 +v 1.000000 0.062500 2.812500 +v -1.000000 0.062500 6.812500 +v -1.000000 0.062500 7.187500 +v 1.000000 0.062500 7.187500 +v 1.000000 0.062500 6.812500 +v -1.000000 0.062500 5.812500 +v -1.000000 0.062500 6.187500 +v 1.000000 0.062500 6.187500 +v 1.000000 0.062500 5.812500 +v -0.812500 0.062500 7.500000 +v 0.812500 0.062500 7.500000 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.187500 7.500000 +v 0.812500 0.187500 7.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v 0.750000 0.062500 7.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.187500 2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 7.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 7.500000 +v 0.625000 0.062500 7.062500 +v 0.937500 0.062500 7.062500 +v 0.625000 0.062500 6.937500 +v 0.937500 0.062500 6.937500 +v 0.625000 0.125000 7.062500 +v 0.937500 0.125000 7.062500 +v 0.625000 0.125000 6.937500 +v 0.937500 0.125000 6.937500 +v -0.937500 0.062500 7.062500 +v -0.625000 0.062500 7.062500 +v -0.937500 0.062500 6.937500 +v -0.625000 0.062500 6.937500 +v -0.937500 0.125000 7.062500 +v -0.625000 0.125000 7.062500 +v -0.937500 0.125000 6.937500 +v -0.625000 0.125000 6.937500 +v 0.625000 0.062500 6.062500 +v 0.937500 0.062500 6.062500 +v 0.625000 0.062500 5.937500 +v 0.937500 0.062500 5.937500 +v 0.625000 0.125000 6.062500 +v 0.937500 0.125000 6.062500 +v 0.625000 0.125000 5.937500 +v 0.937500 0.125000 5.937500 +v -0.937500 0.062500 6.062500 +v -0.625000 0.062500 6.062500 +v -0.937500 0.062500 5.937500 +v -0.625000 0.062500 5.937500 +v -0.937500 0.125000 6.062500 +v -0.625000 0.125000 6.062500 +v -0.937500 0.125000 5.937500 +v -0.625000 0.125000 5.937500 +v 0.625000 0.062500 5.062500 +v 0.937500 0.062500 5.062500 +v 0.625000 0.062500 4.937500 +v 0.937500 0.062500 4.937500 +v 0.625000 0.125000 5.062500 +v 0.937500 0.125000 5.062500 +v 0.625000 0.125000 4.937500 +v 0.937500 0.125000 4.937500 +v -0.937500 0.062500 5.062500 +v -0.625000 0.062500 5.062500 +v -0.937500 0.062500 4.937500 +v -0.625000 0.062500 4.937500 +v -0.937500 0.125000 5.062500 +v -0.625000 0.125000 5.062500 +v -0.937500 0.125000 4.937500 +v -0.625000 0.125000 4.937500 +v 0.625000 0.062500 4.062500 +v 0.937500 0.062500 4.062500 +v 0.625000 0.062500 3.937500 +v 0.937500 0.062500 3.937500 +v 0.625000 0.125000 4.062500 +v 0.937500 0.125000 4.062500 +v 0.625000 0.125000 3.937500 +v 0.937500 0.125000 3.937500 +v -0.937500 0.062500 4.062500 +v -0.625000 0.062500 4.062500 +v -0.937500 0.062500 3.937500 +v -0.625000 0.062500 3.937500 +v -0.937500 0.125000 4.062500 +v -0.625000 0.125000 4.062500 +v -0.937500 0.125000 3.937500 +v -0.625000 0.125000 3.937500 +v 0.625000 0.062500 3.062500 +v 0.937500 0.062500 3.062500 +v 0.625000 0.062500 2.937500 +v 0.937500 0.062500 2.937500 +v 0.625000 0.125000 3.062500 +v 0.937500 0.125000 3.062500 +v 0.625000 0.125000 2.937500 +v 0.937500 0.125000 2.937500 +v -0.937500 0.062500 3.062500 +v -0.625000 0.062500 3.062500 +v -0.937500 0.062500 2.937500 +v -0.625000 0.062500 2.937500 +v -0.937500 0.125000 3.062500 +v -0.625000 0.125000 3.062500 +v -0.937500 0.125000 2.937500 +v -0.625000 0.125000 2.937500 +v -0.812500 0.062500 3.500000 +v -0.812500 0.062500 4.500000 +v -0.812500 0.062500 5.500000 +v -0.812500 0.062500 6.500000 +v 0.812500 0.062500 6.500000 +v 0.812500 0.062500 5.500000 +v 0.812500 0.062500 4.500000 +v 0.812500 0.062500 3.500000 +v -0.812500 0.187500 3.500000 +v -0.812500 0.187500 4.500000 +v -0.812500 0.187500 5.500000 +v -0.812500 0.187500 6.500000 +v 0.812500 0.187500 6.500000 +v 0.812500 0.187500 5.500000 +v 0.812500 0.187500 4.500000 +v 0.812500 0.187500 3.500000 +v 0.750000 0.062500 6.500000 +v 0.750000 0.062500 5.500000 +v 0.750000 0.062500 4.500000 +v 0.750000 0.062500 3.500000 +v 0.750000 0.187500 6.500000 +v 0.750000 0.187500 5.500000 +v 0.750000 0.187500 4.500000 +v 0.750000 0.187500 3.500000 +v -0.750000 0.062500 3.500000 +v -0.750000 0.062500 4.500000 +v -0.750000 0.062500 5.500000 +v -0.750000 0.062500 6.500000 +v -0.750000 0.187500 3.500000 +v -0.750000 0.187500 4.500000 +v -0.750000 0.187500 5.500000 +v -0.750000 0.187500 6.500000 +v 1.000000 0.062500 -5.187500 +v 1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -4.812500 +v -1.000000 0.062500 -5.187500 +v -1.000000 0.000000 -4.812500 +v 1.000000 0.000000 -4.812500 +v -1.000000 0.000000 -5.187500 +v 1.000000 0.000000 -5.187500 +v -1.000000 0.000000 -5.812500 +v 1.000000 0.000000 -5.812500 +v -1.000000 0.000000 -6.187500 +v 1.000000 0.000000 -6.187500 +v -1.000000 0.000000 -6.812500 +v 1.000000 0.000000 -6.812500 +v -1.000000 0.000000 -7.187500 +v 1.000000 0.000000 -7.187500 +v -1.000000 0.000000 -2.812500 +v 1.000000 0.000000 -2.812500 +v -1.000000 0.000000 -3.187500 +v 1.000000 0.000000 -3.187500 +v -1.000000 0.000000 -3.812500 +v 1.000000 0.000000 -3.812500 +v -1.000000 0.000000 -4.187500 +v 1.000000 0.000000 -4.187500 +v -1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -5.812500 +v 1.000000 0.062500 -6.187500 +v -1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -6.812500 +v 1.000000 0.062500 -7.187500 +v -1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -2.812500 +v 1.000000 0.062500 -3.187500 +v -1.000000 0.062500 -4.187500 +v -1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -3.812500 +v 1.000000 0.062500 -4.187500 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.062500 -7.500000 +v 0.812500 0.062500 -7.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.187500 -7.500000 +v 0.812500 0.187500 -7.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.062500 -7.500000 +v 0.750000 0.187500 -2.500000 +v 0.750000 0.187500 -7.500000 +v -0.750000 0.062500 -7.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.187500 -7.500000 +v -0.750000 0.187500 -2.500000 +v 0.625000 0.062500 -2.937500 +v 0.937500 0.062500 -2.937500 +v 0.625000 0.062500 -3.062500 +v 0.937500 0.062500 -3.062500 +v 0.625000 0.125000 -2.937500 +v 0.937500 0.125000 -2.937500 +v 0.625000 0.125000 -3.062500 +v 0.937500 0.125000 -3.062500 +v -0.937500 0.062500 -2.937500 +v -0.625000 0.062500 -2.937500 +v -0.937500 0.062500 -3.062500 +v -0.625000 0.062500 -3.062500 +v -0.937500 0.125000 -2.937500 +v -0.625000 0.125000 -2.937500 +v -0.937500 0.125000 -3.062500 +v -0.625000 0.125000 -3.062500 +v 0.625000 0.062500 -3.937500 +v 0.937500 0.062500 -3.937500 +v 0.625000 0.062500 -4.062500 +v 0.937500 0.062500 -4.062500 +v 0.625000 0.125000 -3.937500 +v 0.937500 0.125000 -3.937500 +v 0.625000 0.125000 -4.062500 +v 0.937500 0.125000 -4.062500 +v -0.937500 0.062500 -3.937500 +v -0.625000 0.062500 -3.937500 +v -0.937500 0.062500 -4.062500 +v -0.625000 0.062500 -4.062500 +v -0.937500 0.125000 -3.937500 +v -0.625000 0.125000 -3.937500 +v -0.937500 0.125000 -4.062500 +v -0.625000 0.125000 -4.062500 +v 0.625000 0.062500 -4.937500 +v 0.937500 0.062500 -4.937500 +v 0.625000 0.062500 -5.062500 +v 0.937500 0.062500 -5.062500 +v 0.625000 0.125000 -4.937500 +v 0.937500 0.125000 -4.937500 +v 0.625000 0.125000 -5.062500 +v 0.937500 0.125000 -5.062500 +v -0.937500 0.062500 -4.937500 +v -0.625000 0.062500 -4.937500 +v -0.937500 0.062500 -5.062500 +v -0.625000 0.062500 -5.062500 +v -0.937500 0.125000 -4.937500 +v -0.625000 0.125000 -4.937500 +v -0.937500 0.125000 -5.062500 +v -0.625000 0.125000 -5.062500 +v 0.625000 0.062500 -5.937500 +v 0.937500 0.062500 -5.937500 +v 0.625000 0.062500 -6.062500 +v 0.937500 0.062500 -6.062500 +v 0.625000 0.125000 -5.937500 +v 0.937500 0.125000 -5.937500 +v 0.625000 0.125000 -6.062500 +v 0.937500 0.125000 -6.062500 +v -0.937500 0.062500 -5.937500 +v -0.625000 0.062500 -5.937500 +v -0.937500 0.062500 -6.062500 +v -0.625000 0.062500 -6.062500 +v -0.937500 0.125000 -5.937500 +v -0.625000 0.125000 -5.937500 +v -0.937500 0.125000 -6.062500 +v -0.625000 0.125000 -6.062500 +v 0.625000 0.062500 -6.937500 +v 0.937500 0.062500 -6.937500 +v 0.625000 0.062500 -7.062500 +v 0.937500 0.062500 -7.062500 +v 0.625000 0.125000 -6.937500 +v 0.937500 0.125000 -6.937500 +v 0.625000 0.125000 -7.062500 +v 0.937500 0.125000 -7.062500 +v -0.937500 0.062500 -6.937500 +v -0.625000 0.062500 -6.937500 +v -0.937500 0.062500 -7.062500 +v -0.625000 0.062500 -7.062500 +v -0.937500 0.125000 -6.937500 +v -0.625000 0.125000 -6.937500 +v -0.937500 0.125000 -7.062500 +v -0.625000 0.125000 -7.062500 +v -0.812500 0.062500 -6.500000 +v -0.812500 0.062500 -5.500000 +v -0.812500 0.062500 -4.500000 +v -0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -3.500000 +v 0.812500 0.062500 -4.500000 +v 0.812500 0.062500 -5.500000 +v 0.812500 0.062500 -6.500000 +v -0.812500 0.187500 -6.500000 +v -0.812500 0.187500 -5.500000 +v -0.812500 0.187500 -4.500000 +v -0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -3.500000 +v 0.812500 0.187500 -4.500000 +v 0.812500 0.187500 -5.500000 +v 0.812500 0.187500 -6.500000 +v 0.750000 0.062500 -3.500000 +v 0.750000 0.062500 -4.500000 +v 0.750000 0.062500 -5.500000 +v 0.750000 0.062500 -6.500000 +v 0.750000 0.187500 -3.500000 +v 0.750000 0.187500 -4.500000 +v 0.750000 0.187500 -5.500000 +v 0.750000 0.187500 -6.500000 +v -0.750000 0.062500 -6.500000 +v -0.750000 0.062500 -5.500000 +v -0.750000 0.062500 -4.500000 +v -0.750000 0.062500 -3.500000 +v -0.750000 0.187500 -6.500000 +v -0.750000 0.187500 -5.500000 +v -0.750000 0.187500 -4.500000 +v -0.750000 0.187500 -3.500000 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v 1.725096 0.062500 1.451439 +v 1.966661 0.062500 1.649687 +v 1.645797 0.062500 1.548066 +v 1.887362 0.062500 1.746314 +v 1.756082 0.062500 1.315164 +v 1.518184 0.062500 1.605042 +v 3.064205 0.062500 2.873829 +v 3.302103 0.062500 2.583950 +v 1.756082 0.000000 1.315164 +v 3.302103 0.000000 2.583950 +v 1.518184 0.000000 1.605042 +v 3.064205 0.000000 2.873829 +v 0.504144 0.062500 3.159608 +v 0.504144 0.187500 3.159608 +v 1.855282 0.187500 4.062409 +v 1.855282 0.062500 4.062409 +v 0.556111 0.062500 3.194331 +v 0.556111 0.187500 3.194331 +v 1.803315 0.187500 4.027686 +v 1.803315 0.062500 4.027686 +v -0.217808 0.062500 4.510286 +v -0.217808 0.187500 4.510286 +v 1.283496 0.187500 5.132147 +v 1.283496 0.062500 5.132147 +v -0.160065 0.062500 4.534204 +v -0.160065 0.187500 4.534204 +v 1.225753 0.187500 5.108229 +v 1.225753 0.062500 5.108229 +v -0.662384 0.062500 5.975857 +v -0.662384 0.187500 5.975857 +v 0.931392 0.187500 6.292879 +v 0.931392 0.062500 6.292879 +v -0.601084 0.062500 5.988050 +v -0.601084 0.187500 5.988050 +v 0.870092 0.187500 6.280685 +v 0.870092 0.062500 6.280685 +v -0.812499 0.062500 7.500000 +v -0.812499 0.187500 7.500000 +v 0.812501 0.187500 7.500000 +v 0.812501 0.062500 7.500000 +v -0.749998 0.062500 7.500000 +v -0.749998 0.187500 7.500000 +v 0.750000 0.187500 7.500000 +v 0.750000 0.062500 7.500000 +v 1.376398 0.062500 2.183322 +v 1.376398 0.187500 2.183322 +v 1.324431 0.187500 2.148599 +v 1.324431 0.062500 2.148599 +v 3.495856 0.062500 2.040392 +v 3.495856 0.187500 2.040392 +v 2.144718 0.187500 1.137591 +v 2.144718 0.062500 1.137591 +v 3.443888 0.062500 2.005669 +v 3.443888 0.187500 2.005669 +v 2.196684 0.187500 1.172314 +v 2.196684 0.062500 1.172314 +v 4.217808 0.062500 0.689714 +v 4.217808 0.187500 0.689714 +v 2.716504 0.187500 0.067853 +v 2.716504 0.062500 0.067853 +v 4.160065 0.062500 0.665796 +v 4.160065 0.187500 0.665796 +v 2.774246 0.187500 0.091771 +v 2.774246 0.062500 0.091771 +v 4.662384 0.062500 -0.775857 +v 4.662384 0.187500 -0.775857 +v 3.068608 0.187500 -1.092879 +v 3.068608 0.062500 -1.092879 +v 4.601084 0.062500 -0.788050 +v 4.601084 0.187500 -0.788050 +v 3.129908 0.187500 -1.080685 +v 3.129908 0.062500 -1.080685 +v 4.812499 0.062500 -2.300000 +v 4.812499 0.187500 -2.300000 +v 3.187499 0.187500 -2.300000 +v 3.187499 0.062500 -2.300000 +v 4.749998 0.062500 -2.300000 +v 4.749998 0.187500 -2.300000 +v 3.250000 0.187500 -2.300000 +v 3.250000 0.062500 -2.300000 +v 2.932924 0.125000 2.442679 +v 3.174490 0.125000 2.640927 +v 2.853625 0.125000 2.539305 +v 3.095191 0.125000 2.737553 +v 2.623602 0.062500 3.016677 +v 2.623602 0.187500 3.016677 +v 2.675569 0.062500 3.051401 +v 2.675569 0.187500 3.051401 +v 2.932924 0.062500 2.442679 +v 3.174490 0.062500 2.640927 +v 2.853625 0.062500 2.539305 +v 3.095191 0.062500 2.737553 +v 1.725096 0.125000 1.451439 +v 1.966661 0.125000 1.649687 +v 1.645797 0.125000 1.548066 +v 1.887362 0.125000 1.746314 +v 3.000000 0.062500 -5.187500 +v 3.000000 0.062500 -4.812500 +v 5.000000 0.062500 -4.812500 +v 5.000000 0.062500 -5.187500 +v 5.000000 0.000000 -4.812500 +v 3.000000 0.000000 -4.812500 +v 5.000000 0.000000 -5.187500 +v 3.000000 0.000000 -5.187500 +v 5.000000 0.000000 -5.812500 +v 3.000000 0.000000 -5.812500 +v 5.000000 0.000000 -6.187500 +v 3.000000 0.000000 -6.187500 +v 5.000000 0.000000 -6.812500 +v 3.000000 0.000000 -6.812500 +v 5.000000 0.000000 -7.187500 +v 3.000000 0.000000 -7.187500 +v 5.000000 0.000000 -3.812500 +v 3.000000 0.000000 -3.812500 +v 5.000000 0.000000 -4.187500 +v 3.000000 0.000000 -4.187500 +v 5.000000 0.062500 -6.187500 +v 5.000000 0.062500 -5.812500 +v 3.000000 0.062500 -5.812500 +v 3.000000 0.062500 -6.187500 +v 5.000000 0.062500 -7.187500 +v 5.000000 0.062500 -6.812500 +v 3.000000 0.062500 -6.812500 +v 3.000000 0.062500 -7.187500 +v 5.000000 0.062500 -4.187500 +v 5.000000 0.062500 -3.812500 +v 3.000000 0.062500 -3.812500 +v 3.000000 0.062500 -4.187500 +v 4.812500 0.062500 -7.500000 +v 3.187500 0.062500 -7.500000 +v 4.812500 0.187500 -7.500000 +v 3.187500 0.187500 -7.500000 +v 3.250000 0.062500 -7.500000 +v 3.250000 0.187500 -7.500000 +v 4.750000 0.062500 -7.500000 +v 4.750000 0.187500 -7.500000 +v 3.375000 0.062500 -3.937500 +v 3.062500 0.062500 -3.937500 +v 3.375000 0.062500 -4.062500 +v 3.062500 0.062500 -4.062500 +v 3.375000 0.125000 -3.937500 +v 3.062500 0.125000 -3.937500 +v 3.375000 0.125000 -4.062500 +v 3.062500 0.125000 -4.062500 +v 4.937500 0.062500 -3.937500 +v 4.625000 0.062500 -3.937500 +v 4.937500 0.062500 -4.062500 +v 4.625000 0.062500 -4.062500 +v 4.937500 0.125000 -3.937500 +v 4.625000 0.125000 -3.937500 +v 4.937500 0.125000 -4.062500 +v 4.625000 0.125000 -4.062500 +v 3.375000 0.062500 -4.937500 +v 3.062500 0.062500 -4.937500 +v 3.375000 0.062500 -5.062500 +v 3.062500 0.062500 -5.062500 +v 3.375000 0.125000 -4.937500 +v 3.062500 0.125000 -4.937500 +v 3.375000 0.125000 -5.062500 +v 3.062500 0.125000 -5.062500 +v 4.937500 0.062500 -4.937500 +v 4.625000 0.062500 -4.937500 +v 4.937500 0.062500 -5.062500 +v 4.625000 0.062500 -5.062500 +v 4.937500 0.125000 -4.937500 +v 4.625000 0.125000 -4.937500 +v 4.937500 0.125000 -5.062500 +v 4.625000 0.125000 -5.062500 +v 3.375000 0.062500 -5.937500 +v 3.062500 0.062500 -5.937500 +v 3.375000 0.062500 -6.062500 +v 3.062500 0.062500 -6.062500 +v 3.375000 0.125000 -5.937500 +v 3.062500 0.125000 -5.937500 +v 3.375000 0.125000 -6.062500 +v 3.062500 0.125000 -6.062500 +v 4.937500 0.062500 -5.937500 +v 4.625000 0.062500 -5.937500 +v 4.937500 0.062500 -6.062500 +v 4.625000 0.062500 -6.062500 +v 4.937500 0.125000 -5.937500 +v 4.625000 0.125000 -5.937500 +v 4.937500 0.125000 -6.062500 +v 4.625000 0.125000 -6.062500 +v 3.375000 0.062500 -6.937500 +v 3.062500 0.062500 -6.937500 +v 3.375000 0.062500 -7.062500 +v 3.062500 0.062500 -7.062500 +v 3.375000 0.125000 -6.937500 +v 3.062500 0.125000 -6.937500 +v 3.375000 0.125000 -7.062500 +v 3.062500 0.125000 -7.062500 +v 4.937500 0.062500 -6.937500 +v 4.625000 0.062500 -6.937500 +v 4.937500 0.062500 -7.062500 +v 4.625000 0.062500 -7.062500 +v 4.937500 0.125000 -6.937500 +v 4.625000 0.125000 -6.937500 +v 4.937500 0.125000 -7.062500 +v 4.625000 0.125000 -7.062500 +v 4.812500 0.062500 -6.500000 +v 4.812500 0.062500 -5.500000 +v 4.812500 0.062500 -4.500000 +v 4.812500 0.062500 -3.500000 +v 3.187500 0.062500 -3.500000 +v 3.187500 0.062500 -4.500000 +v 3.187500 0.062500 -5.500000 +v 3.187500 0.062500 -6.500000 +v 4.812500 0.187500 -6.500000 +v 4.812500 0.187500 -5.500000 +v 4.812500 0.187500 -4.500000 +v 4.812500 0.187500 -3.500000 +v 3.187500 0.187500 -3.500000 +v 3.187500 0.187500 -4.500000 +v 3.187500 0.187500 -5.500000 +v 3.187500 0.187500 -6.500000 +v 3.250000 0.062500 -3.500000 +v 3.250000 0.062500 -4.500000 +v 3.250000 0.062500 -5.500000 +v 3.250000 0.062500 -6.500000 +v 3.250000 0.187500 -3.500000 +v 3.250000 0.187500 -4.500000 +v 3.250000 0.187500 -5.500000 +v 3.250000 0.187500 -6.500000 +v 4.750000 0.062500 -6.500000 +v 4.750000 0.062500 -5.500000 +v 4.750000 0.062500 -4.500000 +v 4.750000 0.062500 -3.500000 +v 4.750000 0.187500 -6.500000 +v 4.750000 0.187500 -5.500000 +v 4.750000 0.187500 -4.500000 +v 4.750000 0.187500 -3.500000 +v 2.346383 0.062500 0.486832 +v 2.621983 0.062500 0.634143 +v 2.287458 0.062500 0.597072 +v 2.563059 0.062500 0.744383 +v 2.350187 0.062500 0.347129 +v 2.173414 0.062500 0.677850 +v 3.937256 0.062500 1.620643 +v 4.114030 0.062500 1.289923 +v 2.350187 0.000000 0.347129 +v 4.114030 0.000000 1.289923 +v 2.173414 0.000000 0.677850 +v 3.937256 0.000000 1.620643 +v 3.724385 0.125000 1.223389 +v 3.999985 0.125000 1.370701 +v 3.665460 0.125000 1.333629 +v 3.941061 0.125000 1.480941 +v 3.724385 0.062500 1.223389 +v 3.999985 0.062500 1.370701 +v 3.665460 0.062500 1.333629 +v 3.941061 0.062500 1.480941 +v 2.346383 0.125000 0.486832 +v 2.621983 0.125000 0.634143 +v 2.287458 0.125000 0.597072 +v 2.563059 0.125000 0.744383 +v 2.787336 0.062500 -0.609743 +v 3.086380 0.062500 -0.519029 +v 2.751051 0.062500 -0.490125 +v 3.050095 0.062500 -0.399411 +v 2.763813 0.062500 -0.747503 +v 2.654956 0.062500 -0.388651 +v 4.568837 0.062500 0.191919 +v 4.677694 0.062500 -0.166934 +v 2.763813 0.000000 -0.747503 +v 4.677694 0.000000 -0.166934 +v 2.654956 0.000000 -0.388651 +v 4.568837 0.000000 0.191919 +v 4.282555 0.125000 -0.156173 +v 4.581599 0.125000 -0.065459 +v 4.246270 0.125000 -0.036556 +v 4.545314 0.125000 0.054159 +v 4.282555 0.062500 -0.156173 +v 4.581599 0.062500 -0.065459 +v 4.246270 0.062500 -0.036556 +v 4.545314 0.062500 0.054159 +v 2.787336 0.125000 -0.609743 +v 3.086380 0.125000 -0.519029 +v 2.751051 0.125000 -0.490125 +v 3.050095 0.125000 -0.399411 +v 3.005888 0.062500 -1.771274 +v 3.316883 0.062500 -1.740644 +v 2.993635 0.062500 -1.646876 +v 3.304631 0.062500 -1.616246 +v 2.955941 0.062500 -1.901798 +v 2.919184 0.062500 -1.528604 +v 4.909554 0.062500 -1.332570 +v 4.946310 0.062500 -1.705764 +v 2.955941 0.000000 -1.901798 +v 4.946310 0.000000 -1.705764 +v 2.919184 0.000000 -1.528604 +v 4.909554 0.000000 -1.332570 +v 4.560863 0.125000 -1.618122 +v 4.871859 0.125000 -1.587492 +v 4.548611 0.125000 -1.493724 +v 4.859607 0.125000 -1.463094 +v 4.560863 0.062500 -1.618122 +v 4.871859 0.062500 -1.587492 +v 4.548611 0.062500 -1.493724 +v 4.859607 0.062500 -1.463094 +v 3.005888 0.125000 -1.771274 +v 3.316883 0.125000 -1.740644 +v 2.993635 0.125000 -1.646876 +v 3.304631 0.125000 -1.616246 +v 0.904809 0.062500 2.462447 +v 1.146375 0.062500 2.660695 +v 0.825510 0.062500 2.559073 +v 1.067076 0.062500 2.757321 +v 0.935795 0.062500 2.326171 +v 0.697898 0.062500 2.616050 +v 2.243919 0.062500 3.884836 +v 2.481816 0.062500 3.594958 +v 0.935795 0.000000 2.326171 +v 2.481816 0.000000 3.594958 +v 0.697898 0.000000 2.616050 +v 2.243919 0.000000 3.884836 +v 2.112638 0.125000 3.453686 +v 2.354204 0.125000 3.651934 +v 2.033339 0.125000 3.550313 +v 2.274905 0.125000 3.748561 +v 2.112638 0.062500 3.453686 +v 2.354204 0.062500 3.651934 +v 2.033339 0.062500 3.550313 +v 2.274905 0.062500 3.748561 +v 0.904809 0.125000 2.462447 +v 1.146375 0.125000 2.660695 +v 0.825510 0.125000 2.559073 +v 1.067076 0.125000 2.757321 +v 5.000000 0.000000 -2.812500 +v 3.000000 0.000000 -2.812500 +v 5.000000 0.000000 -3.187500 +v 3.000000 0.000000 -3.187500 +v 5.000000 0.062500 -3.187500 +v 5.000000 0.062500 -2.812500 +v 3.000000 0.062500 -2.812500 +v 3.000000 0.062500 -3.187500 +v 3.375000 0.062500 -2.937500 +v 3.062500 0.062500 -2.937500 +v 3.375000 0.062500 -3.062500 +v 3.062500 0.062500 -3.062500 +v 3.375000 0.125000 -2.937500 +v 3.062500 0.125000 -2.937500 +v 3.375000 0.125000 -3.062500 +v 3.062500 0.125000 -3.062500 +v 4.937500 0.062500 -2.937500 +v 4.625000 0.062500 -2.937500 +v 4.937500 0.062500 -3.062500 +v 4.625000 0.062500 -3.062500 +v 4.937500 0.125000 -2.937500 +v 4.625000 0.125000 -2.937500 +v 4.937500 0.125000 -3.062500 +v 4.625000 0.125000 -3.062500 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.406250 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.000000 +vt 0.218750 1.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.593750 0.125000 +vt 0.437500 0.062500 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.000000 +vt 0.218750 1.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.000000 0.000000 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.062500 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt 0.187500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.062500 +vt 0.593750 0.156250 +vt 0.437500 0.125000 +vt 0.437500 0.156250 +vt 0.437500 0.031250 +vt 0.593750 0.062500 +vt 0.593750 0.031250 +vt 0.625000 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.125000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.406250 -0.000000 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.531250 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.156250 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.406250 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.406250 1.000000 +vt 0.406250 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.187500 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 0.000000 +vt 0.593750 0.031250 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7765 0.0000 -0.6301 +vn -0.8819 0.0000 -0.4714 +vn 0.7730 0.0000 0.6344 +vn -0.6344 0.0000 0.7730 +vn -0.9569 0.0000 -0.2903 +vn 0.9569 0.0000 0.2903 +vn 0.8819 0.0000 0.4714 +vn 0.9952 0.0000 0.0980 +vn -0.9952 0.0000 -0.0980 +vn 0.7765 0.0000 0.6301 +vn -0.7730 0.0000 -0.6344 +vn 0.6344 0.0000 -0.7730 +vn -0.4714 0.0000 0.8819 +vn 0.4714 0.0000 -0.8819 +vn -0.2903 0.0000 0.9569 +vn 0.2903 0.0000 -0.9569 +vn -0.0980 0.0000 0.9952 +vn 0.0980 0.0000 -0.9952 +s off +f 34/85/13 36/86/13 35/87/13 +f 39/88/14 38/89/14 37/90/14 +f 43/91/14 42/92/14 41/93/14 +f 47/94/14 46/95/14 45/96/14 +f 51/97/14 50/98/14 49/99/14 +f 55/100/14 54/101/14 53/102/14 +f 59/103/13 57/104/13 58/105/13 +f 63/106/13 61/107/13 62/108/13 +f 67/109/13 65/110/13 66/111/13 +f 71/112/13 69/113/13 70/114/13 +f 49/115/15 65/116/15 51/117/15 +f 42/118/16 58/119/16 41/120/16 +f 50/121/16 66/122/16 49/123/16 +f 44/124/17 59/125/17 42/92/17 +f 52/126/17 67/127/17 50/98/17 +f 43/91/18 60/128/18 44/129/18 +f 37/130/15 36/131/15 39/132/15 +f 51/97/18 68/133/18 52/134/18 +f 45/135/15 61/136/15 47/137/15 +f 38/138/16 35/139/16 37/140/16 +f 53/141/15 69/142/15 55/143/15 +f 46/144/16 62/145/16 45/146/16 +f 40/147/17 34/148/17 38/89/17 +f 54/149/16 70/150/16 53/151/16 +f 48/152/17 63/153/17 46/95/17 +f 39/88/18 33/154/18 40/155/18 +f 56/156/17 71/157/17 54/101/17 +f 47/94/18 64/158/18 48/159/18 +f 41/160/15 57/161/15 43/162/15 +f 55/100/18 72/163/18 56/164/18 +f 181/165/17 74/166/17 173/167/17 +f 177/168/15 75/169/15 169/170/15 +f 81/171/15 189/172/15 185/173/15 +f 78/174/16 81/175/16 74/176/16 +f 80/177/13 192/178/13 184/179/13 +f 74/166/14 185/180/14 173/167/14 +f 75/181/14 516/182/14 85/183/14 +f 85/183/17 197/184/17 193/185/17 +f 77/186/13 200/187/13 180/188/13 +f 75/181/14 193/185/14 169/189/14 +f 79/190/15 492/191/15 75/169/15 +f 73/192/16 88/193/16 77/194/16 +f 93/195/15 91/196/15 89/197/15 +f 95/198/18 92/199/18 91/200/18 +f 94/201/16 89/202/16 90/203/16 +f 96/204/17 90/205/17 92/206/17 +f 93/195/13 96/204/13 95/198/13 +f 101/207/15 99/208/15 97/209/15 +f 103/210/18 100/211/18 99/212/18 +f 102/213/16 97/214/16 98/215/16 +f 104/216/17 98/217/17 100/218/17 +f 101/207/13 104/216/13 103/210/13 +f 109/219/15 107/220/15 105/221/15 +f 111/222/18 108/223/18 107/224/18 +f 110/225/16 105/226/16 106/227/16 +f 112/228/17 106/229/17 108/230/17 +f 109/219/13 112/228/13 111/222/13 +f 117/231/15 115/232/15 113/233/15 +f 119/234/18 116/235/18 115/236/18 +f 118/237/16 113/238/16 114/239/16 +f 120/240/17 114/241/17 116/242/17 +f 117/231/13 120/240/13 119/234/13 +f 125/243/15 123/244/15 121/245/15 +f 127/246/18 124/247/18 123/248/18 +f 126/249/16 121/250/16 122/251/16 +f 128/252/17 122/253/17 124/254/17 +f 125/243/13 128/252/13 127/246/13 +f 133/255/15 131/256/15 129/257/15 +f 135/258/18 132/259/18 131/260/18 +f 134/261/16 129/262/16 130/263/16 +f 136/264/17 130/265/17 132/266/17 +f 133/255/13 136/264/13 135/258/13 +f 141/267/15 139/268/15 137/269/15 +f 143/270/18 140/271/18 139/272/18 +f 142/273/16 137/274/16 138/275/16 +f 144/276/17 138/277/17 140/278/17 +f 141/267/13 144/276/13 143/270/13 +f 149/279/15 147/280/15 145/281/15 +f 151/282/18 148/283/18 147/284/18 +f 150/285/16 145/286/16 146/287/16 +f 152/288/17 146/289/17 148/290/17 +f 149/279/13 152/288/13 151/282/13 +f 157/291/15 155/292/15 153/293/15 +f 159/294/18 156/295/18 155/296/18 +f 158/297/16 153/298/16 154/299/16 +f 160/300/17 154/301/17 156/302/17 +f 157/291/13 160/300/13 159/294/13 +f 165/303/15 163/304/15 161/305/15 +f 167/306/18 164/307/18 163/308/18 +f 166/309/16 161/310/16 162/311/16 +f 168/312/17 162/313/17 164/314/17 +f 165/303/13 168/312/13 167/306/13 +f 172/315/14 86/316/14 73/317/14 +f 171/318/14 196/319/14 172/320/14 +f 170/321/14 195/322/14 171/323/14 +f 169/324/14 194/325/14 170/326/14 +f 177/168/13 87/327/13 79/190/13 +f 178/328/13 197/329/13 177/330/13 +f 179/331/13 198/332/13 178/333/13 +f 180/334/13 199/335/13 179/336/13 +f 196/337/17 88/338/17 86/316/17 +f 195/339/17 200/340/17 196/319/17 +f 194/341/17 199/342/17 195/322/17 +f 193/343/17 198/344/17 194/325/17 +f 176/345/14 82/346/14 76/347/14 +f 175/348/14 188/349/14 176/350/14 +f 174/351/14 187/352/14 175/353/14 +f 173/354/14 186/355/14 174/356/14 +f 181/165/13 83/357/13 78/358/13 +f 182/359/13 189/360/13 181/361/13 +f 183/362/13 190/363/13 182/364/13 +f 184/365/13 191/366/13 183/367/13 +f 188/368/15 84/369/15 82/370/15 +f 187/371/15 192/372/15 188/373/15 +f 186/374/15 191/375/15 187/376/15 +f 185/377/15 190/378/15 186/379/15 +f 77/186/15 172/380/15 73/381/15 +f 180/334/15 171/382/15 172/383/15 +f 179/331/15 170/384/15 171/385/15 +f 178/328/15 169/386/15 170/387/15 +f 80/177/17 176/345/17 76/347/17 +f 184/365/17 175/348/17 176/350/17 +f 183/362/17 174/351/17 175/353/17 +f 182/359/17 173/354/17 174/356/17 +f 202/388/13 204/389/13 203/390/13 +f 207/391/14 206/392/14 205/393/14 +f 211/394/14 210/395/14 209/396/14 +f 215/397/14 214/398/14 213/399/14 +f 219/400/14 218/401/14 217/402/14 +f 223/403/14 222/404/14 221/405/14 +f 227/406/13 225/407/13 226/408/13 +f 231/409/13 229/410/13 230/411/13 +f 235/412/13 233/413/13 234/414/13 +f 239/415/13 237/416/13 238/417/13 +f 217/418/15 233/419/15 219/420/15 +f 210/421/16 226/422/16 209/423/16 +f 218/424/16 234/425/16 217/426/16 +f 212/427/17 227/428/17 210/395/17 +f 220/429/17 235/430/17 218/401/17 +f 211/394/18 228/431/18 212/432/18 +f 205/433/15 204/434/15 207/435/15 +f 219/400/18 236/436/18 220/437/18 +f 213/438/15 229/439/15 215/440/15 +f 206/441/16 203/442/16 205/443/16 +f 221/444/15 237/445/15 223/446/15 +f 214/447/16 230/448/16 213/449/16 +f 208/450/17 202/451/17 206/392/17 +f 222/452/16 238/453/16 221/454/16 +f 216/455/17 231/456/17 214/398/17 +f 207/391/18 201/457/18 208/458/18 +f 224/459/17 239/460/17 222/404/17 +f 215/397/18 232/461/18 216/462/18 +f 209/463/15 225/464/15 211/465/15 +f 223/403/18 240/466/18 224/467/18 +f 349/468/17 242/469/17 341/470/17 +f 345/471/15 243/472/15 337/473/15 +f 249/474/15 357/475/15 353/476/15 +f 520/477/13 79/190/13 87/327/13 +f 248/478/13 360/479/13 352/480/13 +f 242/469/14 353/481/14 341/470/14 +f 244/482/18 252/483/18 248/484/18 +f 253/485/17 365/486/17 361/487/17 +f 245/488/13 368/489/13 348/490/13 +f 243/491/14 361/487/14 337/492/14 +f 247/493/18 253/494/18 243/495/18 +f 85/183/17 520/477/17 87/327/17 +f 261/496/15 259/497/15 257/498/15 +f 263/499/18 260/500/18 259/501/18 +f 262/502/16 257/503/16 258/504/16 +f 264/505/17 258/506/17 260/507/17 +f 261/496/13 264/505/13 263/499/13 +f 269/508/15 267/509/15 265/510/15 +f 271/511/18 268/512/18 267/513/18 +f 270/514/16 265/515/16 266/516/16 +f 272/517/17 266/518/17 268/519/17 +f 269/508/13 272/517/13 271/511/13 +f 277/520/15 275/521/15 273/522/15 +f 279/523/18 276/524/18 275/525/18 +f 278/526/16 273/527/16 274/528/16 +f 280/529/17 274/530/17 276/531/17 +f 277/520/13 280/529/13 279/523/13 +f 285/532/15 283/533/15 281/534/15 +f 287/535/18 284/536/18 283/537/18 +f 286/538/16 281/539/16 282/540/16 +f 288/541/17 282/542/17 284/543/17 +f 285/532/13 288/541/13 287/535/13 +f 293/544/15 291/545/15 289/546/15 +f 295/547/18 292/548/18 291/549/18 +f 294/550/16 289/551/16 290/552/16 +f 296/553/17 290/554/17 292/555/17 +f 293/544/13 296/553/13 295/547/13 +f 301/556/15 299/557/15 297/558/15 +f 303/559/18 300/560/18 299/561/18 +f 302/562/16 297/563/16 298/564/16 +f 304/565/17 298/566/17 300/567/17 +f 301/556/13 304/565/13 303/559/13 +f 309/568/15 307/569/15 305/570/15 +f 311/571/18 308/572/18 307/573/18 +f 310/574/16 305/575/16 306/576/16 +f 312/577/17 306/578/17 308/579/17 +f 309/568/13 312/577/13 311/571/13 +f 317/580/15 315/581/15 313/582/15 +f 319/583/18 316/584/18 315/585/18 +f 318/586/16 313/587/16 314/588/16 +f 320/589/17 314/590/17 316/591/17 +f 317/580/13 320/589/13 319/583/13 +f 325/592/15 323/593/15 321/594/15 +f 327/595/18 324/596/18 323/597/18 +f 326/598/16 321/599/16 322/600/16 +f 328/601/17 322/602/17 324/603/17 +f 325/592/13 328/601/13 327/595/13 +f 333/604/15 331/605/15 329/606/15 +f 335/607/18 332/608/18 331/609/18 +f 334/610/16 329/611/16 330/612/16 +f 336/613/17 330/614/17 332/615/17 +f 333/604/13 336/613/13 335/607/13 +f 340/616/14 254/617/14 241/618/14 +f 339/619/14 364/620/14 340/621/14 +f 338/622/14 363/623/14 339/624/14 +f 337/625/14 362/626/14 338/627/14 +f 345/471/13 255/628/13 247/629/13 +f 346/630/13 365/631/13 345/632/13 +f 347/633/13 366/634/13 346/635/13 +f 348/636/13 367/637/13 347/638/13 +f 364/639/17 256/640/17 254/617/17 +f 363/641/17 368/642/17 364/620/17 +f 362/643/17 367/644/17 363/623/17 +f 361/645/17 366/646/17 362/626/17 +f 344/647/14 250/648/14 244/649/14 +f 343/650/14 356/651/14 344/652/14 +f 342/653/14 355/654/14 343/655/14 +f 341/656/14 354/657/14 342/658/14 +f 349/468/13 251/659/13 246/660/13 +f 350/661/13 357/662/13 349/663/13 +f 351/664/13 358/665/13 350/666/13 +f 352/667/13 359/668/13 351/669/13 +f 356/670/15 252/671/15 250/672/15 +f 355/673/15 360/674/15 356/675/15 +f 354/676/15 359/677/15 355/678/15 +f 353/679/15 358/680/15 354/681/15 +f 245/488/15 340/682/15 241/683/15 +f 348/636/15 339/684/15 340/685/15 +f 347/633/15 338/686/15 339/687/15 +f 346/630/15 337/688/15 338/689/15 +f 248/478/17 344/647/17 244/649/17 +f 352/667/17 343/650/17 344/652/17 +f 351/664/17 342/653/17 343/655/17 +f 350/661/17 341/656/17 342/658/17 +f 370/690/13 372/691/13 371/692/13 +f 375/693/14 374/694/14 373/695/14 +f 379/696/14 378/697/14 377/698/14 +f 383/699/14 382/700/14 381/701/14 +f 387/702/14 386/703/14 385/704/14 +f 391/705/14 390/706/14 389/707/14 +f 395/708/13 393/709/13 394/710/13 +f 399/711/13 397/712/13 398/713/13 +f 403/714/13 401/715/13 402/716/13 +f 407/717/13 405/718/13 406/719/13 +f 385/720/15 401/721/15 387/722/15 +f 378/723/16 394/724/16 377/725/16 +f 386/726/16 402/727/16 385/728/16 +f 380/729/17 395/730/17 378/697/17 +f 388/731/17 403/732/17 386/703/17 +f 379/696/18 396/733/18 380/734/18 +f 373/735/15 372/736/15 375/737/15 +f 387/702/18 404/738/18 388/739/18 +f 381/740/15 397/741/15 383/742/15 +f 374/743/16 371/744/16 373/745/16 +f 389/746/15 405/747/15 391/748/15 +f 382/749/16 398/750/16 381/751/16 +f 376/752/17 370/753/17 374/694/17 +f 390/754/16 406/755/16 389/756/16 +f 384/757/17 399/758/17 382/700/17 +f 375/693/18 369/759/18 376/760/18 +f 392/761/17 407/762/17 390/706/17 +f 383/699/18 400/763/18 384/764/18 +f 377/765/15 393/766/15 379/767/15 +f 391/705/18 408/768/18 392/769/18 +f 413/770/15 411/771/15 409/772/15 +f 415/773/18 412/774/18 411/775/18 +f 414/776/16 409/777/16 410/778/16 +f 416/779/17 410/780/17 412/781/17 +f 413/770/13 416/779/13 415/773/13 +f 421/782/15 419/783/15 417/784/15 +f 423/785/18 420/786/18 419/787/18 +f 422/788/16 417/789/16 418/790/16 +f 424/791/17 418/792/17 420/793/17 +f 421/782/13 424/791/13 423/785/13 +f 429/794/15 427/795/15 425/796/15 +f 431/797/18 428/798/18 427/799/18 +f 430/800/16 425/801/16 426/802/16 +f 432/803/17 426/804/17 428/805/17 +f 429/794/13 432/803/13 431/797/13 +f 437/806/15 435/807/15 433/808/15 +f 439/809/18 436/810/18 435/811/18 +f 438/812/16 433/813/16 434/814/16 +f 440/815/17 434/816/17 436/817/17 +f 437/806/13 440/815/13 439/809/13 +f 445/818/15 443/819/15 441/820/15 +f 447/821/18 444/822/18 443/823/18 +f 446/824/16 441/825/16 442/826/16 +f 448/827/17 442/828/17 444/829/17 +f 445/818/13 448/827/13 447/821/13 +f 453/830/15 451/831/15 449/832/15 +f 455/833/18 452/834/18 451/835/18 +f 454/836/16 449/837/16 450/838/16 +f 456/839/17 450/840/17 452/841/17 +f 453/830/13 456/839/13 455/833/13 +f 461/842/15 459/843/15 457/844/15 +f 463/845/18 460/846/18 459/847/18 +f 462/848/16 457/849/16 458/850/16 +f 464/851/17 458/852/17 460/853/17 +f 461/842/13 464/851/13 463/845/13 +f 469/854/15 467/855/15 465/856/15 +f 471/857/18 468/858/18 467/859/18 +f 470/860/16 465/861/16 466/862/16 +f 472/863/17 466/864/17 468/865/17 +f 469/854/13 472/863/13 471/857/13 +f 477/866/15 475/867/15 473/868/15 +f 479/869/18 476/870/18 475/871/18 +f 478/872/16 473/873/16 474/874/16 +f 480/875/17 474/876/17 476/877/17 +f 477/866/13 480/875/13 479/869/13 +f 485/878/15 483/879/15 481/880/15 +f 487/881/18 484/882/18 483/883/18 +f 486/884/16 481/885/16 482/886/16 +f 488/887/17 482/888/17 484/889/17 +f 485/878/13 488/887/13 487/881/13 +f 491/890/14 516/182/14 492/891/14 +f 490/892/14 515/893/14 491/894/14 +f 489/895/14 514/896/14 490/897/14 +f 498/898/13 517/899/13 497/900/13 +f 499/901/13 518/902/13 498/903/13 +f 500/904/13 519/905/13 499/906/13 +f 515/907/17 520/477/17 516/182/17 +f 514/908/17 519/909/17 515/893/17 +f 513/910/17 518/911/17 514/896/17 +f 495/912/14 508/913/14 496/914/14 +f 494/915/14 507/916/14 495/917/14 +f 493/918/14 506/919/14 494/920/14 +f 502/921/13 509/922/13 501/923/13 +f 503/924/13 510/925/13 502/926/13 +f 504/927/13 511/928/13 503/929/13 +f 507/930/15 512/931/15 508/932/15 +f 506/933/15 511/934/15 507/935/15 +f 505/936/15 510/937/15 506/938/15 +f 500/904/15 491/939/15 492/191/15 +f 499/901/15 490/940/15 491/941/15 +f 498/898/15 489/942/15 490/943/15 +f 504/927/17 495/912/17 496/914/17 +f 503/924/17 494/915/17 495/917/17 +f 502/921/17 493/918/17 494/920/17 +f 493/918/17 80/177/17 76/347/17 +f 80/177/13 509/922/13 84/369/13 +f 509/922/15 82/370/15 84/369/15 +f 505/944/14 76/347/14 82/346/14 +f 517/899/17 254/617/17 256/640/17 +f 245/488/13 517/899/13 256/640/13 +f 489/942/15 245/488/15 241/683/15 +f 513/910/14 241/618/14 254/617/14 +f 246/660/17 496/914/17 242/469/17 +f 512/931/13 246/660/13 251/659/13 +f 249/474/15 512/931/15 251/659/15 +f 242/469/14 508/913/14 249/945/14 +f 568/946/19 571/947/19 572/948/19 +f 539/949/19 605/950/19 540/951/19 +f 574/952/19 605/953/19 606/954/19 +f 548/955/20 539/956/20 540/957/20 +f 536/958/14 548/955/14 540/957/14 +f 531/959/14 530/960/14 532/961/14 +f 537/962/14 568/963/14 565/964/14 +f 528/965/21 532/966/21 530/967/21 +f 568/963/19 534/968/19 567/969/19 +f 524/970/22 615/971/22 523/972/22 +f 571/947/13 566/973/13 575/974/13 +f 567/969/13 538/975/13 566/976/13 +f 522/977/21 616/978/21 524/979/21 +f 549/980/23 542/981/23 541/982/23 +f 554/983/24 545/984/24 546/985/24 +f 534/986/13 546/987/13 538/988/13 +f 543/989/25 536/990/25 535/991/25 +f 539/956/13 543/989/13 535/991/13 +f 545/992/14 533/993/14 537/994/14 +f 546/987/25 537/995/25 538/988/25 +f 541/996/20 534/986/20 533/993/20 +f 561/997/14 549/998/14 553/999/14 +f 563/1000/13 551/1001/13 555/1002/13 +f 544/1003/14 556/1004/14 548/1005/14 +f 556/1004/23 547/1006/23 548/1005/23 +f 542/981/13 554/983/13 546/985/13 +f 551/1007/24 544/1008/24 543/1009/24 +f 555/1010/13 543/1009/13 547/1006/13 +f 553/1011/14 541/982/14 545/1012/14 +f 562/1013/26 553/1014/26 554/1015/26 +f 557/1016/27 550/1017/27 549/998/27 +f 552/1018/14 564/1019/14 556/1020/14 +f 564/1019/27 555/1002/27 556/1020/27 +f 550/1017/13 562/1013/13 554/1015/13 +f 559/1021/26 552/1022/26 551/1001/26 +f 535/1023/13 606/1024/13 539/949/13 +f 584/1025/25 575/1026/25 576/1027/25 +f 572/1028/14 584/1029/14 576/1030/14 +f 566/973/28 576/1031/28 575/974/28 +f 566/976/28 537/1032/28 565/1033/28 +f 526/1034/29 529/1035/29 531/1036/29 +f 565/1037/14 572/948/14 576/1038/14 +f 528/1039/13 526/1040/13 527/1041/13 +f 521/1042/30 614/1043/30 522/1044/30 +f 525/1045/30 530/960/30 529/1046/30 +f 527/1047/22 531/1048/22 532/1049/22 +f 585/1050/24 578/1051/24 577/1052/24 +f 590/1053/23 581/1054/23 582/1055/23 +f 570/1056/13 582/1057/13 574/1058/13 +f 579/1059/20 572/1028/20 571/1060/20 +f 583/1061/13 571/1060/13 575/1026/13 +f 581/1062/14 569/1063/14 573/1064/14 +f 582/1057/20 573/1064/20 574/1058/20 +f 577/1065/25 570/1056/25 569/1066/25 +f 589/1067/14 593/1068/14 585/1069/14 +f 599/1070/13 587/1071/13 591/1072/13 +f 580/1073/14 592/1074/14 584/1075/14 +f 592/1076/24 583/1077/24 584/1078/24 +f 578/1051/13 590/1053/13 582/1055/13 +f 587/1079/23 580/1073/23 579/1080/23 +f 591/1081/13 579/1080/13 583/1077/13 +f 589/1082/14 577/1083/14 581/1054/14 +f 598/1084/27 589/1067/27 590/1085/27 +f 593/1086/26 586/1087/26 585/1088/26 +f 588/1089/14 600/1090/14 592/1091/14 +f 600/1092/26 591/1072/26 592/1093/26 +f 594/1094/13 590/1085/13 586/1087/13 +f 595/1095/27 588/1089/27 587/1071/27 +f 607/1096/28 570/1097/28 608/1098/28 +f 602/1099/13 603/1100/13 604/1101/13 +f 608/1098/13 574/952/13 606/954/13 +f 611/1102/29 601/1103/29 609/1104/29 +f 612/1105/22 603/1100/22 611/1106/22 +f 609/1107/30 602/1099/30 610/1108/30 +f 536/1109/14 605/950/14 607/1110/14 +f 610/1111/21 604/1101/21 612/1112/21 +f 607/1113/14 573/1114/14 569/1115/14 +f 614/1043/13 615/971/13 616/978/13 +f 523/1116/29 613/1117/29 521/1118/29 +f 620/1119/13 618/1120/13 619/1121/13 +f 622/1122/14 623/1123/14 621/1124/14 +f 626/1125/14 627/1126/14 625/1127/14 +f 630/1128/14 631/1129/14 629/1130/14 +f 634/1131/14 635/1132/14 633/1133/14 +f 637/1134/13 639/1135/13 638/1136/13 +f 641/1137/13 643/1138/13 642/1139/13 +f 645/1140/13 647/1141/13 646/1142/13 +f 638/1143/16 626/1144/16 625/1145/16 +f 639/1146/15 628/1147/15 626/1148/15 +f 640/1149/18 627/1126/18 628/1150/18 +f 620/1151/17 621/1152/17 623/1153/17 +f 641/1154/17 629/1155/17 631/1156/17 +f 619/1157/16 622/1158/16 621/1159/16 +f 645/1160/17 633/1161/17 635/1162/17 +f 642/1163/16 630/1164/16 629/1165/16 +f 618/1166/15 624/1167/15 622/1168/15 +f 646/1169/16 634/1170/16 633/1171/16 +f 643/1172/15 632/1173/15 630/1174/15 +f 617/1175/18 623/1123/18 624/1176/18 +f 647/1177/15 636/1178/15 634/1179/15 +f 644/1180/18 631/1129/18 632/1181/18 +f 637/1182/17 625/1183/17 627/1184/17 +f 648/1185/18 635/1132/18 636/1186/18 +f 649/1187/17 729/1188/17 721/1189/17 +f 744/1190/13 652/1191/13 736/1192/13 +f 654/1193/18 650/1194/18 652/1195/18 +f 749/1196/15 655/1197/15 745/1198/15 +f 745/1198/14 649/1199/14 721/1200/14 +f 655/1201/18 651/1202/18 649/1203/18 +f 659/1204/17 661/1205/17 657/1206/17 +f 660/1207/18 663/1208/18 659/1209/18 +f 657/1210/16 662/1211/16 658/1212/16 +f 658/1213/15 664/1214/15 660/1215/15 +f 664/1214/13 661/1205/13 663/1208/13 +f 667/1216/17 669/1217/17 665/1218/17 +f 668/1219/18 671/1220/18 667/1221/18 +f 665/1222/16 670/1223/16 666/1224/16 +f 666/1225/15 672/1226/15 668/1227/15 +f 672/1226/13 669/1217/13 671/1220/13 +f 675/1228/17 677/1229/17 673/1230/17 +f 676/1231/18 679/1232/18 675/1233/18 +f 673/1234/16 678/1235/16 674/1236/16 +f 674/1237/15 680/1238/15 676/1239/15 +f 680/1238/13 677/1229/13 679/1232/13 +f 683/1240/17 685/1241/17 681/1242/17 +f 684/1243/18 687/1244/18 683/1245/18 +f 681/1246/16 686/1247/16 682/1248/16 +f 682/1249/15 688/1250/15 684/1251/15 +f 688/1250/13 685/1241/13 687/1244/13 +f 691/1252/17 693/1253/17 689/1254/17 +f 692/1255/18 695/1256/18 691/1257/18 +f 689/1258/16 694/1259/16 690/1260/16 +f 690/1261/15 696/1262/15 692/1263/15 +f 696/1262/13 693/1253/13 695/1256/13 +f 699/1264/17 701/1265/17 697/1266/17 +f 700/1267/18 703/1268/18 699/1269/18 +f 697/1270/16 702/1271/16 698/1272/16 +f 698/1273/15 704/1274/15 700/1275/15 +f 704/1274/13 701/1265/13 703/1268/13 +f 707/1276/17 709/1277/17 705/1278/17 +f 708/1279/18 711/1280/18 707/1281/18 +f 705/1282/16 710/1283/16 706/1284/16 +f 706/1285/15 712/1286/15 708/1287/15 +f 712/1286/13 709/1277/13 711/1280/13 +f 715/1288/17 717/1289/17 713/1290/17 +f 716/1291/18 719/1292/18 715/1293/18 +f 713/1294/16 718/1295/16 714/1296/16 +f 714/1297/15 720/1298/15 716/1299/15 +f 720/1298/13 717/1289/13 719/1292/13 +f 748/1300/14 723/1301/14 724/1302/14 +f 747/1303/14 722/1304/14 723/1305/14 +f 746/1306/14 721/1307/14 722/1308/14 +f 656/1309/13 729/1188/13 651/1310/13 +f 749/1311/13 730/1312/13 729/1313/13 +f 750/1314/13 731/1315/13 730/1316/13 +f 751/1317/13 732/1318/13 731/1319/13 +f 752/1320/15 747/1321/15 748/1300/15 +f 751/1322/15 746/1323/15 747/1303/15 +f 750/1324/15 745/1325/15 746/1306/15 +f 653/1326/14 728/1327/14 650/1328/14 +f 740/1329/14 727/1330/14 728/1331/14 +f 739/1332/14 726/1333/14 727/1334/14 +f 738/1335/14 725/1336/14 726/1337/14 +f 741/1338/13 734/1339/13 733/1340/13 +f 742/1341/13 735/1342/13 734/1343/13 +f 743/1344/13 736/1345/13 735/1346/13 +f 654/1347/17 740/1348/17 653/1349/17 +f 744/1350/17 739/1351/17 740/1352/17 +f 743/1353/17 738/1354/17 739/1355/17 +f 742/1356/17 737/1357/17 738/1358/17 +f 723/1359/17 732/1318/17 724/1360/17 +f 722/1361/17 731/1315/17 723/1362/17 +f 721/1363/17 730/1312/17 722/1364/17 +f 728/1327/15 652/1191/15 650/1328/15 +f 727/1330/15 736/1345/15 728/1331/15 +f 726/1333/15 735/1342/15 727/1334/15 +f 725/1336/15 734/1339/15 726/1337/15 +f 600/1365/17 741/1366/17 599/1367/17 +f 741/1366/13 595/1368/13 599/1367/13 +f 595/1368/15 725/1369/15 596/1370/15 +f 596/1370/14 737/1371/14 600/1372/14 +f 724/1373/17 594/1374/17 593/1375/17 +f 598/1376/13 732/1377/13 752/1378/13 +f 752/1378/15 597/1379/15 598/1376/15 +f 748/1380/14 593/1381/14 597/1379/14 +f 536/1382/28 608/1383/28 535/1023/28 +f 763/1384/14 762/1385/14 764/1386/14 +f 760/1387/25 764/1388/25 762/1389/25 +f 756/1390/31 775/1391/31 755/1392/31 +f 754/1393/25 776/1394/25 756/1395/25 +f 758/1396/20 761/1397/20 763/1398/20 +f 760/1399/13 758/1400/13 759/1401/13 +f 753/1402/32 774/1403/32 754/1404/32 +f 757/1405/32 762/1385/32 761/1406/32 +f 759/1407/31 763/1408/31 764/1409/31 +f 766/1410/13 767/1411/13 768/1412/13 +f 771/1413/20 765/1414/20 769/1415/20 +f 772/1416/31 767/1411/31 771/1417/31 +f 769/1418/32 766/1410/32 770/1419/32 +f 770/1420/25 768/1412/25 772/1421/25 +f 774/1403/13 775/1391/13 776/1394/13 +f 755/1422/20 773/1423/20 753/1424/20 +f 788/1425/14 785/1426/14 786/1427/14 +f 784/1428/24 788/1429/24 786/1430/24 +f 780/1431/33 799/1432/33 779/1433/33 +f 778/1434/24 800/1435/24 780/1436/24 +f 782/1437/23 785/1438/23 787/1439/23 +f 783/1440/13 781/1441/13 782/1442/13 +f 777/1443/34 798/1444/34 778/1445/34 +f 781/1441/34 786/1427/34 785/1426/34 +f 783/1446/33 787/1447/33 788/1448/33 +f 790/1449/13 791/1450/13 792/1451/13 +f 795/1452/23 789/1453/23 793/1454/23 +f 796/1455/33 791/1450/33 795/1456/33 +f 793/1457/34 790/1449/34 794/1458/34 +f 794/1459/24 792/1451/24 796/1460/24 +f 798/1444/13 799/1432/13 800/1435/13 +f 779/1461/23 797/1462/23 777/1463/23 +f 811/1464/14 810/1465/14 812/1466/14 +f 808/1467/26 812/1468/26 810/1469/26 +f 804/1470/35 823/1471/35 803/1472/35 +f 802/1473/26 824/1474/26 804/1475/26 +f 806/1476/27 809/1477/27 811/1478/27 +f 808/1479/13 806/1480/13 807/1481/13 +f 801/1482/36 822/1483/36 802/1484/36 +f 805/1485/36 810/1465/36 809/1486/36 +f 807/1487/35 811/1488/35 812/1489/35 +f 813/1490/13 816/1491/13 814/1492/13 +f 819/1493/27 813/1490/27 817/1494/27 +f 820/1495/35 815/1496/35 819/1497/35 +f 817/1498/36 814/1492/36 818/1499/36 +f 818/1500/26 816/1491/26 820/1501/26 +f 821/1502/13 824/1474/13 822/1483/13 +f 803/1503/27 821/1502/27 801/1504/27 +f 836/1505/14 833/1506/14 834/1507/14 +f 832/1508/21 836/1509/21 834/1510/21 +f 828/1511/22 847/1512/22 827/1513/22 +f 826/1514/21 848/1515/21 828/1516/21 +f 830/1517/29 833/1518/29 835/1519/29 +f 831/1520/13 829/1521/13 830/1522/13 +f 825/1523/30 846/1524/30 826/1525/30 +f 829/1521/30 834/1507/30 833/1506/30 +f 831/1526/22 835/1527/22 836/1528/22 +f 838/1529/13 839/1530/13 840/1531/13 +f 843/1532/29 837/1533/29 841/1534/29 +f 844/1535/22 839/1530/22 843/1536/22 +f 841/1537/30 838/1529/30 842/1538/30 +f 842/1539/21 840/1531/21 844/1540/21 +f 845/1541/13 848/1515/13 846/1524/13 +f 827/1542/29 845/1541/29 825/1543/29 +f 850/1544/14 851/1545/14 849/1546/14 +f 853/1547/13 855/1548/13 854/1549/13 +f 853/1550/17 849/1551/17 851/1552/17 +f 854/1553/16 850/1554/16 849/1555/16 +f 855/1556/15 852/1557/15 850/1558/15 +f 856/1559/18 851/1545/18 852/1560/18 +f 859/1561/17 861/1562/17 857/1563/17 +f 860/1564/18 863/1565/18 859/1566/18 +f 857/1567/16 862/1568/16 858/1569/16 +f 858/1570/15 864/1571/15 860/1572/15 +f 864/1571/13 861/1562/13 863/1565/13 +f 867/1573/17 869/1574/17 865/1575/17 +f 868/1576/18 871/1577/18 867/1578/18 +f 865/1579/16 870/1580/16 866/1581/16 +f 866/1582/15 872/1583/15 868/1584/15 +f 872/1583/13 869/1574/13 871/1577/13 +f 34/85/13 33/154/13 36/86/13 +f 39/88/14 40/155/14 38/89/14 +f 43/91/14 44/129/14 42/92/14 +f 47/94/14 48/159/14 46/95/14 +f 51/97/14 52/134/14 50/98/14 +f 55/100/14 56/164/14 54/101/14 +f 59/103/13 60/128/13 57/104/13 +f 63/106/13 64/158/13 61/107/13 +f 67/109/13 68/133/13 65/110/13 +f 71/112/13 72/163/13 69/113/13 +f 49/115/15 66/1585/15 65/116/15 +f 42/118/16 59/1586/16 58/119/16 +f 50/121/16 67/1587/16 66/122/16 +f 44/124/17 60/1588/17 59/125/17 +f 52/126/17 68/1589/17 67/127/17 +f 43/91/18 57/104/18 60/128/18 +f 37/130/15 35/1590/15 36/131/15 +f 51/97/18 65/110/18 68/133/18 +f 45/135/15 62/1591/15 61/136/15 +f 38/138/16 34/1592/16 35/139/16 +f 53/141/15 70/1593/15 69/142/15 +f 46/144/16 63/1594/16 62/145/16 +f 40/147/17 33/1595/17 34/148/17 +f 54/149/16 71/1596/16 70/150/16 +f 48/152/17 64/1597/17 63/153/17 +f 39/88/18 36/86/18 33/154/18 +f 56/156/17 72/1598/17 71/157/17 +f 47/94/18 61/107/18 64/158/18 +f 41/160/15 58/1599/15 57/161/15 +f 55/100/18 69/113/18 72/163/18 +f 181/165/17 78/358/17 74/166/17 +f 177/168/15 79/190/15 75/169/15 +f 81/171/15 83/357/15 189/172/15 +f 78/174/16 83/1600/16 81/175/16 +f 80/177/13 84/369/13 192/178/13 +f 74/166/14 81/1601/14 185/180/14 +f 75/181/14 492/891/14 516/182/14 +f 85/183/17 87/327/17 197/184/17 +f 77/186/13 88/338/13 200/187/13 +f 75/181/14 85/183/14 193/185/14 +f 79/190/15 500/904/15 492/191/15 +f 73/192/16 86/1602/16 88/193/16 +f 93/195/15 95/198/15 91/196/15 +f 95/198/18 96/204/18 92/199/18 +f 94/201/16 93/195/16 89/202/16 +f 96/204/17 94/201/17 90/205/17 +f 93/195/13 94/201/13 96/204/13 +f 101/207/15 103/210/15 99/208/15 +f 103/210/18 104/216/18 100/211/18 +f 102/213/16 101/207/16 97/214/16 +f 104/216/17 102/213/17 98/217/17 +f 101/207/13 102/213/13 104/216/13 +f 109/219/15 111/222/15 107/220/15 +f 111/222/18 112/228/18 108/223/18 +f 110/225/16 109/219/16 105/226/16 +f 112/228/17 110/225/17 106/229/17 +f 109/219/13 110/225/13 112/228/13 +f 117/231/15 119/234/15 115/232/15 +f 119/234/18 120/240/18 116/235/18 +f 118/237/16 117/231/16 113/238/16 +f 120/240/17 118/237/17 114/241/17 +f 117/231/13 118/237/13 120/240/13 +f 125/243/15 127/246/15 123/244/15 +f 127/246/18 128/252/18 124/247/18 +f 126/249/16 125/243/16 121/250/16 +f 128/252/17 126/249/17 122/253/17 +f 125/243/13 126/249/13 128/252/13 +f 133/255/15 135/258/15 131/256/15 +f 135/258/18 136/264/18 132/259/18 +f 134/261/16 133/255/16 129/262/16 +f 136/264/17 134/261/17 130/265/17 +f 133/255/13 134/261/13 136/264/13 +f 141/267/15 143/270/15 139/268/15 +f 143/270/18 144/276/18 140/271/18 +f 142/273/16 141/267/16 137/274/16 +f 144/276/17 142/273/17 138/277/17 +f 141/267/13 142/273/13 144/276/13 +f 149/279/15 151/282/15 147/280/15 +f 151/282/18 152/288/18 148/283/18 +f 150/285/16 149/279/16 145/286/16 +f 152/288/17 150/285/17 146/289/17 +f 149/279/13 150/285/13 152/288/13 +f 157/291/15 159/294/15 155/292/15 +f 159/294/18 160/300/18 156/295/18 +f 158/297/16 157/291/16 153/298/16 +f 160/300/17 158/297/17 154/301/17 +f 157/291/13 158/297/13 160/300/13 +f 165/303/15 167/306/15 163/304/15 +f 167/306/18 168/312/18 164/307/18 +f 166/309/16 165/303/16 161/310/16 +f 168/312/17 166/309/17 162/313/17 +f 165/303/13 166/309/13 168/312/13 +f 172/315/14 196/337/14 86/316/14 +f 171/318/14 195/339/14 196/319/14 +f 170/321/14 194/341/14 195/322/14 +f 169/324/14 193/343/14 194/325/14 +f 177/168/13 197/184/13 87/327/13 +f 178/328/13 198/344/13 197/329/13 +f 179/331/13 199/342/13 198/332/13 +f 180/334/13 200/340/13 199/335/13 +f 196/337/17 200/187/17 88/338/17 +f 195/339/17 199/335/17 200/340/17 +f 194/341/17 198/332/17 199/342/17 +f 193/343/17 197/329/17 198/344/17 +f 176/345/14 188/1603/14 82/346/14 +f 175/348/14 187/1604/14 188/349/14 +f 174/351/14 186/1605/14 187/352/14 +f 173/354/14 185/1606/14 186/355/14 +f 181/165/13 189/172/13 83/357/13 +f 182/359/13 190/378/13 189/360/13 +f 183/362/13 191/375/13 190/363/13 +f 184/365/13 192/372/13 191/366/13 +f 188/368/15 192/178/15 84/369/15 +f 187/371/15 191/366/15 192/372/15 +f 186/374/15 190/363/15 191/375/15 +f 185/377/15 189/360/15 190/378/15 +f 77/186/15 180/188/15 172/380/15 +f 180/334/15 179/336/15 171/382/15 +f 179/331/15 178/333/15 170/384/15 +f 178/328/15 177/330/15 169/386/15 +f 80/177/17 184/179/17 176/345/17 +f 184/365/17 183/367/17 175/348/17 +f 183/362/17 182/364/17 174/351/17 +f 182/359/17 181/361/17 173/354/17 +f 202/388/13 201/457/13 204/389/13 +f 207/391/14 208/458/14 206/392/14 +f 211/394/14 212/432/14 210/395/14 +f 215/397/14 216/462/14 214/398/14 +f 219/400/14 220/437/14 218/401/14 +f 223/403/14 224/467/14 222/404/14 +f 227/406/13 228/431/13 225/407/13 +f 231/409/13 232/461/13 229/410/13 +f 235/412/13 236/436/13 233/413/13 +f 239/415/13 240/466/13 237/416/13 +f 217/418/15 234/1607/15 233/419/15 +f 210/421/16 227/1608/16 226/422/16 +f 218/424/16 235/1609/16 234/425/16 +f 212/427/17 228/1610/17 227/428/17 +f 220/429/17 236/1611/17 235/430/17 +f 211/394/18 225/407/18 228/431/18 +f 205/433/15 203/1612/15 204/434/15 +f 219/400/18 233/413/18 236/436/18 +f 213/438/15 230/1613/15 229/439/15 +f 206/441/16 202/1614/16 203/442/16 +f 221/444/15 238/1615/15 237/445/15 +f 214/447/16 231/1616/16 230/448/16 +f 208/450/17 201/1617/17 202/451/17 +f 222/452/16 239/1618/16 238/453/16 +f 216/455/17 232/1619/17 231/456/17 +f 207/391/18 204/389/18 201/457/18 +f 224/459/17 240/1620/17 239/460/17 +f 215/397/18 229/410/18 232/461/18 +f 209/463/15 226/1621/15 225/464/15 +f 223/403/18 237/416/18 240/466/18 +f 349/468/17 246/660/17 242/469/17 +f 345/471/15 247/629/15 243/472/15 +f 249/474/15 251/659/15 357/475/15 +f 520/477/13 500/904/13 79/190/13 +f 248/478/13 252/671/13 360/479/13 +f 242/469/14 249/945/14 353/481/14 +f 244/482/18 250/1622/18 252/483/18 +f 253/485/17 255/628/17 365/486/17 +f 245/488/13 256/640/13 368/489/13 +f 243/491/14 253/485/14 361/487/14 +f 247/493/18 255/1623/18 253/494/18 +f 85/183/17 516/182/17 520/477/17 +f 261/496/15 263/499/15 259/497/15 +f 263/499/18 264/505/18 260/500/18 +f 262/502/16 261/496/16 257/503/16 +f 264/505/17 262/502/17 258/506/17 +f 261/496/13 262/502/13 264/505/13 +f 269/508/15 271/511/15 267/509/15 +f 271/511/18 272/517/18 268/512/18 +f 270/514/16 269/508/16 265/515/16 +f 272/517/17 270/514/17 266/518/17 +f 269/508/13 270/514/13 272/517/13 +f 277/520/15 279/523/15 275/521/15 +f 279/523/18 280/529/18 276/524/18 +f 278/526/16 277/520/16 273/527/16 +f 280/529/17 278/526/17 274/530/17 +f 277/520/13 278/526/13 280/529/13 +f 285/532/15 287/535/15 283/533/15 +f 287/535/18 288/541/18 284/536/18 +f 286/538/16 285/532/16 281/539/16 +f 288/541/17 286/538/17 282/542/17 +f 285/532/13 286/538/13 288/541/13 +f 293/544/15 295/547/15 291/545/15 +f 295/547/18 296/553/18 292/548/18 +f 294/550/16 293/544/16 289/551/16 +f 296/553/17 294/550/17 290/554/17 +f 293/544/13 294/550/13 296/553/13 +f 301/556/15 303/559/15 299/557/15 +f 303/559/18 304/565/18 300/560/18 +f 302/562/16 301/556/16 297/563/16 +f 304/565/17 302/562/17 298/566/17 +f 301/556/13 302/562/13 304/565/13 +f 309/568/15 311/571/15 307/569/15 +f 311/571/18 312/577/18 308/572/18 +f 310/574/16 309/568/16 305/575/16 +f 312/577/17 310/574/17 306/578/17 +f 309/568/13 310/574/13 312/577/13 +f 317/580/15 319/583/15 315/581/15 +f 319/583/18 320/589/18 316/584/18 +f 318/586/16 317/580/16 313/587/16 +f 320/589/17 318/586/17 314/590/17 +f 317/580/13 318/586/13 320/589/13 +f 325/592/15 327/595/15 323/593/15 +f 327/595/18 328/601/18 324/596/18 +f 326/598/16 325/592/16 321/599/16 +f 328/601/17 326/598/17 322/602/17 +f 325/592/13 326/598/13 328/601/13 +f 333/604/15 335/607/15 331/605/15 +f 335/607/18 336/613/18 332/608/18 +f 334/610/16 333/604/16 329/611/16 +f 336/613/17 334/610/17 330/614/17 +f 333/604/13 334/610/13 336/613/13 +f 340/616/14 364/639/14 254/617/14 +f 339/619/14 363/641/14 364/620/14 +f 338/622/14 362/643/14 363/623/14 +f 337/625/14 361/645/14 362/626/14 +f 345/471/13 365/486/13 255/628/13 +f 346/630/13 366/646/13 365/631/13 +f 347/633/13 367/644/13 366/634/13 +f 348/636/13 368/642/13 367/637/13 +f 364/639/17 368/489/17 256/640/17 +f 363/641/17 367/637/17 368/642/17 +f 362/643/17 366/634/17 367/644/17 +f 361/645/17 365/631/17 366/646/17 +f 344/647/14 356/1624/14 250/648/14 +f 343/650/14 355/1625/14 356/651/14 +f 342/653/14 354/1626/14 355/654/14 +f 341/656/14 353/1627/14 354/657/14 +f 349/468/13 357/475/13 251/659/13 +f 350/661/13 358/680/13 357/662/13 +f 351/664/13 359/677/13 358/665/13 +f 352/667/13 360/674/13 359/668/13 +f 356/670/15 360/479/15 252/671/15 +f 355/673/15 359/668/15 360/674/15 +f 354/676/15 358/665/15 359/677/15 +f 353/679/15 357/662/15 358/680/15 +f 245/488/15 348/490/15 340/682/15 +f 348/636/15 347/638/15 339/684/15 +f 347/633/15 346/635/15 338/686/15 +f 346/630/15 345/632/15 337/688/15 +f 248/478/17 352/480/17 344/647/17 +f 352/667/17 351/669/17 343/650/17 +f 351/664/17 350/666/17 342/653/17 +f 350/661/17 349/663/17 341/656/17 +f 370/690/13 369/759/13 372/691/13 +f 375/693/14 376/760/14 374/694/14 +f 379/696/14 380/734/14 378/697/14 +f 383/699/14 384/764/14 382/700/14 +f 387/702/14 388/739/14 386/703/14 +f 391/705/14 392/769/14 390/706/14 +f 395/708/13 396/733/13 393/709/13 +f 399/711/13 400/763/13 397/712/13 +f 403/714/13 404/738/13 401/715/13 +f 407/717/13 408/768/13 405/718/13 +f 385/720/15 402/1628/15 401/721/15 +f 378/723/16 395/1629/16 394/724/16 +f 386/726/16 403/1630/16 402/727/16 +f 380/729/17 396/1631/17 395/730/17 +f 388/731/17 404/1632/17 403/732/17 +f 379/696/18 393/709/18 396/733/18 +f 373/735/15 371/1633/15 372/736/15 +f 387/702/18 401/715/18 404/738/18 +f 381/740/15 398/1634/15 397/741/15 +f 374/743/16 370/1635/16 371/744/16 +f 389/746/15 406/1636/15 405/747/15 +f 382/749/16 399/1637/16 398/750/16 +f 376/752/17 369/1638/17 370/753/17 +f 390/754/16 407/1639/16 406/755/16 +f 384/757/17 400/1640/17 399/758/17 +f 375/693/18 372/691/18 369/759/18 +f 392/761/17 408/1641/17 407/762/17 +f 383/699/18 397/712/18 400/763/18 +f 377/765/15 394/1642/15 393/766/15 +f 391/705/18 405/718/18 408/768/18 +f 413/770/15 415/773/15 411/771/15 +f 415/773/18 416/779/18 412/774/18 +f 414/776/16 413/770/16 409/777/16 +f 416/779/17 414/776/17 410/780/17 +f 413/770/13 414/776/13 416/779/13 +f 421/782/15 423/785/15 419/783/15 +f 423/785/18 424/791/18 420/786/18 +f 422/788/16 421/782/16 417/789/16 +f 424/791/17 422/788/17 418/792/17 +f 421/782/13 422/788/13 424/791/13 +f 429/794/15 431/797/15 427/795/15 +f 431/797/18 432/803/18 428/798/18 +f 430/800/16 429/794/16 425/801/16 +f 432/803/17 430/800/17 426/804/17 +f 429/794/13 430/800/13 432/803/13 +f 437/806/15 439/809/15 435/807/15 +f 439/809/18 440/815/18 436/810/18 +f 438/812/16 437/806/16 433/813/16 +f 440/815/17 438/812/17 434/816/17 +f 437/806/13 438/812/13 440/815/13 +f 445/818/15 447/821/15 443/819/15 +f 447/821/18 448/827/18 444/822/18 +f 446/824/16 445/818/16 441/825/16 +f 448/827/17 446/824/17 442/828/17 +f 445/818/13 446/824/13 448/827/13 +f 453/830/15 455/833/15 451/831/15 +f 455/833/18 456/839/18 452/834/18 +f 454/836/16 453/830/16 449/837/16 +f 456/839/17 454/836/17 450/840/17 +f 453/830/13 454/836/13 456/839/13 +f 461/842/15 463/845/15 459/843/15 +f 463/845/18 464/851/18 460/846/18 +f 462/848/16 461/842/16 457/849/16 +f 464/851/17 462/848/17 458/852/17 +f 461/842/13 462/848/13 464/851/13 +f 469/854/15 471/857/15 467/855/15 +f 471/857/18 472/863/18 468/858/18 +f 470/860/16 469/854/16 465/861/16 +f 472/863/17 470/860/17 466/864/17 +f 469/854/13 470/860/13 472/863/13 +f 477/866/15 479/869/15 475/867/15 +f 479/869/18 480/875/18 476/870/18 +f 478/872/16 477/866/16 473/873/16 +f 480/875/17 478/872/17 474/876/17 +f 477/866/13 478/872/13 480/875/13 +f 485/878/15 487/881/15 483/879/15 +f 487/881/18 488/887/18 484/882/18 +f 486/884/16 485/878/16 481/885/16 +f 488/887/17 486/884/17 482/888/17 +f 485/878/13 486/884/13 488/887/13 +f 491/890/14 515/907/14 516/182/14 +f 490/892/14 514/908/14 515/893/14 +f 489/895/14 513/910/14 514/896/14 +f 498/898/13 518/911/13 517/899/13 +f 499/901/13 519/909/13 518/902/13 +f 500/904/13 520/477/13 519/905/13 +f 515/907/17 519/905/17 520/477/17 +f 514/908/17 518/902/17 519/909/17 +f 513/910/17 517/899/17 518/911/17 +f 495/912/14 507/1643/14 508/913/14 +f 494/915/14 506/1644/14 507/916/14 +f 493/918/14 505/944/14 506/919/14 +f 502/921/13 510/937/13 509/922/13 +f 503/924/13 511/934/13 510/925/13 +f 504/927/13 512/931/13 511/928/13 +f 507/930/15 511/928/15 512/931/15 +f 506/933/15 510/925/15 511/934/15 +f 505/936/15 509/922/15 510/937/15 +f 500/904/15 499/906/15 491/939/15 +f 499/901/15 498/903/15 490/940/15 +f 498/898/15 497/900/15 489/942/15 +f 504/927/17 503/929/17 495/912/17 +f 503/924/17 502/926/17 494/915/17 +f 502/921/17 501/923/17 493/918/17 +f 493/918/17 501/923/17 80/177/17 +f 80/177/13 501/923/13 509/922/13 +f 509/922/15 505/936/15 82/370/15 +f 505/944/14 493/918/14 76/347/14 +f 517/899/17 513/910/17 254/617/17 +f 245/488/13 497/900/13 517/899/13 +f 489/942/15 497/900/15 245/488/15 +f 513/910/14 489/895/14 241/618/14 +f 246/660/17 504/927/17 496/914/17 +f 512/931/13 504/927/13 246/660/13 +f 249/474/15 508/932/15 512/931/15 +f 242/469/14 496/914/14 508/913/14 +f 568/946/19 567/1645/19 571/947/19 +f 539/949/19 606/1024/19 605/950/19 +f 574/952/19 573/1114/19 605/953/19 +f 548/955/20 547/1646/20 539/956/20 +f 536/958/14 544/1647/14 548/955/14 +f 531/959/14 529/1046/14 530/960/14 +f 537/962/14 533/1648/14 568/963/14 +f 528/965/21 527/1649/21 532/966/21 +f 568/963/19 533/1648/19 534/968/19 +f 524/970/22 616/978/22 615/971/22 +f 571/947/13 567/1645/13 566/973/13 +f 567/969/13 534/968/13 538/975/13 +f 522/977/21 614/1043/21 616/978/21 +f 549/980/23 550/1650/23 542/981/23 +f 554/983/24 553/1651/24 545/984/24 +f 534/986/13 542/1652/13 546/987/13 +f 543/989/25 544/1653/25 536/990/25 +f 539/956/13 547/1646/13 543/989/13 +f 545/992/14 541/996/14 533/993/14 +f 546/987/25 545/1654/25 537/995/25 +f 541/996/20 542/1652/20 534/986/20 +f 561/997/14 557/1016/14 549/998/14 +f 563/1000/13 559/1021/13 551/1001/13 +f 544/1003/14 552/1655/14 556/1004/14 +f 556/1004/23 555/1010/23 547/1006/23 +f 542/981/13 550/1650/13 554/983/13 +f 551/1007/24 552/1656/24 544/1008/24 +f 555/1010/13 551/1007/13 543/1009/13 +f 553/1011/14 549/980/14 541/982/14 +f 562/1013/26 561/1657/26 553/1014/26 +f 557/1016/27 558/1658/27 550/1017/27 +f 552/1018/14 560/1659/14 564/1019/14 +f 564/1019/27 563/1000/27 555/1002/27 +f 550/1017/13 558/1658/13 562/1013/13 +f 559/1021/26 560/1660/26 552/1022/26 +f 535/1023/13 608/1383/13 606/1024/13 +f 584/1025/25 583/1061/25 575/1026/25 +f 572/1028/14 580/1661/14 584/1029/14 +f 566/973/28 565/1662/28 576/1031/28 +f 566/976/28 538/975/28 537/1032/28 +f 526/1034/29 525/1663/29 529/1035/29 +f 565/1037/14 568/946/14 572/948/14 +f 528/1039/13 525/1045/13 526/1040/13 +f 521/1042/30 613/1117/30 614/1043/30 +f 525/1045/30 528/1039/30 530/960/30 +f 527/1047/22 526/1664/22 531/1048/22 +f 585/1050/24 586/1665/24 578/1051/24 +f 590/1053/23 589/1082/23 581/1054/23 +f 570/1056/13 578/1666/13 582/1057/13 +f 579/1059/20 580/1661/20 572/1028/20 +f 583/1061/13 579/1059/13 571/1060/13 +f 581/1062/14 577/1667/14 569/1063/14 +f 582/1057/20 581/1062/20 573/1064/20 +f 577/1065/25 578/1666/25 570/1056/25 +f 589/1067/14 597/1668/14 593/1068/14 +f 599/1070/13 595/1095/13 587/1071/13 +f 580/1073/14 588/1669/14 592/1074/14 +f 592/1076/24 591/1081/24 583/1077/24 +f 578/1051/13 586/1665/13 590/1053/13 +f 587/1079/23 588/1669/23 580/1073/23 +f 591/1081/13 587/1079/13 579/1080/13 +f 589/1082/14 585/1670/14 577/1083/14 +f 598/1084/27 597/1668/27 589/1067/27 +f 593/1086/26 594/1094/26 586/1087/26 +f 588/1089/14 596/1671/14 600/1090/14 +f 600/1092/26 599/1070/26 591/1072/26 +f 594/1094/13 598/1084/13 590/1085/13 +f 595/1095/27 596/1671/27 588/1089/27 +f 607/1096/28 569/1672/28 570/1097/28 +f 602/1099/13 601/1103/13 603/1100/13 +f 608/1098/13 570/1097/13 574/952/13 +f 611/1102/29 603/1100/29 601/1103/29 +f 612/1105/22 604/1101/22 603/1100/22 +f 609/1107/30 601/1103/30 602/1099/30 +f 536/1109/14 540/951/14 605/950/14 +f 610/1111/21 602/1099/21 604/1101/21 +f 607/1113/14 605/953/14 573/1114/14 +f 614/1043/13 613/1117/13 615/971/13 +f 523/1116/29 615/971/29 613/1117/29 +f 620/1119/13 617/1175/13 618/1120/13 +f 622/1122/14 624/1176/14 623/1123/14 +f 626/1125/14 628/1150/14 627/1126/14 +f 630/1128/14 632/1181/14 631/1129/14 +f 634/1131/14 636/1186/14 635/1132/14 +f 637/1134/13 640/1149/13 639/1135/13 +f 641/1137/13 644/1180/13 643/1138/13 +f 645/1140/13 648/1185/13 647/1141/13 +f 638/1143/16 639/1673/16 626/1144/16 +f 639/1146/15 640/1674/15 628/1147/15 +f 640/1149/18 637/1134/18 627/1126/18 +f 620/1151/17 619/1675/17 621/1152/17 +f 641/1154/17 642/1676/17 629/1155/17 +f 619/1157/16 618/1677/16 622/1158/16 +f 645/1160/17 646/1678/17 633/1161/17 +f 642/1163/16 643/1679/16 630/1164/16 +f 618/1166/15 617/1680/15 624/1167/15 +f 646/1169/16 647/1681/16 634/1170/16 +f 643/1172/15 644/1682/15 632/1173/15 +f 617/1175/18 620/1119/18 623/1123/18 +f 647/1177/15 648/1683/15 636/1178/15 +f 644/1180/18 641/1137/18 631/1129/18 +f 637/1182/17 638/1684/17 625/1183/17 +f 648/1185/18 645/1140/18 635/1132/18 +f 649/1187/17 651/1310/17 729/1188/17 +f 744/1190/13 654/1347/13 652/1191/13 +f 654/1193/18 653/1685/18 650/1194/18 +f 749/1196/15 656/1309/15 655/1197/15 +f 745/1198/14 655/1197/14 649/1199/14 +f 655/1201/18 656/1686/18 651/1202/18 +f 659/1204/17 663/1208/17 661/1205/17 +f 660/1207/18 664/1214/18 663/1208/18 +f 657/1210/16 661/1205/16 662/1211/16 +f 658/1213/15 662/1211/15 664/1214/15 +f 664/1214/13 662/1211/13 661/1205/13 +f 667/1216/17 671/1220/17 669/1217/17 +f 668/1219/18 672/1226/18 671/1220/18 +f 665/1222/16 669/1217/16 670/1223/16 +f 666/1225/15 670/1223/15 672/1226/15 +f 672/1226/13 670/1223/13 669/1217/13 +f 675/1228/17 679/1232/17 677/1229/17 +f 676/1231/18 680/1238/18 679/1232/18 +f 673/1234/16 677/1229/16 678/1235/16 +f 674/1237/15 678/1235/15 680/1238/15 +f 680/1238/13 678/1235/13 677/1229/13 +f 683/1240/17 687/1244/17 685/1241/17 +f 684/1243/18 688/1250/18 687/1244/18 +f 681/1246/16 685/1241/16 686/1247/16 +f 682/1249/15 686/1247/15 688/1250/15 +f 688/1250/13 686/1247/13 685/1241/13 +f 691/1252/17 695/1256/17 693/1253/17 +f 692/1255/18 696/1262/18 695/1256/18 +f 689/1258/16 693/1253/16 694/1259/16 +f 690/1261/15 694/1259/15 696/1262/15 +f 696/1262/13 694/1259/13 693/1253/13 +f 699/1264/17 703/1268/17 701/1265/17 +f 700/1267/18 704/1274/18 703/1268/18 +f 697/1270/16 701/1265/16 702/1271/16 +f 698/1273/15 702/1271/15 704/1274/15 +f 704/1274/13 702/1271/13 701/1265/13 +f 707/1276/17 711/1280/17 709/1277/17 +f 708/1279/18 712/1286/18 711/1280/18 +f 705/1282/16 709/1277/16 710/1283/16 +f 706/1285/15 710/1283/15 712/1286/15 +f 712/1286/13 710/1283/13 709/1277/13 +f 715/1288/17 719/1292/17 717/1289/17 +f 716/1291/18 720/1298/18 719/1292/18 +f 713/1294/16 717/1289/16 718/1295/16 +f 714/1297/15 718/1295/15 720/1298/15 +f 720/1298/13 718/1295/13 717/1289/13 +f 748/1300/14 747/1321/14 723/1301/14 +f 747/1303/14 746/1323/14 722/1304/14 +f 746/1306/14 745/1325/14 721/1307/14 +f 656/1309/13 749/1196/13 729/1188/13 +f 749/1311/13 750/1324/13 730/1312/13 +f 750/1314/13 751/1322/13 731/1315/13 +f 751/1317/13 752/1320/13 732/1318/13 +f 752/1320/15 751/1317/15 747/1321/15 +f 751/1322/15 750/1314/15 746/1323/15 +f 750/1324/15 749/1311/15 745/1325/15 +f 653/1326/14 740/1687/14 728/1327/14 +f 740/1329/14 739/1688/14 727/1330/14 +f 739/1332/14 738/1689/14 726/1333/14 +f 738/1335/14 737/1690/14 725/1336/14 +f 741/1338/13 742/1356/13 734/1339/13 +f 742/1341/13 743/1353/13 735/1342/13 +f 743/1344/13 744/1350/13 736/1345/13 +f 654/1347/17 744/1190/17 740/1348/17 +f 744/1350/17 743/1344/17 739/1351/17 +f 743/1353/17 742/1341/17 738/1354/17 +f 742/1356/17 741/1338/17 737/1357/17 +f 723/1359/17 731/1319/17 732/1318/17 +f 722/1361/17 730/1316/17 731/1315/17 +f 721/1363/17 729/1313/17 730/1312/17 +f 728/1327/15 736/1192/15 652/1191/15 +f 727/1330/15 735/1346/15 736/1345/15 +f 726/1333/15 734/1343/15 735/1342/15 +f 725/1336/15 733/1340/15 734/1339/15 +f 600/1365/17 737/1691/17 741/1366/17 +f 741/1366/13 733/1692/13 595/1368/13 +f 595/1368/15 733/1692/15 725/1369/15 +f 596/1370/14 725/1369/14 737/1371/14 +f 724/1373/17 732/1377/17 594/1374/17 +f 598/1376/13 594/1374/13 732/1377/13 +f 752/1378/15 748/1380/15 597/1379/15 +f 748/1380/14 724/1693/14 593/1381/14 +f 536/1382/28 607/1694/28 608/1383/28 +f 763/1384/14 761/1406/14 762/1385/14 +f 760/1387/25 759/1695/25 764/1388/25 +f 756/1390/31 776/1394/31 775/1391/31 +f 754/1393/25 774/1403/25 776/1394/25 +f 758/1396/20 757/1696/20 761/1397/20 +f 760/1399/13 757/1405/13 758/1400/13 +f 753/1402/32 773/1423/32 774/1403/32 +f 757/1405/32 760/1399/32 762/1385/32 +f 759/1407/31 758/1697/31 763/1408/31 +f 766/1410/13 765/1414/13 767/1411/13 +f 771/1413/20 767/1411/20 765/1414/20 +f 772/1416/31 768/1412/31 767/1411/31 +f 769/1418/32 765/1414/32 766/1410/32 +f 770/1420/25 766/1410/25 768/1412/25 +f 774/1403/13 773/1423/13 775/1391/13 +f 755/1422/20 775/1391/20 773/1423/20 +f 788/1425/14 787/1698/14 785/1426/14 +f 784/1428/24 783/1699/24 788/1429/24 +f 780/1431/33 800/1435/33 799/1432/33 +f 778/1434/24 798/1444/24 800/1435/24 +f 782/1437/23 781/1700/23 785/1438/23 +f 783/1440/13 784/1701/13 781/1441/13 +f 777/1443/34 797/1462/34 798/1444/34 +f 781/1441/34 784/1701/34 786/1427/34 +f 783/1446/33 782/1702/33 787/1447/33 +f 790/1449/13 789/1453/13 791/1450/13 +f 795/1452/23 791/1450/23 789/1453/23 +f 796/1455/33 792/1451/33 791/1450/33 +f 793/1457/34 789/1453/34 790/1449/34 +f 794/1459/24 790/1449/24 792/1451/24 +f 798/1444/13 797/1462/13 799/1432/13 +f 779/1461/23 799/1432/23 797/1462/23 +f 811/1464/14 809/1486/14 810/1465/14 +f 808/1467/26 807/1703/26 812/1468/26 +f 804/1470/35 824/1474/35 823/1471/35 +f 802/1473/26 822/1483/26 824/1474/26 +f 806/1476/27 805/1704/27 809/1477/27 +f 808/1479/13 805/1485/13 806/1480/13 +f 801/1482/36 821/1502/36 822/1483/36 +f 805/1485/36 808/1479/36 810/1465/36 +f 807/1487/35 806/1705/35 811/1488/35 +f 813/1490/13 815/1496/13 816/1491/13 +f 819/1493/27 815/1496/27 813/1490/27 +f 820/1495/35 816/1491/35 815/1496/35 +f 817/1498/36 813/1490/36 814/1492/36 +f 818/1500/26 814/1492/26 816/1491/26 +f 821/1502/13 823/1471/13 824/1474/13 +f 803/1503/27 823/1471/27 821/1502/27 +f 836/1505/14 835/1706/14 833/1506/14 +f 832/1508/21 831/1707/21 836/1509/21 +f 828/1511/22 848/1515/22 847/1512/22 +f 826/1514/21 846/1524/21 848/1515/21 +f 830/1517/29 829/1708/29 833/1518/29 +f 831/1520/13 832/1709/13 829/1521/13 +f 825/1523/30 845/1541/30 846/1524/30 +f 829/1521/30 832/1709/30 834/1507/30 +f 831/1526/22 830/1710/22 835/1527/22 +f 838/1529/13 837/1533/13 839/1530/13 +f 843/1532/29 839/1530/29 837/1533/29 +f 844/1535/22 840/1531/22 839/1530/22 +f 841/1537/30 837/1533/30 838/1529/30 +f 842/1539/21 838/1529/21 840/1531/21 +f 845/1541/13 847/1512/13 848/1515/13 +f 827/1542/29 847/1512/29 845/1541/29 +f 850/1544/14 852/1560/14 851/1545/14 +f 853/1547/13 856/1559/13 855/1548/13 +f 853/1550/17 854/1711/17 849/1551/17 +f 854/1553/16 855/1712/16 850/1554/16 +f 855/1556/15 856/1713/15 852/1557/15 +f 856/1559/18 853/1547/18 851/1545/18 +f 859/1561/17 863/1565/17 861/1562/17 +f 860/1564/18 864/1571/18 863/1565/18 +f 857/1567/16 861/1562/16 862/1568/16 +f 858/1570/15 862/1568/15 864/1571/15 +f 864/1571/13 862/1568/13 861/1562/13 +f 867/1573/17 871/1577/17 869/1574/17 +f 868/1576/18 872/1583/18 871/1577/18 +f 865/1579/16 869/1574/16 870/1580/16 +f 866/1582/15 870/1580/15 872/1583/15 +f 872/1583/13 870/1580/13 869/1574/13 diff --git a/src/main/resources/assets/hbm/models/bombs/gadget.obj b/src/main/resources/assets/hbm/models/bombs/gadget.obj new file mode 100644 index 000000000..e2e007e50 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/gadget.obj @@ -0,0 +1,10019 @@ +# Blender v2.79 (sub 0) OBJ File: 'gadget.blend' +# www.blender.org +o Wires +v -1.174005 1.942922 -0.549430 +v -1.183310 1.913090 -0.549430 +v -1.182231 1.912753 -0.518200 +v -1.172926 1.942586 -0.518200 +v -1.196076 1.821231 -0.548875 +v -1.202886 1.790732 -0.548875 +v -1.202886 1.790732 -0.517625 +v -1.196076 1.821231 -0.517625 +v -1.238634 1.797799 -0.528074 +v -1.233117 1.828558 -0.528074 +v -1.206878 1.823852 -0.511767 +v -1.212395 1.793093 -0.511767 +v -1.217782 1.698130 -0.548875 +v -1.224592 1.667631 -0.548875 +v -1.224592 1.667631 -0.517625 +v -1.217782 1.698130 -0.517625 +v -1.259217 1.671675 -0.533248 +v -1.257805 1.702893 -0.533248 +v -1.235729 1.701894 -0.511153 +v -1.237141 1.670676 -0.511153 +v -1.239488 1.575029 -0.548875 +v -1.246298 1.544530 -0.548875 +v -1.246298 1.544530 -0.517625 +v -1.239488 1.575029 -0.517625 +v -1.279112 1.546412 -0.529872 +v -1.280785 1.577617 -0.529872 +v -1.255606 1.578968 -0.511412 +v -1.253933 1.547762 -0.511412 +v -1.216391 1.945193 -0.663251 +v -1.188182 1.958640 -0.663251 +v -1.181072 1.943725 -0.636726 +v -1.209281 1.930278 -0.636726 +v -1.241104 1.815372 -0.659276 +v -1.217851 1.836249 -0.659276 +v -1.203790 1.820588 -0.636177 +v -1.227042 1.799710 -0.636177 +v -1.239636 1.660727 -0.666553 +v -1.261933 1.682622 -0.666553 +v -1.253403 1.691308 -0.637772 +v -1.231106 1.669413 -0.637772 +v -1.239488 1.575029 -0.673875 +v -1.246298 1.544530 -0.673875 +v -1.246298 1.544530 -0.642625 +v -1.239488 1.575029 -0.642625 +v -1.256174 1.540192 -0.672388 +v -1.280892 1.559312 -0.672388 +v -1.279152 1.561561 -0.641268 +v -1.254434 1.542440 -0.641268 +v -1.174370 1.944332 -0.798875 +v -1.181180 1.913833 -0.798875 +v -1.181180 1.913833 -0.767625 +v -1.174370 1.944332 -0.767625 +v -1.215594 1.947240 -0.785575 +v -1.186501 1.958649 -0.785575 +v -1.179327 1.940356 -0.761275 +v -1.208420 1.928947 -0.761275 +v -1.196076 1.821231 -0.798875 +v -1.202886 1.790732 -0.798875 +v -1.202886 1.790732 -0.767625 +v -1.196076 1.821231 -0.767625 +v -1.240732 1.814322 -0.788906 +v -1.217902 1.835661 -0.788906 +v -1.207178 1.824188 -0.761889 +v -1.230008 1.802849 -0.761889 +v -1.242324 1.660806 -0.790220 +v -1.262535 1.684641 -0.790220 +v -1.251858 1.693694 -0.762281 +v -1.231647 1.669860 -0.762281 +v -1.239488 1.575029 -0.798875 +v -1.246298 1.544530 -0.798875 +v -1.246298 1.544530 -0.767625 +v -1.239488 1.575029 -0.767625 +v -1.252976 1.544934 -0.802555 +v -1.277033 1.564880 -0.802555 +v -1.282493 1.558295 -0.772498 +v -1.258435 1.538350 -0.772498 +v -1.174370 1.944332 -0.923875 +v -1.181180 1.913833 -0.923875 +v -1.181180 1.913833 -0.892625 +v -1.174370 1.944332 -0.892625 +v -1.212353 1.945965 -0.921560 +v -1.181977 1.953300 -0.921560 +v -1.180960 1.949093 -0.890611 +v -1.211337 1.941757 -0.890611 +v -1.196076 1.821231 -0.923875 +v -1.202886 1.790732 -0.923875 +v -1.202886 1.790732 -0.892625 +v -1.196076 1.821231 -0.892625 +v -1.239209 1.806511 -0.919429 +v -1.222351 1.832825 -0.919429 +v -1.215715 1.828573 -0.889189 +v -1.232572 1.802260 -0.889189 +v -1.217782 1.698130 -0.923875 +v -1.224592 1.667631 -0.923875 +v -1.224592 1.667631 -0.892625 +v -1.217782 1.698130 -0.892625 +v -1.228890 1.670839 -0.929152 +v -1.253067 1.690639 -0.929152 +v -1.261768 1.680014 -0.901081 +v -1.237591 1.660214 -0.901081 +v -1.239488 1.575029 -0.923875 +v -1.246298 1.544530 -0.923875 +v -1.246298 1.544530 -0.892625 +v -1.239488 1.575029 -0.892625 +v -1.259141 1.538664 -0.919660 +v -1.282409 1.559525 -0.919660 +v -1.277393 1.565119 -0.889326 +v -1.254125 1.544258 -0.889326 +v -1.174370 1.944332 -1.048875 +v -1.181180 1.913833 -1.048875 +v -1.181180 1.913833 -1.017625 +v -1.174370 1.944332 -1.017625 +v -1.209377 1.949713 -1.046222 +v -1.178154 1.951008 -1.046222 +v -1.177951 1.946095 -1.015361 +v -1.209174 1.944801 -1.015361 +v -1.196076 1.821231 -1.048875 +v -1.202886 1.790732 -1.048875 +v -1.202886 1.790732 -1.017625 +v -1.196076 1.821231 -1.017625 +v -1.217782 1.698130 -1.048875 +v -1.224592 1.667631 -1.048875 +v -1.224592 1.667631 -1.017625 +v -1.217782 1.698130 -1.017625 +v -1.239488 1.575029 -1.048875 +v -1.246298 1.544530 -1.048875 +v -1.246298 1.544530 -1.017625 +v -1.239488 1.575029 -1.017625 +v -1.174370 1.944332 -1.173875 +v -1.181180 1.913833 -1.173875 +v -1.181180 1.913833 -1.142625 +v -1.174370 1.944332 -1.142625 +v -1.196076 1.821231 -1.173875 +v -1.202886 1.790732 -1.173875 +v -1.202886 1.790732 -1.142625 +v -1.196076 1.821231 -1.142625 +v -1.224011 1.796775 -1.180323 +v -1.203896 1.820690 -1.180323 +v -1.221566 1.835552 -1.159265 +v -1.241681 1.811637 -1.159265 +v -1.217782 1.698130 -1.173875 +v -1.224592 1.667631 -1.173875 +v -1.224592 1.667631 -1.142625 +v -1.217782 1.698130 -1.142625 +v -1.239488 1.575029 -1.173875 +v -1.246298 1.544530 -1.173875 +v -1.246298 1.544530 -1.142625 +v -1.239488 1.575029 -1.142625 +v -1.256882 1.542336 -1.175459 +v -1.278993 1.564419 -1.175459 +v -1.281359 1.562049 -1.144389 +v -1.259249 1.539966 -1.144389 +v 0.362842 2.375147 0.326274 +v 0.386903 2.373444 0.306407 +v 0.370036 2.388315 0.284706 +v 0.345975 2.390018 0.304574 +v 0.384077 2.432766 0.344619 +v 0.405915 2.423475 0.324288 +v 0.384420 2.422550 0.301623 +v 0.362582 2.431840 0.321954 +v -0.918945 1.110495 -0.342736 +v -0.931564 1.094373 -0.319127 +v -0.936371 1.121008 -0.303506 +v -0.923751 1.137131 -0.327115 +v -0.379805 2.444080 -0.309020 +v -0.367132 2.433805 -0.335673 +v -0.388692 2.411236 -0.337222 +v -0.401364 2.421511 -0.310569 +v 0.402196 2.434005 -0.311901 +v 0.396841 2.423141 -0.340708 +v 0.366301 2.421311 -0.334341 +v 0.371656 2.432175 -0.305534 +v -0.378623 0.564951 0.303071 +v -0.371040 0.557246 0.332392 +v -0.389874 0.579733 0.343171 +v -0.397457 0.587438 0.313851 +v 0.393651 0.572855 0.303131 +v 0.404220 0.573220 0.332537 +v 0.374846 0.571829 0.343111 +v 0.364277 0.571465 0.313705 +v 0.390783 0.579489 -0.342983 +v 0.405056 0.566658 -0.318321 +v 0.377714 0.565195 -0.303259 +v 0.363441 0.578026 -0.327921 +v 0.701539 1.282990 0.756744 +v 0.694797 1.253772 0.747945 +v 0.701307 1.261198 0.718296 +v 0.708049 1.290416 0.727095 +v -0.378277 2.436777 0.342343 +v -0.368708 2.439423 0.312712 +v -0.390220 2.418539 0.303900 +v -0.399789 2.415894 0.333531 +v 0.440212 2.090464 0.757640 +v 0.454304 2.095352 0.730180 +v 0.426795 2.102869 0.717400 +v 0.412703 2.097980 0.744860 +v 0.712255 1.254904 -0.728834 +v 0.684271 1.258951 -0.742139 +v 0.690591 1.289284 -0.746206 +v 0.718576 1.285237 -0.732900 +v 0.019550 0.757477 0.728517 +v 0.010032 0.767352 0.756596 +v -0.019550 0.767483 0.746523 +v -0.010032 0.757608 0.718444 +v 0.011101 0.775618 -0.751392 +v 0.014829 0.746439 -0.740846 +v -0.011101 0.749342 -0.723648 +v -0.014829 0.778521 -0.734194 +v -0.692788 1.289504 -0.748037 +v -0.694407 1.258821 -0.753733 +v -0.710059 1.254684 -0.727003 +v -0.708439 1.285368 -0.721307 +v -0.933840 1.870228 0.339042 +v -0.923487 1.899704 0.338352 +v -0.921475 1.898269 0.307200 +v -0.931829 1.868792 0.307890 +v 0.451844 2.105888 -0.729343 +v 0.445829 2.082972 -0.749720 +v 0.415163 2.087443 -0.745697 +v 0.421178 2.110360 -0.725320 +v -0.423559 2.116383 -0.738324 +v -0.421411 2.089866 -0.754719 +v -0.443448 2.076950 -0.736716 +v -0.445596 2.103467 -0.720321 +v -0.377169 0.573822 -0.344001 +v -0.369308 0.556547 -0.319174 +v -0.391328 0.570862 -0.302241 +v -0.399189 0.588137 -0.327067 +v 0.935823 1.863839 -0.325374 +v 0.912476 1.879881 -0.338572 +v 0.919493 1.904657 -0.320868 +v 0.942839 1.888617 -0.307670 +v 0.922768 1.100037 0.337866 +v 0.918963 1.103356 0.307026 +v 0.932547 1.131467 0.308377 +v 0.936352 1.128147 0.339216 +v -0.925593 1.094452 0.328629 +v -0.931403 1.120862 0.344290 +v -0.929723 1.137052 0.317614 +v -0.923912 1.110641 0.301952 +v 0.943630 1.125342 -0.311239 +v 0.933693 1.095992 -0.315285 +v 0.911686 1.106161 -0.335003 +v 0.921622 1.135511 -0.330957 +v -0.425439 2.093643 0.757870 +v -0.422154 2.115550 0.735828 +v -0.441567 2.099689 0.717170 +v -0.444853 2.077783 0.739212 +v 0.942297 1.870918 0.332933 +v 0.937698 1.880986 0.303709 +v 0.913019 1.897579 0.313309 +v 0.917617 1.887511 0.342533 +v -1.156318 1.937406 -0.550100 +v -1.165622 1.907573 -0.550100 +v -1.164544 1.907237 -0.518870 +v -1.155239 1.937070 -0.518870 +v -1.178721 1.817356 -0.548875 +v -1.185531 1.786857 -0.548875 +v -1.185531 1.786857 -0.517625 +v -1.178721 1.817356 -0.517625 +v -1.200428 1.694255 -0.548875 +v -1.207237 1.663756 -0.548875 +v -1.207237 1.663756 -0.517625 +v -1.200428 1.694255 -0.517625 +v -1.222133 1.571154 -0.548875 +v -1.228943 1.540655 -0.548875 +v -1.228943 1.540655 -0.517625 +v -1.222133 1.571154 -0.517625 +v -1.157016 1.940457 -0.673875 +v -1.163825 1.909958 -0.673875 +v -1.163825 1.909958 -0.642625 +v -1.157016 1.940457 -0.642625 +v -1.178721 1.817356 -0.673875 +v -1.185531 1.786857 -0.673875 +v -1.185531 1.786857 -0.642625 +v -1.178721 1.817356 -0.642625 +v -1.200428 1.694255 -0.673875 +v -1.207237 1.663756 -0.673875 +v -1.207237 1.663756 -0.642625 +v -1.200428 1.694255 -0.642625 +v -1.222133 1.571154 -0.673875 +v -1.228943 1.540655 -0.673875 +v -1.228943 1.540655 -0.642625 +v -1.222133 1.571154 -0.642625 +v -1.157016 1.940457 -0.798875 +v -1.163825 1.909958 -0.798875 +v -1.163825 1.909958 -0.767625 +v -1.157016 1.940457 -0.767625 +v -1.178721 1.817356 -0.798875 +v -1.185531 1.786857 -0.798875 +v -1.185531 1.786857 -0.767625 +v -1.178721 1.817356 -0.767625 +v -1.200428 1.694255 -0.798875 +v -1.207237 1.663756 -0.798875 +v -1.207237 1.663756 -0.767625 +v -1.200428 1.694255 -0.767625 +v -1.222133 1.571154 -0.798875 +v -1.228943 1.540655 -0.798875 +v -1.228943 1.540655 -0.767625 +v -1.222133 1.571154 -0.767625 +v -1.157016 1.940457 -0.923875 +v -1.163825 1.909958 -0.923875 +v -1.163825 1.909958 -0.892625 +v -1.157016 1.940457 -0.892625 +v -1.178721 1.817356 -0.923875 +v -1.185531 1.786857 -0.923875 +v -1.185531 1.786857 -0.892625 +v -1.178721 1.817356 -0.892625 +v -1.200428 1.694255 -0.923875 +v -1.207237 1.663756 -0.923875 +v -1.207237 1.663756 -0.892625 +v -1.200428 1.694255 -0.892625 +v -1.222133 1.571154 -0.923875 +v -1.228943 1.540655 -0.923875 +v -1.228943 1.540655 -0.892625 +v -1.222133 1.571154 -0.892625 +v -1.157016 1.940457 -1.048875 +v -1.163825 1.909958 -1.048875 +v -1.163825 1.909958 -1.017625 +v -1.157016 1.940457 -1.017625 +v -1.178721 1.817356 -1.048875 +v -1.185531 1.786857 -1.048875 +v -1.185531 1.786857 -1.017625 +v -1.178721 1.817356 -1.017625 +v -1.200428 1.694255 -1.048875 +v -1.207237 1.663756 -1.048875 +v -1.207237 1.663756 -1.017625 +v -1.200428 1.694255 -1.017625 +v -1.222133 1.571154 -1.048875 +v -1.228943 1.540655 -1.048875 +v -1.228943 1.540655 -1.017625 +v -1.222133 1.571154 -1.017625 +v -1.157016 1.940457 -1.173875 +v -1.163825 1.909958 -1.173875 +v -1.163825 1.909958 -1.142625 +v -1.157016 1.940457 -1.142625 +v -1.178721 1.817356 -1.173875 +v -1.185531 1.786857 -1.173875 +v -1.185531 1.786857 -1.142625 +v -1.178721 1.817356 -1.142625 +v -1.200428 1.694255 -1.173875 +v -1.207237 1.663756 -1.173875 +v -1.207237 1.663756 -1.142625 +v -1.200428 1.694255 -1.142625 +v -1.222133 1.571154 -1.173875 +v -1.228943 1.540655 -1.173875 +v -1.228943 1.540655 -1.142625 +v -1.222133 1.571154 -1.142625 +v 0.017136 0.743499 0.724780 +v 0.004522 0.734500 0.751918 +v -0.022795 0.747049 0.743382 +v -0.010181 0.756049 0.716244 +v -0.932735 1.892860 -0.303414 +v -0.921417 1.904215 -0.330238 +v -0.922581 1.875637 -0.342828 +v -0.933899 1.864282 -0.316004 +v -0.871601 1.130094 -0.328227 +v -0.874083 1.115559 -0.300674 +v -0.888143 1.140746 -0.288653 +v -0.885661 1.155281 -0.316206 +v -0.354684 2.391416 -0.290709 +v -0.345393 2.386196 -0.320086 +v -0.372583 2.372046 -0.326171 +v -0.381874 2.377266 -0.296794 +v 0.383366 2.379659 -0.294388 +v 0.378403 2.372027 -0.324283 +v 0.349512 2.383803 -0.322492 +v 0.354475 2.391435 -0.292597 +v -0.359405 0.609935 0.285871 +v -0.343644 0.613086 0.312670 +v -0.367861 0.628427 0.325109 +v -0.383623 0.625276 0.298310 +v 0.376633 0.615788 0.286180 +v 0.384590 0.629038 0.313341 +v 0.356245 0.622573 0.324799 +v 0.348287 0.609324 0.297639 +v 0.372838 0.627684 -0.327806 +v 0.386201 0.623987 -0.299800 +v 0.360040 0.610678 -0.289074 +v 0.346677 0.614375 -0.317080 +v 0.657378 1.298058 0.712639 +v 0.654377 1.267693 0.705891 +v 0.678131 1.269832 0.685699 +v 0.681132 1.300197 0.692447 +v -0.350919 2.380516 0.323522 +v -0.347705 2.392903 0.295013 +v -0.376347 2.382946 0.287458 +v -0.379561 2.370559 0.315968 +v 0.415770 2.049235 0.711656 +v 0.433448 2.064315 0.690760 +v 0.410693 2.085341 0.686682 +v 0.393014 2.070262 0.707578 +v 0.675740 1.267926 -0.689162 +v 0.653419 1.269644 -0.710965 +v 0.659769 1.299965 -0.715076 +v 0.682090 1.298246 -0.693273 +v 0.020709 0.791764 0.692041 +v 0.012137 0.813454 0.712841 +v -0.017903 0.807859 0.706297 +v -0.009332 0.786169 0.685497 +v 0.012411 0.812776 -0.716227 +v 0.020553 0.791856 -0.694488 +v -0.009605 0.786847 -0.688011 +v -0.017748 0.807768 -0.709750 +v -0.658659 1.301218 -0.714382 +v -0.650449 1.271109 -0.712762 +v -0.671239 1.266673 -0.689856 +v -0.679449 1.296781 -0.691476 +v -0.880574 1.849442 0.320662 +v -0.869416 1.878621 0.319862 +v -0.879170 1.881541 0.290318 +v -0.890328 1.852362 0.291118 +v 0.430095 2.071926 -0.688614 +v 0.424389 2.049967 -0.710104 +v 0.396367 2.062652 -0.715624 +v 0.402074 2.084610 -0.694134 +v -0.396101 2.083585 -0.697934 +v -0.396827 2.059312 -0.717603 +v -0.424750 2.050992 -0.706304 +v -0.424023 2.075265 -0.686635 +v -0.355627 0.622050 -0.328835 +v -0.344899 0.609076 -0.302507 +v -0.371639 0.616312 -0.288045 +v -0.382368 0.629286 -0.314372 +v 0.890566 1.844954 -0.310510 +v 0.875991 1.865047 -0.329496 +v 0.874790 1.886029 -0.306370 +v 0.889365 1.865937 -0.287384 +v 0.871530 1.122561 0.319584 +v 0.881710 1.119498 0.290198 +v 0.893825 1.148279 0.291396 +v 0.883646 1.151341 0.320782 +v -0.870180 1.116141 0.310253 +v -0.875363 1.142718 0.325854 +v -0.889564 1.154698 0.300727 +v -0.884381 1.128121 0.285126 +v 0.892881 1.146892 -0.292548 +v 0.879864 1.118546 -0.294453 +v 0.872474 1.123948 -0.324332 +v 0.885491 1.152294 -0.322427 +v -0.396307 2.059003 0.714012 +v -0.396346 2.083800 0.694994 +v -0.424543 2.075575 0.684326 +v -0.424505 2.050777 0.703344 +v 0.888492 1.845253 0.312187 +v 0.891987 1.861657 0.285820 +v 0.876863 1.885731 0.298793 +v 0.873368 1.869327 0.325160 +v -0.882969 1.873529 -0.288091 +v -0.870514 1.884555 -0.314546 +v -0.876775 1.857454 -0.328789 +v -0.889231 1.846428 -0.302334 +v -0.699444 1.251063 0.744007 +v -0.694129 1.278865 0.757249 +v -0.703402 1.293125 0.731034 +v -0.708717 1.265323 0.717791 +v -0.658734 1.263845 0.700877 +v -0.653428 1.291646 0.714126 +v -0.676775 1.304045 0.697461 +v -0.682081 1.276244 0.684212 +v -1.250682 1.800300 -0.504844 +v -1.244312 1.830791 -0.507355 +v -1.213916 1.824775 -0.503297 +v -1.220286 1.794284 -0.500787 +v -0.982266 1.884840 0.312786 +v -0.974819 1.915070 0.310093 +v -0.951790 1.907635 0.290320 +v -0.959237 1.877405 0.293013 +v -1.167644 1.905013 -0.411622 +v -1.147809 1.916676 -0.432767 +v -1.136946 1.887927 -0.438433 +v -1.156782 1.876265 -0.417288 +v -1.257349 1.835502 -0.632977 +v -1.231683 1.852062 -0.639583 +v -1.214005 1.829928 -0.626387 +v -1.239671 1.813368 -0.619780 +v -1.269599 1.671725 -0.522009 +v -1.273585 1.701356 -0.512916 +v -1.243640 1.702671 -0.504076 +v -1.239654 1.673040 -0.513170 +v -0.968102 1.101122 0.300168 +v -0.972912 1.126964 0.317068 +v -0.948098 1.140378 0.303620 +v -0.943288 1.114537 0.286720 +v -1.267418 1.634185 -0.650618 +v -1.296099 1.645030 -0.644588 +v -1.286089 1.656278 -0.617205 +v -1.257408 1.645433 -0.623235 +v -1.219398 1.450479 -0.568415 +v -1.246450 1.444145 -0.554110 +v -1.237709 1.461724 -0.529796 +v -1.210657 1.468058 -0.544101 +v -1.225639 1.945001 -0.500581 +v -1.202324 1.964765 -0.507089 +v -1.181590 1.941875 -0.502320 +v -1.204905 1.922112 -0.495812 +v -0.739907 2.136739 0.580774 +v -0.720859 2.154554 0.563559 +v -0.706554 2.128916 0.552854 +v -0.725602 2.111100 0.570069 +v -0.475138 2.112171 0.756943 +v -0.463366 2.130661 0.734670 +v -0.462442 2.106389 0.715009 +v -0.474215 2.087899 0.737281 +v -1.291063 1.545456 -0.511536 +v -1.294220 1.576348 -0.508029 +v -1.263562 1.578856 -0.502518 +v -1.260405 1.547964 -0.506026 +v -0.948442 1.317475 0.575246 +v -0.950512 1.347329 0.584250 +v -0.924351 1.353901 0.568470 +v -0.922282 1.324048 0.559466 +v -0.756633 1.265295 0.736868 +v -0.754544 1.293962 0.749129 +v -0.740023 1.303943 0.723320 +v -0.742113 1.275275 0.711059 +v -1.225876 1.970677 -0.643945 +v -1.196034 1.974689 -0.652306 +v -1.187520 1.951665 -0.632966 +v -1.217363 1.947655 -0.624605 +v -0.708222 2.312728 0.031637 +v -0.684215 2.309114 0.011961 +v -0.679826 2.280078 0.022649 +v -0.703834 2.283692 0.042325 +v -0.411357 2.455568 0.318103 +v -0.391060 2.450723 0.294841 +v -0.394931 2.419864 0.297890 +v -0.415228 2.424709 0.321152 +v -1.228111 1.987383 -0.749764 +v -1.198901 1.987463 -0.760869 +v -1.191670 1.963609 -0.742021 +v -1.220880 1.963529 -0.730916 +v -0.277296 2.456410 -0.010313 +v -0.260202 2.446807 -0.034647 +v -0.260223 2.417734 -0.023188 +v -0.277317 2.427338 0.001146 +v 0.382950 2.477947 0.302954 +v 0.401710 2.466248 0.280868 +v 0.384206 2.440387 0.279700 +v 0.365446 2.452085 0.301786 +v -1.273125 1.853628 -0.757993 +v -1.244658 1.862154 -0.767662 +v -1.231839 1.845921 -0.744237 +v -1.260306 1.837394 -0.734568 +v -1.160286 2.014342 -0.651530 +v -1.136128 2.009203 -0.670676 +v -1.128525 1.983731 -0.654246 +v -1.152682 1.988870 -0.635100 +v 0.080443 2.494827 0.551902 +v 0.096290 2.488848 0.525641 +v 0.084872 2.459760 0.525373 +v 0.069024 2.465739 0.551635 +v 0.430137 2.160579 0.735670 +v 0.443491 2.155233 0.707927 +v 0.418740 2.138223 0.699291 +v 0.405385 2.143569 0.727033 +v -0.689883 2.292951 -0.139719 +v -0.666622 2.287297 -0.159807 +v -0.663706 2.258391 -0.148296 +v -0.686967 2.264045 -0.128207 +v -0.300987 2.458956 0.229682 +v -0.279693 2.452532 0.207731 +v -0.279809 2.422510 0.216403 +v -0.301103 2.428934 0.238355 +v -1.277962 1.837572 -0.904344 +v -1.249453 1.847567 -0.912339 +v -1.238062 1.836657 -0.885362 +v -1.266571 1.826662 -0.877367 +v -1.141885 2.033298 -0.805968 +v -1.119419 2.022224 -0.824656 +v -1.112888 2.000027 -0.803651 +v -1.135353 2.011101 -0.784963 +v -0.418521 2.457716 -0.345257 +v -0.399861 2.444430 -0.366514 +v -0.405683 2.416358 -0.354078 +v -0.424342 2.429645 -0.332821 +v -1.270686 1.522317 -0.670676 +v -1.301203 1.527655 -0.666583 +v -1.295299 1.539801 -0.638402 +v -1.264781 1.534463 -0.642495 +v -0.780971 0.763280 -0.028970 +v -0.806318 0.752764 -0.014020 +v -0.804512 0.776759 0.005919 +v -0.779165 0.787275 -0.009031 +v -0.406400 0.557614 0.294573 +v -0.420413 0.542511 0.318069 +v -0.425938 0.569777 0.332302 +v -0.411926 0.584881 0.308805 +v -0.344519 2.443688 -0.494384 +v -0.331553 2.418868 -0.508254 +v -0.339349 2.401105 -0.483754 +v -0.352316 2.425925 -0.469884 +v 0.733007 2.298563 0.154754 +v 0.732383 2.276609 0.132523 +v 0.709714 2.261625 0.147956 +v 0.710338 2.283579 0.170187 +v 0.954970 1.941841 0.330687 +v 0.946309 1.933336 0.301891 +v 0.916809 1.930163 0.311700 +v 0.925469 1.938668 0.340496 +v -1.218629 1.988256 -0.914058 +v -1.189564 1.977734 -0.918651 +v -1.189073 1.966384 -0.889539 +v -1.218138 1.976906 -0.884946 +v 0.177467 2.442102 -0.227170 +v 0.184429 2.416794 -0.244128 +v 0.169763 2.398763 -0.223239 +v 0.162800 2.424071 -0.206282 +v -1.262764 1.537974 -0.805700 +v -1.293445 1.540689 -0.810977 +v -1.299228 1.533265 -0.781178 +v -1.268546 1.530550 -0.775901 +v -1.209338 1.460512 -0.817654 +v -1.227308 1.436931 -0.827533 +v -1.233191 1.428994 -0.797885 +v -1.215221 1.452575 -0.788007 +v -0.408007 0.558527 -0.352639 +v -0.414998 0.536402 -0.331706 +v -0.416323 0.558080 -0.309236 +v -0.409331 0.580204 -0.330169 +v -0.619798 0.742553 -0.370855 +v -0.640000 0.728000 -0.351969 +v -0.629834 0.745133 -0.327893 +v -0.609632 0.759685 -0.346778 +v -1.230728 1.458044 -0.706418 +v -1.257711 1.452871 -0.691528 +v -1.246891 1.468263 -0.666576 +v -1.219908 1.473435 -0.681466 +v -1.251448 1.654751 -0.784951 +v -1.278645 1.668818 -0.778707 +v -1.267097 1.679091 -0.751547 +v -1.239899 1.665023 -0.757791 +v -0.464045 2.119620 -0.761644 +v -0.457127 2.092153 -0.774844 +v -0.468140 2.077278 -0.749664 +v -0.475058 2.104745 -0.736464 +v -1.117438 2.044700 -0.999156 +v -1.103125 2.018915 -1.009494 +v -1.108725 2.004847 -0.982157 +v -1.123038 2.030631 -0.971820 +v -1.208328 1.975719 -1.041368 +v -1.179732 1.963533 -1.044577 +v -1.180409 1.954099 -1.014793 +v -1.209006 1.966285 -1.011583 +v 0.370087 2.477650 -0.329685 +v 0.371356 2.459130 -0.354824 +v 0.353789 2.437906 -0.340075 +v 0.352520 2.456427 -0.314936 +v -0.132913 2.490284 -0.521946 +v -0.120696 2.470372 -0.542701 +v -0.124076 2.446984 -0.522253 +v -0.136292 2.466897 -0.501497 +v -1.147826 2.037695 -0.938888 +v -1.124978 2.023528 -0.954821 +v -1.120232 2.004141 -0.930775 +v -1.143079 2.018309 -0.914842 +v -1.246547 1.833347 -1.032266 +v -1.216374 1.838247 -1.038758 +v -1.208372 1.824850 -1.011683 +v -1.238545 1.819950 -1.005191 +v 0.428442 2.141779 -0.767958 +v 0.426250 2.114627 -0.783271 +v 0.404111 2.105176 -0.763344 +v 0.406303 2.132328 -0.748031 +v 0.164884 2.170792 -0.897882 +v 0.168723 2.142047 -0.909527 +v 0.159689 2.129786 -0.882239 +v 0.155849 2.158530 -0.870595 +v -1.150275 2.044380 -1.142511 +v -1.135978 2.018185 -1.151785 +v -1.138413 2.006614 -1.122859 +v -1.152710 2.032808 -1.113584 +v -1.227184 1.966674 -1.172049 +v -1.196179 1.963353 -1.174106 +v -1.194762 1.957582 -1.143427 +v -1.225767 1.960901 -1.141370 +v -0.081033 0.550667 0.561118 +v -0.099551 0.530750 0.576511 +v -0.122591 0.551858 0.576106 +v -0.104073 0.571775 0.560713 +v -0.347769 0.595844 -0.578732 +v -0.369951 0.574112 -0.575229 +v -0.384405 0.592243 -0.554278 +v -0.362223 0.613974 -0.557781 +v -1.209457 1.466930 -0.928891 +v -1.232608 1.446149 -0.925946 +v -1.231919 1.449780 -0.894915 +v -1.208768 1.470561 -0.897860 +v -1.270576 1.532740 -0.915894 +v -1.301602 1.533237 -0.912197 +v -1.297879 1.535439 -0.881248 +v -1.266853 1.534943 -0.884945 +v 0.389232 0.555409 0.297459 +v 0.391752 0.529902 0.315335 +v 0.364631 0.536924 0.329180 +v 0.362111 0.562432 0.311304 +v -0.207880 0.569246 -0.561510 +v -0.220553 0.540752 -0.563527 +v -0.238641 0.547050 -0.538834 +v -0.225968 0.575543 -0.536817 +v -1.211726 1.465680 -0.963766 +v -1.237311 1.449687 -0.971904 +v -1.245983 1.448300 -0.941913 +v -1.220399 1.464293 -0.933775 +v -1.253845 1.642335 -0.948006 +v -1.283614 1.650151 -0.953414 +v -1.290991 1.642364 -0.924063 +v -1.261222 1.634548 -0.918655 +v 0.943516 1.871226 -0.359015 +v 0.914742 1.883286 -0.357229 +v 0.926923 1.911920 -0.354350 +v 0.955696 1.899860 -0.356136 +v 0.889329 1.870978 -0.569970 +v 0.863983 1.882787 -0.556015 +v 0.874178 1.911718 -0.561980 +v 0.899523 1.899910 -0.575935 +v 0.495434 1.861500 -0.981034 +v 0.480957 1.873584 -0.956116 +v 0.486243 1.902391 -0.967014 +v 0.500721 1.890307 -0.991932 +v -0.834393 1.814548 -1.283235 +v -0.836801 1.826961 -1.254658 +v -0.835730 1.855639 -1.267025 +v -0.833322 1.843226 -1.295602 +v -1.148200 1.825860 -1.266218 +v -1.138704 1.838350 -1.239193 +v -1.145305 1.866894 -1.250066 +v -1.154801 1.854404 -1.277091 +v -1.234792 1.805403 -1.194849 +v -1.212062 1.823185 -1.182861 +v -1.232931 1.845551 -1.176468 +v -1.255660 1.827768 -1.188457 +v 0.715545 1.248159 -0.776684 +v 0.686409 1.254946 -0.767652 +v 0.692966 1.285450 -0.769420 +v 0.722102 1.278663 -0.778453 +v 0.546517 1.291902 -0.987323 +v 0.530960 1.295632 -0.960479 +v 0.538480 1.325963 -0.960335 +v 0.554037 1.322233 -0.987180 +v -0.873200 1.639222 -1.281797 +v -0.876222 1.639836 -1.250700 +v -0.868384 1.670086 -1.250535 +v -0.865361 1.669473 -1.281632 +v -1.186465 1.724763 -1.278934 +v -1.168041 1.720581 -1.254042 +v -1.162655 1.751340 -1.252860 +v -1.181080 1.755523 -1.277752 +v -1.252684 1.708028 -1.067193 +v -1.221807 1.705025 -1.063432 +v -1.221114 1.731966 -1.047613 +v -1.251991 1.734969 -1.051374 +v -0.954687 1.560271 -1.298775 +v -0.985937 1.560271 -1.298775 +v -0.985937 1.591521 -1.298775 +v -0.954687 1.591521 -1.298775 +v -0.963335 1.590347 -1.336192 +v -0.970149 1.559849 -1.336192 +v -0.952451 1.555895 -1.310741 +v -0.945637 1.586393 -1.310741 +v -1.101448 1.611016 -1.336589 +v -1.086425 1.583614 -1.336589 +v -1.066532 1.594520 -1.315097 +v -1.081556 1.621922 -1.315097 +v -0.954687 1.560271 -1.251899 +v -0.985937 1.560271 -1.251899 +v -0.985937 1.591521 -1.251900 +v -0.954687 1.591521 -1.251900 +v -1.077788 1.581977 -1.252000 +v -1.109038 1.581977 -1.252000 +v -1.109038 1.613227 -1.252000 +v -1.077788 1.613227 -1.252000 +v 0.745194 1.273139 0.735025 +v 0.735015 1.244827 0.726576 +v 0.719654 1.257532 0.702510 +v 0.729833 1.285844 0.710959 +v 0.943610 1.259989 0.566791 +v 0.931926 1.231665 0.560645 +v 0.906328 1.244857 0.548509 +v 0.918013 1.273181 0.554655 +v 0.973016 1.351905 -0.575358 +v 0.960954 1.323080 -0.574949 +v 0.934052 1.334495 -0.563880 +v 0.946114 1.363320 -0.564288 +v 0.600109 1.441009 -1.009472 +v 0.592197 1.411235 -1.004230 +v 0.577894 1.419695 -0.977765 +v 0.585806 1.449470 -0.983007 +v -1.073487 1.623846 -1.364865 +v -1.067278 1.593794 -1.358955 +v -1.058762 1.601281 -1.329834 +v -1.064971 1.631332 -1.335745 +v 0.951122 1.085692 0.312932 +v 0.926018 1.099264 0.300198 +v 0.940128 1.127087 0.302037 +v 0.965232 1.113515 0.314771 +v 0.935073 1.197188 -0.576146 +v 0.909195 1.208910 -0.563128 +v 0.922666 1.237072 -0.561709 +v 0.948544 1.225349 -0.574726 +v 0.560659 1.358615 -0.982424 +v 0.547104 1.365096 -0.955023 +v 0.557465 1.394521 -0.956857 +v 0.571020 1.388041 -0.984259 +v -0.840678 1.692593 -1.288240 +v -0.843022 1.696158 -1.257282 +v -0.836343 1.726539 -1.260275 +v -0.833999 1.722973 -1.291232 +v -1.187308 1.756017 -1.283439 +v -1.176978 1.758718 -1.254070 +v -1.181892 1.789558 -1.255177 +v -1.192222 1.786859 -1.284546 +v -1.281084 1.697572 -1.201442 +v -1.256675 1.712997 -1.189491 +v -1.276172 1.731483 -1.173532 +v -1.300580 1.716059 -1.185483 +v 0.953203 1.134244 -0.358307 +v 0.944705 1.104700 -0.363921 +v 0.914640 1.113173 -0.362995 +v 0.923138 1.142717 -0.357381 +v 0.925834 1.168328 -0.575803 +v 0.918043 1.138104 -0.577344 +v 0.890808 1.144413 -0.563379 +v 0.898599 1.174636 -0.561838 +v 0.528609 1.250118 -0.993705 +v 0.521870 1.219603 -0.993587 +v 0.506780 1.223040 -0.966439 +v 0.513519 1.253554 -0.966556 +v -0.935810 1.584189 -1.354551 +v -0.942693 1.553706 -1.354520 +v -0.936888 1.552426 -1.323841 +v -0.930005 1.582909 -1.323871 +v -0.246489 0.832329 -0.855722 +v -0.258502 0.803503 -0.856856 +v -0.266625 0.805704 -0.826760 +v -0.254612 0.834530 -0.825626 +v -1.214327 1.469654 -1.049257 +v -1.236530 1.447909 -1.052539 +v -1.241021 1.447826 -1.021614 +v -1.218818 1.469571 -1.018332 +v -1.262501 1.543276 -1.052072 +v -1.293222 1.548172 -1.055042 +v -1.296599 1.545773 -1.024067 +v -1.265878 1.540877 -1.021098 +v 0.374585 0.560388 -0.353116 +v 0.377918 0.534075 -0.336591 +v 0.358668 0.545373 -0.314720 +v 0.355335 0.571686 -0.331244 +v -0.000276 0.530372 -0.584431 +v -0.012797 0.502610 -0.577427 +v -0.023881 0.514358 -0.550675 +v -0.011360 0.542120 -0.557679 +v -1.218359 1.455832 -1.164818 +v -1.241896 1.435340 -1.163192 +v -1.245818 1.442244 -1.132967 +v -1.222281 1.462735 -1.134594 +v -1.269335 1.533842 -1.177511 +v -1.300350 1.537532 -1.178506 +v -1.301281 1.538129 -1.147276 +v -1.270266 1.534439 -1.146281 +v -1.173318 1.944097 -0.673875 +v -1.180127 1.913598 -0.673875 +v -1.180127 1.913598 -0.642625 +v -1.173318 1.944097 -0.642625 +v -1.195024 1.820996 -0.673875 +v -1.201833 1.790497 -0.673875 +v -1.201833 1.790497 -0.642625 +v -1.195024 1.820996 -0.642625 +v -1.216730 1.697895 -0.673875 +v -1.223539 1.667396 -0.673875 +v -1.223539 1.667396 -0.642625 +v -1.216730 1.697895 -0.642625 +v -1.216730 1.697895 -0.798875 +v -1.223539 1.667396 -0.798875 +v -1.223539 1.667396 -0.767625 +v -1.216730 1.697895 -0.767625 +v -0.364991 2.414379 -0.298050 +v -0.355700 2.409160 -0.327426 +v -0.382890 2.395009 -0.333511 +v -0.392181 2.400229 -0.304135 +v 0.425906 2.063924 0.730832 +v 0.443584 2.079004 0.709936 +v 0.420829 2.100030 0.705858 +v 0.403150 2.084951 0.726754 +v -0.904467 1.858820 0.329478 +v -0.893309 1.888000 0.328678 +v -0.903063 1.890920 0.299133 +v -0.914221 1.861741 0.299933 +v -0.894073 1.106308 0.319069 +v -0.899256 1.132884 0.334669 +v -0.913457 1.144864 0.309542 +v -0.908274 1.118287 0.293942 +v -0.675568 1.257920 0.720053 +v -0.670262 1.285721 0.733302 +v -0.693610 1.298119 0.716636 +v -0.698915 1.270318 0.703387 +v -1.219347 1.937230 -0.524101 +v -1.196883 1.958954 -0.524101 +v -1.177292 1.938695 -0.510599 +v -1.199756 1.916971 -0.510599 +v -0.430747 0.577754 -0.354696 +v -0.447749 0.560204 -0.335216 +v -0.436113 0.575960 -0.310866 +v -0.419111 0.593510 -0.330346 +v -1.252167 1.693828 -1.058028 +v -1.220919 1.694257 -1.058028 +v -1.221169 1.712454 -1.032624 +v -1.252416 1.712025 -1.032624 +v -1.259744 1.683084 -1.186409 +v -1.242361 1.709054 -1.186409 +v -1.255320 1.717729 -1.159328 +v -1.272704 1.691760 -1.159328 +vt 0.017442 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.122093 0.038835 +vt 0.110465 0.029126 +vt 0.122093 0.029126 +vt 0.168605 0.048544 +vt 0.162791 0.038835 +vt 0.168605 0.038835 +vt 0.168605 0.019417 +vt 0.162791 0.009709 +vt 0.168605 0.009709 +vt 0.168605 0.029126 +vt 0.162791 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.348837 0.038835 +vt 0.343023 0.029126 +vt 0.348837 0.029126 +vt 0.348837 0.048544 +vt 0.343023 0.038835 +vt 0.348837 0.019417 +vt 0.343023 0.009709 +vt 0.348837 0.009709 +vt 0.343023 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.308140 0.048544 +vt 0.302326 0.038835 +vt 0.308140 0.038835 +vt 0.308140 0.019417 +vt 0.302326 0.009709 +vt 0.308140 0.009709 +vt 0.308140 0.029126 +vt 0.302326 0.019417 +vt 0.005814 0.029126 +vt 0.017442 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011814 0.038878 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.019417 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.017442 0.009709 +vt 0.011628 0.009709 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.011628 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.017442 0.038835 +vt 0.011628 0.048544 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.017442 0.029126 +vt 0.011628 0.019417 +vt 0.017442 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.048544 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.011628 0.019417 +vt 0.017442 0.029126 +vt 0.011628 0.009709 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.011628 0.038835 +vt 0.011628 0.029126 +vt 0.011628 0.019417 +vt 0.023256 0.019417 +vt 0.011628 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.038835 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.011628 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.011628 0.048544 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.011628 0.038835 +vt 0.017442 0.029126 +vt 0.011628 0.029126 +vt 0.017442 0.038835 +vt 0.023256 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.019417 +vt 0.023256 0.029126 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.424419 0.038835 +vt 0.412791 0.048544 +vt 0.412791 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.009709 +vt 0.424419 0.009709 +vt 0.424419 0.029126 +vt 0.412791 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.319767 0.029126 +vt 0.308140 0.038835 +vt 0.308140 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.011628 0.038835 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.011628 0.038835 +vt 0.005814 0.038835 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.174419 0.029126 +vt 0.174419 0.048544 +vt 0.174419 0.038835 +vt 0.174419 0.019417 +vt 0.174419 0.009709 +vt 0.005814 0.019417 +vt 0.011628 0.009709 +vt 0.005814 0.048544 +vt 0.406977 0.029126 +vt 0.412791 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.313953 0.029126 +vt 0.313953 0.048544 +vt 0.313953 0.038835 +vt 0.313953 0.019417 +vt 0.313953 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.151163 0.019417 +vt 0.139535 0.009709 +vt 0.151163 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.581395 0.029126 +vt 0.569767 0.019417 +vt 0.581395 0.019417 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.011628 0.009709 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.180233 0.029126 +vt 0.168605 0.038835 +vt 0.168605 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.005814 0.048544 +vt 0.383721 0.029126 +vt 0.372093 0.038835 +vt 0.372093 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.011628 0.029126 +vt 0.011628 0.009709 +vt 0.011628 0.019417 +vt 0.011628 0.048544 +vt 0.005814 0.048544 +vt 0.343023 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.029126 +vt 0.005814 0.029126 +vt 0.005814 0.038835 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.005814 0.009709 +vt 0.005814 0.019417 +vt 0.005814 0.038835 +vt 0.005814 0.048544 +vt 0.005814 0.019417 +vt 0.005814 0.029126 +vt 0.563953 0.029126 +vt 0.563953 0.019417 +vt 0.569767 0.029126 +vt 0.563953 0.038835 +vt 0.569767 0.048544 +vt 0.569767 0.038835 +vt 0.569767 0.009709 +vt 0.563953 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.116279 0.029126 +vt 0.116279 0.019417 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.029126 +vt 0.279070 0.038835 +vt 0.273256 0.048544 +vt 0.279070 0.019417 +vt 0.273256 0.009709 +vt 0.279070 0.009709 +vt 0.273256 0.019417 +vt 0.284884 0.038835 +vt 0.284884 0.029126 +vt 0.279070 0.048544 +vt 0.284884 0.019417 +vt 0.284884 0.009709 +vt 0.383721 0.038835 +vt 0.372093 0.048544 +vt 0.383721 0.019417 +vt 0.372093 0.009709 +vt 0.383721 0.009709 +vt 0.372093 0.019417 +vt 0.360465 0.038835 +vt 0.360465 0.029126 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.038835 +vt 0.017442 0.038835 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.529070 0.019417 +vt 0.540698 0.029126 +vt 0.529070 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.424419 0.019417 +vt 0.412791 0.029126 +vt 0.412791 0.019417 +vt 0.424419 0.029126 +vt 0.412791 0.038835 +vt 0.424419 0.048544 +vt 0.424419 0.038835 +vt 0.715116 0.038835 +vt 0.703488 0.048544 +vt 0.703488 0.038835 +vt 0.715116 0.019417 +vt 0.703488 0.009709 +vt 0.715116 0.009709 +vt 0.715116 0.029126 +vt 0.703488 0.019417 +vt 0.697674 0.029126 +vt 0.703488 0.029126 +vt 0.290698 0.038835 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.290698 0.019417 +vt 0.279070 0.009709 +vt 0.290698 0.009709 +vt 0.290698 0.029126 +vt 0.279070 0.019417 +vt 0.476744 0.029126 +vt 0.470930 0.038835 +vt 0.470930 0.029126 +vt 0.476744 0.038835 +vt 0.470930 0.048544 +vt 0.476744 0.019417 +vt 0.470930 0.009709 +vt 0.476744 0.009709 +vt 0.470930 0.019417 +vt 0.482558 0.038835 +vt 0.482558 0.029126 +vt 0.482558 0.048544 +vt 0.482558 0.009709 +vt 0.482558 0.019417 +vt 0.453488 0.009709 +vt 0.441860 0.019417 +vt 0.441860 0.009709 +vt 0.453488 0.029126 +vt 0.453488 0.019417 +vt 0.453488 0.038835 +vt 0.441860 0.029126 +vt 0.441860 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.038835 +vt 0.581395 0.038835 +vt 0.581395 0.009709 +vt 0.308140 0.019417 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.308140 0.029126 +vt 0.296512 0.038835 +vt 0.308140 0.048544 +vt 0.308140 0.038835 +vt 0.139535 0.029126 +vt 0.151163 0.029126 +vt 0.139535 0.038835 +vt 0.151163 0.038835 +vt 0.151163 0.048544 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.197674 0.029126 +vt 0.191860 0.019417 +vt 0.197674 0.019417 +vt 0.191860 0.038835 +vt 0.191860 0.029126 +vt 0.197674 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.197674 0.009709 +vt 0.209302 0.029126 +vt 0.209302 0.019417 +vt 0.209302 0.048544 +vt 0.209302 0.038835 +vt 0.209302 0.009709 +vt 0.343023 0.038835 +vt 0.331395 0.048544 +vt 0.343023 0.019417 +vt 0.331395 0.009709 +vt 0.343023 0.009709 +vt 0.331395 0.019417 +vt 0.325581 0.038835 +vt 0.325581 0.029126 +vt 0.180233 0.038835 +vt 0.168605 0.048544 +vt 0.180233 0.019417 +vt 0.168605 0.009709 +vt 0.180233 0.009709 +vt 0.168605 0.019417 +vt 0.162791 0.029126 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.005814 0.019417 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.005814 0.048544 +vt 0.023256 0.038835 +vt 0.488372 0.019417 +vt 0.476744 0.009709 +vt 0.488372 0.009709 +vt 0.488372 0.029126 +vt 0.476744 0.019417 +vt 0.476744 0.038835 +vt 0.476744 0.029126 +vt 0.476744 0.048544 +vt 0.470930 0.038835 +vt 0.680233 0.019417 +vt 0.668605 0.009709 +vt 0.680233 0.009709 +vt 0.680233 0.029126 +vt 0.668605 0.019417 +vt 0.668605 0.038835 +vt 0.668605 0.029126 +vt 0.232558 0.029126 +vt 0.226744 0.019417 +vt 0.232558 0.019417 +vt 0.226744 0.038835 +vt 0.226744 0.029126 +vt 0.232558 0.038835 +vt 0.226744 0.048544 +vt 0.226744 0.009709 +vt 0.232558 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.019417 +vt 0.238372 0.048544 +vt 0.238372 0.038835 +vt 0.238372 0.009709 +vt 0.482558 0.038835 +vt 0.470930 0.048544 +vt 0.470930 0.038835 +vt 0.482558 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.482558 0.029126 +vt 0.482558 0.019417 +vt 0.319767 0.038835 +vt 0.308140 0.048544 +vt 0.319767 0.019417 +vt 0.308140 0.009709 +vt 0.319767 0.009709 +vt 0.308140 0.019417 +vt 0.302326 0.029126 +vt 0.552326 0.038835 +vt 0.540698 0.048544 +vt 0.540698 0.038835 +vt 0.552326 0.019417 +vt 0.540698 0.009709 +vt 0.552326 0.009709 +vt 0.552326 0.029126 +vt 0.540698 0.019417 +vt 0.529070 0.029126 +vt 0.540698 0.029126 +vt 0.110465 0.048544 +vt 0.110465 0.038835 +vt 0.122093 0.009709 +vt 0.110465 0.019417 +vt 0.110465 0.009709 +vt 0.122093 0.019417 +vt 0.063953 0.048544 +vt 0.290698 0.019417 +vt 0.284884 0.029126 +vt 0.284884 0.019417 +vt 0.290698 0.029126 +vt 0.284884 0.038835 +vt 0.290698 0.048544 +vt 0.290698 0.038835 +vt 0.284884 0.009709 +vt 0.290698 0.009709 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.009709 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.186047 0.029126 +vt 0.186047 0.048544 +vt 0.186047 0.038835 +vt 0.186047 0.009709 +vt 0.023256 0.029126 +vt 0.023256 0.019417 +vt 0.116279 0.009709 +vt 0.116279 0.038835 +vt 0.156977 0.038835 +vt 0.162791 0.029126 +vt 0.220930 0.029126 +vt 0.220930 0.038835 +vt 0.220930 0.019417 +vt 0.220930 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.186047 0.019417 +vt 0.023256 0.048544 +vt 0.063953 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.019417 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.220930 0.048544 +vt 0.156977 0.019417 +vt 0.156977 0.029126 +vt 0.156977 0.009709 +vt 0.156977 0.048544 +vt 0.162791 0.048544 +vt 0.116279 0.048544 +vt 0.302326 0.038835 +vt 0.302326 0.019417 +vt 0.302326 0.009709 +vt 0.023256 0.038835 +vt 0.017442 0.029126 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.244186 0.029126 +vt 0.244186 0.038835 +vt 0.244186 0.048544 +vt 0.244186 0.019417 +vt 0.302326 0.048544 +vt 0.244186 0.009709 +vt 0.290698 0.038835 +vt 0.191860 0.029126 +vt 0.290698 0.029126 +vt 0.279070 0.029126 +vt 0.279070 0.048544 +vt 0.279070 0.038835 +vt 0.279070 0.019417 +vt 0.279070 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.017442 0.009709 +vt 0.023256 0.019417 +vt 0.238372 0.029126 +vt 0.238372 0.038835 +vt 0.238372 0.048544 +vt 0.238372 0.019417 +vt 0.238372 0.009709 +vt 0.273256 0.029126 +vt 0.279070 0.029126 +vt 0.273256 0.038835 +vt 0.273256 0.019417 +vt 0.273256 0.009709 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.197674 0.029126 +vt 0.197674 0.038835 +vt 0.197674 0.048544 +vt 0.197674 0.019417 +vt 0.273256 0.048544 +vt 0.406977 0.038835 +vt 0.406977 0.019417 +vt 0.406977 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.038835 +vt 0.261628 0.048544 +vt 0.261628 0.019417 +vt 0.406977 0.048544 +vt 0.261628 0.009709 +vt 0.459302 0.038835 +vt 0.459302 0.019417 +vt 0.459302 0.009709 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.038835 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.019417 +vt 0.023256 0.029126 +vt 0.377907 0.038835 +vt 0.377907 0.048544 +vt 0.290698 0.048544 +vt 0.290698 0.019417 +vt 0.377907 0.009709 +vt 0.377907 0.019417 +vt 0.377907 0.029126 +vt 0.459302 0.048544 +vt 0.191860 0.038835 +vt 0.191860 0.048544 +vt 0.191860 0.009709 +vt 0.191860 0.019417 +vt 0.290698 0.009709 +vt 0.261628 0.038835 +vt 0.261628 0.019417 +vt 0.261628 0.009709 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.069767 0.029126 +vt 0.069767 0.038835 +vt 0.069767 0.048544 +vt 0.069767 0.019417 +vt 0.261628 0.029126 +vt 0.261628 0.048544 +vt 0.069767 0.009709 +vt 0.023256 0.029126 +vt 0.017442 0.029126 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.337209 0.038835 +vt 0.354651 0.038835 +vt 0.354651 0.048544 +vt 0.354651 0.009709 +vt 0.354651 0.019417 +vt 0.354651 0.029126 +vt 0.023256 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.029126 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.009709 +vt 0.337209 0.048544 +vt 0.343023 0.048544 +vt 0.127907 0.029126 +vt 0.127907 0.019417 +vt 0.127907 0.009709 +vt 0.127907 0.038835 +vt 0.023256 0.009709 +vt 0.529070 0.038835 +vt 0.529070 0.019417 +vt 0.529070 0.009709 +vt 0.023256 0.038835 +vt 0.215116 0.029126 +vt 0.215116 0.038835 +vt 0.023256 0.048544 +vt 0.215116 0.048544 +vt 0.023256 0.009709 +vt 0.215116 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.325581 0.029126 +vt 0.447674 0.038835 +vt 0.325581 0.038835 +vt 0.447674 0.048544 +vt 0.325581 0.048544 +vt 0.325581 0.019417 +vt 0.447674 0.009709 +vt 0.447674 0.019417 +vt 0.447674 0.029126 +vt 0.529070 0.048544 +vt 0.215116 0.009709 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.139535 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.139535 0.019417 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.009709 +vt 0.023256 0.048544 +vt 0.069767 0.038835 +vt 0.029070 0.029126 +vt 0.069767 0.029126 +vt 0.029070 0.019417 +vt 0.069767 0.019417 +vt 0.069767 0.009709 +vt 0.029070 0.009709 +vt 0.029070 0.048544 +vt 0.029070 0.038835 +vt 0.255814 0.038835 +vt 0.255814 0.029126 +vt 0.255814 0.019417 +vt 0.255814 0.009709 +vt 0.255814 0.048544 +vt 0.296512 0.038835 +vt 0.296512 0.029126 +vt 0.296512 0.019417 +vt 0.296512 0.009709 +vt 0.302326 0.029126 +vt 0.296512 0.048544 +vt 0.302326 0.048544 +vt 0.162791 0.038835 +vt 0.162791 0.019417 +vt 0.162791 0.009709 +vt 0.040698 0.038835 +vt 0.162791 0.048544 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.360465 0.009709 +vt 0.360465 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.360465 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.058140 0.038835 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.017442 0.048544 +vt 0.017442 0.048544 +vt 0.017442 0.038835 +vt 0.325581 0.009709 +vt 0.325581 0.019417 +vt 0.273256 0.029126 +vt 0.273256 0.038835 +vt 0.325581 0.048544 +vt 0.273256 0.048544 +vt 0.273256 0.019417 +vt 0.034884 0.038835 +vt 0.034884 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.017442 0.038835 +vt 0.017442 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.019417 +vt 0.017442 0.029126 +vt 0.517442 0.019417 +vt 0.517442 0.029126 +vt 0.517442 0.038835 +vt 0.517442 0.048544 +vt 0.563953 0.048544 +vt 0.517442 0.009709 +vt 0.284884 0.029126 +vt 0.284884 0.038835 +vt 0.284884 0.048544 +vt 0.284884 0.009709 +vt 0.284884 0.019417 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.040698 0.019417 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.040698 0.009709 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.017442 0.009709 +vt 0.005814 0.009709 +vt 0.523256 0.009709 +vt 0.529070 0.009709 +vt 0.523256 0.019417 +vt 0.523256 0.038835 +vt 0.523256 0.029126 +vt 0.523256 0.048544 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.063953 0.009709 +vt 0.063953 0.019417 +vt 0.063953 0.029126 +vt 0.063953 0.038835 +vt 0.063953 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.540698 0.009709 +vt 0.470930 0.019417 +vt 0.470930 0.009709 +vt 0.470930 0.029126 +vt 0.436047 0.048544 +vt 0.470930 0.048544 +vt 0.436047 0.019417 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.337209 0.048544 +vt 0.337209 0.009709 +vt 0.337209 0.019417 +vt 0.337209 0.029126 +vt 0.337209 0.038835 +vt 0.093023 0.038835 +vt 0.093023 0.048544 +vt 0.093023 0.019417 +vt 0.093023 0.029126 +vt 0.040698 0.048544 +vt 0.040698 0.009709 +vt 0.040698 0.019417 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.017442 0.009709 +vt 0.488372 0.038835 +vt 0.436047 0.019417 +vt 0.436047 0.009709 +vt 0.436047 0.029126 +vt 0.389535 0.038835 +vt 0.389535 0.048544 +vt 0.389535 0.009709 +vt 0.389535 0.019417 +vt 0.389535 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.058140 0.048544 +vt 0.058140 0.009709 +vt 0.058140 0.019417 +vt 0.058140 0.029126 +vt 0.058140 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.441860 0.048544 +vt 0.005814 0.048544 +vt 0.005814 0.038835 +vt 0.005814 0.029126 +vt 0.005814 0.019417 +vt 0.005814 0.009709 +vt 0.470930 0.029126 +vt 0.459302 0.038835 +vt 0.459302 0.029126 +vt 0.023256 0.048544 +vt 0.005814 0.038835 +vt 0.023256 0.038835 +vt 0.023256 0.029126 +vt 0.005814 0.029126 +vt 0.023256 0.019417 +vt 0.005814 0.019417 +vt 0.023256 0.009709 +vt 0.005814 0.009709 +vt 0.029070 0.038835 +vt 0.029070 0.029126 +vt 0.697674 0.038835 +vt 0.697674 0.019417 +vt 0.697674 0.009709 +vt 0.651163 0.038835 +vt 0.651163 0.048544 +vt 0.697674 0.048544 +vt 0.651163 0.009709 +vt 0.651163 0.019417 +vt 0.651163 0.029126 +vt 0.436047 0.029126 +vt 0.436047 0.038835 +vt 0.436047 0.048544 +vt 0.436047 0.019417 +vt 0.331395 0.038835 +vt 0.331395 0.048544 +vt 0.331395 0.009709 +vt 0.331395 0.019417 +vt 0.331395 0.029126 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.680233 0.038835 +vt 0.668605 0.048544 +vt 0.662791 0.038835 +vt 0.662791 0.019417 +vt 0.662791 0.009709 +vt 0.662791 0.029126 +vt 0.488372 0.038835 +vt 0.662791 0.048544 +vt 0.488372 0.048544 +vt 0.488372 0.009709 +vt 0.488372 0.019417 +vt 0.488372 0.029126 +vt 0.383721 0.038835 +vt 0.383721 0.048544 +vt 0.383721 0.009709 +vt 0.383721 0.019417 +vt 0.383721 0.029126 +vt 0.116279 0.038835 +vt 0.116279 0.048544 +vt 0.116279 0.019417 +vt 0.116279 0.029126 +vt 0.052326 0.009709 +vt 0.052326 0.019417 +vt 0.052326 0.029126 +vt 0.052326 0.038835 +vt 0.029070 0.048544 +vt 0.052326 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.029070 0.038835 +vt 0.023256 0.038835 +vt 0.459302 0.009709 +vt 0.459302 0.019417 +vt 0.424419 0.038835 +vt 0.424419 0.048544 +vt 0.459302 0.048544 +vt 0.424419 0.009709 +vt 0.424419 0.019417 +vt 0.424419 0.029126 +vt 0.313953 0.029126 +vt 0.313953 0.038835 +vt 0.313953 0.048544 +vt 0.313953 0.019417 +vt 0.029070 0.038835 +vt 0.029070 0.048544 +vt 0.029070 0.009709 +vt 0.029070 0.019417 +vt 0.029070 0.029126 +vt 0.023256 0.009709 +vt 0.238372 0.019417 +vt 0.296512 0.009709 +vt 0.238372 0.029126 +vt 0.238372 0.048544 +vt 0.296512 0.048544 +vt 0.034884 0.009709 +vt 0.034884 0.019417 +vt 0.034884 0.029126 +vt 0.034884 0.038835 +vt 0.238372 0.038835 +vt 0.034884 0.048544 +vt 0.017442 0.009709 +vt 0.017442 0.048544 +vt 0.308140 0.009709 +vt 0.406977 0.009709 +vt 0.412791 0.009709 +vt 0.406977 0.019417 +vt 0.406977 0.029126 +vt 0.406977 0.048544 +vt 0.406977 0.038835 +vt 0.325581 0.019417 +vt 0.325581 0.029126 +vt 0.325581 0.038835 +vt 0.325581 0.048544 +vt 0.040698 0.019417 +vt 0.325581 0.009709 +vt 0.040698 0.029126 +vt 0.040698 0.038835 +vt 0.040698 0.048544 +vt 0.023256 0.009709 +vt 0.023256 0.019417 +vt 0.023256 0.029126 +vt 0.023256 0.038835 +vt 0.023256 0.048544 +vt 0.005814 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.009709 +vt 0.005814 0.048544 +vt 0.017442 0.048544 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.011628 0.009709 +vt 0.424419 0.048544 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.005814 0.009709 +vt 0.284884 0.048544 +vt 0.383721 0.048544 +vt 0.005814 0.048544 +vt 0.529070 0.048544 +vt 0.412791 0.048544 +vt 0.715116 0.048544 +vt 0.290698 0.048544 +vt 0.476744 0.048544 +vt 0.581395 0.048544 +vt 0.197674 0.048544 +vt 0.343023 0.048544 +vt 0.180233 0.048544 +vt 0.005814 0.009709 +vt 0.232558 0.048544 +vt 0.482558 0.048544 +vt 0.319767 0.048544 +vt 0.552326 0.048544 +vt 0.122093 0.048544 +vt 0.284884 0.048544 +vt 0.197674 0.009709 +vt 0.058140 0.009709 +vt 0.127907 0.048544 +vt 0.325581 0.009709 +vt 0.069767 0.048544 +vt 0.273256 0.009709 +vt 0.273256 0.009709 +vt 0.331395 0.009709 +vt 0.436047 0.009709 +vt 0.093023 0.009709 +vt 0.488372 0.048544 +vt 0.116279 0.009709 +vt 0.453488 0.048544 +vt 0.005814 0.048544 +vt 0.436047 0.009709 +vt 0.680233 0.048544 +vt 0.116279 0.009709 +vt 0.023256 0.048544 +vt 0.313953 0.009709 +vt 0.238372 0.009709 +vt 0.040698 0.009709 +vn -0.1987 -0.9327 0.3009 +vn -0.4297 -0.5556 -0.7118 +vn -0.0322 -0.8001 0.5990 +vn 0.8167 0.0672 0.5732 +vn 0.5228 0.6581 0.5419 +vn -0.0041 0.9160 -0.4012 +vn 0.0025 0.6642 -0.7475 +vn -0.2349 -0.6674 -0.7066 +vn 0.1861 0.6827 -0.7066 +vn -0.3240 -0.5971 -0.7338 +vn -0.4111 0.7374 -0.5360 +vn -0.0434 0.6814 -0.7306 +vn 0.0026 -0.7882 0.6154 +vn -0.6562 -0.5407 -0.5264 +vn 0.3294 0.7106 0.6217 +vn 0.2890 -0.8069 0.5151 +vn 0.5413 0.6728 0.5043 +vn -0.2631 -0.6162 -0.7423 +vn -0.4144 0.6926 -0.5904 +vn -0.0036 0.6890 -0.7247 +vn 0.0106 -0.7691 0.6390 +vn -0.4894 -0.6433 -0.5888 +vn 0.2780 0.7127 0.6441 +vn -0.1731 -0.5478 0.8185 +vn 0.4082 0.7238 0.5563 +vn -0.2815 -0.6019 -0.7473 +vn -0.5240 0.6396 -0.5624 +vn -0.0329 0.6894 -0.7237 +vn 0.0527 -0.7923 0.6079 +vn -0.5185 -0.6701 -0.5311 +vn 0.3061 0.7107 0.6334 +vn 0.3483 -0.6377 0.6870 +vn 0.3925 0.7915 0.4685 +vn -0.3480 -0.6379 -0.6871 +vn -0.5016 -0.7102 0.4940 +vn -0.7390 -0.1192 -0.6631 +vn -0.2105 -0.7437 0.6346 +vn 0.5180 0.2010 0.8315 +vn 0.4184 0.6429 0.6416 +vn 0.3503 0.7327 -0.5835 +vn 0.2726 0.7074 -0.6521 +vn -0.8686 0.4478 -0.2122 +vn -0.3249 -0.6289 -0.7064 +vn -0.2826 -0.8411 0.4611 +vn -0.7449 -0.2105 -0.6331 +vn -0.1211 -0.7602 0.6383 +vn 0.5858 0.2530 0.7700 +vn 0.4078 0.6594 0.6316 +vn 0.1204 0.8161 -0.5652 +vn 0.4208 0.8642 -0.2758 +vn -0.2328 0.4357 0.8695 +vn -0.1424 0.3654 0.9199 +vn 0.1164 -0.7448 0.6571 +vn 0.1257 -0.7617 -0.6356 +vn -0.0781 -0.6041 -0.7931 +vn 0.0683 0.7675 0.6374 +vn 0.4322 -0.3767 0.8194 +vn -0.0481 0.7362 -0.6750 +vn -0.2721 0.8014 0.5326 +vn 0.2499 -0.9033 0.3486 +vn 0.2764 -0.4564 -0.8457 +vn 0.3547 -0.2366 -0.9045 +vn 0.0214 -0.6144 -0.7887 +vn -0.5098 0.5459 -0.6649 +vn -0.0537 0.7549 -0.6536 +vn 0.1032 -0.6636 0.7409 +vn 0.3203 -0.6132 -0.7221 +vn -0.0290 0.7634 0.6453 +vn 0.2851 -0.5604 0.7776 +vn -0.4289 0.6390 0.6385 +vn 0.1055 0.5991 -0.7937 +vn -0.7651 -0.0157 -0.6437 +vn 0.3776 0.7691 -0.5156 +vn -0.3675 -0.6247 -0.6889 +vn -0.5403 -0.7272 0.4234 +vn -0.1941 -0.7585 0.6221 +vn 0.6650 -0.0222 0.7465 +vn 0.3773 0.6784 0.6304 +vn 0.1253 0.6280 -0.7681 +vn -0.6681 -0.3254 -0.6692 +vn 0.1932 0.7529 -0.6291 +vn -0.3097 -0.6454 -0.6982 +vn -0.3230 -0.7746 0.5437 +vn -0.1680 -0.7435 0.6473 +vn 0.5529 0.3586 0.7521 +vn 0.3940 0.6391 0.6605 +vn 0.1134 -0.7473 0.6548 +vn 0.0412 -0.7952 -0.6050 +vn -0.1031 -0.6071 -0.7879 +vn 0.0994 0.7632 0.6384 +vn 0.4049 -0.4241 0.8101 +vn -0.0390 0.7303 -0.6820 +vn -0.2053 0.8301 0.5185 +vn 0.8458 -0.4633 0.2644 +vn 0.3933 -0.0332 -0.9188 +vn 0.3572 0.1234 -0.9259 +vn 0.0197 0.7699 -0.6379 +vn 0.3813 -0.4495 -0.8078 +vn -0.3840 0.7257 -0.5708 +vn 0.1511 -0.7325 -0.6638 +vn 0.2022 -0.7544 0.6245 +vn -0.0330 -0.5991 0.8000 +vn -0.5785 0.4643 0.6706 +vn -0.0590 0.7452 0.6642 +vn 0.2660 0.5494 -0.7921 +vn -0.6977 -0.2607 -0.6672 +vn 0.5392 0.4678 -0.7003 +vn -0.3682 -0.6581 -0.6568 +vn -0.6589 -0.4275 0.6189 +vn -0.3391 -0.6858 0.6439 +vn 0.5198 0.3263 0.7895 +vn 0.4013 0.5646 0.7212 +vn 0.1574 0.6517 -0.7420 +vn -0.4791 -0.5461 -0.6872 +vn 0.1738 0.7123 -0.6800 +vn -0.2478 -0.6701 -0.6997 +vn -0.2610 -0.7103 0.6537 +vn -0.1769 -0.7169 0.6743 +vn 0.3358 0.6040 0.7228 +vn 0.2714 0.6559 0.7044 +vn 0.0637 0.7755 -0.6282 +vn 0.5355 -0.2746 -0.7987 +vn -0.3209 0.8036 -0.5013 +vn 0.0937 -0.7779 -0.6214 +vn 0.1674 -0.7911 0.5883 +vn -0.0858 -0.5874 0.8048 +vn -0.6290 0.3764 0.6802 +vn -0.0707 0.7365 0.6728 +vn -0.0274 -0.6061 -0.7949 +vn -0.5492 0.4956 -0.6729 +vn -0.0503 0.7458 -0.6643 +vn 0.1415 -0.7141 0.6856 +vn 0.1464 -0.7715 -0.6191 +vn 0.0185 0.7670 0.6414 +vn 0.3708 -0.4877 0.7903 +vn -0.3791 0.7174 0.5845 +vn 0.2682 0.5175 -0.8126 +vn -0.7339 -0.1388 -0.6649 +vn 0.6189 0.4247 -0.6608 +vn -0.4028 -0.6453 -0.6491 +vn -0.7259 -0.3441 0.5955 +vn -0.3715 -0.6781 0.6342 +vn 0.5317 0.2193 0.8181 +vn 0.4652 0.5966 0.6540 +vn -0.8947 0.0303 -0.4457 +vn -0.3087 -0.7240 0.6169 +vn -0.6429 -0.4665 0.6076 +vn 0.6424 -0.0806 0.7621 +vn 0.4092 0.6117 0.6770 +vn 0.2052 0.4256 -0.8813 +vn 0.0785 0.6076 -0.7903 +vn -0.1541 -0.6901 -0.7071 +vn 0.1541 0.6901 -0.7071 +vn -0.7380 0.1716 0.6526 +vn -0.3768 -0.7319 -0.5678 +vn -0.4807 -0.5952 0.6439 +vn 0.1003 0.5476 0.8307 +vn 0.6662 0.5656 0.4861 +vn 0.6275 0.5623 -0.5385 +vn 0.6760 -0.2402 -0.6966 +vn 0.1847 -0.1508 0.9712 +vn 0.0499 -0.6952 -0.7171 +vn -0.0981 -0.6249 0.7745 +vn -0.1198 0.7536 0.6463 +vn -0.8413 0.2036 0.5008 +vn -0.0738 0.7751 -0.6275 +vn -0.7186 0.2744 -0.6390 +vn 0.2823 0.5925 -0.7545 +vn -0.0766 -0.7686 -0.6351 +vn 0.4568 0.3596 -0.8137 +vn 0.4108 0.6761 -0.6117 +vn -0.3244 -0.6204 0.7140 +vn -0.1571 -0.8670 -0.4729 +vn 0.0430 0.6478 0.7606 +vn -0.7702 -0.2511 0.5863 +vn 0.0060 0.8495 0.5276 +vn -0.6346 -0.4263 0.6447 +vn -0.1690 -0.7494 -0.6402 +vn -0.3227 -0.6359 0.7011 +vn 0.0807 0.6449 0.7600 +vn 0.0732 0.7883 0.6109 +vn 0.3775 0.6348 -0.6742 +vn 0.4561 0.5005 -0.7358 +vn -0.0017 0.7596 -0.6504 +vn 0.3155 -0.5701 -0.7586 +vn -0.3876 0.6785 -0.6240 +vn 0.0782 -0.6688 -0.7393 +vn 0.1825 -0.7019 0.6885 +vn -0.0006 -0.6256 0.7801 +vn -0.4645 0.5846 0.6652 +vn -0.0316 0.7504 0.6602 +vn -0.7490 -0.6504 -0.1266 +vn 0.3403 -0.8625 0.3746 +vn 0.6673 -0.6999 0.2549 +vn -0.7240 0.6670 -0.1761 +vn -0.6766 -0.5182 -0.5231 +vn 0.6065 0.7850 0.1262 +vn -0.3891 0.7577 -0.5240 +vn 0.7104 0.5808 0.3976 +vn 0.9360 -0.3489 0.0475 +vn 0.1504 -0.2267 -0.9623 +vn 0.9639 -0.1225 0.2366 +vn -0.9097 0.4116 -0.0547 +vn 0.1790 0.3744 -0.9098 +vn -0.1465 -0.2820 0.9482 +vn -0.9324 0.3108 0.1844 +vn -0.1861 -0.6826 0.7066 +vn 0.2349 0.6674 0.7066 +vn 0.6368 -0.3605 0.6816 +vn 0.5636 0.8227 0.0748 +vn 0.3938 -0.0795 0.9158 +vn -0.1541 -0.6901 0.7071 +vn 0.1541 0.6901 0.7071 +vn -0.1341 0.1854 0.9735 +vn 0.8973 -0.2880 0.3345 +vn -0.2066 0.4012 0.8924 +vn 0.1397 0.5999 -0.7878 +vn 0.0783 0.6345 -0.7690 +vn 0.1359 0.8990 0.4163 +vn 0.0466 0.2350 0.9709 +vn 0.6456 -0.5877 -0.4877 +vn 0.3547 0.6721 -0.6500 +vn 0.2630 0.7857 -0.5599 +vn 0.4795 0.6087 0.6320 +vn 0.9667 -0.1673 -0.1936 +vn 0.8642 -0.3905 -0.3173 +vn 0.6464 0.7413 0.1806 +vn 0.6023 -0.1871 -0.7761 +vn 0.4726 0.8787 -0.0666 +vn -0.4138 -0.6167 -0.6697 +vn 0.7769 -0.0817 0.6243 +vn 0.6816 -0.1570 -0.7146 +vn 0.8539 0.2805 0.4385 +vn -0.3819 -0.6595 -0.6474 +vn 0.2402 0.6116 0.7538 +vn -0.3768 -0.6620 0.6479 +vn 0.7731 0.2130 0.5975 +vn 0.6519 -0.5646 -0.5062 +vn 0.8757 0.3674 0.3135 +vn 0.3347 -0.4721 0.8155 +vn 0.9334 -0.1140 -0.3404 +vn 0.4092 0.2351 0.8816 +vn -0.8497 0.0342 0.5261 +vn -0.6330 0.0984 -0.7678 +vn -0.7932 0.2621 0.5497 +vn -0.1729 0.7512 -0.6370 +vn -0.4712 0.0065 0.8820 +vn -0.2611 -0.9544 0.1444 +vn -0.3929 0.2436 0.8867 +vn 0.2852 0.9511 -0.1184 +vn -0.3122 0.8760 -0.3676 +vn -0.8135 -0.5406 -0.2144 +vn -0.4886 0.2032 0.8485 +vn 0.4018 0.4518 0.7965 +vn 0.7895 0.3989 -0.4665 +vn 0.2153 0.7629 0.6096 +vn 0.8207 0.2092 -0.5316 +vn -0.1640 -0.7047 -0.6903 +vn -0.8343 -0.1971 0.5149 +vn -0.4283 -0.3953 -0.8126 +vn -0.7326 -0.1263 0.6688 +vn 0.8255 0.2021 -0.5270 +vn 0.4050 0.4383 0.8024 +vn -0.8255 -0.2021 0.5270 +vn -0.4050 -0.4383 -0.8024 +vn 0.5512 -0.4219 -0.7198 +vn -0.7104 -0.3079 -0.6329 +vn -0.5454 0.4621 0.6993 +vn -0.7567 0.1368 -0.6393 +vn -0.3768 0.2713 0.8857 +vn 0.4880 0.2185 -0.8450 +vn 0.3818 0.9001 0.2100 +vn -0.6068 0.7171 -0.3429 +vn -0.9275 0.2130 -0.3071 +vn 0.1651 -0.4340 -0.8856 +vn 0.3850 -0.4908 -0.7816 +vn 0.8231 0.4343 0.3659 +vn -0.2725 -0.0363 0.9615 +vn 0.8754 0.0177 0.4831 +vn -0.4555 0.1385 0.8794 +vn -0.9397 -0.0794 -0.3326 +vn 0.4553 -0.1778 -0.8724 +vn -0.8018 -0.4861 -0.3475 +vn 0.9005 0.2043 0.3839 +vn -0.0753 -0.3799 0.9219 +vn 0.9465 -0.2556 0.1970 +vn -0.2968 -0.4084 0.8632 +vn -0.9147 0.3074 -0.2624 +vn 0.2880 0.3635 -0.8859 +vn -0.8699 -0.2801 -0.4061 +vn -0.5841 -0.7385 0.3368 +vn -0.1116 -0.7158 -0.6894 +vn -0.2993 -0.7263 0.6188 +vn 0.6527 0.7016 -0.2861 +vn 0.5372 -0.6386 -0.5511 +vn -0.4582 0.6183 0.6386 +vn 0.2784 0.9477 -0.1559 +vn 0.5644 0.3101 0.7650 +vn -0.0334 0.4046 0.9139 +vn 0.7022 0.5285 -0.4771 +vn -0.1951 -0.4628 -0.8647 +vn 0.7413 0.6178 -0.2622 +vn -0.7412 -0.4814 0.4679 +vn -0.6072 0.1258 -0.7846 +vn 0.5695 -0.0387 0.8211 +vn -0.6237 -0.4191 0.6598 +vn 0.1319 -0.7982 0.5877 +vn 0.9894 -0.1101 -0.0945 +vn 0.3317 -0.2589 0.9071 +vn 0.9229 -0.1076 -0.3696 +vn -0.1720 0.3889 -0.9051 +vn -0.9055 0.1755 0.3863 +vn -0.0534 0.9031 -0.4261 +vn -0.8136 -0.0107 0.5813 +vn 0.9149 -0.1346 -0.3806 +vn 0.1149 -0.8170 0.5651 +vn -0.1149 0.8170 -0.5651 +vn -0.9149 0.1346 0.3805 +vn -0.6417 -0.6459 -0.4136 +vn -0.3821 0.8420 -0.3808 +vn -0.7065 -0.6883 -0.1645 +vn 0.6580 0.6409 0.3953 +vn -0.3559 0.7176 -0.5986 +vn 0.3721 -0.7243 0.5804 +vn 0.8200 0.5213 0.2365 +vn 0.5610 -0.7234 0.4024 +vn -0.7080 -0.6741 0.2105 +vn 0.5748 -0.7962 -0.1886 +vn -0.8752 0.3490 0.3350 +vn -0.4792 -0.6581 -0.5807 +vn 0.8653 -0.3782 0.3289 +vn -0.2807 -0.7853 0.5519 +vn 0.6372 -0.7411 -0.2113 +vn -0.5180 -0.6049 0.6048 +vn -0.6122 0.7706 0.1772 +vn 0.4757 0.5678 -0.6718 +vn -0.8631 0.2704 -0.4266 +vn -0.2540 -0.8889 0.3812 +vn -0.2973 -0.7836 0.5455 +vn -0.3425 0.5823 0.7373 +vn -0.6858 0.5747 0.4465 +vn -0.3263 -0.4130 -0.8503 +vn -0.5737 -0.7394 0.3525 +vn 0.4609 0.5945 0.6589 +vn -0.2703 -0.5498 0.7903 +vn -0.0407 -0.7186 0.6942 +vn 0.2925 0.7527 -0.5898 +vn 0.1464 0.6427 0.7520 +vn 0.0092 0.7270 -0.6866 +vn -0.2542 -0.7843 -0.5658 +vn -0.4950 -0.5784 -0.6484 +vn 0.4732 0.5942 0.6504 +vn -0.0318 -0.7263 0.6866 +vn -0.4732 -0.5942 -0.6504 +vn 0.0318 0.7263 -0.6866 +vn 0.5156 -0.7732 -0.3691 +vn -0.7364 -0.4992 -0.4565 +vn -0.5054 0.7930 0.3402 +vn -0.7567 -0.1865 -0.6267 +vn -0.3983 0.6908 0.6034 +vn 0.5338 -0.2659 -0.8027 +vn 0.5662 0.8138 -0.1306 +vn 0.6100 -0.3559 -0.7079 +vn -0.4050 -0.9141 -0.0185 +vn -0.6263 0.3606 0.6911 +vn -0.6635 -0.7193 -0.2060 +vn -0.4668 0.4479 0.7625 +vn 0.1080 0.9510 -0.2897 +vn -0.2329 -0.1743 0.9567 +vn 0.6717 -0.7263 0.1462 +vn -0.3719 -0.1344 0.9185 +vn -0.7324 0.6351 -0.2456 +vn -0.8581 0.4350 -0.2728 +vn 0.1661 -0.2106 -0.9633 +vn -0.3430 0.9364 0.0747 +vn -0.6911 -0.2147 -0.6901 +vn -0.2434 0.0053 -0.9699 +vn 0.3164 0.0251 0.9483 +vn -0.2154 0.9453 0.2449 +vn 0.5033 -0.8631 0.0415 +vn 0.6902 0.1939 0.6971 +vn 0.4746 -0.8751 -0.0949 +vn 0.5283 0.5594 -0.6387 +vn -0.4281 -0.6918 -0.5815 +vn -0.0044 -0.7265 -0.6872 +vn 0.0569 0.7064 0.7055 +vn 0.3348 0.7987 -0.5000 +vn -0.1546 -0.6357 0.7563 +vn 0.3769 0.4792 0.7927 +vn 0.1890 0.3140 0.9304 +vn 0.0563 -0.9287 0.3666 +vn 0.4215 -0.8770 0.2306 +vn -0.1489 0.9889 -0.0026 +vn -0.1696 0.1151 0.9788 +vn -0.4754 0.8520 -0.2192 +vn 0.1701 -0.4667 -0.8679 +vn -0.2498 -0.3312 -0.9099 +vn 0.2041 0.3303 0.9216 +vn 0.4386 -0.8724 0.2156 +vn -0.2041 -0.3303 -0.9216 +vn -0.4386 0.8724 -0.2156 +vn -0.0958 -0.7667 0.6348 +vn -0.6132 -0.6768 -0.4072 +vn 0.3413 -0.8457 0.4102 +vn -0.4209 -0.5140 -0.7474 +vn -0.0863 0.9762 -0.1987 +vn 0.4885 0.5012 0.7142 +vn 0.1795 0.7247 -0.6653 +vn 0.6291 0.7573 -0.1751 +vn -0.2848 0.2525 -0.9247 +vn -0.6573 -0.7283 0.1935 +vn -0.6652 0.3941 -0.6342 +vn -0.4200 -0.8624 0.2825 +vn -0.2708 0.1673 0.9480 +vn 0.4379 -0.1541 -0.8857 +vn -0.6430 0.6024 -0.4730 +vn 0.5907 -0.2668 -0.7615 +vn -0.4049 0.1976 0.8927 +vn -0.1982 0.9410 -0.2743 +vn 0.2786 -0.9100 0.3070 +vn -0.2843 0.0119 0.9586 +vn 0.8624 0.2612 0.4336 +vn 0.6756 -0.5956 0.4346 +vn 0.2653 -0.3415 -0.9017 +vn 0.2986 0.9157 -0.2689 +vn 0.1365 -0.3645 -0.9212 +vn -0.3365 -0.8709 0.3583 +vn -0.4280 -0.8614 0.2735 +vn 0.6924 -0.3819 -0.6122 +vn 0.3992 -0.9112 0.1021 +vn 0.3246 0.1860 0.9274 +vn 0.1185 -0.9056 0.4073 +vn 0.6368 0.3335 0.6952 +vn -0.0183 0.9992 -0.0366 +vn -0.6853 -0.3414 -0.6433 +vn -0.4501 0.8913 -0.0558 +vn -0.3135 -0.5477 -0.7757 +vn 0.6484 0.3485 0.6769 +vn 0.4082 -0.9096 0.0773 +vn -0.6484 -0.3485 -0.6769 +vn -0.4082 0.9096 -0.0773 +vn -0.3210 -0.8300 0.4562 +vn -0.6943 0.3903 0.6046 +vn -0.0034 0.8914 -0.4532 +vn -0.9766 0.1648 -0.1381 +vn -0.4063 0.8092 0.4244 +vn 0.2642 -0.9099 -0.3197 +vn 0.6182 0.6582 -0.4296 +vn -0.6470 0.7509 -0.1324 +vn -0.8747 -0.4842 -0.0214 +vn 0.8025 0.5477 0.2367 +vn 0.3362 -0.3065 -0.8905 +vn 0.2268 -0.4975 -0.8373 +vn -0.5725 0.4524 -0.6838 +vn -0.7144 0.1696 0.6788 +vn 0.3935 0.9071 0.1492 +vn -0.4974 -0.8672 -0.0226 +vn 0.6116 -0.4102 -0.6765 +vn 0.7246 0.6868 0.0569 +vn 0.3657 -0.9172 0.1581 +vn -0.7300 -0.3981 0.5556 +vn 0.0714 0.9675 -0.2427 +vn 0.9870 -0.0412 0.1553 +vn -0.3877 -0.8217 0.4178 +vn -0.7500 -0.5546 -0.3604 +vn 0.3517 0.8382 0.4168 +vn -0.8003 0.5975 0.0502 +vn -0.1623 -0.7226 0.6719 +vn -0.5460 0.4845 0.6835 +vn -0.9104 0.0213 -0.4132 +vn 0.7965 0.0791 0.5995 +vn 0.2178 0.9745 0.0544 +vn -0.2725 -0.9457 0.1773 +vn 0.3271 -0.0944 -0.9402 +vn -0.0894 0.9675 -0.2364 +vn -0.8719 -0.0755 -0.4839 +vn -0.9938 0.0941 0.0589 +vn 0.9998 -0.0174 0.0077 +vn -0.2200 -0.9383 0.2667 +vn -0.7517 0.2021 0.6277 +vn 0.0117 0.9977 -0.0670 +vn 0.7580 -0.1398 -0.6371 +vn -0.2097 -0.9497 0.2325 +vn 0.4615 0.5732 -0.6771 +vn -0.5932 0.7810 0.1952 +vn -0.4711 0.8332 0.2896 +vn -0.2876 0.3872 0.8760 +vn 0.2811 -0.4577 -0.8435 +vn 0.3577 0.9110 -0.2051 +vn -0.3941 -0.8261 0.4027 +vn 0.4298 0.8782 0.2101 +vn -0.8149 0.5790 -0.0280 +vn 0.6148 -0.7839 0.0867 +vn -0.7295 -0.6585 -0.1848 +vn -0.6685 0.4797 0.5683 +vn 0.4678 0.8795 -0.0877 +vn 0.5949 -0.5882 -0.5479 +vn -0.6039 -0.7701 0.2056 +vn -0.3291 0.8416 0.4282 +vn 0.2781 0.4194 0.8642 +vn 0.5038 0.6762 -0.5376 +vn -0.5943 -0.4566 0.6621 +vn 0.5481 -0.7374 -0.3948 +vn 0.8556 -0.3745 0.3573 +vn -0.6550 -0.4905 0.5748 +vn -0.6499 0.7288 0.2155 +vn 0.4264 0.5950 -0.6813 +vn 0.6335 -0.7499 -0.1903 +vn -0.4599 -0.5565 0.6919 +vn 0.8109 0.3794 -0.4456 +vn -0.8100 -0.1752 0.5596 +vn 0.2914 -0.7470 -0.5976 +vn 0.2690 0.6740 -0.6880 +vn -0.8448 0.5217 -0.1193 +vn 0.7547 -0.5933 0.2801 +vn -0.6461 -0.4114 0.6429 +vn -0.3883 0.8721 0.2978 +vn 0.3508 0.5176 -0.7804 +vn 0.3826 -0.8795 -0.2829 +vn -0.4180 -0.3621 0.8332 +vn 0.8765 0.2784 -0.3927 +vn -0.8407 -0.2444 0.4833 +vn -0.1261 -0.5163 -0.8471 +vn 0.3504 0.5253 0.7754 +vn 0.8547 -0.2614 0.4485 +vn 0.0839 0.5954 -0.7990 +vn -0.5247 -0.5033 0.6866 +vn -0.6983 0.7157 0.0145 +vn 0.3298 0.5010 -0.8001 +vn 0.7411 -0.6602 -0.1225 +vn -0.4331 -0.4093 0.8031 +vn -0.9589 0.1474 -0.2423 +vn 0.5949 0.6374 -0.4898 +vn 0.1486 -0.7505 -0.6439 +vn 0.4890 -0.8146 -0.3119 +vn -0.5073 -0.4918 0.7076 +vn -0.6247 -0.3704 0.6874 +vn -0.0710 0.8171 0.5721 +vn 0.4464 0.5441 -0.7104 +vn 0.5914 -0.7831 -0.1927 +vn -0.4738 -0.5082 0.7192 +vn 0.5172 0.4376 -0.7356 +vn -0.5878 -0.1870 0.7871 +vn 0.3673 -0.8894 -0.2722 +vn 0.0349 0.4740 -0.8798 +vn -0.9371 0.0139 -0.3487 +vn 0.7538 -0.1086 0.6480 +vn -0.5897 -0.4279 0.6849 +vn -0.6510 0.7559 -0.0687 +vn 0.3060 0.3065 -0.9013 +vn 0.6576 -0.7530 0.0232 +vn -0.4199 -0.1893 0.8876 +vn -0.2473 0.9580 0.1455 +vn -0.2020 -0.9484 0.2444 +vn 0.5830 -0.6765 0.4500 +vn -0.4605 0.1303 0.8781 +vn 0.4085 -0.4306 -0.8048 +vn 0.2165 0.9668 -0.1358 +vn 0.3120 -0.4462 -0.8388 +vn 0.2631 -0.1403 -0.9545 +vn -0.5192 -0.5257 -0.6738 +vn -0.8836 -0.0571 -0.4648 +vn -0.7339 0.3227 0.5977 +vn -0.8435 -0.1810 -0.5057 +vn 0.7459 0.0919 0.6597 +vn -0.6172 -0.7793 -0.1086 +vn -0.5849 0.2350 0.7763 +vn 0.6106 0.7832 0.1175 +vn 0.4756 -0.3733 -0.7965 +vn 0.6124 -0.0786 -0.7866 +vn -0.3226 0.1594 0.9330 +vn -0.8634 -0.2877 -0.4145 +vn 0.4235 0.1895 -0.8858 +vn -0.1220 0.9649 -0.2326 +vn 0.4553 -0.0643 -0.8880 +vn 0.5315 -0.4396 0.7241 +vn 0.1099 -0.9620 0.2501 +vn -0.4799 0.2512 0.8406 +vn -0.7576 0.1088 0.6436 +vn -0.7008 0.5242 -0.4838 +vn 0.1837 0.9773 -0.1054 +vn 0.5751 -0.0263 -0.8176 +vn 0.4974 -0.1172 -0.8595 +vn -0.5375 -0.8324 -0.1348 +vn -0.1628 -0.9842 0.0700 +vn -0.4796 0.2149 0.8508 +vn -0.4151 0.2790 0.8659 +vn 0.5206 0.8375 0.1659 +vn 0.1999 0.2686 0.9423 +vn 0.4974 0.6591 -0.5640 +vn 0.5980 0.1225 -0.7921 +vn -0.6773 0.1812 -0.7131 +vn 0.2671 -0.2905 0.9188 +vn -0.8915 -0.1078 0.4400 +vn 0.3109 -0.6088 -0.7299 +vn -0.2057 -0.2590 0.9437 +vn -0.1071 -0.9928 -0.0531 +vn 0.1601 0.9863 -0.0400 +vn 0.2084 -0.0774 -0.9750 +vn -0.6295 -0.7689 -0.1116 +vn -0.7003 -0.7117 -0.0558 +vn -0.0933 -0.0398 0.9948 +vn -0.2426 0.0430 0.9692 +vn 0.6697 0.7197 0.1831 +vn 0.7238 0.6792 0.1215 +vn 0.1418 0.0367 -0.9892 +vn 0.2546 -0.2867 -0.9236 +vn -0.8678 -0.4559 -0.1977 +vn -0.4612 0.1783 0.8692 +vn 0.8370 0.4766 0.2687 +vn 0.1574 -0.5422 -0.8254 +vn -0.9128 0.1144 -0.3920 +vn -0.4638 0.5400 0.7024 +vn 0.7789 -0.0185 0.6269 +vn -0.5785 0.4621 -0.6722 +vn 0.4140 -0.2452 -0.8766 +vn -0.3969 0.3223 0.8594 +vn -0.0643 -0.9634 0.2601 +vn 0.4249 -0.1725 -0.8886 +vn 0.1659 -0.8895 0.4257 +vn -0.4703 0.3457 0.8120 +vn -0.2182 0.9112 -0.3495 +vn 0.5066 0.0654 -0.8597 +vn 0.5320 -0.3871 0.7531 +vn -0.7423 0.1524 0.6525 +vn -0.6625 0.5178 -0.5412 +vn -0.3562 -0.8956 -0.2664 +vn -0.3446 0.1057 0.9328 +vn -0.1992 0.9799 0.0053 +vn 0.3336 0.1680 -0.9276 +vn 0.2019 -0.9794 -0.0085 +vn -0.3694 0.0117 0.9292 +vn 0.3135 0.2266 -0.9222 +vn 0.6053 -0.7645 0.2216 +vn -0.4899 -0.0173 0.8716 +vn -0.6371 0.7546 -0.1572 +vn -0.7236 -0.5849 -0.3664 +vn -0.5327 -0.8438 0.0647 +vn -0.3446 0.5336 0.7724 +vn 0.1284 0.9133 -0.3865 +vn 0.2985 -0.3186 -0.8997 +vn -0.1022 -0.9435 0.3152 +vn -0.2823 0.4325 0.8563 +vn 0.3348 -0.2232 -0.9155 +vn 0.2145 -0.8276 0.5187 +vn -0.4124 0.4160 0.8104 +vn -0.3006 0.8738 -0.3824 +vn 0.3416 0.1692 -0.9245 +vn 0.4642 -0.1135 0.8784 +vn -0.8134 -0.1030 0.5724 +vn -0.8122 0.1267 -0.5695 +vn 0.9415 -0.2104 -0.2631 +vn 0.0633 -0.9271 0.3694 +vn -0.9104 -0.1301 0.3928 +vn -0.1711 0.9275 -0.3324 +vn -0.0690 -0.8846 -0.4613 +vn -0.8465 -0.2876 0.4481 +vn 0.3498 0.8982 0.2664 +vn 0.7957 -0.0475 -0.6039 +vn -0.5592 -0.4258 0.7113 +vn 0.5651 0.5927 0.5739 +vn 0.4646 0.3662 -0.8063 +vn -0.7067 0.0222 0.7072 +vn 0.4937 0.0294 0.8691 +vn 0.7111 0.1980 -0.6746 +vn 0.5981 0.0137 -0.8013 +vn 0.6127 -0.7754 0.1525 +vn -0.7857 0.6172 0.0416 +vn -0.4353 -0.5450 0.7166 +vn 0.1299 -0.7822 -0.6094 +vn -0.6591 -0.6440 0.3884 +vn -0.1085 0.7966 0.5946 +vn 0.7068 0.3494 -0.6151 +vn 0.7064 0.3379 -0.6220 +vn -0.4297 -0.3527 -0.8313 +vn -0.8181 -0.4300 0.3817 +vn 0.3101 0.2952 0.9037 +vn 0.7115 0.0658 -0.6996 +vn -0.5774 0.3389 -0.7428 +vn -0.9075 0.0416 0.4179 +vn 0.3667 -0.3583 0.8586 +vn -0.2755 0.9545 0.1143 +vn -0.9270 -0.3737 0.0329 +vn 0.9256 0.3770 0.0335 +vn -0.7865 -0.4321 0.4412 +vn -0.2490 0.9599 0.1285 +vn 0.8157 0.3547 -0.4569 +vn 0.4216 -0.8783 -0.2255 +vn -0.4351 -0.4289 0.7917 +vn -0.1481 0.9665 0.2094 +vn 0.4549 0.3426 -0.8220 +vn 0.2574 -0.8763 -0.4072 +vn 0.0335 -0.9107 -0.4116 +vn -0.0791 -0.4056 0.9106 +vn -0.0265 0.9485 0.3156 +vn 0.0798 0.3353 -0.9387 +vn 0.3401 -0.3729 0.8633 +vn 0.0044 0.9708 0.2399 +vn -0.3684 0.3597 -0.8573 +vn -0.1224 -0.8686 -0.4803 +vn 0.9876 0.1284 -0.0904 +vn -0.2107 0.9162 0.3407 +vn -0.9769 0.1397 -0.1614 +vn -0.3239 -0.8267 -0.4601 +vn 0.3711 -0.9220 -0.1109 +vn -0.3999 0.9080 0.1250 +vn 0.8647 0.4267 -0.2651 +vn 0.2298 -0.7115 -0.6640 +vn -0.4953 -0.6927 0.5242 +vn -0.1132 0.8403 0.5301 +vn 0.5370 0.5298 -0.6565 +vn -0.1055 -0.6795 -0.7261 +vn -0.2539 -0.6941 0.6737 +vn 0.1121 0.7165 0.6885 +vn 0.2393 0.6455 -0.7253 +vn 0.1504 -0.9154 0.3734 +vn 0.4241 0.8094 0.4062 +vn -0.3577 0.7131 -0.6029 +vn -0.5820 -0.4526 -0.6756 +vn -0.8391 -0.3764 -0.3927 +vn 0.7841 -0.5636 -0.2600 +vn 0.6074 0.6459 0.4624 +vn -0.6371 0.7212 0.2719 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7565 0.2801 0.5910 +vn 0.5443 -0.8297 -0.1235 +vn 0.8828 0.4547 0.1177 +vn 0.8838 -0.4285 0.1878 +vn -0.6795 -0.7130 -0.1730 +vn -0.2525 -0.9041 -0.3447 +vn -0.8862 0.2546 -0.3871 +vn -0.7540 0.6569 -0.0005 +vn 0.1598 0.9663 0.2016 +vn 0.6875 0.7038 0.1787 +vn 0.6206 -0.7828 -0.0449 +vn -0.1026 -0.7106 -0.6961 +vn -0.3012 0.4964 -0.8142 +vn 0.1147 -0.9166 0.3830 +vn -0.1488 0.9297 -0.3370 +vn -0.6268 -0.3634 -0.6893 +vn 0.4333 -0.8807 0.1914 +vn -0.7989 -0.4539 -0.3947 +vn -0.1489 0.9872 -0.0565 +vn 0.8655 0.2728 0.4202 +vn 0.9019 0.3333 -0.2748 +vn 0.4442 -0.8537 -0.2717 +vn -0.8436 -0.4830 0.2346 +vn -0.1912 0.9616 0.1970 +vn 0.2033 -0.8017 -0.5622 +vn -0.4912 -0.5450 0.6795 +vn -0.0721 0.9248 0.3736 +vn 0.5095 0.4379 -0.7407 +vn 0.3860 -0.5540 0.7376 +vn -0.0119 0.9527 0.3037 +vn -0.4849 -0.5845 0.6506 +vn 0.3445 -0.8966 0.2782 +vn -0.0772 0.9793 -0.1873 +vn -0.8300 -0.5010 -0.2453 +vn 0.9119 0.1938 0.3618 +vn 0.3814 -0.8538 -0.3543 +vn -0.8523 -0.4728 0.2238 +vn -0.1429 0.9481 0.2840 +vn 0.9097 0.3007 -0.2865 +vn 0.1304 -0.7520 -0.6461 +vn -0.5343 -0.5766 0.6181 +vn -0.0021 0.8722 0.4892 +vn 0.5445 0.4768 -0.6901 +vn -0.0902 -0.7405 -0.6660 +vn -0.2096 -0.6247 0.7522 +vn 0.1063 0.7960 0.5958 +vn 0.2020 0.5904 -0.7814 +vn 0.3252 -0.6269 0.7080 +vn 0.0485 0.8656 0.4984 +vn -0.3481 0.6422 -0.6829 +vn -0.1956 -0.6185 -0.7610 +vn 0.9736 -0.0040 -0.2282 +vn -0.2017 0.7745 0.5995 +vn -0.9944 0.0933 0.0504 +vn -0.4004 -0.6883 -0.6049 +vn -0.1248 -0.7838 -0.6083 +vn -0.8725 -0.4818 -0.0812 +vn -0.4472 0.8721 0.1986 +vn 0.5213 -0.7642 -0.3797 +vn -0.7499 -0.6135 0.2476 +vn -0.3307 0.8915 0.3096 +vn 0.8182 0.4883 -0.3035 +vn 0.5073 0.5487 -0.6645 +vn 0.2258 -0.7195 -0.6568 +vn -0.4715 -0.6893 0.5501 +vn -0.1392 0.8252 0.5474 +vn -0.2674 -0.5836 -0.7667 +vn -0.0568 -0.8294 0.5558 +vn 0.3050 0.7751 0.5533 +vn 0.0095 0.6415 -0.7671 +vn -0.0947 -0.7168 -0.6909 +vn 0.6058 0.3301 -0.7240 +vn -0.4589 -0.6586 0.5963 +vn 0.4527 0.5344 -0.7138 +vn 0.5595 0.4568 -0.6916 +vn -0.4402 -0.5088 -0.7398 +vn -0.6433 -0.5243 0.5579 +vn 0.3556 0.4699 0.8079 +vn 0.0817 0.6801 0.7285 +vn 0.3670 -0.0994 -0.9249 +vn 0.4477 0.2074 -0.8698 +vn 0.4768 0.2563 -0.8408 +vn 0.5041 -0.8597 -0.0821 +vn -0.2968 -0.4352 0.8500 +vn -0.4614 0.8538 0.2413 +vn -0.0479 -0.9042 -0.4244 +vn -0.5334 -0.4823 0.6949 +vn 0.0086 0.8769 0.4806 +vn 0.5231 0.2213 -0.8231 +vn -0.4604 -0.6189 -0.6364 +vn -0.6689 -0.3560 0.6525 +vn 0.4275 0.6255 0.6527 +vn 0.5744 0.2549 -0.7779 +vn 0.4376 -0.0943 -0.8942 +vn -0.7630 0.0448 -0.6449 +vn -0.8311 0.0761 0.5509 +vn 0.3769 -0.0973 0.9211 +s 1 +f 900/1/1 2/2/2 3/3/3 +f 899/4/4 3/3/3 4/5/5 +f 898/6/6 4/7/5 1/8/7 +f 254/9/8 1/8/7 253/10/9 +f 6/11/10 10/12/11 5/13/12 +f 7/14/13 9/15/14 6/11/10 +f 8/16/15 12/17/16 7/18/13 +f 5/13/12 11/19/17 8/16/15 +f 14/20/18 18/21/19 13/22/20 +f 15/23/21 17/24/22 14/20/18 +f 16/25/23 20/26/24 15/27/21 +f 13/22/20 19/28/25 16/25/23 +f 22/29/26 26/30/27 21/31/28 +f 23/32/29 25/33/30 22/29/26 +f 24/34/31 28/35/32 23/36/29 +f 21/31/28 27/37/33 24/34/31 +f 862/38/34 32/39/35 29/40/36 +f 863/41/37 31/42/38 32/39/35 +f 864/43/39 30/44/40 31/45/38 +f 518/46/41 29/40/36 517/47/42 +f 866/48/43 36/49/44 33/50/45 +f 867/51/46 35/52/47 36/49/44 +f 868/53/48 34/54/49 35/55/47 +f 450/56/50 353/57/51 449/58/52 +f 871/59/53 37/60/54 870/61/55 +f 872/62/56 40/63/57 871/64/53 +f 869/65/58 39/66/59 872/62/56 +f 358/67/60 161/68/61 357/69/62 +f 42/70/63 46/71/64 41/72/65 +f 43/73/66 45/74/67 42/70/63 +f 44/75/68 48/76/69 43/77/66 +f 41/72/65 47/78/70 44/75/68 +f 49/79/71 53/80/72 54/81/73 +f 50/82/74 56/83/75 53/80/72 +f 51/84/76 55/85/77 56/83/75 +f 52/86/78 54/81/73 55/87/77 +f 57/88/79 61/89/80 62/90/81 +f 58/91/82 64/92/83 61/89/80 +f 59/93/84 63/94/85 64/92/83 +f 60/95/86 62/90/81 63/96/85 +f 875/97/87 65/98/88 874/99/89 +f 876/100/90 68/101/91 875/102/87 +f 873/103/92 67/104/93 876/100/90 +f 422/105/94 225/106/95 421/107/96 +f 69/108/97 73/109/98 74/110/99 +f 70/111/100 76/112/101 73/113/98 +f 71/114/102 75/115/103 76/112/101 +f 72/116/104 74/110/99 75/115/103 +f 77/117/105 81/118/106 82/119/107 +f 78/120/108 84/121/109 81/118/106 +f 79/122/110 83/123/111 84/121/109 +f 80/124/112 82/119/107 83/125/111 +f 85/126/113 89/127/114 90/128/115 +f 86/129/116 92/130/117 89/127/114 +f 87/131/118 91/132/119 92/130/117 +f 88/133/120 90/128/115 91/134/119 +f 93/135/121 97/136/122 98/137/123 +f 94/138/124 100/139/125 97/140/122 +f 95/141/126 99/142/127 100/139/125 +f 96/143/128 98/137/123 99/142/127 +f 102/144/129 106/145/130 101/146/131 +f 103/147/132 105/148/133 102/144/129 +f 104/149/134 108/150/135 103/151/132 +f 101/146/131 107/152/136 104/149/134 +f 109/153/137 113/154/138 114/155/139 +f 110/156/140 116/157/141 113/154/138 +f 111/158/142 115/159/143 116/157/141 +f 112/160/144 114/155/139 115/161/143 +f 657/162/145 119/163/146 660/164/147 +f 659/165/148 119/163/146 120/166/149 +f 658/167/150 120/168/149 117/169/151 +f 322/170/152 117/169/151 321/171/153 +f 908/172/154 122/173/155 123/174/156 +f 908/172/154 124/175/157 907/176/158 +f 907/176/158 121/177/159 906/178/160 +f 326/179/152 121/180/159 325/181/153 +f 844/182/161 126/183/162 127/184/163 +f 844/182/161 128/185/164 843/186/165 +f 843/186/165 125/187/166 842/188/167 +f 330/189/152 125/187/166 329/190/153 +f 334/191/152 129/192/168 333/193/153 +f 134/194/169 138/195/170 133/196/171 +f 135/197/172 137/198/173 134/194/169 +f 136/199/174 140/200/175 135/197/172 +f 133/201/171 139/202/176 136/199/174 +f 912/203/177 142/204/178 143/205/179 +f 912/203/177 144/206/180 911/207/181 +f 911/207/181 141/208/182 910/209/183 +f 342/210/152 141/211/182 341/212/153 +f 145/213/184 149/214/185 150/215/186 +f 146/216/187 152/217/188 149/218/185 +f 147/219/189 151/220/190 152/217/188 +f 148/221/191 150/215/186 151/220/190 +f 754/222/192 759/223/193 753/224/194 +f 755/225/195 758/226/196 754/222/192 +f 756/227/197 757/228/198 755/225/195 +f 753/229/194 760/230/199 756/227/197 +f 154/231/200 159/232/201 158/233/202 +f 156/234/203 159/235/201 155/236/204 +f 153/237/205 160/238/206 156/234/203 +f 286/239/152 49/79/71 285/240/153 +f 3/3/3 254/9/8 255/241/207 +f 4/5/5 255/241/207 256/242/208 +f 1/8/7 256/243/208 253/10/9 +f 441/244/209 246/245/210 245/246/211 +f 259/247/212 6/11/10 258/248/152 +f 259/249/212 8/16/15 7/18/13 +f 257/250/153 8/16/15 260/251/213 +f 262/252/152 13/22/20 261/253/153 +f 263/254/212 14/20/18 262/252/152 +f 263/255/212 16/25/23 15/27/21 +f 261/253/153 16/25/23 264/256/213 +f 266/257/152 21/31/28 265/258/153 +f 267/259/212 22/29/26 266/257/152 +f 267/260/212 24/34/31 23/36/29 +f 265/258/153 24/34/31 268/261/213 +f 175/262/214 370/263/215 371/264/216 +f 269/265/153 862/38/34 861/266/217 +f 271/267/212 862/38/34 270/268/152 +f 272/269/213 863/41/37 271/267/212 +f 269/265/153 864/43/39 272/270/213 +f 274/271/152 865/272/218 273/273/153 +f 275/274/212 866/48/43 274/271/152 +f 275/274/212 868/275/48 867/51/46 +f 273/273/153 868/53/48 276/276/213 +f 277/277/153 870/61/55 869/65/58 +f 279/278/212 870/61/55 278/279/152 +f 280/280/213 871/64/53 279/281/212 +f 277/277/153 872/62/56 280/280/213 +f 287/282/212 50/82/74 286/239/152 +f 287/282/212 52/283/78 51/84/76 +f 285/240/153 52/86/78 288/284/213 +f 158/233/202 537/285/219 157/286/220 +f 291/287/212 58/91/82 290/288/152 +f 291/287/212 60/289/86 59/93/84 +f 289/290/153 60/95/86 292/291/213 +f 258/248/152 5/13/12 257/250/153 +f 293/292/153 874/99/89 873/103/92 +f 295/293/212 874/99/89 294/294/152 +f 296/295/213 875/102/87 295/296/212 +f 293/292/153 876/100/90 296/295/213 +f 299/297/212 70/111/100 298/298/152 +f 299/297/212 72/116/104 71/114/102 +f 297/299/153 72/116/104 300/300/213 +f 406/301/221 209/302/222 405/303/223 +f 303/304/212 78/120/108 302/305/152 +f 303/304/212 80/306/112 79/122/110 +f 301/307/153 80/124/112 304/308/213 +f 307/309/212 86/129/116 306/310/152 +f 307/309/212 88/311/120 87/131/118 +f 305/312/153 88/133/120 308/313/213 +f 290/288/152 57/88/79 289/290/153 +f 311/314/212 94/138/124 310/315/152 +f 311/314/212 96/143/128 95/141/126 +f 309/316/153 96/143/128 312/317/213 +f 315/318/212 102/144/129 314/319/152 +f 315/320/212 104/149/134 103/151/132 +f 313/321/153 104/149/134 316/322/213 +f 398/323/224 201/324/225 397/325/226 +f 319/326/212 110/156/140 318/327/152 +f 319/326/212 112/328/144 111/158/142 +f 317/329/153 112/160/144 320/330/213 +f 417/331/227 222/332/228 221/333/229 +f 323/334/212 118/335/230 322/170/152 +f 323/334/212 120/166/149 119/163/146 +f 321/171/153 120/168/149 324/336/213 +f 365/337/231 170/338/232 169/339/233 +f 327/340/212 122/173/155 326/179/152 +f 327/340/212 124/175/157 123/174/156 +f 325/341/153 124/175/157 328/342/213 +f 331/343/212 126/183/162 330/344/152 +f 331/343/212 128/185/164 127/184/163 +f 329/190/153 128/185/164 332/345/213 +f 335/346/212 130/347/234 334/191/152 +f 335/346/212 132/348/235 131/349/236 +f 333/193/153 132/350/235 336/351/213 +f 413/352/237 218/353/238 217/354/239 +f 339/355/212 134/194/169 338/356/152 +f 339/355/212 136/199/174 135/197/172 +f 337/357/153 136/199/174 340/358/213 +f 343/359/212 142/204/178 342/210/152 +f 343/359/212 144/206/180 143/205/179 +f 341/360/153 144/206/180 344/361/213 +f 347/362/212 146/216/187 346/363/152 +f 347/362/212 148/221/191 147/219/189 +f 345/364/153 148/221/191 348/365/213 +f 201/324/225 350/366/240 349/367/241 +f 202/368/242 351/369/243 350/366/240 +f 204/370/244 351/369/243 203/371/245 +f 204/372/244 349/367/241 352/373/246 +f 358/67/60 163/374/247 162/375/248 +f 359/376/249 164/377/250 163/374/247 +f 357/69/62 164/378/250 360/379/251 +f 490/380/252 163/374/247 491/381/253 +f 877/382/254 166/383/255 165/384/256 +f 878/385/257 167/386/258 166/383/255 +f 880/387/259 167/388/258 879/389/260 +f 877/382/254 168/390/261 880/387/259 +f 362/391/262 877/382/254 361/392/263 +f 362/391/262 879/393/260 878/385/257 +f 364/394/264 879/389/260 363/395/265 +f 364/394/264 877/382/254 880/387/259 +f 366/396/266 171/397/267 170/338/232 +f 368/398/268 171/399/267 367/400/269 +f 365/337/231 172/401/270 368/398/268 +f 169/339/233 646/402/271 645/403/272 +f 176/404/273 371/264/216 372/405/274 +f 176/406/273 369/407/275 173/408/276 +f 374/409/277 179/410/278 178/411/279 +f 375/412/280 180/413/281 179/410/278 +f 373/414/282 180/413/281 376/415/283 +f 378/416/284 183/417/285 182/418/286 +f 379/419/287 184/420/288 183/417/285 +f 377/421/289 184/420/288 380/422/290 +f 382/423/291 187/424/292 186/425/293 +f 384/426/294 187/427/292 383/428/295 +f 381/429/296 188/430/297 384/426/294 +f 186/425/293 773/431/298 185/432/299 +f 386/433/300 191/434/301 190/435/302 +f 388/436/303 191/437/301 387/438/304 +f 385/439/305 192/440/306 388/436/303 +f 881/441/307 194/442/308 193/443/309 +f 882/444/310 195/445/311 194/442/308 +f 884/446/312 195/447/311 883/448/313 +f 881/441/307 196/449/314 884/446/312 +f 390/450/315 881/441/307 389/451/316 +f 391/452/317 882/444/310 390/450/315 +f 391/453/317 884/446/312 883/448/313 +f 392/454/318 881/441/307 884/446/312 +f 394/455/319 199/456/320 198/457/321 +f 396/458/322 199/456/320 395/459/323 +f 393/460/324 200/461/325 396/458/322 +f 197/462/326 734/463/327 733/464/328 +f 398/323/224 203/371/245 202/368/242 +f 399/465/329 204/370/244 203/371/245 +f 397/325/226 204/372/244 400/466/330 +f 402/467/331 207/468/332 206/469/333 +f 403/470/334 208/471/335 207/468/332 +f 401/472/336 208/471/335 404/473/337 +f 211/474/338 406/301/221 407/475/339 +f 212/476/340 407/475/339 408/477/341 +f 405/478/223 212/476/340 408/477/341 +f 614/479/342 211/474/338 615/480/343 +f 886/481/344 213/482/345 885/483/346 +f 886/481/344 215/484/347 214/485/348 +f 887/486/349 216/487/350 215/484/347 +f 885/483/346 216/488/350 888/489/351 +f 410/490/352 885/483/346 409/491/353 +f 410/490/352 887/486/349 886/481/344 +f 412/492/354 887/486/349 411/493/355 +f 409/491/353 888/489/351 412/494/354 +f 414/495/356 219/496/357 218/353/238 +f 416/497/358 219/498/357 415/499/359 +f 413/352/237 220/500/360 416/497/358 +f 217/354/239 662/501/361 661/502/362 +f 418/503/363 223/504/364 222/332/228 +f 420/505/365 223/506/364 419/507/366 +f 417/331/227 224/508/367 420/505/365 +f 222/332/228 633/509/368 221/333/229 +f 422/105/94 227/510/369 226/511/370 +f 423/512/371 228/513/372 227/510/369 +f 421/107/96 228/514/372 424/515/373 +f 226/511/370 617/516/374 225/106/95 +f 427/517/375 230/518/376 426/519/377 +f 428/520/378 231/521/379 427/517/375 +f 428/520/378 229/522/380 232/523/381 +f 230/524/376 709/525/382 229/522/380 +f 431/526/383 234/527/384 430/528/385 +f 432/529/386 235/530/387 431/526/383 +f 432/529/386 233/531/388 236/532/389 +f 890/533/390 237/534/391 889/535/392 +f 890/533/390 239/536/393 238/537/394 +f 891/538/395 240/539/396 239/536/393 +f 889/535/392 240/540/396 892/541/397 +f 434/542/398 889/535/392 433/543/399 +f 434/542/398 891/538/395 890/533/390 +f 436/544/400 891/538/395 435/545/401 +f 436/546/400 889/535/392 892/541/397 +f 438/547/402 243/548/403 242/549/404 +f 439/550/405 244/551/406 243/552/403 +f 437/553/407 244/551/406 440/554/408 +f 442/555/409 247/556/410 246/245/210 +f 444/557/411 247/558/410 443/559/412 +f 441/244/209 248/560/413 444/557/411 +f 246/245/210 501/561/414 245/246/211 +f 446/562/415 251/563/416 250/564/417 +f 448/565/418 251/566/416 447/567/419 +f 445/568/420 252/569/421 448/565/418 +f 250/564/417 597/570/422 249/571/423 +f 450/56/50 355/572/424 354/573/425 +f 451/574/426 356/575/427 355/576/424 +f 449/58/52 356/575/427 452/577/428 +f 471/578/429 354/573/425 355/572/424 +f 893/579/430 454/580/431 453/581/432 +f 894/582/433 455/583/434 454/580/431 +f 896/584/435 455/583/434 895/585/436 +f 893/579/430 456/586/437 896/587/435 +f 458/588/438 893/579/430 457/589/439 +f 458/588/438 895/585/436 894/582/433 +f 460/590/440 895/585/436 459/591/441 +f 457/589/439 896/587/435 460/592/440 +f 471/593/429 356/575/427 472/594/442 +f 472/594/442 353/57/51 469/595/443 +f 474/596/444 33/50/45 473/597/445 +f 215/484/347 466/598/446 214/485/348 +f 215/484/347 468/599/447 467/600/448 +f 213/482/345 468/601/447 216/488/350 +f 462/602/449 9/15/14 461/603/450 +f 491/381/253 164/377/250 492/604/451 +f 489/605/452 164/378/250 161/68/61 +f 485/606/453 38/607/454 37/60/54 +f 239/536/393 482/608/455 238/537/394 +f 240/539/396 483/609/456 239/536/393 +f 240/540/396 481/610/457 484/611/458 +f 463/612/459 10/12/11 462/602/449 +f 463/612/459 12/17/16 11/19/17 +f 464/613/460 9/15/14 12/614/16 +f 462/602/449 465/615/461 466/598/446 +f 463/612/459 466/598/446 467/600/448 +f 463/612/459 468/599/447 464/616/460 +f 464/613/460 465/615/461 461/603/450 +f 473/597/445 470/617/462 474/596/444 +f 475/618/463 470/617/462 471/578/429 +f 476/619/464 471/593/429 472/594/442 +f 476/619/464 469/595/443 473/597/445 +f 470/617/462 353/57/51 354/573/425 +f 475/618/463 34/54/49 474/596/444 +f 475/620/463 36/49/44 35/52/47 +f 476/619/464 33/50/45 36/49/44 +f 477/621/465 18/21/19 17/24/22 +f 479/622/466 18/21/19 478/623/467 +f 480/624/468 19/28/25 479/622/466 +f 480/625/468 17/24/22 20/626/24 +f 477/621/465 482/608/455 478/623/467 +f 479/622/466 482/608/455 483/609/456 +f 480/624/468 483/609/456 484/627/458 +f 480/625/468 481/610/457 477/621/465 +f 214/485/348 465/615/461 213/482/345 +f 487/628/469 38/607/454 486/629/470 +f 488/630/471 39/66/59 487/628/469 +f 488/631/471 37/60/54 40/632/57 +f 485/606/453 490/380/252 486/629/470 +f 486/629/470 491/381/253 487/628/469 +f 488/630/471 491/381/253 492/604/451 +f 485/606/453 492/633/451 489/605/452 +f 490/380/252 161/68/61 162/375/248 +f 247/556/410 502/634/472 246/245/210 +f 247/558/410 504/635/473 503/636/474 +f 248/560/413 501/561/414 504/635/473 +f 494/637/475 897/638/476 493/639/477 +f 495/640/478 898/6/6 494/637/475 +f 495/641/478 900/1/1 899/4/4 +f 496/642/479 897/638/476 900/1/1 +f 494/637/475 497/643/480 498/644/481 +f 495/640/478 498/644/481 499/645/482 +f 495/641/478 500/646/483 496/642/479 +f 496/642/479 497/643/480 493/639/477 +f 498/644/481 501/561/414 502/634/472 +f 498/644/481 503/647/474 499/645/482 +f 499/648/482 504/635/473 500/646/483 +f 497/643/480 504/635/473 501/561/414 +f 562/649/484 557/650/485 561/651/486 +f 455/583/434 514/652/487 454/580/431 +f 455/583/434 516/653/488 515/654/489 +f 456/586/437 513/655/490 516/656/488 +f 507/657/491 26/30/27 506/658/492 +f 508/659/493 27/37/33 507/657/491 +f 508/660/493 25/33/30 28/661/32 +f 505/662/494 510/663/495 506/658/492 +f 507/657/491 510/663/495 511/664/496 +f 508/659/493 511/664/496 512/665/497 +f 508/660/493 509/666/498 505/662/494 +f 510/663/495 513/655/490 514/652/487 +f 511/664/496 514/652/487 515/654/489 +f 511/664/496 516/653/488 512/665/497 +f 512/667/497 513/655/490 509/666/498 +f 237/534/391 482/608/455 481/610/457 +f 190/435/302 525/668/499 189/669/500 +f 191/434/301 526/670/501 190/435/302 +f 191/437/301 528/671/502 527/672/503 +f 192/440/306 525/668/499 528/671/502 +f 519/673/504 30/44/40 518/46/41 +f 519/674/504 32/39/35 31/42/38 +f 520/675/505 29/40/36 32/39/35 +f 518/46/41 521/676/506 522/677/507 +f 519/673/504 522/677/507 523/678/508 +f 519/674/504 524/679/509 520/675/505 +f 520/675/505 521/676/506 517/47/42 +f 385/439/305 190/435/302 189/669/500 +f 521/676/506 526/670/501 522/677/507 +f 522/677/507 527/680/503 523/678/508 +f 524/679/509 527/672/503 528/671/502 +f 521/676/506 528/671/502 525/668/499 +f 159/232/201 538/681/510 158/233/202 +f 159/235/201 540/682/511 539/683/512 +f 157/286/220 540/682/511 160/238/206 +f 530/684/513 53/80/72 529/685/514 +f 531/686/515 54/81/73 530/684/513 +f 531/687/515 56/83/75 55/85/77 +f 532/688/516 53/80/72 56/83/75 +f 530/684/513 533/689/517 534/690/518 +f 531/686/515 534/690/518 535/691/519 +f 531/687/515 536/692/520 532/688/516 +f 532/688/516 533/689/517 529/685/514 +f 534/690/518 537/285/219 538/681/510 +f 534/690/518 539/693/512 535/691/519 +f 535/694/519 540/682/511 536/692/520 +f 533/689/517 540/682/511 537/285/219 +f 195/445/311 554/695/521 194/442/308 +f 195/447/311 556/696/522 555/697/523 +f 196/449/314 553/698/524 556/696/522 +f 543/699/525 62/90/81 542/700/526 +f 543/701/525 64/92/83 63/94/85 +f 544/702/527 61/89/80 64/92/83 +f 542/700/526 545/703/528 546/704/529 +f 542/700/526 547/705/530 543/699/525 +f 543/701/525 548/706/531 544/702/527 +f 541/707/532 548/706/531 545/703/528 +f 561/651/486 550/708/533 562/649/484 +f 562/649/484 551/709/534 563/710/535 +f 564/711/536 551/712/534 552/713/537 +f 561/651/486 552/713/537 549/714/538 +f 550/708/533 553/698/524 554/695/521 +f 551/709/534 554/695/521 555/715/523 +f 551/712/534 556/696/522 552/713/537 +f 552/713/537 553/698/524 549/714/538 +f 545/703/528 558/716/539 546/704/529 +f 547/705/530 558/716/539 559/717/540 +f 548/706/531 559/718/540 560/719/541 +f 548/706/531 557/650/485 545/703/528 +f 563/710/535 558/716/539 562/649/484 +f 563/720/535 560/719/541 559/718/540 +f 557/650/485 564/711/536 561/651/486 +f 505/662/494 26/30/27 25/33/30 +f 167/386/258 574/721/542 166/383/255 +f 167/388/258 576/722/543 575/723/544 +f 165/384/256 576/722/543 168/390/261 +f 566/724/545 89/127/114 565/725/546 +f 567/726/547 90/128/115 566/724/545 +f 567/727/547 92/130/117 91/132/119 +f 568/728/548 89/127/114 92/130/117 +f 566/724/545 569/729/549 570/730/550 +f 567/726/547 570/730/550 571/731/551 +f 567/727/547 572/732/552 568/728/548 +f 568/728/548 569/729/549 565/725/546 +f 570/730/550 573/733/553 574/721/542 +f 570/730/550 575/734/544 571/731/551 +f 571/735/551 576/722/543 572/732/552 +f 569/729/549 576/722/543 573/733/553 +f 542/700/526 61/89/80 541/707/532 +f 175/262/214 586/736/554 174/737/555 +f 176/404/273 587/738/556 175/262/214 +f 176/406/273 585/739/557 588/740/558 +f 577/741/559 46/71/64 45/74/67 +f 43/73/66 282/742/152 283/743/212 +f 44/75/68 283/744/212 284/745/213 +f 41/72/65 284/745/213 281/746/153 +f 689/747/560 686/748/561 690/749/562 +f 282/742/152 41/72/65 281/746/153 +f 173/408/276 370/263/215 174/737/555 +f 579/750/563 46/71/64 578/751/564 +f 580/752/565 47/78/70 579/750/563 +f 580/753/565 45/74/67 48/754/69 +f 577/741/559 582/755/566 578/751/564 +f 579/750/563 582/755/566 583/756/567 +f 580/752/565 583/756/567 584/757/568 +f 580/753/565 581/758/569 577/741/559 +f 582/755/566 585/739/557 586/736/554 +f 582/755/566 587/738/556 583/756/567 +f 583/756/567 588/759/558 584/757/568 +f 581/758/569 588/740/558 585/739/557 +f 251/563/416 598/760/570 250/564/417 +f 251/566/416 600/761/571 599/762/572 +f 252/569/421 597/570/422 600/761/571 +f 602/763/573 589/764/574 590/765/575 +f 603/766/576 590/765/575 591/767/577 +f 603/768/576 592/769/578 604/770/579 +f 604/770/579 589/764/574 601/771/580 +f 602/763/573 81/118/106 601/771/580 +f 605/772/581 594/773/582 606/774/583 +f 606/774/583 595/775/584 607/776/585 +f 608/777/586 595/778/584 596/779/587 +f 605/772/581 596/779/587 593/780/588 +f 593/780/588 598/760/570 594/773/582 +f 594/773/582 599/781/572 595/775/584 +f 596/779/587 599/762/572 600/761/571 +f 593/780/588 600/761/571 597/570/422 +f 603/766/576 82/119/107 602/763/573 +f 603/768/576 84/121/109 83/123/111 +f 604/770/579 81/118/106 84/121/109 +f 590/765/575 605/772/581 606/774/583 +f 591/767/577 606/774/583 607/776/585 +f 591/782/577 608/777/586 592/769/578 +f 592/769/578 605/772/581 589/764/574 +f 616/783/589 211/474/338 212/476/340 +f 613/784/590 212/476/340 209/785/222 +f 609/786/591 74/110/99 73/109/98 +f 610/787/592 75/115/103 74/110/99 +f 612/788/593 75/115/103 611/789/594 +f 609/790/591 76/112/101 612/788/593 +f 609/786/591 614/479/342 610/787/592 +f 610/787/592 615/480/343 611/789/594 +f 612/788/593 615/480/343 616/783/589 +f 609/790/591 616/783/589 613/784/590 +f 613/791/590 210/792/595 614/479/342 +f 226/511/370 619/793/596 618/794/597 +f 227/510/369 620/795/598 619/793/596 +f 225/106/95 620/796/598 228/514/372 +f 621/797/599 902/798/600 622/799/601 +f 622/799/601 903/800/602 623/801/603 +f 624/802/604 903/800/602 904/803/605 +f 621/797/599 904/804/605 901/805/606 +f 617/516/374 902/798/600 901/805/606 +f 619/793/596 902/798/600 618/794/597 +f 620/795/598 903/800/602 619/793/596 +f 620/796/598 901/805/606 904/804/605 +f 625/806/607 622/799/601 626/807/608 +f 627/808/609 622/799/601 623/801/603 +f 628/809/610 623/801/603 624/802/604 +f 628/810/610 621/797/599 625/806/607 +f 629/811/611 626/807/608 630/812/612 +f 630/812/612 627/808/609 631/813/613 +f 632/814/614 627/808/609 628/809/610 +f 629/811/611 628/810/610 625/806/607 +f 629/811/611 66/815/615 65/98/88 +f 631/813/613 66/815/615 630/812/612 +f 632/814/614 67/104/93 631/813/613 +f 632/816/614 65/98/88 68/817/91 +f 381/429/296 186/425/293 185/432/299 +f 223/504/364 634/818/616 222/332/228 +f 223/506/364 636/819/617 635/820/618 +f 224/508/367 633/509/368 636/819/617 +f 638/821/619 633/509/368 634/818/616 +f 638/821/619 635/822/618 639/823/620 +f 639/824/620 636/819/617 640/825/621 +f 637/826/622 636/819/617 633/509/368 +f 642/827/623 637/826/622 638/821/619 +f 643/828/624 638/821/619 639/823/620 +f 643/829/624 640/825/621 644/830/625 +f 644/830/625 637/826/622 641/831/626 +f 642/827/623 113/154/138 641/831/626 +f 643/828/624 114/155/139 642/827/623 +f 643/829/624 116/157/141 115/159/143 +f 644/830/625 113/154/138 116/157/141 +f 171/397/267 646/402/271 170/338/232 +f 172/401/270 647/832/627 171/399/267 +f 172/401/270 645/403/272 648/833/628 +f 649/834/629 646/402/271 650/835/630 +f 650/835/630 647/836/627 651/837/631 +f 652/838/632 647/832/627 648/833/628 +f 649/834/629 648/833/628 645/403/272 +f 654/839/633 649/834/629 650/835/630 +f 655/840/634 650/835/630 651/837/631 +f 655/841/634 652/838/632 656/842/635 +f 656/842/635 649/834/629 653/843/636 +f 658/167/150 653/843/636 654/839/633 +f 658/167/150 655/840/634 659/844/148 +f 659/165/148 656/842/635 660/164/147 +f 657/162/145 656/842/635 653/843/636 +f 906/845/160 122/173/155 905/846/637 +f 219/496/357 662/501/361 218/353/238 +f 220/500/360 663/847/638 219/498/357 +f 220/500/360 661/502/362 664/848/639 +f 665/849/640 662/501/361 666/850/641 +f 666/850/641 663/851/638 667/852/642 +f 668/853/643 663/847/638 664/848/639 +f 665/849/640 664/848/639 661/502/362 +f 670/854/644 665/849/640 666/850/641 +f 670/854/644 667/852/642 671/855/645 +f 671/856/645 668/853/643 672/857/646 +f 669/858/647 668/853/643 665/849/640 +f 674/859/648 669/858/647 670/854/644 +f 675/860/649 670/854/644 671/855/645 +f 675/861/649 672/857/646 676/862/650 +f 676/862/650 669/858/647 673/863/651 +f 130/347/234 674/859/648 129/192/168 +f 129/192/168 675/860/649 132/350/235 +f 131/349/236 675/861/649 676/862/650 +f 130/347/234 676/862/650 673/863/651 +f 677/864/652 350/366/240 678/865/653 +f 679/866/654 350/366/240 351/369/243 +f 680/867/655 351/369/243 352/868/246 +f 680/869/655 349/367/241 677/864/652 +f 682/870/656 677/864/652 678/865/653 +f 683/871/657 678/865/653 679/866/654 +f 683/871/657 680/867/655 684/872/658 +f 684/873/658 677/864/652 681/874/659 +f 686/748/561 681/874/659 682/870/656 +f 686/748/561 683/871/657 687/875/660 +f 687/875/660 684/872/658 688/876/661 +f 685/877/662 684/873/658 681/874/659 +f 690/749/562 687/875/660 691/878/663 +f 687/875/660 692/879/664 691/878/663 +f 688/880/661 689/747/560 692/881/664 +f 346/882/152 145/213/184 345/364/153 +f 689/747/560 106/145/130 105/148/133 +f 690/749/562 107/152/136 106/145/130 +f 692/879/664 107/152/136 691/878/663 +f 689/747/560 108/883/135 692/881/664 +f 310/884/152 93/135/121 309/316/153 +f 178/411/279 693/885/665 177/886/666 +f 179/410/278 694/887/667 178/411/279 +f 179/410/278 696/888/668 695/889/669 +f 180/413/281 693/890/665 696/888/668 +f 698/891/670 693/885/665 694/887/667 +f 699/892/671 694/887/667 695/889/669 +f 699/892/671 696/888/668 700/893/672 +f 700/893/672 693/890/665 697/894/673 +f 701/895/674 698/891/670 702/896/675 +f 702/896/675 699/892/671 703/897/676 +f 704/898/677 699/892/671 700/893/672 +f 701/899/674 700/893/672 697/894/673 +f 705/900/678 702/896/675 706/901/679 +f 706/901/679 703/897/676 707/902/680 +f 708/903/681 701/899/674 705/904/678 +f 708/903/681 703/897/676 704/898/677 +f 98/137/123 705/900/678 706/901/679 +f 98/137/123 707/902/680 99/142/127 +f 99/142/127 708/903/681 100/139/125 +f 97/140/122 708/903/681 705/904/678 +f 374/409/277 177/886/666 373/905/282 +f 230/518/376 711/906/682 710/907/683 +f 231/521/379 712/908/684 711/906/682 +f 229/522/380 712/908/684 232/523/381 +f 714/909/685 709/525/382 710/910/683 +f 715/911/686 710/907/683 711/906/682 +f 715/911/686 712/908/684 716/912/687 +f 716/912/687 709/525/382 713/913/688 +f 718/914/689 713/913/688 714/909/685 +f 718/915/689 715/911/686 719/916/690 +f 719/916/690 716/912/687 720/917/691 +f 717/918/692 716/912/687 713/913/688 +f 302/305/152 77/117/105 301/307/153 +f 721/919/693 718/914/689 722/920/694 +f 723/921/695 718/915/689 719/916/690 +f 724/922/696 719/916/690 720/917/691 +f 724/922/696 717/918/692 721/919/693 +f 726/923/697 721/919/693 722/920/694 +f 726/924/697 723/921/695 727/925/698 +f 727/925/698 724/922/696 728/926/699 +f 725/927/700 724/922/696 721/919/693 +f 730/928/701 725/927/700 726/923/697 +f 730/929/701 727/925/698 731/930/702 +f 731/930/702 728/926/699 732/931/703 +f 729/932/704 728/926/699 725/927/700 +f 730/928/701 137/198/173 729/932/704 +f 730/929/701 139/202/176 138/933/170 +f 731/930/702 140/200/175 139/202/176 +f 729/932/704 140/200/175 732/931/703 +f 425/934/705 230/524/376 229/522/380 +f 198/457/321 735/935/706 734/936/327 +f 200/461/325 735/935/706 199/456/320 +f 197/462/326 736/937/707 200/461/325 +f 737/938/708 734/463/327 738/939/709 +f 738/940/709 735/935/706 739/941/710 +f 740/942/711 735/935/706 736/937/707 +f 737/938/708 736/937/707 733/464/328 +f 741/943/712 738/939/709 742/944/713 +f 743/945/714 738/940/709 739/941/710 +f 744/946/715 739/941/710 740/942/711 +f 744/946/715 737/938/708 741/943/712 +f 746/947/716 741/943/712 742/944/713 +f 746/948/716 743/945/714 747/949/717 +f 747/949/717 744/946/715 748/950/718 +f 745/951/719 744/946/715 741/943/712 +f 749/952/720 746/947/716 750/953/721 +f 750/954/721 747/949/717 751/955/722 +f 752/956/723 747/949/717 748/950/718 +f 749/952/720 748/950/718 745/951/719 +f 393/460/324 198/957/321 197/462/326 +f 750/953/721 905/846/637 749/952/720 +f 750/954/721 907/176/158 906/178/160 +f 751/955/722 908/172/154 907/176/158 +f 749/952/720 908/172/154 752/956/723 +f 754/222/192 765/958/724 766/959/725 +f 754/222/192 767/960/726 755/225/195 +f 755/225/195 768/961/727 756/227/197 +f 753/229/194 768/961/727 765/962/724 +f 241/963/728 818/964/729 817/965/730 +f 763/966/731 770/967/732 762/968/733 +f 761/969/734 770/967/732 771/970/735 +f 764/971/736 771/970/735 772/972/737 +f 763/973/731 772/972/737 769/974/738 +f 790/975/739 761/969/734 789/976/740 +f 187/424/292 774/977/741 186/425/293 +f 187/427/292 776/978/742 775/979/743 +f 188/430/297 773/431/298 776/978/742 +f 778/980/744 773/431/298 774/977/741 +f 779/981/745 774/977/741 775/982/743 +f 779/983/745 776/978/742 780/984/746 +f 780/984/746 773/431/298 777/985/747 +f 781/986/748 778/980/744 782/987/749 +f 782/987/749 779/981/745 783/988/750 +f 784/989/751 779/983/745 780/984/746 +f 781/986/748 780/984/746 777/985/747 +f 786/990/752 781/986/748 782/987/749 +f 786/990/752 783/988/750 787/991/753 +f 787/992/753 784/989/751 788/993/754 +f 785/994/755 784/989/751 781/986/748 +f 786/990/752 791/995/756 790/975/739 +f 791/996/756 788/993/754 792/997/757 +f 792/997/757 785/994/755 789/976/740 +f 785/994/755 790/975/739 789/976/740 +f 791/995/756 762/968/733 790/975/739 +f 791/996/756 764/971/736 763/973/731 +f 792/997/757 761/969/734 764/971/736 +f 429/998/758 234/999/384 233/531/388 +f 234/999/384 793/1000/759 233/531/388 +f 234/527/384 795/1001/760 794/1002/761 +f 236/532/389 795/1001/760 235/530/387 +f 233/531/388 796/1003/762 236/532/389 +f 797/1004/763 794/1005/761 798/1006/764 +f 798/1007/764 795/1001/760 799/1008/765 +f 800/1009/766 795/1001/760 796/1003/762 +f 797/1004/763 796/1003/762 793/1000/759 +f 801/1010/767 798/1006/764 802/1011/768 +f 802/1012/768 799/1008/765 803/1013/769 +f 804/1014/770 799/1008/765 800/1009/766 +f 801/1010/767 800/1009/766 797/1004/763 +f 805/1015/771 802/1011/768 806/1016/772 +f 807/1017/773 802/1012/768 803/1013/769 +f 808/1018/774 803/1013/769 804/1014/770 +f 808/1018/774 801/1010/767 805/1015/771 +f 810/1019/775 807/1017/773 811/1020/776 +f 811/1020/776 808/1018/774 812/1021/777 +f 808/1018/774 809/1022/778 812/1021/777 +f 814/1023/779 809/1022/778 810/1024/775 +f 814/1025/779 811/1020/776 815/1026/780 +f 815/1026/780 812/1021/777 816/1027/781 +f 813/1028/782 812/1021/777 809/1022/778 +f 814/1023/779 909/1029/783 813/1028/782 +f 814/1025/779 911/207/181 910/209/183 +f 815/1026/780 912/203/177 911/207/181 +f 813/1028/782 912/203/177 816/1027/781 +f 243/548/403 818/964/729 242/549/404 +f 244/551/406 819/1030/784 243/552/403 +f 244/551/406 817/965/730 820/1031/785 +f 822/1032/786 817/965/730 818/964/729 +f 823/1033/787 818/964/729 819/1034/784 +f 823/1035/787 820/1031/785 824/1036/788 +f 824/1036/788 817/965/730 821/1037/789 +f 825/1038/790 822/1032/786 826/1039/791 +f 826/1039/791 823/1033/787 827/1040/792 +f 828/1041/793 823/1035/787 824/1036/788 +f 825/1038/790 824/1036/788 821/1037/789 +f 830/1042/794 825/1038/790 826/1039/791 +f 831/1043/795 826/1039/791 827/1040/792 +f 831/1044/795 828/1041/793 832/1045/796 +f 832/1045/796 825/1038/790 829/1046/797 +f 830/1042/794 757/228/198 829/1046/797 +f 831/1043/795 758/226/196 830/1042/794 +f 831/1044/795 760/230/199 759/1047/193 +f 832/1045/796 757/228/198 760/230/199 +f 834/1048/798 205/1049/799 206/469/333 +f 207/468/332 834/1048/798 206/469/333 +f 208/471/335 835/1050/800 207/468/332 +f 833/1051/801 208/471/335 205/1052/799 +f 837/1053/802 834/1048/798 838/1054/803 +f 838/1054/803 835/1050/800 839/1055/804 +f 840/1056/805 835/1050/800 836/1057/806 +f 837/1058/802 836/1057/806 833/1051/801 +f 841/1059/807 838/1054/803 842/188/167 +f 842/188/167 839/1055/804 843/186/165 +f 844/182/161 839/1055/804 840/1056/805 +f 841/1060/807 840/1056/805 837/1058/802 +f 402/467/331 205/1049/799 401/1061/336 +f 182/418/286 845/1062/808 181/1063/809 +f 183/417/285 846/1064/810 182/418/286 +f 184/420/288 847/1065/811 183/417/285 +f 184/420/288 845/1066/808 848/1067/812 +f 850/1068/813 845/1062/808 846/1064/810 +f 851/1069/814 846/1064/810 847/1065/811 +f 851/1069/814 848/1067/812 852/1070/815 +f 852/1070/815 845/1066/808 849/1071/816 +f 854/1072/817 849/1073/816 850/1068/813 +f 854/1072/817 851/1069/814 855/1074/818 +f 855/1074/818 852/1070/815 856/1075/819 +f 853/1076/820 852/1070/815 849/1071/816 +f 857/1077/821 854/1072/817 858/1078/822 +f 858/1078/822 855/1074/818 859/1079/823 +f 860/1080/824 855/1074/818 856/1075/819 +f 857/1081/821 856/1075/819 853/1076/820 +f 857/1077/821 150/215/186 149/214/185 +f 859/1079/823 150/215/186 858/1078/822 +f 860/1080/824 151/220/190 859/1079/823 +f 860/1080/824 149/218/185 152/217/188 +f 194/442/308 553/698/524 193/443/309 +f 454/580/431 513/655/490 453/581/432 +f 173/408/276 586/736/554 585/739/557 +f 166/383/255 573/733/553 165/384/256 +f 897/638/476 1/8/7 2/2/2 +f 870/61/55 38/607/454 869/65/58 +f 865/272/218 33/50/45 34/54/49 +f 861/266/217 29/40/36 30/44/40 +f 874/99/89 66/815/615 873/103/92 +f 805/1015/771 810/1024/775 809/1022/778 +f 909/1029/783 141/211/182 142/204/178 +f 298/1082/152 69/108/97 297/299/153 +f 314/319/152 101/146/131 313/321/153 +f 438/547/402 241/963/728 437/553/407 +f 841/1059/807 125/187/166 126/1083/162 +f 318/327/152 109/153/137 317/329/153 +f 658/167/150 118/335/230 657/162/145 +f 378/416/284 181/1063/809 377/1084/289 +f 338/356/152 133/196/171 337/1085/153 +f 445/568/420 250/564/417 249/571/423 +f 153/237/205 158/233/202 157/286/220 +f 306/310/152 85/126/113 305/312/153 +f 900/1/1 897/638/476 2/2/2 +f 899/4/4 900/1/1 3/3/3 +f 898/6/6 899/1086/4 4/7/5 +f 254/9/8 2/2/2 1/8/7 +f 6/11/10 9/15/14 10/12/11 +f 7/14/13 12/614/16 9/15/14 +f 8/16/15 11/19/17 12/17/16 +f 5/13/12 10/12/11 11/19/17 +f 14/20/18 17/24/22 18/21/19 +f 15/23/21 20/626/24 17/24/22 +f 16/25/23 19/28/25 20/26/24 +f 13/22/20 18/21/19 19/28/25 +f 22/29/26 25/33/30 26/30/27 +f 23/32/29 28/661/32 25/33/30 +f 24/34/31 27/37/33 28/35/32 +f 21/31/28 26/30/27 27/37/33 +f 862/38/34 863/41/37 32/39/35 +f 863/41/37 864/1087/39 31/42/38 +f 864/43/39 861/266/217 30/44/40 +f 518/46/41 30/44/40 29/40/36 +f 866/48/43 867/51/46 36/49/44 +f 867/51/46 868/275/48 35/52/47 +f 868/53/48 865/272/218 34/54/49 +f 450/56/50 354/573/425 353/57/51 +f 871/59/53 40/632/57 37/60/54 +f 872/62/56 39/66/59 40/63/57 +f 869/65/58 38/607/454 39/66/59 +f 358/67/60 162/375/248 161/68/61 +f 42/70/63 45/74/67 46/71/64 +f 43/73/66 48/754/69 45/74/67 +f 44/75/68 47/78/70 48/76/69 +f 41/72/65 46/71/64 47/78/70 +f 49/79/71 50/82/74 53/80/72 +f 50/82/74 51/84/76 56/83/75 +f 51/84/76 52/283/78 55/85/77 +f 52/86/78 49/79/71 54/81/73 +f 57/88/79 58/91/82 61/89/80 +f 58/91/82 59/93/84 64/92/83 +f 59/93/84 60/289/86 63/94/85 +f 60/95/86 57/88/79 62/90/81 +f 875/97/87 68/817/91 65/98/88 +f 876/100/90 67/104/93 68/101/91 +f 873/103/92 66/815/615 67/104/93 +f 422/105/94 226/511/370 225/106/95 +f 69/108/97 70/1088/100 73/109/98 +f 70/111/100 71/114/102 76/112/101 +f 71/114/102 72/116/104 75/115/103 +f 72/116/104 69/108/97 74/110/99 +f 77/117/105 78/120/108 81/118/106 +f 78/120/108 79/122/110 84/121/109 +f 79/122/110 80/306/112 83/123/111 +f 80/124/112 77/117/105 82/119/107 +f 85/126/113 86/129/116 89/127/114 +f 86/129/116 87/131/118 92/130/117 +f 87/131/118 88/311/120 91/132/119 +f 88/133/120 85/126/113 90/128/115 +f 93/135/121 94/1089/124 97/136/122 +f 94/138/124 95/141/126 100/139/125 +f 95/141/126 96/143/128 99/142/127 +f 96/143/128 93/135/121 98/137/123 +f 102/144/129 105/148/133 106/145/130 +f 103/147/132 108/883/135 105/148/133 +f 104/149/134 107/152/136 108/150/135 +f 101/146/131 106/145/130 107/152/136 +f 109/153/137 110/156/140 113/154/138 +f 110/156/140 111/158/142 116/157/141 +f 111/158/142 112/328/144 115/159/143 +f 112/160/144 109/153/137 114/155/139 +f 657/162/145 118/335/230 119/163/146 +f 659/165/148 660/164/147 119/163/146 +f 658/167/150 659/844/148 120/168/149 +f 322/170/152 118/335/230 117/169/151 +f 908/172/154 905/846/637 122/173/155 +f 908/172/154 123/174/156 124/175/157 +f 907/176/158 124/175/157 121/177/159 +f 326/179/152 122/173/155 121/180/159 +f 844/182/161 841/1060/807 126/183/162 +f 844/182/161 127/184/163 128/185/164 +f 843/186/165 128/185/164 125/187/166 +f 330/189/152 126/1083/162 125/187/166 +f 334/191/152 130/347/234 129/192/168 +f 134/194/169 137/198/173 138/195/170 +f 135/197/172 140/200/175 137/198/173 +f 136/199/174 139/202/176 140/200/175 +f 133/201/171 138/933/170 139/202/176 +f 912/203/177 909/1029/783 142/204/178 +f 912/203/177 143/205/179 144/206/180 +f 911/207/181 144/206/180 141/208/182 +f 342/210/152 142/204/178 141/211/182 +f 145/213/184 146/1090/187 149/214/185 +f 146/216/187 147/219/189 152/217/188 +f 147/219/189 148/221/191 151/220/190 +f 148/221/191 145/213/184 150/215/186 +f 754/222/192 758/226/196 759/223/193 +f 755/225/195 757/228/198 758/226/196 +f 756/227/197 760/230/199 757/228/198 +f 753/229/194 759/1047/193 760/230/199 +f 154/231/200 155/1091/204 159/232/201 +f 156/234/203 160/238/206 159/235/201 +f 153/237/205 157/286/220 160/238/206 +f 286/239/152 50/82/74 49/79/71 +f 3/3/3 2/2/2 254/9/8 +f 4/5/5 3/3/3 255/241/207 +f 1/8/7 4/7/5 256/243/208 +f 441/244/209 442/555/409 246/245/210 +f 259/247/212 7/14/13 6/11/10 +f 259/249/212 260/251/213 8/16/15 +f 257/250/153 5/13/12 8/16/15 +f 262/252/152 14/20/18 13/22/20 +f 263/254/212 15/23/21 14/20/18 +f 263/255/212 264/256/213 16/25/23 +f 261/253/153 13/22/20 16/25/23 +f 266/257/152 22/29/26 21/31/28 +f 267/259/212 23/32/29 22/29/26 +f 267/260/212 268/261/213 24/34/31 +f 265/258/153 21/31/28 24/34/31 +f 175/262/214 174/737/555 370/263/215 +f 269/265/153 270/268/152 862/38/34 +f 271/267/212 863/41/37 862/38/34 +f 272/269/213 864/1087/39 863/41/37 +f 269/265/153 861/266/217 864/43/39 +f 274/271/152 866/48/43 865/272/218 +f 275/274/212 867/51/46 866/48/43 +f 275/274/212 276/1092/213 868/275/48 +f 273/273/153 865/272/218 868/53/48 +f 277/277/153 278/279/152 870/61/55 +f 279/278/212 871/59/53 870/61/55 +f 280/280/213 872/62/56 871/64/53 +f 277/277/153 869/65/58 872/62/56 +f 287/282/212 51/84/76 50/82/74 +f 287/282/212 288/1093/213 52/283/78 +f 285/240/153 49/79/71 52/86/78 +f 158/233/202 538/681/510 537/285/219 +f 291/287/212 59/93/84 58/91/82 +f 291/287/212 292/1094/213 60/289/86 +f 289/290/153 57/88/79 60/95/86 +f 258/248/152 6/11/10 5/13/12 +f 293/292/153 294/294/152 874/99/89 +f 295/293/212 875/97/87 874/99/89 +f 296/295/213 876/100/90 875/102/87 +f 293/292/153 873/103/92 876/100/90 +f 299/297/212 71/114/102 70/111/100 +f 299/297/212 300/300/213 72/116/104 +f 297/299/153 69/108/97 72/116/104 +f 406/301/221 210/792/595 209/302/222 +f 303/304/212 79/122/110 78/120/108 +f 303/304/212 304/1095/213 80/306/112 +f 301/307/153 77/117/105 80/124/112 +f 307/309/212 87/131/118 86/129/116 +f 307/309/212 308/1096/213 88/311/120 +f 305/312/153 85/126/113 88/133/120 +f 290/288/152 58/91/82 57/88/79 +f 311/314/212 95/141/126 94/138/124 +f 311/314/212 312/317/213 96/143/128 +f 309/316/153 93/135/121 96/143/128 +f 315/318/212 103/147/132 102/144/129 +f 315/320/212 316/322/213 104/149/134 +f 313/321/153 101/146/131 104/149/134 +f 398/323/224 202/368/242 201/324/225 +f 319/326/212 111/158/142 110/156/140 +f 319/326/212 320/1097/213 112/328/144 +f 317/329/153 109/153/137 112/160/144 +f 417/331/227 418/503/363 222/332/228 +f 323/334/212 119/163/146 118/335/230 +f 323/334/212 324/1098/213 120/166/149 +f 321/171/153 117/169/151 120/168/149 +f 365/337/231 366/396/266 170/338/232 +f 327/340/212 123/174/156 122/173/155 +f 327/340/212 328/342/213 124/175/157 +f 325/341/153 121/177/159 124/175/157 +f 331/343/212 127/184/163 126/183/162 +f 331/343/212 332/345/213 128/185/164 +f 329/190/153 125/187/166 128/185/164 +f 335/346/212 131/349/236 130/347/234 +f 335/346/212 336/1099/213 132/348/235 +f 333/193/153 129/192/168 132/350/235 +f 413/352/237 414/495/356 218/353/238 +f 339/355/212 135/197/172 134/194/169 +f 339/355/212 340/358/213 136/199/174 +f 337/357/153 133/201/171 136/199/174 +f 343/359/212 143/205/179 142/204/178 +f 343/359/212 344/361/213 144/206/180 +f 341/360/153 141/208/182 144/206/180 +f 347/362/212 147/219/189 146/216/187 +f 347/362/212 348/365/213 148/221/191 +f 345/364/153 145/213/184 148/221/191 +f 201/324/225 202/368/242 350/366/240 +f 202/368/242 203/371/245 351/369/243 +f 204/370/244 352/868/246 351/369/243 +f 204/372/244 201/324/225 349/367/241 +f 358/67/60 359/376/249 163/374/247 +f 359/376/249 360/1100/251 164/377/250 +f 357/69/62 161/68/61 164/378/250 +f 490/380/252 162/375/248 163/374/247 +f 877/382/254 878/385/257 166/383/255 +f 878/385/257 879/393/260 167/386/258 +f 880/387/259 168/390/261 167/388/258 +f 877/382/254 165/384/256 168/390/261 +f 362/391/262 878/385/257 877/382/254 +f 362/391/262 363/1101/265 879/393/260 +f 364/394/264 880/387/259 879/389/260 +f 364/394/264 361/392/263 877/382/254 +f 366/396/266 367/1102/269 171/397/267 +f 368/398/268 172/401/270 171/399/267 +f 365/337/231 169/339/233 172/401/270 +f 169/339/233 170/338/232 646/402/271 +f 176/404/273 175/262/214 371/264/216 +f 176/406/273 372/1103/274 369/407/275 +f 374/409/277 375/412/280 179/410/278 +f 375/412/280 376/415/283 180/413/281 +f 373/414/282 177/1104/666 180/413/281 +f 378/416/284 379/419/287 183/417/285 +f 379/419/287 380/422/290 184/420/288 +f 377/421/289 181/1105/809 184/420/288 +f 382/423/291 383/1106/295 187/424/292 +f 384/426/294 188/430/297 187/427/292 +f 381/429/296 185/432/299 188/430/297 +f 186/425/293 774/977/741 773/431/298 +f 386/433/300 387/1107/304 191/434/301 +f 388/436/303 192/440/306 191/437/301 +f 385/439/305 189/669/500 192/440/306 +f 881/441/307 882/444/310 194/442/308 +f 882/444/310 883/1108/313 195/445/311 +f 884/446/312 196/449/314 195/447/311 +f 881/441/307 193/443/309 196/449/314 +f 390/450/315 882/444/310 881/441/307 +f 391/452/317 883/1108/313 882/444/310 +f 391/453/317 392/454/318 884/446/312 +f 392/454/318 389/451/316 881/441/307 +f 394/455/319 395/459/323 199/456/320 +f 396/458/322 200/461/325 199/456/320 +f 393/460/324 197/462/326 200/461/325 +f 197/462/326 198/957/321 734/463/327 +f 398/323/224 399/465/329 203/371/245 +f 399/465/329 400/1109/330 204/370/244 +f 397/325/226 201/324/225 204/372/244 +f 402/467/331 403/470/334 207/468/332 +f 403/470/334 404/473/337 208/471/335 +f 401/472/336 205/1052/799 208/471/335 +f 211/474/338 210/792/595 406/301/221 +f 212/476/340 211/474/338 407/475/339 +f 405/478/223 209/785/222 212/476/340 +f 614/479/342 210/792/595 211/474/338 +f 886/481/344 214/485/348 213/482/345 +f 886/481/344 887/486/349 215/484/347 +f 887/486/349 888/1110/351 216/487/350 +f 885/483/346 213/482/345 216/488/350 +f 410/490/352 886/481/344 885/483/346 +f 410/490/352 411/493/355 887/486/349 +f 412/492/354 888/1110/351 887/486/349 +f 409/491/353 885/483/346 888/489/351 +f 414/495/356 415/1111/359 219/496/357 +f 416/497/358 220/500/360 219/498/357 +f 413/352/237 217/354/239 220/500/360 +f 217/354/239 218/353/238 662/501/361 +f 418/503/363 419/1112/366 223/504/364 +f 420/505/365 224/508/367 223/506/364 +f 417/331/227 221/333/229 224/508/367 +f 222/332/228 634/818/616 633/509/368 +f 422/105/94 423/512/371 227/510/369 +f 423/512/371 424/1113/373 228/513/372 +f 421/107/96 225/106/95 228/514/372 +f 226/511/370 618/794/597 617/516/374 +f 427/517/375 231/521/379 230/518/376 +f 428/520/378 232/523/381 231/521/379 +f 428/520/378 425/934/705 229/522/380 +f 230/524/376 710/910/683 709/525/382 +f 431/526/383 235/530/387 234/527/384 +f 432/529/386 236/532/389 235/530/387 +f 432/529/386 429/998/758 233/531/388 +f 890/533/390 238/537/394 237/534/391 +f 890/533/390 891/538/395 239/536/393 +f 891/538/395 892/1114/397 240/539/396 +f 889/535/392 237/534/391 240/540/396 +f 434/542/398 890/533/390 889/535/392 +f 434/542/398 435/545/401 891/538/395 +f 436/544/400 892/1114/397 891/538/395 +f 436/546/400 433/543/399 889/535/392 +f 438/547/402 439/1115/405 243/548/403 +f 439/550/405 440/554/408 244/551/406 +f 437/553/407 241/963/728 244/551/406 +f 442/555/409 443/1116/412 247/556/410 +f 444/557/411 248/560/413 247/558/410 +f 441/244/209 245/246/211 248/560/413 +f 246/245/210 502/634/472 501/561/414 +f 446/562/415 447/1117/419 251/563/416 +f 448/565/418 252/569/421 251/566/416 +f 445/568/420 249/571/423 252/569/421 +f 250/564/417 598/760/570 597/570/422 +f 450/56/50 451/1118/426 355/572/424 +f 451/574/426 452/577/428 356/575/427 +f 449/58/52 353/57/51 356/575/427 +f 471/578/429 470/617/462 354/573/425 +f 893/579/430 894/582/433 454/580/431 +f 894/582/433 895/585/436 455/583/434 +f 896/584/435 456/1119/437 455/583/434 +f 893/579/430 453/581/432 456/586/437 +f 458/588/438 894/582/433 893/579/430 +f 458/588/438 459/591/441 895/585/436 +f 460/590/440 896/584/435 895/585/436 +f 457/589/439 893/579/430 896/587/435 +f 471/593/429 355/576/424 356/575/427 +f 472/594/442 356/575/427 353/57/51 +f 474/596/444 34/54/49 33/50/45 +f 215/484/347 467/600/448 466/598/446 +f 215/484/347 216/487/350 468/599/447 +f 213/482/345 465/615/461 468/601/447 +f 462/602/449 10/12/11 9/15/14 +f 491/381/253 163/374/247 164/377/250 +f 489/605/452 492/633/451 164/378/250 +f 485/606/453 486/629/470 38/607/454 +f 239/536/393 483/609/456 482/608/455 +f 240/539/396 484/627/458 483/609/456 +f 240/540/396 237/534/391 481/610/457 +f 463/612/459 11/19/17 10/12/11 +f 463/612/459 464/616/460 12/17/16 +f 464/613/460 461/603/450 9/15/14 +f 462/602/449 461/603/450 465/615/461 +f 463/612/459 462/602/449 466/598/446 +f 463/612/459 467/600/448 468/599/447 +f 464/613/460 468/601/447 465/615/461 +f 473/597/445 469/595/443 470/617/462 +f 475/618/463 474/596/444 470/617/462 +f 476/619/464 475/620/463 471/593/429 +f 476/619/464 472/594/442 469/595/443 +f 470/617/462 469/595/443 353/57/51 +f 475/618/463 35/55/47 34/54/49 +f 475/620/463 476/619/464 36/49/44 +f 476/619/464 473/597/445 33/50/45 +f 477/621/465 478/623/467 18/21/19 +f 479/622/466 19/28/25 18/21/19 +f 480/624/468 20/26/24 19/28/25 +f 480/625/468 477/621/465 17/24/22 +f 477/621/465 481/610/457 482/608/455 +f 479/622/466 478/623/467 482/608/455 +f 480/624/468 479/622/466 483/609/456 +f 480/625/468 484/611/458 481/610/457 +f 214/485/348 466/598/446 465/615/461 +f 487/628/469 39/66/59 38/607/454 +f 488/630/471 40/63/57 39/66/59 +f 488/631/471 485/606/453 37/60/54 +f 485/606/453 489/605/452 490/380/252 +f 486/629/470 490/380/252 491/381/253 +f 488/630/471 487/628/469 491/381/253 +f 485/606/453 488/631/471 492/633/451 +f 490/380/252 489/605/452 161/68/61 +f 247/556/410 503/647/474 502/634/472 +f 247/558/410 248/560/413 504/635/473 +f 248/560/413 245/246/211 501/561/414 +f 494/637/475 898/6/6 897/638/476 +f 495/640/478 899/1086/4 898/6/6 +f 495/641/478 496/642/479 900/1/1 +f 496/642/479 493/639/477 897/638/476 +f 494/637/475 493/639/477 497/643/480 +f 495/640/478 494/637/475 498/644/481 +f 495/641/478 499/648/482 500/646/483 +f 496/642/479 500/646/483 497/643/480 +f 498/644/481 497/643/480 501/561/414 +f 498/644/481 502/634/472 503/647/474 +f 499/648/482 503/636/474 504/635/473 +f 497/643/480 500/646/483 504/635/473 +f 562/649/484 558/716/539 557/650/485 +f 455/583/434 515/654/489 514/652/487 +f 455/583/434 456/1119/437 516/653/488 +f 456/586/437 453/581/432 513/655/490 +f 507/657/491 27/37/33 26/30/27 +f 508/659/493 28/35/32 27/37/33 +f 508/660/493 505/662/494 25/33/30 +f 505/662/494 509/666/498 510/663/495 +f 507/657/491 506/658/492 510/663/495 +f 508/659/493 507/657/491 511/664/496 +f 508/660/493 512/667/497 509/666/498 +f 510/663/495 509/666/498 513/655/490 +f 511/664/496 510/663/495 514/652/487 +f 511/664/496 515/654/489 516/653/488 +f 512/667/497 516/656/488 513/655/490 +f 237/534/391 238/537/394 482/608/455 +f 190/435/302 526/670/501 525/668/499 +f 191/434/301 527/680/503 526/670/501 +f 191/437/301 192/440/306 528/671/502 +f 192/440/306 189/669/500 525/668/499 +f 519/673/504 31/45/38 30/44/40 +f 519/674/504 520/675/505 32/39/35 +f 520/675/505 517/47/42 29/40/36 +f 518/46/41 517/47/42 521/676/506 +f 519/673/504 518/46/41 522/677/507 +f 519/674/504 523/1120/508 524/679/509 +f 520/675/505 524/679/509 521/676/506 +f 385/439/305 386/433/300 190/435/302 +f 521/676/506 525/668/499 526/670/501 +f 522/677/507 526/670/501 527/680/503 +f 524/679/509 523/1120/508 527/672/503 +f 521/676/506 524/679/509 528/671/502 +f 159/232/201 539/693/512 538/681/510 +f 159/235/201 160/238/206 540/682/511 +f 157/286/220 537/285/219 540/682/511 +f 530/684/513 54/81/73 53/80/72 +f 531/686/515 55/87/77 54/81/73 +f 531/687/515 532/688/516 56/83/75 +f 532/688/516 529/685/514 53/80/72 +f 530/684/513 529/685/514 533/689/517 +f 531/686/515 530/684/513 534/690/518 +f 531/687/515 535/694/519 536/692/520 +f 532/688/516 536/692/520 533/689/517 +f 534/690/518 533/689/517 537/285/219 +f 534/690/518 538/681/510 539/693/512 +f 535/694/519 539/683/512 540/682/511 +f 533/689/517 536/692/520 540/682/511 +f 195/445/311 555/715/523 554/695/521 +f 195/447/311 196/449/314 556/696/522 +f 196/449/314 193/443/309 553/698/524 +f 543/699/525 63/96/85 62/90/81 +f 543/701/525 544/702/527 64/92/83 +f 544/702/527 541/707/532 61/89/80 +f 542/700/526 541/707/532 545/703/528 +f 542/700/526 546/704/529 547/705/530 +f 543/701/525 547/1121/530 548/706/531 +f 541/707/532 544/702/527 548/706/531 +f 561/651/486 549/714/538 550/708/533 +f 562/649/484 550/708/533 551/709/534 +f 564/711/536 563/720/535 551/712/534 +f 561/651/486 564/711/536 552/713/537 +f 550/708/533 549/714/538 553/698/524 +f 551/709/534 550/708/533 554/695/521 +f 551/712/534 555/697/523 556/696/522 +f 552/713/537 556/696/522 553/698/524 +f 545/703/528 557/650/485 558/716/539 +f 547/705/530 546/704/529 558/716/539 +f 548/706/531 547/1121/530 559/718/540 +f 548/706/531 560/719/541 557/650/485 +f 563/710/535 559/717/540 558/716/539 +f 563/720/535 564/711/536 560/719/541 +f 557/650/485 560/719/541 564/711/536 +f 505/662/494 506/658/492 26/30/27 +f 167/386/258 575/734/544 574/721/542 +f 167/388/258 168/390/261 576/722/543 +f 165/384/256 573/733/553 576/722/543 +f 566/724/545 90/128/115 89/127/114 +f 567/726/547 91/134/119 90/128/115 +f 567/727/547 568/728/548 92/130/117 +f 568/728/548 565/725/546 89/127/114 +f 566/724/545 565/725/546 569/729/549 +f 567/726/547 566/724/545 570/730/550 +f 567/727/547 571/735/551 572/732/552 +f 568/728/548 572/732/552 569/729/549 +f 570/730/550 569/729/549 573/733/553 +f 570/730/550 574/721/542 575/734/544 +f 571/735/551 575/723/544 576/722/543 +f 569/729/549 572/732/552 576/722/543 +f 542/700/526 62/90/81 61/89/80 +f 175/262/214 587/738/556 586/736/554 +f 176/404/273 588/759/558 587/738/556 +f 176/406/273 173/408/276 585/739/557 +f 577/741/559 578/751/564 46/71/64 +f 43/73/66 42/70/63 282/742/152 +f 44/75/68 43/77/66 283/744/212 +f 41/72/65 44/75/68 284/745/213 +f 689/747/560 685/877/662 686/748/561 +f 282/742/152 42/70/63 41/72/65 +f 173/408/276 369/407/275 370/263/215 +f 579/750/563 47/78/70 46/71/64 +f 580/752/565 48/76/69 47/78/70 +f 580/753/565 577/741/559 45/74/67 +f 577/741/559 581/758/569 582/755/566 +f 579/750/563 578/751/564 582/755/566 +f 580/752/565 579/750/563 583/756/567 +f 580/753/565 584/1122/568 581/758/569 +f 582/755/566 581/758/569 585/739/557 +f 582/755/566 586/736/554 587/738/556 +f 583/756/567 587/738/556 588/759/558 +f 581/758/569 584/1122/568 588/740/558 +f 251/563/416 599/781/572 598/760/570 +f 251/566/416 252/569/421 600/761/571 +f 252/569/421 249/571/423 597/570/422 +f 602/763/573 601/771/580 589/764/574 +f 603/766/576 602/763/573 590/765/575 +f 603/768/576 591/782/577 592/769/578 +f 604/770/579 592/769/578 589/764/574 +f 602/763/573 82/119/107 81/118/106 +f 605/772/581 593/780/588 594/773/582 +f 606/774/583 594/773/582 595/775/584 +f 608/777/586 607/1123/585 595/778/584 +f 605/772/581 608/777/586 596/779/587 +f 593/780/588 597/570/422 598/760/570 +f 594/773/582 598/760/570 599/781/572 +f 596/779/587 595/778/584 599/762/572 +f 593/780/588 596/779/587 600/761/571 +f 603/766/576 83/125/111 82/119/107 +f 603/768/576 604/770/579 84/121/109 +f 604/770/579 601/771/580 81/118/106 +f 590/765/575 589/764/574 605/772/581 +f 591/767/577 590/765/575 606/774/583 +f 591/782/577 607/1123/585 608/777/586 +f 592/769/578 608/777/586 605/772/581 +f 616/783/589 615/480/343 211/474/338 +f 613/784/590 616/783/589 212/476/340 +f 609/786/591 610/787/592 74/110/99 +f 610/787/592 611/789/594 75/115/103 +f 612/788/593 76/112/101 75/115/103 +f 609/790/591 73/113/98 76/112/101 +f 609/786/591 613/791/590 614/479/342 +f 610/787/592 614/479/342 615/480/343 +f 612/788/593 611/789/594 615/480/343 +f 609/790/591 612/788/593 616/783/589 +f 613/791/590 209/302/222 210/792/595 +f 226/511/370 227/510/369 619/793/596 +f 227/510/369 228/513/372 620/795/598 +f 225/106/95 617/516/374 620/796/598 +f 621/797/599 901/805/606 902/798/600 +f 622/799/601 902/798/600 903/800/602 +f 624/802/604 623/801/603 903/800/602 +f 621/797/599 624/1124/604 904/804/605 +f 617/516/374 618/794/597 902/798/600 +f 619/793/596 903/800/602 902/798/600 +f 620/795/598 904/803/605 903/800/602 +f 620/796/598 617/516/374 901/805/606 +f 625/806/607 621/797/599 622/799/601 +f 627/808/609 626/807/608 622/799/601 +f 628/809/610 627/808/609 623/801/603 +f 628/810/610 624/1124/604 621/797/599 +f 629/811/611 625/806/607 626/807/608 +f 630/812/612 626/807/608 627/808/609 +f 632/814/614 631/813/613 627/808/609 +f 629/811/611 632/816/614 628/810/610 +f 629/811/611 630/812/612 66/815/615 +f 631/813/613 67/104/93 66/815/615 +f 632/814/614 68/101/91 67/104/93 +f 632/816/614 629/811/611 65/98/88 +f 381/429/296 382/423/291 186/425/293 +f 223/504/364 635/822/618 634/818/616 +f 223/506/364 224/508/367 636/819/617 +f 224/508/367 221/333/229 633/509/368 +f 638/821/619 637/826/622 633/509/368 +f 638/821/619 634/818/616 635/822/618 +f 639/824/620 635/820/618 636/819/617 +f 637/826/622 640/825/621 636/819/617 +f 642/827/623 641/831/626 637/826/622 +f 643/828/624 642/827/623 638/821/619 +f 643/829/624 639/824/620 640/825/621 +f 644/830/625 640/825/621 637/826/622 +f 642/827/623 114/155/139 113/154/138 +f 643/828/624 115/161/143 114/155/139 +f 643/829/624 644/830/625 116/157/141 +f 644/830/625 641/831/626 113/154/138 +f 171/397/267 647/836/627 646/402/271 +f 172/401/270 648/833/628 647/832/627 +f 172/401/270 169/339/233 645/403/272 +f 649/834/629 645/403/272 646/402/271 +f 650/835/630 646/402/271 647/836/627 +f 652/838/632 651/1125/631 647/832/627 +f 649/834/629 652/838/632 648/833/628 +f 654/839/633 653/843/636 649/834/629 +f 655/840/634 654/839/633 650/835/630 +f 655/841/634 651/1125/631 652/838/632 +f 656/842/635 652/838/632 649/834/629 +f 658/167/150 657/162/145 653/843/636 +f 658/167/150 654/839/633 655/840/634 +f 659/165/148 655/841/634 656/842/635 +f 657/162/145 660/164/147 656/842/635 +f 906/845/160 121/180/159 122/173/155 +f 219/496/357 663/851/638 662/501/361 +f 220/500/360 664/848/639 663/847/638 +f 220/500/360 217/354/239 661/502/362 +f 665/849/640 661/502/362 662/501/361 +f 666/850/641 662/501/361 663/851/638 +f 668/853/643 667/1126/642 663/847/638 +f 665/849/640 668/853/643 664/848/639 +f 670/854/644 669/858/647 665/849/640 +f 670/854/644 666/850/641 667/852/642 +f 671/856/645 667/1126/642 668/853/643 +f 669/858/647 672/857/646 668/853/643 +f 674/859/648 673/863/651 669/858/647 +f 675/860/649 674/859/648 670/854/644 +f 675/861/649 671/856/645 672/857/646 +f 676/862/650 672/857/646 669/858/647 +f 130/347/234 673/863/651 674/859/648 +f 129/192/168 674/859/648 675/860/649 +f 131/349/236 132/348/235 675/861/649 +f 130/347/234 131/349/236 676/862/650 +f 677/864/652 349/367/241 350/366/240 +f 679/866/654 678/865/653 350/366/240 +f 680/867/655 679/866/654 351/369/243 +f 680/869/655 352/373/246 349/367/241 +f 682/870/656 681/874/659 677/864/652 +f 683/871/657 682/870/656 678/865/653 +f 683/871/657 679/866/654 680/867/655 +f 684/873/658 680/869/655 677/864/652 +f 686/748/561 685/877/662 681/874/659 +f 686/748/561 682/870/656 683/871/657 +f 687/875/660 683/871/657 684/872/658 +f 685/877/662 688/880/661 684/873/658 +f 690/749/562 686/748/561 687/875/660 +f 687/875/660 688/876/661 692/879/664 +f 688/880/661 685/877/662 689/747/560 +f 346/882/152 146/1090/187 145/213/184 +f 689/747/560 690/749/562 106/145/130 +f 690/749/562 691/878/663 107/152/136 +f 692/879/664 108/150/135 107/152/136 +f 689/747/560 105/148/133 108/883/135 +f 310/884/152 94/1089/124 93/135/121 +f 178/411/279 694/887/667 693/885/665 +f 179/410/278 695/889/669 694/887/667 +f 179/410/278 180/413/281 696/888/668 +f 180/413/281 177/1104/666 693/890/665 +f 698/891/670 697/1127/673 693/885/665 +f 699/892/671 698/891/670 694/887/667 +f 699/892/671 695/889/669 696/888/668 +f 700/893/672 696/888/668 693/890/665 +f 701/895/674 697/1127/673 698/891/670 +f 702/896/675 698/891/670 699/892/671 +f 704/898/677 703/897/676 699/892/671 +f 701/899/674 704/898/677 700/893/672 +f 705/900/678 701/895/674 702/896/675 +f 706/901/679 702/896/675 703/897/676 +f 708/903/681 704/898/677 701/899/674 +f 708/903/681 707/902/680 703/897/676 +f 98/137/123 97/136/122 705/900/678 +f 98/137/123 706/901/679 707/902/680 +f 99/142/127 707/902/680 708/903/681 +f 97/140/122 100/139/125 708/903/681 +f 374/409/277 178/411/279 177/886/666 +f 230/518/376 231/521/379 711/906/682 +f 231/521/379 232/523/381 712/908/684 +f 229/522/380 709/525/382 712/908/684 +f 714/909/685 713/913/688 709/525/382 +f 715/911/686 714/1128/685 710/907/683 +f 715/911/686 711/906/682 712/908/684 +f 716/912/687 712/908/684 709/525/382 +f 718/914/689 717/918/692 713/913/688 +f 718/915/689 714/1128/685 715/911/686 +f 719/916/690 715/911/686 716/912/687 +f 717/918/692 720/917/691 716/912/687 +f 302/305/152 78/120/108 77/117/105 +f 721/919/693 717/918/692 718/914/689 +f 723/921/695 722/1129/694 718/915/689 +f 724/922/696 723/921/695 719/916/690 +f 724/922/696 720/917/691 717/918/692 +f 726/923/697 725/927/700 721/919/693 +f 726/924/697 722/1129/694 723/921/695 +f 727/925/698 723/921/695 724/922/696 +f 725/927/700 728/926/699 724/922/696 +f 730/928/701 729/932/704 725/927/700 +f 730/929/701 726/924/697 727/925/698 +f 731/930/702 727/925/698 728/926/699 +f 729/932/704 732/931/703 728/926/699 +f 730/928/701 138/195/170 137/198/173 +f 730/929/701 731/930/702 139/202/176 +f 731/930/702 732/931/703 140/200/175 +f 729/932/704 137/198/173 140/200/175 +f 425/934/705 426/1130/377 230/524/376 +f 198/457/321 199/456/320 735/935/706 +f 200/461/325 736/937/707 735/935/706 +f 197/462/326 733/464/328 736/937/707 +f 737/938/708 733/464/328 734/463/327 +f 738/940/709 734/936/327 735/935/706 +f 740/942/711 739/941/710 735/935/706 +f 737/938/708 740/942/711 736/937/707 +f 741/943/712 737/938/708 738/939/709 +f 743/945/714 742/1131/713 738/940/709 +f 744/946/715 743/945/714 739/941/710 +f 744/946/715 740/942/711 737/938/708 +f 746/947/716 745/951/719 741/943/712 +f 746/948/716 742/1131/713 743/945/714 +f 747/949/717 743/945/714 744/946/715 +f 745/951/719 748/950/718 744/946/715 +f 749/952/720 745/951/719 746/947/716 +f 750/954/721 746/948/716 747/949/717 +f 752/956/723 751/955/722 747/949/717 +f 749/952/720 752/956/723 748/950/718 +f 393/460/324 394/1132/319 198/957/321 +f 750/953/721 906/845/160 905/846/637 +f 750/954/721 751/955/722 907/176/158 +f 751/955/722 752/956/723 908/172/154 +f 749/952/720 905/846/637 908/172/154 +f 754/222/192 753/224/194 765/958/724 +f 754/222/192 766/959/725 767/960/726 +f 755/225/195 767/960/726 768/961/727 +f 753/229/194 756/227/197 768/961/727 +f 241/963/728 242/549/404 818/964/729 +f 763/966/731 769/1133/738 770/967/732 +f 761/969/734 762/968/733 770/967/732 +f 764/971/736 761/969/734 771/970/735 +f 763/973/731 764/971/736 772/972/737 +f 790/975/739 762/968/733 761/969/734 +f 187/424/292 775/982/743 774/977/741 +f 187/427/292 188/430/297 776/978/742 +f 188/430/297 185/432/299 773/431/298 +f 778/980/744 777/985/747 773/431/298 +f 779/981/745 778/980/744 774/977/741 +f 779/983/745 775/979/743 776/978/742 +f 780/984/746 776/978/742 773/431/298 +f 781/986/748 777/985/747 778/980/744 +f 782/987/749 778/980/744 779/981/745 +f 784/989/751 783/1134/750 779/983/745 +f 781/986/748 784/989/751 780/984/746 +f 786/990/752 785/994/755 781/986/748 +f 786/990/752 782/987/749 783/988/750 +f 787/992/753 783/1134/750 784/989/751 +f 785/994/755 788/993/754 784/989/751 +f 786/990/752 787/991/753 791/995/756 +f 791/996/756 787/992/753 788/993/754 +f 792/997/757 788/993/754 785/994/755 +f 785/994/755 786/990/752 790/975/739 +f 791/995/756 763/966/731 762/968/733 +f 791/996/756 792/997/757 764/971/736 +f 792/997/757 789/976/740 761/969/734 +f 429/998/758 430/1135/385 234/999/384 +f 234/999/384 794/1005/761 793/1000/759 +f 234/527/384 235/530/387 795/1001/760 +f 236/532/389 796/1003/762 795/1001/760 +f 233/531/388 793/1000/759 796/1003/762 +f 797/1004/763 793/1000/759 794/1005/761 +f 798/1007/764 794/1002/761 795/1001/760 +f 800/1009/766 799/1008/765 795/1001/760 +f 797/1004/763 800/1009/766 796/1003/762 +f 801/1010/767 797/1004/763 798/1006/764 +f 802/1012/768 798/1007/764 799/1008/765 +f 804/1014/770 803/1013/769 799/1008/765 +f 801/1010/767 804/1014/770 800/1009/766 +f 805/1015/771 801/1010/767 802/1011/768 +f 807/1017/773 806/1136/772 802/1012/768 +f 808/1018/774 807/1017/773 803/1013/769 +f 808/1018/774 804/1014/770 801/1010/767 +f 810/1019/775 806/1136/772 807/1017/773 +f 811/1020/776 807/1017/773 808/1018/774 +f 808/1018/774 805/1015/771 809/1022/778 +f 814/1023/779 813/1028/782 809/1022/778 +f 814/1025/779 810/1019/775 811/1020/776 +f 815/1026/780 811/1020/776 812/1021/777 +f 813/1028/782 816/1027/781 812/1021/777 +f 814/1023/779 910/1137/183 909/1029/783 +f 814/1025/779 815/1026/780 911/207/181 +f 815/1026/780 816/1027/781 912/203/177 +f 813/1028/782 909/1029/783 912/203/177 +f 243/548/403 819/1034/784 818/964/729 +f 244/551/406 820/1031/785 819/1030/784 +f 244/551/406 241/963/728 817/965/730 +f 822/1032/786 821/1037/789 817/965/730 +f 823/1033/787 822/1032/786 818/964/729 +f 823/1035/787 819/1030/784 820/1031/785 +f 824/1036/788 820/1031/785 817/965/730 +f 825/1038/790 821/1037/789 822/1032/786 +f 826/1039/791 822/1032/786 823/1033/787 +f 828/1041/793 827/1138/792 823/1035/787 +f 825/1038/790 828/1041/793 824/1036/788 +f 830/1042/794 829/1046/797 825/1038/790 +f 831/1043/795 830/1042/794 826/1039/791 +f 831/1044/795 827/1138/792 828/1041/793 +f 832/1045/796 828/1041/793 825/1038/790 +f 830/1042/794 758/226/196 757/228/198 +f 831/1043/795 759/223/193 758/226/196 +f 831/1044/795 832/1045/796 760/230/199 +f 832/1045/796 829/1046/797 757/228/198 +f 834/1048/798 833/1139/801 205/1049/799 +f 207/468/332 835/1050/800 834/1048/798 +f 208/471/335 836/1057/806 835/1050/800 +f 833/1051/801 836/1057/806 208/471/335 +f 837/1053/802 833/1139/801 834/1048/798 +f 838/1054/803 834/1048/798 835/1050/800 +f 840/1056/805 839/1055/804 835/1050/800 +f 837/1058/802 840/1056/805 836/1057/806 +f 841/1059/807 837/1053/802 838/1054/803 +f 842/188/167 838/1054/803 839/1055/804 +f 844/182/161 843/186/165 839/1055/804 +f 841/1060/807 844/182/161 840/1056/805 +f 402/467/331 206/469/333 205/1049/799 +f 182/418/286 846/1064/810 845/1062/808 +f 183/417/285 847/1065/811 846/1064/810 +f 184/420/288 848/1067/812 847/1065/811 +f 184/420/288 181/1105/809 845/1066/808 +f 850/1068/813 849/1073/816 845/1062/808 +f 851/1069/814 850/1068/813 846/1064/810 +f 851/1069/814 847/1065/811 848/1067/812 +f 852/1070/815 848/1067/812 845/1066/808 +f 854/1072/817 853/1140/820 849/1073/816 +f 854/1072/817 850/1068/813 851/1069/814 +f 855/1074/818 851/1069/814 852/1070/815 +f 853/1076/820 856/1075/819 852/1070/815 +f 857/1077/821 853/1140/820 854/1072/817 +f 858/1078/822 854/1072/817 855/1074/818 +f 860/1080/824 859/1079/823 855/1074/818 +f 857/1081/821 860/1080/824 856/1075/819 +f 857/1077/821 858/1078/822 150/215/186 +f 859/1079/823 151/220/190 150/215/186 +f 860/1080/824 152/217/188 151/220/190 +f 860/1080/824 857/1081/821 149/218/185 +f 194/442/308 554/695/521 553/698/524 +f 454/580/431 514/652/487 513/655/490 +f 173/408/276 174/737/555 586/736/554 +f 166/383/255 574/721/542 573/733/553 +f 897/638/476 898/6/6 1/8/7 +f 870/61/55 37/60/54 38/607/454 +f 865/272/218 866/48/43 33/50/45 +f 861/266/217 862/38/34 29/40/36 +f 874/99/89 65/98/88 66/815/615 +f 805/1015/771 806/1016/772 810/1024/775 +f 909/1029/783 910/1137/183 141/211/182 +f 298/1082/152 70/1088/100 69/108/97 +f 314/319/152 102/144/129 101/146/131 +f 438/547/402 242/549/404 241/963/728 +f 841/1059/807 842/188/167 125/187/166 +f 318/327/152 110/156/140 109/153/137 +f 658/167/150 117/169/151 118/335/230 +f 378/416/284 182/418/286 181/1063/809 +f 338/356/152 134/194/169 133/196/171 +f 445/568/420 446/562/415 250/564/417 +f 153/237/205 154/231/200 158/233/202 +f 306/310/152 86/129/116 85/126/113 +o Body +v -1.000000 0.062500 -0.500000 +v -1.000000 0.000000 -0.562500 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.562500 +v 1.000000 0.062500 -0.562500 +v 1.000000 0.000000 -0.500000 +v -1.000000 0.062500 -0.437500 +v -1.000000 0.125000 -0.500000 +v 1.000000 0.062500 -0.500000 +v 1.000000 0.062500 -0.437500 +v -1.000000 0.000000 -0.437500 +v 1.000000 0.000000 -0.437500 +v 1.000000 0.125000 -0.437500 +v -0.937500 0.187500 -0.500000 +v 0.937500 0.187500 -0.437500 +v 0.937500 0.187500 -0.500000 +v -0.937500 0.187500 -0.437500 +v -1.000000 0.125000 -0.437500 +v 1.000000 0.125000 -0.500000 +v -1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.500000 +v 1.000000 -0.000000 0.562500 +v -1.000000 0.062500 0.562500 +v 1.000000 -0.000000 0.500000 +v 1.000000 0.062500 0.562500 +v -1.000000 0.125000 0.500000 +v -1.000000 0.062500 0.437500 +v 1.000000 0.062500 0.500000 +v -1.000000 -0.000000 0.437500 +v 1.000000 0.062500 0.437500 +v 1.000000 -0.000000 0.437500 +v 1.000000 0.125000 0.437500 +v 0.937500 0.187500 0.437500 +v -0.937500 0.187500 0.500000 +v 0.937500 0.187500 0.500000 +v -1.000000 0.125000 0.437500 +v 1.000000 0.125000 0.500000 +v -0.531250 0.187500 0.437500 +v -0.531250 0.000000 -0.437500 +v -0.531250 -0.000000 0.437500 +v -0.468750 0.187500 -0.437500 +v -0.468750 -0.000000 0.437500 +v -0.468750 0.000000 -0.437500 +v -0.531250 0.187500 -0.437500 +v -0.468750 0.187500 0.437500 +v 0.531250 0.000000 -0.437500 +v 0.531250 0.187500 0.437500 +v 0.531250 -0.000000 0.437500 +v 0.468750 -0.000000 0.437500 +v 0.468750 0.187500 -0.437500 +v 0.468750 0.000000 -0.437500 +v 0.468750 0.187500 0.437500 +v 0.531250 0.187500 -0.437500 +v -0.619649 0.820234 -0.375000 +v -0.749885 0.081628 -0.437500 +v -0.749885 0.081628 -0.375000 +v -0.619649 0.820234 -0.437500 +v -0.565233 0.049069 -0.437500 +v -0.434997 0.787675 -0.437500 +v -0.565233 0.049069 -0.375000 +v -0.434997 0.787675 -0.375000 +v -0.600024 0.335540 -0.421875 +v -0.379053 0.114569 -0.453125 +v -0.379053 0.114569 -0.421875 +v -0.600024 0.335540 -0.453125 +v -0.334858 0.158763 -0.453125 +v -0.555829 0.379734 -0.453125 +v -0.334858 0.158763 -0.421875 +v -0.555829 0.379734 -0.421875 +v 0.749885 0.081628 -0.437500 +v 0.619649 0.820234 -0.375000 +v 0.749885 0.081628 -0.375000 +v 0.565233 0.049069 -0.437500 +v 0.619649 0.820234 -0.437500 +v 0.565233 0.049069 -0.375000 +v 0.434997 0.787675 -0.437500 +v 0.434997 0.787675 -0.375000 +v 0.379053 0.114569 -0.453125 +v 0.600024 0.335540 -0.421875 +v 0.379053 0.114569 -0.421875 +v 0.334858 0.158763 -0.453125 +v 0.600024 0.335540 -0.453125 +v 0.334858 0.158763 -0.421875 +v 0.555829 0.379734 -0.453125 +v 0.555829 0.379734 -0.421875 +v -0.749885 0.081628 0.437500 +v -0.619649 0.820234 0.375000 +v -0.749885 0.081628 0.375000 +v -0.565233 0.049069 0.437500 +v -0.619649 0.820234 0.437500 +v -0.565233 0.049069 0.375000 +v -0.434997 0.787675 0.437500 +v -0.434997 0.787675 0.375000 +v -0.379053 0.114569 0.453125 +v -0.600024 0.335540 0.421875 +v -0.379053 0.114569 0.421875 +v -0.334858 0.158763 0.453125 +v -0.600024 0.335540 0.453125 +v -0.334858 0.158763 0.421875 +v -0.555829 0.379734 0.453125 +v -0.555829 0.379734 0.421875 +v 0.619649 0.820234 0.375000 +v 0.749885 0.081628 0.437500 +v 0.749885 0.081628 0.375000 +v 0.619649 0.820234 0.437500 +v 0.565233 0.049069 0.437500 +v 0.434997 0.787675 0.437500 +v 0.565233 0.049069 0.375000 +v 0.434997 0.787675 0.375000 +v 0.600024 0.335540 0.421875 +v 0.379053 0.114569 0.453125 +v 0.379053 0.114569 0.421875 +v 0.600024 0.335540 0.453125 +v 0.334858 0.158763 0.453125 +v 0.555829 0.379734 0.453125 +v 0.334858 0.158763 0.421875 +v 0.555829 0.379734 0.421875 +v 0.000000 1.980546 1.233917 +v 0.183897 1.943967 0.733917 +v 0.000000 1.980546 0.733917 +v 0.183897 1.943967 1.233917 +v 0.339797 1.839797 0.733917 +v 0.339797 1.839797 1.233917 +v 0.443967 1.683897 0.733917 +v 0.443967 1.683897 1.233917 +v 0.480546 1.500000 0.733917 +v 0.480546 1.500000 1.233917 +v 0.443967 1.316103 0.733917 +v 0.443967 1.316103 1.233917 +v 0.339797 1.160202 0.733917 +v 0.183897 1.056033 1.233917 +v 0.183897 1.056033 0.733917 +v 0.000000 1.019453 0.733917 +v 0.000000 1.019453 1.233917 +v -0.183897 1.056033 0.733917 +v -0.183897 1.056033 1.233917 +v -0.339798 1.160202 0.733917 +v -0.339798 1.160202 1.233917 +v -0.443967 1.316103 0.733917 +v -0.443967 1.316103 1.233917 +v -0.480547 1.500000 0.733917 +v -0.480547 1.500000 1.233917 +v -0.443967 1.683897 0.733917 +v -0.443967 1.683897 1.233917 +v -0.339798 1.839797 0.733917 +v 0.339797 1.160202 1.233917 +v -0.339798 1.839797 1.233917 +v -0.183897 1.943967 0.733917 +v -0.183897 1.943967 1.233917 +v 0.490881 1.143354 -0.961093 +v -0.187500 0.922934 -0.961093 +v -0.606763 1.500000 -0.961093 +v 0.187500 2.077066 -0.961093 +v 0.361622 2.222140 -0.627943 +v 0.312593 2.071245 -0.856743 +v 0.736322 2.034969 -0.523593 +v 0.281250 2.365599 -0.523593 +v 0.490881 1.856646 -0.961093 +v 0.575049 2.067076 -0.627943 +v 0.446690 1.973818 -0.856743 +v 0.717021 1.871668 -0.627943 +v 0.588663 1.778410 -0.856743 +v 0.910144 1.500000 -0.523593 +v 0.606763 1.500000 -0.961093 +v 0.798543 1.620769 -0.627943 +v 0.639883 1.620769 -0.856743 +v 0.798543 1.379231 -0.627943 +v 0.639883 1.379231 -0.856743 +v 0.736322 0.965031 -0.523593 +v 0.717021 1.128333 -0.627943 +v 0.588663 1.221590 -0.856743 +v 0.575048 0.932924 -0.627943 +v 0.446690 1.026182 -0.856743 +v 0.361622 0.777860 -0.627943 +v 0.187500 0.922934 -0.961093 +v 0.281250 0.634401 -0.523593 +v 0.312593 0.928755 -0.856743 +v 0.131905 0.703221 -0.627943 +v 0.082876 0.854115 -0.856743 +v -0.131905 0.703221 -0.627943 +v -0.281250 0.634401 -0.523593 +v -0.082877 0.854115 -0.856743 +v -0.361622 0.777860 -0.627943 +v -0.312593 0.928755 -0.856743 +v -0.736322 0.965031 -0.523593 +v -0.490881 1.143354 -0.961093 +v -0.575049 0.932924 -0.627943 +v -0.446690 1.026182 -0.856743 +v -0.717021 1.128332 -0.627943 +v -0.588663 1.221591 -0.856743 +v -0.910144 1.500000 -0.523593 +v -0.798543 1.379231 -0.627943 +v -0.639883 1.379231 -0.856743 +v -0.798543 1.620769 -0.627943 +v -0.639883 1.620769 -0.856743 +v -0.736322 2.034969 -0.523593 +v -0.490881 1.856646 -0.961093 +v -0.717021 1.871668 -0.627943 +v -0.588663 1.778410 -0.856743 +v -0.575048 2.067076 -0.627943 +v -0.446690 1.973818 -0.856743 +v -0.281250 2.365598 -0.523593 +v -0.187500 2.077066 -0.961093 +v -0.361621 2.222140 -0.627943 +v -0.312593 2.071246 -0.856743 +v -0.131905 2.296779 -0.627943 +v -0.082876 2.145885 -0.856743 +v 0.131905 2.296779 -0.627943 +v 0.082876 2.145885 -0.856743 +v -0.606763 1.500000 0.961093 +v 0.490881 1.143354 0.961093 +v 0.490881 1.856646 0.961093 +v 0.187500 2.077066 0.961093 +v 0.361622 2.222140 0.627943 +v 0.281250 2.365599 0.523593 +v 0.736322 2.034969 0.523593 +v 0.575049 2.067076 0.627943 +v 0.446690 1.973818 0.856743 +v 0.717021 1.871668 0.627943 +v 0.910144 1.500000 0.523593 +v 0.798543 1.620769 0.627943 +v 0.606763 1.500000 0.961093 +v 0.588663 1.778410 0.856743 +v 0.798543 1.379231 0.627943 +v 0.736322 0.965031 0.523593 +v 0.717021 1.128333 0.627943 +v 0.588663 1.221590 0.856743 +v 0.575048 0.932924 0.627943 +v 0.361622 0.777860 0.627943 +v 0.281250 0.634401 0.523593 +v 0.187500 0.922934 0.961093 +v 0.312593 0.928755 0.856743 +v 0.131905 0.703221 0.627943 +v -0.131905 0.703221 0.627943 +v -0.281250 0.634401 0.523593 +v -0.187500 0.922934 0.961093 +v -0.082877 0.854115 0.856743 +v -0.361622 0.777860 0.627943 +v -0.736322 0.965031 0.523593 +v -0.575049 0.932924 0.627943 +v -0.490881 1.143354 0.961093 +v -0.312593 0.928755 0.856743 +v -0.717021 1.128332 0.627943 +v -0.798543 1.379231 0.627943 +v -0.910144 1.500000 0.523593 +v -0.639883 1.379231 0.856743 +v -0.798543 1.620769 0.627943 +v -0.736322 2.034969 0.523593 +v -0.717021 1.871668 0.627943 +v -0.490881 1.856646 0.961093 +v -0.588663 1.778410 0.856743 +v -0.575048 2.067076 0.627943 +v -0.361621 2.222140 0.627943 +v -0.281250 2.365598 0.523593 +v -0.187500 2.077066 0.961093 +v -0.312593 2.071246 0.856743 +v -0.131905 2.296779 0.627943 +v 0.131905 2.296779 0.627943 +v 0.082876 2.145885 0.856743 +v 0.000000 2.461093 -0.437500 +v 0.367794 2.387934 -0.562500 +v 0.000000 2.461093 -0.562500 +v 0.367794 2.387934 -0.437500 +v 0.679595 2.179595 -0.562500 +v 0.679595 2.179595 -0.437500 +v 0.887934 1.867794 -0.562500 +v 0.887934 1.867794 -0.437500 +v 0.961093 1.500000 -0.562500 +v 0.961093 1.500000 -0.437500 +v 0.887934 1.132205 -0.562500 +v 0.887934 1.132205 -0.437500 +v 0.679595 0.820405 -0.562500 +v 0.367794 0.612066 -0.437500 +v 0.367794 0.612066 -0.562500 +v 0.000000 0.538907 -0.562500 +v 0.000000 0.538907 -0.437500 +v -0.367794 0.612066 -0.562500 +v -0.367794 0.612066 -0.437500 +v -0.679595 0.820404 -0.562500 +v -0.679595 0.820404 -0.437500 +v -0.887934 1.132205 -0.562500 +v -0.887934 1.132205 -0.437500 +v -0.961093 1.500000 -0.562500 +v -0.961093 1.500000 -0.437500 +v -0.887934 1.867795 -0.562500 +v -0.887934 1.867795 -0.437500 +v -0.679595 2.179596 -0.562500 +v -0.679595 2.179596 -0.437500 +v -0.367794 2.387935 -0.562500 +v -0.367794 2.387935 -0.437500 +v 0.294635 2.211313 -0.562500 +v 0.294635 2.211313 -0.437500 +v 0.000000 2.269920 -0.437500 +v 0.544415 2.044415 -0.562500 +v 0.711313 1.794636 -0.562500 +v 0.711313 1.794636 -0.437500 +v 0.544415 2.044415 -0.437500 +v 0.769920 1.500000 -0.562500 +v 0.711313 1.205364 -0.562500 +v 0.711313 1.205364 -0.437500 +v 0.769920 1.500000 -0.437500 +v 0.544415 0.955585 -0.562500 +v 0.679595 0.820405 -0.437500 +v 0.294635 0.788687 -0.562500 +v 0.294635 0.788687 -0.437500 +v 0.544415 0.955585 -0.437500 +v 0.000000 0.730080 -0.562500 +v -0.294635 0.788687 -0.562500 +v 0.000000 0.730080 -0.437500 +v -0.544415 0.955584 -0.562500 +v -0.544415 0.955584 -0.437500 +v -0.294635 0.788687 -0.437500 +v -0.711313 1.205364 -0.562500 +v -0.769920 1.500000 -0.562500 +v -0.769920 1.500000 -0.437500 +v -0.711313 1.205364 -0.437500 +v -0.711313 1.794636 -0.562500 +v -0.544415 2.044416 -0.562500 +v -0.711313 1.794636 -0.437500 +v -0.294635 2.211313 -0.562500 +v -0.294635 2.211313 -0.437500 +v -0.544415 2.044416 -0.437500 +v 0.000000 2.269920 -0.562500 +v 0.367794 2.387934 0.562500 +v 0.000000 2.461093 0.437500 +v 0.000000 2.461093 0.562500 +v 0.679595 2.179595 0.437500 +v 0.367794 2.387934 0.437500 +v 0.887934 1.867794 0.562500 +v 0.679595 2.179595 0.562500 +v 0.961093 1.500000 0.562500 +v 0.887934 1.867794 0.437500 +v 0.887934 1.132205 0.562500 +v 0.961093 1.500000 0.437500 +v 0.679595 0.820405 0.562500 +v 0.887934 1.132205 0.437500 +v 0.367794 0.612066 0.437500 +v 0.679595 0.820405 0.437500 +v 0.000000 0.538907 0.562500 +v 0.367794 0.612066 0.562500 +v -0.367794 0.612066 0.562500 +v 0.000000 0.538907 0.437500 +v -0.679595 0.820404 0.562500 +v -0.367794 0.612066 0.437500 +v -0.887934 1.132205 0.562500 +v -0.679595 0.820404 0.437500 +v -0.961093 1.500000 0.562500 +v -0.887934 1.132205 0.437500 +v -0.887934 1.867795 0.562500 +v -0.961093 1.500000 0.437500 +v -0.679595 2.179596 0.562500 +v -0.887934 1.867795 0.437500 +v -0.367794 2.387935 0.562500 +v -0.679595 2.179596 0.437500 +v -0.367794 2.387935 0.437500 +v 0.000000 2.269920 0.562500 +v 0.294635 2.211313 0.562500 +v 0.294635 2.211313 0.437500 +v 0.000000 2.269920 0.437500 +v 0.544415 2.044415 0.562500 +v 0.544415 2.044415 0.437500 +v 0.711313 1.794636 0.562500 +v 0.711313 1.794636 0.437500 +v 0.769920 1.500000 0.562500 +v 0.769920 1.500000 0.437500 +v 0.711313 1.205364 0.562500 +v 0.711313 1.205364 0.437500 +v 0.544415 0.955585 0.562500 +v 0.544415 0.955585 0.437500 +v 0.294635 0.788687 0.562500 +v 0.294635 0.788687 0.437500 +v 0.000000 0.730080 0.562500 +v 0.000000 0.730080 0.437500 +v -0.294635 0.788687 0.562500 +v -0.294635 0.788687 0.437500 +v -0.544415 0.955584 0.562500 +v -0.544415 0.955584 0.437500 +v -0.711313 1.205364 0.562500 +v -0.711313 1.205364 0.437500 +v -0.769920 1.500000 0.562500 +v -0.769920 1.500000 0.437500 +v -0.711313 1.794636 0.562500 +v -0.711313 1.794636 0.437500 +v -0.544415 2.044416 0.562500 +v -0.544415 2.044416 0.437500 +v -0.294635 2.211313 0.562500 +v -0.294635 2.211313 0.437500 +v 0.613304 2.201693 0.000000 +v 0.657498 2.245887 -0.312500 +v 0.569110 2.157499 -0.312500 +v 0.701693 2.113304 -0.437500 +v 0.613304 2.201693 -0.437500 +v 0.701693 2.113304 0.000000 +v 0.745887 2.157498 0.312500 +v 0.657498 2.069110 0.312500 +v 0.657498 2.245887 0.312500 +v 0.701693 2.113304 0.437500 +v 0.701693 2.290081 0.000000 +v 0.790081 2.201693 0.000000 +v 0.613304 2.024916 0.437500 +v 0.569110 2.157499 0.312500 +v 0.613304 2.201693 0.437500 +v 0.745887 2.157498 -0.312500 +v 0.657498 2.069110 -0.312500 +v 0.524916 2.113304 -0.437500 +v -0.613304 2.201693 0.000000 +v -0.657498 2.245887 -0.312500 +v -0.701693 2.290081 0.000000 +v -0.701693 2.113304 -0.437500 +v -0.745887 2.157498 -0.312500 +v -0.701693 2.113304 0.000000 +v -0.745887 2.157498 0.312500 +v -0.790081 2.201693 0.000000 +v -0.701693 2.113304 0.437500 +v -0.657498 2.245887 0.312500 +v -0.657498 2.069110 0.312500 +v -0.613304 2.201693 0.437500 +v -0.569110 2.157499 0.312500 +v -0.657498 2.069110 -0.312500 +v -0.569110 2.157499 -0.312500 +v -0.613304 2.201693 -0.437500 +v 0.613304 0.798307 0.000000 +v 0.657498 0.754113 -0.312500 +v 0.701693 0.709919 0.000000 +v 0.613304 0.798307 -0.437500 +v 0.745887 0.842502 -0.312500 +v 0.701693 0.886696 0.000000 +v 0.745887 0.842502 0.312500 +v 0.790081 0.798307 0.000000 +v 0.613304 0.798307 0.437500 +v 0.657498 0.754113 0.312500 +v 0.657498 0.930890 0.312500 +v 0.701693 0.886696 0.437500 +v 0.569110 0.842502 0.312500 +v 0.657498 0.930890 -0.312500 +v 0.569110 0.842502 -0.312500 +v 0.701693 0.886696 -0.437500 +v -0.613304 0.798307 0.000000 +v -0.657498 0.754113 -0.312500 +v -0.569110 0.842502 -0.312500 +v -0.745887 0.842502 -0.312500 +v -0.613304 0.798307 -0.437500 +v -0.701693 0.886696 0.000000 +v -0.745887 0.842502 0.312500 +v -0.657498 0.930890 0.312500 +v -0.613304 0.798307 0.437500 +v -0.701693 0.886696 0.437500 +v -0.701693 0.709919 0.000000 +v -0.790081 0.798307 0.000000 +v -0.613304 0.975084 0.437500 +v -0.569110 0.842502 0.312500 +v -0.657498 0.754113 0.312500 +v -0.657498 0.930890 -0.312500 +v -0.524916 0.886696 -0.437500 +v -0.701693 0.886696 -0.437500 +v 0.000000 2.064916 0.777541 +v 0.113655 1.774387 0.914054 +v 0.216184 2.021915 0.777541 +v 0.000000 1.796994 -0.914054 +v 0.216184 2.021915 -0.777540 +v 0.113655 1.774387 -0.914054 +v 0.000000 2.414054 -0.296994 +v 0.367794 2.387934 0.000000 +v 0.349793 2.344476 -0.296994 +v 0.297552 2.218354 0.564917 +v 0.000000 2.277541 0.564917 +v 0.000000 1.500000 -0.961093 +v 0.000000 2.277541 -0.564916 +v 0.297552 2.218354 -0.564916 +v 0.349793 2.344476 0.296994 +v 0.000000 2.414054 0.296994 +v 0.000000 1.796994 0.914054 +v 0.000000 1.500000 0.961093 +v 0.000000 2.064916 -0.777540 +v 0.000000 2.461093 0.000000 +v 0.210007 1.710007 0.914054 +v 0.399456 1.899456 0.777541 +v 0.210007 1.710006 -0.914054 +v 0.679596 2.179595 0.000000 +v 0.646334 2.146334 -0.296994 +v 0.549804 2.049804 0.564917 +v 0.549804 2.049804 -0.564916 +v 0.646334 2.146334 0.296994 +v 0.399456 1.899456 -0.777540 +v 0.844476 1.849793 0.296994 +v 0.887934 1.867794 0.000000 +v 0.521915 1.716184 0.777541 +v 0.274387 1.613655 -0.914054 +v 0.844476 1.849793 -0.296994 +v 0.718354 1.797552 0.564917 +v 0.718354 1.797552 -0.564916 +v 0.274387 1.613655 0.914054 +v 0.521915 1.716184 -0.777540 +v 0.296994 1.500000 0.914054 +v 0.564916 1.500000 -0.777540 +v 0.914054 1.500000 0.296994 +v 0.961093 1.500000 0.000000 +v 0.564916 1.500000 0.777541 +v 0.296994 1.500000 -0.914054 +v 0.914054 1.500000 -0.296994 +v 0.777541 1.500000 0.564917 +v 0.777541 1.500000 -0.564916 +v 0.718354 1.202448 -0.564916 +v 0.844476 1.150206 0.296994 +v 0.274387 1.386345 0.914054 +v 0.521915 1.283816 -0.777540 +v 0.887934 1.132205 0.000000 +v 0.521915 1.283816 0.777541 +v 0.274387 1.386345 -0.914054 +v 0.844476 1.150206 -0.296994 +v 0.718354 1.202448 0.564917 +v 0.549804 0.950195 0.564917 +v 0.210007 1.289993 -0.914054 +v 0.549804 0.950195 -0.564916 +v 0.646334 0.853666 0.296994 +v 0.210007 1.289993 0.914054 +v 0.399456 1.100543 -0.777540 +v 0.679595 0.820404 0.000000 +v 0.399456 1.100543 0.777541 +v 0.646334 0.853666 -0.296994 +v 0.349793 0.655524 -0.296994 +v 0.297552 0.781646 0.564916 +v 0.113655 1.225613 -0.914054 +v 0.297552 0.781646 -0.564916 +v 0.349793 0.655524 0.296994 +v 0.113655 1.225613 0.914054 +v 0.216184 0.978085 -0.777540 +v 0.367794 0.612066 0.000000 +v 0.216184 0.978085 0.777541 +v 0.000000 0.935084 0.777541 +v 0.000000 1.203006 -0.914054 +v 0.000000 0.585946 -0.296994 +v 0.000000 0.722459 0.564916 +v 0.000000 0.722459 -0.564916 +v 0.000000 0.585946 0.296994 +v 0.000000 1.203006 0.914054 +v 0.000000 0.935084 -0.777540 +v 0.000000 0.538907 0.000000 +v -0.297552 0.781646 -0.564916 +v -0.216184 0.978085 -0.777540 +v -0.367795 0.612066 0.000000 +v -0.113655 1.225613 0.914054 +v -0.216184 0.978085 0.777541 +v -0.113655 1.225613 -0.914054 +v -0.349794 0.655524 -0.296994 +v -0.297552 0.781646 0.564916 +v -0.349793 0.655524 0.296994 +v -0.646334 0.853666 0.296994 +v -0.210007 1.289993 0.914054 +v -0.549804 0.950196 -0.564916 +v -0.399456 1.100544 -0.777540 +v -0.679596 0.820405 0.000000 +v -0.399456 1.100544 0.777541 +v -0.210007 1.289994 -0.914054 +v -0.646334 0.853666 -0.296994 +v -0.549804 0.950196 0.564917 +v -0.718354 1.202448 -0.564916 +v -0.844476 1.150207 0.296994 +v -0.274387 1.386345 0.914054 +v -0.521915 1.283816 -0.777540 +v -0.887934 1.132206 0.000000 +v -0.521915 1.283816 0.777541 +v -0.274387 1.386345 -0.914054 +v -0.844476 1.150207 -0.296994 +v -0.718354 1.202448 0.564917 +v -0.777541 1.500000 0.564917 +v -0.296994 1.500000 -0.914054 +v -0.777541 1.500000 -0.564916 +v -0.914054 1.500000 0.296994 +v -0.296994 1.500000 0.914054 +v -0.564916 1.500000 -0.777540 +v -0.961093 1.500000 0.000000 +v -0.564916 1.500000 0.777541 +v -0.914054 1.500000 -0.296994 +v -0.521914 1.716184 -0.777540 +v -0.274387 1.613655 -0.914054 +v -0.844476 1.849794 -0.296994 +v -0.718354 1.797552 0.564917 +v -0.718354 1.797552 -0.564916 +v -0.844476 1.849793 0.296994 +v -0.274387 1.613655 0.914054 +v -0.887934 1.867795 0.000000 +v -0.521914 1.716184 0.777541 +v -0.679595 2.179596 0.000000 +v -0.210007 1.710007 0.914054 +v -0.399456 1.899456 0.777541 +v -0.210006 1.710007 -0.914054 +v -0.646333 2.146334 -0.296994 +v -0.549804 2.049804 0.564917 +v -0.549804 2.049804 -0.564916 +v -0.646333 2.146334 0.296994 +v -0.399456 1.899456 -0.777540 +v -0.113655 1.774387 0.914054 +v -0.297551 2.218354 -0.564916 +v -0.216184 2.021915 -0.777540 +v -0.367794 2.387934 0.000000 +v -0.216184 2.021915 0.777541 +v -0.113655 1.774387 -0.914054 +v -0.349793 2.344476 -0.296994 +v -0.297551 2.218354 0.564917 +v -0.349793 2.344476 0.296994 +v -0.937500 0.187500 0.437500 +v 0.312593 2.071245 0.856743 +v 0.639883 1.620769 0.856743 +v 0.639883 1.379231 0.856743 +v 0.446690 1.026182 0.856743 +v 0.082876 0.854115 0.856743 +v -0.446690 1.026182 0.856743 +v -0.588663 1.221591 0.856743 +v -0.639883 1.620769 0.856743 +v -0.446690 1.973818 0.856743 +v -0.082876 2.145885 0.856743 +v 0.524916 2.113304 0.437500 +v 0.613304 2.024916 -0.437500 +v -0.613304 2.024916 0.437500 +v -0.524916 2.113304 0.437500 +v -0.524916 2.113304 -0.437500 +v -0.613304 2.024916 -0.437500 +v 0.613304 0.975084 0.437500 +v 0.524916 0.886696 0.437500 +v 0.524916 0.886696 -0.437500 +v 0.613304 0.975084 -0.437500 +v -0.524916 0.886696 0.437500 +v -0.613304 0.975084 -0.437500 +v 0.284663 2.432218 -0.215667 +v 0.241696 2.328486 -0.378320 +v 0.261693 2.376764 -0.198249 +v 0.264666 2.383941 -0.395739 +v 0.414923 2.256733 -0.378320 +v 0.437894 2.312188 -0.395739 +v 0.434921 2.305010 -0.198249 +v 0.386817 2.352198 -0.335715 +v 0.416453 2.423745 -0.293109 +v 0.393482 2.368290 -0.275691 +v 0.335740 2.392208 -0.275691 +v 0.329074 2.376116 -0.335715 +v 0.457891 2.360465 -0.215667 +v 0.409787 2.407653 -0.353133 +v 0.358710 2.447663 -0.293109 +v 0.352044 2.431571 -0.353133 +v -0.261693 2.376764 -0.198249 +v -0.264666 2.383941 -0.395739 +v -0.284663 2.432218 -0.215667 +v -0.414923 2.256733 -0.378320 +v -0.241696 2.328486 -0.378320 +v -0.434921 2.305010 -0.198249 +v -0.437894 2.312188 -0.395739 +v -0.457891 2.360465 -0.215667 +v -0.416453 2.423745 -0.293109 +v -0.386817 2.352198 -0.335715 +v -0.393482 2.368290 -0.275691 +v -0.329074 2.376116 -0.335715 +v -0.335740 2.392208 -0.275691 +v -0.409787 2.407653 -0.353133 +v -0.358710 2.447663 -0.293109 +v -0.352044 2.431571 -0.353133 +v 0.261693 2.376764 0.198249 +v 0.264666 2.383941 0.395739 +v 0.284663 2.432218 0.215667 +v 0.414923 2.256733 0.378320 +v 0.241696 2.328486 0.378320 +v 0.434921 2.305010 0.198249 +v 0.437894 2.312188 0.395739 +v 0.457891 2.360465 0.215667 +v 0.416453 2.423745 0.293109 +v 0.386817 2.352198 0.335715 +v 0.393482 2.368290 0.275691 +v 0.329074 2.376116 0.335715 +v 0.335740 2.392208 0.275691 +v 0.409787 2.407653 0.353133 +v 0.358710 2.447663 0.293109 +v 0.352044 2.431571 0.353133 +v -0.284663 2.432218 0.215667 +v -0.241696 2.328486 0.378320 +v -0.261693 2.376764 0.198249 +v -0.264666 2.383941 0.395739 +v -0.414923 2.256733 0.378320 +v -0.437894 2.312188 0.395739 +v -0.434921 2.305010 0.198249 +v -0.386817 2.352198 0.335715 +v -0.416453 2.423745 0.293109 +v -0.393482 2.368290 0.275691 +v -0.335740 2.392208 0.275691 +v -0.329074 2.376116 0.335715 +v -0.457891 2.360465 0.215667 +v -0.409787 2.407653 0.353133 +v -0.358710 2.447663 0.293109 +v -0.352044 2.431571 0.353133 +v 0.261693 0.623236 -0.198249 +v 0.264666 0.616059 -0.395739 +v 0.284663 0.567782 -0.215667 +v 0.414923 0.743267 -0.378320 +v 0.241696 0.671514 -0.378320 +v 0.434921 0.694990 -0.198249 +v 0.437894 0.687812 -0.395739 +v 0.457891 0.639535 -0.215667 +v 0.416453 0.576255 -0.293109 +v 0.386817 0.647802 -0.335715 +v 0.393482 0.631710 -0.275691 +v 0.329074 0.623884 -0.335715 +v 0.335740 0.607792 -0.275691 +v 0.409787 0.592347 -0.353133 +v 0.358710 0.552337 -0.293109 +v 0.352044 0.568430 -0.353133 +v -0.284663 0.567782 -0.215667 +v -0.241696 0.671514 -0.378320 +v -0.261693 0.623236 -0.198249 +v -0.264666 0.616059 -0.395739 +v -0.414923 0.743267 -0.378320 +v -0.437894 0.687812 -0.395739 +v -0.434921 0.694990 -0.198249 +v -0.386817 0.647802 -0.335715 +v -0.416453 0.576255 -0.293109 +v -0.393482 0.631710 -0.275691 +v -0.335740 0.607792 -0.275691 +v -0.329074 0.623884 -0.335715 +v -0.457891 0.639535 -0.215667 +v -0.409787 0.592347 -0.353133 +v -0.358710 0.552337 -0.293109 +v -0.352044 0.568430 -0.353133 +v 0.284663 0.567782 0.215667 +v 0.241696 0.671514 0.378320 +v 0.261693 0.623236 0.198249 +v 0.264666 0.616059 0.395739 +v 0.414923 0.743267 0.378320 +v 0.437894 0.687812 0.395739 +v 0.434921 0.694990 0.198249 +v 0.386817 0.647802 0.335715 +v 0.416453 0.576255 0.293109 +v 0.393482 0.631710 0.275691 +v 0.335740 0.607792 0.275691 +v 0.329074 0.623884 0.335715 +v 0.457891 0.639535 0.215667 +v 0.409787 0.592347 0.353133 +v 0.358710 0.552337 0.293109 +v 0.352044 0.568430 0.353133 +v -0.261693 0.623236 0.198249 +v -0.264666 0.616059 0.395739 +v -0.284663 0.567782 0.215667 +v -0.414923 0.743267 0.378320 +v -0.241696 0.671514 0.378320 +v -0.434921 0.694990 0.198249 +v -0.437894 0.687812 0.395739 +v -0.457891 0.639535 0.215667 +v -0.416453 0.576255 0.293109 +v -0.386817 0.647802 0.335715 +v -0.393482 0.631710 0.275691 +v -0.329074 0.623884 0.335715 +v -0.335740 0.607792 0.275691 +v -0.409787 0.592347 0.353133 +v -0.358710 0.552337 0.293109 +v -0.352044 0.568430 0.353133 +v 0.292716 2.062386 0.759617 +v 0.344670 2.133894 0.582840 +v 0.266740 2.026632 0.715423 +v 0.370646 2.169648 0.627035 +v 0.496360 2.023684 0.582840 +v 0.522337 2.059438 0.627035 +v 0.418430 1.916423 0.715423 +v 0.444407 1.952176 0.759617 +v 0.419820 2.024667 0.715423 +v 0.395233 2.097157 0.759617 +v 0.369257 2.061403 0.715423 +v 0.395233 2.097157 0.671229 +v 0.445797 2.060421 0.671229 +v 0.421210 2.132911 0.715423 +v 0.445797 2.060421 0.759617 +v 0.471774 2.096174 0.715423 +v 0.625315 1.395397 0.759617 +v 0.709378 1.368084 0.582840 +v 0.583284 1.409054 0.715423 +v 0.751409 1.354427 0.627035 +v 0.651437 1.189760 0.582840 +v 0.567375 1.217074 0.759617 +v 0.525343 1.230731 0.715423 +v 0.628719 1.262858 0.715423 +v 0.690064 1.308643 0.759617 +v 0.648033 1.322299 0.715423 +v 0.690064 1.308643 0.671229 +v 0.670751 1.249202 0.671229 +v 0.693468 1.176104 0.627035 +v 0.732095 1.294986 0.715423 +v 0.670751 1.249202 0.759617 +v 0.712782 1.235545 0.715423 +v 0.093750 0.872966 0.759617 +v 0.093750 0.784577 0.582840 +v 0.093750 0.917160 0.715423 +v -0.093750 0.740383 0.627035 +v -0.093750 0.784577 0.582840 +v -0.093750 0.872966 0.759617 +v -0.093750 0.917160 0.715423 +v -0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.759617 +v 0.031250 0.828771 0.715423 +v 0.031250 0.784577 0.671229 +v -0.031250 0.784577 0.671229 +v 0.093750 0.740383 0.627035 +v 0.031250 0.740383 0.715423 +v -0.031250 0.784577 0.759617 +v -0.031250 0.740383 0.715423 +v -0.567375 1.217074 0.759617 +v -0.651437 1.189761 0.582840 +v -0.525344 1.230731 0.715423 +v -0.751409 1.354427 0.627035 +v -0.709378 1.368084 0.582840 +v -0.625316 1.395398 0.759617 +v -0.583284 1.409054 0.715423 +v -0.648033 1.322300 0.715423 +v -0.670751 1.249202 0.759617 +v -0.628720 1.262859 0.715423 +v -0.670751 1.249202 0.671229 +v -0.690064 1.308643 0.671229 +v -0.693468 1.176104 0.627035 +v -0.712782 1.235545 0.715423 +v -0.690064 1.308643 0.759617 +v -0.732096 1.294986 0.715423 +v -0.444407 1.952177 0.759617 +v -0.496360 2.023685 0.582840 +v -0.418430 1.916423 0.715423 +v -0.370646 2.169648 0.627035 +v -0.344669 2.133894 0.582840 +v -0.266739 2.026633 0.715423 +v -0.292716 2.062387 0.759617 +v -0.369256 2.061404 0.715423 +v -0.445797 2.060421 0.759617 +v -0.419820 2.024667 0.715423 +v -0.445797 2.060421 0.671229 +v -0.395233 2.097158 0.671229 +v -0.522337 2.059438 0.627035 +v -0.471773 2.096175 0.715423 +v -0.395233 2.097158 0.759617 +v -0.421210 2.132912 0.715423 +v 0.344670 2.133894 -0.582840 +v 0.292716 2.062386 -0.759617 +v 0.266740 2.026632 -0.715423 +v 0.496360 2.023684 -0.582840 +v 0.370646 2.169648 -0.627035 +v 0.418430 1.916423 -0.715423 +v 0.522337 2.059438 -0.627035 +v 0.444407 1.952176 -0.759617 +v 0.395233 2.097157 -0.759617 +v 0.419820 2.024667 -0.715423 +v 0.369257 2.061403 -0.715423 +v 0.395233 2.097157 -0.671229 +v 0.445797 2.060421 -0.671229 +v 0.445797 2.060421 -0.759617 +v 0.421210 2.132911 -0.715423 +v 0.471774 2.096174 -0.715423 +v 0.709378 1.368084 -0.582840 +v 0.625315 1.395397 -0.759617 +v 0.583284 1.409054 -0.715423 +v 0.693468 1.176104 -0.627035 +v 0.751409 1.354427 -0.627035 +v 0.525343 1.230731 -0.715423 +v 0.651437 1.189760 -0.582840 +v 0.567375 1.217074 -0.759617 +v 0.690064 1.308643 -0.759617 +v 0.628719 1.262858 -0.715423 +v 0.648033 1.322299 -0.715423 +v 0.690064 1.308643 -0.671229 +v 0.670751 1.249202 -0.671229 +v 0.670751 1.249202 -0.759617 +v 0.732095 1.294986 -0.715423 +v 0.712782 1.235545 -0.715423 +v 0.093750 0.784577 -0.582840 +v 0.093750 0.872966 -0.759617 +v 0.093750 0.917160 -0.715423 +v -0.093750 0.740383 -0.627035 +v 0.093750 0.740383 -0.627035 +v -0.093750 0.784577 -0.582840 +v -0.093750 0.872966 -0.759617 +v -0.093750 0.917160 -0.715423 +v 0.031250 0.784577 -0.759617 +v -0.031250 0.828771 -0.715423 +v 0.031250 0.828771 -0.715423 +v 0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.671229 +v -0.031250 0.784577 -0.759617 +v 0.031250 0.740383 -0.715423 +v -0.031250 0.740383 -0.715423 +v -0.651437 1.189761 -0.582840 +v -0.567375 1.217074 -0.759617 +v -0.525344 1.230731 -0.715423 +v -0.751409 1.354427 -0.627035 +v -0.693468 1.176104 -0.627035 +v -0.709378 1.368084 -0.582840 +v -0.625316 1.395398 -0.759617 +v -0.583284 1.409054 -0.715423 +v -0.670751 1.249202 -0.759617 +v -0.648033 1.322300 -0.715423 +v -0.628720 1.262859 -0.715423 +v -0.670751 1.249202 -0.671229 +v -0.690064 1.308643 -0.671229 +v -0.690064 1.308643 -0.759617 +v -0.712782 1.235545 -0.715423 +v -0.732096 1.294986 -0.715423 +v -0.496360 2.023685 -0.582840 +v -0.444407 1.952177 -0.759617 +v -0.418430 1.916423 -0.715423 +v -0.344669 2.133894 -0.582840 +v -0.522337 2.059438 -0.627035 +v -0.266739 2.026633 -0.715423 +v -0.370646 2.169648 -0.627035 +v -0.292716 2.062387 -0.759617 +v -0.445797 2.060421 -0.759617 +v -0.369256 2.061404 -0.715423 +v -0.419820 2.024667 -0.715423 +v -0.445797 2.060421 -0.671229 +v -0.395233 2.097158 -0.671229 +v -0.395233 2.097158 -0.759617 +v -0.471773 2.096175 -0.715423 +v -0.421210 2.132912 -0.715423 +v 0.932218 1.215337 -0.215667 +v 0.828486 1.258304 -0.378320 +v 0.876764 1.238307 -0.198249 +v 0.883941 1.235334 -0.395739 +v 0.756733 1.085077 -0.378320 +v 0.860465 1.042109 -0.215667 +v 0.805010 1.065079 -0.198249 +v 0.852198 1.113183 -0.335715 +v 0.923745 1.083547 -0.293109 +v 0.868290 1.106518 -0.275691 +v 0.876116 1.170926 -0.335715 +v 0.892208 1.164260 -0.275691 +v 0.812188 1.062106 -0.395739 +v 0.907653 1.090213 -0.353133 +v 0.947663 1.141290 -0.293109 +v 0.931570 1.147956 -0.353133 +v 0.828486 1.741696 -0.378320 +v 0.932218 1.784663 -0.215667 +v 0.876764 1.761693 -0.198249 +v 0.756733 1.914923 -0.378320 +v 0.883941 1.764666 -0.395739 +v 0.805010 1.934921 -0.198249 +v 0.812188 1.937894 -0.395739 +v 0.860465 1.957891 -0.215667 +v 0.923745 1.916453 -0.293109 +v 0.852198 1.886817 -0.335715 +v 0.868290 1.893483 -0.275691 +v 0.892208 1.835740 -0.275691 +v 0.876116 1.829074 -0.335715 +v 0.931570 1.852044 -0.353133 +v 0.907653 1.909787 -0.353133 +v 0.947663 1.858710 -0.293109 +v 0.828486 1.258304 0.378320 +v 0.932218 1.215337 0.215667 +v 0.876764 1.238307 0.198249 +v 0.756733 1.085077 0.378320 +v 0.883941 1.235334 0.395739 +v 0.860465 1.042109 0.215667 +v 0.812188 1.062106 0.395739 +v 0.805010 1.065079 0.198249 +v 0.868290 1.106518 0.275691 +v 0.907653 1.090213 0.353133 +v 0.852198 1.113183 0.335715 +v 0.892208 1.164260 0.275691 +v 0.876116 1.170926 0.335715 +v 0.947663 1.141290 0.293109 +v 0.931570 1.147956 0.353133 +v 0.932218 1.784663 0.215667 +v 0.828486 1.741696 0.378320 +v 0.876764 1.761693 0.198249 +v 0.883941 1.764666 0.395739 +v 0.756733 1.914923 0.378320 +v 0.812188 1.937894 0.395739 +v 0.805010 1.934921 0.198249 +v 0.860465 1.957891 0.215667 +v 0.852198 1.886817 0.335715 +v 0.923745 1.916453 0.293109 +v 0.868290 1.893483 0.275691 +v 0.876116 1.829074 0.335715 +v 0.892208 1.835740 0.275691 +v 0.931570 1.852044 0.353133 +v 0.907653 1.909787 0.353133 +v 0.947663 1.858710 0.293109 +v -0.828486 1.258304 -0.378320 +v -0.932218 1.215337 -0.215667 +v -0.876764 1.238307 -0.198249 +v -0.756733 1.085077 -0.378320 +v -0.883941 1.235334 -0.395739 +v -0.805010 1.065079 -0.198249 +v -0.812188 1.062106 -0.395739 +v -0.860465 1.042109 -0.215667 +v -0.923745 1.083547 -0.293109 +v -0.852198 1.113183 -0.335715 +v -0.868290 1.106517 -0.275691 +v -0.892208 1.164260 -0.275691 +v -0.876116 1.170926 -0.335715 +v -0.931570 1.147956 -0.353133 +v -0.907653 1.090213 -0.353133 +v -0.947663 1.141290 -0.293109 +v -0.932218 1.784663 -0.215667 +v -0.828486 1.741696 -0.378320 +v -0.876764 1.761693 -0.198249 +v -0.883941 1.764666 -0.395739 +v -0.756733 1.914923 -0.378320 +v -0.860465 1.957891 -0.215667 +v -0.805010 1.934921 -0.198249 +v -0.852198 1.886817 -0.335715 +v -0.923745 1.916453 -0.293109 +v -0.868290 1.893482 -0.275691 +v -0.876116 1.829074 -0.335715 +v -0.892208 1.835740 -0.275691 +v -0.812188 1.937894 -0.395739 +v -0.907653 1.909787 -0.353133 +v -0.947663 1.858710 -0.293109 +v -0.931570 1.852044 -0.353133 +v -0.932218 1.215337 0.215667 +v -0.828486 1.258304 0.378320 +v -0.876764 1.238307 0.198249 +v -0.883941 1.235334 0.395739 +v -0.756733 1.085077 0.378320 +v -0.812188 1.062106 0.395739 +v -0.805010 1.065079 0.198249 +v -0.860465 1.042109 0.215667 +v -0.852198 1.113183 0.335715 +v -0.923745 1.083547 0.293109 +v -0.868290 1.106517 0.275691 +v -0.876116 1.170926 0.335715 +v -0.892208 1.164260 0.275691 +v -0.931570 1.147956 0.353133 +v -0.907653 1.090213 0.353133 +v -0.947663 1.141290 0.293109 +v -0.828486 1.741696 0.378320 +v -0.932218 1.784663 0.215667 +v -0.876764 1.761693 0.198249 +v -0.756733 1.914923 0.378320 +v -0.883941 1.764666 0.395739 +v -0.860465 1.957891 0.215667 +v -0.812188 1.937894 0.395739 +v -0.805010 1.934921 0.198249 +v -0.868290 1.893482 0.275691 +v -0.907653 1.909787 0.353133 +v -0.852198 1.886817 0.335715 +v -0.892208 1.835740 0.275691 +v -0.876116 1.829074 0.335715 +v -0.947663 1.858710 0.293109 +v -0.931570 1.852044 0.353133 +v 0.923745 1.083547 0.293109 +v -0.923745 1.916453 0.293109 +v -0.807442 1.959695 -1.252000 +v -0.807442 1.959695 -0.439500 +v -1.212871 1.460005 -0.439500 +v -0.905119 1.405740 -0.439500 +v -0.905119 1.405740 -1.252000 +v -1.212871 1.460005 -1.252000 +v -1.115194 2.013960 -1.252000 +v -1.115194 2.013960 -0.439500 +v -1.126047 1.952409 -1.189500 +v -1.202018 1.521556 -1.189500 +v -1.191165 1.583106 -1.189500 +v -1.180312 1.644657 -1.189500 +v -1.169459 1.706207 -1.189500 +v -1.158606 1.767758 -1.189500 +v -1.136900 1.890859 -1.189500 +v -1.147753 1.829308 -1.189500 +v -1.136900 1.890859 -0.502000 +v -1.180312 1.644657 -0.939500 +v -1.231010 1.717060 -0.939500 +v -1.169459 1.706207 -0.939500 +v -1.126047 1.952409 -0.564500 +v -1.136900 1.890859 -0.627000 +v -1.136900 1.890859 -0.564500 +v -1.202018 1.521556 -1.064500 +v -1.252716 1.593959 -1.064500 +v -1.191165 1.583106 -1.064500 +v -1.126047 1.952409 -0.689500 +v -1.136900 1.890859 -0.752000 +v -1.136900 1.890859 -0.689500 +v -1.187598 1.963262 -0.627000 +v -1.198451 1.901712 -0.627000 +v -1.126047 1.952409 -0.814500 +v -1.136900 1.890859 -0.877000 +v -1.136900 1.890859 -0.814500 +v -1.147753 1.829308 -0.752000 +v -1.220157 1.778611 -0.752000 +v -1.158606 1.767758 -0.752000 +v -1.126047 1.952409 -0.939500 +v -1.136900 1.890859 -1.002000 +v -1.136900 1.890859 -0.939500 +v -1.191165 1.583106 -0.939500 +v -1.252716 1.593959 -0.877000 +v -1.191165 1.583106 -0.877000 +v -1.126047 1.952409 -1.064500 +v -1.136900 1.890859 -1.127000 +v -1.136900 1.890859 -1.064500 +v -1.180312 1.644657 -0.877000 +v -1.231010 1.717060 -0.877000 +v -1.241863 1.655510 -0.877000 +v -1.147753 1.829308 -0.502000 +v -1.147753 1.829308 -0.564500 +v -1.147753 1.829308 -0.627000 +v -1.147753 1.829308 -0.689500 +v -1.147753 1.829308 -0.814500 +v -1.147753 1.829308 -0.877000 +v -1.147753 1.829308 -0.939500 +v -1.147753 1.829308 -1.002000 +v -1.147753 1.829308 -1.064500 +v -1.147753 1.829308 -1.127000 +v -1.158606 1.767758 -0.502000 +v -1.169459 1.706207 -1.064500 +v -1.231010 1.717060 -1.002000 +v -1.169459 1.706207 -1.002000 +v -1.158606 1.767758 -0.627000 +v -1.158606 1.767758 -0.564500 +v -1.202018 1.521556 -1.002000 +v -1.252716 1.593959 -1.002000 +v -1.263569 1.532409 -1.002000 +v -1.158606 1.767758 -0.689500 +v -1.209304 1.840161 -1.189500 +v -1.209304 1.840161 -1.127000 +v -1.158606 1.767758 -0.877000 +v -1.158606 1.767758 -0.814500 +v -1.187598 1.963262 -0.564500 +v -1.158606 1.767758 -1.002000 +v -1.158606 1.767758 -0.939500 +v -1.220157 1.778611 -0.689500 +v -1.209304 1.840161 -0.689500 +v -1.158606 1.767758 -1.064500 +v -1.158606 1.767758 -1.127000 +v -1.180312 1.644657 -0.814500 +v -1.231010 1.717060 -0.814500 +v -1.169459 1.706207 -0.814500 +v -1.169459 1.706207 -0.502000 +v -1.169459 1.706207 -0.564500 +v -1.169459 1.706207 -0.627000 +v -1.169459 1.706207 -0.689500 +v -1.169459 1.706207 -0.752000 +v -1.169459 1.706207 -0.877000 +v -1.169459 1.706207 -1.127000 +v -1.180312 1.644657 -0.502000 +v -1.202018 1.521556 -0.939500 +v -1.252716 1.593959 -0.939500 +v -1.180312 1.644657 -0.627000 +v -1.180312 1.644657 -0.564500 +v -1.187598 1.963262 -0.502000 +v -1.198451 1.901712 -0.502000 +v -1.180312 1.644657 -0.752000 +v -1.180312 1.644657 -0.689500 +v -1.220157 1.778611 -0.627000 +v -1.191165 1.583106 -0.814500 +v -1.252716 1.593959 -0.752000 +v -1.191165 1.583106 -0.752000 +v -1.180312 1.644657 -1.002000 +v -1.231010 1.717060 -0.752000 +v -1.241863 1.655510 -0.752000 +v -1.180312 1.644657 -1.127000 +v -1.180312 1.644657 -1.064500 +v -1.191165 1.583106 -0.502000 +v -1.191165 1.583106 -0.564500 +v -1.191165 1.583106 -0.627000 +v -1.191165 1.583106 -0.689500 +v -1.191165 1.583106 -1.002000 +v -1.191165 1.583106 -1.127000 +v -1.202018 1.521556 -0.502000 +v -1.202018 1.521556 -0.877000 +v -1.263569 1.532409 -0.877000 +v -1.202018 1.521556 -0.627000 +v -1.202018 1.521556 -0.564500 +v -1.209304 1.840161 -1.002000 +v -1.202018 1.521556 -0.752000 +v -1.202018 1.521556 -0.689500 +v -1.187598 1.963262 -1.127000 +v -1.126047 1.952409 -1.127000 +v -1.202018 1.521556 -0.814500 +v -1.220157 1.778611 -0.564500 +v -1.209304 1.840161 -0.564500 +v -1.231010 1.717060 -0.689500 +v -1.202018 1.521556 -1.127000 +v -1.252716 1.593959 -0.814500 +v -1.126047 1.952409 -0.502000 +v -1.126047 1.952409 -0.627000 +v -1.126047 1.952409 -0.752000 +v -1.126047 1.952409 -0.877000 +v -1.126047 1.952409 -1.002000 +v -1.198451 1.901712 -0.564500 +v -1.198451 1.901712 -0.689500 +v -1.187598 1.963262 -0.752000 +v -1.198451 1.901712 -0.814500 +v -1.198451 1.901712 -0.752000 +v -1.187598 1.963262 -0.877000 +v -1.198451 1.901712 -0.939500 +v -1.198451 1.901712 -0.877000 +v -1.187598 1.963262 -1.002000 +v -1.198451 1.901712 -1.064500 +v -1.198451 1.901712 -1.002000 +v -1.198451 1.901712 -1.127000 +v -1.187598 1.963262 -1.189500 +v -1.198451 1.901712 -1.189500 +v -1.209304 1.840161 -0.502000 +v -1.220157 1.778611 -0.502000 +v -1.209304 1.840161 -0.627000 +v -1.209304 1.840161 -0.752000 +v -1.220157 1.778611 -0.814500 +v -1.209304 1.840161 -0.877000 +v -1.220157 1.778611 -0.939500 +v -1.220157 1.778611 -0.877000 +v -1.220157 1.778611 -1.064500 +v -1.220157 1.778611 -1.002000 +v -1.220157 1.778611 -1.189500 +v -1.220157 1.778611 -1.127000 +v -1.231010 1.717060 -0.502000 +v -1.241863 1.655510 -0.564500 +v -1.241863 1.655510 -0.502000 +v -1.231010 1.717060 -0.627000 +v -1.241863 1.655510 -0.689500 +v -1.241863 1.655510 -0.627000 +v -1.241863 1.655510 -0.814500 +v -1.241863 1.655510 -0.939500 +v -1.241863 1.655510 -1.064500 +v -1.241863 1.655510 -1.002000 +v -1.241863 1.655510 -1.127000 +v -1.231010 1.717060 -1.189500 +v -1.241863 1.655510 -1.189500 +v -1.252716 1.593959 -0.502000 +v -1.263569 1.532409 -0.564500 +v -1.263569 1.532409 -0.502000 +v -1.252716 1.593959 -0.627000 +v -1.263569 1.532409 -0.689500 +v -1.263569 1.532409 -0.627000 +v -1.263569 1.532409 -0.814500 +v -1.263569 1.532409 -0.752000 +v -1.263569 1.532409 -0.939500 +v -1.263569 1.532409 -1.064500 +v -1.263569 1.532409 -1.127000 +v -1.252716 1.593959 -1.189500 +v -1.263569 1.532409 -1.189500 +v -1.209304 1.840161 -0.814500 +v -1.187598 1.963262 -0.689500 +v -1.252716 1.593959 -1.127000 +v -1.231010 1.717060 -1.127000 +v -1.231010 1.717060 -1.064500 +v -1.209304 1.840161 -0.939500 +v -1.187598 1.963262 -0.814500 +v -1.209304 1.840161 -1.064500 +v -1.187598 1.963262 -0.939500 +v -1.187598 1.963262 -1.064500 +v -1.252716 1.593959 -0.564500 +v -1.252716 1.593959 -0.689500 +v -1.231010 1.717060 -0.564500 +v -0.934110 1.601245 -1.252000 +v -0.995661 1.612098 -1.252000 +v -0.944963 1.539694 -1.252000 +v -1.006514 1.550547 -1.252000 +v -0.934110 1.601245 -1.314400 +v -0.995661 1.612098 -1.314400 +v -0.944963 1.539694 -1.314400 +v -1.006514 1.550547 -1.314400 +v -1.057211 1.622951 -1.252000 +v -1.118762 1.633804 -1.252000 +v -1.068064 1.561400 -1.252000 +v -1.129615 1.572253 -1.252000 +v -1.057211 1.622951 -1.314500 +v -1.118762 1.633804 -1.314500 +v -1.068064 1.561400 -1.314500 +v -1.129615 1.572253 -1.314500 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.982558 0.495146 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.470930 0.834951 +vt 0.837209 0.242718 +vt 0.831395 0.252427 +vt 0.831395 0.242718 +vt 0.488372 0.699029 +vt 0.494186 0.834951 +vt 0.494186 0.699029 +vt 0.802326 0.233010 +vt 0.802326 0.242718 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.988372 0.582524 +vt 0.808140 0.495146 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.831395 0.252427 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.994186 0.563107 +vt 0.982558 0.504854 +vt 0.988372 0.495146 +vt 0.988372 0.504854 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.802326 0.563107 +vt 0.988372 0.543689 +vt 0.802326 0.553398 +vt 0.802326 0.543689 +vt 0.802326 0.233010 +vt 0.831395 0.242718 +vt 0.831395 0.233010 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.802326 0.310680 +vt 0.988372 0.485437 +vt 0.808140 0.504854 +vt 0.802326 0.514563 +vt 0.802326 0.524272 +vt 0.872093 0.310680 +vt 0.802326 0.300971 +vt 0.872093 0.300971 +vt 0.802326 0.572816 +vt 0.796512 0.563107 +vt 0.796512 0.572816 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.872093 0.349515 +vt 0.802326 0.339806 +vt 0.802326 0.349515 +vt 0.802326 0.582524 +vt 0.988372 0.572816 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.802326 0.300971 +vt 0.488372 0.834951 +vt 0.470930 0.699029 +vt 0.488372 0.699029 +vt 0.802326 0.233010 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.988372 0.553398 +vt 0.988372 0.504854 +vt 0.994186 0.495146 +vt 0.796512 0.252427 +vt 0.994186 0.553398 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.796512 0.310680 +vt 0.802326 0.533981 +vt 0.988372 0.543689 +vt 0.988372 0.533981 +vt 0.831395 0.223301 +vt 0.802326 0.242718 +vt 0.831395 0.242718 +vt 0.796512 0.339806 +vt 0.802326 0.310680 +vt 0.802326 0.339806 +vt 0.796512 0.252427 +vt 0.802326 0.242718 +vt 0.802326 0.252427 +vt 0.872093 0.310680 +vt 0.802326 0.271845 +vt 0.872093 0.271845 +vt 0.796512 0.339806 +vt 0.796512 0.310680 +vt 0.831395 0.252427 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.796512 0.495146 +vt 0.802326 0.242718 +vt 0.831395 0.252427 +vt 0.872093 0.310680 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.796512 0.553398 +vt 0.802326 0.563107 +vt 0.802326 0.553398 +vt 0.802326 0.495146 +vt 0.796512 0.504854 +vt 0.802326 0.504854 +vt 0.831395 0.223301 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.837209 0.252427 +vt 0.802326 0.300971 +vt 0.994186 0.572816 +vt 0.988372 0.563107 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.994186 0.563107 +vt 0.988372 0.553398 +vt 0.465116 0.699029 +vt 0.494186 0.834951 +vt 0.877907 0.310680 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.494186 0.699029 +vt 0.511628 0.834951 +vt 0.994186 0.495146 +vt 0.994186 0.504854 +vt 0.872093 0.349515 +vt 0.872093 0.339806 +vt 0.511628 0.834951 +vt 0.511628 0.699029 +vt 0.877907 0.310680 +vt 0.872093 0.339806 +vt 0.877907 0.339806 +vt 0.802326 0.252427 +vt 0.831395 0.262136 +vt 0.802326 0.533981 +vt 0.796512 0.252427 +vt 0.796512 0.242718 +vt 0.337209 0.640777 +vt 0.354651 0.689320 +vt 0.354651 0.650485 +vt 0.325581 0.582524 +vt 0.308140 0.533981 +vt 0.308140 0.572816 +vt 0.325581 0.466019 +vt 0.308140 0.514563 +vt 0.325581 0.524272 +vt 0.325581 0.640777 +vt 0.308140 0.592233 +vt 0.308140 0.631068 +vt 0.593023 0.514563 +vt 0.406977 0.689320 +vt 0.389535 0.640777 +vt 0.389535 0.699029 +vt 0.360465 0.747573 +vt 0.377907 0.699029 +vt 0.360465 0.708738 +vt 0.308140 0.922330 +vt 0.325581 0.873786 +vt 0.308140 0.883495 +vt 0.337209 0.932039 +vt 0.354651 0.980583 +vt 0.354651 0.941748 +vt 0.337209 0.815534 +vt 0.354651 0.766990 +vt 0.337209 0.757282 +vt 0.360465 0.223301 +vt 0.377907 0.174757 +vt 0.360465 0.184466 +vt 0.308140 0.825243 +vt 0.308140 0.864078 +vt 0.337209 0.873786 +vt 0.354651 0.922330 +vt 0.354651 0.883495 +vt 0.360465 0.592233 +vt 0.377907 0.640777 +vt 0.377907 0.582524 +vt 0.360465 0.980583 +vt 0.377907 0.932039 +vt 0.360465 0.941748 +vt 0.360465 0.067961 +vt 0.377907 0.116505 +vt 0.377907 0.058252 +vt 0.337209 0.466019 +vt 0.354651 0.417476 +vt 0.337209 0.407767 +vt 0.325581 0.116505 +vt 0.308140 0.067961 +vt 0.308140 0.106796 +vt 0.308140 0.165049 +vt 0.308140 0.126214 +vt 0.406977 0.165049 +vt 0.389535 0.116505 +vt 0.389535 0.174757 +vt 0.325581 0.407767 +vt 0.308140 0.359223 +vt 0.308140 0.398058 +vt 0.325581 0.174757 +vt 0.308140 0.223301 +vt 0.325581 0.233010 +vt 0.360465 0.339806 +vt 0.377907 0.291262 +vt 0.360465 0.300971 +vt 0.389535 0.233010 +vt 0.406977 0.281553 +vt 0.406977 0.242718 +vt 0.337209 0.291262 +vt 0.354651 0.242718 +vt 0.337209 0.233010 +vt 0.389535 0.291262 +vt 0.406977 0.339806 +vt 0.406977 0.300971 +vt 0.354651 0.359223 +vt 0.354651 0.398058 +vt 0.406977 0.922330 +vt 0.389535 0.873786 +vt 0.389535 0.932039 +vt 0.360465 0.533981 +vt 0.360465 0.572816 +vt 0.308140 0.417476 +vt 0.308140 0.456311 +vt 0.360465 0.825243 +vt 0.377907 0.873786 +vt 0.377907 0.815534 +vt 0.389535 0.466019 +vt 0.406977 0.514563 +vt 0.406977 0.475728 +vt 0.802326 0.233010 +vt 0.831395 0.233010 +vt 0.837209 0.242718 +vt 0.831395 0.242718 +vt 0.831395 0.262136 +vt 0.802326 0.262136 +vt 0.808140 0.495146 +vt 0.802326 0.504854 +vt 0.465116 0.699029 +vt 0.470930 0.834951 +vt 0.465116 0.834951 +vt 0.808140 0.504854 +vt 0.337209 0.582524 +vt 0.354651 0.533981 +vt 0.337209 0.524272 +vt 0.406977 0.533981 +vt 0.389535 0.582524 +vt 0.406977 0.572816 +vt 0.354651 0.592233 +vt 0.354651 0.631068 +vt 0.406977 0.592233 +vt 0.406977 0.631068 +vt 0.360465 0.689320 +vt 0.360465 0.650485 +vt 0.308140 0.689320 +vt 0.308140 0.650485 +vt 0.406977 0.747573 +vt 0.389535 0.757282 +vt 0.325581 0.699029 +vt 0.308140 0.747573 +vt 0.325581 0.757282 +vt 0.360465 0.766990 +vt 0.360465 0.805825 +vt 0.308140 0.281553 +vt 0.325581 0.291262 +vt 0.406977 0.825243 +vt 0.406977 0.864078 +vt 0.360465 0.359223 +vt 0.377907 0.407767 +vt 0.377907 0.349515 +vt 0.337209 0.116505 +vt 0.354651 0.165049 +vt 0.354651 0.126214 +vt 0.337209 0.174757 +vt 0.354651 0.223301 +vt 0.354651 0.184466 +vt 0.354651 0.067961 +vt 0.354651 0.106796 +vt 0.325581 0.932039 +vt 0.308140 0.980583 +vt 0.325581 0.990291 +vt 0.406977 0.067961 +vt 0.406977 0.106796 +vt 0.406977 0.980583 +vt 0.406977 0.941748 +vt 0.360465 0.922330 +vt 0.360465 0.883495 +vt 0.360465 0.165049 +vt 0.360465 0.126214 +vt 0.354651 0.825243 +vt 0.354651 0.864078 +vt 0.406977 0.223301 +vt 0.406977 0.184466 +vt 0.360465 0.242718 +vt 0.360465 0.281553 +vt 0.308140 0.339806 +vt 0.325581 0.349515 +vt 0.354651 0.339806 +vt 0.354651 0.300971 +vt 0.406977 0.766990 +vt 0.389535 0.815534 +vt 0.406977 0.805825 +vt 0.406977 0.359223 +vt 0.389535 0.407767 +vt 0.406977 0.398058 +vt 0.308140 0.805825 +vt 0.325581 0.815534 +vt 0.406977 0.417476 +vt 0.406977 0.456311 +vt 0.377907 0.466019 +vt 0.360465 0.417476 +vt 0.360465 0.456311 +vt 0.354651 0.514563 +vt 0.354651 0.475728 +vt 0.360465 0.514563 +vt 0.360465 0.475728 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.872093 0.300971 +vt 0.802326 0.271845 +vt 0.558140 0.466019 +vt 0.569767 0.446602 +vt 0.569767 0.466019 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.563107 +vt 0.831395 0.223301 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.569767 0.446602 +vt 0.581395 0.563107 +vt 0.593023 0.514563 +vt 0.593023 0.563107 +vt 0.558140 0.514563 +vt 0.569767 0.563107 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.569767 0.563107 +vt 0.569767 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.582524 +vt 0.558140 0.563107 +vt 0.569767 0.582524 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.558140 0.514563 +vt 0.569767 0.466019 +vt 0.558140 0.466019 +vt 0.581395 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.563107 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.593023 0.446602 +vt 0.593023 0.514563 +vt 0.581395 0.466019 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.569767 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.563107 +vt 0.581395 0.582524 +vt 0.581395 0.563107 +vt 0.877907 0.310680 +vt 0.593023 0.514563 +vt 0.569767 0.446602 +vt 0.988372 0.475728 +vt 0.802326 0.475728 +vt 0.581395 0.466019 +vt 0.569767 0.446602 +vt 0.593023 0.466019 +vt 0.581395 0.446602 +vt 0.662281 0.950003 +vt 0.570315 0.837433 +vt 0.570033 0.949354 +vt 0.337209 0.699029 +vt 0.354651 0.747573 +vt 0.354651 0.708738 +vt 0.802326 0.485437 +vt 0.988372 0.485437 +vt 0.982558 0.495146 +vt 0.988372 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.524272 +vt 0.802326 0.514563 +vt 0.988372 0.524272 +vt 0.802326 0.485437 +vt 0.988372 0.514563 +vt 0.525581 0.851052 +vt 0.548382 0.944680 +vt 0.492314 0.982754 +vt 0.570027 0.744687 +vt 0.570320 0.632766 +vt 0.634153 0.598647 +vt 0.598452 0.984140 +vt 0.633688 0.984388 +vt 0.673311 0.894119 +vt 0.662564 0.838082 +vt 0.634144 0.803296 +vt 0.598908 0.803048 +vt 0.559286 0.893317 +vt 0.796512 0.553398 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.819767 0.708738 +vt 0.802326 0.718447 +vt 0.819767 0.718447 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.951456 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.802326 0.718447 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.970874 +vt 0.848837 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.802326 0.951456 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.819767 0.708738 +vt 0.819767 0.718447 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.718447 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.825581 0.747573 +vt 0.825581 0.718447 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.831395 0.728155 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.747573 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.837209 0.737864 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.825581 0.718447 +vt 0.819767 0.747573 +vt 0.825581 0.747573 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.813953 0.728155 +vt 0.819767 0.747573 +vt 0.819767 0.718447 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.819767 0.708738 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.747573 +vt 0.796512 0.718447 +vt 0.796512 0.747573 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.825581 0.980583 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.831395 0.728155 +vt 0.837209 0.737864 +vt 0.831395 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.848837 0.970874 +vt 0.843023 0.961165 +vt 0.848837 0.961165 +vt 0.831395 0.737864 +vt 0.837209 0.728155 +vt 0.837209 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.718447 +vt 0.819767 0.708738 +vt 0.808140 0.737864 +vt 0.802326 0.718447 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.802326 0.747573 +vt 0.819767 0.718447 +vt 0.819767 0.747573 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.819767 0.747573 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.843023 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.831395 0.737864 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.737864 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.819767 0.718447 +vt 0.813953 0.728155 +vt 0.837209 0.737864 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.728155 +vt 0.831395 0.737864 +vt 0.831395 0.728155 +vt 0.796512 0.718447 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.843023 0.747573 +vt 0.843023 0.737864 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.728155 +vt 0.837209 0.718447 +vt 0.837209 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.819767 0.718447 +vt 0.843023 0.737864 +vt 0.848837 0.728155 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.819767 0.757282 +vt 0.802326 0.757282 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.819767 0.708738 +vt 0.819767 0.708738 +vt 0.802326 0.708738 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.837209 0.747573 +vt 0.843023 0.737864 +vt 0.843023 0.747573 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.802326 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.757282 +vt 0.819767 0.757282 +vt 0.796512 0.718447 +vt 0.802326 0.708738 +vt 0.819767 0.708738 +vt 0.837209 0.718447 +vt 0.843023 0.718447 +vt 0.802326 0.718447 +vt 0.808140 0.737864 +vt 0.808140 0.728155 +vt 0.813953 0.737864 +vt 0.813953 0.728155 +vt 0.843023 0.747573 +vt 0.837209 0.747573 +vt 0.848837 0.737864 +vt 0.843023 0.728155 +vt 0.848837 0.728155 +vt 0.825581 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.796512 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.980583 +vt 0.802326 0.951456 +vt 0.819767 0.941748 +vt 0.802326 0.941748 +vt 0.837209 0.718447 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.843023 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.980583 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.819767 0.951456 +vt 0.819767 0.980583 +vt 0.819767 0.941748 +vt 0.802326 0.951456 +vt 0.837209 0.961165 +vt 0.843023 0.951456 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.802326 0.980583 +vt 0.808140 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.843023 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.802326 0.951456 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.819767 0.951456 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.843023 0.951456 +vt 0.808140 0.970874 +vt 0.802326 0.951456 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.802326 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.848837 0.737864 +vt 0.848837 0.728155 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.837209 0.970874 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.843023 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.848837 0.961165 +vt 0.825581 0.718447 +vt 0.825581 0.747573 +vt 0.802326 0.980583 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.819767 0.941748 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.819767 0.980583 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.819767 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.718447 +vt 0.837209 0.970874 +vt 0.831395 0.961165 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.970874 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.802326 0.757282 +vt 0.825581 0.980583 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.837209 0.951456 +vt 0.808140 0.970874 +vt 0.808140 0.961165 +vt 0.813953 0.961165 +vt 0.813953 0.970874 +vt 0.837209 0.980583 +vt 0.843023 0.970874 +vt 0.843023 0.980583 +vt 0.837209 0.961165 +vt 0.831395 0.970874 +vt 0.831395 0.961165 +vt 0.848837 0.961165 +vt 0.848837 0.970874 +vt 0.796512 0.980583 +vt 0.796512 0.951456 +vt 0.819767 0.990291 +vt 0.802326 0.990291 +vt 0.825581 0.980583 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.819767 0.941748 +vt 0.843023 0.951456 +vt 0.837209 0.961165 +vt 0.837209 0.951456 +vt 0.808140 0.961165 +vt 0.808140 0.970874 +vt 0.813953 0.970874 +vt 0.813953 0.961165 +vt 0.837209 0.980583 +vt 0.843023 0.980583 +vt 0.831395 0.961165 +vt 0.837209 0.970874 +vt 0.831395 0.970874 +vt 0.848837 0.961165 +vt 0.843023 0.961165 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.819767 0.980583 +vt 0.831395 0.728155 +vt 0.831395 0.737864 +vt 0.517442 0.291262 +vt 0.546512 0.378641 +vt 0.517442 0.378641 +vt 0.517442 0.427184 +vt 0.441860 0.514563 +vt 0.441860 0.427184 +vt 0.441860 0.242718 +vt 0.517442 0.242718 +vt 0.441860 0.378641 +vt 0.441860 0.291262 +vt 0.552326 0.203883 +vt 0.558140 0.213592 +vt 0.552326 0.213592 +vt 0.627907 0.126214 +vt 0.622093 0.116505 +vt 0.627907 0.116505 +vt 0.610465 0.155340 +vt 0.604651 0.145631 +vt 0.610465 0.145631 +vt 0.604651 0.213592 +vt 0.610465 0.203883 +vt 0.610465 0.213592 +vt 0.639535 0.252427 +vt 0.645349 0.242718 +vt 0.645349 0.252427 +vt 0.575581 0.116505 +vt 0.569767 0.126214 +vt 0.569767 0.116505 +vt 0.627907 0.165049 +vt 0.633721 0.155340 +vt 0.633721 0.165049 +vt 0.593023 0.242718 +vt 0.598837 0.233010 +vt 0.598837 0.242718 +vt 0.569767 0.223301 +vt 0.575581 0.233010 +vt 0.569767 0.233010 +vt 0.627907 0.223301 +vt 0.633721 0.213592 +vt 0.633721 0.223301 +vt 0.639535 0.233010 +vt 0.633721 0.242718 +vt 0.633721 0.233010 +vt 0.575581 0.242718 +vt 0.581395 0.233010 +vt 0.581395 0.242718 +vt 0.627907 0.194175 +vt 0.633721 0.203883 +vt 0.627907 0.203883 +vt 0.610465 0.252427 +vt 0.604651 0.262136 +vt 0.604651 0.252427 +vt 0.622093 0.174757 +vt 0.616279 0.165049 +vt 0.622093 0.165049 +vt 0.569767 0.174757 +vt 0.563953 0.184466 +vt 0.563953 0.174757 +vt 0.610465 0.184466 +vt 0.616279 0.174757 +vt 0.616279 0.184466 +vt 0.569767 0.194175 +vt 0.575581 0.184466 +vt 0.575581 0.194175 +vt 0.645349 0.184466 +vt 0.639535 0.174757 +vt 0.645349 0.174757 +vt 0.645349 0.126214 +vt 0.639535 0.116505 +vt 0.645349 0.116505 +vt 0.569767 0.165049 +vt 0.575581 0.174757 +vt 0.622093 0.242718 +vt 0.627907 0.233010 +vt 0.627907 0.242718 +vt 0.563953 0.126214 +vt 0.563953 0.116505 +vt 0.616279 0.203883 +vt 0.616279 0.213592 +vt 0.581395 0.126214 +vt 0.581395 0.116505 +vt 0.587209 0.262136 +vt 0.581395 0.252427 +vt 0.587209 0.252427 +vt 0.633721 0.126214 +vt 0.633721 0.116505 +vt 0.627907 0.145631 +vt 0.633721 0.145631 +vt 0.627907 0.135922 +vt 0.651163 0.116505 +vt 0.651163 0.126214 +vt 0.616279 0.233010 +vt 0.610465 0.242718 +vt 0.610465 0.233010 +vt 0.569767 0.203883 +vt 0.563953 0.213592 +vt 0.563953 0.203883 +vt 0.639535 0.203883 +vt 0.639535 0.213592 +vt 0.610465 0.271845 +vt 0.604651 0.271845 +vt 0.627907 0.184466 +vt 0.627907 0.174757 +vt 0.558140 0.135922 +vt 0.563953 0.145631 +vt 0.558140 0.145631 +vt 0.604651 0.194175 +vt 0.610465 0.194175 +vt 0.598837 0.252427 +vt 0.593023 0.252427 +vt 0.616279 0.106796 +vt 0.622093 0.106796 +vt 0.587209 0.233010 +vt 0.587209 0.242718 +vt 0.581395 0.165049 +vt 0.587209 0.155340 +vt 0.587209 0.165049 +vt 0.651163 0.233010 +vt 0.651163 0.242718 +vt 0.575581 0.262136 +vt 0.581395 0.271845 +vt 0.575581 0.271845 +vt 0.558140 0.194175 +vt 0.563953 0.194175 +vt 0.639535 0.165049 +vt 0.639535 0.106796 +vt 0.616279 0.135922 +vt 0.622093 0.126214 +vt 0.622093 0.135922 +vt 0.563953 0.155340 +vt 0.569767 0.145631 +vt 0.569767 0.155340 +vt 0.581395 0.223301 +vt 0.587209 0.213592 +vt 0.587209 0.223301 +vt 0.633721 0.271845 +vt 0.627907 0.262136 +vt 0.633721 0.262136 +vt 0.610465 0.126214 +vt 0.616279 0.116505 +vt 0.616279 0.126214 +vt 0.627907 0.252427 +vt 0.616279 0.262136 +vt 0.616279 0.271845 +vt 0.581395 0.135922 +vt 0.587209 0.145631 +vt 0.581395 0.145631 +vt 0.587209 0.126214 +vt 0.593023 0.116505 +vt 0.593023 0.126214 +vt 0.604651 0.135922 +vt 0.598837 0.126214 +vt 0.552326 0.155340 +vt 0.552326 0.145631 +vt 0.604651 0.165049 +vt 0.610465 0.165049 +vt 0.627907 0.281553 +vt 0.633721 0.281553 +vt 0.610465 0.281553 +vt 0.604651 0.281553 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.598837 0.184466 +vt 0.604651 0.174757 +vt 0.604651 0.184466 +vt 0.651163 0.174757 +vt 0.651163 0.184466 +vt 0.598837 0.106796 +vt 0.593023 0.106796 +vt 0.563953 0.223301 +vt 0.558140 0.223301 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.593023 0.165049 +vt 0.598837 0.174757 +vt 0.593023 0.174757 +vt 0.587209 0.271845 +vt 0.569767 0.252427 +vt 0.575581 0.252427 +vt 0.575581 0.106796 +vt 0.569767 0.106796 +vt 0.581395 0.194175 +vt 0.587209 0.203883 +vt 0.581395 0.203883 +vt 0.558140 0.165049 +vt 0.563953 0.165049 +vt 0.616279 0.223301 +vt 0.622093 0.233010 +vt 0.581395 0.213592 +vt 0.558140 0.271845 +vt 0.563953 0.281553 +vt 0.558140 0.281553 +vt 0.645349 0.233010 +vt 0.563953 0.271845 +vt 0.569767 0.262136 +vt 0.569767 0.271845 +vt 0.593023 0.145631 +vt 0.593023 0.155340 +vt 0.558140 0.262136 +vt 0.552326 0.271845 +vt 0.552326 0.262136 +vt 0.622093 0.194175 +vt 0.616279 0.194175 +vt 0.639535 0.262136 +vt 0.639535 0.271845 +vt 0.639535 0.145631 +vt 0.639535 0.155340 +vt 0.639535 0.135922 +vt 0.645349 0.135922 +vt 0.563953 0.242718 +vt 0.563953 0.233010 +vt 0.598837 0.155340 +vt 0.598837 0.145631 +vt 0.604651 0.233010 +vt 0.604651 0.242718 +vt 0.575581 0.155340 +vt 0.575581 0.145631 +vt 0.587209 0.184466 +vt 0.587209 0.174757 +vt 0.622093 0.155340 +vt 0.622093 0.145631 +vt 0.639535 0.223301 +vt 0.593023 0.203883 +vt 0.593023 0.213592 +vt 0.581395 0.174757 +vt 0.581395 0.184466 +vt 0.587209 0.281553 +vt 0.581395 0.281553 +vt 0.622093 0.271845 +vt 0.622093 0.262136 +vt 0.598837 0.135922 +vt 0.593023 0.135922 +vt 0.616279 0.145631 +vt 0.616279 0.155340 +vt 0.622093 0.213592 +vt 0.622093 0.203883 +vt 0.593023 0.194175 +vt 0.598837 0.194175 +vt 0.575581 0.213592 +vt 0.575581 0.203883 +vt 0.610465 0.223301 +vt 0.604651 0.223301 +vt 0.598837 0.271845 +vt 0.598837 0.262136 +vt 0.563953 0.252427 +vt 0.558140 0.252427 +vt 0.639535 0.194175 +vt 0.645349 0.194175 +vt 0.593023 0.262136 +vt 0.593023 0.271845 +vt 0.593023 0.223301 +vt 0.598837 0.223301 +vt 0.616279 0.252427 +vt 0.622093 0.252427 +vt 0.633721 0.184466 +vt 0.633721 0.174757 +vt 0.598837 0.203883 +vt 0.598837 0.213592 +vt 0.843023 0.961165 +vt 0.843023 0.737864 +vt 0.843023 0.737864 +vt 0.837209 0.737864 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.843023 0.961165 +vt 0.837209 0.970874 +vt 0.843023 0.737864 +vt 0.837209 0.970874 +vt 0.412791 0.378641 +vt 0.412791 0.291262 +vt 0.593023 0.135922 +vt 0.598837 0.126214 +vt 0.598837 0.135922 +vt 0.604651 0.126214 +vt 0.598837 0.116505 +vt 0.604651 0.116505 +vt 0.598837 0.106796 +vt 0.593023 0.116505 +vt 0.593023 0.106796 +vt 0.587209 0.116505 +vt 0.593023 0.126214 +vt 0.587209 0.126214 +vt 0.575581 0.106796 +vt 0.569767 0.116505 +vt 0.569767 0.106796 +vt 0.563953 0.116505 +vt 0.569767 0.126214 +vt 0.563953 0.126214 +vt 0.569767 0.135922 +vt 0.575581 0.126214 +vt 0.575581 0.135922 +vt 0.581395 0.126214 +vt 0.575581 0.116505 +vt 0.581395 0.116505 +vt 0.837209 0.252427 +vt 0.593023 0.582524 +vt 0.802326 0.262136 +vt 0.796512 0.572816 +vt 0.796512 0.310680 +vt 0.988372 0.582524 +vt 0.872093 0.271845 +vt 0.802326 0.223301 +vt 0.994186 0.504854 +vt 0.796512 0.242718 +vt 0.802326 0.543689 +vt 0.802326 0.223301 +vt 0.796512 0.310680 +vt 0.796512 0.242718 +vt 0.802326 0.349515 +vt 0.796512 0.495146 +vt 0.802326 0.223301 +vt 0.994186 0.553398 +vt 0.465116 0.834951 +vt 0.877907 0.339806 +vt 0.511628 0.699029 +vt 0.802326 0.349515 +vt 0.802326 0.262136 +vt 0.988372 0.533981 +vt 0.308140 0.475728 +vt 0.406977 0.650485 +vt 0.377907 0.757282 +vt 0.337209 0.990291 +vt 0.354651 0.805825 +vt 0.377907 0.233010 +vt 0.360465 0.631068 +vt 0.377907 0.990291 +vt 0.360465 0.106796 +vt 0.354651 0.456311 +vt 0.325581 0.058252 +vt 0.406977 0.126214 +vt 0.308140 0.184466 +vt 0.354651 0.281553 +vt 0.389535 0.349515 +vt 0.337209 0.349515 +vt 0.406977 0.883495 +vt 0.377907 0.524272 +vt 0.360465 0.864078 +vt 0.389535 0.524272 +vt 0.837209 0.252427 +vt 0.354651 0.572816 +vt 0.406977 0.708738 +vt 0.308140 0.708738 +vt 0.308140 0.242718 +vt 0.360465 0.398058 +vt 0.337209 0.058252 +vt 0.308140 0.941748 +vt 0.389535 0.058252 +vt 0.389535 0.990291 +vt 0.308140 0.300971 +vt 0.308140 0.766990 +vt 0.872093 0.271845 +vt 0.558140 0.446602 +vt 0.558140 0.582524 +vt 0.802326 0.223301 +vt 0.569767 0.514563 +vt 0.593023 0.446602 +vt 0.558140 0.446602 +vt 0.581395 0.514563 +vt 0.569767 0.514563 +vt 0.593023 0.582524 +vt 0.558140 0.582524 +vt 0.593023 0.582524 +vt 0.593023 0.582524 +vt 0.877907 0.339806 +vt 0.581395 0.514563 +vt 0.558140 0.446602 +vt 0.558140 0.446602 +vt 0.593023 0.446602 +vt 0.469513 0.889126 +vt 0.478881 0.866040 +vt 0.492825 0.850698 +vt 0.509224 0.845435 +vt 0.539406 0.866694 +vt 0.548594 0.889980 +vt 0.551745 0.917365 +vt 0.539014 0.967766 +vt 0.525070 0.983108 +vt 0.508671 0.988371 +vt 0.478489 0.967112 +vt 0.469302 0.943826 +vt 0.466150 0.916441 +vt 0.673311 0.689481 +vt 0.662275 0.745362 +vt 0.633678 0.779739 +vt 0.598443 0.779481 +vt 0.559285 0.688647 +vt 0.598917 0.598389 +vt 0.662569 0.633441 +vt 0.802326 0.708738 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.802326 0.708738 +vt 0.848837 0.970874 +vt 0.831395 0.728155 +vt 0.848837 0.970874 +vt 0.819767 0.757282 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.837209 0.728155 +vt 0.802326 0.708738 +vt 0.837209 0.728155 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.837209 0.747573 +vt 0.831395 0.728155 +vt 0.796512 0.747573 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.802326 0.708738 +vt 0.837209 0.747573 +vt 0.843023 0.718447 +vt 0.848837 0.737864 +vt 0.802326 0.708738 +vt 0.819767 0.757282 +vt 0.796512 0.747573 +vt 0.796512 0.747573 +vt 0.825581 0.951456 +vt 0.848837 0.970874 +vt 0.825581 0.951456 +vt 0.843023 0.718447 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.802326 0.941748 +vt 0.831395 0.961165 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.802326 0.941748 +vt 0.819767 0.757282 +vt 0.825581 0.951456 +vt 0.843023 0.951456 +vt 0.848837 0.970874 +vt 0.546512 0.291262 +vt 0.517442 0.514563 +vt 0.558140 0.203883 +vt 0.604651 0.155340 +vt 0.604651 0.203883 +vt 0.639535 0.242718 +vt 0.627907 0.155340 +vt 0.593023 0.233010 +vt 0.575581 0.223301 +vt 0.627907 0.213592 +vt 0.633721 0.194175 +vt 0.610465 0.262136 +vt 0.569767 0.184466 +vt 0.610465 0.174757 +vt 0.639535 0.184466 +vt 0.639535 0.126214 +vt 0.575581 0.165049 +vt 0.581395 0.262136 +vt 0.633721 0.135922 +vt 0.616279 0.242718 +vt 0.569767 0.213592 +vt 0.622093 0.184466 +vt 0.563953 0.135922 +vt 0.581395 0.155340 +vt 0.645349 0.165049 +vt 0.645349 0.106796 +vt 0.627907 0.271845 +vt 0.610465 0.116505 +vt 0.633721 0.252427 +vt 0.587209 0.135922 +vt 0.587209 0.116505 +vt 0.610465 0.135922 +vt 0.558140 0.155340 +vt 0.598837 0.165049 +vt 0.569767 0.242718 +vt 0.587209 0.194175 +vt 0.622093 0.223301 +vt 0.563953 0.262136 +vt 0.593023 0.184466 +vt 0.645349 0.223301 +vt 0.412791 0.961165 +vt 0.459302 0.990291 +vt 0.412791 0.990291 +vt 0.412791 0.844660 +vt 0.459302 0.873786 +vt 0.412791 0.873786 +vt 0.412791 0.728155 +vt 0.459302 0.757282 +vt 0.412791 0.757282 +vt 0.412791 0.932039 +vt 0.459302 0.961165 +vt 0.412791 0.582524 +vt 0.459302 0.611650 +vt 0.412791 0.611650 +vt 0.459302 0.786408 +vt 0.412791 0.786408 +vt 0.412791 0.902913 +vt 0.459302 0.932039 +vt 0.459302 0.902913 +vt 0.459302 0.815534 +vt 0.412791 0.815534 +vt 0.151163 0.174757 +vt 0.122093 0.233010 +vt 0.122093 0.174757 +vt 0.412791 0.640777 +vt 0.459302 0.669903 +vt 0.412791 0.669903 +vt 0.459302 0.640777 +vt 0.779070 0.485437 +vt 0.790698 0.553398 +vt 0.779070 0.533981 +vt 0.680233 0.815534 +vt 0.720930 0.834951 +vt 0.691860 0.834951 +vt 0.732558 0.902913 +vt 0.732558 0.815534 +vt 0.680233 0.902913 +vt 0.720930 0.883495 +vt 0.691860 0.660194 +vt 0.680233 0.728155 +vt 0.680233 0.640777 +vt 0.680233 0.728155 +vt 0.720930 0.747573 +vt 0.691860 0.747573 +vt 0.732558 0.815534 +vt 0.732558 0.728155 +vt 0.680233 0.815534 +vt 0.720930 0.796117 +vt 0.779070 0.660194 +vt 0.790698 0.728155 +vt 0.779070 0.708738 +vt 0.720930 0.660194 +vt 0.732558 0.728155 +vt 0.732558 0.640777 +vt 0.720930 0.708738 +vt 0.779070 0.796117 +vt 0.790698 0.728155 +vt 0.790698 0.815534 +vt 0.680233 0.553398 +vt 0.720930 0.572816 +vt 0.691860 0.572816 +vt 0.732558 0.553398 +vt 0.720930 0.621359 +vt 0.680233 0.640777 +vt 0.732349 0.640524 +vt 0.790698 0.466019 +vt 0.779070 0.398058 +vt 0.790698 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.485437 +vt 0.691860 0.485437 +vt 0.732558 0.466019 +vt 0.720930 0.533981 +vt 0.680233 0.553398 +vt 0.732558 0.553398 +vt 0.779070 0.135922 +vt 0.790698 0.203883 +vt 0.779070 0.184466 +vt 0.680233 0.378641 +vt 0.720930 0.398058 +vt 0.691860 0.398058 +vt 0.732558 0.466019 +vt 0.732558 0.378641 +vt 0.680233 0.466019 +vt 0.720930 0.446602 +vt 0.779070 0.621359 +vt 0.790698 0.553398 +vt 0.790698 0.640777 +vt 0.680233 0.291262 +vt 0.720376 0.311760 +vt 0.691860 0.310680 +vt 0.732558 0.378641 +vt 0.732558 0.291262 +vt 0.680233 0.378641 +vt 0.720930 0.359223 +vt 0.779070 0.310680 +vt 0.790698 0.378641 +vt 0.779070 0.359223 +vt 0.680233 0.203883 +vt 0.720930 0.223301 +vt 0.691860 0.223301 +vt 0.732558 0.291262 +vt 0.732558 0.203883 +vt 0.680233 0.291262 +vt 0.720930 0.271845 +vt 0.691860 0.796117 +vt 0.680233 0.116505 +vt 0.720930 0.135922 +vt 0.691860 0.135922 +vt 0.732558 0.203883 +vt 0.732558 0.116505 +vt 0.680233 0.203883 +vt 0.720930 0.184466 +vt 0.779070 0.922330 +vt 0.790698 0.990291 +vt 0.779070 0.970874 +vt 0.680233 0.902913 +vt 0.720930 0.922330 +vt 0.691860 0.922330 +vt 0.732558 0.902913 +vt 0.720930 0.970874 +vt 0.680233 0.990291 +vt 0.732558 0.990291 +vt 0.691860 0.621359 +vt 0.063954 0.281553 +vt 0.034884 0.252427 +vt 0.063954 0.242718 +vt 0.790698 0.815534 +vt 0.750000 0.834951 +vt 0.738372 0.815534 +vt 0.738372 0.902913 +vt 0.750000 0.883495 +vt 0.790698 0.902913 +vt 0.691860 0.883495 +vt 0.750000 0.747573 +vt 0.738372 0.728155 +vt 0.738372 0.815534 +vt 0.750000 0.796117 +vt 0.691860 0.271845 +vt 0.790698 0.640777 +vt 0.750000 0.660194 +vt 0.738372 0.640777 +vt 0.738372 0.728155 +vt 0.750000 0.708738 +vt 0.779070 0.223301 +vt 0.790698 0.291262 +vt 0.779070 0.271845 +vt 0.750000 0.572816 +vt 0.738372 0.553398 +vt 0.750000 0.621359 +vt 0.738581 0.640524 +vt 0.779070 0.834951 +vt 0.779070 0.883495 +vt 0.790698 0.466019 +vt 0.750000 0.485437 +vt 0.738372 0.466019 +vt 0.750000 0.533981 +vt 0.738372 0.553398 +vt 0.691860 0.533981 +vt 0.750000 0.398058 +vt 0.738372 0.378641 +vt 0.738372 0.466019 +vt 0.750000 0.446602 +vt 0.790698 0.291262 +vt 0.750554 0.311760 +vt 0.738372 0.291262 +vt 0.750000 0.359223 +vt 0.738372 0.378641 +vt 0.790698 0.203883 +vt 0.750000 0.223301 +vt 0.738372 0.203883 +vt 0.738372 0.291262 +vt 0.750000 0.271845 +vt 0.790698 0.116505 +vt 0.750000 0.135922 +vt 0.738372 0.116505 +vt 0.750000 0.184466 +vt 0.738372 0.203883 +vt 0.790698 0.902913 +vt 0.750000 0.922330 +vt 0.738372 0.902913 +vt 0.738372 0.990291 +vt 0.750000 0.970874 +vt 0.412791 0.524272 +vt 0.459302 0.553398 +vt 0.412791 0.553398 +vt 0.459302 0.844660 +vt 0.412791 0.699029 +vt 0.459302 0.728155 +vt 0.459302 0.699029 +vt 0.459302 0.582524 +vt 0.267442 0.951456 +vt 0.238372 0.980583 +vt 0.238372 0.941748 +vt 0.267442 0.485437 +vt 0.238372 0.514563 +vt 0.238372 0.475728 +vt 0.180233 0.524272 +vt 0.151163 0.582524 +vt 0.151163 0.524272 +vt 0.005814 0.553398 +vt 0.034884 0.543689 +vt 0.034884 0.563107 +vt 0.122093 0.116505 +vt 0.093023 0.169903 +vt 0.093023 0.121359 +vt 0.122093 0.699029 +vt 0.093023 0.752427 +vt 0.093023 0.703884 +vt 0.267442 0.543689 +vt 0.296512 0.553398 +vt 0.267442 0.563107 +vt 0.063954 0.708738 +vt 0.151163 0.466019 +vt 0.238372 0.417476 +vt 0.267442 0.446602 +vt 0.238372 0.456311 +vt 0.063954 0.165049 +vt 0.034884 0.135922 +vt 0.063954 0.126214 +vt 0.151163 0.932039 +vt 0.122093 0.990291 +vt 0.122093 0.932039 +vt 0.005814 0.611650 +vt 0.034884 0.601942 +vt 0.034884 0.621359 +vt 0.122093 0.640777 +vt 0.093023 0.694175 +vt 0.093023 0.645631 +vt 0.209302 0.228155 +vt 0.180233 0.174757 +vt 0.209302 0.179612 +vt 0.267442 0.601942 +vt 0.296512 0.611651 +vt 0.267442 0.621359 +vt 0.238372 0.592233 +vt 0.209302 0.635922 +vt 0.209302 0.587379 +vt 0.122093 0.582524 +vt 0.180233 0.407767 +vt 0.151163 0.349515 +vt 0.180233 0.349515 +vt 0.267442 0.213592 +vt 0.238372 0.184466 +vt 0.267442 0.194175 +vt 0.267442 0.155340 +vt 0.238372 0.126214 +vt 0.267442 0.135922 +vt 0.151163 0.640777 +vt 0.180233 0.699029 +vt 0.151163 0.699029 +vt 0.238372 0.223301 +vt 0.005814 0.669903 +vt 0.034884 0.660194 +vt 0.034884 0.679612 +vt 0.093023 0.228155 +vt 0.093023 0.179612 +vt 0.180233 0.640777 +vt 0.180233 0.582524 +vt 0.267442 0.660194 +vt 0.296512 0.669903 +vt 0.267442 0.679612 +vt 0.063954 0.223301 +vt 0.063954 0.184466 +vt 0.267442 0.718447 +vt 0.296512 0.728155 +vt 0.267442 0.737864 +vt 0.093023 0.762136 +vt 0.063954 0.805825 +vt 0.063954 0.766990 +vt 0.151163 0.116505 +vt 0.267442 0.252427 +vt 0.238372 0.281553 +vt 0.238372 0.242718 +vt 0.034884 0.796116 +vt 0.034884 0.776699 +vt 0.180233 0.233010 +vt 0.151163 0.291262 +vt 0.151163 0.233010 +vt 0.093023 0.529126 +vt 0.063954 0.572816 +vt 0.063954 0.533981 +vt 0.005814 0.728155 +vt 0.034884 0.718447 +vt 0.034884 0.737864 +vt 0.093023 0.286408 +vt 0.093023 0.237864 +vt 0.209302 0.286408 +vt 0.209302 0.237864 +vt 0.122093 0.058252 +vt 0.093023 0.111651 +vt 0.093023 0.063107 +vt 0.093023 0.878641 +vt 0.093023 0.927184 +vt 0.267442 0.776699 +vt 0.296512 0.786408 +vt 0.267442 0.796117 +vt 0.122093 0.291262 +vt 0.238372 0.747573 +vt 0.238372 0.708738 +vt 0.063954 0.980583 +vt 0.034884 0.951456 +vt 0.063954 0.941748 +vt 0.180233 0.757282 +vt 0.151163 0.815534 +vt 0.151163 0.757282 +vt 0.209302 0.752427 +vt 0.209302 0.703884 +vt 0.005814 0.786408 +vt 0.063954 0.883495 +vt 0.005814 0.844660 +vt 0.034884 0.834951 +vt 0.034884 0.854369 +vt 0.122093 0.407767 +vt 0.093023 0.461165 +vt 0.093023 0.412621 +vt 0.209302 0.461165 +vt 0.209302 0.412621 +vt 0.267442 0.834952 +vt 0.296512 0.844660 +vt 0.267442 0.854369 +vt 0.238372 0.864078 +vt 0.209302 0.820388 +vt 0.238372 0.825243 +vt 0.122093 0.466019 +vt 0.180233 0.873786 +vt 0.151163 0.873786 +vt 0.180233 0.932039 +vt 0.093023 0.470874 +vt 0.063954 0.514563 +vt 0.063954 0.475728 +vt 0.005814 0.902913 +vt 0.034884 0.893204 +vt 0.034884 0.912621 +vt 0.122093 0.524272 +vt 0.093023 0.519417 +vt 0.093023 0.820388 +vt 0.063954 0.864078 +vt 0.063954 0.825243 +vt 0.267442 0.893204 +vt 0.296512 0.902913 +vt 0.267442 0.912621 +vt 0.063954 0.689320 +vt 0.063954 0.650485 +vt 0.063954 0.631068 +vt 0.063954 0.592233 +vt 0.238372 0.883495 +vt 0.238372 0.922330 +vt 0.238372 0.067961 +vt 0.267442 0.097087 +vt 0.238372 0.106796 +vt 0.063954 0.067961 +vt 0.034884 0.097087 +vt 0.034884 0.077670 +vt 0.180233 0.990291 +vt 0.209302 0.063107 +vt 0.209302 0.111651 +vt 0.005814 0.961165 +vt 0.034884 0.970874 +vt 0.180233 0.116505 +vt 0.180233 0.058252 +vt 0.209302 0.121359 +vt 0.296512 0.961165 +vt 0.267442 0.970874 +vt 0.063953 0.106796 +vt 0.151163 0.058252 +vt 0.180233 0.815534 +vt 0.238372 0.766990 +vt 0.034884 0.485437 +vt 0.005814 0.087379 +vt 0.209302 0.694175 +vt 0.209302 0.645631 +vt 0.209302 0.985437 +vt 0.209302 0.936893 +vt 0.267442 0.077670 +vt 0.296512 0.087379 +vt 0.122093 0.349515 +vt 0.093023 0.402913 +vt 0.093023 0.354369 +vt 0.296512 0.145631 +vt 0.238372 0.300971 +vt 0.209302 0.344660 +vt 0.209302 0.296116 +vt 0.122093 0.757282 +vt 0.122093 0.815534 +vt 0.063954 0.417476 +vt 0.034884 0.446602 +vt 0.034884 0.427184 +vt 0.238372 0.359223 +vt 0.267442 0.388349 +vt 0.238372 0.398058 +vt 0.063954 0.359223 +vt 0.063954 0.398058 +vt 0.005814 0.145631 +vt 0.034884 0.155340 +vt 0.093023 0.985437 +vt 0.093023 0.936893 +vt 0.209302 0.927184 +vt 0.093023 0.587379 +vt 0.093023 0.635922 +vt 0.296512 0.203884 +vt 0.238372 0.689320 +vt 0.122093 0.873786 +vt 0.005814 0.203883 +vt 0.034884 0.194175 +vt 0.034884 0.213592 +vt 0.209302 0.762136 +vt 0.238372 0.805825 +vt 0.209302 0.810680 +vt 0.005814 0.262136 +vt 0.034884 0.271845 +vt 0.093023 0.577670 +vt 0.209302 0.529126 +vt 0.296512 0.262136 +vt 0.267442 0.271845 +vt 0.238372 0.572816 +vt 0.238372 0.533981 +vt 0.063954 0.747573 +vt 0.267442 0.330097 +vt 0.267442 0.310680 +vt 0.063954 0.300971 +vt 0.093023 0.344660 +vt 0.063954 0.339806 +vt 0.005814 0.320388 +vt 0.034884 0.310680 +vt 0.034884 0.330097 +vt 0.093023 0.810680 +vt 0.296512 0.320388 +vt 0.209302 0.878641 +vt 0.238372 0.631068 +vt 0.034884 0.368932 +vt 0.063954 0.456311 +vt 0.005814 0.378641 +vt 0.034884 0.388349 +vt 0.209302 0.354369 +vt 0.209302 0.470874 +vt 0.180233 0.466019 +vt 0.267442 0.368932 +vt 0.296512 0.378641 +vt 0.209302 0.402913 +vt 0.267442 0.427184 +vt 0.296512 0.436893 +vt 0.151163 0.407767 +vt 0.238372 0.650485 +vt 0.005814 0.436893 +vt 0.180233 0.291262 +vt 0.296512 0.495146 +vt 0.267442 0.504854 +vt 0.209302 0.169903 +vt 0.005814 0.495146 +vt 0.034884 0.504854 +vt 0.093023 0.296116 +vt 0.691860 0.708738 +vt 0.691860 0.446602 +vt 0.691860 0.359223 +vt 0.691860 0.184466 +vt 0.691860 0.970874 +vt 0.779070 0.747573 +vt 0.779070 0.572816 +vt 0.779070 0.446602 +vt 0.459302 0.524272 +vt 0.151163 0.990291 +vt 0.238372 0.165049 +vt 0.063954 0.922330 +vt 0.209302 0.868932 +vt 0.093023 0.868932 +vt 0.238372 0.339806 +vt 0.209302 0.577670 +vt 0.209302 0.519417 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9848 -0.1736 -0.0000 +vn -0.9848 0.1736 0.0000 +vn 0.1736 -0.9848 -0.0000 +vn 0.9848 -0.1736 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.1736 -0.9848 0.0000 +vn 0.9848 0.1736 0.0000 +vn 0.1736 0.9848 0.0000 +vn -0.1736 0.9848 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.2575 -0.1067 -0.9604 +vn 0.9239 -0.3827 0.0000 +vn -0.1066 -0.2575 0.9604 +vn 0.6725 0.2185 -0.7071 +vn 0.3675 0.8873 -0.2787 +vn -0.3827 0.9239 0.0000 +vn 0.1067 -0.2575 0.9604 +vn 0.1066 -0.2575 0.9604 +vn -0.9239 0.3827 0.0000 +vn -0.1067 -0.2575 0.9604 +vn 0.2575 -0.1066 -0.9604 +vn -0.9239 -0.3827 -0.0000 +vn -0.3675 0.8873 -0.2787 +vn 0.6725 0.2185 0.7071 +vn -0.1067 0.2575 -0.9604 +vn -0.1066 0.2575 0.9604 +vn 0.3675 0.8873 0.2787 +vn -0.1067 0.2575 0.9604 +vn -0.8090 0.5878 -0.0000 +vn -0.2575 -0.1067 -0.9604 +vn -0.1067 -0.2575 -0.9604 +vn 0.1066 0.2575 0.9604 +vn -0.3675 0.8873 0.2787 +vn 0.1067 0.2575 0.9604 +vn 0.1066 -0.2575 -0.9604 +vn -0.1066 -0.2575 -0.9604 +vn 0.3675 -0.8873 -0.2787 +vn 0.2575 0.1066 -0.9604 +vn -0.3675 -0.8873 -0.2787 +vn -0.4156 -0.5721 0.7071 +vn 0.1067 -0.2575 -0.9604 +vn 0.3827 -0.9239 -0.0000 +vn 0.3675 -0.8873 0.2787 +vn 0.1067 0.2575 -0.9604 +vn -0.8090 -0.5878 0.0000 +vn 0.1066 0.2575 -0.9604 +vn -0.3675 -0.8873 0.2787 +vn -0.1066 0.2575 -0.9604 +vn -0.4156 -0.5721 -0.7071 +vn 0.4156 0.5721 0.7071 +vn -0.3090 -0.9511 -0.0000 +vn 0.8090 -0.5878 0.0000 +vn 0.3090 0.9511 -0.0000 +vn 0.6725 -0.2185 0.7071 +vn -0.3090 0.9511 -0.0000 +vn -0.6725 0.2185 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.3090 -0.9511 0.0000 +vn -0.2575 -0.1066 -0.9604 +vn -0.6725 0.2185 0.7071 +vn -0.6725 -0.2185 0.7071 +vn 0.4156 -0.5721 -0.7071 +vn -0.4156 0.5721 0.7071 +vn 0.8090 0.5878 0.0000 +vn 0.4156 0.5721 -0.7071 +vn 0.6725 -0.2185 -0.7071 +vn -0.3827 -0.9239 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.6725 -0.2185 -0.7071 +vn -0.4156 0.5721 -0.7071 +vn 0.4156 -0.5721 0.7071 +vn -0.4156 0.5720 -0.7071 +vn 0.3827 0.9239 0.0000 +vn 0.8873 -0.3675 -0.2787 +vn -0.2575 0.1067 0.9604 +vn 0.2575 0.1067 -0.9604 +vn -0.2575 -0.1067 0.9604 +vn 0.8873 0.3675 -0.2787 +vn -0.2575 -0.1066 0.9604 +vn 0.2575 0.1067 0.9604 +vn 0.2575 -0.1067 0.9604 +vn -0.2575 0.1066 -0.9604 +vn 0.8873 -0.3675 0.2787 +vn -0.2575 0.1067 -0.9604 +vn 0.2575 -0.1066 0.9604 +vn 0.8873 0.3675 0.2787 +vn 0.2575 0.1066 0.9604 +vn -0.8873 -0.3675 -0.2787 +vn -0.8873 0.3675 -0.2787 +vn -0.8873 -0.3675 0.2787 +vn -0.2575 0.1066 0.9604 +vn -0.8873 0.3675 0.2787 +vn -0.4156 0.5720 0.7071 +vn -0.9848 0.1737 0.0000 +vn -0.6688 -0.6688 0.3245 +vn -0.6325 -0.6325 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.6688 -0.6688 0.3245 +vn -0.6688 -0.6688 -0.3245 +vn 0.6325 -0.6325 -0.4472 +vn 0.6688 -0.6688 -0.3245 +vn -0.8803 -0.3646 -0.3034 +vn -0.6738 -0.6738 -0.3034 +vn -0.6325 -0.6325 -0.4472 +vn 0.0000 -0.8348 0.5506 +vn -0.2539 -0.7815 0.5698 +vn 0.2539 0.7815 -0.5698 +vn 0.4907 0.6754 -0.5506 +vn 0.6648 0.4830 -0.5698 +vn 0.7939 -0.2580 -0.5506 +vn 0.6648 -0.4830 -0.5698 +vn 0.8218 -0.0000 -0.5698 +vn 0.7939 0.2580 -0.5506 +vn 0.7939 -0.2580 0.5506 +vn 0.6648 -0.4830 0.5698 +vn 0.7939 0.2580 0.5506 +vn 0.6648 0.4830 0.5698 +vn 0.8218 0.0000 0.5698 +vn 0.4907 -0.6754 -0.5506 +vn 0.2539 -0.7815 -0.5698 +vn -0.6648 -0.4830 0.5698 +vn -0.4907 -0.6754 0.5506 +vn -0.0000 -0.8348 -0.5506 +vn -0.2539 -0.7815 -0.5698 +vn -0.4907 0.6754 0.5506 +vn -0.2539 0.7815 0.5698 +vn -0.4907 -0.6754 -0.5506 +vn -0.6648 -0.4830 -0.5698 +vn 0.4907 -0.6754 0.5506 +vn 0.2539 -0.7815 0.5698 +vn -0.7939 -0.2580 -0.5506 +vn -0.8218 -0.0000 -0.5698 +vn -0.7939 -0.2580 0.5506 +vn -0.8218 0.0000 0.5698 +vn -0.7939 0.2580 -0.5506 +vn -0.6648 0.4830 -0.5698 +vn -0.4907 0.6754 -0.5506 +vn -0.2539 0.7815 -0.5698 +vn 0.0000 0.8348 0.5506 +vn 0.2539 0.7815 0.5698 +vn 0.0000 0.8348 -0.5506 +vn -0.6003 0.0000 -0.7998 +vn -0.3016 -0.1249 -0.9452 +vn -0.5546 -0.2297 -0.7998 +vn 0.4907 0.6754 0.5506 +vn -0.7939 0.2580 0.5506 +vn -0.6648 0.4830 0.5698 +vn 0.6325 0.6325 0.4472 +vn 0.6688 0.6688 0.3245 +vn -0.6325 0.6325 -0.4472 +vn -0.6688 0.6688 -0.3245 +vn -0.6325 0.6325 0.4472 +vn -0.6688 0.6688 0.3245 +vn 0.6688 0.6688 -0.3245 +vn 0.6325 0.6325 -0.4472 +vn 0.1249 -0.3016 0.9452 +vn -0.0000 -0.6003 0.7998 +vn 0.2297 -0.5546 0.7998 +vn -0.1249 0.3016 0.9452 +vn -0.0000 0.6003 0.7998 +vn -0.2297 0.5546 0.7998 +vn -0.0000 0.9528 0.3034 +vn 0.0000 0.3265 -0.9452 +vn 0.1249 0.3016 -0.9452 +vn -0.3646 -0.8803 -0.3034 +vn -0.5767 -0.5767 -0.5787 +vn -0.3121 -0.7535 -0.5787 +vn 0.8803 0.3646 -0.3034 +vn 0.8155 -0.0000 -0.5787 +vn 0.7535 0.3121 -0.5787 +vn -0.0000 0.3265 0.9452 +vn 0.1249 0.3016 0.9452 +vn 0.5546 0.2297 -0.7998 +vn -0.4245 0.4245 0.7998 +vn -0.4245 -0.4245 -0.7998 +vn -0.1249 -0.3016 -0.9452 +vn -0.2297 -0.5546 -0.7998 +vn 0.0000 -0.9528 -0.3034 +vn 0.3646 -0.8803 -0.3034 +vn 0.2309 0.2309 -0.9452 +vn 0.6738 0.6738 -0.3034 +vn 0.5767 0.5767 -0.5787 +vn -0.7535 -0.3121 0.5787 +vn -0.6738 -0.6738 0.3034 +vn -0.5767 -0.5767 0.5787 +vn 0.2309 0.2309 0.9452 +vn 0.2297 0.5546 0.7998 +vn 0.5767 0.5767 0.5787 +vn 0.3121 0.7535 0.5787 +vn 0.3646 0.8803 -0.3034 +vn -0.6738 0.6738 0.3034 +vn -0.8803 0.3646 0.3034 +vn -0.3016 -0.1249 0.9452 +vn -0.4245 -0.4245 0.7998 +vn -0.2309 -0.2309 0.9452 +vn -0.2297 -0.5546 0.7998 +vn -0.1249 -0.3016 0.9452 +vn 0.8803 0.3646 0.3034 +vn -0.5546 -0.2297 0.7998 +vn 0.3016 0.1249 -0.9452 +vn -0.7535 -0.3121 -0.5787 +vn 0.6738 0.6738 0.3034 +vn 0.3646 0.8803 0.3034 +vn 0.3016 0.1249 0.9452 +vn 0.3265 -0.0000 0.9452 +vn 0.5546 -0.2297 -0.7998 +vn 0.6003 -0.0000 -0.7998 +vn -0.6003 0.0000 0.7998 +vn 0.3016 -0.1249 -0.9452 +vn 0.3265 -0.0000 -0.9452 +vn -0.8803 -0.3646 0.3034 +vn -0.0000 0.8155 -0.5787 +vn 0.2297 0.5546 -0.7998 +vn -0.0000 0.6003 -0.7998 +vn -0.8155 0.0000 -0.5787 +vn -0.8155 0.0000 0.5787 +vn -0.0000 -0.8155 -0.5787 +vn 0.5767 -0.5767 -0.5787 +vn 0.3121 -0.7535 -0.5787 +vn 0.3016 -0.1249 0.9452 +vn -0.9528 -0.0000 -0.3034 +vn 0.6003 -0.0000 0.7998 +vn 0.5546 0.2297 0.7998 +vn -0.0000 -0.6003 -0.7998 +vn 0.1249 -0.3016 -0.9452 +vn 0.2297 -0.5546 -0.7998 +vn 0.9528 -0.0000 0.3034 +vn 0.8155 -0.0000 0.5787 +vn 0.7535 0.3121 0.5787 +vn 0.4245 -0.4245 -0.7998 +vn 0.2309 -0.2309 -0.9452 +vn -0.6738 0.6738 -0.3034 +vn -0.3121 0.7535 -0.5787 +vn -0.5767 0.5767 -0.5787 +vn -0.3121 0.7535 0.5787 +vn -0.5767 0.5767 0.5787 +vn 0.2309 -0.2309 0.9452 +vn 0.4245 -0.4245 0.7998 +vn 0.7535 -0.3121 0.5787 +vn 0.5546 -0.2297 0.7998 +vn -0.3646 0.8803 -0.3034 +vn 0.6738 -0.6738 0.3034 +vn 0.3646 -0.8803 0.3034 +vn -0.2297 0.5546 -0.7998 +vn -0.0000 0.9528 -0.3034 +vn 0.7535 -0.3121 -0.5787 +vn 0.4245 0.4245 -0.7998 +vn 0.0000 -0.3265 -0.9452 +vn 0.0000 -0.9528 0.3034 +vn -0.0000 -0.8155 0.5787 +vn -0.3121 -0.7535 0.5787 +vn -0.3646 -0.8803 0.3034 +vn 0.0000 -0.3265 0.9452 +vn 0.8803 -0.3646 0.3034 +vn -0.1249 0.3016 -0.9452 +vn 0.3121 -0.7535 0.5787 +vn -0.8803 0.3646 -0.3034 +vn -0.7535 0.3121 -0.5787 +vn -0.7535 0.3121 0.5787 +vn 0.9528 0.0000 -0.3034 +vn 0.8803 -0.3646 -0.3034 +vn -0.4245 0.4245 -0.7998 +vn -0.2309 0.2309 -0.9452 +vn -0.5546 0.2297 0.7998 +vn -0.2309 0.2309 0.9452 +vn -0.5546 0.2297 -0.7998 +vn -0.2309 -0.2309 -0.9452 +vn 0.3121 0.7535 -0.5787 +vn 0.6738 -0.6738 -0.3034 +vn -0.3265 -0.0000 -0.9452 +vn -0.0000 0.8155 0.5787 +vn -0.3265 -0.0000 0.9452 +vn -0.3016 0.1249 0.9452 +vn -0.3016 0.1249 -0.9452 +vn 0.5767 -0.5767 0.5787 +vn 0.4245 0.4245 0.7998 +vn -0.3646 0.8803 0.3034 +vn -0.9528 0.0000 0.3034 +s off +f 949/1141/825 946/1142/825 947/1143/825 +f 967/1144/826 962/1145/826 960/1146/826 +f 1030/1147/827 1025/1148/827 1028/1149/827 +f 961/1150/828 964/1151/828 966/1152/828 +f 1031/1153/829 1028/1149/829 1029/1154/829 +f 920/1155/830 925/1156/830 923/1157/830 +f 1516/1158/831 944/1159/831 941/1160/831 +f 1027/1161/832 1026/1162/832 1024/1163/832 +f 1331/1164/825 1332/1165/825 1329/1166/825 +f 1012/1167/827 1010/1168/827 1008/1169/827 +f 923/1170/826 919/1171/826 922/1172/826 +f 929/1173/825 926/1174/825 932/1175/825 +f 1013/1176/832 1008/1169/832 1010/1177/832 +f 924/1178/833 913/1179/833 915/1180/833 +f 918/1181/831 914/1182/831 916/1183/831 +f 999/1184/829 995/1185/829 997/1186/829 +f 991/1187/834 987/1188/834 989/1189/834 +f 1004/1190/835 1002/1191/835 1000/1192/835 +f 947/1143/831 946/1193/831 944/1159/831 +f 1516/1158/828 949/1141/828 947/1143/828 +f 948/1194/830 940/1195/830 934/1196/830 +f 971/1197/835 970/1198/835 968/1199/835 +f 943/1200/833 934/1201/833 941/1202/833 +f 1022/1203/836 1017/1204/836 1020/1205/836 +f 1007/1206/837 1003/1207/837 1005/1208/837 +f 1003/1207/830 1004/1190/830 1000/1192/830 +f 941/1209/831 945/1210/831 943/1200/831 +f 985/1211/830 989/1212/830 986/1213/830 +f 958/1214/833 954/1215/833 952/1216/833 +f 983/1217/830 978/1218/830 982/1219/830 +f 919/1171/838 914/1182/838 917/1220/838 +f 1029/1154/830 1025/1148/830 1027/1161/830 +f 951/1221/826 944/1222/826 946/1142/826 +f 1024/1223/825 1029/1154/825 1027/1161/825 +f 922/1172/826 917/1220/826 918/1224/826 +f 1016/1225/831 1022/1226/831 1023/1227/831 +f 989/1228/836 984/1229/836 986/1230/836 +f 934/1231/828 939/1232/828 942/1233/828 +f 994/1234/830 999/1184/830 997/1186/830 +f 1014/1235/830 1008/1169/830 1011/1236/830 +f 974/1237/839 969/1238/839 972/1239/839 +f 976/1240/829 981/1241/829 979/1242/829 +f 1019/1243/830 1020/1205/830 1017/1204/830 +f 968/1199/830 974/1244/830 975/1245/830 +f 1005/1246/839 1000/1192/839 1002/1247/839 +f 981/1241/831 977/1248/831 979/1242/831 +f 931/1249/833 913/1250/833 920/1251/833 +f 998/1252/831 992/1253/831 995/1185/831 +f 987/1188/831 988/1254/831 984/1229/831 +f 971/1197/831 972/1239/831 969/1238/831 +f 1023/1255/834 1020/1205/834 1021/1256/834 +f 937/1257/833 935/1258/833 933/1259/833 +f 950/1260/833 934/1261/833 940/1262/833 +f 1031/1153/831 1026/1263/831 1030/1264/831 +f 997/1265/827 992/1253/827 994/1266/827 +f 1019/1243/840 1018/1267/840 1016/1225/840 +f 944/1268/826 938/1269/826 945/1210/826 +f 1001/1270/841 1006/1271/841 1007/1272/841 +f 988/1254/840 986/1213/840 984/1229/840 +f 942/1273/826 936/1274/826 938/1269/826 +f 945/1210/838 935/1258/838 943/1200/838 +f 963/1275/838 960/1146/838 962/1145/838 +f 952/1216/828 955/1276/828 958/1214/828 +f 1016/1277/842 1021/1256/842 1019/1243/842 +f 993/1278/825 998/1252/825 999/1279/825 +f 1516/1158/829 940/1262/829 948/1194/829 +f 939/1232/830 933/1259/830 936/1274/830 +f 959/1280/826 957/1281/826 955/1276/826 +f 932/1175/826 923/1282/826 922/1283/826 +f 975/1284/837 972/1239/837 973/1285/837 +f 938/1269/838 933/1259/838 935/1258/838 +f 966/1152/833 965/1286/833 963/1287/833 +f 925/1156/838 915/1180/838 919/1171/838 +f 985/1288/842 990/1289/842 991/1290/842 +f 996/1291/832 994/1292/832 992/1253/832 +f 913/1293/828 918/1181/828 916/1183/828 +f 1009/1294/829 1014/1235/829 1015/1295/829 +f 1241/1296/831 1277/1297/831 1275/1298/831 +f 1238/1299/830 1270/1300/830 1271/1301/830 +f 1267/1302/830 1270/1303/830 1240/1304/830 +f 1244/1305/830 1271/1306/830 1274/1307/830 +f 1320/1308/825 1329/1166/825 1332/1165/825 +f 1209/1309/831 1178/1310/831 1180/1311/831 +f 1215/1312/830 1181/1313/830 1210/1314/830 +f 1284/1315/830 1249/1316/830 1282/1317/830 +f 1251/1318/831 1287/1319/831 1285/1320/831 +f 1250/1321/831 1279/1322/831 1248/1323/831 +f 1230/1324/830 1194/1325/830 1225/1326/830 +f 1249/1316/830 1280/1327/830 1282/1328/830 +f 1252/1329/831 1285/1330/831 1283/1331/831 +f 1206/1332/830 1179/1333/830 1177/1334/830 +f 1223/1335/830 1187/1336/830 1219/1337/830 +f 1223/1338/830 1192/1339/830 1190/1340/830 +f 1269/1341/831 1299/1342/831 1268/1343/831 +f 1255/1344/830 1286/1345/830 1288/1346/830 +f 1290/1347/830 1255/1344/830 1288/1348/830 +f 1224/1349/831 1191/1350/831 1193/1351/831 +f 1265/1352/830 1296/1353/830 1298/1354/830 +f 1257/1355/830 1292/1356/830 1259/1357/830 +f 1233/1358/830 1198/1359/830 1229/1360/830 +f 1195/1361/831 1228/1362/831 1227/1363/831 +f 1264/1364/831 1293/1365/831 1262/1366/831 +f 1197/1367/831 1231/1368/831 1228/1369/831 +f 1297/1370/831 1268/1343/831 1299/1371/831 +f 1218/1372/831 1186/1373/831 1188/1374/831 +f 1177/1334/830 1207/1375/830 1206/1376/830 +f 1267/1302/830 1298/1377/830 1300/1378/830 +f 1214/1379/830 1217/1380/830 1185/1381/830 +f 1203/1382/831 1237/1383/831 1234/1384/831 +f 1015/1385/825 1011/1236/825 1013/1386/825 +f 982/1387/832 977/1248/832 980/1388/832 +f 983/1217/825 980/1388/825 981/1241/825 +f 979/1242/827 978/1389/827 976/1390/827 +f 930/1391/829 921/1392/829 931/1249/829 +f 956/1393/838 953/1394/838 957/1395/838 +f 930/1391/828 929/1173/828 927/1396/828 +f 1242/1397/831 1273/1398/831 1239/1399/831 +f 1237/1400/831 1175/1401/831 1205/1402/831 +f 1272/1403/831 1241/1296/831 1275/1404/831 +f 1205/1405/831 1178/1310/831 1208/1406/831 +f 1210/1407/830 1179/1333/830 1211/1408/830 +f 1276/1409/830 1244/1305/830 1274/1410/830 +f 1212/1411/831 1180/1311/831 1182/1412/831 +f 1243/1413/830 1278/1414/830 1245/1415/830 +f 1185/1381/830 1215/1416/830 1214/1417/830 +f 1259/1357/830 1294/1418/830 1261/1419/830 +f 1213/1420/831 1186/1373/831 1216/1421/831 +f 1233/1422/830 1202/1423/830 1200/1424/830 +f 1258/1425/831 1291/1426/831 1289/1427/831 +f 1260/1428/831 1293/1429/831 1291/1430/831 +f 1287/1431/831 1258/1425/831 1289/1432/831 +f 1254/1433/830 1286/1434/830 1253/1435/830 +f 1221/1436/831 1191/1350/831 1222/1437/831 +f 1188/1374/831 1221/1438/831 1218/1439/831 +f 1219/1440/830 1217/1380/830 1220/1441/830 +f 1225/1442/830 1192/1339/830 1226/1443/830 +f 1281/1444/831 1252/1329/831 1283/1445/831 +f 1193/1351/831 1227/1446/831 1224/1447/831 +f 1198/1359/830 1230/1448/830 1229/1449/830 +f 1261/1419/830 1296/1450/830 1263/1451/830 +f 1264/1364/831 1297/1452/831 1295/1453/831 +f 1212/1454/831 1184/1455/831 1213/1456/831 +f 1231/1457/831 1201/1458/831 1232/1459/831 +f 1245/1415/830 1280/1460/830 1247/1461/830 +f 1232/1462/831 1203/1382/831 1234/1463/831 +f 1204/1464/830 1236/1465/830 1235/1466/830 +f 1269/1341/831 1273/1467/831 1301/1468/831 +f 1207/1469/830 1204/1464/830 1235/1470/830 +f 1320/1308/825 1321/1471/825 1322/1472/825 +f 1001/1473/831 1005/1474/831 1002/1191/831 +f 1367/1475/829 1369/1476/829 1355/1477/829 +f 1346/1478/825 1347/1479/825 1342/1480/825 +f 1010/1481/831 1015/1385/831 1013/1386/831 +f 1325/1482/827 1324/1483/827 1333/1484/827 +f 1357/1485/829 1358/1486/829 1359/1487/829 +f 1334/1488/825 1335/1489/825 1321/1471/825 +f 1323/1490/827 1333/1484/827 1324/1483/827 +f 1310/1491/829 1302/1492/829 1315/1493/829 +f 1307/1494/832 1308/1495/832 1309/1496/832 +f 1359/1487/829 1361/1497/829 1364/1498/829 +f 1304/1499/829 1306/1500/829 1319/1501/829 +f 1325/1482/827 1326/1502/827 1327/1503/827 +f 1302/1492/829 1303/1504/829 1304/1499/829 +f 1315/1493/829 1316/1505/829 1310/1491/829 +f 1330/1506/827 1328/1507/827 1326/1502/827 +f 1317/1508/832 1307/1494/832 1318/1509/832 +f 1341/1510/825 1340/1511/825 1349/1512/825 +f 1344/1513/827 1348/1514/827 1345/1515/827 +f 1354/1516/832 1356/1517/832 1368/1518/832 +f 1336/1519/827 1337/1520/827 1338/1521/827 +f 1341/1510/825 1342/1480/825 1343/1522/825 +f 1309/1496/832 1311/1523/832 1314/1524/832 +f 1365/1525/832 1360/1526/832 1366/1527/832 +f 1336/1519/827 1345/1515/827 1348/1514/827 +f 968/1528/841 973/1285/841 971/1197/841 +f 1366/1527/832 1352/1529/832 1365/1525/832 +f 1351/1530/825 1349/1512/825 1340/1511/825 +f 923/1531/830 930/1391/830 920/1532/830 +f 1352/1529/832 1353/1533/832 1354/1516/832 +f 1355/1477/829 1357/1485/829 1367/1475/829 +f 1318/1509/832 1305/1534/832 1317/1508/832 +f 1350/1535/827 1339/1536/827 1337/1520/827 +f 1164/1537/830 1125/1538/830 1126/1539/830 +f 1246/1540/831 1279/1541/831 1277/1542/831 +f 931/1543/830 920/1532/830 930/1391/830 +f 923/1531/830 926/1544/830 928/1545/830 +f 932/1546/831 922/1547/831 929/1173/831 +f 913/1548/831 921/1549/831 927/1396/831 +f 949/1141/830 934/1196/830 942/1550/830 +f 941/1160/831 950/1551/831 1516/1158/831 +f 913/1548/831 929/1173/831 922/1547/831 +f 942/1550/830 951/1552/830 949/1141/830 +f 1045/1553/830 1039/1554/830 1063/1555/830 +f 1072/1556/831 1064/1557/831 1065/1558/831 +f 1126/1539/830 1127/1559/830 1169/1560/830 +f 1169/1560/830 1164/1537/830 1126/1539/830 +f 1124/1561/830 1155/1562/830 1150/1563/830 +f 1150/1563/830 1145/1564/830 1125/1538/830 +f 1125/1538/830 1136/1565/830 1126/1539/830 +f 1124/1561/830 1150/1563/830 1125/1538/830 +f 916/1566/833 915/1180/833 913/1179/833 +f 1587/1567/843 1588/1568/843 1589/1569/843 +f 1872/1570/844 1867/1571/844 1870/1572/844 +f 1578/1573/845 1574/1574/845 1576/1575/845 +f 1631/1576/846 1621/1577/846 1625/1578/846 +f 1802/1579/847 1796/1580/847 1801/1581/847 +f 1549/1582/848 1542/1583/848 1539/1584/848 +f 1550/1585/848 1544/1586/848 1542/1583/848 +f 1546/1587/848 1551/1588/848 1544/1586/848 +f 1548/1589/848 1539/1584/848 1551/1588/848 +f 1888/1590/849 1884/1591/849 1882/1592/849 +f 1617/1593/850 1613/1594/850 1615/1595/850 +f 1598/1596/851 1600/1597/851 1594/1598/851 +f 1575/1599/852 1573/1600/852 1571/1601/852 +f 1574/1602/853 1572/1603/853 1575/1604/853 +f 1850/1605/849 1846/1606/849 1848/1607/849 +f 1861/1608/854 1864/1609/854 1866/1610/854 +f 1594/1611/855 1595/1612/855 1596/1613/855 +f 1557/1614/856 1566/1615/856 1567/1616/856 +f 1556/1617/856 1564/1618/856 1566/1615/856 +f 1564/1618/856 1562/1619/856 1565/1620/856 +f 1565/1620/856 1557/1614/856 1567/1616/856 +f 1729/1621/857 1724/1622/857 1722/1623/857 +f 1549/1624/852 1554/1625/852 1550/1626/852 +f 1596/1627/858 1601/1628/858 1597/1629/858 +f 1584/1630/846 1582/1631/846 1580/1632/846 +f 1539/1584/852 1540/1633/852 1541/1634/852 +f 1590/1635/850 1591/1636/850 1588/1637/850 +f 1562/1619/855 1558/1638/855 1560/1639/855 +f 1555/1640/859 1562/1619/859 1560/1641/859 +f 1563/1642/855 1564/1643/855 1565/1644/855 +f 1573/1600/860 1582/1645/860 1583/1646/860 +f 1572/1603/860 1580/1647/860 1582/1645/860 +f 1580/1647/860 1578/1573/860 1581/1648/860 +f 1581/1648/860 1573/1600/860 1583/1646/860 +f 1597/1649/843 1602/1650/843 1598/1651/843 +f 1569/1652/861 1565/1653/861 1567/1654/861 +f 1670/1655/862 1669/1656/862 1667/1657/862 +f 1846/1658/863 1847/1659/863 1843/1660/863 +f 1542/1583/864 1543/1661/864 1540/1662/864 +f 1551/1588/845 1543/1663/845 1544/1586/845 +f 1551/1588/865 1541/1664/865 1545/1665/865 +f 1546/1666/845 1547/1667/845 1548/1668/845 +f 1597/1669/866 1590/1635/866 1587/1567/866 +f 1598/1670/866 1592/1671/866 1590/1635/866 +f 1594/1672/866 1599/1673/866 1592/1671/866 +f 1596/1674/866 1587/1567/866 1599/1673/866 +f 1570/1675/843 1567/1676/843 1566/1677/843 +f 1548/1678/867 1553/1679/867 1549/1680/867 +f 1568/1681/868 1566/1682/868 1564/1683/868 +f 1655/1684/845 1653/1685/845 1651/1686/845 +f 1654/1687/867 1652/1688/867 1655/1689/867 +f 1658/1690/852 1654/1691/852 1656/1692/852 +f 1651/1693/869 1658/1690/869 1656/1694/869 +f 1659/1695/852 1660/1696/852 1661/1697/852 +f 1605/1698/870 1614/1699/870 1615/1700/870 +f 1604/1701/870 1612/1702/870 1614/1699/870 +f 1612/1702/870 1610/1703/870 1613/1704/870 +f 1613/1704/870 1605/1698/870 1615/1700/870 +f 1666/1705/845 1663/1706/845 1662/1707/845 +f 1665/1708/864 1661/1709/864 1663/1710/864 +f 1903/1711/871 1899/1712/871 1904/1713/871 +f 1635/1714/855 1636/1715/855 1637/1716/855 +f 1638/1717/861 1639/1718/861 1636/1719/861 +f 1647/1720/843 1639/1721/843 1640/1722/843 +f 1647/1720/868 1637/1723/868 1641/1724/868 +f 1642/1725/843 1643/1726/843 1644/1727/843 +f 1629/1728/872 1622/1729/872 1619/1730/872 +f 1630/1731/872 1624/1732/872 1622/1729/872 +f 1626/1733/872 1631/1576/872 1624/1732/872 +f 1628/1734/872 1619/1730/872 1631/1576/872 +f 1667/1657/873 1673/1735/873 1674/1736/873 +f 1644/1737/874 1649/1738/874 1645/1739/874 +f 1666/1705/865 1660/1740/865 1664/1741/865 +f 1843/1742/875 1844/1743/875 1845/1744/875 +f 1558/1745/874 1556/1617/874 1559/1746/874 +f 1610/1703/843 1606/1747/843 1608/1748/843 +f 1603/1749/851 1610/1703/851 1608/1750/851 +f 1579/1751/845 1580/1752/845 1581/1753/845 +f 1645/1754/876 1638/1717/876 1635/1714/876 +f 1646/1755/876 1640/1722/876 1638/1717/876 +f 1642/1756/876 1647/1720/876 1640/1722/876 +f 1644/1757/876 1635/1714/876 1647/1720/876 +f 1629/1758/845 1634/1759/845 1630/1760/845 +f 1559/1761/843 1557/1614/843 1555/1762/843 +f 1634/1759/877 1626/1763/877 1630/1764/877 +f 1619/1730/845 1620/1765/845 1621/1766/845 +f 1622/1729/877 1623/1767/877 1620/1768/877 +f 1741/1769/878 1739/1770/878 1744/1771/878 +f 1571/1772/879 1578/1573/879 1576/1773/879 +f 1626/1774/852 1627/1775/852 1628/1776/852 +f 1653/1685/880 1662/1777/880 1663/1778/880 +f 1652/1688/880 1660/1779/880 1662/1777/880 +f 1660/1779/880 1658/1690/880 1661/1780/880 +f 1661/1780/880 1653/1685/880 1663/1778/880 +f 1815/1781/878 1813/1782/878 1811/1783/878 +f 1645/1784/855 1650/1785/855 1646/1786/855 +f 1628/1787/853 1633/1788/853 1629/1789/853 +f 1618/1790/881 1612/1791/881 1616/1792/881 +f 1751/1793/862 1749/1794/862 1747/1795/862 +f 1748/1796/882 1752/1797/882 1749/1798/882 +f 1755/1799/882 1756/1800/882 1757/1801/882 +f 1678/1802/883 1667/1657/883 1677/1803/883 +f 1679/1804/883 1670/1655/883 1678/1802/883 +f 1675/1805/883 1672/1806/883 1679/1804/883 +f 1677/1803/883 1674/1736/883 1675/1805/883 +f 1770/1807/884 1769/1808/884 1768/1809/884 +f 1760/1810/885 1759/1811/885 1756/1812/885 +f 1822/1813/878 1819/1814/878 1821/1815/878 +f 1767/1816/886 1765/1817/886 1763/1818/886 +f 1763/1819/887 1766/1820/887 1767/1816/887 +f 1802/1821/888 1798/1822/888 1800/1823/888 +f 1753/1824/883 1747/1825/883 1750/1826/883 +f 1776/1827/889 1773/1828/889 1771/1829/889 +f 1693/1830/887 1683/1831/887 1692/1832/887 +f 1694/1833/887 1686/1834/887 1693/1830/887 +f 1690/1835/887 1695/1836/887 1694/1833/887 +f 1692/1832/887 1688/1837/887 1690/1835/887 +f 1650/1785/861 1642/1838/861 1646/1839/861 +f 1777/1840/886 1773/1841/886 1774/1842/886 +f 1783/1843/826 1781/1844/826 1779/1845/826 +f 1793/1846/890 1791/1847/890 1794/1848/890 +f 1786/1849/833 1782/1850/833 1784/1851/833 +f 1709/1852/890 1699/1853/890 1708/1854/890 +f 1710/1855/890 1711/1856/890 1709/1852/890 +f 1706/1857/890 1702/1858/890 1710/1855/890 +f 1708/1854/890 1704/1859/890 1706/1857/890 +f 1586/1860/852 1583/1861/852 1582/1862/852 +f 1708/1863/826 1712/1864/826 1709/1865/826 +f 1699/1853/891 1705/1866/891 1704/1859/891 +f 1713/1867/891 1708/1868/891 1706/1869/891 +f 1799/1870/892 1797/1871/892 1795/1872/892 +f 1931/1873/893 1934/1874/893 1932/1875/893 +f 1697/1876/894 1692/1877/894 1690/1878/894 +f 1631/1576/852 1623/1879/852 1624/1732/852 +f 1808/1880/847 1805/1881/847 1803/1882/847 +f 1725/1883/895 1715/1884/895 1724/1885/895 +f 1726/1886/895 1727/1887/895 1725/1883/895 +f 1726/1886/895 1720/1888/895 1718/1889/895 +f 1724/1885/895 1720/1888/895 1722/1890/895 +f 1692/1891/886 1696/1892/886 1693/1893/886 +f 1761/1894/883 1759/1895/883 1762/1896/883 +f 1806/1897/892 1803/1882/892 1805/1898/892 +f 1611/1899/843 1612/1900/843 1613/1901/843 +f 1550/1902/869 1552/1903/869 1546/1904/869 +f 1725/1905/892 1723/1906/892 1728/1907/892 +f 1813/1908/896 1818/1909/896 1816/1910/896 +f 1741/1911/897 1731/1912/897 1740/1913/897 +f 1742/1914/897 1743/1915/897 1741/1911/897 +f 1742/1914/897 1737/1916/897 1734/1917/897 +f 1740/1913/897 1737/1916/897 1738/1918/897 +f 1825/1919/897 1823/1920/897 1826/1921/897 +f 1817/1922/897 1811/1923/897 1814/1924/897 +f 1824/1925/898 1823/1926/898 1820/1927/898 +f 1755/1799/862 1758/1928/862 1761/1894/862 +f 1686/1834/886 1685/1929/886 1683/1831/886 +f 1672/1806/899 1668/1930/899 1670/1655/899 +f 1672/1806/885 1673/1931/885 1671/1932/885 +f 1810/1933/895 1806/1934/895 1807/1935/895 +f 1742/1936/898 1745/1937/898 1738/1938/898 +f 1748/1796/899 1758/1939/899 1757/1940/899 +f 1758/1939/899 1753/1824/899 1759/1941/899 +f 1759/1941/899 1754/1942/899 1756/1943/899 +f 1754/1942/899 1757/1940/899 1756/1943/899 +f 1680/1944/899 1679/1945/899 1678/1946/899 +f 1618/1790/855 1615/1947/855 1614/1948/855 +f 1676/1949/862 1678/1950/862 1677/1951/862 +f 1727/1887/892 1717/1952/892 1715/1884/892 +f 1607/1953/855 1605/1698/855 1603/1954/855 +f 1695/1836/884 1689/1955/884 1687/1956/884 +f 1683/1831/894 1689/1957/894 1688/1837/894 +f 1776/1827/884 1775/1958/884 1772/1959/884 +f 1764/1960/900 1774/1961/900 1773/1962/900 +f 1767/1816/900 1775/1963/900 1774/1961/900 +f 1766/1820/900 1772/1964/900 1775/1963/900 +f 1770/1807/900 1773/1962/900 1772/1964/900 +f 1775/1965/887 1777/1840/887 1774/1966/887 +f 1694/1967/900 1696/1892/900 1698/1968/900 +f 1694/1969/884 1697/1876/884 1690/1970/884 +f 1953/1971/901 1869/1972/901 1867/1973/901 +f 1702/1858/833 1705/1974/833 1703/1975/833 +f 1712/1864/902 1710/1976/902 1709/1977/902 +f 1734/1917/898 1736/1978/898 1735/1979/898 +f 1792/1980/903 1789/1981/903 1787/1982/903 +f 1711/1856/902 1703/1983/902 1700/1984/902 +f 1780/1985/902 1790/1986/902 1789/1987/902 +f 1783/1843/902 1791/1988/902 1790/1986/902 +f 1782/1850/902 1788/1989/902 1791/1988/902 +f 1785/1990/902 1789/1987/902 1788/1989/902 +f 1714/1991/833 1706/1992/833 1710/1993/833 +f 1794/1848/833 1788/1994/833 1792/1980/833 +f 1784/1995/890 1783/1843/890 1779/1996/890 +f 1780/1985/903 1786/1997/903 1781/1998/903 +f 1606/1999/858 1604/1701/858 1607/2000/858 +f 1716/2001/904 1718/1889/904 1719/2002/904 +f 1718/1889/888 1721/2003/888 1719/2004/888 +f 1715/1884/857 1721/2005/857 1720/1888/857 +f 1764/1960/889 1768/2006/889 1765/2007/889 +f 1796/1580/904 1806/2008/904 1805/2009/904 +f 1799/1870/904 1807/2010/904 1806/2008/904 +f 1807/2010/904 1801/1581/904 1804/2011/904 +f 1801/1581/904 1805/2009/904 1804/2011/904 +f 1725/2012/904 1730/2013/904 1726/2014/904 +f 1726/2015/888 1729/1621/888 1722/2016/888 +f 1795/2017/895 1798/1822/895 1799/1870/895 +f 1743/1915/878 1733/2018/878 1731/1912/878 +f 1732/2019/905 1734/1917/905 1735/2020/905 +f 1711/1856/826 1701/2021/826 1699/1853/826 +f 1737/1916/906 1733/2022/906 1736/2023/906 +f 1745/1937/906 1740/2024/906 1738/2025/906 +f 1812/2026/905 1822/2027/905 1821/2028/905 +f 1815/1781/905 1823/2029/905 1822/2027/905 +f 1823/2029/907 1818/1909/907 1820/2030/907 +f 1818/1909/905 1821/2028/905 1820/2030/905 +f 1744/1771/905 1742/2031/905 1741/2032/905 +f 1679/2033/885 1681/2034/885 1675/2035/885 +f 1599/1673/855 1591/2036/855 1592/1671/855 +f 1922/2037/849 1923/2038/849 1924/2039/849 +f 1909/2040/844 1910/2041/844 1907/2042/844 +f 1929/2043/893 1924/2044/893 1928/2045/893 +f 1913/2046/908 1914/2047/908 1915/2048/908 +f 1837/2049/909 1827/2050/909 1838/2051/909 +f 1837/2049/909 1839/2052/909 1830/2053/909 +f 1836/2054/909 1839/2052/909 1834/2055/909 +f 1836/2054/909 1827/2050/909 1832/2056/909 +f 1917/2057/901 1921/2058/901 1916/2059/901 +f 1915/2060/910 1920/2061/910 1917/2062/910 +f 1913/2063/854 1921/2058/854 1919/2064/854 +f 1859/2065/908 1860/2066/908 1861/2067/908 +f 1893/2068/911 1894/2069/911 1890/2070/911 +f 1929/2043/875 1926/2071/875 1927/2072/875 +f 1891/2073/912 1895/2074/912 1892/2075/912 +f 1824/1925/896 1821/2076/896 1819/1814/896 +f 1854/2077/913 1847/1659/913 1855/2078/913 +f 1847/1659/913 1852/2079/913 1855/2078/913 +f 1849/2080/913 1853/2081/913 1852/2079/913 +f 1850/1605/913 1854/2077/913 1853/2081/913 +f 1903/1711/849 1901/2082/849 1902/2083/849 +f 1898/2084/914 1901/2085/914 1905/2086/914 +f 1935/2087/915 1930/2088/915 1933/2089/915 +f 1890/2090/849 1891/2073/849 1892/2091/849 +f 1941/2092/916 1942/2093/916 1938/2094/916 +f 1941/2095/908 1943/2096/908 1944/2097/908 +f 1945/2098/917 1939/2099/917 1943/2096/917 +f 1954/2100/908 1948/2101/908 1946/2102/908 +f 1870/2103/918 1863/2104/918 1871/2105/918 +f 1871/2105/918 1865/2106/918 1869/2107/918 +f 1869/2107/918 1864/1609/918 1867/2108/918 +f 1867/2108/918 1860/2066/918 1870/2103/918 +f 1856/2109/875 1854/2110/875 1855/2111/875 +f 1951/2112/919 1946/2113/919 1949/2114/919 +f 1952/2115/901 1949/2116/901 1950/2117/901 +f 1906/2118/901 1907/2119/901 1908/2120/901 +f 1830/2053/919 1831/2121/919 1828/2122/919 +f 1897/2123/875 1893/2124/875 1895/2125/875 +f 1832/2056/920 1829/2126/920 1833/2127/920 +f 1936/2128/875 1932/2129/875 1930/2130/875 +f 1885/2131/921 1874/2132/921 1886/2133/921 +f 1885/2131/921 1879/2134/921 1877/2135/921 +f 1884/2136/921 1879/2134/921 1882/2137/921 +f 1884/2136/921 1874/2132/921 1881/2138/921 +f 1808/1880/888 1807/2139/888 1804/2140/888 +f 1934/2141/849 1935/2087/849 1933/2142/849 +f 1851/2143/922 1854/2144/922 1858/2145/922 +f 1948/2146/916 1952/2115/916 1950/2147/916 +f 1938/2148/901 1939/2099/901 1940/2149/901 +f 1862/2150/910 1863/2104/910 1859/2151/910 +f 1862/2152/901 1864/1609/901 1865/2106/901 +f 1816/2153/898 1817/1922/898 1814/2154/898 +f 1857/2155/849 1853/2156/849 1851/2143/849 +f 1901/2157/923 1894/2069/923 1902/2158/923 +f 1894/2069/923 1899/2159/923 1902/2158/923 +f 1896/2160/923 1900/2161/923 1899/2159/923 +f 1897/2123/923 1901/2157/923 1900/2161/923 +f 1886/2162/875 1887/2163/875 1885/2164/875 +f 1599/1673/881 1589/2165/881 1593/2166/881 +f 1856/2109/893 1852/2167/893 1857/2155/893 +f 1752/2168/885 1753/1824/885 1750/2169/885 +f 1925/2170/915 1926/2171/915 1923/2172/915 +f 1831/2173/901 1832/2056/901 1833/2174/901 +f 1874/2132/871 1880/2175/871 1881/2138/871 +f 1916/2176/924 1906/2118/924 1917/2177/924 +f 1916/2176/924 1918/2178/924 1909/2040/924 +f 1915/2179/924 1918/2178/924 1913/2180/924 +f 1915/2179/924 1906/2118/924 1911/2181/924 +f 1675/2182/873 1676/1949/873 1677/2183/873 +f 1585/2184/877 1581/2185/877 1583/2186/877 +f 1869/2187/910 1873/2188/910 1871/2189/910 +f 1874/2132/875 1875/2190/875 1876/2191/875 +f 1695/1836/900 1684/2192/900 1686/1834/900 +f 1881/2138/849 1878/2193/849 1879/2134/849 +f 1845/2194/922 1850/1605/922 1848/2195/922 +f 1904/1713/875 1900/2196/875 1898/2084/875 +f 1933/2197/925 1922/2037/925 1934/2198/925 +f 1933/2197/925 1927/2072/925 1925/2170/925 +f 1932/2199/925 1927/2072/925 1930/2200/925 +f 1932/2199/925 1922/2037/925 1929/2043/925 +f 1838/2201/908 1842/2202/908 1837/2203/908 +f 1883/2204/871 1886/2205/871 1884/2206/871 +f 1887/2163/912 1882/2207/912 1885/2208/912 +f 1827/2050/908 1828/2209/908 1829/2210/908 +f 1877/2135/912 1878/2211/912 1875/2212/912 +f 1910/2213/908 1911/2181/908 1912/2214/908 +f 1911/2181/926 1908/2215/926 1912/2216/926 +f 1834/2217/901 1835/2218/901 1836/2219/901 +f 1949/2220/927 1942/2093/927 1950/2221/927 +f 1950/2221/927 1944/2097/927 1948/2222/927 +f 1948/2222/927 1943/2096/927 1946/2223/927 +f 1946/2223/927 1939/2099/927 1949/2220/927 +f 1873/2188/908 1870/2224/908 1871/2225/908 +f 1836/2226/916 1841/2227/916 1838/2228/916 +f 1834/2229/917 1842/2202/917 1840/2230/917 +f 1549/1582/848 1550/1585/848 1542/1583/848 +f 1550/1585/848 1546/1587/848 1544/1586/848 +f 1546/1587/848 1548/1589/848 1551/1588/848 +f 1548/1589/848 1549/1582/848 1539/1584/848 +f 1557/1614/856 1556/1617/856 1566/1615/856 +f 1556/1617/856 1561/2231/856 1564/1618/856 +f 1564/1618/856 1561/2231/856 1562/1619/856 +f 1565/1620/856 1562/1619/856 1557/1614/856 +f 1573/1600/860 1572/1603/860 1582/1645/860 +f 1572/1603/860 1577/2232/860 1580/1647/860 +f 1580/1647/860 1577/2232/860 1578/1573/860 +f 1581/1648/860 1578/1573/860 1573/1600/860 +f 1597/1669/866 1598/1670/866 1590/1635/866 +f 1598/1670/866 1594/1672/866 1592/1671/866 +f 1594/1672/866 1596/1674/866 1599/1673/866 +f 1596/1674/866 1597/1669/866 1587/1567/866 +f 1605/1698/870 1604/1701/870 1614/1699/870 +f 1604/1701/870 1609/2233/870 1612/1702/870 +f 1612/1702/870 1609/2233/870 1610/1703/870 +f 1613/1704/870 1610/1703/870 1605/1698/870 +f 1629/1728/872 1630/1731/872 1622/1729/872 +f 1630/1731/872 1626/1733/872 1624/1732/872 +f 1626/1733/872 1628/1734/872 1631/1576/872 +f 1628/1734/872 1629/1728/872 1619/1730/872 +f 1645/1754/876 1646/1755/876 1638/1717/876 +f 1646/1755/876 1642/1756/876 1640/1722/876 +f 1642/1756/876 1644/1757/876 1647/1720/876 +f 1644/1757/876 1645/1754/876 1635/1714/876 +f 1653/1685/880 1652/1688/880 1662/1777/880 +f 1652/1688/880 1657/2234/880 1660/1779/880 +f 1660/1779/880 1657/2234/880 1658/1690/880 +f 1661/1780/880 1658/1690/880 1653/1685/880 +f 1678/1802/883 1670/1655/883 1667/1657/883 +f 1679/1804/883 1672/1806/883 1670/1655/883 +f 1675/1805/883 1674/1736/883 1672/1806/883 +f 1677/1803/883 1667/1657/883 1674/1736/883 +f 1693/1830/887 1686/1834/887 1683/1831/887 +f 1694/1833/887 1695/1836/887 1686/1834/887 +f 1690/1835/887 1688/1837/887 1695/1836/887 +f 1692/1832/887 1683/1831/887 1688/1837/887 +f 1709/1852/890 1711/1856/890 1699/1853/890 +f 1710/1855/890 1702/1858/890 1711/1856/890 +f 1706/1857/890 1704/1859/890 1702/1858/890 +f 1708/1854/890 1699/1853/890 1704/1859/890 +f 1725/1883/895 1727/1887/895 1715/1884/895 +f 1726/1886/895 1718/1889/895 1727/1887/895 +f 1726/1886/895 1722/1890/895 1720/1888/895 +f 1724/1885/895 1715/1884/895 1720/1888/895 +f 1741/1911/897 1743/1915/897 1731/1912/897 +f 1742/1914/897 1734/1917/897 1743/1915/897 +f 1742/1914/928 1738/1918/928 1737/1916/928 +f 1740/1913/897 1731/1912/897 1737/1916/897 +f 1748/1796/899 1751/1793/899 1758/1939/899 +f 1758/1939/899 1751/1793/899 1753/1824/899 +f 1759/1941/899 1753/1824/899 1754/1942/899 +f 1754/1942/899 1748/1796/899 1757/1940/899 +f 1764/1960/900 1767/1816/900 1774/1961/900 +f 1767/1816/900 1766/1820/900 1775/1963/900 +f 1766/1820/900 1770/1807/900 1772/1964/900 +f 1770/1807/900 1764/1960/900 1773/1962/900 +f 1780/1985/902 1783/1843/902 1790/1986/902 +f 1783/1843/902 1782/1850/902 1791/1988/902 +f 1782/1850/902 1785/1990/902 1788/1989/902 +f 1785/1990/902 1780/1985/902 1789/1987/902 +f 1796/1580/904 1799/1870/904 1806/2008/904 +f 1799/1870/904 1798/1822/904 1807/2010/904 +f 1807/2010/904 1798/1822/904 1801/1581/904 +f 1801/1581/904 1796/1580/904 1805/2009/904 +f 1812/2026/905 1815/1781/905 1822/2027/905 +f 1815/1781/905 1817/1922/905 1823/2029/905 +f 1823/2029/905 1817/1922/905 1818/1909/905 +f 1818/1909/905 1812/2026/905 1821/2028/905 +f 1837/2049/909 1830/2053/909 1827/2050/909 +f 1837/2049/909 1834/2055/909 1839/2052/909 +f 1836/2054/909 1832/2056/909 1839/2052/909 +f 1836/2054/909 1838/2051/909 1827/2050/909 +f 1854/2077/913 1844/1743/913 1847/1659/913 +f 1847/1659/913 1849/2080/913 1852/2079/913 +f 1849/2080/913 1850/1605/913 1853/2081/913 +f 1850/1605/913 1844/1743/913 1854/2077/913 +f 1870/2103/918 1860/2066/918 1863/2104/918 +f 1871/2105/918 1863/2104/918 1865/2106/918 +f 1869/2107/918 1865/2106/918 1864/1609/918 +f 1867/2108/918 1864/1609/918 1860/2066/918 +f 1885/2131/921 1877/2135/921 1874/2132/921 +f 1885/2131/921 1882/2137/921 1879/2134/921 +f 1884/2136/921 1881/2138/921 1879/2134/921 +f 1884/2136/921 1886/2133/921 1874/2132/921 +f 1901/2157/923 1891/2073/923 1894/2069/923 +f 1894/2069/923 1896/2160/923 1899/2159/923 +f 1896/2160/923 1897/2123/923 1900/2161/923 +f 1897/2123/923 1891/2073/923 1901/2157/923 +f 1916/2176/924 1909/2040/924 1906/2118/924 +f 1916/2176/924 1913/2180/924 1918/2178/924 +f 1915/2179/924 1911/2181/924 1918/2178/924 +f 1915/2179/924 1917/2177/924 1906/2118/924 +f 1933/2197/925 1925/2170/925 1922/2037/925 +f 1933/2197/925 1930/2200/925 1927/2072/925 +f 1932/2199/925 1929/2043/925 1927/2072/925 +f 1932/2199/925 1934/2198/925 1922/2037/925 +f 1949/2220/927 1939/2099/927 1942/2093/927 +f 1950/2221/927 1942/2093/927 1944/2097/927 +f 1948/2222/927 1944/2097/927 1943/2096/927 +f 1946/2223/927 1943/2096/927 1939/2099/927 +f 1793/1846/826 1789/2235/826 1790/2236/826 +f 1957/2237/830 1956/2238/830 1962/2239/830 +f 1956/2240/837 1959/2241/837 1955/2242/837 +f 1957/2237/839 1959/2243/839 1958/2244/839 +f 1956/2240/841 1961/2245/841 1962/2239/841 +f 1962/2239/835 1960/2246/835 1957/2237/835 +f 2062/2247/831 2146/2248/831 2015/2249/831 +f 1966/2250/831 2127/2251/831 1967/2252/831 +f 2047/2253/929 2071/2254/929 1996/2255/929 +f 2147/2256/929 2111/2257/929 2109/2258/929 +f 1978/2259/831 1979/2260/831 1980/2261/831 +f 2024/2262/835 2115/2263/835 2025/2264/835 +f 1988/2265/831 2148/2266/831 1986/2267/831 +f 2142/2268/929 1990/2269/929 2107/2270/929 +f 2045/2271/830 2116/2272/830 2118/2273/830 +f 1977/2274/831 2028/2275/831 1975/2276/831 +f 2022/2277/839 1978/2278/839 2020/2279/839 +f 2154/2280/841 2038/2281/841 2039/2282/841 +f 1971/2283/830 2050/2284/830 2051/2285/830 +f 2033/2286/831 2149/2287/831 2012/2288/831 +f 2036/2289/841 2042/2290/841 2037/2291/841 +f 2121/2292/839 2053/2293/839 2048/2294/839 +f 2052/2295/830 2059/2296/830 2060/2297/830 +f 2053/2298/831 2082/2299/831 2041/2300/831 +f 2152/2301/929 2131/2302/929 2129/2303/929 +f 2150/2304/929 2097/2305/929 2095/2306/929 +f 2048/2307/830 2119/2308/830 2121/2292/830 +f 2153/2309/841 2065/2310/841 2066/2311/841 +f 2025/2264/830 2034/2312/830 2013/2313/830 +f 2109/2258/830 2026/2314/830 2009/2315/830 +f 1968/2316/831 2024/2262/831 1970/2317/831 +f 2054/2318/839 2023/2319/839 2018/2320/839 +f 2097/2305/839 1994/2321/839 1987/2322/839 +f 2148/2266/929 2094/2323/929 2092/2324/929 +f 1982/2325/830 2092/2324/830 2094/2323/830 +f 2150/2304/841 2088/2326/841 1992/2327/841 +f 2134/2328/839 2076/2329/839 2072/2330/839 +f 2058/2331/830 2016/2332/830 2125/2333/830 +f 2028/2275/841 2085/2334/841 1975/2335/841 +f 2149/2287/835 2113/2336/835 2074/2337/835 +f 2035/2338/831 2036/2289/831 2037/2339/831 +f 1993/2340/830 2098/2341/830 2100/2342/830 +f 2111/2257/839 2030/2343/839 2026/2344/839 +f 2142/2268/841 1989/2345/841 2008/2346/841 +f 2127/2251/841 2044/2347/841 1967/2348/841 +f 2027/2349/831 2142/2268/831 2008/2350/831 +f 2079/2351/831 2084/2352/831 2055/2353/831 +f 1979/2260/841 2067/2354/841 1980/2355/841 +f 2023/2356/831 2032/2357/831 2007/2358/831 +f 2125/2333/839 2062/2359/839 2058/2360/839 +f 2069/2361/830 2129/2303/830 2131/2302/830 +f 1987/2362/830 2095/2306/830 2097/2305/830 +f 2061/2363/839 2128/2364/839 1966/2365/839 +f 2151/2366/841 2089/2367/841 1998/2368/841 +f 1969/2369/831 2102/2370/831 1963/2371/831 +f 2143/2372/929 1985/2373/929 1984/2374/929 +f 2061/2375/830 2145/2376/830 2126/2377/830 +f 1976/2378/830 1984/2374/830 1985/2373/830 +f 2113/2336/839 2033/2379/839 2029/2380/839 +f 2075/2381/830 2056/2382/830 2136/2383/830 +f 2083/2384/830 2144/2385/830 2139/2386/830 +f 2070/2387/830 1996/2255/830 2071/2254/830 +f 2144/2385/835 2141/2388/835 2139/2386/835 +f 2100/2342/839 2000/2389/839 1993/2390/839 +f 2046/2391/831 2047/2253/831 1995/2392/831 +f 1983/2393/831 2143/2372/831 1981/2394/831 +f 2074/2337/830 2029/2395/830 2011/2396/830 +f 2034/2397/839 2114/2398/839 1968/2399/839 +f 1973/2400/841 2043/2401/841 1974/2402/841 +f 2152/2301/841 2063/2403/841 2064/2404/841 +f 1965/2405/841 2144/2385/841 2068/2406/841 +f 2028/2275/929 2051/2285/929 2050/2284/929 +f 2146/2248/841 2017/2407/841 2015/2408/841 +f 2082/2299/929 2121/2292/929 2119/2308/929 +f 1964/2409/831 2140/2410/831 1965/2411/831 +f 2001/2412/830 2002/2413/830 2003/2414/830 +f 2032/2357/929 2054/2318/929 2106/2415/929 +f 2151/2366/835 2100/2342/835 2098/2341/835 +f 2049/2416/831 2154/2280/831 2039/2417/831 +f 1970/2418/841 2025/2264/841 2013/2419/841 +f 1999/2420/830 2077/2421/830 2101/2422/830 +f 2000/2423/831 2151/2366/831 1998/2424/831 +f 2072/2425/830 2132/2426/830 2134/2328/830 +f 2077/2421/835 2103/2427/835 2101/2422/835 +f 2104/2428/830 2014/2429/830 2004/2430/830 +f 1979/2260/835 2022/2277/835 2021/2431/835 +f 2105/2432/839 2019/2433/839 2014/2434/839 +f 2084/2352/841 2057/2435/841 2055/2436/841 +f 2081/2437/841 2004/2438/841 2005/2439/841 +f 2060/2297/839 2035/2440/839 2052/2441/839 +f 2143/2372/841 2086/2442/841 1981/2443/841 +f 2148/2266/841 2087/2444/841 1986/2445/841 +f 1994/2446/831 2150/2304/831 1992/2447/831 +f 2118/2273/839 2049/2448/839 2045/2449/839 +f 2071/2254/839 2046/2450/839 2070/2451/839 +f 2107/2270/830 1991/2452/830 1989/2453/830 +f 2136/2383/839 2079/2454/839 2075/2455/839 +f 2084/2352/929 2136/2383/929 2056/2382/929 +f 2003/2414/839 1972/2456/839 2001/2457/839 +f 2094/2323/839 1988/2458/839 1982/2459/839 +f 2154/2280/929 2118/2273/929 2116/2272/929 +f 2020/2460/830 2021/2431/830 2022/2277/830 +f 2102/2370/841 2078/2461/841 1963/2462/841 +f 1973/2400/929 2003/2414/929 2002/2413/929 +f 2082/2299/841 2040/2463/841 2041/2464/841 +f 2146/2248/835 2125/2333/835 2016/2332/835 +f 2032/2357/841 2006/2465/841 2007/2466/841 +f 1985/2373/839 1983/2467/839 1976/2468/839 +f 2139/2386/839 1964/2469/839 2083/2470/839 +f 2047/2253/841 1997/2471/841 1995/2472/841 +f 2145/2376/835 2128/2364/835 2126/2377/835 +f 2051/2285/839 1977/2473/839 1971/2474/839 +f 2036/2289/929 2060/2297/929 2059/2296/929 +f 1972/2475/831 1973/2400/831 1974/2476/831 +f 2101/2422/839 1969/2477/839 1999/2478/839 +f 2147/2256/841 2009/2479/841 2010/2480/841 +f 2149/2287/841 2011/2481/841 2012/2482/841 +f 2081/2437/929 2105/2432/929 2104/2428/929 +f 2153/2309/929 2134/2328/929 2132/2426/929 +f 2019/2483/831 2081/2437/831 2005/2484/831 +f 2073/2485/831 2152/2301/831 2064/2486/831 +f 2106/2415/830 2018/2487/830 2006/2488/830 +f 1990/2269/839 2027/2489/839 1991/2490/839 +f 2076/2491/831 2153/2309/831 2066/2492/831 +f 2131/2302/839 2073/2493/839 2069/2494/839 +f 2030/2495/831 2147/2256/831 2010/2496/831 +f 1904/1713/923 1905/2086/923 1903/1711/923 +f 1584/1630/860 1585/2184/860 1586/1860/860 +f 1568/1681/856 1569/1652/856 1570/1675/856 +f 1552/1903/848 1553/1679/848 1547/1667/848 +f 1664/1741/880 1665/1708/880 1666/1705/880 +f 1648/2497/876 1649/1738/876 1643/1726/876 +f 1616/1792/870 1617/1593/870 1618/1790/870 +f 1696/1892/887 1697/1876/887 1698/1968/887 +f 1600/1597/866 1601/1628/866 1595/1612/866 +f 1680/1944/883 1681/2034/883 1682/2498/883 +f 1776/1827/900 1777/1840/900 1778/2499/900 +f 1712/1864/890 1713/1867/890 1714/1991/890 +f 1792/1980/902 1793/1846/902 1794/1848/902 +f 1810/1933/904 1803/1882/904 1809/2500/904 +f 1947/2501/927 1951/2112/927 1952/2115/927 +f 1760/1810/899 1761/1894/899 1762/1896/899 +f 1730/2013/895 1723/1906/895 1729/1621/895 +f 1824/1925/905 1825/1919/905 1826/1921/905 +f 1632/2502/872 1633/1788/872 1627/1775/872 +f 1857/2155/913 1858/2145/913 1856/2109/913 +f 1868/2503/918 1872/1570/918 1873/2188/918 +f 1936/2128/925 1937/2504/925 1931/1873/925 +f 1840/2230/909 1841/2227/909 1835/2218/909 +f 1744/1771/897 1745/1937/897 1746/2505/897 +f 1888/1590/921 1889/2506/921 1883/2204/921 +f 1919/2064/924 1920/2061/924 1914/2047/924 +f 1960/2246/831 1955/2507/831 1959/2508/831 +f 2157/2509/837 2159/2510/837 2155/2511/837 +f 2155/2512/841 2160/2513/841 2156/2514/841 +f 2156/2515/835 2162/2516/835 2158/2517/835 +f 2158/2518/839 2161/2519/839 2157/2520/839 +f 2164/2521/835 2170/2522/835 2166/2523/835 +f 2166/2524/839 2169/2525/839 2165/2526/839 +f 2165/2527/837 2167/2528/837 2163/2529/837 +f 2163/2530/841 2168/2531/841 2164/2532/841 +f 2159/2510/831 2162/2516/831 2160/2513/831 +f 2168/2531/831 2169/2525/831 2170/2522/831 +f 949/1141/825 951/1221/825 946/1142/825 +f 967/1144/826 961/1150/826 962/1145/826 +f 1030/1147/827 1026/2533/827 1025/1148/827 +f 961/1150/828 967/1144/828 964/1151/828 +f 1031/1153/829 1030/1264/829 1028/1149/829 +f 920/1155/830 924/1178/830 925/1156/830 +f 1516/1158/831 947/1143/831 944/1159/831 +f 1027/1161/832 1025/1148/832 1026/1162/832 +f 1331/1164/825 1530/2534/825 1332/1165/825 +f 1012/1167/827 1009/2535/827 1010/1168/827 +f 923/1170/826 925/1156/826 919/1171/826 +f 929/1173/825 928/1545/825 926/1174/825 +f 1013/1176/832 1011/1236/832 1008/1169/832 +f 924/1178/833 920/2536/833 913/1179/833 +f 918/1181/831 917/1220/831 914/1182/831 +f 999/1184/829 998/1252/829 995/1185/829 +f 991/1187/834 990/1289/834 987/1188/834 +f 1004/1190/835 1001/1473/835 1002/1191/835 +f 1516/1158/828 948/1194/828 949/1141/828 +f 971/1197/835 969/1238/835 970/1198/835 +f 943/1200/833 935/1258/833 934/1201/833 +f 1022/1203/836 1018/2537/836 1017/1204/836 +f 1007/1206/837 1006/1271/837 1003/1207/837 +f 1003/1207/830 1006/1271/830 1004/1190/830 +f 941/1209/831 944/2538/831 945/1210/831 +f 985/1211/830 991/2539/830 989/1212/830 +f 958/1214/833 953/1394/833 954/1215/833 +f 983/1217/830 976/2540/830 978/1218/830 +f 919/1171/838 915/1180/838 914/1182/838 +f 1029/1154/830 1028/1149/830 1025/1148/830 +f 951/1221/826 942/2541/826 944/1222/826 +f 1024/1223/825 1031/2542/825 1029/1154/825 +f 922/1172/826 919/1171/826 917/1220/826 +f 1016/1225/831 1018/1267/831 1022/1226/831 +f 989/1228/836 987/1188/836 984/1229/836 +f 934/1231/828 937/2543/828 939/1232/828 +f 994/1234/830 993/2544/830 999/1184/830 +f 1014/1235/830 1012/1167/830 1008/1169/830 +f 974/1237/839 970/2545/839 969/1238/839 +f 976/1240/829 983/2546/829 981/1241/829 +f 1019/1243/830 1021/1256/830 1020/1205/830 +f 968/1199/830 970/1198/830 974/1244/830 +f 1005/1246/839 1003/1207/839 1000/1192/839 +f 981/1241/831 980/1388/831 977/1248/831 +f 931/1249/833 921/1392/833 913/1250/833 +f 998/1252/831 996/1291/831 992/1253/831 +f 987/1188/831 990/1289/831 988/1254/831 +f 971/1197/831 973/1285/831 972/1239/831 +f 1023/1255/834 1022/2547/834 1020/1205/834 +f 937/1257/833 934/1201/833 935/1258/833 +f 950/1260/833 941/2548/833 934/1261/833 +f 1031/1153/831 1024/2549/831 1026/1263/831 +f 997/1265/827 995/1185/827 992/1253/827 +f 1019/1243/840 1017/1204/840 1018/1267/840 +f 944/1268/826 942/1273/826 938/1269/826 +f 1001/1270/841 1004/1190/841 1006/1271/841 +f 988/1254/840 985/1211/840 986/1213/840 +f 942/1273/826 939/2550/826 936/1274/826 +f 945/1210/838 938/1269/838 935/1258/838 +f 963/1275/838 965/2551/838 960/1146/838 +f 952/1216/828 959/1280/828 955/1276/828 +f 1016/1277/842 1023/2552/842 1021/1256/842 +f 993/1278/825 996/1291/825 998/1252/825 +f 1516/1158/829 950/1260/829 940/1262/829 +f 939/1232/830 937/2543/830 933/1259/830 +f 959/1280/826 956/2553/826 957/1281/826 +f 932/1175/826 926/1174/826 923/1282/826 +f 975/1284/837 974/2554/837 972/1239/837 +f 938/1269/838 936/1274/838 933/1259/838 +f 966/1152/833 964/1151/833 965/1286/833 +f 925/1156/838 924/1178/838 915/1180/838 +f 985/1288/842 988/1254/842 990/1289/842 +f 996/1291/832 993/2555/832 994/1292/832 +f 913/1293/828 922/2556/828 918/1181/828 +f 1009/1294/829 1012/1167/829 1014/1235/829 +f 1241/1296/831 1246/1540/831 1277/1297/831 +f 1238/1299/830 1240/1304/830 1270/1300/830 +f 1267/1302/830 1300/2557/830 1270/1303/830 +f 1244/1305/830 1238/1299/830 1271/1306/830 +f 1320/1308/825 1322/1472/825 1329/1166/825 +f 1209/1309/831 1208/2558/831 1178/1310/831 +f 1215/1312/830 1183/2559/830 1181/1313/830 +f 1284/1315/830 1254/1433/830 1249/1316/830 +f 1251/1318/831 1256/2560/831 1287/1319/831 +f 1250/1321/831 1281/2561/831 1279/1322/831 +f 1230/1324/830 1196/2562/830 1194/1325/830 +f 1249/1316/830 1247/1461/830 1280/1327/830 +f 1252/1329/831 1251/1318/831 1285/1330/831 +f 1206/1332/830 1211/2563/830 1179/1333/830 +f 1223/1335/830 1190/2564/830 1187/1336/830 +f 1223/1338/830 1226/2565/830 1192/1339/830 +f 1269/1341/831 1301/2566/831 1299/1342/831 +f 1255/1344/830 1253/2567/830 1286/1345/830 +f 1290/1347/830 1257/1355/830 1255/1344/830 +f 1224/1349/831 1222/2568/831 1191/1350/831 +f 1265/1352/830 1263/1451/830 1296/1353/830 +f 1257/1355/830 1290/2569/830 1292/1356/830 +f 1233/1358/830 1200/1424/830 1198/1359/830 +f 1195/1361/831 1197/1367/831 1228/1362/831 +f 1264/1364/831 1295/2570/831 1293/1365/831 +f 1197/1367/831 1199/2571/831 1231/1368/831 +f 1297/1370/831 1266/2572/831 1268/1343/831 +f 1218/1372/831 1216/2573/831 1186/1373/831 +f 1177/1334/830 1174/2574/830 1207/1375/830 +f 1267/1302/830 1265/1352/830 1298/1377/830 +f 1214/1379/830 1220/2575/830 1217/1380/830 +f 1203/1382/831 1176/2576/831 1237/1383/831 +f 1015/1385/825 1014/1235/825 1011/1236/825 +f 982/1387/832 978/2577/832 977/1248/832 +f 983/1217/825 982/1219/825 980/1388/825 +f 979/1242/827 977/1248/827 978/1389/827 +f 930/1391/829 927/1396/829 921/1392/829 +f 956/1393/838 954/1215/838 953/1394/838 +f 930/1391/828 928/1545/828 929/1173/828 +f 1242/1397/831 1272/2578/831 1273/1398/831 +f 1237/1400/831 1176/2576/831 1175/1401/831 +f 1272/1403/831 1242/1397/831 1241/1296/831 +f 1205/1405/831 1175/1401/831 1178/1310/831 +f 1210/1407/830 1181/1313/830 1179/1333/830 +f 1276/1409/830 1243/1413/830 1244/1305/830 +f 1212/1411/831 1209/2579/831 1180/1311/831 +f 1243/1413/830 1276/2580/830 1278/1414/830 +f 1185/1381/830 1183/2559/830 1215/1416/830 +f 1259/1357/830 1292/2581/830 1294/1418/830 +f 1213/1420/831 1184/1455/831 1186/1373/831 +f 1233/1422/830 1236/2582/830 1202/1423/830 +f 1258/1425/831 1260/1428/831 1291/1426/831 +f 1260/1428/831 1262/1366/831 1293/1429/831 +f 1287/1431/831 1256/2583/831 1258/1425/831 +f 1254/1433/830 1284/2584/830 1286/1434/830 +f 1221/1436/831 1189/2585/831 1191/1350/831 +f 1188/1374/831 1189/2586/831 1221/1438/831 +f 1219/1440/830 1187/1336/830 1217/1380/830 +f 1225/1442/830 1194/1325/830 1192/1339/830 +f 1281/1444/831 1250/1321/831 1252/1329/831 +f 1193/1351/831 1195/1361/831 1227/1446/831 +f 1198/1359/830 1196/2562/830 1230/1448/830 +f 1261/1419/830 1294/2587/830 1296/1450/830 +f 1264/1364/831 1266/2572/831 1297/1452/831 +f 1212/1454/831 1182/1412/831 1184/1455/831 +f 1231/1457/831 1199/2571/831 1201/1458/831 +f 1245/1415/830 1278/2588/830 1280/1460/830 +f 1232/1462/831 1201/1458/831 1203/1382/831 +f 1204/1464/830 1202/1423/830 1236/1465/830 +f 1269/1341/831 1239/1399/831 1273/1467/831 +f 1207/1469/830 1174/2574/830 1204/1464/830 +f 1320/1308/825 1334/1488/825 1321/1471/825 +f 1001/1473/831 1007/2589/831 1005/1474/831 +f 1367/1475/829 1538/2590/829 1369/1476/829 +f 1346/1478/825 1533/2591/825 1347/1479/825 +f 1010/1481/831 1009/2592/831 1015/1385/831 +f 1325/1482/827 1327/1503/827 1324/1483/827 +f 1357/1485/829 1363/2593/829 1358/1486/829 +f 1334/1488/825 1531/2594/825 1335/1489/825 +f 1323/1490/827 1532/2595/827 1333/1484/827 +f 1310/1491/829 1312/2596/829 1302/1492/829 +f 1307/1494/832 1313/2597/832 1308/1495/832 +f 1359/1487/829 1358/1486/829 1361/1497/829 +f 1304/1499/829 1303/1504/829 1306/1500/829 +f 1325/1482/827 1330/1506/827 1326/1502/827 +f 1302/1492/829 1312/2596/829 1303/1504/829 +f 1315/1493/829 1527/2598/829 1316/1505/829 +f 1330/1506/827 1529/2599/827 1328/1507/827 +f 1317/1508/832 1313/2597/832 1307/1494/832 +f 1341/1510/825 1343/1522/825 1340/1511/825 +f 1344/1513/827 1534/2600/827 1348/1514/827 +f 1354/1516/832 1353/1533/832 1356/1517/832 +f 1336/1519/827 1350/1535/827 1337/1520/827 +f 1341/1510/825 1346/1478/825 1342/1480/825 +f 1309/1496/832 1308/1495/832 1311/1523/832 +f 1365/1525/832 1537/2601/832 1360/1526/832 +f 1336/1519/827 1338/1521/827 1345/1515/827 +f 968/1528/841 975/2602/841 973/1285/841 +f 1366/1527/832 1362/2603/832 1352/1529/832 +f 1351/1530/825 1536/2604/825 1349/1512/825 +f 923/1531/830 928/1545/830 930/1391/830 +f 1352/1529/832 1362/2603/832 1353/1533/832 +f 1355/1477/829 1363/2593/829 1357/1485/829 +f 1318/1509/832 1528/2605/832 1305/1534/832 +f 1350/1535/827 1535/2606/827 1339/1536/827 +f 1164/1537/830 1124/1561/830 1125/1538/830 +f 1246/1540/831 1248/1323/831 1279/1541/831 +f 949/1141/830 948/1194/830 934/1196/830 +f 913/1548/831 927/1396/831 929/1173/831 +f 1054/2607/830 1052/2608/830 1050/2609/830 +f 1050/2609/830 1048/2610/830 1045/1553/830 +f 1045/1553/830 1060/2611/830 1043/2612/830 +f 1043/2612/830 1041/2613/830 1045/1553/830 +f 1041/2613/830 1039/1554/830 1045/1553/830 +f 1039/1554/830 1037/2614/830 1063/1555/830 +f 1037/2614/830 1035/2615/830 1063/1555/830 +f 1035/2615/830 1032/2616/830 1063/1555/830 +f 1063/1555/830 1061/2617/830 1054/2607/830 +f 1061/2617/830 1058/2618/830 1054/2607/830 +f 1058/2618/830 1056/2619/830 1054/2607/830 +f 1054/2607/830 1050/2609/830 1045/1553/830 +f 1054/2607/830 1045/1553/830 1063/1555/830 +f 1066/2620/831 1111/2621/831 1072/1556/831 +f 1111/2621/831 1117/2622/831 1072/1556/831 +f 1117/2622/831 1067/2623/831 1072/1556/831 +f 1072/1556/831 1078/2624/831 1064/1557/831 +f 1064/1557/831 1089/2625/831 1065/1558/831 +f 1065/1558/831 1100/2626/831 1072/1556/831 +f 1100/2626/831 1066/2620/831 1072/1556/831 +f 916/1566/833 914/1182/833 915/1180/833 +f 1587/1567/843 1590/1635/843 1588/1568/843 +f 1872/1570/854 1953/1971/854 1867/1571/854 +f 1578/1573/845 1577/2232/845 1574/1574/845 +f 1631/1576/853 1619/1730/853 1621/1577/853 +f 1802/1579/847 1797/2627/847 1796/1580/847 +f 1888/1590/849 1883/2204/849 1884/1591/849 +f 1617/1593/851 1611/1899/851 1613/1594/851 +f 1598/1596/851 1602/1650/851 1600/1597/851 +f 1575/1599/852 1572/1603/852 1573/1600/852 +f 1574/1602/853 1577/2232/853 1572/1603/853 +f 1850/1605/849 1849/2080/849 1846/1606/849 +f 1861/1608/844 1860/2066/844 1864/1609/844 +f 1594/1611/855 1600/1597/855 1595/1612/855 +f 1729/1621/857 1723/1906/857 1724/1622/857 +f 1549/1624/852 1553/1679/852 1554/1625/852 +f 1596/1627/881 1595/1612/881 1601/1628/881 +f 1584/1630/846 1586/1860/846 1582/1631/846 +f 1539/1584/852 1542/1583/852 1540/1633/852 +f 1590/1635/850 1592/1671/850 1591/1636/850 +f 1562/1619/855 1561/2231/855 1558/1638/855 +f 1555/1640/861 1557/1614/861 1562/1619/861 +f 1563/1642/855 1568/1681/855 1564/1643/855 +f 1597/1649/843 1601/1628/843 1602/1650/843 +f 1569/1652/859 1563/1642/859 1565/1653/859 +f 1670/1655/862 1668/2628/862 1669/1656/862 +f 1846/1658/863 1849/2080/863 1847/1659/863 +f 1542/1583/864 1544/1586/864 1543/1661/864 +f 1551/1588/845 1545/2629/845 1543/1663/845 +f 1551/1588/867 1539/1584/867 1541/1664/867 +f 1546/1666/845 1552/1903/845 1547/1667/845 +f 1570/1675/843 1569/1652/843 1567/1676/843 +f 1548/1678/865 1547/1667/865 1553/1679/865 +f 1568/1681/868 1570/1675/868 1566/1682/868 +f 1655/1684/845 1652/1688/845 1653/1685/845 +f 1654/1687/867 1657/2234/867 1652/1688/867 +f 1658/1690/852 1657/2234/852 1654/1691/852 +f 1651/1693/864 1653/1685/864 1658/1690/864 +f 1659/1695/852 1664/1741/852 1660/1696/852 +f 1666/1705/845 1665/1708/845 1663/1706/845 +f 1665/1708/869 1659/1695/869 1661/1709/869 +f 1903/1711/911 1902/2630/911 1899/1712/911 +f 1635/1714/855 1638/1717/855 1636/1715/855 +f 1638/1717/861 1640/1722/861 1639/1718/861 +f 1647/1720/843 1641/2631/843 1639/1721/843 +f 1647/1720/874 1635/1714/874 1637/1723/874 +f 1642/1725/843 1648/2497/843 1643/1726/843 +f 1667/1657/873 1669/2632/873 1673/1735/873 +f 1644/1737/868 1643/1726/868 1649/1738/868 +f 1666/1705/867 1662/2633/867 1660/1740/867 +f 1843/1742/875 1847/1659/875 1844/1743/875 +f 1558/1745/874 1561/2231/874 1556/1617/874 +f 1610/1703/843 1609/2233/843 1606/1747/843 +f 1603/1749/850 1605/1698/850 1610/1703/850 +f 1579/1751/845 1584/1630/845 1580/1752/845 +f 1629/1758/845 1633/1788/845 1634/1759/845 +f 1559/1761/843 1556/1617/843 1557/1614/843 +f 1634/1759/879 1632/2502/879 1626/1763/879 +f 1619/1730/845 1622/1729/845 1620/1765/845 +f 1622/1729/877 1624/1732/877 1623/1767/877 +f 1741/1769/878 1740/2634/878 1739/1770/878 +f 1571/1772/877 1573/1600/877 1578/1573/877 +f 1626/1774/852 1632/2502/852 1627/1775/852 +f 1815/1781/878 1812/2026/878 1813/1782/878 +f 1645/1784/855 1649/1738/855 1650/1785/855 +f 1628/1787/846 1627/1775/846 1633/1788/846 +f 1618/1790/858 1614/2635/858 1612/1791/858 +f 1751/1793/862 1748/1796/862 1749/1794/862 +f 1748/1796/882 1754/1942/882 1752/1797/882 +f 1755/1799/882 1760/1810/882 1756/1800/882 +f 1770/1807/884 1766/1820/884 1769/1808/884 +f 1760/1810/885 1762/1896/885 1759/1811/885 +f 1822/1813/878 1825/1919/878 1819/1814/878 +f 1767/1816/886 1764/1960/886 1765/1817/886 +f 1763/1819/887 1769/2636/887 1766/1820/887 +f 1802/1821/888 1801/1581/888 1798/1822/888 +f 1753/1824/883 1751/1793/883 1747/1825/883 +f 1776/1827/889 1772/2637/889 1773/1828/889 +f 1650/1785/859 1648/2497/859 1642/1838/859 +f 1777/1840/886 1771/1829/886 1773/1841/886 +f 1783/1843/826 1780/1985/826 1781/1844/826 +f 1793/1846/890 1790/2638/890 1791/1847/890 +f 1786/1849/833 1785/1990/833 1782/1850/833 +f 1586/1860/852 1585/2184/852 1583/1861/852 +f 1708/1863/826 1707/2639/826 1712/1864/826 +f 1699/1853/891 1701/2640/891 1705/1866/891 +f 1713/1867/891 1707/2639/891 1708/1868/891 +f 1799/1870/892 1796/1580/892 1797/1871/892 +f 1931/1873/893 1937/2504/893 1934/1874/893 +f 1697/1876/894 1691/2641/894 1692/1877/894 +f 1631/1576/852 1625/2642/852 1623/1879/852 +f 1808/1880/847 1804/2643/847 1805/1881/847 +f 1692/1891/886 1691/2641/886 1696/1892/886 +f 1761/1894/883 1758/2644/883 1759/1895/883 +f 1806/1897/892 1809/2500/892 1803/1882/892 +f 1611/1899/843 1616/1792/843 1612/1900/843 +f 1550/1902/869 1554/1625/869 1552/1903/869 +f 1725/1905/892 1724/2645/892 1723/1906/892 +f 1813/1908/896 1812/2026/896 1818/1909/896 +f 1825/1919/897 1822/2646/897 1823/1920/897 +f 1817/1922/897 1815/1781/897 1811/1923/897 +f 1824/1925/898 1826/1921/898 1823/1926/898 +f 1755/1799/862 1757/2647/862 1758/1928/862 +f 1686/1834/886 1684/2648/886 1685/1929/886 +f 1672/1806/899 1671/2649/899 1668/1930/899 +f 1672/1806/885 1674/1736/885 1673/1931/885 +f 1810/1933/895 1809/2500/895 1806/1934/895 +f 1742/1936/898 1746/2505/898 1745/1937/898 +f 1680/1944/899 1682/2498/899 1679/1945/899 +f 1618/1790/855 1617/1593/855 1615/1947/855 +f 1676/1949/862 1680/1944/862 1678/1950/862 +f 1727/1887/892 1716/2650/892 1717/1952/892 +f 1607/1953/855 1604/1701/855 1605/1698/855 +f 1695/1836/884 1688/1837/884 1689/1955/884 +f 1683/1831/894 1685/2651/894 1689/1957/894 +f 1776/1827/884 1778/2499/884 1775/1958/884 +f 1775/1965/887 1778/2499/887 1777/1840/887 +f 1694/1967/900 1693/2652/900 1696/1892/900 +f 1694/1969/884 1698/1968/884 1697/1876/884 +f 1953/1971/901 1868/2503/901 1869/1972/901 +f 1702/1858/833 1704/1859/833 1705/1974/833 +f 1712/1864/902 1714/1991/902 1710/1976/902 +f 1734/1917/898 1737/1916/898 1736/1978/898 +f 1792/1980/903 1788/2653/903 1789/1981/903 +f 1711/1856/902 1702/1858/902 1703/1983/902 +f 1714/1991/833 1713/1867/833 1706/1992/833 +f 1794/1848/833 1791/2654/833 1788/1994/833 +f 1784/1995/890 1782/1850/890 1783/1843/890 +f 1780/1985/903 1785/1990/903 1786/1997/903 +f 1606/1999/858 1609/2233/858 1604/1701/858 +f 1716/2001/904 1727/1887/904 1718/1889/904 +f 1718/1889/888 1720/1888/888 1721/2003/888 +f 1715/1884/857 1717/2655/857 1721/2005/857 +f 1764/1960/889 1770/1807/889 1768/2006/889 +f 1725/2012/904 1728/1907/904 1730/2013/904 +f 1726/2015/888 1730/2013/888 1729/1621/888 +f 1795/2017/895 1800/2656/895 1798/1822/895 +f 1743/1915/878 1732/2657/878 1733/2018/878 +f 1732/2019/905 1743/1915/905 1734/1917/905 +f 1711/1856/826 1700/2658/826 1701/2021/826 +f 1737/1916/906 1731/1912/906 1733/2022/906 +f 1745/1937/906 1739/1770/906 1740/2024/906 +f 1744/1771/905 1746/2505/905 1742/2031/905 +f 1679/2033/885 1682/2498/885 1681/2034/885 +f 1599/1673/855 1593/2659/855 1591/2036/855 +f 1922/2037/849 1925/2170/849 1923/2038/849 +f 1909/2040/844 1918/2178/844 1910/2041/844 +f 1929/2043/863 1922/2037/863 1924/2044/863 +f 1913/2046/908 1919/2064/908 1914/2047/908 +f 1917/2057/901 1920/2061/901 1921/2058/901 +f 1915/2060/926 1914/2047/926 1920/2061/926 +f 1913/2063/844 1916/2660/844 1921/2058/844 +f 1859/2065/908 1863/2104/908 1860/2066/908 +f 1893/2068/911 1896/2160/911 1894/2069/911 +f 1929/2043/875 1928/2661/875 1926/2071/875 +f 1891/2073/914 1897/2123/914 1895/2074/914 +f 1824/1925/896 1820/2662/896 1821/2076/896 +f 1903/1711/849 1905/2086/849 1901/2082/849 +f 1898/2084/914 1900/2663/914 1901/2085/914 +f 1935/2087/922 1936/2128/922 1930/2088/922 +f 1890/2090/849 1894/2069/849 1891/2073/849 +f 1941/2092/916 1944/2097/916 1942/2093/916 +f 1941/2095/908 1945/2664/908 1943/2096/908 +f 1945/2098/919 1940/2665/919 1939/2099/919 +f 1954/2100/908 1947/2501/908 1948/2101/908 +f 1856/2109/875 1858/2145/875 1854/2110/875 +f 1951/2112/917 1954/2100/917 1946/2113/917 +f 1952/2115/901 1951/2112/901 1949/2116/901 +f 1906/2118/901 1909/2040/901 1907/2119/901 +f 1830/2053/919 1839/2052/919 1831/2121/919 +f 1897/2123/875 1896/2160/875 1893/2124/875 +f 1832/2056/916 1827/2050/916 1829/2126/916 +f 1936/2128/875 1931/1873/875 1932/2129/875 +f 1808/1880/888 1810/1933/888 1807/2139/888 +f 1934/2141/849 1937/2504/849 1935/2087/849 +f 1851/2143/922 1853/2666/922 1854/2144/922 +f 1948/2146/920 1947/2501/920 1952/2115/920 +f 1938/2148/901 1942/2093/901 1939/2099/901 +f 1862/2150/910 1865/2106/910 1863/2104/910 +f 1862/2152/901 1866/2667/901 1864/1609/901 +f 1816/2153/898 1818/1909/898 1817/1922/898 +f 1857/2155/849 1852/2668/849 1853/2156/849 +f 1886/2162/875 1889/2506/875 1887/2163/875 +f 1599/1673/858 1587/1567/858 1589/2165/858 +f 1856/2109/863 1855/2669/863 1852/2167/863 +f 1752/2168/885 1754/1942/885 1753/1824/885 +f 1925/2170/915 1927/2072/915 1926/2171/915 +f 1831/2173/901 1839/2052/901 1832/2056/901 +f 1874/2132/911 1876/2670/911 1880/2175/911 +f 1675/2182/873 1681/2034/873 1676/1949/873 +f 1585/2184/879 1579/1751/879 1581/2185/879 +f 1869/2187/926 1868/2503/926 1873/2188/926 +f 1874/2132/875 1877/2135/875 1875/2190/875 +f 1695/1836/900 1687/2671/900 1684/2192/900 +f 1881/2138/849 1880/2672/849 1878/2193/849 +f 1845/2194/922 1844/1743/922 1850/1605/922 +f 1904/1713/875 1899/2673/875 1900/2196/875 +f 1838/2201/908 1841/2227/908 1842/2202/908 +f 1883/2204/871 1889/2506/871 1886/2205/871 +f 1887/2163/914 1888/1590/914 1882/2207/914 +f 1827/2050/908 1830/2053/908 1828/2209/908 +f 1877/2135/912 1879/2134/912 1878/2211/912 +f 1910/2213/908 1918/2178/908 1911/2181/908 +f 1911/2181/910 1906/2118/910 1908/2215/910 +f 1834/2217/901 1840/2230/901 1835/2218/901 +f 1873/2188/908 1872/1570/908 1870/2224/908 +f 1836/2226/920 1835/2218/920 1841/2227/920 +f 1834/2229/919 1837/2674/919 1842/2202/919 +f 1793/1846/826 1787/1982/826 1789/2235/826 +f 1957/2237/830 1958/2675/830 1956/2238/830 +f 1956/2240/837 1958/2676/837 1959/2241/837 +f 1957/2237/839 1960/2246/839 1959/2243/839 +f 1956/2240/841 1955/2242/841 1961/2245/841 +f 1962/2239/835 1961/2245/835 1960/2246/835 +f 2062/2247/831 2124/2677/831 2146/2248/831 +f 1966/2250/831 2128/2364/831 2127/2251/831 +f 2047/2253/929 2137/2678/929 2071/2254/929 +f 2147/2256/929 2110/2679/929 2111/2257/929 +f 1978/2259/831 2138/2680/831 1979/2260/831 +f 2024/2262/929 2114/2398/929 2115/2263/929 +f 1988/2265/831 2093/2681/831 2148/2266/831 +f 2142/2268/929 2108/2682/929 1990/2269/929 +f 2045/2271/830 2038/2683/830 2116/2272/830 +f 1977/2274/831 2090/2684/831 2028/2275/831 +f 2022/2277/839 2138/2680/839 1978/2278/839 +f 2154/2280/841 2116/2272/841 2038/2281/841 +f 1971/2283/830 2085/2685/830 2050/2284/830 +f 2033/2286/831 2112/2686/831 2149/2287/831 +f 2036/2289/841 2059/2296/841 2042/2290/841 +f 2121/2292/839 2120/2687/839 2053/2293/839 +f 2052/2295/830 2042/2688/830 2059/2296/830 +f 2053/2298/831 2120/2687/831 2082/2299/831 +f 2152/2301/929 2130/2689/929 2131/2302/929 +f 2150/2304/929 2096/2690/929 2097/2305/929 +f 2048/2307/830 2040/2691/830 2119/2308/830 +f 2153/2309/841 2132/2426/841 2065/2310/841 +f 2025/2264/830 2115/2263/830 2034/2312/830 +f 2109/2258/830 2111/2257/830 2026/2314/830 +f 1968/2316/831 2114/2398/831 2024/2262/831 +f 2054/2318/839 2031/2692/839 2023/2319/839 +f 2097/2305/839 2096/2690/839 1994/2321/839 +f 2148/2266/929 2093/2681/929 2094/2323/929 +f 1982/2325/830 2087/2693/830 2092/2324/830 +f 2150/2304/841 2095/2306/841 2088/2326/841 +f 2134/2328/839 2133/2694/839 2076/2329/839 +f 2058/2331/830 2017/2695/830 2016/2332/830 +f 2028/2275/841 2050/2284/841 2085/2334/841 +f 2149/2287/929 2112/2686/929 2113/2336/929 +f 2035/2338/831 2122/2696/831 2036/2289/831 +f 1993/2340/830 2089/2697/830 2098/2341/830 +f 2111/2257/839 2110/2679/839 2030/2343/839 +f 2142/2268/841 2107/2270/841 1989/2345/841 +f 2127/2251/841 2145/2376/841 2044/2347/841 +f 2027/2349/831 2108/2682/831 2142/2268/831 +f 2079/2351/831 2135/2698/831 2084/2352/831 +f 1979/2260/841 2021/2431/841 2067/2354/841 +f 2023/2356/831 2031/2692/831 2032/2357/831 +f 2125/2333/839 2124/2677/839 2062/2359/839 +f 2069/2361/830 2063/2699/830 2129/2303/830 +f 1987/2362/830 2088/2700/830 2095/2306/830 +f 2061/2363/839 2126/2377/839 2128/2364/839 +f 2151/2366/841 2098/2341/841 2089/2367/841 +f 1969/2369/831 2103/2427/831 2102/2370/831 +f 2143/2372/929 2091/2701/929 1985/2373/929 +f 2061/2375/830 2044/2702/830 2145/2376/830 +f 1976/2378/830 2086/2703/830 1984/2374/830 +f 2113/2336/839 2112/2686/839 2033/2379/839 +f 2075/2381/830 2057/2704/830 2056/2382/830 +f 2083/2384/830 2068/2705/830 2144/2385/830 +f 2070/2387/830 1997/2706/830 1996/2255/830 +f 2144/2385/929 2140/2410/929 2141/2388/929 +f 2100/2342/839 2099/2707/839 2000/2389/839 +f 2046/2391/831 2137/2678/831 2047/2253/831 +f 1983/2393/831 2091/2701/831 2143/2372/831 +f 2074/2337/830 2113/2336/830 2029/2395/830 +f 2034/2397/839 2115/2263/839 2114/2398/839 +f 1973/2400/841 2002/2413/841 2043/2401/841 +f 2152/2301/841 2129/2303/841 2063/2403/841 +f 1965/2405/841 2140/2410/841 2144/2385/841 +f 2028/2275/929 2090/2684/929 2051/2285/929 +f 2146/2248/841 2016/2332/841 2017/2407/841 +f 2082/2299/929 2120/2687/929 2121/2292/929 +f 1964/2409/831 2141/2388/831 2140/2410/831 +f 2001/2412/830 2043/2708/830 2002/2413/830 +f 2032/2357/929 2031/2692/929 2054/2318/929 +f 2151/2366/929 2099/2707/929 2100/2342/929 +f 2049/2416/831 2117/2709/831 2154/2280/831 +f 1970/2418/841 2024/2262/841 2025/2264/841 +f 1999/2420/830 2078/2710/830 2077/2421/830 +f 2000/2423/831 2099/2707/831 2151/2366/831 +f 2072/2425/830 2065/2711/830 2132/2426/830 +f 2077/2421/929 2102/2370/929 2103/2427/929 +f 2104/2428/830 2105/2432/830 2014/2429/830 +f 1979/2260/929 2138/2680/929 2022/2277/929 +f 2105/2432/839 2080/2712/839 2019/2433/839 +f 2084/2352/841 2056/2382/841 2057/2435/841 +f 2081/2437/841 2104/2428/841 2004/2438/841 +f 2060/2297/839 2122/2696/839 2035/2440/839 +f 2143/2372/841 1984/2374/841 2086/2442/841 +f 2148/2266/841 2092/2324/841 2087/2444/841 +f 1994/2446/831 2096/2690/831 2150/2304/831 +f 2118/2273/839 2117/2709/839 2049/2448/839 +f 2071/2254/839 2137/2678/839 2046/2450/839 +f 2107/2270/830 1990/2269/830 1991/2452/830 +f 2136/2383/839 2135/2698/839 2079/2454/839 +f 2084/2352/929 2135/2698/929 2136/2383/929 +f 2003/2414/839 2123/2713/839 1972/2456/839 +f 2094/2323/839 2093/2681/839 1988/2458/839 +f 2154/2280/929 2117/2709/929 2118/2273/929 +f 2020/2460/830 2067/2714/830 2021/2431/830 +f 2102/2370/841 2077/2421/841 2078/2461/841 +f 1973/2400/929 2123/2713/929 2003/2414/929 +f 2082/2299/841 2119/2308/841 2040/2463/841 +f 2146/2248/929 2124/2677/929 2125/2333/929 +f 2032/2357/841 2106/2415/841 2006/2465/841 +f 1985/2373/839 2091/2701/839 1983/2467/839 +f 2139/2386/839 2141/2388/839 1964/2469/839 +f 2047/2253/841 1996/2255/841 1997/2471/841 +f 2145/2376/929 2127/2251/929 2128/2364/929 +f 2051/2285/839 2090/2684/839 1977/2473/839 +f 2036/2289/929 2122/2696/929 2060/2297/929 +f 1972/2475/831 2123/2713/831 1973/2400/831 +f 2101/2422/839 2103/2427/839 1969/2477/839 +f 2147/2256/841 2109/2258/841 2009/2479/841 +f 2149/2287/841 2074/2337/841 2011/2481/841 +f 2081/2437/929 2080/2712/929 2105/2432/929 +f 2153/2309/929 2133/2694/929 2134/2328/929 +f 2019/2483/831 2080/2712/831 2081/2437/831 +f 2073/2485/831 2130/2689/831 2152/2301/831 +f 2106/2415/830 2054/2318/830 2018/2487/830 +f 1990/2269/839 2108/2682/839 2027/2489/839 +f 2076/2491/831 2133/2694/831 2153/2309/831 +f 2131/2302/839 2130/2689/839 2073/2493/839 +f 2030/2495/831 2110/2679/831 2147/2256/831 +f 1904/1713/923 1898/2084/923 1905/2086/923 +f 1584/1630/860 1579/1751/860 1585/2184/860 +f 1568/1681/856 1563/1642/856 1569/1652/856 +f 1552/1903/848 1554/1625/848 1553/1679/848 +f 1664/1741/880 1659/1695/880 1665/1708/880 +f 1648/2497/876 1650/1785/876 1649/1738/876 +f 1616/1792/870 1611/1899/870 1617/1593/870 +f 1696/1892/887 1691/2641/887 1697/1876/887 +f 1600/1597/866 1602/1650/866 1601/1628/866 +f 1680/1944/883 1676/1949/883 1681/2034/883 +f 1776/1827/900 1771/1829/900 1777/1840/900 +f 1712/1864/890 1707/2639/890 1713/1867/890 +f 1792/1980/902 1787/1982/902 1793/1846/902 +f 1810/1933/904 1808/1880/904 1803/1882/904 +f 1947/2501/927 1954/2100/927 1951/2112/927 +f 1760/1810/899 1755/1799/899 1761/1894/899 +f 1730/2013/895 1728/1907/895 1723/1906/895 +f 1824/1925/905 1819/1814/905 1825/1919/905 +f 1632/2502/872 1634/1759/872 1633/1788/872 +f 1857/2155/913 1851/2143/913 1858/2145/913 +f 1868/2503/918 1953/1971/918 1872/1570/918 +f 1936/2128/925 1935/2087/925 1937/2504/925 +f 1840/2230/909 1842/2202/909 1841/2227/909 +f 1744/1771/897 1739/1770/897 1745/1937/897 +f 1888/1590/921 1887/2163/921 1889/2506/921 +f 1919/2064/924 1921/2058/924 1920/2061/924 +f 1960/2246/831 1961/2245/831 1955/2507/831 +f 2157/2509/837 2161/2519/837 2159/2510/837 +f 2155/2512/841 2159/2510/841 2160/2513/841 +f 2156/2515/835 2160/2513/835 2162/2516/835 +f 2158/2518/839 2162/2516/839 2161/2519/839 +f 2164/2521/835 2168/2531/835 2170/2522/835 +f 2166/2524/839 2170/2522/839 2169/2525/839 +f 2165/2527/837 2169/2525/837 2167/2528/837 +f 2163/2530/841 2167/2528/841 2168/2531/841 +f 2159/2510/831 2161/2519/831 2162/2516/831 +f 2168/2531/831 2167/2528/831 2169/2525/831 +s 1 +f 1252/1329/832 1247/1461/845 1249/1316/832 +f 1262/1366/855 1257/1355/827 1259/1357/855 +f 1050/2715/901 1047/2716/838 1048/2717/838 +f 1244/1305/825 1242/1397/908 1238/1299/908 +f 1058/2718/852 1055/2719/833 1056/2720/833 +f 1366/1527/930 1361/1497/931 1358/1486/930 +f 1202/1423/829 1199/2571/852 1200/1424/852 +f 1260/1428/827 1255/1344/901 1257/1355/827 +f 1266/2572/852 1261/1419/833 1263/1451/852 +f 1035/2721/908 1034/2722/828 1032/2723/828 +f 1256/2560/838 1254/1433/875 1253/1435/838 +f 1242/1397/908 1240/1304/828 1238/1299/908 +f 1250/1321/845 1245/1415/826 1247/1461/845 +f 1052/2724/827 1049/2725/901 1050/2715/901 +f 1060/2726/832 1042/2727/845 1043/2728/845 +f 1181/1313/843 1178/1310/825 1179/1333/825 +f 1174/2574/828 1203/1382/849 1204/1464/849 +f 1347/1479/932 1345/1515/933 1342/1480/933 +f 1032/2723/828 1062/2729/849 1063/2730/849 +f 1362/2603/827 1355/1477/934 1353/1533/934 +f 1269/1341/849 1265/1352/829 1267/1302/849 +f 1351/1530/935 1337/1520/936 1339/1536/935 +f 1239/1399/828 1267/1302/849 1240/1304/828 +f 1246/1540/843 1244/1305/825 1243/1413/843 +f 1190/2564/838 1188/1374/875 1187/1336/875 +f 1185/1381/845 1182/1412/826 1183/2559/826 +f 1054/2731/855 1051/2732/827 1052/2724/827 +f 1264/1364/833 1259/1357/855 1261/1419/833 +f 1056/2720/833 1053/2733/855 1054/2731/855 +f 1200/1424/852 1197/1367/833 1198/1359/833 +f 1063/2730/849 1059/2734/829 1061/2735/829 +f 1466/2736/827 1478/2737/937 1469/2738/938 +f 1041/2739/826 1038/2740/843 1039/2741/843 +f 1043/2728/845 1040/2742/826 1041/2739/826 +f 1248/1323/826 1243/1413/843 1245/1415/826 +f 1179/1333/825 1175/1401/908 1177/1334/908 +f 1217/1380/832 1184/1455/845 1185/1381/845 +f 1254/1433/875 1252/1329/832 1249/1316/832 +f 1369/1476/939 1353/1533/934 1355/1477/934 +f 1521/2743/940 1150/2744/941 1151/2745/940 +f 1067/2746/942 1068/2747/943 1069/2748/943 +f 1070/2749/944 1068/2747/943 1071/2750/942 +f 1072/2751/944 1073/2752/943 1070/2749/944 +f 1082/2753/945 1064/2754/946 1078/2755/947 +f 1072/2756/944 1075/2757/948 1076/2758/948 +f 1077/2759/947 1075/2757/948 1070/2760/944 +f 1078/2761/947 1079/2762/948 1077/2759/947 +f 1519/2763/949 1125/2764/950 1141/2765/949 +f 1078/2755/947 1081/2766/945 1082/2753/945 +f 1083/2767/946 1081/2766/945 1077/2768/947 +f 1064/2754/946 1084/2769/945 1083/2767/946 +f 1518/2770/951 1126/2771/952 1136/2772/953 +f 1064/2773/946 1086/2774/954 1087/2775/954 +f 1083/2776/946 1088/2777/954 1086/2774/954 +f 1089/2778/955 1088/2777/954 1090/2779/955 +f 1155/2780/956 1156/2781/957 1150/2782/941 +f 1089/2783/955 1092/2784/958 1093/2785/958 +f 1090/2786/955 1094/2787/958 1092/2784/958 +f 1065/2788/959 1094/2787/958 1095/2789/959 +f 1525/2790/960 1169/2791/961 1170/2792/960 +f 1065/2793/959 1097/2794/962 1098/2795/962 +f 1099/2796/963 1097/2794/962 1095/2797/959 +f 1100/2798/963 1101/2799/962 1099/2796/963 +f 1146/2800/964 1125/2801/950 1145/2802/965 +f 1100/2803/963 1103/2804/966 1104/2805/966 +f 1105/2806/967 1103/2804/966 1099/2807/963 +f 1066/2808/967 1106/2809/966 1105/2806/967 +f 1523/2810/968 1124/2811/969 1160/2812/968 +f 1066/2813/967 1108/2814/970 1109/2815/970 +f 1110/2816/971 1108/2814/970 1105/2817/967 +f 1111/2818/971 1112/2819/970 1110/2816/971 +f 1072/2756/944 1080/2820/948 1078/2761/947 +f 1111/2821/971 1114/2822/972 1115/2823/972 +f 1116/2824/973 1114/2822/972 1110/2825/971 +f 1117/2826/973 1118/2827/972 1116/2824/973 +f 1526/2828/974 1127/2829/975 1173/2830/974 +f 1117/2831/973 1120/2832/976 1121/2833/976 +f 1116/2834/973 1122/2835/976 1120/2832/976 +f 1067/2836/942 1122/2835/976 1071/2837/942 +f 1064/2773/946 1091/2838/954 1089/2778/955 +f 1485/2839/977 1477/2840/978 1474/2841/979 +f 1127/2842/975 1128/2843/980 1129/2844/975 +f 1128/2843/980 1130/2845/952 1129/2844/975 +f 1131/2846/980 1126/2847/952 1130/2845/952 +f 1072/2751/944 1069/2748/943 1074/2848/943 +f 1126/2771/952 1133/2849/951 1130/2850/952 +f 1133/2849/951 1134/2851/953 1130/2850/952 +f 1135/2852/951 1136/2772/953 1134/2851/953 +f 1111/2818/971 1109/2815/970 1113/2853/970 +f 1136/2854/953 1138/2855/949 1134/2856/953 +f 1138/2855/949 1139/2857/950 1134/2856/953 +f 1140/2858/949 1125/2764/950 1139/2857/950 +f 1524/2859/981 1164/2860/982 1165/2861/981 +f 1125/2801/950 1142/2862/964 1139/2863/950 +f 1139/2863/950 1143/2864/964 1144/2865/965 +f 1143/2864/964 1145/2802/965 1144/2865/965 +f 1517/2866/980 1126/2847/952 1132/2867/980 +f 1145/2868/965 1147/2869/940 1144/2870/965 +f 1144/2870/965 1148/2871/940 1149/2872/941 +f 1148/2871/940 1150/2744/941 1149/2872/941 +f 1065/2788/959 1093/2785/958 1096/2873/958 +f 1150/2782/941 1152/2874/957 1149/2875/941 +f 1152/2874/957 1153/2876/956 1149/2875/941 +f 1154/2877/957 1155/2780/956 1153/2876/956 +f 1098/2795/962 1100/2798/963 1065/2793/959 +f 1155/2878/956 1157/2879/968 1153/2880/956 +f 1153/2880/956 1158/2881/968 1159/2882/969 +f 1158/2881/968 1124/2811/969 1159/2882/969 +f 1124/2883/969 1161/2884/981 1159/2885/969 +f 1161/2884/981 1162/2886/982 1159/2885/969 +f 1163/2887/981 1164/2860/982 1162/2886/982 +f 1104/2805/966 1066/2808/967 1100/2803/963 +f 1164/2888/982 1166/2889/960 1162/2890/982 +f 1162/2890/982 1167/2891/960 1168/2892/961 +f 1167/2891/960 1169/2791/961 1168/2892/961 +f 1115/2823/972 1117/2826/973 1111/2821/971 +f 1169/2893/961 1171/2894/974 1168/2895/961 +f 1171/2894/974 1129/2896/975 1168/2895/961 +f 1172/2897/974 1127/2829/975 1129/2896/975 +f 1121/2833/976 1067/2836/942 1117/2831/973 +f 1048/2898/838 1046/2899/875 1045/2900/875 +f 1258/1425/901 1253/2567/838 1255/1344/901 +f 1316/1505/983 1308/1495/984 1310/1491/984 +f 1217/1380/832 1188/1374/875 1186/1373/832 +f 1061/2735/829 1057/2901/852 1058/2718/852 +f 1037/2902/825 1033/2903/908 1035/2721/908 +f 1183/2559/826 1180/1311/843 1181/1313/843 +f 1196/2562/855 1193/1351/827 1194/1325/827 +f 1194/1325/827 1191/1350/901 1192/1339/901 +f 1204/1464/849 1201/1458/829 1202/1423/829 +f 1198/1359/833 1195/1361/855 1196/2562/855 +f 1177/1334/908 1176/2576/828 1174/2574/828 +f 1192/1339/901 1189/2585/838 1190/1340/838 +f 1335/1489/985 1324/1483/986 1321/1471/986 +f 1327/1503/829 1321/1471/986 1324/1483/986 +f 1331/1164/987 1326/1502/988 1328/1507/987 +f 1317/1508/989 1306/1500/990 1303/1504/989 +f 1310/1491/984 1313/2597/825 1312/2596/825 +f 1303/1504/989 1313/2597/825 1317/1508/989 +f 1268/1343/829 1263/1451/852 1265/1352/829 +f 1039/2741/843 1036/2904/825 1037/2902/825 +f 1343/1522/832 1337/1520/936 1340/1511/936 +f 1366/1527/930 1363/2593/827 1362/2603/827 +f 1060/2726/832 1046/2899/875 1044/2905/832 +f 1329/1166/988 1327/1503/829 1326/1502/988 +f 1345/1515/933 1343/1522/832 1342/1480/933 +f 1440/2906/991 1444/2907/992 1443/2908/993 +f 1507/2909/994 1370/2910/995 1511/2911/996 +f 1385/2912/997 1377/2913/908 1389/2914/828 +f 1381/2915/831 1373/2916/998 1375/2917/999 +f 1459/2918/1000 1464/2919/1001 1453/2920/1002 +f 1403/2921/1003 1416/2922/1004 1405/2923/1005 +f 1386/2924/1006 1387/2925/830 1371/2926/1007 +f 1416/2922/1004 1407/2927/1008 1405/2923/1005 +f 1510/2928/849 1385/2912/997 1389/2914/828 +f 1500/2929/1009 1507/2930/994 1511/2931/996 +f 1465/2932/1010 1458/2933/1011 1454/2934/1012 +f 1442/2935/875 1446/2936/1013 1435/2937/1014 +f 1454/2934/1012 1464/2919/1001 1465/2932/1010 +f 1381/2938/831 1375/2939/999 1392/2940/1015 +f 1394/2941/1016 1405/2942/1005 1396/2943/1017 +f 1479/2944/1018 1462/2945/1019 1470/2946/1020 +f 1371/2947/1007 1387/2948/830 1390/2949/1021 +f 1372/2950/1022 1395/2951/1023 1379/2952/1024 +f 1377/2913/908 1394/2941/1016 1378/2953/1025 +f 1505/2954/1026 1496/2955/852 1494/2956/1027 +f 1473/2957/1028 1467/2958/1029 1463/2959/1030 +f 1463/2960/1030 1457/2961/1031 1456/2962/1032 +f 1393/2963/825 1399/2964/1033 1400/2965/843 +f 1476/2966/1034 1470/2946/1020 1467/2958/1029 +f 1381/2967/831 1392/2968/1015 1402/2969/1035 +f 1469/2738/938 1471/2970/1036 1464/2971/1001 +f 1379/2952/1024 1397/2972/1037 1384/2973/1038 +f 1390/2974/1021 1387/2975/830 1406/2976/1039 +f 1464/2971/1001 1474/2977/979 1465/2978/1010 +f 1406/2979/1039 1387/2980/830 1408/2981/1040 +f 1416/2982/1004 1420/2983/1041 1409/2984/1042 +f 1455/2985/901 1469/2738/938 1459/2918/1000 +f 1473/2986/1028 1487/2987/1043 1476/2988/1034 +f 1409/2984/1042 1423/2989/1044 1413/2990/1045 +f 1472/2991/1046 1486/2992/833 1475/2993/855 +f 1382/2994/1047 1374/2995/1048 1388/2996/1049 +f 1381/2997/831 1402/2998/1035 1413/2999/1045 +f 1478/2737/937 1482/3000/1050 1471/3001/1036 +f 1480/3002/1051 1472/2991/1046 1479/3003/1018 +f 1446/3004/1013 1453/3005/1002 1448/3006/1052 +f 1428/3007/1053 1435/2937/1014 1438/3008/1054 +f 1408/3009/1040 1387/3010/830 1419/3011/1055 +f 1474/2841/979 1482/3000/1050 1485/2839/977 +f 1496/2955/852 1488/3012/1056 1486/2992/833 +f 1406/2979/1039 1412/3013/1057 1401/3014/1058 +f 1451/3015/1059 1437/3016/1060 1441/3017/1061 +f 1410/3018/1062 1421/3019/845 1411/3020/826 +f 1401/3014/1058 1415/3021/1063 1404/3022/1064 +f 1381/3023/831 1413/2990/1045 1423/2989/1044 +f 1438/3008/1054 1431/3024/1065 1428/3007/1053 +f 1381/3025/831 1423/3026/1044 1427/3027/1066 +f 1502/3028/1067 1508/3029/1068 1504/3030/1069 +f 1514/3031/1070 1505/2954/1026 1503/3032/1071 +f 1419/3033/1055 1387/3034/830 1430/3035/1072 +f 1433/3036/1073 1425/3037/1074 1422/3038/1075 +f 1502/3028/1067 1510/2928/849 1513/3039/1076 +f 1422/3038/1075 1430/3035/1072 1433/3036/1073 +f 1421/3019/845 1429/3040/1077 1432/3041/832 +f 1432/3041/832 1439/3042/1078 1442/2935/875 +f 1508/3043/1068 1388/3044/1049 1509/3045/1079 +f 1381/3046/831 1427/3047/1066 1437/3048/1060 +f 1508/3043/1068 1376/3049/1080 1382/3050/1047 +f 1417/3051/1081 1431/3052/1065 1420/3053/1041 +f 1430/3054/1072 1387/3055/830 1440/3056/991 +f 1396/2943/1017 1407/3057/1008 1398/3058/1082 +f 1393/2963/825 1403/2921/1003 1394/2941/1016 +f 1398/3059/1082 1375/2939/999 1374/3060/1048 +f 1433/3061/1073 1440/3056/991 1443/3062/993 +f 1444/3063/992 1456/3064/1032 1457/3065/1031 +f 1451/3066/1059 1458/3067/1011 1445/3068/1083 +f 1449/3069/1084 1442/2935/875 1439/3042/1078 +f 1447/3070/1085 1457/3065/1031 1460/3071/1086 +f 1381/3072/831 1437/3016/1060 1445/3073/1083 +f 1447/3070/1085 1461/3074/1087 1449/3075/1084 +f 1460/3076/1086 1462/2945/1019 1461/3074/1087 +f 1440/2906/991 1387/3077/830 1450/3078/1088 +f 1448/3006/1052 1454/3079/1012 1451/3066/1059 +f 1452/3080/838 1459/2918/1000 1446/3004/1013 +f 1476/2988/1034 1480/3002/1051 1479/3003/1018 +f 1425/3037/1074 1429/3040/1077 1418/3081/1089 +f 1419/3011/1055 1412/3082/1057 1408/3009/1040 +f 1388/3044/1049 1512/3083/1090 1509/3045/1079 +f 1475/2993/855 1488/3012/1056 1478/2737/937 +f 1503/3032/1071 1511/2931/996 1514/3031/1070 +f 1381/3084/831 1445/3068/1083 1458/3067/1011 +f 1404/3085/1064 1397/2972/1037 1395/3086/1023 +f 1447/3087/1085 1439/3042/1078 1436/3088/1091 +f 1450/3089/1088 1387/3090/830 1456/3064/1032 +f 1491/3091/1092 1504/3092/1069 1493/3093/1093 +f 1456/2962/1032 1387/3094/830 1463/2960/1030 +f 1487/3095/1043 1492/3096/1094 1480/3097/1051 +f 1414/3098/1095 1421/3019/845 1424/3099/1096 +f 1506/3100/1097 1512/3101/1090 1501/3102/1098 +f 1497/3103/1099 1499/3104/1100 1500/3105/1009 +f 1510/2928/849 1376/3049/1080 1513/3039/1076 +f 1489/3106/1101 1504/3092/1069 1506/3107/1097 +f 1381/3108/831 1458/2933/1011 1468/3109/1102 +f 1435/2937/1014 1448/3110/1052 1438/3111/1054 +f 1429/3040/1077 1436/3112/1091 1439/3042/1078 +f 1383/3113/1103 1394/2941/1016 1396/3114/1017 +f 1463/2959/1030 1387/3115/830 1473/2957/1028 +f 1395/3086/1023 1401/3116/1058 1404/3085/1064 +f 1432/3041/832 1435/2937/1014 1434/3117/1104 +f 1420/3053/1041 1427/3027/1066 1423/3026/1044 +f 1398/3058/1082 1402/2969/1035 1392/2968/1015 +f 1466/2736/827 1472/2991/1046 1475/2993/855 +f 1396/3114/1017 1374/3060/1048 1383/3113/1103 +f 1381/3118/831 1468/3119/1102 1477/3120/978 +f 1415/3121/1063 1422/3122/1075 1425/3123/1074 +f 1381/3124/831 1477/2840/978 1481/3125/1105 +f 1382/2994/1047 1378/2953/1025 1383/3126/1103 +f 1380/3127/1106 1384/2973/1038 1385/2912/997 +f 1473/2986/1028 1387/3128/830 1484/3129/1107 +f 1372/3130/1022 1380/3127/1106 1370/3131/995 +f 1399/2964/1033 1411/3020/826 1400/2965/843 +f 1431/3024/1065 1437/3048/1060 1427/3047/1066 +f 1409/3132/1042 1402/2998/1035 1407/2927/1008 +f 1411/3020/826 1403/2921/1003 1400/2965/843 +f 1495/3133/1108 1487/3095/1043 1484/3134/1107 +f 1397/2972/1037 1377/2913/908 1384/2973/1038 +f 1485/3135/977 1493/3136/1093 1489/3137/1101 +f 1381/3138/831 1481/3139/1105 1490/3140/1109 +f 1414/3098/1095 1417/3141/1081 1416/2982/1004 +f 1415/3021/1063 1399/2964/1033 1404/3022/1064 +f 1484/3134/1107 1387/3142/830 1495/3133/1108 +f 1433/3061/1073 1436/3112/1091 1426/3143/1110 +f 1461/3074/1087 1452/3080/838 1449/3075/1084 +f 1371/2947/1007 1391/3144/1111 1372/2950/1022 +f 1462/2945/1019 1455/2985/901 1461/3074/1087 +f 1506/3107/1097 1490/3145/1109 1489/3106/1101 +f 1485/3135/977 1490/3140/1109 1481/3139/1105 +f 1486/2992/833 1494/2956/1027 1496/2955/852 +f 1504/3030/1069 1509/3146/1079 1506/3100/1097 +f 1381/3147/831 1490/3145/1109 1501/3148/1098 +f 1492/3149/1094 1505/2954/1026 1494/2956/1027 +f 1514/3150/1070 1385/2912/997 1515/3151/1112 +f 1495/3152/1108 1387/3153/830 1499/3104/1100 +f 1497/3103/1099 1503/3154/1071 1492/3149/1094 +f 1499/3155/1100 1387/3156/830 1507/2930/994 +f 1443/2908/993 1447/3087/1085 1436/3088/1091 +f 1491/3091/1092 1498/3157/829 1502/3028/1067 +f 1465/2978/1010 1477/3120/978 1468/3119/1102 +f 1406/2976/1039 1391/3158/1111 1390/2974/1021 +f 1505/2954/1026 1510/2928/849 1498/3157/829 +f 1441/3017/1061 1448/3110/1052 1451/3015/1059 +f 1381/3159/831 1501/3102/1098 1512/3101/1090 +f 1480/3097/1051 1494/2956/1027 1483/3160/1113 +f 1434/3117/1104 1417/3051/1081 1424/3099/1096 +f 1425/3123/1074 1410/3018/1062 1415/3121/1063 +f 1507/2909/994 1387/3161/830 1386/3162/1006 +f 1370/2910/995 1514/3150/1070 1511/2911/996 +f 1421/3019/845 1434/3117/1104 1424/3099/1096 +f 1370/3131/995 1371/2926/1007 1372/3130/1022 +f 1388/2996/1049 1375/2917/999 1373/2916/998 +f 1376/3049/1080 1377/2913/908 1378/2953/1025 +f 1457/2961/1031 1470/3163/1020 1460/3076/1086 +f 1381/3164/831 1512/3083/1090 1373/3165/998 +f 1488/3012/1056 1493/3136/1093 1482/3166/1050 +f 1067/2746/942 1071/2750/942 1068/2747/943 +f 1070/2749/944 1073/2752/943 1068/2747/943 +f 1072/2751/944 1074/2848/943 1073/2752/943 +f 1072/2756/944 1070/2760/944 1075/2757/948 +f 1077/2759/947 1079/2762/948 1075/2757/948 +f 1078/2761/947 1080/2820/948 1079/2762/948 +f 1078/2755/947 1077/2768/947 1081/2766/945 +f 1083/2767/946 1084/2769/945 1081/2766/945 +f 1064/2754/946 1085/3167/945 1084/2769/945 +f 1064/2773/946 1083/2776/946 1086/2774/954 +f 1083/2776/946 1090/2779/955 1088/2777/954 +f 1089/2778/955 1091/2838/954 1088/2777/954 +f 1089/2783/955 1090/2786/955 1092/2784/958 +f 1090/2786/955 1095/2789/959 1094/2787/958 +f 1065/2788/959 1096/2873/958 1094/2787/958 +f 1065/2793/959 1095/2797/959 1097/2794/962 +f 1099/2796/963 1101/2799/962 1097/2794/962 +f 1100/2798/963 1102/3168/962 1101/2799/962 +f 1100/2803/963 1099/2807/963 1103/2804/966 +f 1105/2806/967 1106/2809/966 1103/2804/966 +f 1066/2808/967 1107/3169/966 1106/2809/966 +f 1066/2813/967 1105/2817/967 1108/2814/970 +f 1110/2816/971 1112/2819/970 1108/2814/970 +f 1111/2818/971 1113/2853/970 1112/2819/970 +f 1111/2821/971 1110/2825/971 1114/2822/972 +f 1116/2824/973 1118/2827/972 1114/2822/972 +f 1117/2826/973 1119/3170/972 1118/2827/972 +f 1117/2831/973 1116/2834/973 1120/2832/976 +f 1116/2834/973 1071/2837/942 1122/2835/976 +f 1067/2836/942 1123/3171/976 1122/2835/976 +f 1127/2842/975 1517/2866/980 1128/2843/980 +f 1128/2843/980 1131/2846/980 1130/2845/952 +f 1131/2846/980 1132/2867/980 1126/2847/952 +f 1126/2771/952 1137/3172/951 1133/2849/951 +f 1133/2849/951 1135/2852/951 1134/2851/953 +f 1135/2852/951 1518/2770/951 1136/2772/953 +f 1136/2854/953 1519/2763/949 1138/2855/949 +f 1138/2855/949 1140/2858/949 1139/2857/950 +f 1140/2858/949 1141/2765/949 1125/2764/950 +f 1125/2801/950 1520/3173/964 1142/2862/964 +f 1139/2863/950 1142/2862/964 1143/2864/964 +f 1143/2864/964 1146/2800/964 1145/2802/965 +f 1145/2868/965 1521/2743/940 1147/2869/940 +f 1144/2870/965 1147/2869/940 1148/2871/940 +f 1148/2871/940 1151/2745/940 1150/2744/941 +f 1150/2782/941 1156/2781/957 1152/2874/957 +f 1152/2874/957 1154/2877/957 1153/2876/956 +f 1154/2877/957 1522/3174/957 1155/2780/956 +f 1155/2878/956 1523/2810/968 1157/2879/968 +f 1153/2880/956 1157/2879/968 1158/2881/968 +f 1158/2881/968 1160/2812/968 1124/2811/969 +f 1124/2883/969 1524/2859/981 1161/2884/981 +f 1161/2884/981 1163/2887/981 1162/2886/982 +f 1163/2887/981 1165/2861/981 1164/2860/982 +f 1164/2888/982 1525/2790/960 1166/2889/960 +f 1162/2890/982 1166/2889/960 1167/2891/960 +f 1167/2891/960 1170/2792/960 1169/2791/961 +f 1169/2893/961 1526/2828/974 1171/2894/974 +f 1171/2894/974 1172/2897/974 1129/2896/975 +f 1172/2897/974 1173/2830/974 1127/2829/975 +f 1252/1329/832 1250/1321/845 1247/1461/845 +f 1262/1366/855 1260/1428/827 1257/1355/827 +f 1050/2715/901 1049/2725/901 1047/2716/838 +f 1244/1305/825 1241/1296/825 1242/1397/908 +f 1058/2718/852 1057/2901/852 1055/2719/833 +f 1366/1527/930 1360/1526/931 1361/1497/931 +f 1202/1423/829 1201/1458/829 1199/2571/852 +f 1260/1428/827 1258/1425/901 1255/1344/901 +f 1266/2572/852 1264/1364/833 1261/1419/833 +f 1035/2721/908 1033/2903/908 1034/2722/828 +f 1256/2560/838 1251/1318/875 1254/1433/875 +f 1242/1397/908 1239/1399/828 1240/1304/828 +f 1250/1321/845 1248/1323/826 1245/1415/826 +f 1052/2724/827 1051/2732/827 1049/2725/901 +f 1060/2726/832 1044/2905/832 1042/2727/845 +f 1181/1313/843 1180/1311/843 1178/1310/825 +f 1174/2574/828 1176/2576/828 1203/1382/849 +f 1347/1479/932 1344/1513/932 1345/1515/933 +f 1032/2723/828 1034/2722/828 1062/2729/849 +f 1362/2603/827 1363/2593/827 1355/1477/934 +f 1269/1341/849 1268/1343/829 1265/1352/829 +f 1351/1530/935 1340/1511/936 1337/1520/936 +f 1239/1399/828 1269/1341/849 1267/1302/849 +f 1246/1540/843 1241/1296/825 1244/1305/825 +f 1190/2564/838 1189/2586/838 1188/1374/875 +f 1185/1381/845 1184/1455/845 1182/1412/826 +f 1054/2731/855 1053/2733/855 1051/2732/827 +f 1264/1364/833 1262/1366/855 1259/1357/855 +f 1056/2720/833 1055/2719/833 1053/2733/855 +f 1200/1424/852 1199/2571/852 1197/1367/833 +f 1063/2730/849 1062/2729/849 1059/2734/829 +f 1466/2736/827 1475/2993/855 1478/2737/937 +f 1041/2739/826 1040/2742/826 1038/2740/843 +f 1043/2728/845 1042/2727/845 1040/2742/826 +f 1248/1323/826 1246/1540/843 1243/1413/843 +f 1179/1333/825 1178/1310/825 1175/1401/908 +f 1217/1380/832 1186/1373/832 1184/1455/845 +f 1254/1433/875 1251/1318/875 1252/1329/832 +f 1369/1476/939 1356/1517/939 1353/1533/934 +f 1521/2743/940 1145/2868/965 1150/2744/941 +f 1082/2753/945 1085/3167/945 1064/2754/946 +f 1519/2763/949 1136/2854/953 1125/2764/950 +f 1518/2770/951 1137/3172/951 1126/2771/952 +f 1155/2780/956 1522/3174/957 1156/2781/957 +f 1525/2790/960 1164/2888/982 1169/2791/961 +f 1146/2800/964 1520/3173/964 1125/2801/950 +f 1523/2810/968 1155/2878/956 1124/2811/969 +f 1072/2756/944 1076/2758/948 1080/2820/948 +f 1526/2828/974 1169/2893/961 1127/2829/975 +f 1064/2773/946 1087/2775/954 1091/2838/954 +f 1485/2839/977 1481/3125/1105 1477/2840/978 +f 1072/2751/944 1067/2746/942 1069/2748/943 +f 1111/2818/971 1066/2813/967 1109/2815/970 +f 1524/2859/981 1124/2883/969 1164/2860/982 +f 1517/2866/980 1127/2842/975 1126/2847/952 +f 1065/2788/959 1089/2783/955 1093/2785/958 +f 1098/2795/962 1102/3168/962 1100/2798/963 +f 1104/2805/966 1107/3169/966 1066/2808/967 +f 1115/2823/972 1119/3170/972 1117/2826/973 +f 1121/2833/976 1123/3171/976 1067/2836/942 +f 1048/2898/838 1047/3175/838 1046/2899/875 +f 1258/1425/901 1256/2583/838 1253/2567/838 +f 1316/1505/983 1311/1523/983 1308/1495/984 +f 1217/1380/832 1187/1336/875 1188/1374/875 +f 1061/2735/829 1059/2734/829 1057/2901/852 +f 1037/2902/825 1036/2904/825 1033/2903/908 +f 1183/2559/826 1182/1412/826 1180/1311/843 +f 1196/2562/855 1195/1361/855 1193/1351/827 +f 1194/1325/827 1193/1351/827 1191/1350/901 +f 1204/1464/849 1203/1382/849 1201/1458/829 +f 1198/1359/833 1197/1367/833 1195/1361/855 +f 1177/1334/908 1175/1401/908 1176/2576/828 +f 1192/1339/901 1191/1350/901 1189/2585/838 +f 1335/1489/985 1323/1490/985 1324/1483/986 +f 1327/1503/829 1322/1472/829 1321/1471/986 +f 1331/1164/987 1329/1166/988 1326/1502/988 +f 1317/1508/989 1305/1534/990 1306/1500/990 +f 1310/1491/984 1308/1495/984 1313/2597/825 +f 1303/1504/989 1312/2596/825 1313/2597/825 +f 1268/1343/829 1266/2572/852 1263/1451/852 +f 1039/2741/843 1038/2740/843 1036/2904/825 +f 1343/1522/832 1338/1521/832 1337/1520/936 +f 1366/1527/930 1358/1486/930 1363/2593/827 +f 1060/2726/832 1045/2900/875 1046/2899/875 +f 1329/1166/988 1322/1472/829 1327/1503/829 +f 1345/1515/933 1338/1521/832 1343/1522/832 +f 1440/2906/991 1450/3078/1088 1444/2907/992 +f 1507/2909/994 1386/3162/1006 1370/2910/995 +f 1385/2912/997 1384/2973/1038 1377/2913/908 +f 1459/2918/1000 1469/2738/938 1464/2919/1001 +f 1403/2921/1003 1414/3098/1095 1416/2922/1004 +f 1416/2922/1004 1409/3132/1042 1407/2927/1008 +f 1510/2928/849 1515/3151/1112 1385/2912/997 +f 1500/2929/1009 1499/3155/1100 1507/2930/994 +f 1465/2932/1010 1468/3109/1102 1458/2933/1011 +f 1442/2935/875 1452/3176/838 1446/2936/1013 +f 1454/2934/1012 1453/2920/1002 1464/2919/1001 +f 1394/2941/1016 1403/2921/1003 1405/2942/1005 +f 1479/2944/1018 1472/2991/1046 1462/2945/1019 +f 1372/2950/1022 1391/3144/1111 1395/2951/1023 +f 1377/2913/908 1393/2963/825 1394/2941/1016 +f 1505/2954/1026 1498/3157/829 1496/2955/852 +f 1473/2957/1028 1476/2966/1034 1467/2958/1029 +f 1463/2960/1030 1467/3177/1029 1457/2961/1031 +f 1393/2963/825 1397/2972/1037 1399/2964/1033 +f 1476/2966/1034 1479/2944/1018 1470/2946/1020 +f 1469/2738/938 1478/2737/937 1471/2970/1036 +f 1379/2952/1024 1395/2951/1023 1397/2972/1037 +f 1464/2971/1001 1471/2970/1036 1474/2977/979 +f 1416/2982/1004 1417/3141/1081 1420/2983/1041 +f 1455/2985/901 1466/2736/827 1469/2738/938 +f 1473/2986/1028 1484/3129/1107 1487/2987/1043 +f 1409/2984/1042 1420/2983/1041 1423/2989/1044 +f 1472/2991/1046 1483/3160/1113 1486/2992/833 +f 1382/2994/1047 1383/3126/1103 1374/2995/1048 +f 1478/2737/937 1488/3012/1056 1482/3000/1050 +f 1480/3002/1051 1483/3160/1113 1472/2991/1046 +f 1446/3004/1013 1459/2918/1000 1453/3005/1002 +f 1428/3007/1053 1434/3117/1104 1435/2937/1014 +f 1474/2841/979 1471/3001/1036 1482/3000/1050 +f 1496/2955/852 1491/3091/1092 1488/3012/1056 +f 1406/2979/1039 1408/2981/1040 1412/3013/1057 +f 1451/3015/1059 1445/3073/1083 1437/3016/1060 +f 1410/3018/1062 1418/3081/1089 1421/3019/845 +f 1401/3014/1058 1412/3013/1057 1415/3021/1063 +f 1438/3008/1054 1441/3178/1061 1431/3024/1065 +f 1502/3028/1067 1513/3039/1076 1508/3029/1068 +f 1514/3031/1070 1515/3151/1112 1505/2954/1026 +f 1433/3036/1073 1426/3179/1110 1425/3037/1074 +f 1502/3028/1067 1498/3157/829 1510/2928/849 +f 1422/3038/1075 1419/3033/1055 1430/3035/1072 +f 1421/3019/845 1418/3081/1089 1429/3040/1077 +f 1432/3041/832 1429/3040/1077 1439/3042/1078 +f 1508/3043/1068 1382/3050/1047 1388/3044/1049 +f 1508/3043/1068 1513/3039/1076 1376/3049/1080 +f 1417/3051/1081 1428/3180/1053 1431/3052/1065 +f 1396/2943/1017 1405/2942/1005 1407/3057/1008 +f 1393/2963/825 1400/2965/843 1403/2921/1003 +f 1398/3059/1082 1392/2940/1015 1375/2939/999 +f 1433/3061/1073 1430/3054/1072 1440/3056/991 +f 1444/3063/992 1450/3089/1088 1456/3064/1032 +f 1451/3066/1059 1454/3079/1012 1458/3067/1011 +f 1449/3069/1084 1452/3176/838 1442/2935/875 +f 1447/3070/1085 1444/3063/992 1457/3065/1031 +f 1447/3070/1085 1460/3071/1086 1461/3074/1087 +f 1460/3076/1086 1470/3163/1020 1462/2945/1019 +f 1448/3006/1052 1453/3005/1002 1454/3079/1012 +f 1452/3080/838 1455/2985/901 1459/2918/1000 +f 1476/2988/1034 1487/2987/1043 1480/3002/1051 +f 1425/3037/1074 1426/3179/1110 1429/3040/1077 +f 1419/3011/1055 1422/3122/1075 1412/3082/1057 +f 1388/3044/1049 1373/3165/998 1512/3083/1090 +f 1475/2993/855 1486/2992/833 1488/3012/1056 +f 1503/3032/1071 1500/2929/1009 1511/2931/996 +f 1404/3085/1064 1399/2964/1033 1397/2972/1037 +f 1447/3087/1085 1449/3069/1084 1439/3042/1078 +f 1491/3091/1092 1502/3028/1067 1504/3092/1069 +f 1487/3095/1043 1497/3181/1099 1492/3096/1094 +f 1414/3098/1095 1411/3020/826 1421/3019/845 +f 1506/3100/1097 1509/3146/1079 1512/3101/1090 +f 1497/3103/1099 1495/3152/1108 1499/3104/1100 +f 1510/2928/849 1389/2914/828 1376/3049/1080 +f 1489/3106/1101 1493/3093/1093 1504/3092/1069 +f 1435/2937/1014 1446/2936/1013 1448/3110/1052 +f 1429/3040/1077 1426/3143/1110 1436/3112/1091 +f 1383/3113/1103 1378/2953/1025 1394/2941/1016 +f 1395/3086/1023 1391/3158/1111 1401/3116/1058 +f 1432/3041/832 1442/2935/875 1435/2937/1014 +f 1420/3053/1041 1431/3052/1065 1427/3027/1066 +f 1398/3058/1082 1407/3057/1008 1402/2969/1035 +f 1466/2736/827 1462/2945/1019 1472/2991/1046 +f 1396/3114/1017 1398/3059/1082 1374/3060/1048 +f 1415/3121/1063 1412/3082/1057 1422/3122/1075 +f 1382/2994/1047 1376/3049/1080 1378/2953/1025 +f 1380/3127/1106 1379/3182/1024 1384/2973/1038 +f 1372/3130/1022 1379/3182/1024 1380/3127/1106 +f 1399/2964/1033 1410/3018/1062 1411/3020/826 +f 1431/3024/1065 1441/3178/1061 1437/3048/1060 +f 1409/3132/1042 1413/2999/1045 1402/2998/1035 +f 1411/3020/826 1414/3098/1095 1403/2921/1003 +f 1495/3133/1108 1497/3181/1099 1487/3095/1043 +f 1397/2972/1037 1393/2963/825 1377/2913/908 +f 1485/3135/977 1482/3166/1050 1493/3136/1093 +f 1414/3098/1095 1424/3099/1096 1417/3141/1081 +f 1415/3021/1063 1410/3018/1062 1399/2964/1033 +f 1433/3061/1073 1443/3062/993 1436/3112/1091 +f 1461/3074/1087 1455/2985/901 1452/3080/838 +f 1371/2947/1007 1390/2949/1021 1391/3144/1111 +f 1462/2945/1019 1466/2736/827 1455/2985/901 +f 1506/3107/1097 1501/3148/1098 1490/3145/1109 +f 1485/3135/977 1489/3137/1101 1490/3140/1109 +f 1486/2992/833 1483/3160/1113 1494/2956/1027 +f 1504/3030/1069 1508/3029/1068 1509/3146/1079 +f 1492/3149/1094 1503/3154/1071 1505/2954/1026 +f 1514/3150/1070 1380/3183/1106 1385/2912/997 +f 1497/3103/1099 1500/3105/1009 1503/3154/1071 +f 1443/2908/993 1444/2907/992 1447/3087/1085 +f 1491/3091/1092 1496/2955/852 1498/3157/829 +f 1465/2978/1010 1474/2977/979 1477/3120/978 +f 1406/2976/1039 1401/3116/1058 1391/3158/1111 +f 1505/2954/1026 1515/3151/1112 1510/2928/849 +f 1441/3017/1061 1438/3111/1054 1448/3110/1052 +f 1480/3097/1051 1492/3096/1094 1494/2956/1027 +f 1434/3117/1104 1428/3180/1053 1417/3051/1081 +f 1425/3123/1074 1418/3081/1089 1410/3018/1062 +f 1370/2910/995 1380/3183/1106 1514/3150/1070 +f 1421/3019/845 1432/3041/832 1434/3117/1104 +f 1370/3131/995 1386/2924/1006 1371/2926/1007 +f 1388/2996/1049 1374/2995/1048 1375/2917/999 +f 1376/3049/1080 1389/2914/828 1377/2913/908 +f 1457/2961/1031 1467/3177/1029 1470/3163/1020 +f 1488/3012/1056 1491/3091/1092 1493/3136/1093 diff --git a/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj b/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj new file mode 100644 index 000000000..321a3e384 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj @@ -0,0 +1,6312 @@ +# Blender v2.92.0 OBJ File: 'large_vehicle_door.blend' +# www.blender.org +o doorLeft +v 0.299220 0.487402 3.251414 +v 0.299220 5.590070 1.004025 +v 0.299220 5.128570 1.909768 +v 0.299220 4.409768 2.628571 +v 0.299220 3.503919 3.090124 +v 0.299220 2.496066 3.251015 +v 0.299220 5.679564 0.438986 +v 0.299220 0.487402 0.438985 +v 0.149610 5.900837 0.125000 +v 0.149610 0.054715 0.125000 +v 0.299220 0.054715 3.440433 +v 0.299220 2.511072 3.439998 +v 0.299220 3.563152 3.272047 +v 0.299220 4.522236 2.783369 +v 0.299220 5.283369 2.022236 +v 0.299220 5.772047 1.063152 +v 0.299220 5.900837 0.250000 +v 0.299220 0.054715 0.250000 +v 0.231315 0.487402 3.251414 +v 0.231315 2.496066 3.251015 +v 0.231315 3.503919 3.090124 +v 0.231315 4.409768 2.628571 +v 0.231315 5.128570 1.909768 +v 0.231315 5.590070 1.004025 +v 0.231315 5.679564 0.438986 +v 0.231315 0.487402 0.438985 +v 0.204275 1.917457 1.651271 +v 0.204275 2.047506 1.651271 +v 0.204275 1.917457 1.142414 +v 0.204275 2.047506 1.142414 +v 0.261126 1.933194 1.635535 +v 0.245389 1.917457 1.651271 +v 0.245389 2.047506 1.651271 +v 0.261126 2.031770 1.635535 +v 0.261126 1.933194 1.158151 +v 0.245389 1.917457 1.142414 +v 0.261126 2.031770 1.158151 +v 0.245389 2.047506 1.142414 +v 0.215124 3.126893 0.898361 +v 0.215124 3.628286 0.898361 +v 0.215124 3.126893 0.736489 +v 0.215124 3.628286 0.736489 +v 0.294289 3.126893 0.898361 +v 0.247374 3.628286 0.898361 +v 0.294289 3.126893 0.736489 +v 0.247374 3.628286 0.736489 +v 0.215124 3.447602 0.898361 +v 0.215124 3.447602 0.736489 +v 0.294289 3.447602 0.736489 +v 0.294289 3.447602 0.898361 +v 0.215124 3.126893 1.339800 +v 0.215124 3.628286 1.339800 +v 0.215124 3.126893 1.177929 +v 0.215124 3.628286 1.177929 +v 0.294289 3.126893 1.339800 +v 0.247374 3.628286 1.339800 +v 0.294289 3.126893 1.177929 +v 0.247374 3.628286 1.177929 +v 0.215124 3.447602 1.339800 +v 0.215124 3.447602 1.177929 +v 0.294289 3.447602 1.177929 +v 0.294289 3.447602 1.339800 +v 0.110842 1.775868 3.124604 +v 0.110842 2.305447 3.124604 +v 0.110842 1.775868 1.892389 +v 0.110842 2.305447 1.892389 +v 0.303721 1.835501 3.064971 +v 0.303721 2.245814 3.064971 +v 0.303721 1.835501 1.952022 +v 0.303721 2.245814 1.952022 +v 0.303721 2.305447 1.892389 +v 0.303721 1.775868 1.892389 +v 0.303721 1.775868 3.124604 +v 0.303721 2.305447 3.124604 +v 0.237602 2.245814 1.952022 +v 0.237602 1.835501 1.952022 +v 0.237602 1.835501 3.064971 +v 0.237602 2.245814 3.064971 +v 0.185097 0.938915 3.260309 +v 0.185097 1.140242 3.260309 +v 0.185097 0.938915 0.391829 +v 0.185097 1.140242 0.391829 +v 0.250002 0.938915 3.260309 +v 0.279439 0.968351 3.260309 +v 0.279439 1.110806 3.260309 +v 0.250002 1.140242 3.260309 +v 0.279439 0.968351 0.391829 +v 0.250002 0.938915 0.391829 +v 0.250002 1.140242 0.391829 +v 0.279439 1.110806 0.391829 +v 0.185097 1.623428 3.260309 +v 0.185097 1.824755 3.260309 +v 0.185097 1.623428 0.391829 +v 0.185097 1.824755 0.391829 +v 0.250002 1.623428 3.260309 +v 0.279439 1.652864 3.260309 +v 0.279439 1.795319 3.260309 +v 0.250002 1.824755 3.260309 +v 0.279439 1.652864 0.391829 +v 0.250002 1.623428 0.391829 +v 0.250002 1.824755 0.391829 +v 0.279439 1.795319 0.391829 +v 0.185097 2.307941 3.260309 +v 0.185097 2.509268 3.260309 +v 0.185097 2.307941 0.391829 +v 0.185097 2.509268 0.391829 +v 0.250002 2.307941 3.260309 +v 0.279439 2.337377 3.260309 +v 0.279439 2.479832 3.260309 +v 0.250002 2.509268 3.260309 +v 0.279439 2.337377 0.391829 +v 0.250002 2.307941 0.391829 +v 0.250002 2.509268 0.391829 +v 0.279439 2.479832 0.391829 +v 0.185097 2.992454 3.260309 +v 0.185097 3.193781 3.260309 +v 0.185097 2.992454 0.391829 +v 0.185097 3.193781 0.391829 +v 0.250002 2.992454 3.260309 +v 0.279439 3.021890 3.260309 +v 0.279439 3.164345 3.260309 +v 0.250002 3.193781 3.260309 +v 0.279439 3.021890 0.391829 +v 0.250002 2.992454 0.391829 +v 0.250002 3.193781 0.391829 +v 0.279439 3.164345 0.391829 +v 0.185097 3.676967 3.079826 +v 0.185097 3.878294 3.079826 +v 0.185097 3.676967 0.391829 +v 0.185097 3.878294 0.391829 +v 0.250002 3.676967 3.079826 +v 0.279439 3.706403 3.079826 +v 0.279439 3.848858 3.079826 +v 0.250002 3.878294 3.079826 +v 0.279439 3.706403 0.391829 +v 0.250002 3.676967 0.391829 +v 0.250002 3.878294 0.391829 +v 0.279439 3.848858 0.391829 +v 0.185097 4.361480 2.726382 +v 0.185097 4.562807 2.726382 +v 0.185097 4.361480 0.391829 +v 0.185097 4.562807 0.391829 +v 0.250002 4.361480 2.726382 +v 0.279439 4.390916 2.726382 +v 0.279439 4.533370 2.726382 +v 0.250002 4.562807 2.726382 +v 0.279439 4.390916 0.391829 +v 0.250002 4.361480 0.391829 +v 0.250002 4.562807 0.391829 +v 0.279439 4.533370 0.391829 +v 0.185097 5.045993 2.044939 +v 0.185097 5.247320 2.044939 +v 0.185097 5.045993 0.391829 +v 0.185097 5.247320 0.391829 +v 0.250002 5.045993 2.044939 +v 0.279439 5.075429 2.044939 +v 0.279439 5.217884 2.044939 +v 0.250002 5.247320 2.044939 +v 0.279439 5.075429 0.391829 +v 0.250002 5.045993 0.391829 +v 0.250002 5.247320 0.391829 +v 0.279439 5.217884 0.391829 +v 0.315590 0.554430 1.179831 +v 0.315590 0.554430 0.490474 +v 0.381347 0.554430 1.179831 +v 0.381347 0.554430 0.490474 +v 0.427845 0.600927 1.179831 +v 0.427845 0.600927 0.490474 +v 0.427845 0.666685 1.179831 +v 0.427845 0.666685 0.490474 +v 0.381347 0.713183 1.179831 +v 0.381347 0.713183 0.490474 +v 0.315590 0.713183 1.179831 +v 0.315590 0.713183 0.490474 +v 0.269092 0.666685 1.179831 +v 0.269092 0.666685 0.490474 +v 0.269092 0.600927 1.179831 +v 0.269092 0.600927 0.490474 +v 0.212011 0.554430 1.179831 +v 0.212011 0.554430 0.490474 +v 0.212011 0.713183 0.490474 +v 0.212011 0.713183 1.179831 +v 0.212011 0.666685 1.179831 +v 0.212011 0.666685 0.490474 +v 0.212011 0.600927 1.179831 +v 0.212011 0.600927 0.490474 +v 0.323809 0.574274 3.311587 +v 0.373128 0.574274 3.311587 +v 0.408001 0.609147 3.311587 +v 0.408001 0.658465 3.311587 +v 0.373128 0.693339 3.311587 +v 0.323809 0.693339 3.311587 +v 0.288936 0.658465 3.311587 +v 0.288936 0.609147 3.311587 +v 0.373127 0.574274 0.452471 +v 0.408000 0.609147 0.452471 +v 0.323808 0.574274 0.452471 +v 0.408000 0.658465 0.452471 +v 0.373127 0.693339 0.452471 +v 0.323808 0.693339 0.452471 +v 0.288935 0.658465 0.452471 +v 0.288935 0.609147 0.452471 +v 0.299220 0.790051 0.250000 +v 0.299220 5.165501 0.250000 +v 0.299220 1.519293 0.250000 +v 0.299220 2.248535 0.250000 +v 0.299220 2.977776 0.250000 +v 0.299220 3.707018 0.250000 +v 0.299220 4.436259 0.250000 +v 0.149610 5.165501 0.125000 +v 0.149610 0.790051 0.125000 +v 0.149610 4.436259 0.125000 +v 0.149610 3.707017 0.125000 +v 0.149610 2.977776 0.125000 +v 0.149610 2.248534 0.125000 +v 0.149610 1.519293 0.125000 +v 0.149610 0.054715 -0.125000 +v 0.299220 0.054715 -0.000000 +v 0.149610 0.790051 -0.125000 +v 0.149610 1.519293 -0.125000 +v 0.149610 2.248534 -0.125000 +v 0.149610 2.977776 -0.125000 +v 0.149610 3.707017 -0.125000 +v 0.149610 4.436259 -0.125000 +v 0.149610 5.165501 -0.125000 +v 0.299220 0.790051 -0.000000 +v 0.299220 1.519293 -0.000000 +v 0.299220 2.248535 -0.000000 +v 0.299220 2.977776 -0.000000 +v 0.299220 3.707018 -0.000000 +v 0.299220 4.436259 -0.000000 +v 0.299220 5.165501 -0.000000 +v -0.299220 0.487402 3.251414 +v -0.299220 5.590070 1.004025 +v -0.299220 5.128570 1.909768 +v -0.299220 4.409768 2.628571 +v -0.299220 3.503919 3.090124 +v -0.299220 2.496066 3.251015 +v -0.299220 5.679564 0.438986 +v -0.299220 0.487402 0.438985 +v -0.149610 5.900837 0.125000 +v -0.149610 0.054715 0.125000 +v -0.299220 0.054715 3.440433 +v -0.299220 2.511072 3.439998 +v -0.299220 3.563152 3.272047 +v -0.299220 4.522236 2.783369 +v -0.299220 5.283369 2.022236 +v -0.299220 5.772047 1.063152 +v -0.299220 5.900837 0.250000 +v -0.299220 0.054715 0.250000 +v -0.231315 0.487402 3.251414 +v -0.231315 2.496066 3.251015 +v -0.231315 3.503919 3.090124 +v -0.231315 4.409768 2.628571 +v -0.231315 5.128570 1.909768 +v -0.231315 5.590070 1.004025 +v -0.231315 5.679564 0.438986 +v -0.231315 0.487402 0.438985 +v -0.204275 1.917457 1.651271 +v -0.204275 2.047506 1.651271 +v -0.204275 1.917457 1.142414 +v -0.204275 2.047506 1.142414 +v -0.261126 1.933194 1.635535 +v -0.245389 1.917457 1.651271 +v -0.245389 2.047506 1.651271 +v -0.261126 2.031770 1.635535 +v -0.261126 1.933194 1.158151 +v -0.245389 1.917457 1.142414 +v -0.261126 2.031770 1.158151 +v -0.245389 2.047506 1.142414 +v -0.215124 3.126893 0.898361 +v -0.215124 3.628286 0.898361 +v -0.215124 3.126893 0.736489 +v -0.215124 3.628286 0.736489 +v -0.294289 3.126893 0.898361 +v -0.247374 3.628286 0.898361 +v -0.294289 3.126893 0.736489 +v -0.247374 3.628286 0.736489 +v -0.215124 3.447602 0.898361 +v -0.215124 3.447602 0.736489 +v -0.294289 3.447602 0.736489 +v -0.294289 3.447602 0.898361 +v -0.215124 3.126893 1.339800 +v -0.215124 3.628286 1.339800 +v -0.215124 3.126893 1.177929 +v -0.215124 3.628286 1.177929 +v -0.294289 3.126893 1.339800 +v -0.247374 3.628286 1.339800 +v -0.294289 3.126893 1.177929 +v -0.247374 3.628286 1.177929 +v -0.215124 3.447602 1.339800 +v -0.215124 3.447602 1.177929 +v -0.294289 3.447602 1.177929 +v -0.294289 3.447602 1.339800 +v -0.110842 1.775868 3.124604 +v -0.110842 2.305447 3.124604 +v -0.110842 1.775868 1.892389 +v -0.110842 2.305447 1.892389 +v -0.303721 1.835501 3.064971 +v -0.303721 2.245814 3.064971 +v -0.303721 1.835501 1.952022 +v -0.303721 2.245814 1.952022 +v -0.303721 2.305447 1.892389 +v -0.303721 1.775868 1.892389 +v -0.303721 1.775868 3.124604 +v -0.303721 2.305447 3.124604 +v -0.237602 2.245814 1.952022 +v -0.237602 1.835501 1.952022 +v -0.237602 1.835501 3.064971 +v -0.237602 2.245814 3.064971 +v -0.185097 0.938915 3.260309 +v -0.185097 1.140242 3.260309 +v -0.185097 0.938915 0.391829 +v -0.185097 1.140242 0.391829 +v -0.250002 0.938915 3.260309 +v -0.279439 0.968351 3.260309 +v -0.279439 1.110806 3.260309 +v -0.250002 1.140242 3.260309 +v -0.279439 0.968351 0.391829 +v -0.250002 0.938915 0.391829 +v -0.250002 1.140242 0.391829 +v -0.279439 1.110806 0.391829 +v -0.185097 1.623428 3.260309 +v -0.185097 1.824755 3.260309 +v -0.185097 1.623428 0.391829 +v -0.185097 1.824755 0.391829 +v -0.250002 1.623428 3.260309 +v -0.279439 1.652864 3.260309 +v -0.279439 1.795319 3.260309 +v -0.250002 1.824755 3.260309 +v -0.279439 1.652864 0.391829 +v -0.250002 1.623428 0.391829 +v -0.250002 1.824755 0.391829 +v -0.279439 1.795319 0.391829 +v -0.185097 2.307941 3.260309 +v -0.185097 2.509268 3.260309 +v -0.185097 2.307941 0.391829 +v -0.185097 2.509268 0.391829 +v -0.250002 2.307941 3.260309 +v -0.279439 2.337377 3.260309 +v -0.279439 2.479832 3.260309 +v -0.250002 2.509268 3.260309 +v -0.279439 2.337377 0.391829 +v -0.250002 2.307941 0.391829 +v -0.250002 2.509268 0.391829 +v -0.279439 2.479832 0.391829 +v -0.185097 2.992454 3.260309 +v -0.185097 3.193781 3.260309 +v -0.185097 2.992454 0.391829 +v -0.185097 3.193781 0.391829 +v -0.250002 2.992454 3.260309 +v -0.279439 3.021890 3.260309 +v -0.279439 3.164345 3.260309 +v -0.250002 3.193781 3.260309 +v -0.279439 3.021890 0.391829 +v -0.250002 2.992454 0.391829 +v -0.250002 3.193781 0.391829 +v -0.279439 3.164345 0.391829 +v -0.185097 3.676967 3.079826 +v -0.185097 3.878294 3.079826 +v -0.185097 3.676967 0.391829 +v -0.185097 3.878294 0.391829 +v -0.250002 3.676967 3.079826 +v -0.279439 3.706403 3.079826 +v -0.279439 3.848858 3.079826 +v -0.250002 3.878294 3.079826 +v -0.279439 3.706403 0.391829 +v -0.250002 3.676967 0.391829 +v -0.250002 3.878294 0.391829 +v -0.279439 3.848858 0.391829 +v -0.185097 4.361480 2.726382 +v -0.185097 4.562807 2.726382 +v -0.185097 4.361480 0.391829 +v -0.185097 4.562807 0.391829 +v -0.250002 4.361480 2.726382 +v -0.279439 4.390916 2.726382 +v -0.279439 4.533370 2.726382 +v -0.250002 4.562807 2.726382 +v -0.279439 4.390916 0.391829 +v -0.250002 4.361480 0.391829 +v -0.250002 4.562807 0.391829 +v -0.279439 4.533370 0.391829 +v -0.185097 5.045993 2.044939 +v -0.185097 5.247320 2.044939 +v -0.185097 5.045993 0.391829 +v -0.185097 5.247320 0.391829 +v -0.250002 5.045993 2.044939 +v -0.279439 5.075429 2.044939 +v -0.279439 5.217884 2.044939 +v -0.250002 5.247320 2.044939 +v -0.279439 5.075429 0.391829 +v -0.250002 5.045993 0.391829 +v -0.250002 5.247320 0.391829 +v -0.279439 5.217884 0.391829 +v -0.315590 0.554430 1.179831 +v -0.315590 0.554430 0.490474 +v -0.381347 0.554430 1.179831 +v -0.381347 0.554430 0.490474 +v -0.427845 0.600927 1.179831 +v -0.427845 0.600927 0.490474 +v -0.427845 0.666685 1.179831 +v -0.427845 0.666685 0.490474 +v -0.381347 0.713183 1.179831 +v -0.381347 0.713183 0.490474 +v -0.315590 0.713183 1.179831 +v -0.315590 0.713183 0.490474 +v -0.269092 0.666685 1.179831 +v -0.269092 0.666685 0.490474 +v -0.269092 0.600927 1.179831 +v -0.269092 0.600927 0.490474 +v -0.212011 0.554430 1.179831 +v -0.212011 0.554430 0.490474 +v -0.212011 0.713183 0.490474 +v -0.212011 0.713183 1.179831 +v -0.212011 0.666685 1.179831 +v -0.212011 0.666685 0.490474 +v -0.212011 0.600927 1.179831 +v -0.212011 0.600927 0.490474 +v -0.323809 0.574274 3.311587 +v -0.373128 0.574274 3.311587 +v -0.408001 0.609147 3.311587 +v -0.408001 0.658465 3.311587 +v -0.373128 0.693339 3.311587 +v -0.323809 0.693339 3.311587 +v -0.288936 0.658465 3.311587 +v -0.288936 0.609147 3.311587 +v -0.373127 0.574274 0.452471 +v -0.408000 0.609147 0.452471 +v -0.323808 0.574274 0.452471 +v -0.408000 0.658465 0.452471 +v -0.373127 0.693339 0.452471 +v -0.323808 0.693339 0.452471 +v -0.288935 0.658465 0.452471 +v -0.288935 0.609147 0.452471 +v -0.299220 0.790051 0.250000 +v -0.299220 5.165501 0.250000 +v -0.299220 1.519293 0.250000 +v -0.299220 2.248535 0.250000 +v -0.299220 2.977776 0.250000 +v -0.299220 3.707018 0.250000 +v -0.299220 4.436259 0.250000 +v -0.149610 5.165501 0.125000 +v -0.149610 0.790051 0.125000 +v -0.149610 4.436259 0.125000 +v -0.149610 3.707017 0.125000 +v -0.149610 2.977776 0.125000 +v -0.149610 2.248534 0.125000 +v -0.149610 1.519293 0.125000 +v -0.149610 0.054715 -0.125000 +v -0.299220 0.054715 -0.000000 +v -0.149610 0.790051 -0.125000 +v -0.149610 1.519293 -0.125000 +v -0.149610 2.248534 -0.125000 +v -0.149610 2.977776 -0.125000 +v -0.149610 3.707017 -0.125000 +v -0.149610 4.436259 -0.125000 +v -0.149610 5.165501 -0.125000 +v -0.299220 0.790051 -0.000000 +v -0.299220 1.519293 -0.000000 +v -0.299220 2.248535 -0.000000 +v -0.299220 2.977776 -0.000000 +v -0.299220 3.707018 -0.000000 +v -0.299220 4.436259 -0.000000 +v -0.299220 5.165501 -0.000000 +v 0.000000 0.054715 3.440433 +v 0.000000 2.511072 3.439998 +v 0.000000 3.563152 3.272047 +v 0.000000 4.522236 2.783369 +v 0.000000 5.283369 2.022236 +v 0.000000 5.772047 1.063152 +v 0.000000 5.900837 0.250000 +v 0.000000 0.054715 0.250000 +v 0.000000 5.900837 0.125000 +v 0.000000 0.054715 0.125000 +v 0.000000 0.790051 0.125000 +v 0.000000 1.519293 0.125000 +v 0.000000 2.248534 0.125000 +v 0.000000 2.977776 0.125000 +v 0.000000 3.707017 0.125000 +v 0.000000 4.436259 0.125000 +v 0.000000 5.165501 0.125000 +v 0.000000 0.054715 -0.125000 +v 0.000000 0.790051 -0.125000 +v 0.000000 1.519293 -0.125000 +v 0.000000 2.248534 -0.125000 +v 0.000000 2.977776 -0.125000 +v 0.000000 3.707017 -0.125000 +v 0.000000 4.436259 -0.125000 +v 0.000000 5.165501 -0.125000 +v -0.236978 1.966246 2.101461 +v -0.236978 1.868288 2.101461 +v -0.271611 1.966246 2.115807 +v -0.271611 1.868288 2.115807 +v -0.285957 1.966246 2.150440 +v -0.285957 1.868288 2.150440 +v -0.271611 1.966246 2.185074 +v -0.271611 1.868288 2.185074 +v -0.236978 1.966246 2.199419 +v -0.236978 1.868289 2.199419 +v -0.261013 1.935379 2.738888 +v -0.243801 1.942508 2.738888 +v -0.243801 1.942508 2.168687 +v -0.261013 1.935379 2.168687 +v -0.268143 1.918167 2.168687 +v -0.261013 1.900955 2.168687 +v -0.243801 1.893826 2.168687 +v -0.226590 1.900955 2.168687 +v -0.219460 1.918167 2.168687 +v -0.226590 1.935379 2.168687 +v -0.268142 1.918167 2.738888 +v -0.261013 1.900955 2.738888 +v -0.243801 1.893826 2.738888 +v -0.226589 1.900955 2.738888 +v -0.219460 1.918167 2.738888 +v -0.226589 1.935379 2.738888 +v -0.243801 1.952222 2.738888 +v -0.267882 1.942248 2.738888 +v -0.277856 1.918167 2.738888 +v -0.243801 1.952222 2.956852 +v -0.267881 1.942248 2.956852 +v -0.267882 1.894087 2.738888 +v -0.277856 1.918167 2.956852 +v -0.243801 1.884113 2.738888 +v -0.267881 1.894087 2.956852 +v -0.219721 1.894087 2.738888 +v -0.243801 1.884113 2.956852 +v -0.209747 1.918167 2.738888 +v -0.219721 1.894087 2.956852 +v -0.219721 1.942248 2.738888 +v -0.209747 1.918167 2.956852 +v -0.219721 1.942248 2.956852 +v -0.234903 1.996067 2.602893 +v -0.234903 2.177792 2.602893 +v -0.234903 1.996067 2.957389 +v -0.234903 2.177792 2.957389 +v -0.248363 1.996858 2.604437 +v -0.248363 2.177001 2.604437 +v -0.248363 1.996858 2.955846 +v -0.248363 2.177001 2.955846 +v -0.239626 2.025193 2.631219 +v -0.239626 2.077102 2.631219 +v -0.239626 2.025193 2.683128 +v -0.239626 2.077102 2.683128 +v -0.264276 2.026531 2.632558 +v -0.264276 2.075763 2.632558 +v -0.264276 2.026531 2.681789 +v -0.264276 2.075763 2.681789 +v -0.239626 2.025193 2.713007 +v -0.239626 2.077102 2.713007 +v -0.239626 2.025193 2.764916 +v -0.239626 2.077102 2.764916 +v -0.264276 2.026531 2.714346 +v -0.264276 2.075763 2.714346 +v -0.264276 2.026531 2.763577 +v -0.264276 2.075763 2.763577 +v -0.239626 2.025193 2.794795 +v -0.239626 2.077102 2.794795 +v -0.239626 2.025193 2.846704 +v -0.239626 2.077102 2.846704 +v -0.264276 2.026531 2.796134 +v -0.264276 2.075763 2.796134 +v -0.264276 2.026531 2.845365 +v -0.264276 2.075763 2.845365 +v -0.239626 2.025193 2.876583 +v -0.239626 2.077102 2.876583 +v -0.239626 2.025193 2.928492 +v -0.239626 2.077102 2.928492 +v -0.264276 2.026531 2.877922 +v -0.264276 2.075763 2.877922 +v -0.264276 2.026531 2.927153 +v -0.264276 2.075763 2.927153 +v -0.257845 2.139290 2.641807 +v -0.231994 2.143135 2.641807 +v -0.215737 2.122669 2.641807 +v -0.225334 2.098358 2.641807 +v -0.251185 2.094513 2.641807 +v -0.254999 2.096865 2.641807 +v -0.267210 2.110033 2.641807 +v -0.267441 2.114980 2.641807 +v -0.267210 2.110033 2.673316 +v -0.267441 2.114980 2.673316 +v -0.268826 2.092032 2.641807 +v -0.268826 2.092032 2.673316 +v -0.274138 2.100425 2.673316 +v -0.274138 2.100425 2.641807 +v -0.254999 2.096865 2.673316 +v -0.231994 2.143135 2.673316 +v -0.257845 2.139290 2.673316 +v -0.251185 2.094513 2.673316 +v -0.225334 2.098358 2.673316 +v -0.215737 2.122669 2.673316 +v -0.231185 2.137330 2.805390 +v -0.214479 2.117230 2.805390 +v -0.223533 2.092711 2.805390 +v -0.249294 2.088294 2.805390 +v -0.265999 2.108394 2.805390 +v -0.265969 2.112875 2.805390 +v -0.261052 2.130147 2.805390 +v -0.256944 2.132912 2.805390 +v -0.261052 2.130147 2.836899 +v -0.256944 2.132912 2.836899 +v -0.277276 2.122184 2.805390 +v -0.277276 2.122184 2.836899 +v -0.272861 2.131080 2.836899 +v -0.272861 2.131080 2.805390 +v -0.265969 2.112875 2.836899 +v -0.214479 2.117230 2.836899 +v -0.231185 2.137330 2.836899 +v -0.265999 2.108394 2.836899 +v -0.249294 2.088294 2.836899 +v -0.223533 2.092711 2.836899 +v -0.222124 2.128488 2.723598 +v -0.215961 2.103088 2.723598 +v -0.234877 2.085051 2.723598 +v -0.259955 2.092414 2.723598 +v -0.266117 2.117813 2.723598 +v -0.264119 2.121824 2.723598 +v -0.252107 2.135173 2.723598 +v -0.247201 2.135850 2.723598 +v -0.252107 2.135173 2.755107 +v -0.247201 2.135850 2.755107 +v -0.270180 2.135158 2.723598 +v -0.270180 2.135158 2.755107 +v -0.262301 2.141205 2.755107 +v -0.262301 2.141205 2.723598 +v -0.264119 2.121824 2.755107 +v -0.215961 2.103088 2.755107 +v -0.222124 2.128488 2.755107 +v -0.266117 2.117813 2.755107 +v -0.259955 2.092414 2.755107 +v -0.234877 2.085051 2.755107 +v -0.241062 2.141376 2.887181 +v -0.218098 2.128895 2.887181 +v -0.217426 2.102767 2.887181 +v -0.239718 2.089121 2.887181 +v -0.262680 2.101603 2.887181 +v -0.264312 2.105776 2.887181 +v -0.266144 2.123641 2.887181 +v -0.263352 2.127731 2.887181 +v -0.266143 2.123641 2.918690 +v -0.263352 2.127731 2.918690 +v -0.278264 2.110234 2.887181 +v -0.278264 2.110234 2.918690 +v -0.277458 2.120133 2.918690 +v -0.277458 2.120133 2.887181 +v -0.264312 2.105776 2.918690 +v -0.218098 2.128895 2.918690 +v -0.241062 2.141376 2.918690 +v -0.262680 2.101603 2.918690 +v -0.239718 2.089121 2.918690 +v -0.217426 2.102767 2.918690 +v -0.266144 2.123641 2.887181 +v -0.263352 2.127731 2.887181 +v -0.266143 2.123641 2.918690 +v -0.263352 2.127731 2.918690 +vt 0.114995 0.927786 +vt 0.122324 0.928335 +vt 0.115027 0.928335 +vt 0.115027 0.942571 +vt 0.122324 0.942571 +vt 0.114995 0.943119 +vt 0.114481 0.928272 +vt 0.114481 0.942633 +vt 0.122871 0.928272 +vt 0.977830 0.045536 +vt 0.979878 0.044536 +vt 0.979932 0.045536 +vt 0.977884 0.044536 +vt 0.979878 0.042542 +vt 0.977884 0.042542 +vt 0.979932 0.041542 +vt 0.980878 0.044591 +vt 0.980878 0.042488 +vt 0.976884 0.044591 +vt 0.980878 0.062002 +vt 0.979878 0.059953 +vt 0.980878 0.059899 +vt 0.979878 0.061948 +vt 0.977884 0.059953 +vt 0.977884 0.061948 +vt 0.976884 0.059899 +vt 0.977829 0.058953 +vt 0.979932 0.058953 +vt 0.979932 0.062948 +vt 0.979932 0.076365 +vt 0.977884 0.077365 +vt 0.977829 0.076365 +vt 0.979878 0.077365 +vt 0.977884 0.079359 +vt 0.979878 0.079359 +vt 0.977829 0.080359 +vt 0.976884 0.079414 +vt 0.976884 0.077311 +vt 0.980878 0.079414 +vt 0.976884 0.096825 +vt 0.977884 0.094776 +vt 0.977884 0.096771 +vt 0.979878 0.096771 +vt 0.979878 0.094777 +vt 0.980878 0.096825 +vt 0.979932 0.097771 +vt 0.977829 0.097771 +vt 0.977830 0.093776 +vt 0.122356 0.927786 +vt 0.122356 0.943119 +vt 0.122871 0.942633 +vt 0.977830 0.041542 +vt 0.976884 0.042488 +vt 0.976884 0.062002 +vt 0.977829 0.062948 +vt 0.979932 0.080359 +vt 0.980878 0.077311 +vt 0.976884 0.094722 +vt 0.980878 0.094722 +vt 0.979932 0.093776 +vt 0.888428 0.294606 +vt 0.900550 0.394114 +vt 0.888429 0.394114 +vt 0.900550 0.437274 +vt 0.888429 0.437274 +vt 0.900550 0.480879 +vt 0.888429 0.480879 +vt 0.900550 0.524484 +vt 0.888429 0.524484 +vt 0.900550 0.568090 +vt 0.888429 0.568090 +vt 0.801760 0.796084 +vt 0.813882 0.666839 +vt 0.813882 0.796084 +vt 0.897588 0.747418 +vt 0.900339 0.861350 +vt 0.897588 0.861350 +vt 0.899184 0.935956 +vt 0.928726 0.925829 +vt 0.928726 0.935956 +vt 0.888429 0.601441 +vt 0.894489 0.606505 +vt 0.888429 0.606505 +vt 0.476557 0.585175 +vt 0.394577 0.577535 +vt 0.494085 0.577517 +vt 0.354357 0.591708 +vt 0.395185 0.585191 +vt 0.317661 0.610406 +vt 0.351957 0.584339 +vt 0.282271 0.634969 +vt 0.313105 0.604135 +vt 0.269847 0.676217 +vt 0.288542 0.639525 +vt 0.266221 0.699107 +vt 0.262475 0.673821 +vt 0.494085 0.706763 +vt 0.476557 0.699107 +vt 0.516594 0.667355 +vt 0.510076 0.626526 +vt 0.623992 0.545155 +vt 0.933712 0.486222 +vt 0.930761 0.461662 +vt 0.933677 0.461658 +vt 0.933835 0.573519 +vt 0.930857 0.529875 +vt 0.933773 0.529871 +vt 0.933959 0.660995 +vt 0.930981 0.617175 +vt 0.933896 0.617171 +vt 0.931165 0.294610 +vt 0.934080 0.294606 +vt 0.930796 0.486226 +vt 0.930919 0.573523 +vt 0.934080 0.747247 +vt 0.931043 0.660999 +vt 0.115673 0.891561 +vt 0.120941 0.889896 +vt 0.120941 0.891562 +vt 0.113743 0.912440 +vt 0.115409 0.891825 +vt 0.115409 0.912440 +vt 0.116310 0.911802 +vt 0.120303 0.892463 +vt 0.120303 0.911802 +vt 0.115673 0.914369 +vt 0.120941 0.912703 +vt 0.120941 0.914369 +vt 0.115673 0.912703 +vt 0.121205 0.912440 +vt 0.121205 0.891825 +vt 0.116310 0.892463 +vt 0.122871 0.891825 +vt 0.122871 0.912440 +vt 0.517321 0.983616 +vt 0.530057 0.979918 +vt 0.530177 0.983265 +vt 0.517124 0.992977 +vt 0.509923 0.990179 +vt 0.517491 0.989800 +vt 0.509916 0.983328 +vt 0.516908 0.980489 +vt 0.530177 0.990089 +vt 0.533514 0.983265 +vt 0.533514 0.990089 +vt 0.508558 0.990180 +vt 0.530099 0.993292 +vt 0.862038 0.983177 +vt 0.874774 0.979479 +vt 0.874894 0.982826 +vt 0.861840 0.992538 +vt 0.854639 0.989740 +vt 0.862208 0.989361 +vt 0.854633 0.982888 +vt 0.861624 0.980050 +vt 0.874894 0.989649 +vt 0.878231 0.982826 +vt 0.878231 0.989649 +vt 0.853274 0.989741 +vt 0.874816 0.992852 +vt 0.201844 0.802196 +vt 0.194030 0.780742 +vt 0.201844 0.780742 +vt 0.473107 0.953861 +vt 0.489729 0.951182 +vt 0.489729 0.953861 +vt 0.144113 0.802196 +vt 0.136299 0.780742 +vt 0.144113 0.780742 +vt 0.144113 0.772929 +vt 0.194030 0.772929 +vt 0.194030 0.810009 +vt 0.194030 0.802196 +vt 0.191614 0.783158 +vt 0.191614 0.799780 +vt 0.146529 0.799780 +vt 0.146529 0.783158 +vt 0.489729 0.906096 +vt 0.473107 0.951182 +vt 0.473107 0.906096 +vt 0.470428 0.906096 +vt 0.470428 0.951182 +vt 0.492407 0.951182 +vt 0.492407 0.906096 +vt 0.489729 0.903418 +vt 0.473107 0.903418 +vt 0.006709 0.937024 +vt 0.009278 0.823485 +vt 0.009278 0.937024 +vt 0.011259 0.937019 +vt 0.016898 0.823479 +vt 0.016898 0.937019 +vt 0.018880 0.937014 +vt 0.018880 0.823474 +vt 0.021449 0.823474 +vt 0.021449 0.937014 +vt 0.192614 0.936977 +vt 0.195183 0.823437 +vt 0.195183 0.936977 +vt 0.197165 0.936971 +vt 0.202803 0.823432 +vt 0.202803 0.936971 +vt 0.204785 0.936966 +vt 0.204785 0.823426 +vt 0.207354 0.823426 +vt 0.207354 0.936966 +vt 0.811263 0.938243 +vt 0.813832 0.824703 +vt 0.813832 0.938243 +vt 0.815814 0.938237 +vt 0.821453 0.824698 +vt 0.821453 0.938237 +vt 0.823434 0.938232 +vt 0.823434 0.824692 +vt 0.826003 0.824692 +vt 0.826003 0.938232 +vt 0.034866 0.937024 +vt 0.037435 0.823485 +vt 0.037435 0.937024 +vt 0.039417 0.937019 +vt 0.045055 0.823479 +vt 0.045055 0.937019 +vt 0.047037 0.937014 +vt 0.047037 0.823474 +vt 0.049606 0.823474 +vt 0.049606 0.937014 +vt 0.932252 0.241137 +vt 0.934844 0.133830 +vt 0.934844 0.241137 +vt 0.936717 0.241134 +vt 0.942404 0.133826 +vt 0.942403 0.241134 +vt 0.944276 0.241130 +vt 0.944277 0.133823 +vt 0.946868 0.133823 +vt 0.946868 0.241130 +vt 0.100157 0.851974 +vt 0.097527 0.946547 +vt 0.097528 0.851974 +vt 0.095841 0.851974 +vt 0.090070 0.946546 +vt 0.090070 0.851974 +vt 0.088384 0.851974 +vt 0.088384 0.946546 +vt 0.085754 0.946546 +vt 0.085755 0.851974 +vt 0.136299 0.950395 +vt 0.203267 0.953024 +vt 0.136299 0.953024 +vt 0.136299 0.954710 +vt 0.203267 0.960481 +vt 0.136299 0.960481 +vt 0.136299 0.962168 +vt 0.203267 0.962168 +vt 0.203267 0.964797 +vt 0.136299 0.964797 +vt 0.301908 0.982691 +vt 0.329834 0.980027 +vt 0.329834 0.982690 +vt 0.301908 0.980027 +vt 0.329834 0.977363 +vt 0.301908 0.977363 +vt 0.329834 0.974699 +vt 0.301908 0.974699 +vt 0.329834 0.972035 +vt 0.301908 0.972035 +vt 0.329834 0.969371 +vt 0.970662 0.802390 +vt 0.973326 0.800078 +vt 0.973326 0.802390 +vt 0.968778 0.826786 +vt 0.968778 0.824122 +vt 0.975209 0.826786 +vt 0.975209 0.824122 +vt 0.977522 0.822238 +vt 0.977522 0.824122 +vt 0.968778 0.800078 +vt 0.970662 0.800078 +vt 0.970662 0.808821 +vt 0.968778 0.804274 +vt 0.874581 0.121851 +vt 0.876591 0.006711 +vt 0.876591 0.121851 +vt 0.968778 0.906729 +vt 0.970191 0.903318 +vt 0.973601 0.904731 +vt 0.977522 0.828669 +vt 0.973326 0.828669 +vt 0.301908 0.969371 +vt 0.329834 0.965175 +vt 0.301908 0.986886 +vt 0.975209 0.800078 +vt 0.975209 0.804274 +vt 0.977522 0.826786 +vt 0.886640 0.006709 +vt 0.888649 0.121848 +vt 0.886640 0.121849 +vt 0.882620 0.006710 +vt 0.884630 0.121849 +vt 0.882620 0.121850 +vt 0.878601 0.006711 +vt 0.880610 0.121850 +vt 0.878601 0.121850 +vt 0.888649 0.006709 +vt 0.890659 0.121848 +vt 0.884630 0.006710 +vt 0.880610 0.006711 +vt 0.711814 0.977254 +vt 0.717875 0.972190 +vt 0.717875 0.982318 +vt 0.405212 0.706763 +vt 0.375671 0.706763 +vt 0.978906 0.626265 +vt 0.968778 0.620204 +vt 0.978906 0.620204 +vt 0.973842 0.632325 +vt 0.968778 0.626265 +vt 0.978906 0.701585 +vt 0.968778 0.695524 +vt 0.978906 0.695524 +vt 0.085754 0.959964 +vt 0.093652 0.989505 +vt 0.085754 0.989505 +vt 0.973842 0.707645 +vt 0.968778 0.701585 +vt 0.968182 0.245444 +vt 0.960285 0.274985 +vt 0.960285 0.245444 +vt 0.947497 0.992681 +vt 0.977039 0.984783 +vt 0.977039 0.992681 +vt 0.645374 0.953709 +vt 0.674916 0.943582 +vt 0.674916 0.953709 +vt 0.975414 0.951347 +vt 0.967516 0.921558 +vt 0.975414 0.921558 +vt 0.384226 0.941462 +vt 0.414014 0.933565 +vt 0.414014 0.941462 +vt 0.899184 0.925829 +vt 0.928726 0.917931 +vt 0.688333 0.943582 +vt 0.717875 0.935684 +vt 0.717875 0.943582 +vt 0.645374 0.943582 +vt 0.674916 0.935684 +vt 0.263318 0.975303 +vt 0.257257 0.970239 +vt 0.263318 0.965175 +vt 0.269379 0.965175 +vt 0.269379 0.975303 +vt 0.361433 0.970908 +vt 0.367494 0.965844 +vt 0.367494 0.975971 +vt 0.384226 0.951590 +vt 0.414014 0.951590 +vt 0.688333 0.953709 +vt 0.717875 0.953709 +vt 0.651435 0.977254 +vt 0.645374 0.972190 +vt 0.651435 0.967126 +vt 0.657496 0.967127 +vt 0.657496 0.977254 +vt 0.807821 0.801148 +vt 0.801760 0.806211 +vt 0.978906 0.651803 +vt 0.973842 0.645742 +vt 0.983970 0.645742 +vt 0.645374 0.929623 +vt 0.645374 0.935684 +vt 0.688333 0.929623 +vt 0.688333 0.935684 +vt 0.899184 0.911870 +vt 0.899184 0.917931 +vt 0.384226 0.933565 +vt 0.414014 0.927504 +vt 0.978906 0.657864 +vt 0.968778 0.651803 +vt 0.947497 0.978723 +vt 0.947497 0.984783 +vt 0.355372 0.970908 +vt 0.361433 0.960780 +vt 0.974243 0.245444 +vt 0.968182 0.274985 +vt 0.705753 0.977254 +vt 0.711814 0.967126 +vt 0.099713 0.959964 +vt 0.093652 0.959964 +vt 0.813882 0.801148 +vt 0.807821 0.811275 +vt 0.967516 0.951347 +vt 0.961456 0.921558 +vt 0.900550 0.601441 +vt 0.876307 0.394114 +vt 0.876307 0.437274 +vt 0.876307 0.480879 +vt 0.876307 0.524484 +vt 0.876307 0.568090 +vt 0.826003 0.796084 +vt 0.622483 0.966501 +vt 0.508551 0.963750 +vt 0.622483 0.963750 +vt 0.928726 0.897912 +vt 0.899184 0.887784 +vt 0.928726 0.887784 +vt 0.882368 0.606505 +vt 0.876307 0.601441 +vt 0.511219 0.226008 +vt 0.503579 0.144028 +vt 0.511235 0.144636 +vt 0.517753 0.103808 +vt 0.510383 0.101409 +vt 0.536450 0.067112 +vt 0.530179 0.062556 +vt 0.565569 0.037993 +vt 0.561013 0.031722 +vt 0.602261 0.019298 +vt 0.599866 0.011926 +vt 0.625151 0.015672 +vt 0.632807 0.243536 +vt 0.625151 0.226008 +vt 0.279578 0.779761 +vt 0.260883 0.743070 +vt 0.257257 0.720180 +vt 0.913967 0.580195 +vt 0.916923 0.555635 +vt 0.916883 0.580199 +vt 0.914077 0.511982 +vt 0.917064 0.468338 +vt 0.916993 0.511987 +vt 0.914218 0.424679 +vt 0.917205 0.380859 +vt 0.917134 0.424684 +vt 0.917344 0.747253 +vt 0.914007 0.555630 +vt 0.914148 0.468333 +vt 0.914289 0.380855 +vt 0.917344 0.294611 +vt 0.065127 0.861396 +vt 0.070396 0.863061 +vt 0.065127 0.863061 +vt 0.070660 0.863325 +vt 0.072325 0.883939 +vt 0.070660 0.883939 +vt 0.065765 0.863963 +vt 0.069758 0.883302 +vt 0.065765 0.883302 +vt 0.065127 0.884203 +vt 0.070396 0.885869 +vt 0.065127 0.885869 +vt 0.070396 0.884203 +vt 0.064863 0.883939 +vt 0.064863 0.863325 +vt 0.069758 0.863963 +vt 0.063198 0.863325 +vt 0.063198 0.883939 +vt 0.568438 0.993292 +vt 0.555701 0.989594 +vt 0.568557 0.989945 +vt 0.555504 0.980233 +vt 0.548303 0.983031 +vt 0.548041 0.981699 +vt 0.555872 0.983409 +vt 0.555288 0.992721 +vt 0.548296 0.989882 +vt 0.571895 0.989945 +vt 0.568557 0.983121 +vt 0.571895 0.983121 +vt 0.546938 0.983030 +vt 0.568480 0.979918 +vt 0.491677 0.993292 +vt 0.478941 0.989594 +vt 0.491797 0.989945 +vt 0.478743 0.980233 +vt 0.471542 0.983031 +vt 0.471281 0.981699 +vt 0.479111 0.983409 +vt 0.478527 0.992721 +vt 0.471536 0.989882 +vt 0.495134 0.989945 +vt 0.491797 0.983121 +vt 0.495134 0.983121 +vt 0.470177 0.983030 +vt 0.491719 0.979918 +vt 0.567791 0.850757 +vt 0.575605 0.829304 +vt 0.575605 0.850757 +vt 0.241162 0.906203 +vt 0.224540 0.903524 +vt 0.241162 0.903524 +vt 0.510060 0.850757 +vt 0.517874 0.829304 +vt 0.517874 0.850757 +vt 0.517874 0.858571 +vt 0.567791 0.858571 +vt 0.567791 0.821490 +vt 0.567791 0.829304 +vt 0.565375 0.848342 +vt 0.565375 0.831720 +vt 0.520290 0.848342 +vt 0.520290 0.831720 +vt 0.224540 0.906203 +vt 0.241162 0.951289 +vt 0.224540 0.951289 +vt 0.221861 0.951289 +vt 0.221861 0.906203 +vt 0.243840 0.906203 +vt 0.243840 0.951289 +vt 0.241162 0.953967 +vt 0.224540 0.953967 +vt 0.176628 0.823438 +vt 0.179197 0.936978 +vt 0.176628 0.936978 +vt 0.169007 0.823432 +vt 0.174646 0.936972 +vt 0.169008 0.936972 +vt 0.167026 0.936966 +vt 0.167026 0.823426 +vt 0.164457 0.823426 +vt 0.164457 0.936966 +vt 0.257269 0.850098 +vt 0.370809 0.847529 +vt 0.370809 0.850098 +vt 0.257263 0.857718 +vt 0.370803 0.852080 +vt 0.370803 0.857718 +vt 0.370797 0.859700 +vt 0.257257 0.859700 +vt 0.257257 0.862269 +vt 0.370797 0.862269 +vt 0.784658 0.821502 +vt 0.787227 0.935042 +vt 0.784658 0.935042 +vt 0.777038 0.821496 +vt 0.782677 0.935036 +vt 0.777038 0.935036 +vt 0.775056 0.935030 +vt 0.775056 0.821490 +vt 0.772487 0.821490 +vt 0.772487 0.935030 +vt 0.148471 0.823438 +vt 0.151040 0.936978 +vt 0.148471 0.936978 +vt 0.140850 0.823432 +vt 0.146489 0.936972 +vt 0.140850 0.936972 +vt 0.138869 0.936966 +vt 0.138869 0.823426 +vt 0.136299 0.823426 +vt 0.136300 0.936966 +vt 0.944276 0.006716 +vt 0.946868 0.114023 +vt 0.944277 0.114023 +vt 0.936717 0.006712 +vt 0.942404 0.114020 +vt 0.936717 0.114020 +vt 0.934844 0.114016 +vt 0.934844 0.006709 +vt 0.932252 0.006709 +vt 0.932253 0.114016 +vt 0.645374 0.880347 +vt 0.739946 0.877717 +vt 0.739946 0.880347 +vt 0.645374 0.887804 +vt 0.739946 0.882033 +vt 0.739946 0.887804 +vt 0.739946 0.889491 +vt 0.645374 0.889491 +vt 0.645374 0.892120 +vt 0.739946 0.892120 +vt 0.811263 0.954289 +vt 0.878231 0.951660 +vt 0.878231 0.954289 +vt 0.811263 0.961746 +vt 0.878231 0.955975 +vt 0.878231 0.961746 +vt 0.878231 0.963433 +vt 0.811263 0.963433 +vt 0.811263 0.966062 +vt 0.878231 0.966062 +vt 0.427431 0.979920 +vt 0.455358 0.982584 +vt 0.427431 0.982584 +vt 0.427431 0.977257 +vt 0.455358 0.979920 +vt 0.427431 0.974593 +vt 0.455358 0.977256 +vt 0.427431 0.971929 +vt 0.455358 0.974593 +vt 0.427431 0.969265 +vt 0.455358 0.971929 +vt 0.977522 0.843970 +vt 0.975209 0.846634 +vt 0.975209 0.843970 +vt 0.968778 0.784777 +vt 0.970662 0.780230 +vt 0.975209 0.782113 +vt 0.975209 0.784777 +vt 0.977522 0.786661 +vt 0.973326 0.786661 +vt 0.977522 0.848518 +vt 0.973326 0.848518 +vt 0.968778 0.846634 +vt 0.876591 0.135269 +vt 0.874581 0.250408 +vt 0.874581 0.135268 +vt 0.973602 0.865345 +vt 0.970191 0.866758 +vt 0.968778 0.863347 +vt 0.977522 0.780230 +vt 0.973326 0.780230 +vt 0.427431 0.965069 +vt 0.455358 0.969265 +vt 0.455358 0.986780 +vt 0.977522 0.842086 +vt 0.973326 0.842086 +vt 0.977522 0.782113 +vt 0.888649 0.135271 +vt 0.886640 0.250410 +vt 0.886640 0.135271 +vt 0.884630 0.135270 +vt 0.882620 0.250410 +vt 0.882620 0.135270 +vt 0.880610 0.135270 +vt 0.878601 0.250409 +vt 0.878601 0.135269 +vt 0.890659 0.135272 +vt 0.888649 0.250411 +vt 0.884630 0.250410 +vt 0.876591 0.250408 +vt 0.880610 0.250409 +vt 0.693632 0.972190 +vt 0.699693 0.977254 +vt 0.693632 0.982318 +vt 0.632807 0.213747 +vt 0.978906 0.614143 +vt 0.973842 0.608082 +vt 0.983970 0.608082 +vt 0.978906 0.689463 +vt 0.113671 0.959964 +vt 0.105773 0.989505 +vt 0.105773 0.959964 +vt 0.973842 0.683402 +vt 0.983970 0.683402 +vt 0.988201 0.274985 +vt 0.980304 0.245444 +vt 0.988201 0.245444 +vt 0.947497 0.964764 +vt 0.977039 0.972662 +vt 0.947497 0.972662 +vt 0.674916 0.915665 +vt 0.645374 0.905537 +vt 0.674916 0.905537 +vt 0.955395 0.921558 +vt 0.947497 0.951347 +vt 0.947497 0.921558 +vt 0.414014 0.921443 +vt 0.384226 0.913545 +vt 0.414014 0.913545 +vt 0.899184 0.897912 +vt 0.928726 0.905810 +vt 0.899184 0.905810 +vt 0.688333 0.915665 +vt 0.717875 0.923563 +vt 0.688333 0.923563 +vt 0.645374 0.915665 +vt 0.674916 0.923563 +vt 0.645374 0.923563 +vt 0.275440 0.975303 +vt 0.281500 0.970239 +vt 0.281500 0.980367 +vt 0.343251 0.965844 +vt 0.349312 0.970908 +vt 0.343251 0.975971 +vt 0.384226 0.903418 +vt 0.414014 0.903418 +vt 0.717875 0.915665 +vt 0.688333 0.905537 +vt 0.717875 0.905537 +vt 0.663556 0.977254 +vt 0.669617 0.972190 +vt 0.669617 0.982318 +vt 0.826003 0.806211 +vt 0.819943 0.801148 +vt 0.973842 0.669985 +vt 0.978906 0.663925 +vt 0.983970 0.669985 +vt 0.384226 0.921443 +vt 0.968778 0.663925 +vt 0.349312 0.960780 +vt 0.980304 0.274985 +vt 0.699693 0.967126 +vt 0.819943 0.811275 +vt 0.955395 0.951347 +vt 0.876307 0.937367 +vt 0.877826 0.933398 +vt 0.877826 0.937367 +vt 0.879344 0.937367 +vt 0.879344 0.933398 +vt 0.880863 0.937367 +vt 0.882381 0.933398 +vt 0.882381 0.937367 +vt 0.840001 0.746144 +vt 0.840001 0.743338 +vt 0.841404 0.742757 +vt 0.841404 0.764111 +vt 0.840001 0.763530 +vt 0.839420 0.762127 +vt 0.968778 0.725591 +vt 0.991877 0.724836 +vt 0.991877 0.725590 +vt 0.978536 0.159457 +vt 0.979433 0.159840 +vt 0.979069 0.159990 +vt 0.968778 0.724836 +vt 0.991877 0.724081 +vt 0.968778 0.724081 +vt 0.991877 0.723327 +vt 0.977247 0.160745 +vt 0.977630 0.161642 +vt 0.976884 0.160895 +vt 0.968778 0.723326 +vt 0.991877 0.722572 +vt 0.977630 0.159093 +vt 0.978686 0.159093 +vt 0.968778 0.722572 +vt 0.991877 0.721817 +vt 0.979069 0.160745 +vt 0.979433 0.160895 +vt 0.968778 0.721817 +vt 0.991877 0.721062 +vt 0.968778 0.727100 +vt 0.991877 0.726345 +vt 0.991877 0.727100 +vt 0.968778 0.726345 +vt 0.737627 0.942995 +vt 0.736571 0.934165 +vt 0.737627 0.934165 +vt 0.736571 0.942995 +vt 0.735515 0.934165 +vt 0.735515 0.942995 +vt 0.734459 0.934165 +vt 0.734459 0.942995 +vt 0.733404 0.934165 +vt 0.732348 0.942995 +vt 0.732348 0.934165 +vt 0.731292 0.934165 +vt 0.738683 0.942995 +vt 0.738683 0.934165 +vt 0.739739 0.942995 +vt 0.739739 0.934165 +vt 0.977247 0.159990 +vt 0.976884 0.159840 +vt 0.978686 0.161642 +vt 0.978536 0.161279 +vt 0.977630 0.145676 +vt 0.976884 0.143873 +vt 0.978686 0.143127 +vt 0.977781 0.159457 +vt 0.977781 0.161279 +vt 0.987094 0.328112 +vt 0.986494 0.328523 +vt 0.986294 0.328503 +vt 0.733610 0.979860 +vt 0.733409 0.978584 +vt 0.733610 0.978584 +vt 0.734492 0.979860 +vt 0.734090 0.978584 +vt 0.734492 0.978584 +vt 0.986494 0.342610 +vt 0.987205 0.342438 +vt 0.987094 0.343021 +vt 0.987211 0.344218 +vt 0.986294 0.344748 +vt 0.738443 0.978584 +vt 0.737385 0.979860 +vt 0.737385 0.978584 +vt 0.733409 0.979860 +vt 0.732351 0.978584 +vt 0.736326 0.979860 +vt 0.735267 0.978584 +vt 0.736326 0.978584 +vt 0.735086 0.979860 +vt 0.735086 0.978584 +vt 0.732351 0.979860 +vt 0.731292 0.978584 +vt 0.734090 0.979860 +vt 0.987205 0.328695 +vt 0.986837 0.328858 +vt 0.623574 0.981645 +vt 0.622974 0.982056 +vt 0.622774 0.982036 +vt 0.839420 0.689726 +vt 0.840697 0.689525 +vt 0.840697 0.689726 +vt 0.839420 0.690608 +vt 0.840697 0.690206 +vt 0.840697 0.690608 +vt 0.840539 0.920381 +vt 0.841251 0.920209 +vt 0.841140 0.920792 +vt 0.841256 0.921989 +vt 0.840340 0.922519 +vt 0.839420 0.694559 +vt 0.840697 0.693501 +vt 0.840697 0.694559 +vt 0.839420 0.689525 +vt 0.840697 0.688467 +vt 0.839420 0.692442 +vt 0.840697 0.691383 +vt 0.840697 0.692442 +vt 0.839420 0.691202 +vt 0.840697 0.691202 +vt 0.839420 0.687408 +vt 0.840697 0.687408 +vt 0.839420 0.693501 +vt 0.839420 0.691383 +vt 0.839420 0.690206 +vt 0.623685 0.982228 +vt 0.623317 0.982391 +vt 0.841137 0.905883 +vt 0.840537 0.906294 +vt 0.840337 0.906274 +vt 0.839420 0.669157 +vt 0.840697 0.668957 +vt 0.840697 0.669157 +vt 0.840697 0.670040 +vt 0.839420 0.669637 +vt 0.840697 0.669637 +vt 0.986494 0.294941 +vt 0.987205 0.294769 +vt 0.987094 0.295352 +vt 0.987211 0.296549 +vt 0.986294 0.297079 +vt 0.839420 0.673991 +vt 0.840697 0.672932 +vt 0.840697 0.673991 +vt 0.839420 0.668957 +vt 0.840697 0.667898 +vt 0.839420 0.671873 +vt 0.840697 0.670815 +vt 0.840697 0.671873 +vt 0.839420 0.670633 +vt 0.840697 0.670633 +vt 0.839420 0.667898 +vt 0.840697 0.666839 +vt 0.839420 0.670815 +vt 0.841249 0.906466 +vt 0.840881 0.906629 +vt 0.987094 0.312223 +vt 0.986494 0.312634 +vt 0.986294 0.312613 +vt 0.628006 0.949880 +vt 0.627604 0.948603 +vt 0.628006 0.948603 +vt 0.978000 0.186892 +vt 0.978712 0.186720 +vt 0.978601 0.187303 +vt 0.978718 0.188500 +vt 0.977801 0.189030 +vt 0.631957 0.949880 +vt 0.630898 0.948603 +vt 0.631957 0.948603 +vt 0.626923 0.949880 +vt 0.625864 0.948603 +vt 0.626923 0.948603 +vt 0.629840 0.949880 +vt 0.628781 0.948603 +vt 0.629840 0.948603 +vt 0.628599 0.948603 +vt 0.625864 0.949880 +vt 0.624806 0.948603 +vt 0.630898 0.949880 +vt 0.628781 0.949880 +vt 0.627124 0.948603 +vt 0.627604 0.949880 +vt 0.627124 0.949880 +vt 0.987205 0.312806 +vt 0.986837 0.312968 +vt 0.627124 0.949880 +vt 0.626923 0.948603 +vt 0.627124 0.948603 +vt 0.900550 0.294606 +vt 0.801760 0.666839 +vt 0.900339 0.747418 +vt 0.257257 0.706763 +vt 0.510060 0.545155 +vt 0.623992 0.755490 +vt 0.564411 0.733169 +vt 0.601102 0.751865 +vt 0.535292 0.704051 +vt 0.931165 0.747251 +vt 0.115673 0.889896 +vt 0.113743 0.891825 +vt 0.509661 0.991511 +vt 0.509641 0.982031 +vt 0.508551 0.983329 +vt 0.854378 0.991072 +vt 0.854357 0.981591 +vt 0.853268 0.982890 +vt 0.136299 0.802196 +vt 0.144113 0.810009 +vt 0.006709 0.823485 +vt 0.011260 0.823479 +vt 0.192614 0.823437 +vt 0.197165 0.823432 +vt 0.811263 0.824703 +vt 0.815814 0.824698 +vt 0.034866 0.823485 +vt 0.039417 0.823479 +vt 0.932253 0.133830 +vt 0.936717 0.133826 +vt 0.100157 0.946547 +vt 0.095841 0.946547 +vt 0.203267 0.950395 +vt 0.203267 0.954710 +vt 0.970662 0.822238 +vt 0.973326 0.822238 +vt 0.970662 0.828669 +vt 0.975209 0.806938 +vt 0.973326 0.808821 +vt 0.968778 0.806938 +vt 0.874581 0.006712 +vt 0.972189 0.908141 +vt 0.970191 0.908141 +vt 0.968778 0.904731 +vt 0.972189 0.903318 +vt 0.973601 0.906729 +vt 0.301908 0.965175 +vt 0.329834 0.986886 +vt 0.890659 0.006709 +vt 0.287046 0.706763 +vt 0.316588 0.706763 +vt 0.464296 0.706763 +vt 0.434754 0.706763 +vt 0.346130 0.706763 +vt 0.983970 0.632325 +vt 0.983970 0.707645 +vt 0.257257 0.980367 +vt 0.645374 0.982318 +vt 0.674916 0.929623 +vt 0.717875 0.929623 +vt 0.928726 0.911870 +vt 0.384226 0.927504 +vt 0.968778 0.657864 +vt 0.977039 0.978723 +vt 0.355372 0.960780 +vt 0.974243 0.274985 +vt 0.705753 0.967126 +vt 0.099713 0.989505 +vt 0.813882 0.811275 +vt 0.961456 0.951347 +vt 0.876307 0.294606 +vt 0.826003 0.666839 +vt 0.508551 0.966501 +vt 0.503562 0.243536 +vt 0.632807 0.006709 +vt 0.467593 0.720180 +vt 0.467593 0.834112 +vt 0.386221 0.834096 +vt 0.345393 0.827578 +vt 0.308697 0.808880 +vt 0.914428 0.747248 +vt 0.914429 0.294606 +vt 0.070396 0.861396 +vt 0.072325 0.863325 +vt 0.548021 0.991179 +vt 0.546931 0.989881 +vt 0.471260 0.991179 +vt 0.470171 0.989881 +vt 0.510060 0.829304 +vt 0.517874 0.821490 +vt 0.179197 0.823438 +vt 0.174646 0.823432 +vt 0.257269 0.847529 +vt 0.257263 0.852080 +vt 0.787227 0.821502 +vt 0.782677 0.821496 +vt 0.151040 0.823438 +vt 0.146489 0.823432 +vt 0.946868 0.006716 +vt 0.942403 0.006712 +vt 0.645374 0.877718 +vt 0.645374 0.882034 +vt 0.811263 0.951660 +vt 0.811263 0.955975 +vt 0.977522 0.846634 +vt 0.970662 0.786661 +vt 0.968778 0.782113 +vt 0.977522 0.784777 +vt 0.970662 0.842086 +vt 0.970662 0.848518 +vt 0.968778 0.843970 +vt 0.970191 0.861935 +vt 0.972189 0.861935 +vt 0.973602 0.863347 +vt 0.972189 0.866758 +vt 0.968778 0.865345 +vt 0.455358 0.965069 +vt 0.427431 0.986780 +vt 0.890659 0.250411 +vt 0.632807 0.125122 +vt 0.632807 0.036497 +vt 0.632807 0.066039 +vt 0.632807 0.095581 +vt 0.632807 0.154663 +vt 0.632807 0.184205 +vt 0.968778 0.614143 +vt 0.968778 0.689463 +vt 0.113671 0.989505 +vt 0.977039 0.964764 +vt 0.275440 0.965175 +vt 0.663556 0.967127 +vt 0.876307 0.933398 +vt 0.880863 0.933398 +vt 0.841404 0.746726 +vt 0.839420 0.744741 +vt 0.840001 0.760724 +vt 0.841404 0.760143 +vt 0.968778 0.721062 +vt 0.733404 0.942995 +vt 0.731292 0.942995 +vt 0.976884 0.144929 +vt 0.977630 0.143127 +vt 0.979433 0.143873 +vt 0.979433 0.144929 +vt 0.978686 0.145676 +vt 0.985377 0.327974 +vt 0.985377 0.326915 +vt 0.986294 0.326385 +vt 0.987211 0.326915 +vt 0.987211 0.327974 +vt 0.986837 0.342275 +vt 0.985377 0.344218 +vt 0.985377 0.343159 +vt 0.986294 0.342630 +vt 0.987211 0.343160 +vt 0.738443 0.979860 +vt 0.735267 0.979860 +vt 0.731292 0.979860 +vt 0.621857 0.981507 +vt 0.621857 0.980448 +vt 0.622774 0.979918 +vt 0.623691 0.980448 +vt 0.623691 0.981506 +vt 0.840883 0.920046 +vt 0.839423 0.921989 +vt 0.839423 0.920931 +vt 0.840340 0.920401 +vt 0.841256 0.920931 +vt 0.839420 0.688467 +vt 0.839420 0.905745 +vt 0.839420 0.904686 +vt 0.840337 0.904156 +vt 0.841254 0.904686 +vt 0.841254 0.905745 +vt 0.839420 0.670040 +vt 0.986837 0.294606 +vt 0.985377 0.296549 +vt 0.985377 0.295491 +vt 0.986294 0.294961 +vt 0.987211 0.295491 +vt 0.839420 0.672932 +vt 0.839420 0.666839 +vt 0.985377 0.312084 +vt 0.985377 0.311025 +vt 0.986294 0.310496 +vt 0.987211 0.311025 +vt 0.987211 0.312084 +vt 0.978344 0.186557 +vt 0.976884 0.188500 +vt 0.976884 0.187442 +vt 0.977801 0.186912 +vt 0.978718 0.187442 +vt 0.628599 0.949880 +vt 0.624806 0.949880 +vt 0.626923 0.949880 +vn -0.1139 0.0000 0.9935 +vn -1.0000 0.0000 0.0000 +vn -0.1139 -0.0000 -0.9935 +vn -0.0587 -0.9983 0.0000 +vn -0.0587 0.9983 0.0000 +vn -0.0542 0.0000 0.9985 +vn -0.0542 -0.0000 -0.9985 +vn -0.0542 -0.9985 0.0000 +vn -0.0542 0.9985 0.0000 +vn -0.0543 0.0000 -0.9985 +vn 0.0000 0.0002 1.0000 +vn 0.0000 0.0792 0.9969 +vn 0.0000 0.3096 0.9509 +vn 0.0000 0.5878 0.8090 +vn 0.0000 0.8090 0.5878 +vn 0.0000 0.9511 0.3090 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9969 0.0785 +vn 0.0000 -0.9511 -0.3090 +vn 0.0000 -0.9877 -0.1564 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.8090 -0.5878 +vn 0.0000 -0.0792 -0.9969 +vn 0.0000 -0.3096 -0.9509 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.0002 -1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.9679 0.2513 0.0000 +vn 0.9919 0.1267 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.6412 0.0000 -0.7674 +vn 0.0000 0.9941 0.1087 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.9919 0.1267 0.0000 +vn -0.9679 0.2513 0.0000 +vn -0.6412 0.0000 -0.7674 +vn -0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9585 0.2850 0.0000 +vn -0.9865 0.1639 0.0000 +vn -0.8450 -0.5348 0.0000 +vn 0.7830 0.6220 -0.0000 +vn -0.9302 0.3672 0.0000 +vn 0.1471 -0.9891 -0.0000 +vn 0.3299 -0.9440 0.0000 +vn -0.1471 0.9891 0.0000 +vn 0.9302 -0.3672 0.0000 +vn -0.5247 -0.8513 0.0000 +vn -0.8112 0.5848 0.0000 +vn -0.2540 0.9672 0.0000 +vn -0.3720 0.9282 0.0000 +vn -0.8957 0.4446 0.0000 +vn 0.9381 -0.3464 0.0000 +vn -0.1690 0.9856 0.0000 +vn -0.7691 -0.6392 0.0000 +vn -0.6356 -0.7720 -0.0000 +vn 0.7690 0.6392 -0.0000 +vn 0.1690 -0.9856 0.0000 +vn -1.0000 0.0066 0.0000 +vn 0.0788 0.9969 0.0000 +vn 0.0001 -0.0000 -1.0000 +vn 0.1973 0.9803 0.0000 +vn 0.0742 0.9972 0.0000 +vn -0.6089 0.7932 0.0000 +vn -0.6089 0.7933 0.0000 +vn -0.0001 0.0000 1.0000 +vn 0.6901 -0.7237 0.0000 +vn 0.2817 0.9595 0.0000 +vn -0.9718 -0.2358 0.0000 +vn -0.9104 -0.4138 0.0000 +vn 0.9718 0.2358 -0.0000 +vn -0.2817 -0.9595 -0.0000 +vn -0.8951 0.4458 0.0000 +vn -0.8952 0.4458 0.0000 +vn 0.5092 0.8606 -0.0000 +vn -0.9967 0.0811 0.0000 +vn 0.9997 0.0257 -0.0000 +vn -0.5221 0.8529 0.0000 +vn -0.4776 -0.8786 0.0000 +vn -0.3044 -0.9525 -0.0000 +vn 0.4776 0.8786 -0.0000 +vn 0.5221 -0.8529 0.0000 +vn -0.9313 -0.3642 -0.0000 +vn -0.9313 -0.3643 -0.0000 +vn -0.2961 0.9552 0.0000 +vn -0.8260 0.5637 0.0000 +vn 0.0002 0.0000 1.0000 +s off +f 534/1/1 539/2/1 538/3/1 +f 539/2/2 536/4/2 538/3/2 +f 537/5/3 532/6/3 536/4/3 +f 534/7/4 536/4/4 532/8/4 +f 535/9/5 537/5/5 539/2/5 +f 543/10/6 546/11/6 542/12/6 +f 547/13/2 544/14/2 546/11/2 +f 545/15/7 540/16/7 544/14/7 +f 542/17/8 544/14/8 540/18/8 +f 543/19/9 545/15/9 547/13/9 +f 551/20/6 554/21/6 550/22/6 +f 555/23/2 552/24/2 554/21/2 +f 553/25/10 548/26/10 552/24/10 +f 554/21/8 548/27/8 550/28/8 +f 551/29/9 553/25/9 555/23/9 +f 559/30/6 562/31/6 558/32/6 +f 563/33/2 560/34/2 562/31/2 +f 561/35/7 556/36/7 560/34/7 +f 562/31/8 556/37/8 558/38/8 +f 563/33/9 557/39/9 561/35/9 +f 566/40/6 571/41/6 570/42/6 +f 571/41/2 568/43/2 570/42/2 +f 569/44/10 564/45/10 568/43/10 +f 570/42/8 564/46/8 566/47/8 +f 567/48/9 569/44/9 571/41/9 +f 534/1/1 535/49/1 539/2/1 +f 539/2/2 537/5/2 536/4/2 +f 537/5/3 533/50/3 532/6/3 +f 534/7/4 538/3/4 536/4/4 +f 535/9/5 533/51/5 537/5/5 +f 543/10/6 547/13/6 546/11/6 +f 547/13/2 545/15/2 544/14/2 +f 545/15/7 541/52/7 540/16/7 +f 542/17/8 546/11/8 544/14/8 +f 543/19/9 541/53/9 545/15/9 +f 551/20/6 555/23/6 554/21/6 +f 555/23/2 553/25/2 552/24/2 +f 553/25/7 549/54/7 548/26/7 +f 554/21/8 552/24/8 548/27/8 +f 551/29/9 549/55/9 553/25/9 +f 559/30/6 563/33/6 562/31/6 +f 563/33/2 561/35/2 560/34/2 +f 561/35/7 557/56/7 556/36/7 +f 562/31/8 560/34/8 556/37/8 +f 563/33/9 559/57/9 557/39/9 +f 566/40/6 567/58/6 571/41/6 +f 571/41/2 569/44/2 568/43/2 +f 569/44/7 565/59/7 564/45/7 +f 570/42/8 568/43/8 564/46/8 +f 567/48/9 565/60/9 569/44/9 +s 1 +f 465/61/11 12/62/12 466/63/12 +f 466/63/12 13/64/13 467/65/13 +f 467/65/13 14/66/14 468/67/14 +f 468/67/14 15/68/15 469/69/15 +f 469/69/15 16/70/16 470/71/16 +f 18/72/17 465/73/17 472/74/17 +f 8/75/18 19/76/18 1/77/18 +f 205/78/19 228/79/19 206/80/19 +f 471/81/20 9/82/18 473/83/18 +f 1/84/19 12/85/19 11/86/19 +f 5/87/19 12/85/19 6/88/19 +f 4/89/19 13/90/19 5/87/19 +f 4/89/19 15/91/19 14/92/19 +f 2/93/19 15/91/19 3/94/19 +f 7/95/19 16/96/19 2/93/19 +f 1/84/19 18/97/19 8/98/19 +f 21/99/19 20/100/19 26/101/19 +f 2/102/21 25/103/22 7/104/22 +f 4/105/23 23/106/24 3/107/24 +f 6/108/25 21/109/26 5/110/26 +f 7/104/27 26/111/27 8/112/27 +f 3/107/24 24/113/21 2/102/21 +f 5/110/26 22/114/23 4/105/23 +f 1/115/28 20/116/25 6/108/25 +f 33/117/27 27/118/27 32/119/27 +f 30/120/18 33/121/18 38/122/18 +f 37/123/19 31/124/19 35/125/19 +f 30/126/29 36/127/29 29/128/29 +f 35/125/30 38/129/30 37/123/30 +f 36/130/31 31/124/31 32/131/31 +f 33/121/32 37/123/32 38/122/32 +f 32/119/33 34/132/33 33/117/33 +f 36/130/17 27/133/17 29/134/17 +f 50/135/27 39/136/27 43/137/27 +f 48/138/29 46/139/29 49/140/29 +f 46/139/34 50/135/35 49/140/35 +f 44/141/27 47/142/27 50/135/27 +f 45/143/17 39/144/17 41/145/17 +f 42/146/18 44/141/18 46/139/18 +f 49/140/35 43/137/19 45/143/19 +f 48/138/29 45/143/29 41/147/29 +f 62/148/27 51/149/27 55/150/27 +f 60/151/29 58/152/29 61/153/29 +f 58/152/34 62/148/35 61/153/35 +f 56/154/27 59/155/27 62/148/27 +f 57/156/17 51/157/17 53/158/17 +f 54/159/18 56/154/18 58/152/18 +f 61/153/35 55/150/19 57/156/19 +f 60/151/29 57/156/29 53/160/29 +f 66/161/29 72/162/29 65/163/29 +f 67/164/29 78/165/29 68/166/29 +f 74/167/27 63/168/27 73/169/27 +f 72/162/17 63/170/17 65/171/17 +f 66/172/18 74/167/18 71/173/18 +f 69/174/19 71/173/19 70/175/19 +f 69/174/19 73/169/19 72/162/19 +f 68/176/19 71/173/19 74/167/19 +f 68/176/19 73/169/19 67/177/19 +f 75/178/19 77/179/19 76/180/19 +f 69/181/18 77/179/18 67/182/18 +f 68/183/17 75/178/17 70/184/17 +f 70/185/27 76/180/27 69/186/27 +f 82/187/18 86/188/18 89/189/18 +f 90/190/19 84/191/19 87/192/19 +f 88/193/31 84/191/31 83/194/31 +f 86/188/32 90/190/32 89/189/32 +f 88/193/17 79/195/17 81/196/17 +f 94/197/18 98/198/18 101/199/18 +f 102/200/19 96/201/19 99/202/19 +f 100/203/31 96/201/31 95/204/31 +f 98/198/32 102/200/32 101/199/32 +f 100/203/17 91/205/17 93/206/17 +f 106/207/18 110/208/18 113/209/18 +f 114/210/19 108/211/19 111/212/19 +f 112/213/31 108/211/31 107/214/31 +f 110/208/32 114/210/32 113/209/32 +f 112/213/17 103/215/17 105/216/17 +f 118/217/18 122/218/18 125/219/18 +f 126/220/19 120/221/19 123/222/19 +f 124/223/31 120/221/31 119/224/31 +f 122/218/32 126/220/32 125/219/32 +f 124/223/17 115/225/17 117/226/17 +f 130/227/18 134/228/18 137/229/18 +f 138/230/19 132/231/19 135/232/19 +f 136/233/31 132/231/31 131/234/31 +f 134/228/32 138/230/32 137/229/32 +f 136/233/17 127/235/17 129/236/17 +f 142/237/18 146/238/18 149/239/18 +f 150/240/19 144/241/19 147/242/19 +f 148/243/31 144/241/31 143/244/31 +f 146/238/32 150/240/32 149/239/32 +f 148/243/17 139/245/17 141/246/17 +f 154/247/18 158/248/18 161/249/18 +f 162/250/19 156/251/19 159/252/19 +f 160/253/31 156/251/31 155/254/31 +f 158/248/32 162/250/32 161/249/32 +f 160/253/17 151/255/17 153/256/17 +f 164/257/17 165/258/36 163/259/17 +f 166/260/36 167/261/37 165/258/36 +f 168/262/37 169/263/38 167/261/37 +f 170/264/38 171/265/39 169/263/38 +f 172/266/39 173/267/18 171/265/39 +f 175/268/27 185/269/27 177/270/27 +f 170/271/29 168/272/29 176/273/29 +f 178/274/29 180/275/29 186/276/29 +f 175/268/27 182/277/27 183/278/27 +f 169/279/27 173/280/27 177/270/27 +f 194/281/40 197/282/41 187/283/41 +f 202/284/29 200/285/29 198/286/29 +f 176/273/29 181/287/29 174/288/29 +f 174/289/18 182/290/18 173/267/18 +f 163/259/17 180/291/17 164/257/17 +f 177/270/27 179/292/27 163/293/27 +f 178/274/29 184/294/29 176/273/29 +f 200/295/42 193/296/43 192/297/42 +f 198/298/38 191/299/39 190/300/38 +f 195/301/36 189/302/37 188/303/36 +f 201/304/43 194/305/40 193/296/43 +f 199/306/39 192/297/42 191/299/39 +f 197/282/41 188/303/36 187/283/41 +f 196/307/37 190/300/38 189/302/37 +f 216/308/17 227/309/17 205/310/17 +f 206/311/19 207/312/19 8/98/19 +f 211/313/18 483/314/18 475/315/18 +f 211/313/18 226/316/18 219/317/18 +f 210/318/18 489/319/18 481/320/18 +f 203/321/44 216/322/44 205/323/44 +f 210/318/18 232/324/18 225/325/18 +f 215/326/44 207/327/44 206/328/44 +f 208/329/44 212/330/44 209/331/44 +f 209/332/19 232/333/19 204/334/19 +f 204/335/44 9/336/44 17/337/44 +f 218/338/44 219/339/44 226/340/44 +f 227/341/44 221/342/44 228/79/44 +f 229/343/44 223/344/44 230/345/44 +f 231/346/44 225/347/44 232/333/44 +f 215/348/18 228/349/18 221/350/18 +f 215/348/18 485/351/18 477/352/18 +f 214/353/17 229/354/17 207/355/17 +f 18/356/19 226/340/19 203/357/19 +f 207/358/19 230/345/19 208/359/19 +f 213/360/18 230/361/18 223/362/18 +f 213/360/18 487/363/18 479/364/18 +f 10/365/17 218/366/17 18/72/17 +f 212/367/17 231/368/17 209/369/17 +f 488/370/29 225/347/29 224/371/29 +f 486/372/29 223/344/29 222/373/29 +f 484/374/29 221/342/29 220/375/29 +f 217/376/29 483/377/29 219/339/29 +f 480/378/17 224/379/17 212/367/17 +f 479/380/29 212/330/29 213/381/29 +f 478/382/17 222/383/17 214/353/17 +f 477/384/29 214/385/29 215/326/29 +f 476/386/17 220/387/17 216/308/17 +f 475/388/29 216/322/29 211/389/29 +f 474/390/17 217/391/17 10/365/17 +f 210/392/29 473/393/29 9/336/29 +f 472/74/17 10/365/17 18/72/17 +f 471/81/20 16/70/16 17/394/45 +f 244/395/12 465/61/11 466/63/12 +f 245/396/13 466/63/12 467/65/13 +f 246/397/14 467/65/13 468/67/14 +f 247/398/15 468/67/14 469/69/15 +f 248/399/16 469/69/15 470/71/16 +f 465/73/17 250/400/17 472/74/17 +f 251/401/18 240/402/18 233/403/18 +f 460/404/2 437/405/2 438/406/2 +f 471/81/20 241/407/18 249/408/45 +f 233/409/2 244/410/2 238/411/2 +f 244/410/2 237/412/2 238/411/2 +f 245/413/2 236/414/2 237/412/2 +f 246/415/2 235/416/2 236/414/2 +f 247/417/2 234/418/2 235/416/2 +f 248/419/2 239/420/2 234/418/2 +f 250/421/2 233/409/2 240/422/2 +f 255/423/2 256/424/2 257/425/2 +f 257/426/22 234/427/21 239/428/22 +f 255/429/24 236/430/23 235/431/24 +f 253/432/26 238/433/25 237/434/26 +f 240/435/27 257/426/27 239/428/27 +f 256/436/21 235/431/24 234/427/21 +f 254/437/23 237/434/26 236/430/23 +f 252/438/25 233/439/28 238/433/25 +f 259/440/27 265/441/27 264/442/27 +f 265/443/18 262/444/18 270/445/18 +f 263/446/2 269/447/2 267/448/2 +f 268/449/29 262/450/29 261/451/29 +f 270/452/46 267/448/46 269/447/46 +f 263/446/47 268/453/47 264/454/47 +f 269/447/48 265/443/48 270/445/48 +f 266/455/49 264/442/49 265/441/49 +f 259/456/17 268/453/17 261/457/17 +f 271/458/27 282/459/27 275/460/27 +f 280/461/29 278/462/29 274/463/29 +f 282/459/50 278/462/51 281/464/50 +f 279/465/27 276/466/27 282/459/27 +f 271/467/17 277/468/17 273/469/17 +f 276/466/18 274/470/18 278/462/18 +f 275/460/2 281/464/50 277/468/2 +f 277/468/29 280/461/29 273/471/29 +f 283/472/27 294/473/27 287/474/27 +f 292/475/29 290/476/29 286/477/29 +f 294/473/50 290/476/51 293/478/50 +f 291/479/27 288/480/27 294/473/27 +f 283/481/17 289/482/17 285/483/17 +f 288/480/18 286/484/18 290/476/18 +f 287/474/2 293/478/50 289/482/2 +f 289/482/29 292/475/29 285/485/29 +f 304/486/29 298/487/29 297/488/29 +f 310/489/29 299/490/29 300/491/29 +f 295/492/27 306/493/27 305/494/27 +f 295/495/17 304/486/17 297/496/17 +f 306/493/18 298/497/18 303/498/18 +f 303/498/2 301/499/2 302/500/2 +f 304/486/2 299/501/2 301/499/2 +f 306/493/2 302/500/2 300/502/2 +f 305/494/2 300/502/2 299/501/2 +f 309/503/2 307/504/2 308/505/2 +f 309/503/18 301/506/18 299/507/18 +f 307/504/17 300/508/17 302/509/17 +f 308/505/27 302/510/27 301/511/27 +f 318/512/18 314/513/18 321/514/18 +f 316/515/2 322/516/2 319/517/2 +f 316/515/47 320/518/47 315/519/47 +f 322/516/48 318/512/48 321/514/48 +f 311/520/17 320/518/17 313/521/17 +f 330/522/18 326/523/18 333/524/18 +f 328/525/2 334/526/2 331/527/2 +f 328/525/47 332/528/47 327/529/47 +f 334/526/48 330/522/48 333/524/48 +f 323/530/17 332/528/17 325/531/17 +f 342/532/18 338/533/18 345/534/18 +f 340/535/2 346/536/2 343/537/2 +f 340/535/47 344/538/47 339/539/47 +f 346/536/48 342/532/48 345/534/48 +f 335/540/17 344/538/17 337/541/17 +f 354/542/18 350/543/18 357/544/18 +f 352/545/2 358/546/2 355/547/2 +f 352/545/47 356/548/47 351/549/47 +f 358/546/48 354/542/48 357/544/48 +f 347/550/17 356/548/17 349/551/17 +f 366/552/18 362/553/18 369/554/18 +f 364/555/2 370/556/2 367/557/2 +f 364/555/47 368/558/47 363/559/47 +f 370/556/48 366/552/48 369/554/48 +f 359/560/17 368/558/17 361/561/17 +f 378/562/18 374/563/18 381/564/18 +f 376/565/2 382/566/2 379/567/2 +f 376/565/47 380/568/47 375/569/47 +f 382/566/48 378/562/48 381/564/48 +f 371/570/17 380/568/17 373/571/17 +f 390/572/18 386/573/18 393/574/18 +f 388/575/2 394/576/2 391/577/2 +f 388/575/47 392/578/47 387/579/47 +f 394/576/48 390/572/48 393/574/48 +f 383/580/17 392/578/17 385/581/17 +f 397/582/41 396/583/17 395/584/17 +f 399/585/40 398/586/41 397/582/41 +f 401/587/43 400/588/40 399/585/40 +f 403/589/42 402/590/43 401/587/43 +f 405/591/18 404/592/42 403/589/42 +f 417/593/27 407/594/27 409/595/27 +f 400/596/29 404/597/29 408/598/29 +f 410/599/29 412/600/29 396/601/29 +f 407/594/27 414/602/27 405/603/27 +f 409/595/27 405/603/27 401/604/27 +f 419/605/36 434/606/37 426/607/37 +f 430/608/29 432/609/29 434/610/29 +f 413/611/29 408/598/29 406/612/29 +f 414/613/18 406/614/18 405/591/18 +f 412/615/17 395/584/17 396/583/17 +f 411/616/27 409/595/27 395/617/27 +f 416/618/29 410/599/29 408/598/29 +f 425/619/38 432/620/39 424/621/39 +f 423/622/42 430/623/43 422/624/43 +f 421/625/40 427/626/41 420/627/41 +f 426/628/37 433/629/38 425/619/38 +f 424/621/39 431/630/42 423/622/42 +f 420/627/41 429/631/36 419/605/36 +f 422/624/43 428/632/40 421/625/40 +f 459/633/17 448/634/17 437/635/17 +f 435/636/2 250/421/2 240/422/2 +f 483/314/18 443/637/18 475/315/18 +f 443/637/18 458/638/18 435/639/18 +f 489/319/18 442/640/18 481/320/18 +f 435/641/52 448/642/52 443/643/52 +f 442/640/18 464/644/18 436/645/18 +f 439/646/52 447/647/52 438/648/52 +f 440/649/52 444/650/52 445/651/52 +f 464/652/2 441/653/2 436/654/2 +f 241/655/52 436/656/52 249/657/52 +f 451/658/52 450/659/52 458/660/52 +f 459/661/52 453/662/52 452/663/52 +f 461/664/52 455/665/52 454/666/52 +f 463/667/52 457/668/52 456/669/52 +f 447/670/18 460/671/18 438/672/18 +f 485/351/18 447/670/18 477/352/18 +f 461/673/17 446/674/17 439/675/17 +f 458/660/2 250/676/2 435/677/2 +f 462/678/2 439/679/2 440/680/2 +f 445/681/18 462/682/18 440/683/18 +f 487/363/18 445/681/18 479/364/18 +f 450/684/17 242/685/17 250/400/17 +f 463/686/17 444/687/17 441/688/17 +f 457/668/29 488/370/29 456/669/29 +f 455/665/29 486/372/29 454/666/29 +f 453/662/29 484/374/29 452/663/29 +f 483/377/29 449/689/29 451/658/29 +f 456/690/17 480/378/17 444/687/17 +f 444/650/29 479/380/29 445/651/29 +f 454/691/17 478/382/17 446/674/17 +f 446/692/29 477/384/29 447/647/29 +f 452/693/17 476/386/17 448/634/17 +f 448/642/29 475/388/29 443/643/29 +f 449/694/17 474/390/17 242/685/17 +f 473/393/29 442/695/29 241/655/29 +f 242/685/17 472/74/17 250/400/17 +f 248/399/16 471/81/20 249/408/45 +f 490/696/53 493/697/46 492/698/46 +f 493/697/46 494/699/2 492/698/46 +f 495/700/2 496/701/49 494/699/2 +f 496/701/49 499/702/54 498/703/54 +f 492/704/18 496/705/18 498/706/18 +f 499/707/17 497/708/17 495/709/17 +f 502/710/18 500/711/48 501/712/18 +f 510/713/29 517/714/29 500/715/29 +f 503/716/48 510/717/2 500/711/48 +f 504/718/2 511/719/47 510/717/2 +f 513/720/29 527/721/29 525/722/29 +f 505/723/47 512/724/17 511/719/47 +f 510/713/29 521/725/29 518/726/29 +f 506/727/17 513/728/31 512/724/17 +f 501/729/29 517/714/29 516/730/29 +f 507/731/31 514/732/19 513/728/31 +f 508/733/19 515/734/32 514/735/19 +f 509/736/32 501/712/18 515/734/32 +f 516/737/18 520/738/48 519/739/18 +f 517/740/48 522/741/2 520/738/48 +f 518/742/2 524/743/47 522/741/2 +f 521/744/47 526/745/17 524/743/47 +f 526/745/17 525/746/31 528/747/31 +f 525/746/31 530/748/19 528/747/31 +f 529/749/32 519/739/18 531/750/32 +f 527/751/19 531/750/32 530/752/19 +f 512/753/29 525/722/29 523/754/29 +f 501/729/29 529/755/29 515/756/29 +f 531/757/27 520/758/27 524/759/27 +f 512/753/29 521/725/29 511/760/29 +f 515/756/29 527/721/29 514/761/29 +f 577/762/29 578/763/29 579/764/29 +f 580/765/55 579/766/56 578/767/55 +f 583/768/57 585/769/57 582/770/57 +f 580/771/27 583/772/27 586/773/27 +f 590/774/27 591/775/27 586/773/27 +f 573/776/58 591/777/58 574/778/58 +f 581/779/56 572/780/59 579/766/56 +f 590/781/60 576/782/60 575/783/60 +f 586/784/61 582/770/61 577/785/61 +f 588/786/62 573/787/62 572/780/62 +f 591/777/63 575/783/63 574/778/63 +f 576/782/64 586/784/64 577/785/64 +f 580/765/55 585/769/65 584/788/65 +f 578/763/29 582/789/29 585/790/29 +f 597/791/29 598/792/29 599/793/29 +f 600/794/66 599/795/67 598/796/66 +f 603/797/68 605/798/68 602/799/68 +f 600/800/27 603/801/27 606/802/27 +f 610/803/27 611/804/27 606/802/27 +f 607/805/69 594/806/69 593/807/69 +f 601/808/67 592/809/70 599/795/67 +f 610/810/71 596/811/71 595/812/71 +f 606/813/72 602/799/72 597/814/72 +f 592/809/73 607/815/73 593/816/73 +f 611/817/74 595/812/74 594/806/74 +f 609/818/75 597/814/75 596/811/75 +f 600/794/66 605/798/76 604/819/76 +f 598/792/29 602/820/29 605/821/29 +f 617/822/29 618/823/77 619/824/29 +f 620/825/78 619/826/79 618/827/78 +f 622/828/80 624/829/81 625/830/80 +f 620/831/82 623/832/27 626/833/27 +f 630/834/27 631/835/27 626/833/27 +f 627/836/83 614/837/83 613/838/83 +f 621/839/79 612/840/84 619/826/79 +f 630/841/85 616/842/85 615/843/85 +f 626/844/86 622/828/86 617/845/86 +f 628/846/87 613/847/87 612/840/87 +f 614/837/88 630/841/88 615/843/88 +f 629/848/89 617/845/90 616/842/90 +f 618/827/78 624/829/91 620/825/78 +f 618/823/77 622/849/29 625/850/29 +f 637/851/29 638/852/77 639/853/29 +f 643/854/92 645/855/92 642/856/92 +f 640/857/27 643/858/27 646/859/27 +f 650/860/27 651/861/27 646/859/27 +f 647/862/93 634/863/93 633/864/93 +f 641/865/94 632/866/94 639/867/94 +f 650/868/95 636/869/95 635/870/95 +f 637/871/96 643/854/96 642/856/96 +f 648/872/97 633/873/97 632/866/97 +f 651/874/98 635/870/98 634/863/98 +f 649/875/99 637/871/100 636/869/100 +f 638/876/101 644/877/101 640/878/101 +f 638/852/77 642/879/29 645/880/77 +f 654/881/102 653/882/102 652/883/102 +f 465/61/11 11/884/11 12/62/12 +f 466/63/12 12/62/12 13/64/13 +f 467/65/13 13/64/13 14/66/14 +f 468/67/14 14/66/14 15/68/15 +f 469/69/15 15/68/15 16/70/16 +f 18/72/17 11/885/17 465/73/17 +f 8/75/18 26/886/18 19/76/18 +f 205/78/19 227/341/19 228/79/19 +f 471/81/20 17/394/45 9/82/18 +f 1/84/19 6/88/19 12/85/19 +f 5/87/19 13/90/19 12/85/19 +f 4/89/19 14/92/19 13/90/19 +f 4/89/19 3/94/19 15/91/19 +f 2/93/19 16/96/19 15/91/19 +f 7/95/19 17/887/19 16/96/19 +f 1/84/19 11/86/19 18/97/19 +f 19/888/19 26/101/19 20/100/19 +f 26/101/19 25/889/19 23/890/19 +f 25/889/19 24/891/19 23/890/19 +f 23/890/19 22/892/19 26/101/19 +f 22/892/19 21/99/19 26/101/19 +f 2/102/21 24/113/21 25/103/22 +f 4/105/23 22/114/23 23/106/24 +f 6/108/25 20/116/25 21/109/26 +f 7/104/27 25/103/27 26/111/27 +f 3/107/24 23/106/24 24/113/21 +f 5/110/26 21/109/26 22/114/23 +f 1/115/28 19/893/28 20/116/25 +f 33/117/27 28/894/27 27/118/27 +f 30/120/18 28/895/18 33/121/18 +f 37/123/19 34/132/19 31/124/19 +f 30/126/29 38/129/29 36/127/29 +f 35/125/30 36/127/30 38/129/30 +f 36/130/31 35/125/31 31/124/31 +f 33/121/32 34/132/32 37/123/32 +f 32/119/33 31/124/33 34/132/33 +f 36/130/17 32/131/17 27/133/17 +f 50/135/27 47/142/27 39/136/27 +f 48/138/29 42/896/29 46/139/29 +f 46/139/34 44/141/34 50/135/35 +f 44/141/27 40/897/27 47/142/27 +f 45/143/17 43/137/17 39/144/17 +f 42/146/18 40/898/18 44/141/18 +f 49/140/35 50/135/35 43/137/19 +f 48/138/29 49/140/29 45/143/29 +f 62/148/27 59/155/27 51/149/27 +f 60/151/29 54/899/29 58/152/29 +f 58/152/34 56/154/34 62/148/35 +f 56/154/27 52/900/27 59/155/27 +f 57/156/17 55/150/17 51/157/17 +f 54/159/18 52/901/18 56/154/18 +f 61/153/35 62/148/35 55/150/19 +f 60/151/29 61/153/29 57/156/29 +f 66/161/29 71/173/29 72/162/29 +f 67/164/29 77/179/29 78/165/29 +f 74/167/27 64/902/27 63/168/27 +f 72/162/17 73/169/17 63/170/17 +f 66/172/18 64/903/18 74/167/18 +f 69/174/19 72/162/19 71/173/19 +f 69/174/19 67/177/19 73/169/19 +f 68/176/19 70/175/19 71/173/19 +f 68/176/19 74/167/19 73/169/19 +f 75/178/19 78/165/19 77/179/19 +f 69/181/18 76/180/18 77/179/18 +f 68/183/17 78/165/17 75/178/17 +f 70/185/27 75/178/27 76/180/27 +f 82/187/18 80/904/18 86/188/18 +f 90/190/19 85/905/19 84/191/19 +f 88/193/31 87/192/31 84/191/31 +f 86/188/32 85/905/32 90/190/32 +f 88/193/17 83/194/17 79/195/17 +f 94/197/18 92/906/18 98/198/18 +f 102/200/19 97/907/19 96/201/19 +f 100/203/31 99/202/31 96/201/31 +f 98/198/32 97/907/32 102/200/32 +f 100/203/17 95/204/17 91/205/17 +f 106/207/18 104/908/18 110/208/18 +f 114/210/19 109/909/19 108/211/19 +f 112/213/31 111/212/31 108/211/31 +f 110/208/32 109/909/32 114/210/32 +f 112/213/17 107/214/17 103/215/17 +f 118/217/18 116/910/18 122/218/18 +f 126/220/19 121/911/19 120/221/19 +f 124/223/31 123/222/31 120/221/31 +f 122/218/32 121/911/32 126/220/32 +f 124/223/17 119/224/17 115/225/17 +f 130/227/18 128/912/18 134/228/18 +f 138/230/19 133/913/19 132/231/19 +f 136/233/31 135/232/31 132/231/31 +f 134/228/32 133/913/32 138/230/32 +f 136/233/17 131/234/17 127/235/17 +f 142/237/18 140/914/18 146/238/18 +f 150/240/19 145/915/19 144/241/19 +f 148/243/31 147/242/31 144/241/31 +f 146/238/32 145/915/32 150/240/32 +f 148/243/17 143/244/17 139/245/17 +f 154/247/18 152/916/18 158/248/18 +f 162/250/19 157/917/19 156/251/19 +f 160/253/31 159/252/31 156/251/31 +f 158/248/32 157/917/32 162/250/32 +f 160/253/17 155/254/17 151/255/17 +f 164/257/17 166/260/36 165/258/36 +f 166/260/36 168/262/37 167/261/37 +f 168/262/37 170/264/38 169/263/38 +f 170/264/38 172/266/39 171/265/39 +f 172/266/39 174/289/18 173/267/18 +f 175/268/27 183/278/27 185/269/27 +f 168/272/29 166/918/29 164/919/29 +f 164/919/29 178/274/29 168/272/29 +f 178/274/29 176/273/29 168/272/29 +f 176/273/29 174/288/29 172/920/29 +f 172/920/29 170/271/29 176/273/29 +f 178/274/29 164/919/29 180/275/29 +f 175/268/27 173/280/27 182/277/27 +f 177/270/27 163/293/27 165/921/27 +f 165/921/27 167/922/27 177/270/27 +f 167/922/27 169/279/27 177/270/27 +f 169/279/27 171/923/27 173/280/27 +f 173/280/27 175/268/27 177/270/27 +f 194/281/40 202/924/40 197/282/41 +f 195/925/29 197/926/29 202/284/29 +f 202/284/29 201/927/29 200/285/29 +f 200/285/29 199/928/29 198/286/29 +f 198/286/29 196/929/29 195/925/29 +f 195/925/29 202/284/29 198/286/29 +f 176/273/29 184/294/29 181/287/29 +f 174/289/18 181/930/18 182/290/18 +f 163/259/17 179/931/17 180/291/17 +f 177/270/27 185/269/27 179/292/27 +f 178/274/29 186/276/29 184/294/29 +f 200/295/42 201/304/43 193/296/43 +f 198/298/38 199/306/39 191/299/39 +f 195/301/36 196/307/37 189/302/37 +f 201/304/43 202/932/40 194/305/40 +f 199/306/39 200/295/42 192/297/42 +f 197/282/41 195/301/36 188/303/36 +f 196/307/37 198/298/38 190/300/38 +f 216/308/17 220/387/17 227/309/17 +f 17/887/19 7/95/19 204/933/19 +f 7/95/19 8/98/19 207/312/19 +f 204/933/19 7/95/19 209/934/19 +f 8/98/19 18/97/19 203/935/19 +f 203/935/19 205/936/19 8/98/19 +f 205/936/19 206/311/19 8/98/19 +f 207/312/19 208/937/19 7/95/19 +f 208/937/19 209/934/19 7/95/19 +f 211/313/18 219/317/18 483/314/18 +f 211/313/18 203/938/18 226/316/18 +f 210/318/18 225/325/18 489/319/18 +f 203/321/44 211/389/44 216/322/44 +f 210/318/18 204/939/18 232/324/18 +f 215/326/44 214/385/44 207/327/44 +f 208/329/44 213/381/44 212/330/44 +f 209/332/19 231/346/19 232/333/19 +f 204/335/44 210/392/44 9/336/44 +f 218/338/44 217/376/44 219/339/44 +f 227/341/44 220/375/44 221/342/44 +f 229/343/44 222/373/44 223/344/44 +f 231/346/44 224/371/44 225/347/44 +f 215/348/18 206/940/18 228/349/18 +f 215/348/18 221/350/18 485/351/18 +f 214/353/17 222/383/17 229/354/17 +f 18/356/19 218/338/19 226/340/19 +f 207/358/19 229/343/19 230/345/19 +f 213/360/18 208/941/18 230/361/18 +f 213/360/18 223/362/18 487/363/18 +f 10/365/17 217/391/17 218/366/17 +f 212/367/17 224/379/17 231/368/17 +f 488/370/29 489/942/29 225/347/29 +f 486/372/29 487/943/29 223/344/29 +f 484/374/29 485/944/29 221/342/29 +f 217/376/29 482/945/29 483/377/29 +f 480/378/17 488/946/17 224/379/17 +f 479/380/29 480/947/29 212/330/29 +f 478/382/17 486/948/17 222/383/17 +f 477/384/29 478/949/29 214/385/29 +f 476/386/17 484/950/17 220/387/17 +f 475/388/29 476/951/29 216/322/29 +f 474/390/17 482/952/17 217/391/17 +f 210/392/29 481/953/29 473/393/29 +f 472/74/17 474/390/17 10/365/17 +f 471/81/20 470/71/16 16/70/16 +f 244/395/12 243/954/11 465/61/11 +f 245/396/13 244/395/12 466/63/12 +f 246/397/14 245/396/13 467/65/13 +f 247/398/15 246/397/14 468/67/14 +f 248/399/16 247/398/15 469/69/15 +f 465/73/17 243/955/17 250/400/17 +f 251/401/18 258/956/18 240/402/18 +f 460/404/2 459/661/2 437/405/2 +f 471/81/20 473/83/18 241/407/18 +f 233/409/2 243/957/2 244/410/2 +f 244/410/2 245/413/2 237/412/2 +f 245/413/2 246/415/2 236/414/2 +f 246/415/2 247/417/2 235/416/2 +f 247/417/2 248/419/2 234/418/2 +f 248/419/2 249/958/2 239/420/2 +f 250/421/2 243/957/2 233/409/2 +f 257/425/2 258/959/2 255/423/2 +f 258/959/2 251/960/2 252/961/2 +f 253/962/2 258/959/2 252/961/2 +f 253/962/2 254/963/2 258/959/2 +f 254/963/2 255/423/2 258/959/2 +f 257/426/22 256/436/21 234/427/21 +f 255/429/24 254/437/23 236/430/23 +f 253/432/26 252/438/25 238/433/25 +f 240/435/27 258/964/27 257/426/27 +f 256/436/21 255/429/24 235/431/24 +f 254/437/23 253/432/26 237/434/26 +f 252/438/25 251/965/28 233/439/28 +f 259/440/27 260/966/27 265/441/27 +f 265/443/18 260/967/18 262/444/18 +f 263/446/2 266/455/2 269/447/2 +f 268/449/29 270/452/29 262/450/29 +f 270/452/46 268/449/46 267/448/46 +f 263/446/47 267/448/47 268/453/47 +f 269/447/48 266/455/48 265/443/48 +f 266/455/49 263/446/49 264/442/49 +f 259/456/17 264/454/17 268/453/17 +f 271/458/27 279/465/27 282/459/27 +f 280/461/29 281/464/29 278/462/29 +f 282/459/50 276/466/51 278/462/51 +f 279/465/27 272/968/27 276/466/27 +f 271/467/17 275/460/17 277/468/17 +f 276/466/18 272/969/18 274/470/18 +f 275/460/2 282/459/50 281/464/50 +f 277/468/29 281/464/29 280/461/29 +f 283/472/27 291/479/27 294/473/27 +f 292/475/29 293/478/29 290/476/29 +f 294/473/50 288/480/51 290/476/51 +f 291/479/27 284/970/27 288/480/27 +f 283/481/17 287/474/17 289/482/17 +f 288/480/18 284/971/18 286/484/18 +f 287/474/2 294/473/50 293/478/50 +f 289/482/29 293/478/29 292/475/29 +f 304/486/29 303/498/29 298/487/29 +f 310/489/29 309/503/29 299/490/29 +f 295/492/27 296/972/27 306/493/27 +f 295/495/17 305/494/17 304/486/17 +f 306/493/18 296/973/18 298/497/18 +f 303/498/2 304/486/2 301/499/2 +f 304/486/2 305/494/2 299/501/2 +f 306/493/2 303/498/2 302/500/2 +f 305/494/2 306/493/2 300/502/2 +f 309/503/2 310/489/2 307/504/2 +f 309/503/18 308/505/18 301/506/18 +f 307/504/17 310/489/17 300/508/17 +f 308/505/27 307/504/27 302/510/27 +f 318/512/18 312/974/18 314/513/18 +f 316/515/2 317/975/2 322/516/2 +f 316/515/47 319/517/47 320/518/47 +f 322/516/48 317/975/48 318/512/48 +f 311/520/17 315/519/17 320/518/17 +f 330/522/18 324/976/18 326/523/18 +f 328/525/2 329/977/2 334/526/2 +f 328/525/47 331/527/47 332/528/47 +f 334/526/48 329/977/48 330/522/48 +f 323/530/17 327/529/17 332/528/17 +f 342/532/18 336/978/18 338/533/18 +f 340/535/2 341/979/2 346/536/2 +f 340/535/47 343/537/47 344/538/47 +f 346/536/48 341/979/48 342/532/48 +f 335/540/17 339/539/17 344/538/17 +f 354/542/18 348/980/18 350/543/18 +f 352/545/2 353/981/2 358/546/2 +f 352/545/47 355/547/47 356/548/47 +f 358/546/48 353/981/48 354/542/48 +f 347/550/17 351/549/17 356/548/17 +f 366/552/18 360/982/18 362/553/18 +f 364/555/2 365/983/2 370/556/2 +f 364/555/47 367/557/47 368/558/47 +f 370/556/48 365/983/48 366/552/48 +f 359/560/17 363/559/17 368/558/17 +f 378/562/18 372/984/18 374/563/18 +f 376/565/2 377/985/2 382/566/2 +f 376/565/47 379/567/47 380/568/47 +f 382/566/48 377/985/48 378/562/48 +f 371/570/17 375/569/17 380/568/17 +f 390/572/18 384/986/18 386/573/18 +f 388/575/2 389/987/2 394/576/2 +f 388/575/47 391/577/47 392/578/47 +f 394/576/48 389/987/48 390/572/48 +f 383/580/17 387/579/17 392/578/17 +f 397/582/41 398/586/41 396/583/17 +f 399/585/40 400/588/40 398/586/41 +f 401/587/43 402/590/43 400/588/40 +f 403/589/42 404/592/42 402/590/43 +f 405/591/18 406/614/18 404/592/42 +f 417/593/27 415/988/27 407/594/27 +f 396/601/29 398/989/29 400/596/29 +f 400/596/29 402/990/29 404/597/29 +f 404/597/29 406/612/29 408/598/29 +f 408/598/29 410/599/29 396/601/29 +f 396/601/29 400/596/29 408/598/29 +f 410/599/29 418/991/29 412/600/29 +f 407/594/27 415/988/27 414/602/27 +f 397/992/27 395/617/27 409/595/27 +f 409/595/27 407/594/27 405/603/27 +f 405/603/27 403/993/27 401/604/27 +f 401/604/27 399/994/27 397/992/27 +f 397/992/27 409/595/27 401/604/27 +f 419/605/36 429/631/36 434/606/37 +f 434/610/29 429/995/29 427/996/29 +f 427/996/29 428/997/29 434/610/29 +f 428/997/29 430/608/29 434/610/29 +f 430/608/29 431/998/29 432/609/29 +f 432/609/29 433/999/29 434/610/29 +f 413/611/29 416/618/29 408/598/29 +f 414/613/18 413/1000/18 406/614/18 +f 412/615/17 411/1001/17 395/584/17 +f 411/616/27 417/593/27 409/595/27 +f 416/618/29 418/991/29 410/599/29 +f 425/619/38 433/629/38 432/620/39 +f 423/622/42 431/630/42 430/623/43 +f 421/625/40 428/632/40 427/626/41 +f 426/628/37 434/1002/37 433/629/38 +f 424/621/39 432/620/39 431/630/42 +f 420/627/41 427/626/41 429/631/36 +f 422/624/43 430/623/43 428/632/40 +f 459/633/17 452/693/17 448/634/17 +f 240/422/2 239/420/2 439/1003/2 +f 239/420/2 249/958/2 436/1004/2 +f 441/1005/2 239/420/2 436/1004/2 +f 441/1005/2 440/1006/2 239/420/2 +f 440/1006/2 439/1003/2 239/420/2 +f 240/422/2 439/1003/2 438/1007/2 +f 438/1007/2 437/1008/2 240/422/2 +f 437/1008/2 435/636/2 240/422/2 +f 483/314/18 451/1009/18 443/637/18 +f 443/637/18 451/1009/18 458/638/18 +f 489/319/18 457/1010/18 442/640/18 +f 435/641/52 437/1011/52 448/642/52 +f 442/640/18 457/1010/18 464/644/18 +f 439/646/52 446/692/52 447/647/52 +f 440/649/52 441/1012/52 444/650/52 +f 464/652/2 463/667/2 441/653/2 +f 241/655/52 442/695/52 436/656/52 +f 451/658/52 449/689/52 450/659/52 +f 459/661/52 460/404/52 453/662/52 +f 461/664/52 462/678/52 455/665/52 +f 463/667/52 464/652/52 457/668/52 +f 447/670/18 453/1013/18 460/671/18 +f 485/351/18 453/1013/18 447/670/18 +f 461/673/17 454/691/17 446/674/17 +f 458/660/2 450/659/2 250/676/2 +f 462/678/2 461/664/2 439/679/2 +f 445/681/18 455/1014/18 462/682/18 +f 487/363/18 455/1014/18 445/681/18 +f 450/684/17 449/694/17 242/685/17 +f 463/686/17 456/690/17 444/687/17 +f 457/668/29 489/942/29 488/370/29 +f 455/665/29 487/943/29 486/372/29 +f 453/662/29 485/944/29 484/374/29 +f 483/377/29 482/945/29 449/689/29 +f 456/690/17 488/946/17 480/378/17 +f 444/650/29 480/947/29 479/380/29 +f 454/691/17 486/948/17 478/382/17 +f 446/692/29 478/949/29 477/384/29 +f 452/693/17 484/950/17 476/386/17 +f 448/642/29 476/951/29 475/388/29 +f 449/694/17 482/952/17 474/390/17 +f 473/393/29 481/953/29 442/695/29 +f 242/685/17 474/390/17 472/74/17 +f 248/399/16 470/71/16 471/81/20 +f 490/696/53 491/1015/53 493/697/46 +f 493/697/46 495/700/2 494/699/2 +f 495/700/2 497/1016/49 496/701/49 +f 496/701/49 497/1016/49 499/702/54 +f 498/706/18 490/1017/18 492/704/18 +f 492/704/18 494/1018/18 496/705/18 +f 495/709/17 493/1019/17 491/1020/17 +f 491/1020/17 499/707/17 495/709/17 +f 502/710/18 503/716/48 500/711/48 +f 510/713/29 518/726/29 517/714/29 +f 503/716/48 504/718/2 510/717/2 +f 504/718/2 505/723/47 511/719/47 +f 513/720/29 514/761/29 527/721/29 +f 505/723/47 506/727/17 512/724/17 +f 510/713/29 511/760/29 521/725/29 +f 506/727/17 507/731/31 513/728/31 +f 501/729/29 500/715/29 517/714/29 +f 507/731/31 508/1021/19 514/732/19 +f 508/733/19 509/736/32 515/734/32 +f 509/736/32 502/710/18 501/712/18 +f 516/737/18 517/740/48 520/738/48 +f 517/740/48 518/742/2 522/741/2 +f 518/742/2 521/744/47 524/743/47 +f 521/744/47 523/1022/17 526/745/17 +f 526/745/17 523/1022/17 525/746/31 +f 525/746/31 527/1023/19 530/748/19 +f 529/749/32 516/737/18 519/739/18 +f 527/751/19 529/749/32 531/750/32 +f 512/753/29 513/720/29 525/722/29 +f 501/729/29 516/730/29 529/755/29 +f 531/757/27 519/1024/27 520/758/27 +f 520/758/27 522/1025/27 524/759/27 +f 524/759/27 526/1026/27 531/757/27 +f 526/1026/27 528/1027/27 531/757/27 +f 528/1027/27 530/1028/27 531/757/27 +f 512/753/29 523/754/29 521/725/29 +f 515/756/29 529/755/29 527/721/29 +f 579/764/29 572/1029/29 577/762/29 +f 572/1029/29 573/1030/29 577/762/29 +f 573/1030/29 574/1031/29 577/762/29 +f 574/1031/29 575/1032/29 577/762/29 +f 575/1032/29 576/1033/29 577/762/29 +f 580/765/55 581/779/56 579/766/56 +f 583/768/57 584/788/57 585/769/57 +f 580/771/27 584/1034/27 583/772/27 +f 591/775/27 587/1035/27 586/773/27 +f 587/1035/27 588/1036/27 586/773/27 +f 588/1036/27 581/1037/27 586/773/27 +f 581/1037/27 580/771/27 586/773/27 +f 586/773/27 589/1038/27 590/774/27 +f 573/776/58 587/1039/58 591/777/58 +f 581/779/56 588/786/59 572/780/59 +f 590/781/60 589/1040/60 576/782/60 +f 586/784/61 583/768/61 582/770/61 +f 588/786/62 587/1041/62 573/787/62 +f 591/777/63 590/781/63 575/783/63 +f 576/782/64 589/1040/64 586/784/64 +f 580/765/55 578/767/55 585/769/65 +f 578/763/29 577/762/29 582/789/29 +f 599/793/29 592/1042/29 597/791/29 +f 592/1042/29 593/1043/29 597/791/29 +f 593/1043/29 594/1044/29 597/791/29 +f 594/1044/29 595/1045/29 597/791/29 +f 595/1045/29 596/1046/29 597/791/29 +f 600/794/66 601/808/67 599/795/67 +f 603/797/68 604/819/68 605/798/68 +f 600/800/27 604/1047/27 603/801/27 +f 611/804/27 607/1048/27 606/802/27 +f 607/1048/27 608/1049/27 606/802/27 +f 608/1049/27 601/1050/27 606/802/27 +f 601/1050/27 600/800/27 606/802/27 +f 606/802/27 609/1051/27 610/803/27 +f 607/805/69 611/817/69 594/806/69 +f 601/808/67 608/1052/70 592/809/70 +f 610/810/71 609/818/71 596/811/71 +f 606/813/72 603/797/72 602/799/72 +f 592/809/73 608/1052/73 607/815/73 +f 611/817/74 610/810/74 595/812/74 +f 609/818/75 606/813/75 597/814/75 +f 600/794/66 598/796/66 605/798/76 +f 598/792/29 597/791/29 602/820/29 +f 619/824/29 612/1053/29 617/822/29 +f 612/1053/29 613/1054/29 617/822/29 +f 613/1054/29 614/1055/29 617/822/29 +f 614/1055/29 615/1056/29 617/822/29 +f 615/1056/29 616/1057/29 617/822/29 +f 620/825/78 621/839/79 619/826/79 +f 622/828/80 623/1058/81 624/829/81 +f 620/831/82 624/1059/27 623/832/27 +f 631/835/27 627/1060/27 626/833/27 +f 627/1060/27 628/1061/27 626/833/27 +f 628/1061/27 621/1062/27 626/833/27 +f 621/1062/27 620/831/82 626/833/27 +f 626/833/27 629/1063/103 630/834/27 +f 627/836/83 631/1064/83 614/837/83 +f 621/839/79 628/846/84 612/840/84 +f 630/841/85 629/848/85 616/842/85 +f 626/844/86 623/1058/86 622/828/86 +f 628/846/87 627/1065/87 613/847/87 +f 614/837/88 631/1064/88 630/841/88 +f 629/848/89 626/844/89 617/845/90 +f 618/827/78 625/830/91 624/829/91 +f 618/823/77 617/822/29 622/849/29 +f 639/853/29 632/1066/29 637/851/29 +f 632/1066/29 633/1067/29 637/851/29 +f 633/1067/29 634/1068/29 637/851/29 +f 634/1068/29 635/1069/29 637/851/29 +f 635/1069/29 636/1070/29 637/851/29 +f 643/854/92 644/877/92 645/855/92 +f 640/857/27 644/1071/27 643/858/27 +f 651/861/27 647/1072/27 646/859/27 +f 647/1072/27 648/1073/27 646/859/27 +f 648/1073/27 641/1074/27 646/859/27 +f 641/1074/27 640/857/27 646/859/27 +f 646/859/27 649/1075/82 650/860/27 +f 647/862/93 651/874/93 634/863/93 +f 641/865/94 648/872/94 632/866/94 +f 650/868/95 649/875/95 636/869/95 +f 637/871/96 646/1076/96 643/854/96 +f 648/872/97 647/1077/97 633/873/97 +f 651/874/98 650/868/98 635/870/98 +f 649/875/99 646/1076/99 637/871/100 +f 638/876/101 645/855/101 644/877/101 +f 638/852/77 637/851/29 642/879/29 +f 654/881/102 655/1078/102 653/882/102 +o doorRight +v 0.299220 0.487402 -3.251414 +v 0.299220 5.590070 -1.004025 +v 0.299220 5.128570 -1.909768 +v 0.299220 4.409768 -2.628571 +v 0.299220 3.503919 -3.090124 +v 0.299220 2.496066 -3.251015 +v 0.299220 5.679564 -0.438986 +v 0.299220 0.487402 -0.438985 +v 0.149610 5.900837 -0.125000 +v 0.149610 0.054715 -0.125000 +v 0.299220 0.054715 -3.440433 +v 0.299220 2.511072 -3.439998 +v 0.299220 3.563152 -3.272047 +v 0.299220 4.522236 -2.783369 +v 0.299220 5.283369 -2.022236 +v 0.299220 5.772047 -1.063152 +v 0.299220 5.900837 -0.250000 +v 0.299220 0.054715 -0.250000 +v 0.231315 0.487402 -3.251414 +v 0.231315 2.496066 -3.251015 +v 0.231315 3.503919 -3.090124 +v 0.231315 4.409768 -2.628571 +v 0.231315 5.128570 -1.909768 +v 0.231315 5.590070 -1.004025 +v 0.231315 5.679564 -0.438986 +v 0.231315 0.487402 -0.438985 +v 0.204275 1.917457 -1.651271 +v 0.204275 2.047506 -1.651271 +v 0.204275 1.917457 -1.142414 +v 0.204275 2.047506 -1.142414 +v 0.261126 1.933194 -1.635535 +v 0.245389 1.917457 -1.651271 +v 0.245389 2.047506 -1.651271 +v 0.261126 2.031770 -1.635535 +v 0.261126 1.933194 -1.158151 +v 0.245389 1.917457 -1.142414 +v 0.261126 2.031770 -1.158151 +v 0.245389 2.047506 -1.142414 +v 0.215124 3.126893 -0.898361 +v 0.215124 3.628286 -0.898361 +v 0.215124 3.126893 -0.736489 +v 0.215124 3.628286 -0.736489 +v 0.294289 3.126893 -0.898361 +v 0.247374 3.628286 -0.898361 +v 0.294289 3.126893 -0.736489 +v 0.247374 3.628286 -0.736489 +v 0.215124 3.447602 -0.898361 +v 0.215124 3.447602 -0.736489 +v 0.294289 3.447602 -0.736489 +v 0.294289 3.447602 -0.898361 +v 0.215124 3.126893 -1.339800 +v 0.215124 3.628286 -1.339800 +v 0.215124 3.126893 -1.177929 +v 0.215124 3.628286 -1.177929 +v 0.294289 3.126893 -1.339800 +v 0.247374 3.628286 -1.339800 +v 0.294289 3.126893 -1.177929 +v 0.247374 3.628286 -1.177929 +v 0.215124 3.447602 -1.339800 +v 0.215124 3.447602 -1.177929 +v 0.294289 3.447602 -1.177929 +v 0.294289 3.447602 -1.339800 +v 0.110842 1.775868 -3.124604 +v 0.110842 2.305447 -3.124604 +v 0.110842 1.775868 -1.892389 +v 0.110842 2.305447 -1.892389 +v 0.303721 1.835501 -3.064971 +v 0.303721 2.245814 -3.064971 +v 0.303721 1.835501 -1.952022 +v 0.303721 2.245814 -1.952022 +v 0.303721 2.305447 -1.892389 +v 0.303721 1.775868 -1.892389 +v 0.303721 1.775868 -3.124604 +v 0.303721 2.305447 -3.124604 +v 0.237602 2.245814 -1.952022 +v 0.237602 1.835501 -1.952022 +v 0.237602 1.835501 -3.064971 +v 0.237602 2.245814 -3.064971 +v 0.185097 0.938915 -3.260309 +v 0.185097 1.140242 -3.260309 +v 0.185097 0.938915 -0.391829 +v 0.185097 1.140242 -0.391829 +v 0.250002 0.938915 -3.260309 +v 0.279439 0.968351 -3.260309 +v 0.279439 1.110806 -3.260309 +v 0.250002 1.140242 -3.260309 +v 0.279439 0.968351 -0.391829 +v 0.250002 0.938915 -0.391829 +v 0.250002 1.140242 -0.391829 +v 0.279439 1.110806 -0.391829 +v 0.185097 1.623428 -3.260309 +v 0.185097 1.824755 -3.260309 +v 0.185097 1.623428 -0.391829 +v 0.185097 1.824755 -0.391829 +v 0.250002 1.623428 -3.260309 +v 0.279439 1.652864 -3.260309 +v 0.279439 1.795319 -3.260309 +v 0.250002 1.824755 -3.260309 +v 0.279439 1.652864 -0.391829 +v 0.250002 1.623428 -0.391829 +v 0.250002 1.824755 -0.391829 +v 0.279439 1.795319 -0.391829 +v 0.185097 2.307941 -3.260309 +v 0.185097 2.509268 -3.260309 +v 0.185097 2.307941 -0.391829 +v 0.185097 2.509268 -0.391829 +v 0.250002 2.307941 -3.260309 +v 0.279439 2.337377 -3.260309 +v 0.279439 2.479832 -3.260309 +v 0.250002 2.509268 -3.260309 +v 0.279439 2.337377 -0.391829 +v 0.250002 2.307941 -0.391829 +v 0.250002 2.509268 -0.391829 +v 0.279439 2.479832 -0.391829 +v 0.185097 2.992454 -3.260309 +v 0.185097 3.193781 -3.260309 +v 0.185097 2.992454 -0.391829 +v 0.185097 3.193781 -0.391829 +v 0.250002 2.992454 -3.260309 +v 0.279439 3.021890 -3.260309 +v 0.279439 3.164345 -3.260309 +v 0.250002 3.193781 -3.260309 +v 0.279439 3.021890 -0.391829 +v 0.250002 2.992454 -0.391829 +v 0.250002 3.193781 -0.391829 +v 0.279439 3.164345 -0.391829 +v 0.185097 3.676967 -3.079826 +v 0.185097 3.878294 -3.079826 +v 0.185097 3.676967 -0.391829 +v 0.185097 3.878294 -0.391829 +v 0.250002 3.676967 -3.079826 +v 0.279439 3.706403 -3.079826 +v 0.279439 3.848858 -3.079826 +v 0.250002 3.878294 -3.079826 +v 0.279439 3.706403 -0.391829 +v 0.250002 3.676967 -0.391829 +v 0.250002 3.878294 -0.391829 +v 0.279439 3.848858 -0.391829 +v 0.185097 4.361480 -2.726382 +v 0.185097 4.562807 -2.726382 +v 0.185097 4.361480 -0.391829 +v 0.185097 4.562807 -0.391829 +v 0.250002 4.361480 -2.726382 +v 0.279439 4.390916 -2.726382 +v 0.279439 4.533370 -2.726382 +v 0.250002 4.562807 -2.726382 +v 0.279439 4.390916 -0.391829 +v 0.250002 4.361480 -0.391829 +v 0.250002 4.562807 -0.391829 +v 0.279439 4.533370 -0.391829 +v 0.185097 5.045993 -2.044939 +v 0.185097 5.247320 -2.044939 +v 0.185097 5.045993 -0.391829 +v 0.185097 5.247320 -0.391829 +v 0.250002 5.045993 -2.044939 +v 0.279439 5.075429 -2.044939 +v 0.279439 5.217884 -2.044939 +v 0.250002 5.247320 -2.044939 +v 0.279439 5.075429 -0.391829 +v 0.250002 5.045993 -0.391829 +v 0.250002 5.247320 -0.391829 +v 0.279439 5.217884 -0.391829 +v 0.315590 0.554430 -1.179831 +v 0.315590 0.554430 -0.490474 +v 0.381347 0.554430 -1.179831 +v 0.381347 0.554430 -0.490474 +v 0.427845 0.600927 -1.179831 +v 0.427845 0.600927 -0.490474 +v 0.427845 0.666685 -1.179831 +v 0.427845 0.666685 -0.490474 +v 0.381347 0.713183 -1.179831 +v 0.381347 0.713183 -0.490474 +v 0.315590 0.713183 -1.179831 +v 0.315590 0.713183 -0.490474 +v 0.269092 0.666685 -1.179831 +v 0.269092 0.666685 -0.490474 +v 0.269092 0.600927 -1.179831 +v 0.269092 0.600927 -0.490474 +v 0.212011 0.554430 -1.179831 +v 0.212011 0.554430 -0.490474 +v 0.212011 0.713183 -0.490474 +v 0.212011 0.713183 -1.179831 +v 0.212011 0.666685 -1.179831 +v 0.212011 0.666685 -0.490474 +v 0.212011 0.600927 -1.179831 +v 0.212011 0.600927 -0.490474 +v 0.323809 0.574274 -3.311587 +v 0.373128 0.574274 -3.311587 +v 0.408001 0.609147 -3.311587 +v 0.408001 0.658465 -3.311587 +v 0.373128 0.693339 -3.311587 +v 0.323809 0.693339 -3.311587 +v 0.288936 0.658465 -3.311587 +v 0.288936 0.609147 -3.311587 +v 0.373127 0.574274 -0.452471 +v 0.408000 0.609147 -0.452471 +v 0.323808 0.574274 -0.452471 +v 0.408000 0.658465 -0.452471 +v 0.373127 0.693339 -0.452471 +v 0.323808 0.693339 -0.452471 +v 0.288935 0.658465 -0.452471 +v 0.288935 0.609147 -0.452471 +v 0.149610 5.165501 -0.125000 +v 0.149610 0.790051 -0.125000 +v 0.149610 4.436259 -0.125000 +v 0.149610 3.707017 -0.125000 +v 0.149610 2.977776 -0.125000 +v 0.149610 2.248534 -0.125000 +v 0.149610 1.519293 -0.125000 +v 0.299220 5.165501 -0.250000 +v 0.299220 0.790051 -0.250000 +v 0.299220 4.436259 -0.250000 +v 0.299220 3.707017 -0.250000 +v 0.299220 2.977776 -0.250000 +v 0.299220 2.248534 -0.250000 +v 0.299220 1.519293 -0.250000 +v 0.149610 5.900837 0.125000 +v 0.299220 5.900837 0.000000 +v 0.149610 1.519293 0.125000 +v 0.149610 0.790051 0.125000 +v 0.299220 0.790051 0.000000 +v 0.299220 1.519293 0.000000 +v 0.299220 2.248534 0.000000 +v 0.149610 2.248534 0.125000 +v 0.149610 2.977776 0.125000 +v 0.299220 2.977776 0.000000 +v 0.299220 3.707017 0.000000 +v 0.149610 3.707017 0.125000 +v 0.149610 4.436259 0.125000 +v 0.299220 4.436259 0.000000 +v 0.299220 5.165501 0.000000 +v 0.149610 5.165501 0.125000 +v -0.299220 0.487402 -3.251414 +v -0.299220 5.590070 -1.004025 +v -0.299220 5.128570 -1.909768 +v -0.299220 4.409768 -2.628571 +v -0.299220 3.503919 -3.090124 +v -0.299220 2.496066 -3.251015 +v -0.299220 5.679564 -0.438986 +v -0.299220 0.487402 -0.438985 +v -0.149610 5.900837 -0.125000 +v -0.149610 0.054715 -0.125000 +v -0.299220 0.054715 -3.440433 +v -0.299220 2.511072 -3.439998 +v -0.299220 3.563152 -3.272047 +v -0.299220 4.522236 -2.783369 +v -0.299220 5.283369 -2.022236 +v -0.299220 5.772047 -1.063152 +v -0.299220 5.900837 -0.250000 +v -0.299220 0.054715 -0.250000 +v -0.231315 0.487402 -3.251414 +v -0.231315 2.496066 -3.251015 +v -0.231315 3.503919 -3.090124 +v -0.231315 4.409768 -2.628571 +v -0.231315 5.128570 -1.909768 +v -0.231315 5.590070 -1.004025 +v -0.231315 5.679564 -0.438986 +v -0.231315 0.487402 -0.438985 +v -0.204275 1.917457 -1.651271 +v -0.204275 2.047506 -1.651271 +v -0.204275 1.917457 -1.142414 +v -0.204275 2.047506 -1.142414 +v -0.261126 1.933194 -1.635535 +v -0.245389 1.917457 -1.651271 +v -0.245389 2.047506 -1.651271 +v -0.261126 2.031770 -1.635535 +v -0.261126 1.933194 -1.158151 +v -0.245389 1.917457 -1.142414 +v -0.261126 2.031770 -1.158151 +v -0.245389 2.047506 -1.142414 +v -0.215124 3.126893 -0.898361 +v -0.215124 3.628286 -0.898361 +v -0.215124 3.126893 -0.736489 +v -0.215124 3.628286 -0.736489 +v -0.294289 3.126893 -0.898361 +v -0.247374 3.628286 -0.898361 +v -0.294289 3.126893 -0.736489 +v -0.247374 3.628286 -0.736489 +v -0.215124 3.447602 -0.898361 +v -0.215124 3.447602 -0.736489 +v -0.294289 3.447602 -0.736489 +v -0.294289 3.447602 -0.898361 +v -0.215124 3.126893 -1.339800 +v -0.215124 3.628286 -1.339800 +v -0.215124 3.126893 -1.177929 +v -0.215124 3.628286 -1.177929 +v -0.294289 3.126893 -1.339800 +v -0.247374 3.628286 -1.339800 +v -0.294289 3.126893 -1.177929 +v -0.247374 3.628286 -1.177929 +v -0.215124 3.447602 -1.339800 +v -0.215124 3.447602 -1.177929 +v -0.294289 3.447602 -1.177929 +v -0.294289 3.447602 -1.339800 +v -0.110842 1.775868 -3.124604 +v -0.110842 2.305447 -3.124604 +v -0.110842 1.775868 -1.892389 +v -0.110842 2.305447 -1.892389 +v -0.303721 1.835501 -3.064971 +v -0.303721 2.245814 -3.064971 +v -0.303721 1.835501 -1.952022 +v -0.303721 2.245814 -1.952022 +v -0.303721 2.305447 -1.892389 +v -0.303721 1.775868 -1.892389 +v -0.303721 1.775868 -3.124604 +v -0.303721 2.305447 -3.124604 +v -0.237602 2.245814 -1.952022 +v -0.237602 1.835501 -1.952022 +v -0.237602 1.835501 -3.064971 +v -0.237602 2.245814 -3.064971 +v -0.185097 0.938915 -3.260309 +v -0.185097 1.140242 -3.260309 +v -0.185097 0.938915 -0.391829 +v -0.185097 1.140242 -0.391829 +v -0.250002 0.938915 -3.260309 +v -0.279439 0.968351 -3.260309 +v -0.279439 1.110806 -3.260309 +v -0.250002 1.140242 -3.260309 +v -0.279439 0.968351 -0.391829 +v -0.250002 0.938915 -0.391829 +v -0.250002 1.140242 -0.391829 +v -0.279439 1.110806 -0.391829 +v -0.185097 1.623428 -3.260309 +v -0.185097 1.824755 -3.260309 +v -0.185097 1.623428 -0.391829 +v -0.185097 1.824755 -0.391829 +v -0.250002 1.623428 -3.260309 +v -0.279439 1.652864 -3.260309 +v -0.279439 1.795319 -3.260309 +v -0.250002 1.824755 -3.260309 +v -0.279439 1.652864 -0.391829 +v -0.250002 1.623428 -0.391829 +v -0.250002 1.824755 -0.391829 +v -0.279439 1.795319 -0.391829 +v -0.185097 2.307941 -3.260309 +v -0.185097 2.509268 -3.260309 +v -0.185097 2.307941 -0.391829 +v -0.185097 2.509268 -0.391829 +v -0.250002 2.307941 -3.260309 +v -0.279439 2.337377 -3.260309 +v -0.279439 2.479832 -3.260309 +v -0.250002 2.509268 -3.260309 +v -0.279439 2.337377 -0.391829 +v -0.250002 2.307941 -0.391829 +v -0.250002 2.509268 -0.391829 +v -0.279439 2.479832 -0.391829 +v -0.185097 2.992454 -3.260309 +v -0.185097 3.193781 -3.260309 +v -0.185097 2.992454 -0.391829 +v -0.185097 3.193781 -0.391829 +v -0.250002 2.992454 -3.260309 +v -0.279439 3.021890 -3.260309 +v -0.279439 3.164345 -3.260309 +v -0.250002 3.193781 -3.260309 +v -0.279439 3.021890 -0.391829 +v -0.250002 2.992454 -0.391829 +v -0.250002 3.193781 -0.391829 +v -0.279439 3.164345 -0.391829 +v -0.185097 3.676967 -3.079826 +v -0.185097 3.878294 -3.079826 +v -0.185097 3.676967 -0.391829 +v -0.185097 3.878294 -0.391829 +v -0.250002 3.676967 -3.079826 +v -0.279439 3.706403 -3.079826 +v -0.279439 3.848858 -3.079826 +v -0.250002 3.878294 -3.079826 +v -0.279439 3.706403 -0.391829 +v -0.250002 3.676967 -0.391829 +v -0.250002 3.878294 -0.391829 +v -0.279439 3.848858 -0.391829 +v -0.185097 4.361480 -2.726382 +v -0.185097 4.562807 -2.726382 +v -0.185097 4.361480 -0.391829 +v -0.185097 4.562807 -0.391829 +v -0.250002 4.361480 -2.726382 +v -0.279439 4.390916 -2.726382 +v -0.279439 4.533370 -2.726382 +v -0.250002 4.562807 -2.726382 +v -0.279439 4.390916 -0.391829 +v -0.250002 4.361480 -0.391829 +v -0.250002 4.562807 -0.391829 +v -0.279439 4.533370 -0.391829 +v -0.185097 5.045993 -2.044939 +v -0.185097 5.247320 -2.044939 +v -0.185097 5.045993 -0.391829 +v -0.185097 5.247320 -0.391829 +v -0.250002 5.045993 -2.044939 +v -0.279439 5.075429 -2.044939 +v -0.279439 5.217884 -2.044939 +v -0.250002 5.247320 -2.044939 +v -0.279439 5.075429 -0.391829 +v -0.250002 5.045993 -0.391829 +v -0.250002 5.247320 -0.391829 +v -0.279439 5.217884 -0.391829 +v -0.315590 0.554430 -1.179831 +v -0.315590 0.554430 -0.490474 +v -0.381347 0.554430 -1.179831 +v -0.381347 0.554430 -0.490474 +v -0.427845 0.600927 -1.179831 +v -0.427845 0.600927 -0.490474 +v -0.427845 0.666685 -1.179831 +v -0.427845 0.666685 -0.490474 +v -0.381347 0.713183 -1.179831 +v -0.381347 0.713183 -0.490474 +v -0.315590 0.713183 -1.179831 +v -0.315590 0.713183 -0.490474 +v -0.269092 0.666685 -1.179831 +v -0.269092 0.666685 -0.490474 +v -0.269092 0.600927 -1.179831 +v -0.269092 0.600927 -0.490474 +v -0.212011 0.554430 -1.179831 +v -0.212011 0.554430 -0.490474 +v -0.212011 0.713183 -0.490474 +v -0.212011 0.713183 -1.179831 +v -0.212011 0.666685 -1.179831 +v -0.212011 0.666685 -0.490474 +v -0.212011 0.600927 -1.179831 +v -0.212011 0.600927 -0.490474 +v -0.323809 0.574274 -3.311587 +v -0.373128 0.574274 -3.311587 +v -0.408001 0.609147 -3.311587 +v -0.408001 0.658465 -3.311587 +v -0.373128 0.693339 -3.311587 +v -0.323809 0.693339 -3.311587 +v -0.288936 0.658465 -3.311587 +v -0.288936 0.609147 -3.311587 +v -0.373127 0.574274 -0.452471 +v -0.408000 0.609147 -0.452471 +v -0.323808 0.574274 -0.452471 +v -0.408000 0.658465 -0.452471 +v -0.373127 0.693339 -0.452471 +v -0.323808 0.693339 -0.452471 +v -0.288935 0.658465 -0.452471 +v -0.288935 0.609147 -0.452471 +v -0.149610 5.165501 -0.125000 +v -0.149610 0.790051 -0.125000 +v -0.149610 4.436259 -0.125000 +v -0.149610 3.707017 -0.125000 +v -0.149610 2.977776 -0.125000 +v -0.149610 2.248534 -0.125000 +v -0.149610 1.519293 -0.125000 +v -0.299220 5.165501 -0.250000 +v -0.299220 0.790051 -0.250000 +v -0.299220 4.436259 -0.250000 +v -0.299220 3.707017 -0.250000 +v -0.299220 2.977776 -0.250000 +v -0.299220 2.248534 -0.250000 +v -0.299220 1.519293 -0.250000 +v -0.149610 5.900837 0.125000 +v -0.299220 5.900837 0.000000 +v -0.149610 1.519293 0.125000 +v -0.149610 0.790051 0.125000 +v -0.299220 0.790051 0.000000 +v -0.299220 1.519293 0.000000 +v -0.299220 2.248534 0.000000 +v -0.149610 2.248534 0.125000 +v -0.149610 2.977776 0.125000 +v -0.299220 2.977776 0.000000 +v -0.299220 3.707017 0.000000 +v -0.149610 3.707017 0.125000 +v -0.149610 4.436259 0.125000 +v -0.299220 4.436259 0.000000 +v -0.299220 5.165501 0.000000 +v -0.149610 5.165501 0.125000 +v 0.000000 0.054715 -3.440433 +v 0.000000 2.511072 -3.439998 +v 0.000000 3.563152 -3.272047 +v 0.000000 4.522236 -2.783369 +v 0.000000 5.283369 -2.022236 +v 0.000000 5.772047 -1.063152 +v 0.000000 5.900837 -0.250000 +v 0.000000 0.054715 -0.250000 +v 0.000000 5.900837 -0.125000 +v 0.000000 0.054715 -0.125000 +v 0.000000 0.790051 -0.125000 +v 0.000000 1.519293 -0.125000 +v 0.000000 2.248534 -0.125000 +v 0.000000 2.977776 -0.125000 +v 0.000000 3.707017 -0.125000 +v 0.000000 4.436259 -0.125000 +v 0.000000 5.165501 -0.125000 +v 0.000000 5.900837 0.125000 +v 0.000000 0.790051 0.125000 +v 0.000000 1.519293 0.125000 +v 0.000000 2.248534 0.125000 +v 0.000000 2.977776 0.125000 +v 0.000000 3.707017 0.125000 +v 0.000000 4.436259 0.125000 +v 0.000000 5.165501 0.125000 +v 0.236978 1.966246 -2.101461 +v 0.236978 1.868289 -2.101461 +v 0.271611 1.966246 -2.115807 +v 0.271611 1.868289 -2.115807 +v 0.285957 1.966246 -2.150440 +v 0.285957 1.868289 -2.150440 +v 0.271611 1.966246 -2.185074 +v 0.271611 1.868289 -2.185074 +v 0.236978 1.966246 -2.199419 +v 0.236978 1.868289 -2.199419 +v 0.261013 1.935379 -2.738888 +v 0.243802 1.942508 -2.738888 +v 0.243802 1.942508 -2.168687 +v 0.261013 1.935379 -2.168687 +v 0.268143 1.918167 -2.168687 +v 0.261013 1.900955 -2.168687 +v 0.243802 1.893826 -2.168687 +v 0.226590 1.900955 -2.168687 +v 0.219460 1.918167 -2.168687 +v 0.226590 1.935379 -2.168687 +v 0.268143 1.918167 -2.738888 +v 0.261013 1.900955 -2.738888 +v 0.243802 1.893826 -2.738888 +v 0.226590 1.900955 -2.738888 +v 0.219460 1.918167 -2.738888 +v 0.226590 1.935379 -2.738888 +v 0.243802 1.952222 -2.738888 +v 0.267882 1.942248 -2.738888 +v 0.277856 1.918167 -2.738888 +v 0.243802 1.952222 -2.956852 +v 0.267882 1.942248 -2.956852 +v 0.267882 1.894087 -2.738888 +v 0.277856 1.918167 -2.956852 +v 0.243802 1.884113 -2.738888 +v 0.267882 1.894087 -2.956852 +v 0.219721 1.894087 -2.738888 +v 0.243802 1.884113 -2.956852 +v 0.209747 1.918167 -2.738888 +v 0.219721 1.894087 -2.956852 +v 0.219721 1.942248 -2.738888 +v 0.209747 1.918167 -2.956852 +v 0.219721 1.942248 -2.956852 +v 0.234904 1.996067 -2.602894 +v 0.234904 2.177792 -2.602893 +v 0.234904 1.996067 -2.957389 +v 0.234904 2.177792 -2.957389 +v 0.248364 1.996858 -2.604437 +v 0.248364 2.177001 -2.604437 +v 0.248364 1.996858 -2.955846 +v 0.248364 2.177001 -2.955846 +v 0.239626 2.025193 -2.631219 +v 0.239626 2.077102 -2.631219 +v 0.239626 2.025193 -2.683128 +v 0.239626 2.077102 -2.683128 +v 0.264276 2.026531 -2.632558 +v 0.264276 2.075763 -2.632558 +v 0.264276 2.026531 -2.681790 +v 0.264276 2.075763 -2.681790 +v 0.239626 2.025193 -2.713007 +v 0.239626 2.077102 -2.713007 +v 0.239626 2.025193 -2.764916 +v 0.239626 2.077102 -2.764916 +v 0.264276 2.026531 -2.714346 +v 0.264276 2.075763 -2.714346 +v 0.264276 2.026531 -2.763577 +v 0.264276 2.075763 -2.763577 +v 0.239626 2.025193 -2.794795 +v 0.239626 2.077102 -2.794795 +v 0.239626 2.025193 -2.846704 +v 0.239626 2.077102 -2.846704 +v 0.264276 2.026531 -2.796134 +v 0.264276 2.075763 -2.796134 +v 0.264276 2.026531 -2.845365 +v 0.264276 2.075763 -2.845365 +v 0.239626 2.025193 -2.876583 +v 0.239626 2.077102 -2.876583 +v 0.239626 2.025193 -2.928492 +v 0.239626 2.077102 -2.928492 +v 0.264276 2.026531 -2.877922 +v 0.264276 2.075763 -2.877922 +v 0.264276 2.026531 -2.927153 +v 0.264276 2.075763 -2.927153 +v 0.241062 2.141376 -2.887181 +v 0.218099 2.128895 -2.887181 +v 0.217427 2.102767 -2.887181 +v 0.239718 2.089121 -2.887181 +v 0.262680 2.101603 -2.887181 +v 0.264313 2.105776 -2.887181 +v 0.266144 2.123641 -2.887181 +v 0.263352 2.127731 -2.887181 +v 0.266144 2.123641 -2.918690 +v 0.263352 2.127731 -2.918690 +v 0.278264 2.110234 -2.887181 +v 0.278264 2.110234 -2.918690 +v 0.277458 2.120133 -2.918690 +v 0.277458 2.120133 -2.887181 +v 0.264313 2.105776 -2.918690 +v 0.218099 2.128895 -2.918690 +v 0.241062 2.141376 -2.918690 +v 0.262680 2.101603 -2.918690 +v 0.239718 2.089121 -2.918690 +v 0.217427 2.102767 -2.918690 +v 0.257846 2.139290 -2.641807 +v 0.231994 2.143135 -2.641807 +v 0.215738 2.122669 -2.641807 +v 0.225334 2.098358 -2.641807 +v 0.251185 2.094513 -2.641807 +v 0.255000 2.096865 -2.641807 +v 0.267210 2.110033 -2.641807 +v 0.267441 2.114980 -2.641807 +v 0.267210 2.110033 -2.673316 +v 0.267441 2.114980 -2.673316 +v 0.268826 2.092032 -2.641807 +v 0.268826 2.092032 -2.673316 +v 0.274138 2.100425 -2.673316 +v 0.274138 2.100425 -2.641807 +v 0.255000 2.096865 -2.673316 +v 0.231994 2.143135 -2.673316 +v 0.257846 2.139290 -2.673316 +v 0.251185 2.094513 -2.673316 +v 0.225334 2.098358 -2.673316 +v 0.215738 2.122669 -2.673316 +v 0.222125 2.128488 -2.723598 +v 0.215962 2.103088 -2.723598 +v 0.234877 2.085051 -2.723598 +v 0.259955 2.092414 -2.723598 +v 0.266117 2.117813 -2.723598 +v 0.264120 2.121824 -2.723598 +v 0.252107 2.135173 -2.723598 +v 0.247202 2.135850 -2.723598 +v 0.252107 2.135173 -2.755107 +v 0.247202 2.135850 -2.755107 +v 0.270180 2.135158 -2.723598 +v 0.270180 2.135158 -2.755107 +v 0.262302 2.141205 -2.755107 +v 0.262302 2.141205 -2.723598 +v 0.264120 2.121824 -2.755107 +v 0.215962 2.103088 -2.755107 +v 0.222125 2.128488 -2.755107 +v 0.266117 2.117813 -2.755107 +v 0.259955 2.092414 -2.755107 +v 0.234877 2.085051 -2.755107 +v 0.231185 2.137330 -2.805390 +v 0.214479 2.117230 -2.805390 +v 0.223533 2.092711 -2.805390 +v 0.249294 2.088294 -2.805390 +v 0.265999 2.108394 -2.805390 +v 0.265969 2.112875 -2.805390 +v 0.261052 2.130147 -2.805390 +v 0.256945 2.132912 -2.805390 +v 0.261052 2.130147 -2.836899 +v 0.256945 2.132912 -2.836899 +v 0.277277 2.122184 -2.805390 +v 0.277277 2.122184 -2.836899 +v 0.272861 2.131080 -2.836899 +v 0.272861 2.131080 -2.805390 +v 0.265969 2.112875 -2.836899 +v 0.214479 2.117230 -2.836899 +v 0.231185 2.137330 -2.836899 +v 0.265999 2.108394 -2.836899 +v 0.249294 2.088294 -2.836899 +v 0.223533 2.092711 -2.836899 +vt 0.071084 0.914639 +vt 0.063745 0.914089 +vt 0.071052 0.914089 +vt 0.071052 0.899835 +vt 0.063745 0.899835 +vt 0.071084 0.899286 +vt 0.071599 0.899773 +vt 0.071599 0.914152 +vt 0.063198 0.914152 +vt 0.980883 0.027178 +vt 0.979882 0.025127 +vt 0.980883 0.025072 +vt 0.979882 0.027124 +vt 0.977885 0.025127 +vt 0.977885 0.027124 +vt 0.976884 0.025072 +vt 0.977831 0.024125 +vt 0.979936 0.024125 +vt 0.979936 0.028125 +vt 0.010095 0.976613 +vt 0.012147 0.975612 +vt 0.012201 0.976613 +vt 0.010150 0.975612 +vt 0.012147 0.973615 +vt 0.010150 0.973615 +vt 0.012201 0.972613 +vt 0.013148 0.973560 +vt 0.013148 0.975666 +vt 0.009148 0.975666 +vt 0.977831 0.010708 +vt 0.979882 0.009707 +vt 0.979936 0.010708 +vt 0.977885 0.009707 +vt 0.979882 0.007710 +vt 0.977885 0.007710 +vt 0.979936 0.006709 +vt 0.980883 0.007656 +vt 0.980883 0.009761 +vt 0.976884 0.009761 +vt 0.969725 0.889901 +vt 0.971776 0.888900 +vt 0.971831 0.889901 +vt 0.969779 0.888900 +vt 0.971776 0.886903 +vt 0.969779 0.886903 +vt 0.971831 0.885901 +vt 0.972778 0.886849 +vt 0.972778 0.888954 +vt 0.968778 0.888954 +vt 0.063713 0.914639 +vt 0.063713 0.899286 +vt 0.063198 0.899773 +vt 0.976884 0.027178 +vt 0.977831 0.028125 +vt 0.010095 0.972613 +vt 0.009148 0.973560 +vt 0.977831 0.006709 +vt 0.976884 0.007656 +vt 0.969725 0.885901 +vt 0.968778 0.886849 +vt 0.838616 0.394242 +vt 0.850753 0.294606 +vt 0.850753 0.394242 +vt 0.838616 0.437457 +vt 0.850753 0.437457 +vt 0.838616 0.481118 +vt 0.850753 0.481118 +vt 0.838616 0.524780 +vt 0.850753 0.524779 +vt 0.838616 0.568441 +vt 0.850753 0.568441 +vt 0.816684 0.141189 +vt 0.804547 0.011779 +vt 0.816684 0.011779 +vt 0.637409 0.742651 +vt 0.751488 0.745406 +vt 0.637409 0.745406 +vt 0.850753 0.601835 +vt 0.844684 0.606906 +vt 0.838616 0.601835 +vt 0.623992 0.501911 +vt 0.623992 0.531738 +vt 0.616326 0.514187 +vt 0.502248 0.514187 +vt 0.494599 0.432102 +vt 0.502264 0.432711 +vt 0.508790 0.391831 +vt 0.501411 0.389428 +vt 0.527512 0.355087 +vt 0.521233 0.350525 +vt 0.556668 0.325931 +vt 0.552106 0.319652 +vt 0.593407 0.307212 +vt 0.591009 0.299830 +vt 0.616327 0.303582 +vt 0.691829 0.316956 +vt 0.728568 0.298236 +vt 0.751488 0.294606 +vt 0.861164 0.006709 +vt 0.858410 0.029913 +vt 0.858410 0.006709 +vt 0.861164 0.071146 +vt 0.858410 0.112380 +vt 0.858410 0.071146 +vt 0.861164 0.153618 +vt 0.858410 0.195017 +vt 0.858410 0.153618 +vt 0.963467 0.189030 +vt 0.960285 0.006709 +vt 0.963467 0.006723 +vt 0.861164 0.029913 +vt 0.861164 0.112380 +vt 0.861164 0.195017 +vt 0.858410 0.276493 +vt 0.070405 0.847979 +vt 0.065130 0.846311 +vt 0.070405 0.846311 +vt 0.064865 0.846046 +vt 0.063198 0.825406 +vt 0.064865 0.825406 +vt 0.069767 0.845408 +vt 0.065768 0.826044 +vt 0.069767 0.826044 +vt 0.070405 0.825142 +vt 0.065130 0.823474 +vt 0.070405 0.823474 +vt 0.065130 0.825142 +vt 0.070669 0.825406 +vt 0.070669 0.846046 +vt 0.065768 0.845408 +vt 0.072337 0.846046 +vt 0.072337 0.825406 +vt 0.832797 0.992869 +vt 0.820045 0.989167 +vt 0.832917 0.989519 +vt 0.819847 0.979794 +vt 0.812637 0.982596 +vt 0.812375 0.981262 +vt 0.820215 0.982975 +vt 0.819631 0.992298 +vt 0.812630 0.989456 +vt 0.836258 0.989519 +vt 0.832917 0.982686 +vt 0.836258 0.982686 +vt 0.811270 0.982595 +vt 0.832839 0.979479 +vt 0.157833 0.991605 +vt 0.145081 0.987902 +vt 0.157953 0.988254 +vt 0.144883 0.978529 +vt 0.137673 0.981331 +vt 0.137411 0.979997 +vt 0.145251 0.981710 +vt 0.144667 0.991033 +vt 0.137666 0.988191 +vt 0.161295 0.988254 +vt 0.157953 0.981421 +vt 0.161295 0.981421 +vt 0.136306 0.981330 +vt 0.157876 0.978214 +vt 0.115059 0.780752 +vt 0.093578 0.772929 +vt 0.115059 0.772929 +vt 0.767587 0.714665 +vt 0.784230 0.717347 +vt 0.767587 0.717347 +vt 0.115059 0.838557 +vt 0.093578 0.830734 +vt 0.115059 0.830734 +vt 0.122882 0.830734 +vt 0.122882 0.780752 +vt 0.085754 0.780752 +vt 0.093578 0.780752 +vt 0.112640 0.783171 +vt 0.095997 0.783171 +vt 0.112640 0.828315 +vt 0.095997 0.828315 +vt 0.784230 0.714665 +vt 0.767587 0.669521 +vt 0.784230 0.669521 +vt 0.786912 0.669521 +vt 0.786912 0.714665 +vt 0.764905 0.714665 +vt 0.764905 0.669521 +vt 0.767587 0.666839 +vt 0.784230 0.666839 +vt 0.493197 0.720191 +vt 0.495769 0.833877 +vt 0.493197 0.833877 +vt 0.485567 0.720186 +vt 0.491213 0.833871 +vt 0.485567 0.833871 +vt 0.483582 0.833865 +vt 0.483582 0.720180 +vt 0.481010 0.720180 +vt 0.481010 0.833865 +vt 0.916263 0.006720 +vt 0.918835 0.120406 +vt 0.916263 0.120406 +vt 0.908633 0.006714 +vt 0.914279 0.120400 +vt 0.908633 0.120400 +vt 0.906649 0.120394 +vt 0.906649 0.006709 +vt 0.904076 0.006709 +vt 0.904076 0.120394 +vt 0.916263 0.133834 +vt 0.918835 0.247520 +vt 0.916263 0.247520 +vt 0.908633 0.133829 +vt 0.914279 0.247514 +vt 0.908633 0.247514 +vt 0.906649 0.247508 +vt 0.906649 0.133823 +vt 0.904076 0.133823 +vt 0.904076 0.247508 +vt 0.926154 0.760682 +vt 0.928726 0.874367 +vt 0.926154 0.874367 +vt 0.918524 0.760676 +vt 0.924170 0.874361 +vt 0.918524 0.874361 +vt 0.916540 0.874356 +vt 0.916539 0.760670 +vt 0.913967 0.760670 +vt 0.913967 0.874356 +vt 0.491671 0.859568 +vt 0.384226 0.862163 +vt 0.384226 0.859568 +vt 0.491675 0.851999 +vt 0.384229 0.857693 +vt 0.384229 0.851999 +vt 0.384233 0.850123 +vt 0.491678 0.850123 +vt 0.491678 0.847529 +vt 0.384233 0.847529 +vt 0.478919 0.887368 +vt 0.384226 0.890001 +vt 0.384226 0.887368 +vt 0.478919 0.879901 +vt 0.384226 0.885680 +vt 0.384226 0.879901 +vt 0.384226 0.878213 +vt 0.478919 0.878213 +vt 0.478919 0.875580 +vt 0.384226 0.875580 +vt 0.874581 0.266461 +vt 0.941635 0.263828 +vt 0.941635 0.266461 +vt 0.874581 0.273928 +vt 0.941635 0.268150 +vt 0.941635 0.273928 +vt 0.941635 0.275616 +vt 0.874581 0.275616 +vt 0.874581 0.278249 +vt 0.941635 0.278249 +vt 0.751964 0.269991 +vt 0.779926 0.272658 +vt 0.751964 0.272658 +vt 0.751964 0.267324 +vt 0.779926 0.269991 +vt 0.751964 0.264657 +vt 0.779926 0.267324 +vt 0.751964 0.261989 +vt 0.779926 0.264657 +vt 0.751964 0.259322 +vt 0.779926 0.261989 +vt 0.011262 0.959196 +vt 0.008595 0.956881 +vt 0.011262 0.956881 +vt 0.977533 0.762259 +vt 0.975647 0.766813 +vt 0.971094 0.764927 +vt 0.971094 0.762259 +vt 0.968778 0.760373 +vt 0.972980 0.760373 +vt 0.006709 0.959196 +vt 0.006709 0.954995 +vt 0.008595 0.950441 +vt 0.239689 0.888219 +vt 0.241702 0.772932 +vt 0.241702 0.888219 +vt 0.758193 0.881133 +vt 0.754778 0.882547 +vt 0.753363 0.879132 +vt 0.968778 0.766813 +vt 0.972980 0.766813 +vt 0.751964 0.255121 +vt 0.779926 0.259322 +vt 0.779926 0.276860 +vt 0.013148 0.959196 +vt 0.013148 0.954995 +vt 0.968778 0.764927 +vt 0.227615 0.888217 +vt 0.229628 0.772930 +vt 0.229628 0.888217 +vt 0.231640 0.888217 +vt 0.233652 0.772930 +vt 0.233652 0.888218 +vt 0.235665 0.888218 +vt 0.237677 0.772931 +vt 0.237677 0.888219 +vt 0.225603 0.888216 +vt 0.227615 0.772929 +vt 0.231640 0.772930 +vt 0.239689 0.772932 +vt 0.235665 0.772931 +vt 0.757401 0.968504 +vt 0.787227 0.976412 +vt 0.757401 0.976412 +vt 0.978919 0.583929 +vt 0.968778 0.577860 +vt 0.978919 0.577860 +vt 0.838616 0.611976 +vt 0.899184 0.978953 +vt 0.907092 0.949373 +vt 0.907092 0.978953 +vt 0.034866 0.980021 +vt 0.042774 0.950441 +vt 0.042774 0.980021 +vt 0.973848 0.546238 +vt 0.978919 0.552306 +vt 0.968778 0.552306 +vt 0.960285 0.232027 +vt 0.968192 0.202447 +vt 0.968192 0.232027 +vt 0.913161 0.949373 +vt 0.913161 0.978953 +vt 0.300254 0.951758 +vt 0.329834 0.941618 +vt 0.329834 0.951758 +vt 0.048842 0.950441 +vt 0.048842 0.980021 +vt 0.974261 0.202447 +vt 0.974261 0.232027 +vt 0.737360 0.915678 +vt 0.743429 0.905537 +vt 0.743429 0.915678 +vt 0.973848 0.589997 +vt 0.968778 0.583929 +vt 0.510060 0.902173 +vt 0.539887 0.910081 +vt 0.510060 0.910081 +vt 0.457011 0.941511 +vt 0.427431 0.933603 +vt 0.457011 0.933603 +vt 0.329834 0.933710 +vt 0.300254 0.941618 +vt 0.300254 0.933710 +vt 0.286837 0.941618 +vt 0.257257 0.933710 +vt 0.286837 0.933710 +vt 0.427431 0.927535 +vt 0.457011 0.927535 +vt 0.300254 0.927641 +vt 0.329834 0.927641 +vt 0.257257 0.927641 +vt 0.286837 0.927641 +vt 0.349320 0.942293 +vt 0.343251 0.937222 +vt 0.349320 0.932152 +vt 0.355388 0.932152 +vt 0.355388 0.942293 +vt 0.257257 0.951758 +vt 0.286837 0.951758 +vt 0.731292 0.910608 +vt 0.737360 0.905537 +vt 0.978919 0.496410 +vt 0.973848 0.490341 +vt 0.983989 0.490341 +vt 0.427431 0.951652 +vt 0.457011 0.951652 +vt 0.769975 0.748970 +vt 0.775045 0.755038 +vt 0.764905 0.755038 +vt 0.349319 0.913665 +vt 0.355388 0.903524 +vt 0.355388 0.913665 +vt 0.343251 0.908594 +vt 0.349319 0.903524 +vt 0.510060 0.920222 +vt 0.539887 0.920222 +vt 0.510060 0.896105 +vt 0.539887 0.902173 +vt 0.978919 0.502478 +vt 0.968778 0.496410 +vt 0.973848 0.540169 +vt 0.983989 0.546238 +vt 0.769975 0.742901 +vt 0.780115 0.748970 +vt 0.757401 0.962435 +vt 0.787227 0.968504 +vt 0.850753 0.606906 +vt 0.844684 0.617046 +vt 0.810615 0.006709 +vt 0.862890 0.394242 +vt 0.862890 0.437457 +vt 0.862890 0.481118 +vt 0.862890 0.524780 +vt 0.862890 0.568441 +vt 0.828821 0.011779 +vt 0.897588 0.619922 +vt 0.900342 0.734001 +vt 0.897588 0.734001 +vt 0.856821 0.606906 +vt 0.066114 0.706928 +vt 0.036535 0.706928 +vt 0.015684 0.699263 +vt 0.226289 0.585184 +vt 0.144205 0.577535 +vt 0.243840 0.577517 +vt 0.103933 0.591727 +vt 0.144813 0.585201 +vt 0.067190 0.610448 +vt 0.101530 0.584348 +vt 0.031754 0.635043 +vt 0.062628 0.604169 +vt 0.019314 0.676344 +vt 0.038033 0.639605 +vt 0.011933 0.673945 +vt 0.243840 0.706929 +vt 0.226289 0.699263 +vt 0.643952 0.640985 +vt 0.637425 0.600105 +vt 0.751488 0.518629 +vt 0.844992 0.029914 +vt 0.842238 0.006709 +vt 0.844992 0.006709 +vt 0.844992 0.112379 +vt 0.842238 0.071146 +vt 0.844992 0.071146 +vt 0.844992 0.195014 +vt 0.842238 0.153615 +vt 0.844992 0.153615 +vt 0.971960 0.476912 +vt 0.968778 0.294618 +vt 0.971960 0.294606 +vt 0.842238 0.029914 +vt 0.842238 0.112379 +vt 0.844992 0.276493 +vt 0.842238 0.195014 +vt 0.120950 0.874811 +vt 0.115675 0.876479 +vt 0.115675 0.874811 +vt 0.122882 0.853906 +vt 0.121215 0.874547 +vt 0.121215 0.853906 +vt 0.120312 0.854545 +vt 0.116313 0.873908 +vt 0.116313 0.854545 +vt 0.120950 0.851974 +vt 0.115675 0.853642 +vt 0.115675 0.851974 +vt 0.120950 0.853642 +vt 0.115411 0.853906 +vt 0.115411 0.874547 +vt 0.120312 0.873908 +vt 0.113743 0.874547 +vt 0.113743 0.853906 +vt 0.227626 0.971087 +vt 0.240379 0.967384 +vt 0.240499 0.970735 +vt 0.227428 0.980459 +vt 0.220218 0.977658 +vt 0.227797 0.977279 +vt 0.220212 0.970798 +vt 0.227212 0.967956 +vt 0.240499 0.977568 +vt 0.243840 0.970735 +vt 0.243840 0.977568 +vt 0.218851 0.977659 +vt 0.240421 0.980775 +vt 0.183493 0.981917 +vt 0.196246 0.978214 +vt 0.196366 0.981565 +vt 0.183295 0.991289 +vt 0.176085 0.988488 +vt 0.183663 0.988109 +vt 0.176079 0.981628 +vt 0.183079 0.978786 +vt 0.196366 0.988398 +vt 0.199707 0.981565 +vt 0.199707 0.988398 +vt 0.174718 0.988489 +vt 0.196288 0.991605 +vt 0.006709 0.780752 +vt 0.014532 0.802233 +vt 0.006709 0.802233 +vt 0.572923 0.871988 +vt 0.556279 0.874670 +vt 0.556279 0.871988 +vt 0.064513 0.780752 +vt 0.072337 0.802233 +vt 0.064513 0.802233 +vt 0.064513 0.810057 +vt 0.014532 0.810057 +vt 0.014532 0.772929 +vt 0.014532 0.780752 +vt 0.016951 0.799814 +vt 0.016951 0.783171 +vt 0.062095 0.783171 +vt 0.062095 0.799814 +vt 0.556279 0.919814 +vt 0.572923 0.874670 +vt 0.572923 0.919814 +vt 0.575605 0.919814 +vt 0.575605 0.874670 +vt 0.553598 0.874670 +vt 0.553598 0.919814 +vt 0.556279 0.922495 +vt 0.572923 0.922495 +vt 0.617258 0.281189 +vt 0.503572 0.278617 +vt 0.617258 0.278617 +vt 0.617252 0.276633 +vt 0.503567 0.270987 +vt 0.617252 0.270987 +vt 0.617247 0.269002 +vt 0.503562 0.269002 +vt 0.503562 0.266430 +vt 0.617247 0.266430 +vt 0.589022 0.935186 +vt 0.591594 0.821501 +vt 0.591594 0.935186 +vt 0.593578 0.935181 +vt 0.599224 0.821496 +vt 0.599224 0.935181 +vt 0.601209 0.935176 +vt 0.601209 0.821490 +vt 0.603781 0.821490 +vt 0.603781 0.935176 +vt 0.759070 0.836249 +vt 0.645385 0.833677 +vt 0.759070 0.833677 +vt 0.759065 0.831693 +vt 0.645379 0.826047 +vt 0.759065 0.826047 +vt 0.759060 0.824063 +vt 0.645374 0.824063 +vt 0.645374 0.821490 +vt 0.759060 0.821490 +vt 0.617198 0.935186 +vt 0.619771 0.821501 +vt 0.619770 0.935186 +vt 0.621755 0.935181 +vt 0.627401 0.821496 +vt 0.627401 0.935181 +vt 0.629385 0.935176 +vt 0.629385 0.821490 +vt 0.631957 0.821490 +vt 0.631957 0.935176 +vt 0.752826 0.864300 +vt 0.645381 0.861706 +vt 0.752826 0.861706 +vt 0.752823 0.859831 +vt 0.645378 0.854136 +vt 0.752823 0.854136 +vt 0.752819 0.852261 +vt 0.645374 0.852261 +vt 0.645374 0.849667 +vt 0.752819 0.849667 +vt 0.351951 0.890107 +vt 0.257257 0.887474 +vt 0.351951 0.887474 +vt 0.351951 0.885786 +vt 0.257257 0.880008 +vt 0.351951 0.880007 +vt 0.351951 0.878319 +vt 0.257257 0.878319 +vt 0.257257 0.875686 +vt 0.351951 0.875686 +vt 0.508551 0.935913 +vt 0.575605 0.938545 +vt 0.508551 0.938545 +vt 0.508551 0.940234 +vt 0.575605 0.946012 +vt 0.508551 0.946012 +vt 0.508551 0.947701 +vt 0.575605 0.947701 +vt 0.575605 0.950333 +vt 0.508551 0.950333 +vt 0.384226 0.982545 +vt 0.412188 0.979878 +vt 0.412188 0.982545 +vt 0.384226 0.979878 +vt 0.412188 0.977210 +vt 0.384226 0.977210 +vt 0.412188 0.974543 +vt 0.384226 0.974543 +vt 0.412188 0.971876 +vt 0.384226 0.971876 +vt 0.412188 0.969209 +vt 0.975218 0.742403 +vt 0.977533 0.745070 +vt 0.975218 0.745070 +vt 0.733178 0.956412 +vt 0.735845 0.956412 +vt 0.733178 0.962851 +vt 0.735845 0.962851 +vt 0.737731 0.965167 +vt 0.735845 0.965167 +vt 0.977533 0.740517 +vt 0.977533 0.742403 +vt 0.968778 0.742403 +vt 0.973332 0.740517 +vt 0.804547 0.269897 +vt 0.806559 0.154609 +vt 0.806559 0.269897 +vt 0.368783 0.880516 +vt 0.365368 0.879101 +vt 0.366783 0.875686 +vt 0.731292 0.965167 +vt 0.731292 0.960966 +vt 0.384226 0.969208 +vt 0.412188 0.965007 +vt 0.384226 0.986746 +vt 0.977533 0.746956 +vt 0.973332 0.746956 +vt 0.733178 0.965167 +vt 0.816621 0.154607 +vt 0.818633 0.269894 +vt 0.816621 0.269895 +vt 0.812596 0.154608 +vt 0.814609 0.269895 +vt 0.812596 0.269895 +vt 0.808571 0.154609 +vt 0.810584 0.269896 +vt 0.808571 0.269896 +vt 0.818633 0.154607 +vt 0.820646 0.269894 +vt 0.814609 0.154608 +vt 0.810584 0.154608 +vt 0.787228 0.948459 +vt 0.757401 0.956367 +vt 0.757401 0.948459 +vt 0.978919 0.571792 +vt 0.862890 0.611976 +vt 0.862890 0.601835 +vt 0.919230 0.949373 +vt 0.927137 0.978953 +vt 0.919230 0.978953 +vt 0.054911 0.950441 +vt 0.062819 0.980021 +vt 0.054911 0.980021 +vt 0.978919 0.528032 +vt 0.973848 0.534101 +vt 0.968778 0.528032 +vt 0.980330 0.202447 +vt 0.988237 0.232027 +vt 0.980330 0.232027 +vt 0.329834 0.913665 +vt 0.300254 0.903524 +vt 0.329834 0.903524 +vt 0.749497 0.915678 +vt 0.973848 0.565723 +vt 0.983989 0.565723 +vt 0.539887 0.882128 +vt 0.510060 0.890036 +vt 0.510060 0.882128 +vt 0.427431 0.921466 +vt 0.457011 0.913558 +vt 0.457011 0.921466 +vt 0.329834 0.921573 +vt 0.300254 0.913665 +vt 0.257257 0.921573 +vt 0.286837 0.913665 +vt 0.286837 0.921573 +vt 0.361456 0.942293 +vt 0.367525 0.937222 +vt 0.367525 0.947363 +vt 0.257257 0.903524 +vt 0.286837 0.903524 +vt 0.755566 0.910608 +vt 0.755566 0.920748 +vt 0.973848 0.514615 +vt 0.978919 0.508547 +vt 0.983989 0.514615 +vt 0.427431 0.903418 +vt 0.457011 0.903418 +vt 0.775045 0.730764 +vt 0.769975 0.736832 +vt 0.764905 0.730764 +vt 0.361456 0.913665 +vt 0.367525 0.908595 +vt 0.367525 0.918735 +vt 0.510060 0.871988 +vt 0.539887 0.871988 +vt 0.539887 0.890036 +vt 0.968778 0.508547 +vt 0.983989 0.534101 +vt 0.780115 0.736832 +vt 0.787228 0.956367 +vt 0.856821 0.617046 +vt 0.822752 0.006709 +vt 0.492337 0.881662 +vt 0.496310 0.880141 +vt 0.496310 0.881662 +vt 0.492337 0.880141 +vt 0.496310 0.878621 +vt 0.492337 0.878621 +vt 0.496310 0.877100 +vt 0.492337 0.877100 +vt 0.496310 0.875580 +vt 0.840002 0.728758 +vt 0.840002 0.725949 +vt 0.841407 0.725367 +vt 0.841407 0.707976 +vt 0.841407 0.711950 +vt 0.840002 0.711368 +vt 0.608440 0.981430 +vt 0.585312 0.982185 +vt 0.585312 0.981430 +vt 0.977248 0.128811 +vt 0.977631 0.129710 +vt 0.976884 0.128962 +vt 0.608440 0.982185 +vt 0.585312 0.982941 +vt 0.608440 0.982941 +vt 0.585312 0.983697 +vt 0.979072 0.128056 +vt 0.978688 0.127157 +vt 0.979436 0.127905 +vt 0.608440 0.983697 +vt 0.585312 0.984452 +vt 0.978538 0.129346 +vt 0.977782 0.129346 +vt 0.608440 0.984452 +vt 0.585312 0.985208 +vt 0.977248 0.128056 +vt 0.976884 0.127905 +vt 0.608440 0.985208 +vt 0.585312 0.985964 +vt 0.608440 0.979918 +vt 0.585312 0.980674 +vt 0.585312 0.979918 +vt 0.608440 0.980674 +vt 0.063198 0.934399 +vt 0.072039 0.933342 +vt 0.072039 0.934399 +vt 0.063198 0.933342 +vt 0.072039 0.932285 +vt 0.063198 0.932285 +vt 0.072039 0.931228 +vt 0.063198 0.931228 +vt 0.072039 0.930170 +vt 0.063198 0.930170 +vt 0.072039 0.929113 +vt 0.063198 0.929113 +vt 0.072039 0.928056 +vt 0.063198 0.935456 +vt 0.072039 0.935456 +vt 0.063198 0.936514 +vt 0.072039 0.936514 +vt 0.979072 0.128811 +vt 0.979436 0.128962 +vt 0.977631 0.127157 +vt 0.977782 0.127521 +vt 0.978688 0.111188 +vt 0.979436 0.111936 +vt 0.976884 0.112993 +vt 0.978688 0.129710 +vt 0.978538 0.127521 +vt 0.841139 0.826421 +vt 0.840538 0.826833 +vt 0.840338 0.826812 +vt 0.839894 0.635303 +vt 0.838616 0.635504 +vt 0.838616 0.635303 +vt 0.839894 0.634419 +vt 0.838616 0.634822 +vt 0.838616 0.634419 +vt 0.840538 0.809135 +vt 0.841251 0.808962 +vt 0.841139 0.809546 +vt 0.841256 0.810745 +vt 0.840338 0.811275 +vt 0.839894 0.630463 +vt 0.838616 0.631523 +vt 0.838616 0.630463 +vt 0.839894 0.635504 +vt 0.838616 0.636564 +vt 0.839894 0.632583 +vt 0.838616 0.633644 +vt 0.838616 0.632583 +vt 0.839894 0.633825 +vt 0.838616 0.633825 +vt 0.839894 0.636564 +vt 0.838616 0.637624 +vt 0.839894 0.631523 +vt 0.839894 0.633644 +vt 0.839894 0.634822 +vt 0.841251 0.827005 +vt 0.840882 0.827168 +vt 0.841139 0.779257 +vt 0.840538 0.779669 +vt 0.840338 0.779648 +vt 0.494581 0.547476 +vt 0.495859 0.547275 +vt 0.495859 0.547476 +vt 0.494581 0.548359 +vt 0.495859 0.547956 +vt 0.495859 0.548359 +vt 0.631793 0.258471 +vt 0.632505 0.258299 +vt 0.632394 0.258882 +vt 0.632511 0.260081 +vt 0.631593 0.260611 +vt 0.494581 0.552316 +vt 0.495859 0.551255 +vt 0.495859 0.552316 +vt 0.494581 0.547275 +vt 0.495859 0.546215 +vt 0.494581 0.550195 +vt 0.495859 0.549135 +vt 0.495859 0.550195 +vt 0.494581 0.548953 +vt 0.495859 0.548953 +vt 0.494581 0.546215 +vt 0.495859 0.545155 +vt 0.494581 0.551255 +vt 0.494581 0.549135 +vt 0.494581 0.547956 +vt 0.841251 0.779841 +vt 0.840882 0.780004 +vt 0.841139 0.842314 +vt 0.840538 0.842726 +vt 0.840338 0.842705 +vt 0.630675 0.276350 +vt 0.631953 0.276149 +vt 0.631953 0.276350 +vt 0.630675 0.277233 +vt 0.631953 0.276830 +vt 0.631953 0.277233 +vt 0.840538 0.872706 +vt 0.841251 0.872534 +vt 0.841139 0.873117 +vt 0.841256 0.874317 +vt 0.840338 0.874847 +vt 0.630675 0.281189 +vt 0.631953 0.280129 +vt 0.631953 0.281189 +vt 0.630675 0.276149 +vt 0.631953 0.275089 +vt 0.630675 0.279069 +vt 0.631953 0.278009 +vt 0.631953 0.279069 +vt 0.630675 0.277827 +vt 0.631953 0.277827 +vt 0.630675 0.274028 +vt 0.631953 0.274028 +vt 0.630675 0.280129 +vt 0.630675 0.278009 +vt 0.630675 0.276830 +vt 0.841251 0.842898 +vt 0.840882 0.843061 +vt 0.841139 0.889993 +vt 0.840538 0.890404 +vt 0.840338 0.890384 +vt 0.591343 0.949881 +vt 0.591142 0.948603 +vt 0.591343 0.948603 +vt 0.592226 0.949881 +vt 0.591823 0.948603 +vt 0.592226 0.948603 +vt 0.840538 0.856813 +vt 0.841251 0.856641 +vt 0.841139 0.857225 +vt 0.841256 0.858424 +vt 0.840338 0.858954 +vt 0.596182 0.949881 +vt 0.595122 0.948603 +vt 0.596182 0.948603 +vt 0.591142 0.949881 +vt 0.590082 0.948603 +vt 0.594062 0.948603 +vt 0.593002 0.949881 +vt 0.593002 0.948603 +vt 0.592820 0.949881 +vt 0.592820 0.948603 +vt 0.590082 0.949881 +vt 0.589022 0.948603 +vt 0.595122 0.949881 +vt 0.591823 0.949881 +vt 0.841251 0.890576 +vt 0.840882 0.890739 +vt 0.838616 0.294606 +vt 0.804547 0.141189 +vt 0.751488 0.742652 +vt 0.623992 0.413172 +vt 0.623992 0.294606 +vt 0.623992 0.324433 +vt 0.623992 0.354013 +vt 0.623992 0.383592 +vt 0.623992 0.442751 +vt 0.623992 0.472331 +vt 0.494581 0.531738 +vt 0.751488 0.505212 +vt 0.637409 0.505212 +vt 0.637426 0.423736 +vt 0.643952 0.382855 +vt 0.662673 0.346112 +vt 0.960285 0.189016 +vt 0.861164 0.276493 +vt 0.065130 0.847979 +vt 0.063198 0.846046 +vt 0.812354 0.990755 +vt 0.811263 0.989455 +vt 0.137391 0.989490 +vt 0.136299 0.988190 +vt 0.093578 0.838557 +vt 0.085754 0.830734 +vt 0.495769 0.720191 +vt 0.491213 0.720186 +vt 0.918835 0.006720 +vt 0.914279 0.006714 +vt 0.918835 0.133834 +vt 0.914279 0.133829 +vt 0.928726 0.760682 +vt 0.924170 0.760676 +vt 0.491671 0.862163 +vt 0.491675 0.857693 +vt 0.478919 0.890001 +vt 0.478919 0.885680 +vt 0.874581 0.263828 +vt 0.874581 0.268150 +vt 0.008595 0.959196 +vt 0.975647 0.760373 +vt 0.977533 0.764927 +vt 0.968778 0.762259 +vt 0.013148 0.952327 +vt 0.006709 0.952327 +vt 0.011262 0.950441 +vt 0.754778 0.877717 +vt 0.756778 0.877717 +vt 0.758193 0.879132 +vt 0.756778 0.882547 +vt 0.753363 0.881133 +vt 0.779926 0.255121 +vt 0.751964 0.276860 +vt 0.225603 0.772929 +vt 0.899184 0.949373 +vt 0.034866 0.950441 +vt 0.960285 0.202447 +vt 0.983989 0.589997 +vt 0.427431 0.941511 +vt 0.257257 0.941618 +vt 0.343251 0.947363 +vt 0.731292 0.920748 +vt 0.343251 0.918735 +vt 0.539887 0.896105 +vt 0.968778 0.502478 +vt 0.983989 0.540169 +vt 0.780115 0.742901 +vt 0.787227 0.962435 +vt 0.850753 0.617046 +vt 0.816684 0.006709 +vt 0.862890 0.294606 +vt 0.828821 0.141189 +vt 0.900342 0.619922 +vt 0.006709 0.706928 +vt 0.125275 0.706929 +vt 0.095695 0.706929 +vt 0.214013 0.706929 +vt 0.184434 0.706929 +vt 0.154853 0.706929 +vt 0.637409 0.518629 +vt 0.751488 0.729234 +vt 0.691829 0.706885 +vt 0.728568 0.725604 +vt 0.662673 0.677729 +vt 0.968778 0.476924 +vt 0.842238 0.276493 +vt 0.120950 0.876479 +vt 0.122882 0.874547 +vt 0.219956 0.978992 +vt 0.219936 0.969499 +vt 0.218845 0.970799 +vt 0.175823 0.989822 +vt 0.175803 0.980329 +vt 0.174712 0.981629 +vt 0.072337 0.780752 +vt 0.064513 0.772929 +vt 0.503572 0.281189 +vt 0.503567 0.276632 +vt 0.589022 0.821501 +vt 0.593579 0.821496 +vt 0.645385 0.836249 +vt 0.645379 0.831693 +vt 0.617198 0.821501 +vt 0.621755 0.821496 +vt 0.645381 0.864300 +vt 0.645378 0.859830 +vt 0.257257 0.890107 +vt 0.257257 0.885786 +vt 0.575605 0.935912 +vt 0.575605 0.940234 +vt 0.737731 0.958298 +vt 0.737731 0.960966 +vt 0.731292 0.958298 +vt 0.970664 0.746956 +vt 0.968778 0.745070 +vt 0.970664 0.740517 +vt 0.804547 0.154610 +vt 0.370198 0.877100 +vt 0.370198 0.879101 +vt 0.366783 0.880516 +vt 0.365368 0.877100 +vt 0.368783 0.875686 +vt 0.384226 0.965007 +vt 0.412188 0.986746 +vt 0.820646 0.154606 +vt 0.968778 0.571792 +vt 0.927137 0.949373 +vt 0.062819 0.950441 +vt 0.988237 0.202447 +vt 0.749497 0.905537 +vt 0.427431 0.913558 +vt 0.300254 0.921573 +vt 0.257257 0.913665 +vt 0.361456 0.932152 +vt 0.361456 0.903524 +vt 0.492337 0.875580 +vt 0.841407 0.729340 +vt 0.839420 0.727354 +vt 0.839420 0.709963 +vt 0.840002 0.708558 +vt 0.608440 0.985964 +vt 0.063198 0.928056 +vt 0.979436 0.112993 +vt 0.978688 0.113740 +vt 0.977631 0.113740 +vt 0.976884 0.111936 +vt 0.977631 0.111188 +vt 0.839420 0.826282 +vt 0.839420 0.825222 +vt 0.840338 0.824692 +vt 0.841256 0.825222 +vt 0.841256 0.826282 +vt 0.840882 0.808799 +vt 0.839420 0.810745 +vt 0.839420 0.809685 +vt 0.840338 0.809155 +vt 0.841256 0.809685 +vt 0.839894 0.637624 +vt 0.839420 0.779118 +vt 0.839420 0.778058 +vt 0.840338 0.777528 +vt 0.841256 0.778058 +vt 0.841256 0.779118 +vt 0.632137 0.258136 +vt 0.630675 0.260081 +vt 0.630675 0.259021 +vt 0.631593 0.258491 +vt 0.632511 0.259021 +vt 0.494581 0.545155 +vt 0.839420 0.842175 +vt 0.839420 0.841115 +vt 0.840338 0.840585 +vt 0.841256 0.841115 +vt 0.841256 0.842175 +vt 0.840882 0.872371 +vt 0.839420 0.874316 +vt 0.839420 0.873256 +vt 0.840338 0.872726 +vt 0.841256 0.873256 +vt 0.630675 0.275089 +vt 0.839420 0.889854 +vt 0.839420 0.888794 +vt 0.840338 0.888264 +vt 0.841256 0.888794 +vt 0.841256 0.889854 +vt 0.840882 0.856478 +vt 0.839420 0.858424 +vt 0.839420 0.857364 +vt 0.840338 0.856833 +vt 0.841256 0.857364 +vt 0.594062 0.949881 +vt 0.589022 0.949881 +vn 0.1139 0.0000 -0.9935 +vn 1.0000 0.0000 0.0000 +vn 0.1139 0.0000 0.9935 +vn 0.0587 -0.9983 0.0000 +vn 0.0587 0.9983 0.0000 +vn 0.0542 0.0000 -0.9985 +vn 0.0542 0.0000 0.9985 +vn 0.0542 -0.9985 0.0000 +vn 0.0542 0.9985 0.0000 +vn 0.0543 0.0000 0.9985 +vn 0.1140 -0.0000 0.9935 +vn 0.0000 0.0792 -0.9969 +vn 0.0000 0.0002 -1.0000 +vn 0.0000 0.3096 -0.9509 +vn 0.0000 0.5878 -0.8090 +vn 0.0000 0.8090 -0.5878 +vn 0.0000 0.9511 -0.3090 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.9969 -0.0785 +vn 0.0000 0.9941 -0.1087 +vn 0.0000 -0.9877 0.1564 +vn 0.0000 -0.9511 0.3090 +vn 0.0000 -0.8090 0.5878 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.3096 0.9509 +vn 0.0000 -0.0792 0.9969 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.0002 1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.9919 0.1267 0.0000 +vn 0.9679 0.2513 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.6412 0.0000 0.7674 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.9679 0.2513 0.0000 +vn -0.9919 0.1267 0.0000 +vn -0.6412 0.0000 0.7674 +vn 0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.5942 0.8043 0.0000 +vn 0.6894 0.7244 0.0000 +vn 0.9967 0.0811 0.0000 +vn -0.9997 0.0257 0.0000 +vn 0.5221 0.8529 0.0000 +vn 0.4776 -0.8786 0.0000 +vn 0.3044 -0.9525 0.0000 +vn -0.4776 0.8786 0.0000 +vn -0.5221 -0.8529 0.0000 +vn 0.9313 -0.3643 0.0000 +vn 0.2961 0.9552 0.0000 +vn 0.9585 0.2850 0.0000 +vn 0.9865 0.1639 0.0000 +vn 0.8450 -0.5348 0.0000 +vn -0.7830 0.6220 0.0000 +vn 0.9302 0.3672 0.0000 +vn -0.1471 -0.9891 0.0000 +vn -0.3299 -0.9440 0.0000 +vn 0.1471 0.9891 0.0000 +vn -0.9302 -0.3672 0.0000 +vn 0.5247 -0.8513 0.0000 +vn 0.8112 0.5848 0.0000 +vn -0.0001 0.0000 1.0000 +vn -0.1973 0.9803 0.0000 +vn -0.0742 0.9972 0.0000 +vn 0.6089 0.7932 0.0000 +vn 0.0001 0.0000 -1.0000 +vn -0.6901 -0.7237 0.0000 +vn -0.2817 0.9595 0.0000 +vn 0.9718 -0.2358 0.0000 +vn 0.9104 -0.4138 0.0000 +vn -0.9718 0.2358 0.0000 +vn 0.2817 -0.9595 0.0000 +vn 0.8952 0.4458 0.0000 +vn 0.8951 0.4458 0.0000 +vn -0.5092 0.8606 0.0000 +vn 0.2540 0.9672 0.0000 +vn 0.3720 0.9282 0.0000 +vn 0.8957 0.4446 0.0000 +vn -0.9381 -0.3464 0.0000 +vn 0.1690 0.9856 0.0000 +vn 0.7691 -0.6392 0.0000 +vn 0.6356 -0.7720 0.0000 +vn -0.7690 0.6392 0.0000 +vn -0.1690 -0.9856 0.0000 +vn 1.0000 0.0066 0.0000 +vn -0.0788 0.9969 0.0000 +vn -0.4775 0.8786 0.0000 +vn -0.0002 0.0000 -1.0000 +s off +f 1189/1079/104 1194/1080/104 1193/1081/104 +f 1194/1080/105 1191/1082/105 1193/1081/105 +f 1192/1083/106 1187/1084/106 1191/1082/106 +f 1193/1081/107 1187/1085/107 1189/1086/107 +f 1190/1087/108 1192/1083/108 1194/1080/108 +f 1198/1088/109 1201/1089/109 1197/1090/109 +f 1202/1091/105 1199/1092/105 1201/1089/105 +f 1200/1093/110 1195/1094/110 1199/1092/110 +f 1201/1089/111 1195/1095/111 1197/1096/111 +f 1198/1097/112 1200/1093/112 1202/1091/112 +f 1206/1098/109 1209/1099/109 1205/1100/109 +f 1210/1101/105 1207/1102/105 1209/1099/105 +f 1208/1103/113 1203/1104/113 1207/1102/113 +f 1209/1099/111 1203/1105/111 1205/1106/111 +f 1206/1107/112 1208/1103/112 1210/1101/112 +f 1214/1108/109 1217/1109/109 1213/1110/109 +f 1218/1111/105 1215/1112/105 1217/1109/105 +f 1216/1113/110 1211/1114/110 1215/1112/110 +f 1217/1109/111 1211/1115/111 1213/1116/111 +f 1214/1117/112 1216/1113/112 1218/1111/112 +f 1222/1118/109 1225/1119/109 1221/1120/109 +f 1226/1121/105 1223/1122/105 1225/1119/105 +f 1224/1123/113 1219/1124/113 1223/1122/113 +f 1225/1119/111 1219/1125/111 1221/1126/111 +f 1222/1127/112 1224/1123/112 1226/1121/112 +f 1189/1079/104 1190/1128/104 1194/1080/104 +f 1194/1080/105 1192/1083/105 1191/1082/105 +f 1192/1083/114 1188/1129/114 1187/1084/114 +f 1193/1081/107 1191/1082/107 1187/1085/107 +f 1190/1087/108 1188/1130/108 1192/1083/108 +f 1198/1088/109 1202/1091/109 1201/1089/109 +f 1202/1091/105 1200/1093/105 1199/1092/105 +f 1200/1093/110 1196/1131/110 1195/1094/110 +f 1201/1089/111 1199/1092/111 1195/1095/111 +f 1198/1097/112 1196/1132/112 1200/1093/112 +f 1206/1098/109 1210/1101/109 1209/1099/109 +f 1210/1101/105 1208/1103/105 1207/1102/105 +f 1208/1103/110 1204/1133/110 1203/1104/110 +f 1209/1099/111 1207/1102/111 1203/1105/111 +f 1206/1107/112 1204/1134/112 1208/1103/112 +f 1214/1108/109 1218/1111/109 1217/1109/109 +f 1218/1111/105 1216/1113/105 1215/1112/105 +f 1216/1113/110 1212/1135/110 1211/1114/110 +f 1217/1109/111 1215/1112/111 1211/1115/111 +f 1214/1117/112 1212/1136/112 1216/1113/112 +f 1222/1118/109 1226/1121/109 1225/1119/109 +f 1226/1121/105 1224/1123/105 1223/1122/105 +f 1224/1123/110 1220/1137/110 1219/1124/110 +f 1225/1119/111 1223/1122/111 1219/1125/111 +f 1222/1127/112 1220/1138/112 1224/1123/112 +s 1 +f 667/1139/115 1120/1140/116 1121/1141/115 +f 668/1142/117 1121/1141/115 1122/1143/117 +f 669/1144/118 1122/1143/117 1123/1145/118 +f 670/1146/119 1123/1145/118 1124/1147/119 +f 671/1148/120 1124/1147/119 1125/1149/120 +f 1120/1150/121 673/1151/121 1127/1152/121 +f 674/1153/122 663/1154/122 656/1155/122 +f 1126/1156/123 664/1157/122 672/1158/124 +f 866/1159/105 673/1160/105 663/1161/105 +f 656/1162/105 667/1163/105 661/1164/105 +f 667/1163/105 660/1165/105 661/1164/105 +f 668/1166/105 659/1167/105 660/1165/105 +f 669/1168/105 658/1169/105 659/1167/105 +f 670/1170/105 657/1171/105 658/1169/105 +f 671/1172/105 662/1173/105 657/1171/105 +f 673/1160/105 656/1162/105 663/1161/105 +f 678/1174/105 679/1175/105 680/1176/105 +f 680/1177/125 657/1178/126 662/1179/125 +f 678/1180/127 659/1181/128 658/1182/127 +f 676/1183/129 661/1184/130 660/1185/129 +f 663/1186/131 680/1187/131 662/1188/131 +f 679/1189/126 658/1182/127 657/1178/126 +f 677/1190/128 660/1185/129 659/1181/128 +f 675/1191/130 656/1192/132 661/1184/130 +f 682/1193/131 688/1194/131 687/1195/131 +f 688/1196/122 685/1197/122 693/1198/122 +f 686/1199/105 692/1200/105 690/1201/105 +f 691/1202/133 685/1203/133 684/1204/133 +f 693/1205/134 690/1201/134 692/1200/134 +f 686/1199/135 691/1206/135 687/1207/135 +f 692/1200/136 688/1196/136 693/1198/136 +f 689/1208/137 687/1195/137 688/1194/137 +f 682/1209/121 691/1206/121 684/1210/121 +f 694/1211/131 705/1212/131 698/1213/131 +f 703/1214/133 701/1215/133 697/1216/133 +f 705/1212/138 701/1215/139 704/1217/138 +f 702/1218/131 699/1219/131 705/1212/131 +f 694/1220/121 700/1221/121 696/1222/121 +f 699/1219/122 697/1223/122 701/1215/122 +f 698/1213/105 704/1217/138 700/1221/105 +f 700/1221/133 703/1214/133 696/1224/133 +f 706/1225/131 717/1226/131 710/1227/131 +f 715/1228/133 713/1229/133 709/1230/133 +f 717/1226/138 713/1229/139 716/1231/138 +f 714/1232/131 711/1233/131 717/1226/131 +f 706/1234/121 712/1235/121 708/1236/121 +f 711/1233/122 709/1237/122 713/1229/122 +f 710/1227/105 716/1231/138 712/1235/105 +f 712/1235/133 715/1228/133 708/1238/133 +f 727/1239/133 721/1240/133 720/1241/133 +f 733/1242/133 722/1243/133 723/1244/133 +f 718/1245/131 729/1246/131 728/1247/131 +f 718/1248/121 727/1239/121 720/1249/121 +f 729/1246/122 721/1250/122 726/1251/122 +f 726/1251/105 724/1252/105 725/1253/105 +f 727/1239/105 722/1254/105 724/1252/105 +f 729/1246/105 725/1253/105 723/1255/105 +f 728/1247/105 723/1255/105 722/1254/105 +f 732/1256/105 730/1257/105 731/1258/105 +f 732/1256/122 724/1259/122 722/1260/122 +f 730/1257/121 723/1261/121 725/1262/121 +f 731/1258/131 725/1263/131 724/1264/131 +f 741/1265/122 737/1266/122 744/1267/122 +f 739/1268/105 745/1269/105 742/1270/105 +f 739/1268/135 743/1271/135 738/1272/135 +f 745/1269/136 741/1265/136 744/1267/136 +f 734/1273/121 743/1271/121 736/1274/121 +f 753/1275/122 749/1276/122 756/1277/122 +f 751/1278/105 757/1279/105 754/1280/105 +f 751/1278/135 755/1281/135 750/1282/135 +f 757/1279/136 753/1275/136 756/1277/136 +f 746/1283/121 755/1281/121 748/1284/121 +f 765/1285/122 761/1286/122 768/1287/122 +f 763/1288/105 769/1289/105 766/1290/105 +f 763/1288/135 767/1291/135 762/1292/135 +f 769/1289/136 765/1285/136 768/1287/136 +f 758/1293/121 767/1291/121 760/1294/121 +f 777/1295/122 773/1296/122 780/1297/122 +f 775/1298/105 781/1299/105 778/1300/105 +f 775/1298/135 779/1301/135 774/1302/135 +f 781/1299/136 777/1295/136 780/1297/136 +f 770/1303/121 779/1301/121 772/1304/121 +f 789/1305/122 785/1306/122 792/1307/122 +f 787/1308/105 793/1309/105 790/1310/105 +f 787/1308/135 791/1311/135 786/1312/135 +f 793/1309/136 789/1305/136 792/1307/136 +f 782/1313/121 791/1311/121 784/1314/121 +f 801/1315/122 797/1316/122 804/1317/122 +f 799/1318/105 805/1319/105 802/1320/105 +f 799/1318/135 803/1321/135 798/1322/135 +f 805/1319/136 801/1315/136 804/1317/136 +f 794/1323/121 803/1321/121 796/1324/121 +f 813/1325/122 809/1326/122 816/1327/122 +f 811/1328/105 817/1329/105 814/1330/105 +f 811/1328/135 815/1331/135 810/1332/135 +f 817/1329/136 813/1325/136 816/1327/136 +f 806/1333/121 815/1331/121 808/1334/121 +f 820/1335/140 819/1336/121 818/1337/121 +f 822/1338/141 821/1339/140 820/1335/140 +f 824/1340/142 823/1341/141 822/1338/141 +f 826/1342/143 825/1343/142 824/1340/142 +f 828/1344/122 827/1345/143 826/1342/143 +f 840/1346/131 830/1347/131 832/1348/131 +f 823/1349/133 827/1350/133 831/1351/133 +f 833/1352/133 835/1353/133 819/1354/133 +f 830/1347/131 837/1355/131 828/1356/131 +f 832/1348/131 828/1356/131 824/1357/131 +f 842/1358/144 857/1359/145 849/1360/145 +f 853/1361/133 855/1362/133 857/1363/133 +f 836/1364/133 831/1351/133 829/1365/133 +f 837/1366/122 829/1367/122 828/1344/122 +f 835/1368/121 818/1337/121 819/1336/121 +f 834/1369/131 832/1348/131 818/1370/131 +f 839/1371/133 833/1352/133 831/1351/133 +f 848/1372/146 855/1373/147 847/1374/147 +f 846/1375/143 853/1376/142 845/1377/142 +f 844/1378/141 850/1379/140 843/1380/140 +f 849/1381/145 856/1382/146 848/1372/146 +f 847/1374/147 854/1383/143 846/1375/143 +f 843/1380/140 852/1384/144 842/1358/144 +f 845/1377/142 851/1385/141 844/1378/141 +f 859/1386/148 673/1387/148 866/1388/148 +f 863/1389/121 1140/1390/121 1132/1391/121 +f 664/1157/122 873/1392/122 672/1158/122 +f 871/1393/148 863/1394/148 864/1395/148 +f 869/1396/148 861/1397/148 862/1398/148 +f 862/1399/122 881/1400/122 869/1401/122 +f 867/1402/148 858/1403/148 860/1404/148 +f 864/1395/133 1132/1405/133 1131/1406/133 +f 869/1407/105 878/1408/105 870/1409/105 +f 862/1398/133 1134/1410/133 1133/1411/133 +f 860/1404/133 1136/1412/133 1135/1413/133 +f 859/1414/121 1138/1415/121 1130/1416/121 +f 863/1389/121 878/1417/121 879/1418/121 +f 872/1419/148 886/1420/148 873/1421/148 +f 876/1422/148 874/1423/148 875/1424/148 +f 879/1425/148 881/1426/148 880/1427/148 +f 882/1428/148 884/1429/148 883/1430/148 +f 875/1424/133 1139/1431/133 1138/1432/133 +f 879/1425/133 1141/1433/133 1140/1434/133 +f 883/1430/133 1143/1435/133 1142/1436/133 +f 861/1437/121 882/1438/121 883/1439/121 +f 861/1437/121 1142/1440/121 1134/1441/121 +f 867/1442/105 882/1428/105 868/1443/105 +f 859/1414/121 876/1444/121 875/1445/121 +f 860/1446/122 885/1447/122 867/1448/122 +f 871/1449/105 876/1422/105 866/1450/105 +f 864/1451/122 877/1452/122 871/1453/122 +f 858/1454/121 1144/1455/121 1136/1456/121 +f 858/1454/121 886/1457/121 887/1458/121 +f 672/1459/105 886/1420/105 865/1460/105 +f 1137/1461/133 887/1462/133 872/1419/133 +f 1135/1463/122 884/1464/122 860/1446/122 +f 1133/1465/122 880/1466/122 862/1399/122 +f 1131/1467/122 874/1468/122 864/1451/122 +f 1130/1469/133 665/1470/133 859/1386/133 +f 1128/1471/122 872/1472/122 664/1157/122 +f 665/1473/121 1127/1152/121 673/1151/121 +f 671/1148/120 1126/1156/123 672/1158/124 +f 1120/1140/116 899/1474/115 1121/1141/115 +f 1121/1141/115 900/1475/117 1122/1143/117 +f 1122/1143/117 901/1476/118 1123/1145/118 +f 1123/1145/118 902/1477/119 1124/1147/119 +f 1124/1147/119 903/1478/120 1125/1149/120 +f 905/1479/121 1120/1150/121 1127/1152/121 +f 895/1480/122 906/1481/122 888/1482/122 +f 1126/1156/123 896/1483/122 1128/1471/122 +f 1099/1484/149 1097/1485/149 894/1486/149 +f 888/1487/149 899/1488/149 898/1489/149 +f 892/1490/149 899/1488/149 893/1491/149 +f 891/1492/149 900/1493/149 892/1490/149 +f 891/1492/149 902/1494/149 901/1495/149 +f 889/1496/149 902/1494/149 890/1497/149 +f 894/1486/149 903/1498/149 889/1496/149 +f 888/1487/149 905/1499/149 895/1500/149 +f 908/1501/149 907/1502/149 913/1503/149 +f 889/1504/126 912/1505/125 894/1506/125 +f 891/1507/128 910/1508/127 890/1509/127 +f 893/1510/130 908/1511/129 892/1512/129 +f 894/1513/131 913/1514/131 895/1515/131 +f 890/1509/127 911/1516/126 889/1504/126 +f 892/1512/129 909/1517/128 891/1507/128 +f 888/1518/132 907/1519/130 893/1510/130 +f 920/1520/131 914/1521/131 919/1522/131 +f 917/1523/122 920/1524/122 925/1525/122 +f 924/1526/149 918/1527/149 922/1528/149 +f 917/1529/133 923/1530/133 916/1531/133 +f 922/1528/150 925/1532/150 924/1526/150 +f 923/1533/151 918/1527/151 919/1534/151 +f 920/1524/152 924/1526/152 925/1525/152 +f 919/1522/153 921/1535/153 920/1520/153 +f 923/1533/121 914/1536/121 916/1537/121 +f 937/1538/131 926/1539/131 930/1540/131 +f 935/1541/133 933/1542/133 936/1543/133 +f 933/1542/154 937/1538/155 936/1543/155 +f 931/1544/131 934/1545/131 937/1538/131 +f 932/1546/121 926/1547/121 928/1548/121 +f 929/1549/122 931/1544/122 933/1542/122 +f 936/1543/155 930/1540/149 932/1546/149 +f 935/1541/133 932/1546/133 928/1550/133 +f 949/1551/131 938/1552/131 942/1553/131 +f 947/1554/133 945/1555/133 948/1556/133 +f 945/1555/154 949/1551/155 948/1556/155 +f 943/1557/131 946/1558/131 949/1551/131 +f 944/1559/121 938/1560/121 940/1561/121 +f 941/1562/122 943/1557/122 945/1555/122 +f 948/1556/155 942/1553/149 944/1559/149 +f 947/1554/133 944/1559/133 940/1563/133 +f 953/1564/133 959/1565/133 952/1566/133 +f 954/1567/133 965/1568/133 955/1569/133 +f 961/1570/131 950/1571/131 960/1572/131 +f 959/1565/121 950/1573/121 952/1574/121 +f 953/1575/122 961/1570/122 958/1576/122 +f 956/1577/149 958/1576/149 957/1578/149 +f 956/1577/149 960/1572/149 959/1565/149 +f 955/1579/149 958/1576/149 961/1570/149 +f 955/1579/149 960/1572/149 954/1580/149 +f 962/1581/149 964/1582/149 963/1583/149 +f 956/1584/122 964/1582/122 954/1585/122 +f 955/1586/121 962/1581/121 957/1587/121 +f 957/1588/131 963/1583/131 956/1589/131 +f 969/1590/122 973/1591/122 976/1592/122 +f 977/1593/149 971/1594/149 974/1595/149 +f 975/1596/151 971/1594/151 970/1597/151 +f 973/1591/152 977/1593/152 976/1592/152 +f 975/1596/121 966/1598/121 968/1599/121 +f 981/1600/122 985/1601/122 988/1602/122 +f 989/1603/149 983/1604/149 986/1605/149 +f 987/1606/151 983/1604/151 982/1607/151 +f 985/1601/152 989/1603/152 988/1602/152 +f 987/1606/121 978/1608/121 980/1609/121 +f 993/1610/122 997/1611/122 1000/1612/122 +f 1001/1613/149 995/1614/149 998/1615/149 +f 999/1616/151 995/1614/151 994/1617/151 +f 997/1611/152 1001/1613/152 1000/1612/152 +f 999/1616/121 990/1618/121 992/1619/121 +f 1005/1620/122 1009/1621/122 1012/1622/122 +f 1013/1623/149 1007/1624/149 1010/1625/149 +f 1011/1626/151 1007/1624/151 1006/1627/151 +f 1009/1621/152 1013/1623/152 1012/1622/152 +f 1011/1626/121 1002/1628/121 1004/1629/121 +f 1017/1630/122 1021/1631/122 1024/1632/122 +f 1025/1633/149 1019/1634/149 1022/1635/149 +f 1023/1636/151 1019/1634/151 1018/1637/151 +f 1021/1631/152 1025/1633/152 1024/1632/152 +f 1023/1636/121 1014/1638/121 1016/1639/121 +f 1029/1640/122 1033/1641/122 1036/1642/122 +f 1037/1643/149 1031/1644/149 1034/1645/149 +f 1035/1646/151 1031/1644/151 1030/1647/151 +f 1033/1641/152 1037/1643/152 1036/1642/152 +f 1035/1646/121 1026/1648/121 1028/1649/121 +f 1041/1650/122 1045/1651/122 1048/1652/122 +f 1049/1653/149 1043/1654/149 1046/1655/149 +f 1047/1656/151 1043/1654/151 1042/1657/151 +f 1045/1651/152 1049/1653/152 1048/1652/152 +f 1047/1656/121 1038/1658/121 1040/1659/121 +f 1051/1660/121 1052/1661/144 1050/1662/121 +f 1053/1663/144 1054/1664/145 1052/1661/144 +f 1055/1665/145 1056/1666/146 1054/1664/145 +f 1057/1667/146 1058/1668/147 1056/1666/146 +f 1059/1669/147 1060/1670/122 1058/1668/147 +f 1062/1671/131 1072/1672/131 1064/1673/131 +f 1057/1674/133 1055/1675/133 1063/1676/133 +f 1065/1677/133 1067/1678/133 1073/1679/133 +f 1062/1671/131 1069/1680/131 1070/1681/131 +f 1056/1682/131 1060/1683/131 1064/1673/131 +f 1081/1684/141 1084/1685/140 1074/1686/140 +f 1089/1687/133 1087/1688/133 1085/1689/133 +f 1063/1676/133 1068/1690/133 1061/1691/133 +f 1061/1692/122 1069/1693/122 1060/1670/122 +f 1050/1662/121 1067/1694/121 1051/1660/121 +f 1064/1673/131 1066/1695/131 1050/1696/131 +f 1065/1677/133 1071/1697/133 1063/1676/133 +f 1087/1698/143 1080/1699/142 1079/1700/143 +f 1085/1701/146 1078/1702/147 1077/1703/146 +f 1082/1704/144 1076/1705/145 1075/1706/144 +f 1088/1707/142 1081/1708/141 1080/1699/142 +f 1086/1709/147 1079/1700/143 1078/1702/147 +f 1084/1685/140 1075/1706/144 1074/1686/140 +f 1083/1710/145 1077/1703/146 1076/1705/145 +f 905/1711/156 1091/1712/156 1098/1713/156 +f 1140/1390/121 1095/1714/121 1132/1391/121 +f 1105/1715/122 896/1483/122 904/1716/122 +f 1095/1717/156 1103/1718/156 1096/1719/156 +f 1093/1720/156 1101/1721/156 1094/1722/156 +f 1113/1723/122 1094/1724/122 1101/1725/122 +f 1090/1726/156 1099/1727/156 1092/1728/156 +f 1132/1405/133 1096/1719/133 1131/1406/133 +f 1110/1729/149 1101/1730/149 1102/1731/149 +f 1134/1410/133 1094/1722/133 1133/1411/133 +f 1136/1412/133 1092/1728/133 1135/1413/133 +f 1138/1415/121 1091/1732/121 1130/1416/121 +f 1095/1714/121 1110/1733/121 1102/1734/121 +f 1118/1735/156 1104/1736/156 1105/1737/156 +f 1106/1738/156 1108/1739/156 1107/1740/156 +f 1111/1741/156 1113/1742/156 1110/1729/156 +f 1116/1743/156 1114/1744/156 1115/1745/156 +f 1139/1431/133 1107/1740/133 1138/1432/133 +f 1141/1433/133 1111/1741/133 1140/1434/133 +f 1143/1435/133 1115/1745/133 1142/1436/133 +f 1093/1746/121 1114/1747/121 1100/1748/121 +f 1142/1440/121 1093/1746/121 1134/1441/121 +f 1114/1744/149 1099/1749/149 1100/1750/149 +f 1091/1732/121 1108/1751/121 1098/1752/121 +f 1117/1753/122 1092/1754/122 1099/1755/122 +f 1108/1739/149 1103/1756/149 1098/1757/149 +f 1109/1758/122 1096/1759/122 1103/1760/122 +f 1144/1455/121 1090/1761/121 1136/1456/121 +f 1090/1761/121 1118/1762/121 1097/1763/121 +f 1118/1735/149 904/1764/149 1097/1765/149 +f 1119/1766/133 1137/1461/133 1104/1736/133 +f 1116/1767/122 1135/1463/122 1092/1754/122 +f 1112/1768/122 1133/1465/122 1094/1724/122 +f 1106/1769/122 1131/1467/122 1096/1759/122 +f 897/1770/133 1130/1469/133 1091/1712/133 +f 1104/1771/122 1128/1471/122 896/1483/122 +f 1127/1152/121 897/1772/121 905/1479/121 +f 1126/1156/123 903/1478/120 904/1716/124 +f 1146/1773/157 1147/1774/134 1145/1775/157 +f 1148/1776/134 1149/1777/105 1147/1774/134 +f 1150/1778/105 1151/1779/137 1149/1777/105 +f 1152/1780/137 1153/1781/158 1151/1779/137 +f 1147/1782/122 1151/1783/122 1153/1784/122 +f 1146/1785/121 1154/1786/121 1152/1787/121 +f 1157/1788/122 1155/1789/136 1156/1790/122 +f 1155/1791/133 1173/1792/133 1172/1793/133 +f 1158/1794/136 1165/1795/105 1155/1789/136 +f 1159/1796/105 1166/1797/135 1165/1795/105 +f 1168/1798/133 1182/1799/133 1180/1800/133 +f 1160/1801/135 1167/1802/121 1166/1797/135 +f 1166/1803/133 1173/1792/133 1165/1804/133 +f 1161/1805/121 1168/1806/151 1167/1802/121 +f 1156/1807/133 1172/1793/133 1171/1808/133 +f 1162/1809/151 1169/1810/149 1168/1806/151 +f 1163/1811/149 1170/1812/152 1169/1813/149 +f 1164/1814/152 1156/1790/122 1170/1812/152 +f 1171/1815/122 1175/1816/136 1174/1817/122 +f 1172/1818/136 1177/1819/105 1175/1816/136 +f 1173/1820/105 1179/1821/135 1177/1819/105 +f 1176/1822/135 1181/1823/121 1179/1821/135 +f 1178/1824/121 1183/1825/151 1181/1823/121 +f 1180/1826/151 1185/1827/149 1183/1825/151 +f 1184/1828/152 1174/1817/122 1186/1829/152 +f 1182/1830/149 1186/1829/152 1185/1831/149 +f 1167/1832/133 1180/1800/133 1178/1833/133 +f 1156/1807/133 1184/1834/133 1170/1835/133 +f 1185/1836/131 1186/1837/131 1179/1838/131 +f 1167/1832/133 1176/1839/133 1166/1803/133 +f 1170/1835/133 1182/1799/133 1169/1840/133 +f 1232/1841/133 1233/1842/133 1234/1843/133 +f 1235/1844/159 1234/1845/160 1233/1846/159 +f 1238/1847/161 1240/1848/161 1237/1849/161 +f 1235/1850/131 1238/1851/131 1241/1852/131 +f 1245/1853/131 1246/1854/131 1241/1852/131 +f 1242/1855/162 1229/1856/162 1228/1857/162 +f 1236/1858/160 1227/1859/163 1234/1845/160 +f 1245/1860/164 1231/1861/164 1230/1862/164 +f 1241/1863/165 1237/1849/165 1232/1864/165 +f 1243/1865/166 1228/1866/166 1227/1859/166 +f 1246/1867/167 1230/1862/167 1229/1856/167 +f 1244/1868/168 1232/1864/168 1231/1861/168 +f 1233/1846/159 1239/1869/169 1235/1844/159 +f 1233/1842/133 1237/1870/133 1240/1871/133 +f 1252/1872/133 1253/1873/133 1254/1874/133 +f 1255/1875/170 1254/1876/171 1253/1877/170 +f 1258/1878/172 1260/1879/172 1257/1880/172 +f 1255/1881/131 1258/1882/131 1261/1883/131 +f 1265/1884/131 1266/1885/131 1261/1883/131 +f 1262/1886/173 1249/1887/173 1248/1888/173 +f 1256/1889/171 1247/1890/174 1254/1876/171 +f 1265/1891/175 1251/1892/175 1250/1893/175 +f 1261/1894/176 1257/1880/176 1252/1895/176 +f 1263/1896/177 1248/1897/177 1247/1890/177 +f 1266/1898/178 1250/1893/178 1249/1887/178 +f 1264/1899/179 1252/1895/179 1251/1892/179 +f 1255/1875/170 1260/1879/180 1259/1900/180 +f 1253/1873/133 1257/1901/133 1260/1902/133 +f 1272/1903/133 1273/1904/181 1274/1905/133 +f 1275/1906/182 1274/1907/183 1273/1908/182 +f 1278/1909/184 1280/1910/184 1277/1911/184 +f 1275/1912/185 1278/1913/131 1281/1914/131 +f 1285/1915/131 1286/1916/131 1281/1914/131 +f 1282/1917/186 1269/1918/186 1268/1919/186 +f 1276/1920/183 1267/1921/187 1274/1907/183 +f 1285/1922/188 1271/1923/188 1270/1924/188 +f 1281/1925/189 1277/1911/189 1272/1926/189 +f 1267/1921/190 1282/1927/190 1268/1928/190 +f 1286/1929/191 1270/1924/191 1269/1918/191 +f 1284/1930/192 1272/1926/193 1271/1923/193 +f 1273/1908/182 1279/1931/194 1275/1906/182 +f 1273/1904/181 1277/1932/133 1280/1933/133 +f 1292/1934/133 1293/1935/133 1294/1936/133 +f 1295/1937/195 1294/1938/196 1293/1939/195 +f 1298/1940/197 1300/1941/197 1297/1942/197 +f 1295/1943/131 1298/1944/131 1301/1945/131 +f 1305/1946/131 1306/1947/131 1301/1945/131 +f 1302/1948/198 1289/1949/198 1288/1950/198 +f 1296/1951/196 1287/1952/199 1294/1938/196 +f 1290/1953/200 1304/1954/200 1291/1955/200 +f 1301/1956/201 1297/1942/201 1292/1957/201 +f 1303/1958/202 1288/1959/202 1287/1952/202 +f 1306/1960/203 1290/1953/203 1289/1949/203 +f 1304/1954/204 1292/1957/204 1291/1955/204 +f 1293/1939/195 1299/1961/205 1295/1937/195 +f 1293/1935/133 1297/1962/133 1300/1963/133 +f 667/1139/115 666/1964/116 1120/1140/116 +f 668/1142/117 667/1139/115 1121/1141/115 +f 669/1144/118 668/1142/117 1122/1143/117 +f 670/1146/119 669/1144/118 1123/1145/118 +f 671/1148/120 670/1146/119 1124/1147/119 +f 1120/1150/121 666/1965/121 673/1151/121 +f 674/1153/122 681/1966/122 663/1154/122 +f 1126/1156/123 1128/1471/122 664/1157/122 +f 663/1161/105 662/1173/105 869/1967/105 +f 662/1173/105 672/1968/105 865/1969/105 +f 867/1970/105 662/1173/105 865/1969/105 +f 867/1970/105 868/1971/105 662/1173/105 +f 868/1971/105 869/1967/105 662/1173/105 +f 870/1972/105 871/1973/105 663/1161/105 +f 871/1973/105 866/1159/105 663/1161/105 +f 869/1967/105 870/1972/105 663/1161/105 +f 656/1162/105 666/1974/105 667/1163/105 +f 667/1163/105 668/1166/105 660/1165/105 +f 668/1166/105 669/1168/105 659/1167/105 +f 669/1168/105 670/1170/105 658/1169/105 +f 670/1170/105 671/1172/105 657/1171/105 +f 671/1172/105 672/1968/105 662/1173/105 +f 673/1160/105 666/1974/105 656/1162/105 +f 680/1176/105 681/1975/105 678/1174/105 +f 681/1975/105 674/1976/105 675/1977/105 +f 676/1978/105 681/1975/105 675/1977/105 +f 676/1978/105 677/1979/105 681/1975/105 +f 677/1979/105 678/1174/105 681/1975/105 +f 680/1177/125 679/1189/126 657/1178/126 +f 678/1180/127 677/1190/128 659/1181/128 +f 676/1183/129 675/1191/130 661/1184/130 +f 663/1186/131 681/1980/131 680/1187/131 +f 679/1189/126 678/1180/127 658/1182/127 +f 677/1190/128 676/1183/129 660/1185/129 +f 675/1191/130 674/1981/132 656/1192/132 +f 682/1193/131 683/1982/131 688/1194/131 +f 688/1196/122 683/1983/122 685/1197/122 +f 686/1199/105 689/1208/105 692/1200/105 +f 691/1202/133 693/1205/133 685/1203/133 +f 693/1205/134 691/1202/134 690/1201/134 +f 686/1199/135 690/1201/135 691/1206/135 +f 692/1200/136 689/1208/136 688/1196/136 +f 689/1208/137 686/1199/137 687/1195/137 +f 682/1209/121 687/1207/121 691/1206/121 +f 694/1211/131 702/1218/131 705/1212/131 +f 703/1214/133 704/1217/133 701/1215/133 +f 705/1212/138 699/1219/139 701/1215/139 +f 702/1218/131 695/1984/131 699/1219/131 +f 694/1220/121 698/1213/121 700/1221/121 +f 699/1219/122 695/1985/122 697/1223/122 +f 698/1213/105 705/1212/138 704/1217/138 +f 700/1221/133 704/1217/133 703/1214/133 +f 706/1225/131 714/1232/131 717/1226/131 +f 715/1228/133 716/1231/133 713/1229/133 +f 717/1226/138 711/1233/139 713/1229/139 +f 714/1232/131 707/1986/131 711/1233/131 +f 706/1234/121 710/1227/121 712/1235/121 +f 711/1233/122 707/1987/122 709/1237/122 +f 710/1227/105 717/1226/138 716/1231/138 +f 712/1235/133 716/1231/133 715/1228/133 +f 727/1239/133 726/1251/133 721/1240/133 +f 733/1242/133 732/1256/133 722/1243/133 +f 718/1245/131 719/1988/131 729/1246/131 +f 718/1248/121 728/1247/121 727/1239/121 +f 729/1246/122 719/1989/122 721/1250/122 +f 726/1251/105 727/1239/105 724/1252/105 +f 727/1239/105 728/1247/105 722/1254/105 +f 729/1246/105 726/1251/105 725/1253/105 +f 728/1247/105 729/1246/105 723/1255/105 +f 732/1256/105 733/1242/105 730/1257/105 +f 732/1256/122 731/1258/122 724/1259/122 +f 730/1257/121 733/1242/121 723/1261/121 +f 731/1258/131 730/1257/131 725/1263/131 +f 741/1265/122 735/1990/122 737/1266/122 +f 739/1268/105 740/1991/105 745/1269/105 +f 739/1268/135 742/1270/135 743/1271/135 +f 745/1269/136 740/1991/136 741/1265/136 +f 734/1273/121 738/1272/121 743/1271/121 +f 753/1275/122 747/1992/122 749/1276/122 +f 751/1278/105 752/1993/105 757/1279/105 +f 751/1278/135 754/1280/135 755/1281/135 +f 757/1279/136 752/1993/136 753/1275/136 +f 746/1283/121 750/1282/121 755/1281/121 +f 765/1285/122 759/1994/122 761/1286/122 +f 763/1288/105 764/1995/105 769/1289/105 +f 763/1288/135 766/1290/135 767/1291/135 +f 769/1289/136 764/1995/136 765/1285/136 +f 758/1293/121 762/1292/121 767/1291/121 +f 777/1295/122 771/1996/122 773/1296/122 +f 775/1298/105 776/1997/105 781/1299/105 +f 775/1298/135 778/1300/135 779/1301/135 +f 781/1299/136 776/1997/136 777/1295/136 +f 770/1303/121 774/1302/121 779/1301/121 +f 789/1305/122 783/1998/122 785/1306/122 +f 787/1308/105 788/1999/105 793/1309/105 +f 787/1308/135 790/1310/135 791/1311/135 +f 793/1309/136 788/1999/136 789/1305/136 +f 782/1313/121 786/1312/121 791/1311/121 +f 801/1315/122 795/2000/122 797/1316/122 +f 799/1318/105 800/2001/105 805/1319/105 +f 799/1318/135 802/1320/135 803/1321/135 +f 805/1319/136 800/2001/136 801/1315/136 +f 794/1323/121 798/1322/121 803/1321/121 +f 813/1325/122 807/2002/122 809/1326/122 +f 811/1328/105 812/2003/105 817/1329/105 +f 811/1328/135 814/1330/135 815/1331/135 +f 817/1329/136 812/2003/136 813/1325/136 +f 806/1333/121 810/1332/121 815/1331/121 +f 820/1335/140 821/1339/140 819/1336/121 +f 822/1338/141 823/1341/141 821/1339/140 +f 824/1340/142 825/1343/142 823/1341/141 +f 826/1342/143 827/1345/143 825/1343/142 +f 828/1344/122 829/1367/122 827/1345/143 +f 840/1346/131 838/2004/131 830/1347/131 +f 819/1354/133 821/2005/133 823/1349/133 +f 823/1349/133 825/2006/133 827/1350/133 +f 827/1350/133 829/1365/133 831/1351/133 +f 831/1351/133 833/1352/133 819/1354/133 +f 819/1354/133 823/1349/133 831/1351/133 +f 833/1352/133 841/2007/133 835/1353/133 +f 830/1347/131 838/2004/131 837/1355/131 +f 820/2008/131 818/1370/131 832/1348/131 +f 832/1348/131 830/1347/131 828/1356/131 +f 828/1356/131 826/2009/131 824/1357/131 +f 824/1357/131 822/2010/131 820/2008/131 +f 820/2008/131 832/1348/131 824/1357/131 +f 842/1358/144 852/1384/144 857/1359/145 +f 857/1363/133 852/2011/133 850/2012/133 +f 850/2012/133 851/2013/133 857/1363/133 +f 851/2013/133 853/1361/133 857/1363/133 +f 853/1361/133 854/2014/133 855/1362/133 +f 855/1362/133 856/2015/133 857/1363/133 +f 836/1364/133 839/1371/133 831/1351/133 +f 837/1366/122 836/2016/122 829/1367/122 +f 835/1368/121 834/2017/121 818/1337/121 +f 834/1369/131 840/1346/131 832/1348/131 +f 839/1371/133 841/2007/133 833/1352/133 +f 848/1372/146 856/1382/146 855/1373/147 +f 846/1375/143 854/1383/143 853/1376/142 +f 844/1378/141 851/1385/141 850/1379/140 +f 849/1381/145 857/2018/145 856/1382/146 +f 847/1374/147 855/1373/147 854/1383/143 +f 843/1380/140 850/1379/140 852/1384/144 +f 845/1377/142 853/1376/142 851/1385/141 +f 859/1386/148 665/1470/148 673/1387/148 +f 863/1389/121 879/1418/121 1140/1390/121 +f 664/1157/122 872/1472/122 873/1392/122 +f 871/1393/148 870/2019/148 863/1394/148 +f 869/1396/148 868/2020/148 861/1397/148 +f 862/1399/122 880/1466/122 881/1400/122 +f 867/1402/148 865/2021/148 858/1403/148 +f 864/1395/133 863/1394/133 1132/1405/133 +f 869/1407/105 881/1426/105 878/1408/105 +f 862/1398/133 861/1397/133 1134/1410/133 +f 860/1404/133 858/1403/133 1136/1412/133 +f 859/1414/121 875/1445/121 1138/1415/121 +f 863/1389/121 870/2022/121 878/1417/121 +f 872/1419/148 887/1462/148 886/1420/148 +f 876/1422/148 877/2023/148 874/1423/148 +f 879/1425/148 878/1408/148 881/1426/148 +f 882/1428/148 885/2024/148 884/1429/148 +f 875/1424/133 874/1423/133 1139/1431/133 +f 879/1425/133 880/1427/133 1141/1433/133 +f 883/1430/133 884/1429/133 1143/1435/133 +f 861/1437/121 868/2025/121 882/1438/121 +f 861/1437/121 883/1439/121 1142/1440/121 +f 867/1442/105 885/2024/105 882/1428/105 +f 859/1414/121 866/2026/121 876/1444/121 +f 860/1446/122 884/1464/122 885/1447/122 +f 871/1449/105 877/2023/105 876/1422/105 +f 864/1451/122 874/1468/122 877/1452/122 +f 858/1454/121 887/1458/121 1144/1455/121 +f 858/1454/121 865/2027/121 886/1457/121 +f 672/1459/105 873/1421/105 886/1420/105 +f 1137/1461/133 1144/2028/133 887/1462/133 +f 1135/1463/122 1143/2029/122 884/1464/122 +f 1133/1465/122 1141/2030/122 880/1466/122 +f 1131/1467/122 1139/2031/122 874/1468/122 +f 1130/1469/133 1129/2032/133 665/1470/133 +f 1128/1471/122 1137/2033/122 872/1472/122 +f 665/1473/121 1129/2034/121 1127/1152/121 +f 671/1148/120 1125/1149/120 1126/1156/123 +f 1120/1140/116 898/2035/116 899/1474/115 +f 1121/1141/115 899/1474/115 900/1475/117 +f 1122/1143/117 900/1475/117 901/1476/118 +f 1123/1145/118 901/1476/118 902/1477/119 +f 1124/1147/119 902/1477/119 903/1478/120 +f 905/1479/121 898/2036/121 1120/1150/121 +f 895/1480/122 913/2037/122 906/1481/122 +f 1126/1156/123 904/1716/124 896/1483/122 +f 904/2038/149 894/1486/149 1097/1485/149 +f 894/1486/149 895/1500/149 1101/2039/149 +f 1099/1484/149 894/1486/149 1100/2040/149 +f 895/1500/149 905/1499/149 1098/2041/149 +f 1098/2041/149 1103/2042/149 895/1500/149 +f 1103/2042/149 1102/2043/149 895/1500/149 +f 1101/2039/149 1100/2040/149 894/1486/149 +f 1102/2043/149 1101/2039/149 895/1500/149 +f 888/1487/149 893/1491/149 899/1488/149 +f 892/1490/149 900/1493/149 899/1488/149 +f 891/1492/149 901/1495/149 900/1493/149 +f 891/1492/149 890/1497/149 902/1494/149 +f 889/1496/149 903/1498/149 902/1494/149 +f 894/1486/149 904/2038/149 903/1498/149 +f 888/1487/149 898/1489/149 905/1499/149 +f 906/2044/149 913/1503/149 907/1502/149 +f 913/1503/149 912/2045/149 910/2046/149 +f 912/2045/149 911/2047/149 910/2046/149 +f 910/2046/149 909/2048/149 913/1503/149 +f 909/2048/149 908/1501/149 913/1503/149 +f 889/1504/126 911/1516/126 912/1505/125 +f 891/1507/128 909/1517/128 910/1508/127 +f 893/1510/130 907/1519/130 908/1511/129 +f 894/1513/131 912/2049/131 913/1514/131 +f 890/1509/127 910/1508/127 911/1516/126 +f 892/1512/129 908/1511/129 909/1517/128 +f 888/1518/132 906/2050/132 907/1519/130 +f 920/1520/131 915/2051/131 914/1521/131 +f 917/1523/122 915/2052/122 920/1524/122 +f 924/1526/149 921/1535/149 918/1527/149 +f 917/1529/133 925/1532/133 923/1530/133 +f 922/1528/150 923/1530/150 925/1532/150 +f 923/1533/151 922/1528/151 918/1527/151 +f 920/1524/152 921/1535/152 924/1526/152 +f 919/1522/153 918/1527/153 921/1535/153 +f 923/1533/121 919/1534/121 914/1536/121 +f 937/1538/131 934/1545/131 926/1539/131 +f 935/1541/133 929/2053/133 933/1542/133 +f 933/1542/154 931/1544/154 937/1538/155 +f 931/1544/131 927/2054/131 934/1545/131 +f 932/1546/121 930/1540/121 926/1547/121 +f 929/1549/122 927/2055/122 931/1544/122 +f 936/1543/155 937/1538/155 930/1540/149 +f 935/1541/133 936/1543/133 932/1546/133 +f 949/1551/131 946/1558/131 938/1552/131 +f 947/1554/133 941/2056/133 945/1555/133 +f 945/1555/154 943/1557/154 949/1551/155 +f 943/1557/131 939/2057/131 946/1558/131 +f 944/1559/121 942/1553/121 938/1560/121 +f 941/1562/122 939/2058/122 943/1557/122 +f 948/1556/155 949/1551/155 942/1553/149 +f 947/1554/133 948/1556/133 944/1559/133 +f 953/1564/133 958/1576/133 959/1565/133 +f 954/1567/133 964/1582/133 965/1568/133 +f 961/1570/131 951/2059/131 950/1571/131 +f 959/1565/121 960/1572/121 950/1573/121 +f 953/1575/122 951/2060/122 961/1570/122 +f 956/1577/149 959/1565/149 958/1576/149 +f 956/1577/149 954/1580/149 960/1572/149 +f 955/1579/149 957/1578/149 958/1576/149 +f 955/1579/149 961/1570/149 960/1572/149 +f 962/1581/149 965/1568/149 964/1582/149 +f 956/1584/122 963/1583/122 964/1582/122 +f 955/1586/121 965/1568/121 962/1581/121 +f 957/1588/131 962/1581/131 963/1583/131 +f 969/1590/122 967/2061/122 973/1591/122 +f 977/1593/149 972/2062/149 971/1594/149 +f 975/1596/151 974/1595/151 971/1594/151 +f 973/1591/152 972/2062/152 977/1593/152 +f 975/1596/121 970/1597/121 966/1598/121 +f 981/1600/122 979/2063/122 985/1601/122 +f 989/1603/149 984/2064/149 983/1604/149 +f 987/1606/151 986/1605/151 983/1604/151 +f 985/1601/152 984/2064/152 989/1603/152 +f 987/1606/121 982/1607/121 978/1608/121 +f 993/1610/122 991/2065/122 997/1611/122 +f 1001/1613/149 996/2066/149 995/1614/149 +f 999/1616/151 998/1615/151 995/1614/151 +f 997/1611/152 996/2066/152 1001/1613/152 +f 999/1616/121 994/1617/121 990/1618/121 +f 1005/1620/122 1003/2067/122 1009/1621/122 +f 1013/1623/149 1008/2068/149 1007/1624/149 +f 1011/1626/151 1010/1625/151 1007/1624/151 +f 1009/1621/152 1008/2068/152 1013/1623/152 +f 1011/1626/121 1006/1627/121 1002/1628/121 +f 1017/1630/122 1015/2069/122 1021/1631/122 +f 1025/1633/149 1020/2070/149 1019/1634/149 +f 1023/1636/151 1022/1635/151 1019/1634/151 +f 1021/1631/152 1020/2070/152 1025/1633/152 +f 1023/1636/121 1018/1637/121 1014/1638/121 +f 1029/1640/122 1027/2071/122 1033/1641/122 +f 1037/1643/149 1032/2072/149 1031/1644/149 +f 1035/1646/151 1034/1645/151 1031/1644/151 +f 1033/1641/152 1032/2072/152 1037/1643/152 +f 1035/1646/121 1030/1647/121 1026/1648/121 +f 1041/1650/122 1039/2073/122 1045/1651/122 +f 1049/1653/149 1044/2074/149 1043/1654/149 +f 1047/1656/151 1046/1655/151 1043/1654/151 +f 1045/1651/152 1044/2074/152 1049/1653/152 +f 1047/1656/121 1042/1657/121 1038/1658/121 +f 1051/1660/121 1053/1663/144 1052/1661/144 +f 1053/1663/144 1055/1665/145 1054/1664/145 +f 1055/1665/145 1057/1667/146 1056/1666/146 +f 1057/1667/146 1059/1669/147 1058/1668/147 +f 1059/1669/147 1061/1692/122 1060/1670/122 +f 1062/1671/131 1070/1681/131 1072/1672/131 +f 1055/1675/133 1053/2075/133 1051/2076/133 +f 1051/2076/133 1065/1677/133 1055/1675/133 +f 1065/1677/133 1063/1676/133 1055/1675/133 +f 1063/1676/133 1061/1691/133 1059/2077/133 +f 1059/2077/133 1057/1674/133 1063/1676/133 +f 1065/1677/133 1051/2076/133 1067/1678/133 +f 1062/1671/131 1060/1683/131 1069/1680/131 +f 1064/1673/131 1050/1696/131 1052/2078/131 +f 1052/2078/131 1054/2079/131 1064/1673/131 +f 1054/2079/131 1056/1682/131 1064/1673/131 +f 1056/1682/131 1058/2080/131 1060/1683/131 +f 1060/1683/131 1062/1671/131 1064/1673/131 +f 1081/1684/141 1089/2081/141 1084/1685/140 +f 1082/2082/133 1084/2083/133 1089/1687/133 +f 1089/1687/133 1088/2084/133 1087/1688/133 +f 1087/1688/133 1086/2085/133 1085/1689/133 +f 1085/1689/133 1083/2086/133 1082/2082/133 +f 1082/2082/133 1089/1687/133 1085/1689/133 +f 1063/1676/133 1071/1697/133 1068/1690/133 +f 1061/1692/122 1068/2087/122 1069/1693/122 +f 1050/1662/121 1066/2088/121 1067/1694/121 +f 1064/1673/131 1072/1672/131 1066/1695/131 +f 1065/1677/133 1073/1679/133 1071/1697/133 +f 1087/1698/143 1088/1707/142 1080/1699/142 +f 1085/1701/146 1086/1709/147 1078/1702/147 +f 1082/1704/144 1083/1710/145 1076/1705/145 +f 1088/1707/142 1089/2089/141 1081/1708/141 +f 1086/1709/147 1087/1698/143 1079/1700/143 +f 1084/1685/140 1082/1704/144 1075/1706/144 +f 1083/1710/145 1085/1701/146 1077/1703/146 +f 905/1711/156 897/1770/156 1091/1712/156 +f 1140/1390/121 1111/2090/121 1095/1714/121 +f 1105/1715/122 1104/1771/122 896/1483/122 +f 1095/1717/156 1102/2091/156 1103/1718/156 +f 1093/1720/156 1100/2092/156 1101/1721/156 +f 1113/1723/122 1112/1768/122 1094/1724/122 +f 1090/1726/156 1097/2093/156 1099/1727/156 +f 1132/1405/133 1095/1717/133 1096/1719/133 +f 1110/1729/149 1113/1742/149 1101/1730/149 +f 1134/1410/133 1093/1720/133 1094/1722/133 +f 1136/1412/133 1090/1726/133 1092/1728/133 +f 1138/1415/121 1107/2094/121 1091/1732/121 +f 1095/1714/121 1111/2090/121 1110/1733/121 +f 1118/1735/156 1119/1766/156 1104/1736/156 +f 1106/1738/156 1109/2095/156 1108/1739/156 +f 1111/1741/156 1112/2096/156 1113/1742/156 +f 1116/1743/156 1117/2097/156 1114/1744/156 +f 1139/1431/133 1106/1738/133 1107/1740/133 +f 1141/1433/133 1112/2096/133 1111/1741/133 +f 1143/1435/133 1116/1743/133 1115/1745/133 +f 1093/1746/121 1115/2098/121 1114/1747/121 +f 1142/1440/121 1115/2098/121 1093/1746/121 +f 1114/1744/149 1117/2097/149 1099/1749/149 +f 1091/1732/121 1107/2094/121 1108/1751/121 +f 1117/1753/122 1116/1767/122 1092/1754/122 +f 1108/1739/149 1109/2095/149 1103/1756/149 +f 1109/1758/122 1106/1769/122 1096/1759/122 +f 1144/1455/121 1119/2099/121 1090/1761/121 +f 1090/1761/121 1119/2099/121 1118/1762/121 +f 1118/1735/149 1105/1737/149 904/1764/149 +f 1119/1766/133 1144/2028/133 1137/1461/133 +f 1116/1767/122 1143/2029/122 1135/1463/122 +f 1112/1768/122 1141/2030/122 1133/1465/122 +f 1106/1769/122 1139/2031/122 1131/1467/122 +f 897/1770/133 1129/2032/133 1130/1469/133 +f 1104/1771/122 1137/2033/122 1128/1471/122 +f 1127/1152/121 1129/2034/121 897/1772/121 +f 1126/1156/123 1125/1149/120 903/1478/120 +f 1146/1773/157 1148/1776/134 1147/1774/134 +f 1148/1776/134 1150/1778/105 1149/1777/105 +f 1150/1778/105 1152/1780/137 1151/1779/137 +f 1152/1780/137 1154/2100/158 1153/1781/158 +f 1153/1784/122 1145/2101/122 1147/1782/122 +f 1147/1782/122 1149/2102/122 1151/1783/122 +f 1150/2103/121 1148/2104/121 1152/1787/121 +f 1148/2104/121 1146/1785/121 1152/1787/121 +f 1157/1788/122 1158/1794/136 1155/1789/136 +f 1155/1791/133 1165/1804/133 1173/1792/133 +f 1158/1794/136 1159/1796/105 1165/1795/105 +f 1159/1796/105 1160/1801/135 1166/1797/135 +f 1168/1798/133 1169/1840/133 1182/1799/133 +f 1160/1801/135 1161/1805/121 1167/1802/121 +f 1166/1803/133 1176/1839/133 1173/1792/133 +f 1161/1805/121 1162/1809/151 1168/1806/151 +f 1156/1807/133 1155/1791/133 1172/1793/133 +f 1162/1809/151 1163/2105/149 1169/1810/149 +f 1163/1811/149 1164/1814/152 1170/1812/152 +f 1164/1814/152 1157/1788/122 1156/1790/122 +f 1171/1815/122 1172/1818/136 1175/1816/136 +f 1172/1818/136 1173/1820/105 1177/1819/105 +f 1173/1820/105 1176/1822/135 1179/1821/135 +f 1176/1822/135 1178/1824/121 1181/1823/121 +f 1178/1824/121 1180/1826/151 1183/1825/151 +f 1180/1826/151 1182/2106/149 1185/1827/149 +f 1184/1828/152 1171/1815/122 1174/1817/122 +f 1182/1830/149 1184/1828/152 1186/1829/152 +f 1167/1832/133 1168/1798/133 1180/1800/133 +f 1156/1807/133 1171/1808/133 1184/1834/133 +f 1186/1837/131 1174/2107/131 1179/1838/131 +f 1174/2107/131 1175/2108/131 1179/1838/131 +f 1175/2108/131 1177/2109/131 1179/1838/131 +f 1179/1838/131 1181/2110/131 1183/2111/131 +f 1183/2111/131 1185/1836/131 1179/1838/131 +f 1167/1832/133 1178/1833/133 1176/1839/133 +f 1170/1835/133 1184/1834/133 1182/1799/133 +f 1234/1843/133 1227/2112/133 1232/1841/133 +f 1227/2112/133 1228/2113/133 1232/1841/133 +f 1228/2113/133 1229/2114/133 1232/1841/133 +f 1229/2114/133 1230/2115/133 1232/1841/133 +f 1230/2115/133 1231/2116/133 1232/1841/133 +f 1235/1844/159 1236/1858/160 1234/1845/160 +f 1238/1847/161 1239/1869/161 1240/1848/161 +f 1235/1850/131 1239/2117/131 1238/1851/131 +f 1246/1854/131 1242/2118/131 1241/1852/131 +f 1242/2118/131 1243/2119/131 1241/1852/131 +f 1243/2119/131 1236/2120/131 1241/1852/131 +f 1236/2120/131 1235/1850/131 1241/1852/131 +f 1241/1852/131 1244/2121/185 1245/1853/131 +f 1242/1855/162 1246/1867/162 1229/1856/162 +f 1236/1858/160 1243/1865/163 1227/1859/163 +f 1245/1860/164 1244/1868/164 1231/1861/164 +f 1241/1863/165 1238/1847/165 1237/1849/165 +f 1243/1865/166 1242/2122/206 1228/1866/166 +f 1246/1867/167 1245/1860/167 1230/1862/167 +f 1244/1868/168 1241/1863/168 1232/1864/168 +f 1233/1846/159 1240/1848/169 1239/1869/169 +f 1233/1842/133 1232/1841/133 1237/1870/133 +f 1254/1874/133 1247/2123/133 1252/1872/133 +f 1247/2123/133 1248/2124/133 1252/1872/133 +f 1248/2124/133 1249/2125/133 1252/1872/133 +f 1249/2125/133 1250/2126/133 1252/1872/133 +f 1250/2126/133 1251/2127/133 1252/1872/133 +f 1255/1875/170 1256/1889/171 1254/1876/171 +f 1258/1878/172 1259/1900/172 1260/1879/172 +f 1255/1881/131 1259/2128/131 1258/1882/131 +f 1266/1885/131 1262/2129/131 1261/1883/131 +f 1262/2129/131 1263/2130/131 1261/1883/131 +f 1263/2130/131 1256/2131/131 1261/1883/131 +f 1256/2131/131 1255/1881/131 1261/1883/131 +f 1261/1883/131 1264/2132/131 1265/1884/131 +f 1262/1886/173 1266/1898/173 1249/1887/173 +f 1256/1889/171 1263/1896/174 1247/1890/174 +f 1265/1891/175 1264/1899/175 1251/1892/175 +f 1261/1894/176 1258/1878/176 1257/1880/176 +f 1263/1896/177 1262/2133/177 1248/1897/177 +f 1266/1898/178 1265/1891/178 1250/1893/178 +f 1264/1899/179 1261/1894/179 1252/1895/179 +f 1255/1875/170 1253/1877/170 1260/1879/180 +f 1253/1873/133 1252/1872/133 1257/1901/133 +f 1274/1905/133 1267/2134/133 1272/1903/133 +f 1267/2134/133 1268/2135/133 1272/1903/133 +f 1268/2135/133 1269/2136/133 1272/1903/133 +f 1269/2136/133 1270/2137/133 1272/1903/133 +f 1270/2137/133 1271/2138/133 1272/1903/133 +f 1275/1906/182 1276/1920/183 1274/1907/183 +f 1278/1909/184 1279/1931/184 1280/1910/184 +f 1275/1912/185 1279/2139/131 1278/1913/131 +f 1286/1916/131 1282/2140/131 1281/1914/131 +f 1282/2140/131 1283/2141/131 1281/1914/131 +f 1283/2141/131 1276/2142/131 1281/1914/131 +f 1276/2142/131 1275/1912/185 1281/1914/131 +f 1281/1914/131 1284/2143/207 1285/1915/131 +f 1282/1917/186 1286/1929/186 1269/1918/186 +f 1276/1920/183 1283/2144/187 1267/1921/187 +f 1285/1922/188 1284/1930/188 1271/1923/188 +f 1281/1925/189 1278/1909/189 1277/1911/189 +f 1267/1921/190 1283/2144/190 1282/1927/190 +f 1286/1929/191 1285/1922/191 1270/1924/191 +f 1284/1930/192 1281/1925/192 1272/1926/193 +f 1273/1908/182 1280/1910/194 1279/1931/194 +f 1273/1904/181 1272/1903/133 1277/1932/133 +f 1294/1936/133 1287/2145/133 1292/1934/133 +f 1287/2145/133 1288/2146/133 1292/1934/133 +f 1288/2146/133 1289/2147/133 1292/1934/133 +f 1289/2147/133 1290/2148/133 1292/1934/133 +f 1290/2148/133 1291/2149/133 1292/1934/133 +f 1295/1937/195 1296/1951/196 1294/1938/196 +f 1298/1940/197 1299/1961/197 1300/1941/197 +f 1295/1943/131 1299/2150/131 1298/1944/131 +f 1306/1947/131 1302/2151/131 1301/1945/131 +f 1302/2151/131 1303/2152/131 1301/1945/131 +f 1303/2152/131 1296/2153/131 1301/1945/131 +f 1296/2153/131 1295/1943/131 1301/1945/131 +f 1301/1945/131 1304/2154/131 1305/1946/131 +f 1302/1948/198 1306/1960/198 1289/1949/198 +f 1296/1951/196 1303/1958/199 1287/1952/199 +f 1290/1953/200 1305/2155/200 1304/1954/200 +f 1301/1956/201 1298/1940/201 1297/1942/201 +f 1303/1958/202 1302/2156/202 1288/1959/202 +f 1306/1960/203 1305/2155/203 1290/1953/203 +f 1304/1954/204 1301/1956/204 1292/1957/204 +f 1293/1939/195 1300/1941/205 1299/1961/205 +f 1293/1935/133 1292/1934/133 1297/1962/133 +o frame +v 0.500000 0.000000 -3.500000 +v 0.500000 0.000000 3.500000 +v 0.500000 6.000000 3.500000 +v 0.500000 5.999982 -3.499982 +v 0.299220 0.054715 -3.299312 +v 0.299220 0.054715 3.299312 +v 0.299220 2.500000 -3.299312 +v 0.299220 3.519543 -3.137832 +v 0.299220 4.439287 -2.669199 +v 0.299220 5.169199 -1.939287 +v 0.299220 5.637832 -1.019543 +v 0.299220 5.799312 0.000000 +v 0.299220 5.637832 1.019543 +v 0.299220 5.169199 1.939287 +v 0.299220 4.439287 2.669199 +v 0.299220 3.519543 3.137832 +v 0.299220 2.500000 3.299312 +v 0.299220 0.054715 -3.440433 +v 0.299220 0.054715 3.440433 +v 0.299220 2.511072 -3.439998 +v 0.299220 3.563152 -3.439998 +v 0.299220 4.522236 -3.439998 +v 0.299220 5.283369 -3.439998 +v 0.299220 5.772047 -3.439998 +v 0.299220 5.940434 0.000000 +v 0.299220 5.772047 3.439998 +v 0.299220 5.283369 3.439998 +v 0.299220 4.522236 3.439998 +v 0.299220 3.563152 3.439998 +v 0.299220 2.511072 3.439998 +v 0.500000 0.000000 3.299312 +v 0.500000 0.000000 -3.299311 +v 0.509942 2.575847 3.433846 +v 0.500000 2.500000 3.299312 +v 0.500000 5.799312 0.000000 +v 0.500000 5.999991 0.000009 +v 0.500000 3.519543 3.137832 +v 0.509942 3.693161 3.215357 +v 0.500000 4.439287 2.669199 +v 0.509942 4.591897 2.756523 +v 0.500000 5.169199 1.939287 +v 0.509942 5.306234 2.042186 +v 0.500000 5.637832 1.019543 +v 0.509942 5.777302 1.066608 +v 0.500000 2.500000 -3.299312 +v 0.509942 2.562243 -3.433324 +v 0.509942 5.779282 -1.054175 +v 0.500000 5.637832 -1.019543 +v 0.500000 5.169199 -1.939287 +v 0.509942 5.306233 -2.042186 +v 0.500000 4.439287 -2.669199 +v 0.509942 4.591897 -2.756523 +v 0.500000 3.519543 -3.137832 +v 0.509942 3.637241 -3.226135 +v 0.500000 2.575847 3.500000 +v 0.500000 0.000000 3.433846 +v 0.500000 0.000000 -3.399656 +v -0.500000 0.000000 -3.500000 +v -0.500000 0.000000 3.500000 +v -0.500000 6.000000 3.500000 +v -0.500000 5.999982 -3.499982 +v -0.299220 0.054715 -3.299312 +v -0.299220 0.054715 3.299312 +v -0.299220 2.500000 -3.299312 +v -0.299220 3.519543 -3.137832 +v -0.299220 4.439287 -2.669199 +v -0.299220 5.169199 -1.939287 +v -0.299220 5.637832 -1.019543 +v -0.299220 5.799312 0.000000 +v -0.299220 5.637832 1.019543 +v -0.299220 5.169199 1.939287 +v -0.299220 4.439287 2.669199 +v -0.299220 3.519543 3.137832 +v -0.299220 2.500000 3.299312 +v -0.299220 0.054715 -3.440433 +v -0.299220 0.054715 3.440433 +v -0.299220 2.511072 -3.439998 +v -0.299220 3.563152 -3.439998 +v -0.299220 4.522236 -3.439998 +v -0.299220 5.283369 -3.439998 +v -0.299220 5.772047 -3.439998 +v -0.299220 5.940434 0.000000 +v -0.299220 5.772047 3.439998 +v -0.299220 5.283369 3.439998 +v -0.299220 4.522236 3.439998 +v -0.299220 3.563152 3.439998 +v -0.299220 2.511072 3.439998 +v -0.500000 0.000000 3.299312 +v -0.500000 0.000000 -3.299311 +v -0.509942 2.575847 3.433846 +v -0.500000 2.500000 3.299312 +v -0.500000 5.799312 0.000000 +v -0.500000 5.999991 0.000009 +v -0.500000 3.519543 3.137832 +v -0.509942 3.693161 3.215357 +v -0.500000 4.439287 2.669199 +v -0.509942 4.591897 2.756523 +v -0.500000 5.169199 1.939287 +v -0.509942 5.306234 2.042186 +v -0.500000 5.637832 1.019543 +v -0.509942 5.777302 1.066608 +v -0.500000 2.500000 -3.299312 +v -0.509942 2.562243 -3.433324 +v -0.509942 5.779282 -1.054175 +v -0.500000 5.637832 -1.019543 +v -0.500000 5.169199 -1.939287 +v -0.509942 5.306233 -2.042186 +v -0.500000 4.439287 -2.669199 +v -0.509942 4.591897 -2.756523 +v -0.500000 3.519543 -3.137832 +v -0.509942 3.637241 -3.226135 +v -0.500000 2.575847 3.500000 +v -0.500000 0.000000 3.433846 +v -0.500000 0.000000 -3.399656 +v 0.000000 0.000000 -3.500000 +v 0.000000 0.000000 3.500000 +v 0.000000 6.000000 3.500000 +v 0.000000 5.999982 -3.499982 +v 0.000000 0.054715 -3.299312 +v 0.000000 0.054715 3.299312 +v 0.000000 0.054715 -3.440433 +v 0.000000 0.054715 3.440433 +v 0.000000 2.511072 -3.439998 +v 0.000000 3.563152 -3.439998 +v 0.000000 4.522236 -3.439998 +v 0.000000 5.283369 -3.439998 +v 0.000000 5.772047 -3.439998 +v 0.000000 5.940434 0.000000 +v 0.000000 5.772047 3.439998 +v 0.000000 5.283369 3.439998 +v 0.000000 4.522236 3.439998 +v 0.000000 3.563152 3.439998 +v 0.000000 2.511072 3.439998 +vt 0.241702 0.739929 +vt 0.006709 0.759512 +vt 0.006709 0.739929 +vt 0.685390 0.273007 +vt 0.685390 0.278276 +vt 0.665807 0.280867 +vt 0.855026 0.768807 +vt 0.862890 0.728378 +vt 0.862890 0.768807 +vt 0.490115 0.143946 +vt 0.481472 0.102659 +vt 0.490145 0.006876 +vt 0.855026 0.728378 +vt 0.862890 0.632606 +vt 0.876307 0.622065 +vt 0.884171 0.717836 +vt 0.876307 0.717836 +vt 0.855026 0.930522 +vt 0.862890 0.890094 +vt 0.862890 0.930522 +vt 0.855026 0.849665 +vt 0.862890 0.809236 +vt 0.862890 0.849665 +vt 0.855026 0.890094 +vt 0.876307 0.758265 +vt 0.855026 0.809236 +vt 0.884171 0.798694 +vt 0.876307 0.839123 +vt 0.876307 0.798694 +vt 0.884171 0.758265 +vt 0.884171 0.839123 +vt 0.876307 0.879552 +vt 0.397594 0.017557 +vt 0.355501 0.009420 +vt 0.434984 0.035969 +vt 0.462955 0.063960 +vt 0.481394 0.185718 +vt 0.490145 0.281015 +vt 0.884171 0.879552 +vt 0.876307 0.919981 +vt 0.462955 0.223931 +vt 0.434983 0.251922 +vt 0.399781 0.269910 +vt 0.356032 0.278491 +vt 0.036915 0.353397 +vt 0.013305 0.294621 +vt 0.032444 0.294621 +vt 0.141455 0.558572 +vt 0.237228 0.564100 +vt 0.141022 0.564083 +vt 0.065501 0.533893 +vt 0.032442 0.564081 +vt 0.036914 0.505305 +vt 0.101525 0.306456 +vt 0.141023 0.294622 +vt 0.141456 0.300132 +vt 0.018561 0.389419 +vt 0.006709 0.429350 +vt 0.101524 0.552247 +vt 0.062252 0.564082 +vt 0.788343 0.516011 +vt 0.776624 0.557217 +vt 0.776624 0.516011 +vt 0.788343 0.478448 +vt 0.776624 0.478448 +vt 0.788343 0.448638 +vt 0.776624 0.448638 +vt 0.788343 0.429498 +vt 0.776624 0.429498 +vt 0.788343 0.294606 +vt 0.776624 0.294606 +vt 0.801760 0.429498 +vt 0.813480 0.294606 +vt 0.813480 0.429498 +vt 0.801760 0.448638 +vt 0.813480 0.448638 +vt 0.801760 0.478448 +vt 0.813480 0.478448 +vt 0.801760 0.516011 +vt 0.813480 0.516011 +vt 0.801760 0.557217 +vt 0.813480 0.557217 +vt 0.801760 0.653422 +vt 0.813480 0.653422 +vt 0.013302 0.564081 +vt 0.018560 0.469282 +vt 0.065503 0.324810 +vt 0.062254 0.294621 +vt 0.237228 0.294606 +vt 0.237228 0.300133 +vt 0.099816 0.564082 +vt 0.012236 0.429350 +vt 0.099818 0.294622 +vt 0.730396 0.270674 +vt 0.718677 0.276201 +vt 0.718677 0.270674 +vt 0.392975 0.266861 +vt 0.353056 0.273212 +vt 0.428998 0.248493 +vt 0.457578 0.219896 +vt 0.482256 0.143945 +vt 0.475920 0.183871 +vt 0.475919 0.104020 +vt 0.457578 0.067995 +vt 0.428998 0.039397 +vt 0.392978 0.021029 +vt 0.353057 0.014680 +vt 0.255157 0.010638 +vt 0.738547 0.270674 +vt 0.730396 0.012236 +vt 0.738547 0.012236 +vt 0.255142 0.278598 +vt 0.255136 0.273329 +vt 0.356034 0.281112 +vt 0.255161 0.006709 +vt 0.788343 0.653422 +vt 0.788343 0.557217 +vt 0.718677 0.012236 +vt 0.730396 0.006709 +vt 0.510060 0.788490 +vt 0.510060 0.768907 +vt 0.647140 0.768907 +vt 0.751964 0.140819 +vt 0.771547 0.006709 +vt 0.771547 0.241704 +vt 0.006709 0.720346 +vt 0.646224 0.278276 +vt 0.646224 0.273007 +vt 0.955361 0.496751 +vt 0.947497 0.456323 +vt 0.955361 0.456323 +vt 0.241689 0.143952 +vt 0.241719 0.281021 +vt 0.233046 0.185239 +vt 0.947497 0.496751 +vt 0.955361 0.592522 +vt 0.947497 0.594665 +vt 0.955361 0.610225 +vt 0.947497 0.705997 +vt 0.947497 0.608082 +vt 0.955361 0.335035 +vt 0.947497 0.294606 +vt 0.955361 0.294606 +vt 0.955361 0.415894 +vt 0.947497 0.375465 +vt 0.955361 0.375465 +vt 0.947497 0.335035 +vt 0.955361 0.746426 +vt 0.955361 0.705997 +vt 0.947497 0.415894 +vt 0.955361 0.827284 +vt 0.947497 0.786855 +vt 0.955361 0.786855 +vt 0.947497 0.746426 +vt 0.955361 0.867713 +vt 0.947497 0.827284 +vt 0.149169 0.270340 +vt 0.107075 0.278477 +vt 0.186559 0.251928 +vt 0.214530 0.223938 +vt 0.232968 0.102180 +vt 0.241719 0.006883 +vt 0.955361 0.908141 +vt 0.947497 0.867713 +vt 0.214529 0.063967 +vt 0.186557 0.035976 +vt 0.151355 0.017988 +vt 0.107605 0.009406 +vt 0.280851 0.505307 +vt 0.257240 0.564083 +vt 0.262497 0.469284 +vt 0.385392 0.300133 +vt 0.481164 0.294606 +vt 0.481164 0.300133 +vt 0.276379 0.294623 +vt 0.309438 0.324812 +vt 0.280851 0.353400 +vt 0.384959 0.564083 +vt 0.345461 0.552249 +vt 0.385392 0.558573 +vt 0.250645 0.429353 +vt 0.256172 0.429353 +vt 0.306190 0.294623 +vt 0.345461 0.306458 +vt 0.764905 0.516011 +vt 0.764905 0.478448 +vt 0.764905 0.448638 +vt 0.764905 0.429498 +vt 0.764905 0.294606 +vt 0.825199 0.429498 +vt 0.825199 0.448638 +vt 0.825199 0.478448 +vt 0.825199 0.516011 +vt 0.825199 0.557217 +vt 0.825199 0.653422 +vt 0.257240 0.294623 +vt 0.262496 0.389422 +vt 0.309438 0.533894 +vt 0.276379 0.564083 +vt 0.481164 0.564100 +vt 0.481164 0.558573 +vt 0.384958 0.294623 +vt 0.306190 0.564083 +vt 0.706958 0.270674 +vt 0.144548 0.021036 +vt 0.104629 0.014686 +vt 0.180571 0.039405 +vt 0.209152 0.068002 +vt 0.227494 0.104027 +vt 0.233830 0.143953 +vt 0.227494 0.183878 +vt 0.209152 0.219903 +vt 0.180573 0.248500 +vt 0.144552 0.266868 +vt 0.104632 0.273218 +vt 0.006731 0.277259 +vt 0.706958 0.012236 +vt 0.698807 0.270674 +vt 0.698807 0.012236 +vt 0.006715 0.009300 +vt 0.107607 0.006786 +vt 0.006735 0.281189 +vt 0.764905 0.653422 +vt 0.764905 0.557217 +vt 0.706958 0.006709 +vt 0.647140 0.808073 +vt 0.784220 0.788490 +vt 0.791130 0.006709 +vt 0.791130 0.140818 +vt 0.241702 0.759512 +vt 0.665807 0.006709 +vt 0.685390 0.014569 +vt 0.685390 0.006709 +vt 0.685390 0.010639 +vt 0.685390 0.280867 +vt 0.855026 0.630463 +vt 0.884171 0.619922 +vt 0.884171 0.919981 +vt 0.237228 0.558573 +vt 0.801760 0.294606 +vt 0.730396 0.276201 +vt 0.255152 0.014568 +vt 0.255144 0.281189 +vt 0.776624 0.653422 +vt 0.718677 0.006709 +vt 0.784220 0.768907 +vt 0.751964 0.241704 +vt 0.751964 0.006709 +vt 0.241702 0.720346 +vt 0.646224 0.006709 +vt 0.646224 0.010639 +vt 0.646224 0.014569 +vt 0.646224 0.280867 +vt 0.947497 0.908141 +vt 0.343753 0.564083 +vt 0.343753 0.294623 +vt 0.825199 0.294606 +vt 0.706958 0.276201 +vt 0.006727 0.273330 +vt 0.006709 0.014569 +vt 0.006717 0.006709 +vt 0.784220 0.808073 +vt 0.510060 0.808073 +vt 0.791130 0.241704 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.3090 -0.9511 +vn 0.0000 -0.0785 -0.9969 +vn 1.0000 0.0059 0.0000 +vn 0.9999 -0.0072 0.0088 +vn 1.0000 0.0070 -0.0070 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0785 0.9969 +vn 0.0000 -0.9511 -0.3090 +vn 0.0000 -0.8090 -0.5878 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.3090 0.9511 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.8090 0.5878 +vn 0.0000 -0.9511 0.3090 +vn 0.9996 -0.0118 0.0267 +vn 0.9992 -0.0037 -0.0401 +vn 0.9997 -0.0146 0.0182 +vn 0.9998 -0.0176 0.0132 +vn 0.9999 -0.0066 -0.0091 +vn 1.0000 0.0071 0.0070 +vn 0.9998 -0.0176 -0.0129 +vn 0.9997 -0.0148 -0.0183 +vn 0.9997 -0.0111 -0.0234 +vn 0.9991 -0.0049 0.0417 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.0001 -1.0000 +vn 0.0000 -0.9988 -0.0489 +vn 0.0000 -0.9988 0.0489 +vn 0.0000 -0.0001 1.0000 +vn 0.0000 -0.0002 1.0000 +vn 0.0883 0.9961 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9966 -0.0205 -0.0804 +vn 0.9976 -0.0063 -0.0690 +vn 0.9980 -0.0347 -0.0530 +vn 0.9983 -0.0476 -0.0337 +vn 1.0000 -0.0054 0.0001 +vn 0.9977 -0.0641 -0.0207 +vn 0.9977 -0.0646 0.0206 +vn 0.9983 -0.0469 0.0340 +vn 0.9980 -0.0345 0.0539 +vn 0.9964 -0.0224 0.0812 +vn 0.9975 -0.0060 0.0703 +vn 1.0000 -0.0020 0.0012 +vn 0.2629 0.9648 0.0000 +vn 1.0000 -0.0001 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.9891 -0.0019 0.1474 +vn 1.0000 -0.0038 -0.0025 +vn 0.0000 -0.0002 -1.0000 +vn -1.0000 0.0059 0.0000 +vn -1.0000 0.0070 -0.0070 +vn -0.9999 -0.0072 0.0088 +vn -0.9996 -0.0118 0.0267 +vn -0.9992 -0.0037 -0.0401 +vn -0.9997 -0.0146 0.0182 +vn -0.9998 -0.0176 0.0132 +vn -0.9999 -0.0066 -0.0091 +vn -1.0000 0.0071 0.0070 +vn -0.9998 -0.0176 -0.0129 +vn -0.9997 -0.0148 -0.0183 +vn -0.9997 -0.0111 -0.0234 +vn -0.9991 -0.0049 0.0417 +vn -0.0883 0.9961 0.0000 +vn -0.9966 -0.0205 -0.0804 +vn -0.9976 -0.0063 -0.0690 +vn -0.9980 -0.0347 -0.0530 +vn -0.9983 -0.0476 -0.0337 +vn -0.9977 -0.0641 -0.0207 +vn -1.0000 -0.0054 0.0001 +vn -0.9977 -0.0646 0.0206 +vn -0.9983 -0.0469 0.0340 +vn -0.9980 -0.0345 0.0539 +vn -0.9964 -0.0224 0.0812 +vn -0.9975 -0.0060 0.0703 +vn -1.0000 -0.0020 0.0012 +vn -0.2629 0.9648 0.0000 +vn -1.0000 -0.0001 0.0000 +vn -0.9891 -0.0019 0.1474 +vn -1.0000 -0.0038 -0.0025 +s 1 +f 1424/2157/208 1307/2158/208 1421/2159/208 +f 1337/2160/209 1362/2161/209 1422/2162/209 +f 1343/2163/210 1323/2164/211 1322/2165/210 +f 1342/2166/212 1353/2167/213 1310/2168/214 +f 1340/2169/211 1312/2170/208 1323/2164/211 +f 1311/2171/215 1351/2172/216 1313/2173/216 +f 1341/2174/209 1319/2175/217 1318/2176/209 +f 1347/2177/218 1321/2178/219 1320/2179/218 +f 1349/2180/217 1320/2179/218 1319/2175/217 +f 1351/2172/216 1314/2181/220 1313/2173/216 +f 1345/2182/219 1322/2165/210 1321/2178/219 +f 1357/2183/221 1316/2184/222 1315/2185/221 +f 1359/2186/220 1315/2185/221 1314/2181/220 +f 1355/2187/222 1317/2188/223 1316/2184/222 +f 1360/2189/224 1352/2190/225 1310/2168/214 +f 1358/2191/226 1360/2189/224 1310/2168/214 +f 1356/2192/227 1358/2191/226 1310/2168/214 +f 1353/2167/213 1356/2192/227 1310/2168/214 +f 1350/2193/228 1342/2166/212 1309/2194/229 +f 1354/2195/223 1318/2196/209 1317/2188/223 +f 1348/2197/230 1350/2193/228 1309/2194/229 +f 1346/2198/231 1348/2197/230 1309/2194/229 +f 1344/2199/232 1346/2198/231 1309/2194/229 +f 1339/2200/233 1344/2199/232 1309/2194/229 +f 1316/2201/234 1330/2202/234 1329/2203/234 +f 1323/2204/234 1325/2205/234 1336/2206/234 +f 1321/2207/234 1333/2208/234 1320/2209/234 +f 1314/2210/234 1326/2211/234 1313/2212/234 +f 1317/2213/234 1331/2214/234 1330/2202/234 +f 1322/2215/234 1334/2216/234 1321/2207/234 +f 1335/2217/208 1439/2218/235 1438/2219/208 +f 1334/2220/208 1438/2219/208 1437/2221/208 +f 1333/2222/208 1437/2221/208 1436/2223/208 +f 1332/2224/208 1436/2223/208 1435/2225/208 +f 1331/2226/209 1435/2225/236 1434/2227/209 +f 1330/2228/237 1434/2229/209 1433/2230/237 +f 1329/2231/215 1433/2230/215 1432/2232/215 +f 1328/2233/215 1432/2232/215 1431/2234/215 +f 1327/2235/215 1431/2234/215 1430/2236/215 +f 1326/2237/238 1430/2236/215 1429/2238/238 +f 1324/2239/239 1429/2238/238 1427/2240/239 +f 1320/2209/234 1332/2241/234 1319/2242/234 +f 1315/2243/234 1329/2203/234 1328/2244/234 +f 1313/2212/234 1324/2245/234 1311/2246/234 +f 1322/2215/234 1336/2206/234 1335/2247/234 +f 1319/2242/234 1331/2214/234 1318/2248/234 +f 1314/2210/234 1328/2244/234 1327/2249/234 +f 1311/2250/240 1427/2251/241 1425/2252/241 +f 1343/2253/242 1339/2200/233 1340/2254/243 +f 1345/2255/244 1344/2199/232 1343/2253/242 +f 1347/2256/245 1346/2198/231 1345/2255/244 +f 1347/2256/245 1350/2193/228 1348/2197/230 +f 1341/2257/246 1350/2193/228 1349/2258/247 +f 1354/2259/248 1356/2192/227 1353/2167/213 +f 1355/2260/249 1358/2191/226 1356/2192/227 +f 1357/2261/250 1360/2189/224 1358/2191/226 +f 1359/2262/251 1352/2190/225 1360/2189/224 +f 1351/2263/252 1363/2264/253 1352/2190/225 +f 1341/2257/246 1353/2167/213 1342/2166/212 +f 1338/2265/254 1312/2266/240 1337/2267/254 +f 1340/2254/243 1362/2268/255 1337/2269/256 +f 1339/2200/233 1309/2194/229 1361/2270/257 +f 1352/2190/225 1307/2271/258 1310/2168/214 +f 1325/2272/259 1439/2218/235 1336/2273/235 +f 1426/2274/241 1325/2275/241 1312/2266/240 +f 1311/2250/240 1426/2274/241 1312/2266/240 +f 1423/2276/241 1309/2277/241 1342/2278/241 +f 1361/2279/215 1423/2280/215 1422/2281/215 +f 1364/2282/208 1424/2157/208 1421/2159/208 +f 1422/2162/209 1419/2283/209 1394/2284/209 +f 1380/2285/211 1400/2286/210 1379/2287/210 +f 1399/2288/260 1367/2289/261 1410/2290/262 +f 1397/2291/211 1369/2292/208 1394/2293/208 +f 1368/2294/215 1408/2295/216 1395/2296/215 +f 1376/2297/217 1398/2298/209 1375/2299/209 +f 1378/2300/219 1404/2301/218 1377/2302/218 +f 1377/2302/218 1406/2303/217 1376/2297/217 +f 1371/2304/220 1408/2295/216 1370/2305/216 +f 1379/2287/210 1402/2306/219 1378/2300/219 +f 1373/2307/222 1414/2308/221 1372/2309/221 +f 1372/2309/221 1416/2310/220 1371/2304/220 +f 1374/2311/223 1412/2312/222 1373/2307/222 +f 1417/2313/263 1367/2289/261 1409/2314/264 +f 1415/2315/265 1367/2289/261 1417/2313/263 +f 1413/2316/266 1367/2289/261 1415/2315/265 +f 1410/2290/262 1367/2289/261 1413/2316/266 +f 1407/2317/267 1366/2318/268 1399/2288/260 +f 1375/2319/209 1411/2320/223 1374/2311/223 +f 1405/2321/269 1366/2318/268 1407/2317/267 +f 1403/2322/270 1366/2318/268 1405/2321/269 +f 1401/2323/271 1366/2318/268 1403/2322/270 +f 1396/2324/272 1366/2318/268 1401/2323/271 +f 1373/2325/256 1387/2326/256 1374/2327/256 +f 1380/2328/256 1382/2329/256 1369/2330/256 +f 1390/2331/256 1378/2332/256 1377/2333/256 +f 1383/2334/256 1371/2335/256 1370/2336/256 +f 1374/2327/256 1388/2337/256 1375/2338/256 +f 1391/2339/256 1379/2340/256 1378/2332/256 +f 1439/2218/235 1392/2341/208 1438/2219/208 +f 1438/2219/208 1391/2342/208 1437/2221/208 +f 1437/2221/208 1390/2343/208 1436/2223/208 +f 1436/2223/208 1389/2344/208 1435/2225/208 +f 1435/2225/236 1388/2345/209 1434/2227/209 +f 1434/2229/209 1387/2346/237 1433/2230/237 +f 1433/2230/215 1386/2347/215 1432/2232/215 +f 1432/2232/215 1385/2348/215 1431/2234/215 +f 1431/2234/215 1384/2349/215 1430/2236/215 +f 1430/2236/215 1383/2350/238 1429/2238/238 +f 1429/2238/238 1381/2351/239 1427/2240/239 +f 1389/2352/256 1377/2333/256 1376/2353/256 +f 1372/2354/256 1386/2355/256 1373/2325/256 +f 1381/2356/256 1370/2336/256 1368/2357/256 +f 1379/2340/256 1393/2358/256 1380/2328/256 +f 1388/2337/256 1376/2353/256 1375/2338/256 +f 1371/2335/256 1385/2359/256 1372/2354/256 +f 1427/2251/241 1368/2360/273 1425/2252/241 +f 1396/2324/272 1400/2361/274 1397/2362/275 +f 1401/2323/271 1402/2363/276 1400/2361/274 +f 1403/2322/270 1404/2364/277 1402/2363/276 +f 1404/2364/277 1407/2317/267 1406/2365/278 +f 1407/2317/267 1398/2366/279 1406/2365/278 +f 1411/2367/280 1413/2316/266 1412/2368/281 +f 1412/2368/281 1415/2315/265 1414/2369/282 +f 1414/2369/282 1417/2313/263 1416/2370/283 +f 1416/2370/283 1409/2314/264 1408/2371/284 +f 1420/2372/285 1408/2371/284 1409/2314/264 +f 1398/2366/279 1410/2290/262 1411/2367/280 +f 1369/2373/273 1395/2374/286 1394/2375/286 +f 1397/2362/275 1419/2376/287 1396/2324/272 +f 1418/2377/288 1396/2324/272 1419/2376/287 +f 1409/2314/264 1364/2378/289 1420/2372/285 +f 1439/2218/235 1382/2379/259 1393/2380/235 +f 1382/2381/241 1426/2274/241 1369/2373/273 +f 1426/2274/241 1368/2360/273 1369/2373/273 +f 1399/2382/241 1423/2276/241 1424/2383/241 +f 1423/2280/215 1366/2384/215 1418/2385/215 +f 1424/2157/208 1310/2386/208 1307/2158/208 +f 1422/2162/209 1421/2387/209 1338/2388/209 +f 1421/2387/209 1307/2389/209 1363/2390/209 +f 1363/2390/209 1338/2388/209 1421/2387/209 +f 1338/2388/209 1337/2160/209 1422/2162/209 +f 1362/2161/209 1308/2391/209 1422/2162/209 +f 1343/2163/210 1340/2169/211 1323/2164/211 +f 1340/2169/211 1337/2392/208 1312/2170/208 +f 1311/2171/215 1338/2393/215 1351/2172/216 +f 1341/2174/209 1349/2180/217 1319/2175/217 +f 1347/2177/218 1345/2182/219 1321/2178/219 +f 1349/2180/217 1347/2177/218 1320/2179/218 +f 1351/2172/216 1359/2186/220 1314/2181/220 +f 1345/2182/219 1343/2163/210 1322/2165/210 +f 1357/2183/221 1355/2187/222 1316/2184/222 +f 1359/2186/220 1357/2183/221 1315/2185/221 +f 1355/2187/222 1354/2195/223 1317/2188/223 +f 1354/2195/223 1341/2394/209 1318/2196/209 +f 1316/2201/234 1317/2213/234 1330/2202/234 +f 1323/2204/234 1312/2395/234 1325/2205/234 +f 1321/2207/234 1334/2216/234 1333/2208/234 +f 1314/2210/234 1327/2249/234 1326/2211/234 +f 1317/2213/234 1318/2248/234 1331/2214/234 +f 1322/2215/234 1335/2247/234 1334/2216/234 +f 1335/2217/208 1336/2273/235 1439/2218/235 +f 1334/2220/208 1335/2217/208 1438/2219/208 +f 1333/2222/208 1334/2220/208 1437/2221/208 +f 1332/2224/208 1333/2222/208 1436/2223/208 +f 1331/2226/209 1332/2224/236 1435/2225/236 +f 1330/2228/237 1331/2396/209 1434/2229/209 +f 1329/2231/215 1330/2228/215 1433/2230/215 +f 1328/2233/215 1329/2231/215 1432/2232/215 +f 1327/2235/215 1328/2233/215 1431/2234/215 +f 1326/2237/238 1327/2235/215 1430/2236/215 +f 1324/2239/239 1326/2237/238 1429/2238/238 +f 1320/2209/234 1333/2208/234 1332/2241/234 +f 1315/2243/234 1316/2201/234 1329/2203/234 +f 1313/2212/234 1326/2211/234 1324/2245/234 +f 1322/2215/234 1323/2204/234 1336/2206/234 +f 1319/2242/234 1332/2241/234 1331/2214/234 +f 1314/2210/234 1315/2243/234 1328/2244/234 +f 1311/2250/240 1324/2397/241 1427/2251/241 +f 1343/2253/242 1344/2199/232 1339/2200/233 +f 1345/2255/244 1346/2198/231 1344/2199/232 +f 1347/2256/245 1348/2197/230 1346/2198/231 +f 1347/2256/245 1349/2258/247 1350/2193/228 +f 1341/2257/246 1342/2166/212 1350/2193/228 +f 1354/2259/248 1355/2260/249 1356/2192/227 +f 1355/2260/249 1357/2261/250 1358/2191/226 +f 1357/2261/250 1359/2262/251 1360/2189/224 +f 1359/2262/251 1351/2263/252 1352/2190/225 +f 1351/2263/252 1338/2398/256 1363/2264/253 +f 1341/2257/246 1354/2259/248 1353/2167/213 +f 1338/2265/254 1311/2250/240 1312/2266/240 +f 1340/2254/243 1339/2200/233 1362/2268/255 +f 1361/2270/257 1308/2399/256 1362/2268/255 +f 1362/2268/255 1339/2200/233 1361/2270/257 +f 1352/2190/225 1363/2264/253 1307/2271/258 +f 1325/2272/259 1428/2400/259 1439/2218/235 +f 1426/2274/241 1428/2401/241 1325/2275/241 +f 1311/2250/240 1425/2252/241 1426/2274/241 +f 1342/2278/241 1310/2402/241 1424/2383/241 +f 1424/2383/241 1423/2276/241 1342/2278/241 +f 1422/2281/215 1308/2403/215 1361/2279/215 +f 1361/2279/215 1309/2404/215 1423/2280/215 +f 1364/2282/208 1367/2405/208 1424/2157/208 +f 1364/2406/209 1421/2387/209 1420/2407/209 +f 1421/2387/209 1422/2162/209 1395/2408/209 +f 1420/2407/209 1421/2387/209 1395/2408/209 +f 1422/2162/209 1365/2409/209 1419/2283/209 +f 1394/2284/209 1395/2408/209 1422/2162/209 +f 1380/2285/211 1397/2291/211 1400/2286/210 +f 1397/2291/211 1380/2285/211 1369/2292/208 +f 1368/2294/215 1370/2305/216 1408/2295/216 +f 1376/2297/217 1406/2303/217 1398/2298/209 +f 1378/2300/219 1402/2306/219 1404/2301/218 +f 1377/2302/218 1404/2301/218 1406/2303/217 +f 1371/2304/220 1416/2310/220 1408/2295/216 +f 1379/2287/210 1400/2286/210 1402/2306/219 +f 1373/2307/222 1412/2312/222 1414/2308/221 +f 1372/2309/221 1414/2308/221 1416/2310/220 +f 1374/2311/223 1411/2320/223 1412/2312/222 +f 1375/2319/209 1398/2410/209 1411/2320/223 +f 1373/2325/256 1386/2355/256 1387/2326/256 +f 1380/2328/256 1393/2358/256 1382/2329/256 +f 1390/2331/256 1391/2339/256 1378/2332/256 +f 1383/2334/256 1384/2411/256 1371/2335/256 +f 1374/2327/256 1387/2326/256 1388/2337/256 +f 1391/2339/256 1392/2412/256 1379/2340/256 +f 1439/2218/235 1393/2380/235 1392/2341/208 +f 1438/2219/208 1392/2341/208 1391/2342/208 +f 1437/2221/208 1391/2342/208 1390/2343/208 +f 1436/2223/208 1390/2343/208 1389/2344/208 +f 1435/2225/236 1389/2344/236 1388/2345/209 +f 1434/2229/209 1388/2413/209 1387/2346/237 +f 1433/2230/215 1387/2346/215 1386/2347/215 +f 1432/2232/215 1386/2347/215 1385/2348/215 +f 1431/2234/215 1385/2348/215 1384/2349/215 +f 1430/2236/215 1384/2349/215 1383/2350/238 +f 1429/2238/238 1383/2350/238 1381/2351/239 +f 1389/2352/256 1390/2331/256 1377/2333/256 +f 1372/2354/256 1385/2359/256 1386/2355/256 +f 1381/2356/256 1383/2334/256 1370/2336/256 +f 1379/2340/256 1392/2412/256 1393/2358/256 +f 1388/2337/256 1389/2352/256 1376/2353/256 +f 1371/2335/256 1384/2411/256 1385/2359/256 +f 1427/2251/241 1381/2414/241 1368/2360/273 +f 1396/2324/272 1401/2323/271 1400/2361/274 +f 1401/2323/271 1403/2322/270 1402/2363/276 +f 1403/2322/270 1405/2321/269 1404/2364/277 +f 1404/2364/277 1405/2321/269 1407/2317/267 +f 1407/2317/267 1399/2288/260 1398/2366/279 +f 1411/2367/280 1410/2290/262 1413/2316/266 +f 1412/2368/281 1413/2316/266 1415/2315/265 +f 1414/2369/282 1415/2315/265 1417/2313/263 +f 1416/2370/283 1417/2313/263 1409/2314/264 +f 1420/2372/285 1395/2415/234 1408/2371/284 +f 1398/2366/279 1399/2288/260 1410/2290/262 +f 1369/2373/273 1368/2360/273 1395/2374/286 +f 1397/2362/275 1394/2416/234 1419/2376/287 +f 1419/2376/287 1365/2417/234 1418/2377/288 +f 1418/2377/288 1366/2318/268 1396/2324/272 +f 1409/2314/264 1367/2289/261 1364/2378/289 +f 1439/2218/235 1428/2400/259 1382/2379/259 +f 1382/2381/241 1428/2401/241 1426/2274/241 +f 1426/2274/241 1425/2252/241 1368/2360/273 +f 1424/2383/241 1367/2418/241 1399/2382/241 +f 1399/2382/241 1366/2419/241 1423/2276/241 +f 1418/2385/215 1365/2420/215 1422/2281/215 +f 1422/2281/215 1423/2280/215 1418/2385/215 diff --git a/src/main/resources/assets/hbm/models/doors/qe_containment.obj b/src/main/resources/assets/hbm/models/doors/qe_containment.obj new file mode 100644 index 000000000..d3c72a634 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/qe_containment.obj @@ -0,0 +1,1601 @@ +# Blender v2.92.0 OBJ File: 'qe_lockdown_doorblend.blend' +# www.blender.org +o door +v 0.125956 2.428429 1.096965 +v 0.125956 0.142335 1.385726 +v 0.125956 0.142335 -1.385726 +v 0.125956 2.128096 1.397299 +v 0.125956 2.128096 -1.397299 +v 0.125956 2.428429 -1.096965 +v 0.125956 0.042149 -1.485400 +v 0.125956 2.169381 -1.497698 +v 0.125956 0.042149 1.485400 +v 0.125956 2.169381 1.497698 +v 0.125956 2.528616 -1.138464 +v 0.125956 2.528616 1.138464 +v 0.064985 0.142335 -1.385726 +v 0.064985 2.128096 -1.397299 +v 0.064985 0.142335 1.385726 +v 0.064985 2.128096 1.397299 +v 0.064985 2.428429 -1.096965 +v 0.064985 2.428429 1.096965 +v 0.040207 0.897613 1.390926 +v 0.040207 1.171400 1.391563 +v 0.040207 0.897613 -1.390926 +v 0.040207 1.171400 -1.391554 +v 0.092371 0.897613 1.390926 +v 0.092371 1.171400 1.391563 +v 0.092371 0.897613 -1.390926 +v 0.092371 1.171400 -1.391554 +v 0.125956 1.171400 1.392205 +v 0.125956 1.171400 -1.392233 +v 0.125956 0.897613 -1.390926 +v 0.125956 0.897613 1.390926 +v 0.090460 0.951001 -1.390926 +v 0.090460 1.118012 -1.390926 +v 0.090460 0.951001 1.390926 +v 0.090460 1.118012 1.390926 +v 0.125956 1.118012 -1.391606 +v 0.125956 1.118012 1.391568 +v 0.125956 0.951001 1.390926 +v 0.125956 0.951001 -1.390926 +v 0.029347 1.034506 -0.285639 +v 0.029347 0.925197 -0.263896 +v 0.029347 0.832529 -0.201977 +v 0.029347 0.770611 -0.109309 +v 0.029347 0.748868 0.000000 +v 0.029347 0.770611 0.109309 +v 0.029347 0.832529 0.201977 +v 0.029347 0.925197 0.263896 +v 0.029347 1.034506 0.285639 +v 0.029347 1.143816 0.263896 +v 0.029347 1.236483 0.201977 +v 0.029347 1.298402 0.109309 +v 0.029347 1.320145 0.000000 +v 0.029347 1.298402 -0.109309 +v 0.029347 1.236483 -0.201977 +v 0.029347 1.143815 -0.263896 +v 0.109739 1.034506 -0.250510 +v 0.075285 1.034506 -0.285639 +v 0.109739 0.938640 -0.231441 +v 0.075285 0.925197 -0.263896 +v 0.109739 0.857369 -0.177137 +v 0.075285 0.832529 -0.201977 +v 0.109739 0.803065 -0.095866 +v 0.075285 0.770611 -0.109309 +v 0.109739 0.783996 0.000000 +v 0.075285 0.748868 0.000000 +v 0.109739 0.803065 0.095866 +v 0.075285 0.770611 0.109309 +v 0.109739 0.857369 0.177137 +v 0.075285 0.832529 0.201977 +v 0.109739 0.938640 0.231441 +v 0.075285 0.925197 0.263896 +v 0.109739 1.034506 0.250510 +v 0.075285 1.034506 0.285639 +v 0.109739 1.130372 0.231441 +v 0.075285 1.143816 0.263896 +v 0.109739 1.211644 0.177137 +v 0.075285 1.236483 0.201977 +v 0.109739 1.265947 0.095866 +v 0.075285 1.298402 0.109309 +v 0.109739 1.285016 0.000000 +v 0.075285 1.320145 0.000000 +v 0.109739 1.265947 -0.095866 +v 0.075285 1.298402 -0.109309 +v 0.109739 1.211644 -0.177137 +v 0.075285 1.236483 -0.201977 +v 0.109739 1.130372 -0.231441 +v 0.075285 1.143815 -0.263896 +v 0.015982 0.142335 0.468209 +v 0.015982 2.428429 0.468209 +v 0.015982 0.142335 0.393815 +v 0.015982 2.428429 0.393815 +v 0.125956 0.142335 0.468209 +v 0.125956 2.428429 0.468209 +v 0.125956 0.142335 0.393815 +v 0.125956 2.428429 0.393815 +v 0.015982 1.171400 0.468209 +v 0.015982 1.171400 0.393815 +v 0.125956 1.171400 0.393815 +v 0.125956 1.171400 0.468209 +v 0.015982 0.897613 0.393815 +v 0.125956 0.897613 0.393815 +v 0.125956 0.897613 0.468209 +v 0.015982 0.897613 0.468209 +v 0.059135 1.138329 0.491282 +v 0.059135 2.143588 1.400841 +v 0.059135 1.193578 0.424240 +v 0.059135 2.198836 1.333799 +v 0.101822 1.138329 0.491282 +v 0.101822 2.143588 1.400841 +v 0.101822 1.193578 0.424240 +v 0.101822 2.198836 1.333799 +v 0.054672 0.167400 1.418743 +v 0.054672 0.948722 0.471243 +v 0.054672 0.096526 1.366685 +v 0.054672 0.877848 0.419185 +v 0.097593 0.167400 1.418743 +v 0.097593 0.948722 0.471243 +v 0.097593 0.096526 1.366685 +v 0.097593 0.877848 0.419185 +v 0.015982 0.142335 -0.468209 +v 0.015982 2.428429 -0.468209 +v 0.015982 0.142335 -0.393815 +v 0.015982 2.428429 -0.393815 +v 0.125956 0.142335 -0.468209 +v 0.125956 2.428429 -0.468209 +v 0.125956 0.142335 -0.393815 +v 0.125956 2.428429 -0.393815 +v 0.015982 1.171400 -0.468209 +v 0.015982 1.171400 -0.393815 +v 0.125956 1.171400 -0.393815 +v 0.125956 1.171400 -0.468209 +v 0.015982 0.897613 -0.393815 +v 0.125956 0.897613 -0.393815 +v 0.125956 0.897613 -0.468209 +v 0.015982 0.897613 -0.468209 +v 0.059135 1.138329 -0.491282 +v 0.059135 2.143588 -1.400841 +v 0.059135 1.193578 -0.424240 +v 0.059135 2.198836 -1.333799 +v 0.101822 1.138329 -0.491282 +v 0.101822 2.143588 -1.400841 +v 0.101822 1.193578 -0.424240 +v 0.101822 2.198836 -1.333799 +v 0.054672 0.167400 -1.418743 +v 0.054672 0.948722 -0.471243 +v 0.054672 0.096526 -1.366685 +v 0.054672 0.877848 -0.419185 +v 0.097593 0.167400 -1.418743 +v 0.097593 0.948722 -0.471243 +v 0.097593 0.096526 -1.366685 +v 0.097593 0.877848 -0.419185 +v 0.075121 0.042149 1.010166 +v 0.075121 0.042149 0.687434 +v 0.075121 0.042149 0.161366 +v 0.075121 0.042149 -0.161366 +v 0.075121 0.042149 -0.687434 +v 0.075121 0.042149 -1.010166 +v 0.125956 0.042149 1.061000 +v 0.125956 0.042149 0.636600 +v 0.125956 0.042149 0.212200 +v 0.125956 0.042149 -0.212200 +v 0.125956 0.042149 -0.636600 +v 0.125956 0.042149 -1.061000 +v 0.056341 -0.123867 0.969824 +v 0.056341 -0.123867 0.727776 +v 0.056341 -0.123867 0.121024 +v 0.056341 -0.123867 -0.121024 +v 0.056341 -0.123867 -0.727776 +v 0.056341 -0.123867 -0.969824 +v -0.125956 2.428429 1.096965 +v -0.125956 0.142335 1.385726 +v -0.125956 0.142335 -1.385726 +v -0.125956 2.128096 1.397299 +v -0.125956 2.128096 -1.397299 +v -0.125956 2.428429 -1.096965 +v -0.125956 0.042149 -1.485400 +v -0.125956 2.169381 -1.497698 +v -0.125956 0.042149 1.485400 +v -0.125956 2.169381 1.497698 +v -0.125956 2.528616 -1.138464 +v -0.125956 2.528616 1.138464 +v -0.064985 0.142335 -1.385726 +v -0.064985 2.128096 -1.397299 +v -0.064985 0.142335 1.385726 +v -0.064985 2.128096 1.397299 +v -0.064985 2.428429 -1.096965 +v -0.064985 2.428429 1.096965 +v -0.040207 0.897613 1.390926 +v -0.040207 1.171400 1.391563 +v -0.040207 0.897613 -1.390926 +v -0.040207 1.171400 -1.391554 +v -0.092371 0.897613 1.390926 +v -0.092371 1.171400 1.391563 +v -0.092371 0.897613 -1.390926 +v -0.092371 1.171400 -1.391554 +v -0.125956 1.171400 1.392205 +v -0.125956 1.171400 -1.392233 +v -0.125956 0.897613 -1.390926 +v -0.125956 0.897613 1.390926 +v -0.090460 0.951001 -1.390926 +v -0.090460 1.118012 -1.390926 +v -0.090460 0.951001 1.390926 +v -0.090460 1.118012 1.390926 +v -0.125956 1.118012 -1.391606 +v -0.125956 1.118012 1.391568 +v -0.125956 0.951001 1.390926 +v -0.125956 0.951001 -1.390926 +v -0.029347 1.034506 -0.285639 +v -0.029347 0.925197 -0.263896 +v -0.029347 0.832529 -0.201977 +v -0.029347 0.770611 -0.109309 +v -0.029347 0.748868 0.000000 +v -0.029347 0.770611 0.109309 +v -0.029347 0.832529 0.201977 +v -0.029347 0.925197 0.263896 +v -0.029347 1.034506 0.285639 +v -0.029347 1.143816 0.263896 +v -0.029347 1.236483 0.201977 +v -0.029347 1.298402 0.109309 +v -0.029347 1.320145 0.000000 +v -0.029347 1.298402 -0.109309 +v -0.029347 1.236483 -0.201977 +v -0.029347 1.143815 -0.263896 +v -0.109739 1.034506 -0.250510 +v -0.075285 1.034506 -0.285639 +v -0.109739 0.938640 -0.231441 +v -0.075285 0.925197 -0.263896 +v -0.109739 0.857369 -0.177137 +v -0.075285 0.832529 -0.201977 +v -0.109739 0.803065 -0.095866 +v -0.075285 0.770611 -0.109309 +v -0.109739 0.783996 0.000000 +v -0.075285 0.748868 0.000000 +v -0.109739 0.803065 0.095866 +v -0.075285 0.770611 0.109309 +v -0.109739 0.857369 0.177137 +v -0.075285 0.832529 0.201977 +v -0.109739 0.938640 0.231441 +v -0.075285 0.925197 0.263896 +v -0.109739 1.034506 0.250510 +v -0.075285 1.034506 0.285639 +v -0.109739 1.130372 0.231441 +v -0.075285 1.143816 0.263896 +v -0.109739 1.211644 0.177137 +v -0.075285 1.236483 0.201977 +v -0.109739 1.265947 0.095866 +v -0.075285 1.298402 0.109309 +v -0.109739 1.285016 0.000000 +v -0.075285 1.320145 0.000000 +v -0.109739 1.265947 -0.095866 +v -0.075285 1.298402 -0.109309 +v -0.109739 1.211644 -0.177137 +v -0.075285 1.236483 -0.201977 +v -0.109739 1.130372 -0.231441 +v -0.075285 1.143815 -0.263896 +v -0.015982 0.142335 0.468209 +v -0.015982 2.428429 0.468209 +v -0.015982 0.142335 0.393815 +v -0.015982 2.428429 0.393815 +v -0.125956 0.142335 0.468209 +v -0.125956 2.428429 0.468209 +v -0.125956 0.142335 0.393815 +v -0.125956 2.428429 0.393815 +v -0.015982 1.171400 0.468209 +v -0.015982 1.171400 0.393815 +v -0.125956 1.171400 0.393815 +v -0.125956 1.171400 0.468209 +v -0.015982 0.897613 0.393815 +v -0.125956 0.897613 0.393815 +v -0.125956 0.897613 0.468209 +v -0.015982 0.897613 0.468209 +v -0.059135 1.138329 0.491282 +v -0.059135 2.143588 1.400841 +v -0.059135 1.193578 0.424240 +v -0.059135 2.198836 1.333799 +v -0.101822 1.138329 0.491282 +v -0.101822 2.143588 1.400841 +v -0.101822 1.193578 0.424240 +v -0.101822 2.198836 1.333799 +v -0.054672 0.167400 1.418743 +v -0.054672 0.948722 0.471243 +v -0.054672 0.096526 1.366685 +v -0.054672 0.877848 0.419185 +v -0.097593 0.167400 1.418743 +v -0.097593 0.948722 0.471243 +v -0.097593 0.096526 1.366685 +v -0.097593 0.877848 0.419185 +v -0.015982 0.142335 -0.468209 +v -0.015982 2.428429 -0.468209 +v -0.015982 0.142335 -0.393815 +v -0.015982 2.428429 -0.393815 +v -0.125956 0.142335 -0.468209 +v -0.125956 2.428429 -0.468209 +v -0.125956 0.142335 -0.393815 +v -0.125956 2.428429 -0.393815 +v -0.015982 1.171400 -0.468209 +v -0.015982 1.171400 -0.393815 +v -0.125956 1.171400 -0.393815 +v -0.125956 1.171400 -0.468209 +v -0.015982 0.897613 -0.393815 +v -0.125956 0.897613 -0.393815 +v -0.125956 0.897613 -0.468209 +v -0.015982 0.897613 -0.468209 +v -0.059135 1.138329 -0.491282 +v -0.059135 2.143588 -1.400841 +v -0.059135 1.193578 -0.424240 +v -0.059135 2.198836 -1.333799 +v -0.101822 1.138329 -0.491282 +v -0.101822 2.143588 -1.400841 +v -0.101822 1.193578 -0.424240 +v -0.101822 2.198836 -1.333799 +v -0.054672 0.167400 -1.418743 +v -0.054672 0.948722 -0.471243 +v -0.054672 0.096526 -1.366685 +v -0.054672 0.877848 -0.419185 +v -0.097593 0.167400 -1.418743 +v -0.097593 0.948722 -0.471243 +v -0.097593 0.096526 -1.366685 +v -0.097593 0.877848 -0.419185 +v -0.075121 0.042149 1.010166 +v -0.075121 0.042149 0.687434 +v -0.075121 0.042149 0.161366 +v -0.075121 0.042149 -0.161366 +v -0.075121 0.042149 -0.687434 +v -0.075121 0.042149 -1.010166 +v -0.125956 0.042149 1.061000 +v -0.125956 0.042149 0.636600 +v -0.125956 0.042149 0.212200 +v -0.125956 0.042149 -0.212200 +v -0.125956 0.042149 -0.636600 +v -0.125956 0.042149 -1.061000 +v -0.056341 -0.123867 0.969824 +v -0.056341 -0.123867 0.727776 +v -0.056341 -0.123867 0.121024 +v -0.056341 -0.123867 -0.121024 +v -0.056341 -0.123867 -0.727776 +v -0.056341 -0.123867 -0.969824 +vt 0.895448 0.314338 +vt 0.901321 0.525639 +vt 0.895448 0.525639 +vt 0.273099 0.724653 +vt 0.053805 0.700391 +vt 0.273099 0.700391 +vt 0.788557 0.587648 +vt 0.812819 0.546774 +vt 0.812819 0.587648 +vt 0.004875 0.734403 +vt 0.209756 0.758666 +vt 0.004875 0.758666 +vt 0.322029 0.700391 +vt 0.322029 0.724653 +vt 0.937895 0.608456 +vt 0.947550 0.803744 +vt 0.937904 0.799712 +vt 0.866298 0.477800 +vt 0.856648 0.549952 +vt 0.866298 0.436927 +vt 0.932801 0.468721 +vt 0.942456 0.273431 +vt 0.942456 0.478314 +vt 0.778807 0.283695 +vt 0.740232 0.258767 +vt 0.749881 0.254770 +vt 0.740231 0.039474 +vt 0.749881 0.043471 +vt 0.778807 0.014545 +vt 0.774830 0.004875 +vt 0.425063 0.839089 +vt 0.425063 0.627788 +vt 0.645240 0.866900 +vt 0.515948 0.883638 +vt 0.707201 0.877765 +vt 0.707201 0.883638 +vt 0.978538 0.273431 +vt 0.984410 0.464685 +vt 0.978538 0.464685 +vt 0.895448 0.273431 +vt 0.901320 0.314338 +vt 0.901320 0.566546 +vt 0.895448 0.566546 +vt 0.922272 0.598863 +vt 0.928144 0.865781 +vt 0.922272 0.865781 +vt 0.711943 0.004974 +vt 0.716385 0.259410 +vt 0.711944 0.259428 +vt 0.721268 0.004956 +vt 0.721268 0.259410 +vt 0.725709 0.259390 +vt 0.730481 0.004936 +vt 0.730481 0.259390 +vt 0.678126 0.259489 +vt 0.682897 0.004936 +vt 0.682897 0.259488 +vt 0.696667 0.004974 +vt 0.696667 0.259428 +vt 0.687341 0.259571 +vt 0.692225 0.004934 +vt 0.692225 0.259514 +vt 0.687342 0.004875 +vt 0.725709 0.004936 +vt 0.004875 0.790146 +vt 0.015467 0.911212 +vt 0.004875 0.911212 +vt 0.015467 0.790146 +vt 0.022632 0.911212 +vt 0.022632 0.790146 +vt 0.033224 0.911212 +vt 0.173791 0.818495 +vt 0.246533 0.807903 +vt 0.246533 0.818494 +vt 0.173791 0.807903 +vt 0.246533 0.800738 +vt 0.173791 0.790146 +vt 0.246533 0.790146 +vt 0.937895 0.813881 +vt 0.942006 0.944448 +vt 0.937895 0.944448 +vt 0.942006 0.813881 +vt 0.950364 0.944061 +vt 0.950364 0.813495 +vt 0.954475 0.944061 +vt 0.980950 0.931775 +vt 0.976816 0.813495 +vt 0.980950 0.813495 +vt 0.976816 0.931775 +vt 0.968360 0.813969 +vt 0.968360 0.932249 +vt 0.964226 0.813969 +vt 0.164041 0.800738 +vt 0.042974 0.790146 +vt 0.164041 0.790146 +vt 0.164041 0.807903 +vt 0.042974 0.800738 +vt 0.164041 0.818495 +vt 0.042974 0.807903 +vt 0.254220 0.944448 +vt 0.264812 0.871705 +vt 0.264812 0.944448 +vt 0.247055 0.944448 +vt 0.254220 0.871705 +vt 0.236463 0.871705 +vt 0.247055 0.871705 +vt 0.964676 0.545087 +vt 0.968787 0.414521 +vt 0.968787 0.545087 +vt 0.956318 0.544701 +vt 0.964676 0.414521 +vt 0.952207 0.544701 +vt 0.956318 0.414135 +vt 0.969891 0.717617 +vt 0.974025 0.599337 +vt 0.974025 0.717617 +vt 0.961435 0.717142 +vt 0.969891 0.599337 +vt 0.957301 0.717142 +vt 0.961435 0.598863 +vt 0.788557 0.342401 +vt 0.812819 0.301526 +vt 0.812819 0.342401 +vt 0.278994 0.877789 +vt 0.295085 0.904987 +vt 0.278994 0.908872 +vt 0.788557 0.505899 +vt 0.807923 0.510795 +vt 0.793453 0.510795 +vt 0.788557 0.424150 +vt 0.807923 0.429046 +vt 0.793453 0.429046 +vt 0.807923 0.541878 +vt 0.812819 0.505899 +vt 0.812819 0.465024 +vt 0.807923 0.460128 +vt 0.807923 0.347297 +vt 0.812819 0.383275 +vt 0.807923 0.378379 +vt 0.053805 0.724653 +vt 0.004875 0.700391 +vt 0.812819 0.424150 +vt 0.441154 0.894220 +vt 0.453816 0.877765 +vt 0.452007 0.894220 +vt 0.305938 0.881675 +vt 0.295085 0.881675 +vt 0.199769 0.911472 +vt 0.210621 0.888160 +vt 0.210621 0.911472 +vt 0.293276 0.865220 +vt 0.307746 0.865220 +vt 0.441154 0.917532 +vt 0.453816 0.933986 +vt 0.439346 0.933986 +vt 0.226713 0.915357 +vt 0.226713 0.884275 +vt 0.468098 0.921417 +vt 0.468098 0.890334 +vt 0.212430 0.927926 +vt 0.197960 0.927926 +vt 0.199769 0.888160 +vt 0.212430 0.871705 +vt 0.305938 0.904987 +vt 0.293276 0.921441 +vt 0.793453 0.347297 +vt 0.788557 0.383275 +vt 0.788557 0.465024 +vt 0.788557 0.546774 +vt 0.822636 0.209756 +vt 0.846898 0.004875 +vt 0.846898 0.209756 +vt 0.906649 0.851070 +vt 0.912521 0.639770 +vt 0.912521 0.851070 +vt 0.950900 0.004875 +vt 0.941245 0.200163 +vt 0.941254 0.008907 +vt 0.885698 0.477803 +vt 0.885698 0.518678 +vt 0.876048 0.549953 +vt 0.921839 0.014469 +vt 0.931494 0.209758 +vt 0.921848 0.205726 +vt 0.691906 0.303921 +vt 0.730481 0.278991 +vt 0.701555 0.307917 +vt 0.691906 0.523212 +vt 0.701555 0.519216 +vt 0.730481 0.548141 +vt 0.875168 0.839089 +vt 0.846242 0.868015 +vt 0.654991 0.866900 +vt 0.987125 0.196128 +vt 0.992998 0.004875 +vt 0.992998 0.196128 +vt 0.989648 0.598863 +vt 0.983775 0.790116 +vt 0.983775 0.598863 +vt 0.906649 0.639770 +vt 0.912521 0.598863 +vt 0.906649 0.891977 +vt 0.912521 0.891977 +vt 0.342747 0.665374 +vt 0.336874 0.932293 +vt 0.336875 0.665374 +vt 0.366750 0.401078 +vt 0.362309 0.655506 +vt 0.362309 0.401057 +vt 0.371633 0.655527 +vt 0.371633 0.401078 +vt 0.380846 0.655551 +vt 0.376074 0.401102 +vt 0.380846 0.401102 +vt 0.333262 0.655585 +vt 0.328490 0.401010 +vt 0.333263 0.401010 +vt 0.347033 0.655506 +vt 0.347033 0.401057 +vt 0.342590 0.655566 +vt 0.337707 0.400920 +vt 0.342590 0.400977 +vt 0.337707 0.655624 +vt 0.376074 0.655551 +vt 0.370254 0.786441 +vt 0.380846 0.665374 +vt 0.380846 0.786441 +vt 0.363089 0.786441 +vt 0.370254 0.665374 +vt 0.352497 0.786441 +vt 0.363089 0.665374 +vt 0.495605 0.950507 +vt 0.506197 0.877765 +vt 0.506197 0.950507 +vt 0.488440 0.950507 +vt 0.495605 0.877765 +vt 0.477849 0.877765 +vt 0.488440 0.877765 +vt 0.173927 0.875817 +vt 0.043361 0.871705 +vt 0.173927 0.871705 +vt 0.173541 0.884175 +vt 0.043361 0.875816 +vt 0.173541 0.888286 +vt 0.042974 0.884174 +vt 0.973241 0.123629 +vt 0.977375 0.005350 +vt 0.977375 0.123629 +vt 0.964785 0.123155 +vt 0.973241 0.005350 +vt 0.960651 0.123155 +vt 0.964785 0.004875 +vt 0.322029 0.855470 +vt 0.311437 0.734403 +vt 0.322029 0.734403 +vt 0.311437 0.855470 +vt 0.304272 0.734403 +vt 0.304272 0.855470 +vt 0.293680 0.734403 +vt 0.911071 0.493804 +vt 0.921663 0.566546 +vt 0.911071 0.566546 +vt 0.921663 0.493804 +vt 0.928828 0.566546 +vt 0.939420 0.493804 +vt 0.939420 0.566546 +vt 0.968787 0.403998 +vt 0.964676 0.273431 +vt 0.968787 0.273431 +vt 0.964676 0.403998 +vt 0.956318 0.273818 +vt 0.956318 0.404384 +vt 0.952207 0.273818 +vt 0.977374 0.251660 +vt 0.973241 0.133380 +vt 0.977374 0.133380 +vt 0.973241 0.251660 +vt 0.964785 0.133855 +vt 0.964785 0.252134 +vt 0.960651 0.133855 +vt 0.322029 0.877789 +vt 0.322029 0.908872 +vt 0.793453 0.541878 +vt 0.793453 0.460128 +vt 0.793453 0.378379 +vt 0.183678 0.915357 +vt 0.183678 0.884275 +vt 0.425063 0.921417 +vt 0.425063 0.890334 +vt 0.452007 0.917532 +vt 0.209756 0.734404 +vt 0.947550 0.598863 +vt 0.866298 0.559552 +vt 0.866298 0.518676 +vt 0.856649 0.283031 +vt 0.866298 0.273431 +vt 0.866298 0.314306 +vt 0.866298 0.355180 +vt 0.866298 0.396055 +vt 0.932810 0.277463 +vt 0.774830 0.293365 +vt 0.453988 0.598863 +vt 0.645240 0.599977 +vt 0.453989 0.868015 +vt 0.515948 0.877765 +vt 0.984410 0.273431 +vt 0.901320 0.273431 +vt 0.928144 0.598863 +vt 0.716385 0.004956 +vt 0.678124 0.004936 +vt 0.033224 0.790146 +vt 0.173791 0.800738 +vt 0.954475 0.813495 +vt 0.964226 0.932249 +vt 0.042974 0.818495 +vt 0.236463 0.944447 +vt 0.952207 0.414135 +vt 0.957301 0.598863 +vt 0.788557 0.301526 +vt 0.004875 0.724653 +vt 0.439346 0.877765 +vt 0.197960 0.871705 +vt 0.307746 0.921441 +vt 0.822636 0.004875 +vt 0.950900 0.209756 +vt 0.876048 0.283031 +vt 0.885698 0.396057 +vt 0.885698 0.273431 +vt 0.885698 0.314306 +vt 0.885698 0.355181 +vt 0.885698 0.559553 +vt 0.885698 0.436928 +vt 0.931494 0.004875 +vt 0.726504 0.269322 +vt 0.726505 0.557811 +vt 0.654991 0.599977 +vt 0.875168 0.627788 +vt 0.846242 0.598863 +vt 0.987125 0.004875 +vt 0.989648 0.790116 +vt 0.906649 0.598863 +vt 0.342747 0.932293 +vt 0.366750 0.655527 +vt 0.328491 0.655585 +vt 0.352497 0.665374 +vt 0.477849 0.950507 +vt 0.042974 0.888286 +vt 0.960651 0.004875 +vt 0.293680 0.855470 +vt 0.928828 0.493804 +vt 0.952207 0.404384 +vt 0.960651 0.252134 +vt 0.774310 0.356785 +vt 0.778734 0.346051 +vt 0.778734 0.356785 +vt 0.774310 0.324583 +vt 0.778734 0.313849 +vt 0.778734 0.324583 +vt 0.774310 0.313849 +vt 0.778734 0.303115 +vt 0.774310 0.474859 +vt 0.778734 0.464125 +vt 0.778734 0.474859 +vt 0.774310 0.453391 +vt 0.778734 0.453391 +vt 0.774310 0.442657 +vt 0.778734 0.442657 +vt 0.774310 0.431923 +vt 0.778734 0.431923 +vt 0.774310 0.421189 +vt 0.778734 0.421189 +vt 0.778734 0.410455 +vt 0.774310 0.399721 +vt 0.778734 0.399721 +vt 0.778734 0.388987 +vt 0.774310 0.388987 +vt 0.778734 0.378253 +vt 0.774310 0.378253 +vt 0.778734 0.367519 +vt 0.774310 0.367519 +vt 0.774310 0.346051 +vt 0.778734 0.335317 +vt 0.774310 0.335317 +vt 0.380672 0.853280 +vt 0.389768 0.846563 +vt 0.391710 0.851049 +vt 0.397514 0.841314 +vt 0.401024 0.844732 +vt 0.402736 0.833547 +vt 0.407278 0.835359 +vt 0.409423 0.824311 +vt 0.404530 0.824367 +vt 0.407228 0.813279 +vt 0.402742 0.815203 +vt 0.400946 0.803966 +vt 0.397541 0.807463 +vt 0.389804 0.802292 +vt 0.391595 0.797762 +vt 0.380574 0.795668 +vt 0.380679 0.800538 +vt 0.371575 0.802462 +vt 0.369601 0.798003 +vt 0.363855 0.807771 +vt 0.360350 0.804352 +vt 0.354053 0.813669 +vt 0.358574 0.815517 +vt 0.351811 0.824674 +vt 0.356686 0.824637 +vt 0.358476 0.833755 +vt 0.354001 0.835677 +vt 0.363674 0.841469 +vt 0.360275 0.844968 +vt 0.371430 0.846637 +vt 0.369638 0.851175 +vt 0.380596 0.848390 +vt 0.990700 0.856431 +vt 0.995125 0.867165 +vt 0.990700 0.867165 +vt 0.990700 0.824229 +vt 0.995125 0.834963 +vt 0.990700 0.834963 +vt 0.990700 0.813495 +vt 0.995125 0.824229 +vt 0.990700 0.974504 +vt 0.995125 0.985238 +vt 0.990700 0.985238 +vt 0.990700 0.963771 +vt 0.995125 0.974504 +vt 0.995125 0.953036 +vt 0.995125 0.963771 +vt 0.990700 0.942302 +vt 0.990700 0.953037 +vt 0.990700 0.931569 +vt 0.995125 0.942302 +vt 0.990700 0.920835 +vt 0.995125 0.931569 +vt 0.995125 0.910101 +vt 0.995125 0.920835 +vt 0.990700 0.899367 +vt 0.990700 0.910101 +vt 0.990700 0.888633 +vt 0.995125 0.899367 +vt 0.990700 0.877899 +vt 0.995125 0.888633 +vt 0.995125 0.877899 +vt 0.990700 0.845697 +vt 0.995125 0.856431 +vt 0.995125 0.845697 +vt 0.358695 0.881542 +vt 0.352004 0.890628 +vt 0.354214 0.879611 +vt 0.363898 0.873817 +vt 0.360512 0.870301 +vt 0.371693 0.868708 +vt 0.369926 0.864155 +vt 0.380884 0.866994 +vt 0.380981 0.862102 +vt 0.392001 0.864382 +vt 0.401281 0.870726 +vt 0.390046 0.868860 +vt 0.402825 0.881899 +vt 0.407377 0.880158 +vt 0.409363 0.891190 +vt 0.402641 0.900280 +vt 0.407127 0.902214 +vt 0.397445 0.908018 +vt 0.400833 0.911528 +vt 0.391433 0.917673 +vt 0.380404 0.919707 +vt 0.389670 0.913130 +vt 0.371351 0.912975 +vt 0.369398 0.917446 +vt 0.363652 0.907727 +vt 0.360122 0.911100 +vt 0.358560 0.899918 +vt 0.354006 0.901666 +vt 0.356895 0.890716 +vt 0.404473 0.891090 +vt 0.380501 0.914823 +vt 0.774310 0.303115 +vt 0.774310 0.464125 +vt 0.774310 0.410455 +vt 0.995125 0.813495 +vt 0.397753 0.874096 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.0058 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0058 -1.0000 +vn 0.0000 0.0058 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.6709 -0.7415 +vn 0.0000 -0.6709 0.7415 +vn 0.0000 -0.7715 -0.6362 +vn 0.0000 0.7715 0.6362 +vn 0.0000 0.6709 0.7415 +vn 0.0000 -0.6709 -0.7415 +vn 0.0000 -0.7715 0.6362 +vn 0.0000 0.7715 -0.6362 +vn 0.9937 -0.1124 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.2361 -0.9717 +vn 0.0000 -0.2361 0.9717 +vn 0.0000 -0.0058 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9937 -0.1124 0.0000 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.7139 -0.0000 -0.7002 +vn 0.7139 -0.2680 -0.6469 +vn 0.7139 -0.4951 -0.4951 +vn 0.7139 -0.6469 -0.2680 +vn 0.7139 -0.7002 -0.0000 +vn 0.7139 -0.6469 0.2680 +vn 0.7139 -0.4951 0.4951 +vn 0.7139 -0.2680 0.6469 +vn 0.7139 0.0000 0.7002 +vn 0.7139 0.2680 0.6469 +vn 0.7139 0.4951 0.4951 +vn 0.7139 0.6469 0.2680 +vn 0.7139 0.7002 0.0000 +vn 0.7139 0.6469 -0.2680 +vn 0.7139 0.4951 -0.4951 +vn 0.7139 0.2680 -0.6469 +vn -0.7139 -0.2680 -0.6469 +vn -0.7139 -0.0000 -0.7002 +vn -0.7139 -0.4951 -0.4951 +vn -0.7139 -0.6469 -0.2680 +vn -0.7139 -0.7002 0.0000 +vn -0.7139 -0.6469 0.2680 +vn -0.7139 -0.4951 0.4951 +vn -0.7139 -0.2680 0.6469 +vn -0.7139 0.0000 0.7002 +vn -0.7139 0.2680 0.6469 +vn -0.7139 0.4951 0.4951 +vn -0.7139 0.6469 0.2680 +vn -0.7139 0.7002 0.0000 +vn -0.7139 0.6469 -0.2680 +vn -0.7139 0.4951 -0.4951 +vn -0.7139 0.2680 -0.6469 +s off +f 1/1/1 17/2/1 6/3/1 +f 179/4/2 12/5/2 11/6/2 +f 177/7/1 157/8/1 9/9/1 +f 178/10/3 9/11/3 10/12/3 +f 179/4/4 8/13/4 176/14/4 +f 3/15/5 8/16/5 5/17/5 +f 161/18/5 3/19/5 160/20/5 +f 2/21/5 10/22/5 9/23/5 +f 5/24/5 11/25/5 6/26/5 +f 6/26/5 12/27/5 1/28/5 +f 4/29/5 12/27/5 10/30/5 +f 17/31/5 18/32/5 13/33/5 +f 2/34/6 16/35/6 4/36/6 +f 5/37/7 13/38/7 3/39/7 +f 4/40/8 18/41/8 1/1/8 +f 6/3/9 14/42/9 5/43/9 +f 3/44/2 15/45/2 2/46/2 +f 33/47/2 38/48/2 31/49/2 +f 38/48/5 30/50/5 29/51/5 +f 25/52/1 19/53/1 21/54/1 +f 22/55/2 24/56/2 26/57/2 +f 34/58/5 31/49/5 32/59/5 +f 28/60/5 36/61/5 35/62/5 +f 26/57/2 27/63/2 28/60/2 +f 32/59/1 36/61/1 34/58/1 +f 25/52/1 30/50/1 23/64/1 +f 90/65/10 97/66/10 96/67/10 +f 94/68/5 98/69/5 97/66/5 +f 92/70/11 95/71/11 98/69/11 +f 99/72/10 93/73/10 89/74/10 +f 100/75/5 91/76/5 93/73/5 +f 91/76/11 102/77/11 87/78/11 +f 106/79/12 109/80/12 105/81/12 +f 110/82/5 107/83/5 109/80/5 +f 108/84/13 103/85/13 107/83/13 +f 114/86/14 117/87/14 113/88/14 +f 118/89/5 115/90/5 117/87/5 +f 116/91/15 111/92/15 115/90/15 +f 129/93/11 122/94/11 128/95/11 +f 130/96/5 126/97/5 129/93/5 +f 127/98/10 124/99/10 130/96/10 +f 125/100/11 131/101/11 121/102/11 +f 123/103/5 132/104/5 125/100/5 +f 123/103/10 134/105/10 133/106/10 +f 141/107/16 138/108/16 137/109/16 +f 139/110/5 142/111/5 141/107/5 +f 135/112/17 140/113/17 139/110/17 +f 149/114/18 146/115/18 145/116/18 +f 147/117/5 150/118/5 149/114/5 +f 143/119/19 148/120/19 147/117/19 +f 330/121/1 7/122/1 162/123/1 +f 151/124/20 164/125/20 152/126/20 +f 326/127/1 152/128/1 320/129/1 +f 328/130/1 154/131/1 322/132/1 +f 151/133/1 158/134/1 157/8/1 +f 154/131/1 159/135/1 153/136/1 +f 156/137/1 161/138/1 155/139/1 +f 180/140/21 10/141/21 12/5/21 +f 326/127/1 159/135/1 158/134/1 +f 328/130/1 161/138/1 160/142/1 +f 336/143/22 156/144/22 168/145/22 +f 331/146/1 164/125/1 163/147/1 +f 333/148/1 166/149/1 165/150/1 +f 331/146/23 151/151/23 319/152/23 +f 335/153/23 155/154/23 323/155/23 +f 153/156/20 166/149/20 154/157/20 +f 155/158/20 168/145/20 156/159/20 +f 333/148/23 153/160/23 321/161/23 +f 334/162/22 154/163/22 166/149/22 +f 332/164/22 152/165/22 164/125/22 +f 330/121/1 156/137/1 324/166/1 +f 329/167/1 155/139/1 161/138/1 +f 327/168/1 153/136/1 159/135/1 +f 325/169/1 151/133/1 157/8/1 +f 175/170/24 8/171/24 7/172/24 +f 185/173/1 169/174/1 174/175/1 +f 176/176/25 171/177/25 173/178/25 +f 326/179/25 325/180/25 170/181/25 +f 170/182/25 178/183/25 172/184/25 +f 179/185/25 173/186/25 174/187/25 +f 180/188/25 174/187/25 169/189/25 +f 172/190/25 180/188/25 169/189/25 +f 185/191/25 182/192/25 181/193/25 +f 184/194/6 170/195/6 172/196/6 +f 181/197/7 173/198/7 171/199/7 +f 186/200/8 172/201/8 169/174/8 +f 182/202/9 174/175/9 173/203/9 +f 183/204/2 171/205/2 170/206/2 +f 206/207/2 201/208/2 199/209/2 +f 198/210/25 206/207/25 197/211/25 +f 187/212/1 193/213/1 189/214/1 +f 192/215/2 190/216/2 194/217/2 +f 199/209/25 202/218/25 200/219/25 +f 204/220/25 196/221/25 203/222/25 +f 194/217/2 195/223/2 192/215/2 +f 204/220/1 200/219/1 202/218/1 +f 198/210/1 193/213/1 191/224/1 +f 265/225/10 258/226/10 264/227/10 +f 266/228/25 262/229/25 265/225/25 +f 263/230/11 260/231/11 266/228/11 +f 261/232/10 267/233/10 257/234/10 +f 259/235/25 268/236/25 261/232/25 +f 259/235/11 270/237/11 269/238/11 +f 277/239/12 274/240/12 273/241/12 +f 275/242/25 278/243/25 277/239/25 +f 271/244/13 276/245/13 275/242/13 +f 285/246/14 282/247/14 281/248/14 +f 283/249/25 286/250/25 285/246/25 +f 279/251/15 284/252/15 283/249/15 +f 290/253/11 297/254/11 296/255/11 +f 294/256/25 298/257/25 297/254/25 +f 292/258/10 295/259/10 298/257/10 +f 299/260/11 293/261/11 289/262/11 +f 300/263/25 291/264/25 293/261/25 +f 291/264/10 302/265/10 287/266/10 +f 306/267/16 309/268/16 305/269/16 +f 310/270/25 307/271/25 309/268/25 +f 308/272/17 303/273/17 307/271/17 +f 314/274/18 317/275/18 313/276/18 +f 318/277/25 315/278/25 317/275/25 +f 316/279/19 311/280/19 315/278/19 +f 332/164/26 319/281/26 320/282/26 +f 325/169/1 320/129/1 319/283/1 +f 327/168/1 322/132/1 321/284/1 +f 329/167/1 324/166/1 323/285/1 +f 334/162/26 321/286/26 322/287/26 +f 336/143/26 323/288/26 324/289/26 +f 335/153/1 168/145/1 167/290/1 +f 1/1/1 18/41/1 17/2/1 +f 179/4/2 180/140/2 12/5/2 +f 177/7/1 325/169/1 157/8/1 +f 178/10/3 177/291/3 9/11/3 +f 179/4/4 11/6/4 8/13/4 +f 3/15/5 7/292/5 8/16/5 +f 7/293/5 3/19/5 162/294/5 +f 3/19/5 2/295/5 160/20/5 +f 162/294/5 3/19/5 161/18/5 +f 2/295/5 9/296/5 157/297/5 +f 158/298/5 159/299/5 2/295/5 +f 159/299/5 160/20/5 2/295/5 +f 2/295/5 157/297/5 158/298/5 +f 2/21/5 4/300/5 10/22/5 +f 5/24/5 8/301/5 11/25/5 +f 6/26/5 11/25/5 12/27/5 +f 4/29/5 1/28/5 12/27/5 +f 16/302/5 15/303/5 18/32/5 +f 15/303/5 13/33/5 18/32/5 +f 13/33/5 14/304/5 17/31/5 +f 2/34/6 15/305/6 16/35/6 +f 5/37/7 14/306/7 13/38/7 +f 4/40/8 16/307/8 18/41/8 +f 6/3/9 17/2/9 14/42/9 +f 3/44/2 13/308/2 15/45/2 +f 33/47/2 37/309/2 38/48/2 +f 38/48/5 37/309/5 30/50/5 +f 25/52/1 23/64/1 19/53/1 +f 22/55/2 20/310/2 24/56/2 +f 34/58/5 33/47/5 31/49/5 +f 28/60/5 27/63/5 36/61/5 +f 26/57/2 24/56/2 27/63/2 +f 32/59/1 35/62/1 36/61/1 +f 25/52/1 29/51/1 30/50/1 +f 90/65/10 94/68/10 97/66/10 +f 94/68/5 92/70/5 98/69/5 +f 92/70/11 88/311/11 95/71/11 +f 99/72/10 100/75/10 93/73/10 +f 100/75/5 101/312/5 91/76/5 +f 91/76/11 101/312/11 102/77/11 +f 106/79/12 110/82/12 109/80/12 +f 110/82/5 108/84/5 107/83/5 +f 108/84/13 104/313/13 103/85/13 +f 114/86/14 118/89/14 117/87/14 +f 118/89/5 116/91/5 115/90/5 +f 116/91/15 112/314/15 111/92/15 +f 129/93/11 126/97/11 122/94/11 +f 130/96/5 124/99/5 126/97/5 +f 127/98/10 120/315/10 124/99/10 +f 125/100/11 132/104/11 131/101/11 +f 123/103/5 133/106/5 132/104/5 +f 123/103/10 119/316/10 134/105/10 +f 141/107/16 142/111/16 138/108/16 +f 139/110/5 140/113/5 142/111/5 +f 135/112/17 136/317/17 140/113/17 +f 149/114/18 150/118/18 146/115/18 +f 147/117/5 148/120/5 150/118/5 +f 143/119/19 144/318/19 148/120/19 +f 330/121/1 175/319/1 7/122/1 +f 151/124/20 163/147/20 164/125/20 +f 326/127/1 158/134/1 152/128/1 +f 328/130/1 160/142/1 154/131/1 +f 151/133/1 152/128/1 158/134/1 +f 154/131/1 160/142/1 159/135/1 +f 156/137/1 162/123/1 161/138/1 +f 180/140/21 178/320/21 10/141/21 +f 326/127/1 327/168/1 159/135/1 +f 328/130/1 329/167/1 161/138/1 +f 336/143/22 324/321/22 156/144/22 +f 331/146/1 332/164/1 164/125/1 +f 333/148/1 334/162/1 166/149/1 +f 331/146/23 163/147/23 151/151/23 +f 335/153/23 167/290/23 155/154/23 +f 153/156/20 165/150/20 166/149/20 +f 155/158/20 167/290/20 168/145/20 +f 333/148/23 165/150/23 153/160/23 +f 334/162/22 322/322/22 154/163/22 +f 332/164/22 320/323/22 152/165/22 +f 330/121/1 162/123/1 156/137/1 +f 329/167/1 323/285/1 155/139/1 +f 327/168/1 321/284/1 153/136/1 +f 325/169/1 319/283/1 151/133/1 +f 175/170/24 176/324/24 8/171/24 +f 185/173/1 186/200/1 169/174/1 +f 176/176/25 175/325/25 171/177/25 +f 170/181/25 171/326/25 328/327/25 +f 171/326/25 175/328/25 330/329/25 +f 330/329/25 329/330/25 171/326/25 +f 329/330/25 328/327/25 171/326/25 +f 325/180/25 177/331/25 170/181/25 +f 328/327/25 327/332/25 170/181/25 +f 327/332/25 326/179/25 170/181/25 +f 170/182/25 177/333/25 178/183/25 +f 179/185/25 176/334/25 173/186/25 +f 180/188/25 179/185/25 174/187/25 +f 172/190/25 178/335/25 180/188/25 +f 181/193/25 183/336/25 186/337/25 +f 183/336/25 184/338/25 186/337/25 +f 186/337/25 185/191/25 181/193/25 +f 184/194/6 183/339/6 170/195/6 +f 181/197/7 182/340/7 173/198/7 +f 186/200/8 184/341/8 172/201/8 +f 182/202/9 185/173/9 174/175/9 +f 183/204/2 181/342/2 171/205/2 +f 206/207/2 205/343/2 201/208/2 +f 198/210/25 205/343/25 206/207/25 +f 187/212/1 191/224/1 193/213/1 +f 192/215/2 188/344/2 190/216/2 +f 199/209/25 201/208/25 202/218/25 +f 204/220/25 195/223/25 196/221/25 +f 194/217/2 196/221/2 195/223/2 +f 204/220/1 203/222/1 200/219/1 +f 198/210/1 197/211/1 193/213/1 +f 265/225/10 262/229/10 258/226/10 +f 266/228/25 260/231/25 262/229/25 +f 263/230/11 256/345/11 260/231/11 +f 261/232/10 268/236/10 267/233/10 +f 259/235/25 269/238/25 268/236/25 +f 259/235/11 255/346/11 270/237/11 +f 277/239/12 278/243/12 274/240/12 +f 275/242/25 276/245/25 278/243/25 +f 271/244/13 272/347/13 276/245/13 +f 285/246/14 286/250/14 282/247/14 +f 283/249/25 284/252/25 286/250/25 +f 279/251/15 280/348/15 284/252/15 +f 290/253/11 294/256/11 297/254/11 +f 294/256/25 292/258/25 298/257/25 +f 292/258/10 288/349/10 295/259/10 +f 299/260/11 300/263/11 293/261/11 +f 300/263/25 301/350/25 291/264/25 +f 291/264/10 301/350/10 302/265/10 +f 306/267/16 310/270/16 309/268/16 +f 310/270/25 308/272/25 307/271/25 +f 308/272/17 304/351/17 303/273/17 +f 314/274/18 318/277/18 317/275/18 +f 318/277/25 316/279/25 315/278/25 +f 316/279/19 312/352/19 311/280/19 +f 332/164/26 331/146/26 319/281/26 +f 325/169/1 326/127/1 320/129/1 +f 327/168/1 328/130/1 322/132/1 +f 329/167/1 330/121/1 324/166/1 +f 334/162/26 333/148/26 321/286/26 +f 336/143/26 335/153/26 323/288/26 +f 335/153/1 336/143/1 168/145/1 +s 1 +f 86/353/27 39/354/10 54/355/27 +f 60/356/8 42/357/28 41/358/8 +f 62/359/28 43/360/1 42/357/28 +f 64/361/1 44/362/29 43/363/1 +f 44/362/29 68/364/9 45/365/9 +f 45/365/9 70/366/30 46/367/30 +f 46/367/30 72/368/11 47/369/11 +f 47/369/11 74/370/31 48/371/31 +f 74/370/31 49/372/21 48/371/31 +f 49/372/21 78/373/32 50/374/32 +f 78/373/32 51/375/2 50/374/32 +f 80/376/2 52/377/33 51/375/2 +f 82/378/33 53/379/4 52/377/33 +f 84/380/4 54/355/27 53/379/4 +f 56/381/10 40/382/34 39/354/10 +f 58/383/34 41/358/8 40/382/34 +f 56/384/35 57/385/36 58/386/36 +f 58/386/36 59/387/37 60/388/37 +f 60/388/37 61/389/38 62/390/38 +f 64/391/39 61/389/38 63/392/39 +f 66/393/40 63/392/39 65/394/40 +f 68/395/41 65/394/40 67/396/41 +f 68/395/41 69/397/42 70/398/42 +f 72/399/43 69/397/42 71/400/43 +f 72/399/43 73/401/44 74/402/44 +f 74/402/44 75/403/45 76/404/45 +f 78/405/46 75/403/45 77/406/46 +f 80/407/47 77/406/46 79/408/47 +f 80/407/47 81/409/48 82/410/48 +f 82/410/48 83/411/49 84/412/49 +f 84/412/49 85/413/50 86/414/50 +f 86/414/50 55/415/35 56/384/35 +f 63/392/5 59/387/5 75/403/5 +f 207/416/10 254/417/27 222/418/27 +f 210/419/28 228/420/8 209/421/8 +f 211/422/1 230/423/28 210/419/28 +f 212/424/29 232/425/1 211/426/1 +f 213/427/9 234/428/29 212/424/29 +f 213/427/9 238/429/30 236/430/9 +f 215/431/11 238/429/30 214/432/30 +f 216/433/31 240/434/11 215/431/11 +f 217/435/21 242/436/31 216/433/31 +f 217/435/21 246/437/32 244/438/21 +f 219/439/2 246/437/32 218/440/32 +f 220/441/33 248/442/2 219/439/2 +f 221/443/4 250/444/33 220/441/33 +f 222/418/27 252/445/4 221/443/4 +f 208/446/34 224/447/10 207/416/10 +f 209/421/8 226/448/34 208/446/34 +f 225/449/51 224/450/52 226/451/51 +f 227/452/53 226/451/51 228/453/53 +f 229/454/54 228/453/53 230/455/54 +f 231/456/55 230/455/54 232/457/55 +f 234/458/56 231/456/55 232/457/55 +f 236/459/57 233/460/56 234/458/56 +f 237/461/58 236/459/57 238/462/58 +f 240/463/59 237/461/58 238/462/58 +f 241/464/60 240/463/59 242/465/60 +f 243/466/61 242/465/60 244/467/61 +f 246/468/62 243/466/61 244/467/61 +f 248/469/63 245/470/62 246/468/62 +f 249/471/64 248/469/63 250/472/64 +f 251/473/65 250/472/64 252/474/65 +f 253/475/66 252/474/65 254/476/66 +f 223/477/52 254/476/66 224/450/52 +f 239/478/25 247/479/25 223/477/25 +f 86/353/27 56/381/10 39/354/10 +f 60/356/8 62/359/28 42/357/28 +f 62/359/28 64/480/1 43/360/1 +f 64/361/1 66/481/29 44/362/29 +f 44/362/29 66/481/29 68/364/9 +f 45/365/9 68/364/9 70/366/30 +f 46/367/30 70/366/30 72/368/11 +f 47/369/11 72/368/11 74/370/31 +f 74/370/31 76/482/21 49/372/21 +f 49/372/21 76/482/21 78/373/32 +f 78/373/32 80/376/2 51/375/2 +f 80/376/2 82/378/33 52/377/33 +f 82/378/33 84/380/4 53/379/4 +f 84/380/4 86/353/27 54/355/27 +f 56/381/10 58/383/34 40/382/34 +f 58/383/34 60/356/8 41/358/8 +f 56/384/35 55/415/35 57/385/36 +f 58/386/36 57/385/36 59/387/37 +f 60/388/37 59/387/37 61/389/38 +f 64/391/39 62/390/38 61/389/38 +f 66/393/40 64/391/39 63/392/39 +f 68/395/41 66/393/40 65/394/40 +f 68/395/41 67/396/41 69/397/42 +f 72/399/43 70/398/42 69/397/42 +f 72/399/43 71/400/43 73/401/44 +f 74/402/44 73/401/44 75/403/45 +f 78/405/46 76/404/45 75/403/45 +f 80/407/47 78/405/46 77/406/46 +f 80/407/47 79/408/47 81/409/48 +f 82/410/48 81/409/48 83/411/49 +f 84/412/49 83/411/49 85/413/50 +f 86/414/50 85/413/50 55/415/35 +f 59/387/5 57/385/5 55/415/5 +f 55/415/5 85/413/5 83/411/5 +f 83/411/5 81/409/5 79/408/5 +f 79/408/5 77/406/5 83/411/5 +f 77/406/5 75/403/5 83/411/5 +f 75/403/5 73/401/5 67/396/5 +f 73/401/5 71/400/5 67/396/5 +f 71/400/5 69/397/5 67/396/5 +f 67/396/5 65/394/5 63/392/5 +f 63/392/5 61/389/5 59/387/5 +f 59/387/5 55/415/5 75/403/5 +f 55/415/5 83/411/5 75/403/5 +f 67/396/5 63/392/5 75/403/5 +f 207/416/10 224/447/10 254/417/27 +f 210/419/28 230/423/28 228/420/8 +f 211/422/1 232/483/1 230/423/28 +f 212/424/29 234/428/29 232/425/1 +f 213/427/9 236/430/9 234/428/29 +f 213/427/9 214/432/30 238/429/30 +f 215/431/11 240/434/11 238/429/30 +f 216/433/31 242/436/31 240/434/11 +f 217/435/21 244/438/21 242/436/31 +f 217/435/21 218/440/32 246/437/32 +f 219/439/2 248/442/2 246/437/32 +f 220/441/33 250/444/33 248/442/2 +f 221/443/4 252/445/4 250/444/33 +f 222/418/27 254/417/27 252/445/4 +f 208/446/34 226/448/34 224/447/10 +f 209/421/8 228/420/8 226/448/34 +f 225/449/51 223/477/52 224/450/52 +f 227/452/53 225/449/51 226/451/51 +f 229/454/54 227/452/53 228/453/53 +f 231/456/55 229/454/54 230/455/54 +f 234/458/56 233/460/56 231/456/55 +f 236/459/57 235/484/57 233/460/56 +f 237/461/58 235/484/57 236/459/57 +f 240/463/59 239/478/59 237/461/58 +f 241/464/60 239/478/59 240/463/59 +f 243/466/61 241/464/60 242/465/60 +f 246/468/62 245/470/62 243/466/61 +f 248/469/63 247/479/63 245/470/62 +f 249/471/64 247/479/63 248/469/63 +f 251/473/65 249/471/64 250/472/64 +f 253/475/66 251/473/65 252/474/65 +f 223/477/52 253/475/66 254/476/66 +f 223/477/25 225/449/25 227/452/25 +f 227/452/25 229/454/25 223/477/25 +f 229/454/25 231/456/25 223/477/25 +f 231/456/25 233/460/25 239/478/25 +f 233/460/25 235/484/25 239/478/25 +f 235/484/25 237/461/25 239/478/25 +f 239/478/25 241/464/25 247/479/25 +f 241/464/25 243/466/25 247/479/25 +f 243/466/25 245/470/25 247/479/25 +f 247/479/25 249/471/25 251/473/25 +f 251/473/25 253/475/25 223/477/25 +f 247/479/25 251/473/25 223/477/25 +f 223/477/25 231/456/25 239/478/25 +o frame +v -0.250000 0.082265 1.245283 +v -0.250000 0.082265 -1.245283 +v 0.250000 0.082265 1.245283 +v 0.250000 0.082265 -1.245283 +v -0.250000 -0.250000 -1.500000 +v -0.250000 -0.250000 1.500000 +v -0.250000 3.000000 1.500000 +v -0.250000 3.000000 -1.500000 +v 0.250000 3.000000 -1.500000 +v 0.250000 -0.250000 -1.500000 +v 0.250000 -0.250000 1.500000 +v 0.250000 3.000000 1.500000 +v -0.250000 2.476200 0.916753 +v -0.250000 2.147670 1.245283 +v -0.250000 2.147670 -1.245283 +v -0.250000 2.476200 -0.916753 +v 0.250000 2.247670 1.245283 +v 0.250000 2.476200 1.016753 +v 0.250000 2.476200 -1.016753 +v 0.250000 2.247670 -1.245283 +v 0.125956 2.528616 1.138464 +v -0.125956 2.528616 1.138464 +v -0.125956 0.041706 1.485400 +v 0.125956 0.041706 1.485400 +v -0.125956 0.041706 -1.485400 +v 0.125956 0.041706 -1.485400 +v 0.125956 0.082265 -1.245283 +v -0.125956 0.082265 -1.245283 +v 0.125956 0.082265 1.245283 +v -0.125956 0.082265 1.245283 +v -0.125956 2.476200 0.916753 +v 0.125956 2.476200 1.016753 +v 0.125956 2.247670 1.245283 +v -0.125956 2.147670 1.245283 +v -0.125956 2.147670 -1.245283 +v 0.125956 2.247670 -1.245283 +v 0.125956 2.476200 -1.016753 +v -0.125956 2.476200 -0.916753 +v 0.125956 2.169381 1.490198 +v -0.125956 2.169381 1.490198 +v -0.125956 2.169381 -1.490198 +v 0.125956 2.169381 -1.490198 +v 0.125956 2.528616 -1.138464 +v -0.125956 2.528616 -1.138464 +vt 0.252094 0.849975 +vt 0.042974 0.861955 +vt 0.042974 0.849975 +vt 0.053162 0.391169 +vt 0.367026 0.342882 +vt 0.367026 0.391169 +vt 0.900109 0.004875 +vt 0.912088 0.204338 +vt 0.900109 0.204338 +vt 0.053162 0.053162 +vt 0.367026 0.004876 +vt 0.367026 0.053162 +vt 0.415312 0.053162 +vt 0.415313 0.342882 +vt 0.004875 0.342883 +vt 0.053162 0.342883 +vt 0.286651 0.425519 +vt 0.318739 0.690640 +vt 0.286651 0.666041 +vt 0.226812 0.768416 +vt 0.271682 0.780396 +vt 0.226812 0.780396 +vt 0.856649 0.036087 +vt 0.868628 0.232469 +vt 0.856648 0.232469 +vt 0.103747 0.099831 +vt 0.334938 0.077761 +vt 0.334938 0.318284 +vt 0.125817 0.077761 +vt 0.125817 0.318284 +vt 0.055461 0.457246 +vt 0.004875 0.690640 +vt 0.004875 0.400920 +vt 0.087188 0.425519 +vt 0.318739 0.400920 +vt 0.055460 0.634314 +vt 0.087188 0.666041 +vt 0.103747 0.296214 +vt 0.049744 0.780396 +vt 0.049744 0.768416 +vt 0.004875 0.768416 +vt 0.004875 0.780396 +vt 0.414924 0.449983 +vt 0.390596 0.400920 +vt 0.414924 0.400920 +vt 0.856648 0.263681 +vt 0.868628 0.263681 +vt 0.923050 0.472894 +vt 0.911071 0.273431 +vt 0.923050 0.273431 +vt 0.868628 0.004875 +vt 0.868628 0.036087 +vt 0.890358 0.245395 +vt 0.878378 0.004875 +vt 0.890358 0.004875 +vt 0.896898 0.839383 +vt 0.884919 0.598863 +vt 0.896898 0.598863 +vt 0.430107 0.236244 +vt 0.425246 0.039582 +vt 0.430253 0.060865 +vt 0.461883 0.029415 +vt 0.459928 0.004875 +vt 0.664327 0.329425 +vt 0.459896 0.302054 +vt 0.668618 0.304997 +vt 0.664320 0.561413 +vt 0.459690 0.589112 +vt 0.452012 0.564649 +vt 0.461669 0.267743 +vt 0.425063 0.257528 +vt 0.668618 0.585734 +vt 0.042974 0.840225 +vt 0.252094 0.828245 +vt 0.252094 0.840225 +vt 0.414924 0.718936 +vt 0.390596 0.669873 +vt 0.414924 0.669873 +vt 0.822570 0.301526 +vt 0.846898 0.507007 +vt 0.822570 0.507007 +vt 0.390596 0.449983 +vt 0.812885 0.291775 +vt 0.788557 0.004875 +vt 0.812885 0.004875 +vt 0.764559 0.508596 +vt 0.740232 0.303115 +vt 0.764559 0.303115 +vt 0.452216 0.326499 +vt 0.425247 0.336687 +vt 0.664083 0.032287 +vt 0.668374 0.288821 +vt 0.664077 0.264516 +vt 0.425063 0.554433 +vt 0.430094 0.542765 +vt 0.430257 0.348360 +vt 0.668374 0.007875 +vt 0.459720 0.292303 +vt 0.252094 0.861955 +vt 0.912088 0.004875 +vt 0.053162 0.004875 +vt 0.004875 0.053162 +vt 0.271682 0.768416 +vt 0.911071 0.472894 +vt 0.856649 0.004875 +vt 0.878379 0.245395 +vt 0.884919 0.839383 +vt 0.042974 0.828245 +vt 0.390596 0.718936 +vt 0.846898 0.301526 +vt 0.788557 0.291775 +vt 0.740231 0.508596 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.6996 0.7145 +vn 0.0000 -0.6996 -0.7145 +vn 0.0000 0.0023 -1.0000 +vn 0.0000 0.0023 1.0000 +s off +f 339/485/67 369/486/67 353/487/67 +f 344/488/67 346/489/67 341/490/67 +f 371/491/68 338/492/68 364/493/68 +f 348/494/68 342/495/68 347/496/68 +f 346/489/69 342/497/69 341/498/69 +f 344/499/70 348/494/70 345/500/70 +f 338/501/71 342/502/71 337/503/71 +f 367/504/72 350/505/72 349/506/72 +f 354/507/69 373/508/69 355/509/69 +f 354/510/73 345/500/73 348/494/73 +f 339/511/73 346/489/73 340/512/73 +f 353/513/73 347/496/73 339/511/73 +f 356/514/73 346/489/73 345/500/73 +f 352/515/71 343/516/71 344/517/71 +f 351/518/71 341/519/71 338/501/71 +f 349/520/71 350/521/71 343/516/71 +f 351/518/71 352/515/71 344/517/71 +f 353/513/73 354/510/73 348/494/73 +f 355/522/73 356/514/73 345/500/73 +f 367/504/69 352/523/69 374/524/69 +f 371/525/74 352/523/74 351/526/74 +f 350/521/71 342/502/71 343/516/71 +f 379/527/75 377/528/75 378/529/75 +f 356/530/74 373/508/74 372/531/74 +f 366/532/67 350/533/67 370/534/67 +f 354/507/72 369/535/72 368/536/72 +f 365/537/70 340/538/70 363/539/70 +f 337/540/70 364/541/70 338/542/70 +f 374/543/73 358/544/73 367/545/73 +f 370/546/73 358/544/73 376/547/73 +f 363/548/71 378/549/71 362/550/71 +f 365/551/71 375/552/71 369/553/71 +f 371/554/73 380/555/73 374/543/73 +f 363/548/71 360/556/71 365/551/71 +f 356/557/68 363/558/68 340/559/68 +f 375/560/76 358/561/76 357/562/76 +f 376/563/77 360/564/77 359/565/77 +f 380/566/69 357/562/69 358/561/69 +f 362/567/70 359/568/70 360/569/70 +f 361/570/78 378/571/78 377/572/78 +f 372/573/71 379/574/71 378/549/71 +f 366/575/73 361/576/73 364/577/73 +f 369/553/71 357/578/71 368/579/71 +f 373/580/71 357/578/71 379/574/71 +f 366/575/73 376/547/73 359/581/73 +f 364/577/73 377/582/73 371/554/73 +f 339/485/67 365/583/67 369/486/67 +f 344/488/67 345/500/67 346/489/67 +f 371/491/68 351/584/68 338/492/68 +f 348/494/68 343/585/68 342/495/68 +f 346/489/69 347/496/69 342/497/69 +f 344/499/70 343/586/70 348/494/70 +f 338/501/71 341/519/71 342/502/71 +f 367/504/72 370/587/72 350/505/72 +f 354/507/69 368/536/69 373/508/69 +f 354/510/73 355/522/73 345/500/73 +f 339/511/73 347/496/73 346/489/73 +f 353/513/73 348/494/73 347/496/73 +f 356/514/73 340/512/73 346/489/73 +f 352/515/71 349/520/71 343/516/71 +f 351/518/71 344/517/71 341/519/71 +f 367/504/69 349/506/69 352/523/69 +f 371/525/74 374/524/74 352/523/74 +f 350/521/71 337/503/71 342/502/71 +f 379/527/75 380/566/75 377/528/75 +f 356/530/74 355/509/74 373/508/74 +f 366/532/67 337/588/67 350/533/67 +f 354/507/72 353/589/72 369/535/72 +f 365/537/70 339/590/70 340/538/70 +f 337/540/70 366/591/70 364/541/70 +f 374/543/73 380/555/73 358/544/73 +f 370/546/73 367/545/73 358/544/73 +f 363/548/71 372/573/71 378/549/71 +f 365/551/71 360/556/71 375/552/71 +f 371/554/73 377/582/73 380/555/73 +f 363/548/71 362/550/71 360/556/71 +f 356/557/68 372/592/68 363/558/68 +f 375/560/76 376/593/76 358/561/76 +f 376/563/77 375/594/77 360/564/77 +f 380/566/69 379/527/69 357/562/69 +f 362/567/70 361/595/70 359/568/70 +f 361/570/78 362/596/78 378/571/78 +f 372/573/71 373/580/71 379/574/71 +f 366/575/73 359/581/73 361/576/73 +f 369/553/71 375/552/71 357/578/71 +f 373/580/71 368/579/71 357/578/71 +f 366/575/73 370/546/73 376/547/73 +f 364/577/73 361/576/73 377/582/73 +o decal +v -0.074985 1.303216 -0.467952 +v -0.074985 1.303216 0.467952 +v -0.074985 2.239120 -0.467952 +v -0.074985 2.239120 0.467952 +v 0.074985 1.303216 0.467952 +v 0.074985 1.303216 -0.467952 +v 0.074985 2.239120 0.467952 +v 0.074985 2.239120 -0.467952 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +s off +f 382/597/79 383/598/79 381/599/79 +f 386/600/80 387/601/80 385/602/80 +f 382/597/79 384/603/79 383/598/79 +f 386/600/80 388/604/80 387/601/80 diff --git a/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj b/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj new file mode 100644 index 000000000..66bd1e8ce --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj @@ -0,0 +1,2312 @@ +# Blender v2.92.0 OBJ File: 'qe_sliding_door.blend' +# www.blender.org +o leftDoor +v 0.030935 0.772401 0.150776 +v 0.030935 0.972661 0.150776 +v 0.075000 0.088688 0.911312 +v 0.075000 1.911312 0.911312 +v 0.075000 0.088688 0.088688 +v 0.075000 1.911312 0.088688 +v 0.075000 2.000000 1.000000 +v 0.075000 0.000000 1.000000 +v 0.012500 1.861312 0.861312 +v 0.012500 0.138688 0.861312 +v 0.012500 0.138688 0.138688 +v 0.012500 1.861312 0.138688 +v 0.012500 0.733440 0.267519 +v 0.012500 0.988637 0.267519 +v 0.075000 0.655676 0.088688 +v 0.075000 1.166712 0.088688 +v 0.012500 1.166712 0.138688 +v 0.012500 0.655676 0.138688 +v 0.075000 0.733440 0.217519 +v 0.075000 0.988637 0.217519 +v 0.026895 0.753307 0.256002 +v 0.023223 0.758010 0.253518 +v 0.026895 0.753307 0.872828 +v 0.023223 0.758010 0.875312 +v 0.026895 0.834000 0.872828 +v 0.023223 0.829297 0.875312 +v 0.026895 0.834000 0.256002 +v 0.023223 0.829297 0.253518 +v 0.012500 0.753307 0.861312 +v 0.011573 0.758010 0.866015 +v 0.012500 0.753307 0.267519 +v 0.011573 0.758010 0.262816 +v 0.012500 0.834000 0.861312 +v 0.011573 0.829297 0.866015 +v 0.012500 0.834000 0.267519 +v 0.011573 0.829297 0.262816 +v 0.026895 0.873731 0.256002 +v 0.023223 0.878434 0.253518 +v 0.026895 0.873731 0.872828 +v 0.023223 0.878434 0.875312 +v 0.026895 0.954424 0.872828 +v 0.023223 0.949722 0.875312 +v 0.026895 0.954424 0.256002 +v 0.023223 0.949722 0.253518 +v 0.012500 0.873731 0.861312 +v 0.011573 0.878434 0.866015 +v 0.012500 0.873731 0.267519 +v 0.011573 0.878434 0.262816 +v 0.012500 0.954424 0.861312 +v 0.011573 0.949722 0.866015 +v 0.012500 0.954424 0.267519 +v 0.011573 0.949722 0.262816 +v 0.023223 0.758010 0.252557 +v 0.023223 0.829297 0.252557 +v 0.023223 0.758010 0.880367 +v 0.023223 0.829297 0.880367 +v 0.023223 0.878434 0.252557 +v 0.023223 0.949722 0.252557 +v 0.023223 0.878434 0.880367 +v 0.023223 0.949722 0.880367 +v 0.075000 0.772401 0.150776 +v 0.075000 0.972661 0.150776 +v -0.030935 0.772401 0.150776 +v -0.030935 0.972661 0.150776 +v -0.075000 0.088688 0.911312 +v -0.075000 1.911312 0.911312 +v -0.075000 0.088688 0.088688 +v -0.075000 1.911312 0.088688 +v -0.075000 2.000000 1.000000 +v -0.075000 0.000000 1.000000 +v -0.012500 1.861312 0.861312 +v -0.012500 0.138688 0.861312 +v -0.012500 0.138688 0.138688 +v -0.012500 1.861312 0.138688 +v -0.012500 0.733440 0.267519 +v -0.012500 0.988637 0.267519 +v -0.075000 0.655676 0.088688 +v -0.075000 1.166712 0.088688 +v -0.012500 1.166712 0.138688 +v -0.012500 0.655676 0.138688 +v -0.075000 0.733440 0.217519 +v -0.075000 0.988637 0.217519 +v -0.026895 0.753307 0.256002 +v -0.023223 0.758010 0.253518 +v -0.026895 0.753307 0.872828 +v -0.023223 0.758010 0.875312 +v -0.026895 0.834000 0.872828 +v -0.023223 0.829297 0.875312 +v -0.026895 0.834000 0.256002 +v -0.023223 0.829297 0.253518 +v -0.012500 0.753307 0.861312 +v -0.011573 0.758010 0.866015 +v -0.012500 0.753307 0.267519 +v -0.011573 0.758010 0.262816 +v -0.012500 0.834000 0.861312 +v -0.011573 0.829297 0.866015 +v -0.012500 0.834000 0.267519 +v -0.011573 0.829297 0.262816 +v -0.026895 0.873731 0.256002 +v -0.023223 0.878434 0.253518 +v -0.026895 0.873731 0.872828 +v -0.023223 0.878434 0.875312 +v -0.026895 0.954424 0.872828 +v -0.023223 0.949722 0.875312 +v -0.026895 0.954424 0.256002 +v -0.023223 0.949722 0.253518 +v -0.012500 0.873731 0.861312 +v -0.011573 0.878434 0.866015 +v -0.012500 0.873731 0.267519 +v -0.011573 0.878434 0.262816 +v -0.012500 0.954424 0.861312 +v -0.011573 0.949722 0.866015 +v -0.012500 0.954424 0.267519 +v -0.011573 0.949722 0.262816 +v -0.023223 0.758010 0.252557 +v -0.023223 0.829297 0.252557 +v -0.023223 0.758010 0.880367 +v -0.023223 0.829297 0.880367 +v -0.023223 0.878434 0.252557 +v -0.023223 0.949722 0.252557 +v -0.023223 0.878434 0.880367 +v -0.023223 0.949722 0.880367 +v -0.075000 0.772401 0.150776 +v -0.075000 0.972661 0.150776 +v 0.065000 0.000000 0.000000 +v 0.075000 0.000000 0.010000 +v 0.065000 2.000000 0.000000 +v 0.075000 2.000000 0.010000 +v 0.065000 0.655676 0.000000 +v 0.075000 0.655676 0.010000 +v 0.065000 1.166712 0.000000 +v 0.075000 1.166712 0.010000 +v 0.065000 0.733440 0.000000 +v 0.075000 0.733440 0.010000 +v 0.065000 0.988637 0.000000 +v 0.075000 0.988637 0.010000 +v 0.065000 0.982661 0.000000 +v 0.075000 0.972661 0.010000 +v 0.065000 0.762401 0.000000 +v 0.075000 0.772401 0.010000 +v 0.020935 0.982661 0.000000 +v 0.030935 0.972661 0.010000 +v 0.020935 0.762401 0.000000 +v 0.030935 0.772401 0.010000 +v -0.065000 0.000000 0.000000 +v -0.075000 0.000000 0.010000 +v -0.065000 2.000000 0.000000 +v -0.075000 2.000000 0.010000 +v -0.065000 0.655676 0.000000 +v -0.075000 0.655676 0.010000 +v -0.065000 1.166712 0.000000 +v -0.075000 1.166712 0.010000 +v -0.065000 0.733440 0.000000 +v -0.075000 0.733440 0.010000 +v -0.065000 0.988637 0.000000 +v -0.075000 0.988637 0.010000 +v -0.065000 0.982661 0.000000 +v -0.075000 0.972661 0.010000 +v -0.065000 0.762401 0.000000 +v -0.075000 0.772401 0.010000 +v -0.020935 0.982661 0.000000 +v -0.030935 0.972661 0.010000 +v -0.020935 0.762401 0.000000 +v -0.030935 0.772401 0.010000 +v -0.075000 0.954424 0.911312 +v -0.075000 0.753307 0.911312 +v 0.075000 0.954424 0.911312 +v 0.075000 0.753307 0.911312 +v 0.075000 0.954424 1.000000 +v 0.075000 0.753307 1.000000 +v -0.075000 0.954424 1.000000 +v -0.075000 0.753307 1.000000 +v -0.053113 0.981602 0.127840 +v -0.053113 0.753528 0.127840 +v -0.066310 0.981602 0.120221 +v -0.066310 0.753528 0.120221 +v -0.066310 0.981602 0.104982 +v -0.066310 0.753528 0.104982 +v -0.053113 0.981602 0.097362 +v -0.053113 0.753528 0.097362 +v -0.039915 0.981602 0.104982 +v -0.039915 0.753528 0.104982 +v -0.039915 0.981602 0.120221 +v -0.039915 0.753528 0.120221 +v -0.032467 0.940925 -0.136816 +v -0.032467 0.927874 -0.136816 +v -0.032467 0.940925 0.131365 +v -0.032467 0.927874 0.131365 +v -0.073758 0.940925 -0.136816 +v -0.073758 0.927874 -0.136816 +v -0.073758 0.940925 0.131365 +v -0.073758 0.927874 0.131365 +v -0.032467 0.818858 -0.136816 +v -0.032467 0.805807 -0.136816 +v -0.032467 0.818858 0.131365 +v -0.032467 0.805807 0.131365 +v -0.073758 0.818858 -0.136816 +v -0.073758 0.805807 -0.136816 +v -0.073758 0.818858 0.131365 +v -0.073758 0.805807 0.131365 +v -0.053113 0.939957 -0.088549 +v -0.053113 0.813798 -0.088550 +v -0.071903 0.939957 -0.099398 +v -0.071903 0.813798 -0.099398 +v -0.071903 0.939957 -0.121096 +v -0.071903 0.813798 -0.121096 +v -0.053113 0.939957 -0.131945 +v -0.053113 0.813798 -0.131945 +v -0.034322 0.939957 -0.121096 +v -0.034322 0.813798 -0.121096 +v -0.034322 0.939957 -0.099398 +v -0.034322 0.813798 -0.099398 +v 0.012500 1.861312 0.861312 +v 0.012500 0.138688 0.861312 +v 0.012500 0.138688 0.138688 +v 0.012500 1.861312 0.138688 +v 0.012500 0.733440 0.267519 +v 0.012500 0.988637 0.267519 +v 0.012500 1.166712 0.138688 +v 0.012500 0.655676 0.138688 +v 0.012500 0.753307 0.861312 +v 0.011573 0.758010 0.866015 +v 0.012500 0.753307 0.267519 +v 0.011573 0.758010 0.262816 +v 0.012500 0.834000 0.861312 +v 0.011573 0.829297 0.866015 +v 0.012500 0.834000 0.267519 +v 0.011573 0.829297 0.262816 +v 0.012500 0.873731 0.861312 +v 0.011573 0.878434 0.866015 +v 0.012500 0.873731 0.267519 +v 0.011573 0.878434 0.262816 +v 0.012500 0.954424 0.861312 +v 0.011573 0.949722 0.866015 +v 0.012500 0.954424 0.267519 +v 0.011573 0.949722 0.262816 +v -0.012500 1.861312 0.861312 +v -0.012500 0.138688 0.861312 +v -0.012500 0.138688 0.138688 +v -0.012500 1.861312 0.138688 +v -0.012500 0.733440 0.267519 +v -0.012500 0.988637 0.267519 +v -0.012500 1.166712 0.138688 +v -0.012500 0.655676 0.138688 +v -0.012500 0.753307 0.861312 +v -0.011573 0.758010 0.866015 +v -0.012500 0.753307 0.267519 +v -0.011573 0.758010 0.262816 +v -0.012500 0.834000 0.861312 +v -0.011573 0.829297 0.866015 +v -0.012500 0.834000 0.267519 +v -0.011573 0.829297 0.262816 +v -0.012500 0.873731 0.861312 +v -0.011573 0.878434 0.866015 +v -0.012500 0.873731 0.267519 +v -0.011573 0.878434 0.262816 +v -0.012500 0.954424 0.861312 +v -0.011573 0.949722 0.866015 +v -0.012500 0.954424 0.267519 +v -0.011573 0.949722 0.262816 +vt 0.727731 0.909684 +vt 0.717217 0.861903 +vt 0.727731 0.861903 +vt 0.994311 0.103548 +vt 0.958521 0.339756 +vt 0.958521 0.103548 +vt 0.883586 0.940828 +vt 0.877670 0.942230 +vt 0.878053 0.940634 +vt 0.857471 0.136616 +vt 0.838387 0.302232 +vt 0.838387 0.124694 +vt 0.401117 0.005690 +vt 0.559691 0.026850 +vt 0.401117 0.026850 +vt 0.413762 0.782316 +vt 0.549042 0.763542 +vt 0.549042 0.782317 +vt 0.819625 0.302232 +vt 0.425692 0.801413 +vt 0.711314 0.382154 +vt 0.692217 0.566498 +vt 0.692217 0.370225 +vt 0.248180 0.728437 +vt 0.063836 0.709339 +vt 0.260109 0.709340 +vt 0.804820 0.331268 +vt 0.769031 0.580736 +vt 0.769031 0.331268 +vt 0.136754 0.051912 +vt 0.353132 0.045947 +vt 0.353132 0.051912 +vt 0.075766 0.734402 +vt 0.075766 0.728437 +vt 0.091858 0.900883 +vt 0.092397 0.931216 +vt 0.073304 0.931621 +vt 0.048047 0.923951 +vt 0.547761 0.045947 +vt 0.401117 0.051912 +vt 0.401117 0.045947 +vt 0.090428 0.866950 +vt 0.132915 0.885725 +vt 0.090428 0.885725 +vt 0.132915 0.836212 +vt 0.085677 0.848454 +vt 0.128164 0.817715 +vt 0.873687 0.631974 +vt 0.894191 0.606510 +vt 0.904705 0.631974 +vt 0.612014 0.873137 +vt 0.564233 0.873137 +vt 0.560421 0.857213 +vt 0.927871 0.057405 +vt 0.917358 0.090994 +vt 0.917358 0.057405 +vt 0.863432 0.302232 +vt 0.857471 0.302232 +vt 0.353132 0.041548 +vt 0.136754 0.045947 +vt 0.621310 0.857213 +vt 0.587837 0.842515 +vt 0.711314 0.554568 +vt 0.717279 0.382154 +vt 0.717279 0.554568 +vt 0.124668 0.812883 +vt 0.909280 0.919388 +vt 0.903479 0.920905 +vt 0.903374 0.919265 +vt 0.598908 0.941632 +vt 0.599882 0.924151 +vt 0.599882 0.942747 +vt 0.912069 0.938667 +vt 0.913157 0.921031 +vt 0.913157 0.939831 +vt 0.595651 0.923166 +vt 0.595950 0.921479 +vt 0.590064 0.923387 +vt 0.589668 0.921765 +vt 0.909011 0.940828 +vt 0.909311 0.942491 +vt 0.918708 0.873065 +vt 0.912874 0.871208 +vt 0.918408 0.871402 +vt 0.595840 0.942876 +vt 0.596024 0.944398 +vt 0.909105 0.920915 +vt 0.921466 0.869241 +vt 0.922554 0.851605 +vt 0.922554 0.870405 +vt 0.886645 0.938667 +vt 0.887733 0.921031 +vt 0.887733 0.939831 +vt 0.381864 0.045947 +vt 0.372385 0.051912 +vt 0.372385 0.045947 +vt 0.883680 0.920915 +vt 0.883856 0.919388 +vt 0.918502 0.851489 +vt 0.918677 0.849962 +vt 0.912876 0.851479 +vt 0.912771 0.849839 +vt 0.883887 0.942491 +vt 0.200475 0.935830 +vt 0.183466 0.786038 +vt 0.200475 0.786038 +vt 0.392602 0.916184 +vt 0.542394 0.899175 +vt 0.542394 0.916184 +vt 0.144294 0.786038 +vt 0.155376 0.935830 +vt 0.144294 0.935830 +vt 0.736376 0.566497 +vt 0.757536 0.351450 +vt 0.757536 0.587658 +vt 0.760166 0.808558 +vt 0.749652 0.842147 +vt 0.749652 0.808558 +vt 0.761319 0.909684 +vt 0.761319 0.861903 +vt 0.542394 0.860003 +vt 0.392602 0.871085 +vt 0.392602 0.860003 +vt 0.392602 0.888093 +vt 0.542394 0.888093 +vt 0.560421 0.838116 +vt 0.568584 0.832151 +vt 0.568584 0.838116 +vt 0.597317 0.838116 +vt 0.587837 0.832151 +vt 0.597317 0.832151 +vt 0.172385 0.935830 +vt 0.172385 0.786038 +vt 0.590227 0.942930 +vt 0.621310 0.838116 +vt 0.616570 0.832151 +vt 0.621310 0.832151 +vt 0.110951 0.900478 +vt 0.097503 0.934298 +vt 0.903477 0.940634 +vt 0.549042 0.801413 +vt 0.425692 0.807378 +vt 0.211854 0.900206 +vt 0.222368 0.852425 +vt 0.222368 0.900206 +vt 0.882516 0.302232 +vt 0.863432 0.136616 +vt 0.882516 0.124694 +vt 0.559691 0.071009 +vt 0.401117 0.092169 +vt 0.401117 0.071009 +vt 0.413762 0.826475 +vt 0.549042 0.845250 +vt 0.392602 0.845250 +vt 0.901278 0.302232 +vt 0.549042 0.826475 +vt 0.549042 0.807378 +vt 0.736376 0.370225 +vt 0.063837 0.753498 +vt 0.248180 0.734401 +vt 0.260109 0.753498 +vt 0.124594 0.920643 +vt 0.106040 0.951381 +vt 0.124594 0.970155 +vt 0.066099 0.833322 +vt 0.061559 0.787093 +vt 0.108586 0.802584 +vt 0.082180 0.843621 +vt 0.045062 0.774659 +vt 0.560421 0.813054 +vt 0.612014 0.797130 +vt 0.621310 0.813054 +vt 0.917358 0.005689 +vt 0.927871 0.039278 +vt 0.917358 0.039278 +vt 0.353132 0.071009 +vt 0.124824 0.071009 +vt 0.597317 0.827753 +vt 0.587837 0.827753 +vt 0.585860 0.943106 +vt 0.587029 0.925646 +vt 0.586842 0.941897 +vt 0.899112 0.920791 +vt 0.900475 0.938441 +vt 0.899407 0.939584 +vt 0.585893 0.924471 +vt 0.903094 0.942230 +vt 0.590140 0.944568 +vt 0.900106 0.921973 +vt 0.908509 0.851365 +vt 0.909872 0.869015 +vt 0.908804 0.870158 +vt 0.873687 0.920791 +vt 0.875051 0.938442 +vt 0.873983 0.939584 +vt 0.912492 0.872804 +vt 0.878055 0.920905 +vt 0.874681 0.921973 +vt 0.909503 0.852547 +vt 0.155376 0.786038 +vt 0.542394 0.871085 +vt 0.692387 0.083838 +vt 0.725975 0.073325 +vt 0.725975 0.083838 +vt 0.255956 0.852425 +vt 0.255956 0.900206 +vt 0.045062 0.688179 +vt 0.817642 0.952534 +vt 0.781852 0.716326 +vt 0.817642 0.716326 +vt 0.877950 0.919265 +vt 0.561847 0.910100 +vt 0.560421 0.906726 +vt 0.564233 0.906726 +vt 0.053706 0.941940 +vt 0.056692 0.940368 +vt 0.132915 0.889099 +vt 0.394988 0.760168 +vt 0.549042 0.760168 +vt 0.816200 0.302233 +vt 0.819626 0.103548 +vt 0.621310 0.906726 +vt 0.614400 0.910100 +vt 0.612014 0.906726 +vt 0.757780 0.845521 +vt 0.747266 0.845521 +vt 0.764693 0.859517 +vt 0.925485 0.054031 +vt 0.991925 0.343130 +vt 0.994311 0.339756 +vt 0.784238 0.712952 +vt 0.561847 0.760168 +vt 0.560421 0.763542 +vt 0.560421 0.760168 +vt 0.106040 0.970155 +vt 0.124594 0.973530 +vt 0.106040 0.973530 +vt 0.045062 0.826392 +vt 0.058354 0.786038 +vt 0.549042 0.848624 +vt 0.904705 0.105933 +vt 0.904705 0.302233 +vt 0.621310 0.763542 +vt 0.614400 0.760168 +vt 0.621310 0.760168 +vt 0.689012 0.075710 +vt 0.692387 0.073325 +vt 0.259330 0.850040 +vt 0.259330 0.902592 +vt 0.925485 0.042652 +vt 0.914972 0.042652 +vt 0.671057 0.351450 +vt 0.124824 0.026850 +vt 0.353132 0.005690 +vt 0.353132 0.026850 +vt 0.769031 0.283283 +vt 0.804820 0.283283 +vt 0.353132 0.092169 +vt 0.103663 0.092169 +vt 0.401117 0.056310 +vt 0.547761 0.051912 +vt 0.381864 0.056310 +vt 0.372385 0.056310 +vt 0.769031 0.103548 +vt 0.804820 0.103548 +vt 0.372385 0.041548 +vt 0.381864 0.041548 +vt 0.458081 0.526437 +vt 0.607011 0.526438 +vt 0.462895 0.670321 +vt 0.831325 0.715192 +vt 0.840009 0.715191 +vt 0.840030 0.844974 +vt 0.295376 0.106106 +vt 0.439436 0.106106 +vt 0.439436 0.114406 +vt 0.557651 0.368753 +vt 0.560208 0.513936 +vt 0.557674 0.512813 +vt 0.007994 0.658645 +vt 0.016699 0.788428 +vt 0.008015 0.788429 +vt 0.106169 0.527870 +vt 0.250053 0.527870 +vt 0.250053 0.532684 +vt 0.717217 0.909684 +vt 0.580852 0.005690 +vt 0.392602 0.763542 +vt 0.804820 0.580736 +vt 0.904705 0.510044 +vt 0.904705 0.552531 +vt 0.894191 0.553957 +vt 0.904705 0.553958 +vt 0.873688 0.313612 +vt 0.904705 0.313612 +vt 0.873687 0.553957 +vt 0.873687 0.552531 +vt 0.884201 0.553957 +vt 0.873687 0.510044 +vt 0.873687 0.613420 +vt 0.873687 0.606510 +vt 0.884201 0.606510 +vt 0.904705 0.606510 +vt 0.904705 0.613420 +vt 0.873687 0.786029 +vt 0.904705 0.786029 +vt 0.927871 0.090994 +vt 0.568584 0.842515 +vt 0.587837 0.838116 +vt 0.597317 0.842515 +vt 0.616570 0.838116 +vt 0.616570 0.842515 +vt 0.598757 0.925348 +vt 0.912182 0.922144 +vt 0.921579 0.852718 +vt 0.886758 0.922144 +vt 0.381864 0.051912 +vt 0.183466 0.935830 +vt 0.392602 0.899175 +vt 0.760166 0.842147 +vt 0.560421 0.832151 +vt 0.116057 0.903560 +vt 0.211854 0.852425 +vt 0.580852 0.092169 +vt 0.901278 0.103548 +vt 0.048267 0.827448 +vt 0.281270 0.774659 +vt 0.564233 0.797130 +vt 0.564233 0.763542 +vt 0.612014 0.763542 +vt 0.927871 0.005689 +vt 0.353132 0.056310 +vt 0.568584 0.827753 +vt 0.616570 0.827753 +vt 0.281270 0.688179 +vt 0.781852 0.952534 +vt 0.560421 0.910100 +vt 0.045062 0.925523 +vt 0.090428 0.889099 +vt 0.816199 0.105971 +vt 0.621310 0.910100 +vt 0.764693 0.912070 +vt 0.914972 0.054031 +vt 0.960907 0.343130 +vt 0.815256 0.712952 +vt 0.394988 0.848624 +vt 0.689012 0.086224 +vt 0.671057 0.587658 +vt 0.401117 0.041548 +vt 0.103663 0.005689 +vt 0.607011 0.701538 +vt 0.481738 0.701538 +vt 0.458081 0.670321 +vt 0.455526 0.672827 +vt 0.455550 0.525315 +vt 0.831346 0.844976 +vt 0.829021 0.847215 +vt 0.829021 0.714139 +vt 0.842335 0.712952 +vt 0.842335 0.846028 +vt 0.292867 0.103548 +vt 0.440560 0.103572 +vt 0.470692 0.326126 +vt 0.295376 0.326126 +vt 0.470692 0.157609 +vt 0.337654 0.512849 +vt 0.506142 0.337506 +vt 0.337625 0.337533 +vt 0.549350 0.368754 +vt 0.560208 0.366244 +vt 0.016678 0.658644 +vt 0.019004 0.656405 +vt 0.019004 0.789481 +vt 0.005690 0.790668 +vt 0.005689 0.657592 +vt 0.281270 0.551527 +vt 0.281270 0.676800 +vt 0.106169 0.676800 +vt 0.103663 0.525315 +vt 0.251175 0.525339 +vt 0.264782 0.924581 +vt 0.211854 0.921044 +vt 0.264782 0.921044 +vt 0.264782 0.928117 +vt 0.211854 0.924580 +vt 0.211854 0.931653 +vt 0.211854 0.928117 +vt 0.264782 0.935190 +vt 0.264782 0.931653 +vt 0.264782 0.917508 +vt 0.211854 0.913971 +vt 0.264782 0.913971 +vt 0.211854 0.917508 +vt 0.643612 0.591953 +vt 0.640583 0.529718 +vt 0.643612 0.529718 +vt 0.627972 0.591953 +vt 0.631001 0.601535 +vt 0.627972 0.601535 +vt 0.631001 0.529718 +vt 0.631001 0.591953 +vt 0.627972 0.520135 +vt 0.627972 0.529718 +vt 0.618390 0.529718 +vt 0.618390 0.591953 +vt 0.640583 0.591953 +vt 0.030911 0.873865 +vt 0.027882 0.811629 +vt 0.030911 0.811629 +vt 0.015272 0.873865 +vt 0.018300 0.883447 +vt 0.015272 0.883447 +vt 0.018300 0.811629 +vt 0.018300 0.873865 +vt 0.015272 0.802047 +vt 0.015272 0.811629 +vt 0.005689 0.811629 +vt 0.005689 0.873865 +vt 0.027883 0.873865 +vt 0.858298 0.868664 +vt 0.829021 0.863629 +vt 0.858298 0.863629 +vt 0.829021 0.873700 +vt 0.829021 0.868664 +vt 0.858298 0.878735 +vt 0.858298 0.873700 +vt 0.858298 0.883770 +vt 0.829021 0.878735 +vt 0.858298 0.888806 +vt 0.829021 0.883770 +vt 0.829021 0.858594 +vt 0.858298 0.858594 +vt 0.211854 0.935190 +vt 0.631001 0.520135 +vt 0.018300 0.802047 +vt 0.829021 0.888806 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.6247 0.0000 0.7809 +vn 1.0000 0.0000 0.0000 +vn 0.6247 0.7809 0.0000 +vn 0.6247 -0.7809 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3821 -0.7912 0.4776 +vn 0.5439 0.4919 0.6799 +vn 0.6247 0.0000 -0.7809 +vn 0.0000 0.5862 0.8102 +vn 0.0000 -0.7071 -0.7071 +vn -0.5602 0.0000 0.8283 +vn -0.5602 0.0000 -0.8283 +vn 0.4634 0.6706 0.5793 +vn 0.0000 0.7071 0.7071 +vn 0.4634 0.6706 -0.5793 +vn 0.0000 0.7071 -0.7071 +vn 0.4634 -0.6706 0.5792 +vn 0.4634 -0.6706 -0.5792 +vn 0.4634 -0.6706 -0.5793 +vn 0.4634 -0.6706 0.5793 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.8561 0.5168 +vn -0.6247 0.0000 0.7809 +vn -0.6247 0.7809 0.0000 +vn -0.6247 -0.7809 0.0000 +vn -0.3821 -0.7912 0.4776 +vn -0.5439 0.4919 0.6799 +vn -0.6247 0.0000 -0.7809 +vn 0.5602 0.0000 0.8283 +vn 0.5602 0.0000 -0.8283 +vn -0.4637 0.6689 0.5810 +vn -0.4634 0.6706 -0.5793 +vn -0.4634 -0.6706 0.5792 +vn -0.4637 -0.6689 -0.5810 +vn -0.4634 -0.6706 0.5793 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.9811 -0.1935 0.0000 +vn 0.4637 0.6689 0.5810 +vn 0.4637 0.6689 -0.5810 +vn 0.4637 -0.6689 0.5810 +vn 0.4637 -0.6689 -0.5810 +vn -0.5603 0.0000 0.8283 +vn -0.4634 0.6706 0.5793 +vn -0.4637 0.6689 -0.5810 +vn -0.4637 -0.6689 0.5810 +vn -0.4634 -0.6706 -0.5792 +vn 0.5603 0.0000 0.8283 +vn -0.4634 -0.6706 -0.5793 +vn 0.9811 0.1935 0.0000 +vn 0.9811 -0.1935 0.0000 +vn -0.9811 0.1935 0.0000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn 0.5773 0.5773 0.5773 +vn 0.5773 -0.5773 -0.5773 +vn 0.5773 0.5773 -0.5773 +vn -0.5773 0.5773 0.5773 +vn 0.5773 -0.5773 0.5773 +vn -0.5773 -0.5773 -0.5773 +vn -0.5773 -0.5773 0.5773 +vn -0.5773 0.5773 -0.5773 +s off +f 2/1/1 61/2/1 1/3/1 +f 7/4/2 148/5/2 69/6/2 +f 52/7/3 113/8/3 114/9/3 +f 12/10/4 16/11/4 6/12/4 +f 170/13/5 3/14/5 168/15/5 +f 5/16/5 130/17/5 15/18/5 +f 132/19/5 6/12/5 16/11/5 +f 15/18/4 11/20/4 5/16/4 +f 11/21/6 3/22/6 5/23/6 +f 9/24/7 6/25/7 4/26/7 +f 169/27/8 69/28/8 171/29/8 +f 71/30/1 49/31/1 111/32/1 +f 9/24/9 74/33/9 12/34/9 +f 19/35/10 18/36/10 15/37/10 +f 15/37/5 134/38/5 19/35/5 +f 10/39/1 91/40/1 29/41/1 +f 16/42/5 136/43/5 132/44/5 +f 20/45/11 17/46/11 14/47/11 +f 149/48/1 143/49/1 129/50/1 +f 61/51/5 62/52/5 20/53/5 +f 138/54/9 2/55/9 142/56/9 +f 12/10/8 79/57/8 17/58/8 +f 41/59/12 49/31/12 9/60/12 +f 19/61/4 20/53/4 37/62/4 +f 10/63/2 73/64/2 72/65/2 +f 17/46/13 76/66/13 14/47/13 +f 33/67/14 96/68/14 95/69/14 +f 28/70/15 21/71/15 27/72/15 +f 24/73/16 25/74/16 23/75/16 +f 21/71/17 32/76/17 31/77/17 +f 31/77/18 94/78/18 93/79/18 +f 30/80/19 23/75/19 29/81/19 +f 45/82/20 108/83/20 46/84/20 +f 36/85/21 27/72/21 35/86/21 +f 25/74/22 34/87/22 33/67/22 +f 40/88/16 41/89/16 39/90/16 +f 44/91/15 37/92/15 43/93/15 +f 33/94/1 107/95/1 45/96/1 +f 46/84/19 39/90/19 45/82/19 +f 37/92/17 48/97/17 47/98/17 +f 41/89/23 50/99/23 49/100/23 +f 49/100/14 112/101/14 111/102/14 +f 52/7/24 43/93/24 51/103/24 +f 53/104/5 56/105/5 55/106/5 +f 57/107/5 60/108/5 59/109/5 +f 55/110/9 115/111/9 53/112/9 +f 65/113/25 146/114/25 70/115/25 +f 61/116/2 144/117/2 1/118/2 +f 142/119/5 1/3/5 144/120/5 +f 59/121/9 119/122/9 57/123/9 +f 60/108/2 120/124/2 122/125/2 +f 14/126/8 113/127/8 51/128/8 +f 35/129/8 109/130/8 97/131/8 +f 56/105/2 116/132/2 118/133/2 +f 35/86/3 98/134/3 36/85/3 +f 13/135/8 93/136/8 75/137/8 +f 13/138/26 80/139/26 18/36/26 +f 29/81/20 92/140/20 30/80/20 +f 18/141/8 73/142/8 11/20/8 +f 123/143/1 64/144/1 63/145/1 +f 78/146/27 74/147/27 68/148/27 +f 65/149/25 172/150/25 166/151/25 +f 67/152/25 150/153/25 146/154/25 +f 68/148/25 152/155/25 78/146/25 +f 77/156/27 73/142/27 80/157/27 +f 65/113/28 73/64/28 67/158/28 +f 68/159/29 71/160/29 66/161/29 +f 80/139/30 81/162/30 77/163/30 +f 154/164/25 77/163/25 81/162/25 +f 78/165/25 156/166/25 82/167/25 +f 82/167/31 79/168/31 78/165/31 +f 66/161/25 148/169/25 68/159/25 +f 82/170/25 123/171/25 81/172/25 +f 64/173/9 158/174/9 162/175/9 +f 165/176/32 66/177/32 71/30/32 +f 81/172/27 89/178/27 99/179/27 +f 89/180/33 84/181/33 90/182/33 +f 87/183/34 86/184/34 85/185/34 +f 83/186/35 94/78/35 84/181/35 +f 85/185/36 92/140/36 91/187/36 +f 89/180/37 98/134/37 97/188/37 +f 87/183/38 96/68/38 88/189/38 +f 103/190/34 102/191/34 101/192/34 +f 99/193/33 106/194/33 105/195/33 +f 101/192/36 108/83/36 107/196/36 +f 99/193/35 110/197/35 100/198/35 +f 103/190/38 112/101/38 104/199/38 +f 105/195/39 114/9/39 113/8/39 +f 118/133/25 115/111/25 117/200/25 +f 122/125/25 119/122/25 121/201/25 +f 164/202/2 123/203/2 63/204/2 +f 63/145/25 162/205/25 164/206/25 +f 128/207/5 4/26/5 6/25/5 +f 8/208/9 146/209/9 126/210/9 +f 47/98/18 110/197/18 109/211/18 +f 137/212/40 136/213/40 138/214/40 +f 129/215/40 134/38/40 130/216/40 +f 135/217/40 132/44/40 136/43/40 +f 130/17/40 125/218/40 129/219/40 +f 131/220/40 128/221/40 132/19/40 +f 134/222/40 139/223/40 140/224/40 +f 144/117/20 139/225/20 143/226/20 +f 143/227/40 142/119/40 144/120/40 +f 142/56/14 137/228/14 138/54/14 +f 127/229/2 148/5/2 128/230/2 +f 145/231/9 126/210/9 146/209/9 +f 157/232/41 156/233/41 155/234/41 +f 150/235/41 153/236/41 149/237/41 +f 156/166/41 151/238/41 155/239/41 +f 149/240/41 146/154/41 150/153/41 +f 152/155/41 147/241/41 151/242/41 +f 154/243/41 159/244/41 153/245/41 +f 164/202/20 159/246/20 160/247/20 +f 164/206/41 161/248/41 163/249/41 +f 162/175/14 157/250/14 161/251/14 +f 3/22/5 126/252/5 5/23/5 +f 168/15/12 3/14/12 10/39/12 +f 4/253/5 169/254/5 167/255/5 +f 169/27/8 172/256/8 170/257/8 +f 66/177/25 171/258/25 69/259/25 +f 85/260/32 91/40/32 72/261/32 +f 87/262/32 165/176/32 101/263/32 +f 166/151/25 171/258/25 165/176/25 +f 170/257/8 70/264/8 8/265/8 +f 169/254/5 168/15/5 167/255/5 +f 39/266/12 167/255/12 25/267/12 +f 221/268/5 214/269/5 217/270/5 +f 229/271/5 225/272/5 227/273/5 +f 233/274/5 235/275/5 218/276/5 +f 259/277/42 258/278/42 257/279/42 +f 255/280/25 249/281/25 253/282/25 +f 245/283/25 247/284/25 241/285/25 +f 2/1/1 62/286/1 61/2/1 +f 7/4/2 128/230/2 148/5/2 +f 52/7/3 51/103/3 113/8/3 +f 12/10/4 17/58/4 16/11/4 +f 170/13/5 8/287/5 3/14/5 +f 5/16/5 126/288/5 130/17/5 +f 132/19/5 128/221/5 6/12/5 +f 15/18/4 18/141/4 11/20/4 +f 11/21/6 10/63/6 3/22/6 +f 9/24/7 12/34/7 6/25/7 +f 169/27/8 7/289/8 69/28/8 +f 71/30/1 9/60/1 49/31/1 +f 9/24/9 71/160/9 74/33/9 +f 19/35/10 13/138/10 18/36/10 +f 15/37/5 130/216/5 134/38/5 +f 10/39/1 72/261/1 91/40/1 +f 16/42/5 20/45/5 136/43/5 +f 20/45/11 16/42/11 17/46/11 +f 131/290/1 135/291/1 141/292/1 +f 135/291/1 137/293/1 141/292/1 +f 147/294/1 127/295/1 131/290/1 +f 157/296/1 155/297/1 161/298/1 +f 155/297/1 151/299/1 161/298/1 +f 151/299/1 147/294/1 131/290/1 +f 151/299/1 131/290/1 141/292/1 +f 153/300/1 159/301/1 163/302/1 +f 161/298/1 151/299/1 141/292/1 +f 149/48/1 153/300/1 163/302/1 +f 163/302/1 161/298/1 141/292/1 +f 143/49/1 139/303/1 133/304/1 +f 163/302/1 141/292/1 143/49/1 +f 145/305/1 149/48/1 129/50/1 +f 149/48/1 163/302/1 143/49/1 +f 129/50/1 125/306/1 145/305/1 +f 143/49/1 133/304/1 129/50/1 +f 19/61/5 134/222/5 61/51/5 +f 134/222/5 140/224/5 61/51/5 +f 138/214/5 136/213/5 62/52/5 +f 136/213/5 20/53/5 62/52/5 +f 19/61/5 61/51/5 20/53/5 +f 138/54/9 62/307/9 2/55/9 +f 12/10/8 74/147/8 79/57/8 +f 4/253/12 167/255/12 9/60/12 +f 167/255/12 41/59/12 9/60/12 +f 14/126/4 51/128/4 43/308/4 +f 37/62/4 47/309/4 35/129/4 +f 20/53/4 14/126/4 43/308/4 +f 37/62/4 35/129/4 27/310/4 +f 20/53/4 43/308/4 37/62/4 +f 31/311/4 13/135/4 21/312/4 +f 13/135/4 19/61/4 21/312/4 +f 37/62/4 27/310/4 19/61/4 +f 27/310/4 21/312/4 19/61/4 +f 10/63/2 11/21/2 73/64/2 +f 17/46/13 79/168/13 76/66/13 +f 33/67/14 34/87/14 96/68/14 +f 28/70/15 22/313/15 21/71/15 +f 24/73/16 26/314/16 25/74/16 +f 21/71/43 22/313/43 32/76/43 +f 31/77/18 32/76/18 94/78/18 +f 30/80/44 24/73/44 23/75/44 +f 45/82/20 107/196/20 108/83/20 +f 36/85/45 28/70/45 27/72/45 +f 25/74/46 26/314/46 34/87/46 +f 40/88/16 42/315/16 41/89/16 +f 44/91/47 38/316/47 37/92/47 +f 33/94/1 95/317/1 107/95/1 +f 46/84/44 40/88/44 39/90/44 +f 37/92/43 38/316/43 48/97/43 +f 41/89/46 42/315/46 50/99/46 +f 49/100/14 50/99/14 112/101/14 +f 52/7/45 44/91/45 43/93/45 +f 53/104/5 54/318/5 56/105/5 +f 57/107/5 58/319/5 60/108/5 +f 55/110/9 117/200/9 115/111/9 +f 65/113/25 67/158/25 146/114/25 +f 61/116/2 140/320/2 144/117/2 +f 142/119/5 2/1/5 1/3/5 +f 59/121/9 121/201/9 119/122/9 +f 60/108/2 58/319/2 120/124/2 +f 14/126/8 76/321/8 113/127/8 +f 35/129/8 47/309/8 109/130/8 +f 56/105/2 54/318/2 116/132/2 +f 35/86/3 97/188/3 98/134/3 +f 13/135/8 31/311/8 93/136/8 +f 13/138/26 75/322/26 80/139/26 +f 29/81/20 91/187/20 92/140/20 +f 18/141/8 80/157/8 73/142/8 +f 123/143/1 124/323/1 64/144/1 +f 78/146/27 79/57/27 74/147/27 +f 65/149/25 70/324/25 172/150/25 +f 67/152/25 77/156/25 150/153/25 +f 68/148/25 148/325/25 152/155/25 +f 77/156/27 67/152/27 73/142/27 +f 65/113/28 72/65/28 73/64/28 +f 68/159/29 74/33/29 71/160/29 +f 80/139/30 75/322/30 81/162/30 +f 154/164/25 150/235/25 77/163/25 +f 78/165/25 152/326/25 156/166/25 +f 82/167/31 76/66/31 79/168/31 +f 66/161/25 69/327/25 148/169/25 +f 82/170/25 156/233/25 124/328/25 +f 156/233/25 158/329/25 124/328/25 +f 160/330/25 154/243/25 123/171/25 +f 154/243/25 81/172/25 123/171/25 +f 82/170/25 124/328/25 123/171/25 +f 64/173/9 124/331/9 158/174/9 +f 111/32/32 103/332/32 71/30/32 +f 103/332/32 165/176/32 71/30/32 +f 105/333/27 113/127/27 76/321/27 +f 81/172/27 75/137/27 83/334/27 +f 75/137/27 93/136/27 83/334/27 +f 105/333/27 76/321/27 82/170/27 +f 97/131/27 109/130/27 99/179/27 +f 99/179/27 105/333/27 82/170/27 +f 82/170/27 81/172/27 99/179/27 +f 81/172/27 83/334/27 89/178/27 +f 89/178/27 97/131/27 99/179/27 +f 89/180/33 83/186/33 84/181/33 +f 87/183/34 88/189/34 86/184/34 +f 83/186/48 93/79/48 94/78/48 +f 85/185/49 86/184/49 92/140/49 +f 89/180/50 90/182/50 98/134/50 +f 87/183/51 95/69/51 96/68/51 +f 103/190/34 104/199/34 102/191/34 +f 99/193/52 100/198/52 106/194/52 +f 101/192/49 102/191/49 108/83/49 +f 99/193/48 109/211/48 110/197/48 +f 103/190/53 111/102/53 112/101/53 +f 105/195/50 106/194/50 114/9/50 +f 118/133/25 116/132/25 115/111/25 +f 122/125/25 120/124/25 119/122/25 +f 164/202/2 160/247/2 123/203/2 +f 63/145/25 64/144/25 162/205/25 +f 128/207/5 7/335/5 4/26/5 +f 8/208/9 70/336/9 146/209/9 +f 47/98/18 48/97/18 110/197/18 +f 137/212/40 135/337/40 136/213/40 +f 129/215/40 133/338/40 134/38/40 +f 135/217/40 131/339/40 132/44/40 +f 130/17/40 126/288/40 125/218/40 +f 131/220/40 127/340/40 128/221/40 +f 134/222/40 133/341/40 139/223/40 +f 144/117/20 140/320/20 139/225/20 +f 143/227/40 141/342/40 142/119/40 +f 142/56/14 141/343/14 137/228/14 +f 127/229/2 147/344/2 148/5/2 +f 145/231/9 125/345/9 126/210/9 +f 157/232/41 158/329/41 156/233/41 +f 150/235/41 154/164/41 153/236/41 +f 156/166/41 152/326/41 151/238/41 +f 149/240/41 145/346/41 146/154/41 +f 152/155/41 148/325/41 147/241/41 +f 154/243/41 160/330/41 159/244/41 +f 164/202/20 163/347/20 159/246/20 +f 164/206/41 162/205/41 161/248/41 +f 162/175/14 158/174/14 157/250/14 +f 3/22/5 8/348/5 126/252/5 +f 29/41/12 23/349/12 10/39/12 +f 23/349/12 168/15/12 10/39/12 +f 4/253/5 7/350/5 169/254/5 +f 169/27/8 171/29/8 172/256/8 +f 66/177/25 165/176/25 171/258/25 +f 65/149/32 166/151/32 72/261/32 +f 166/151/32 85/260/32 72/261/32 +f 101/263/32 107/95/32 95/317/32 +f 87/262/32 85/260/32 166/151/32 +f 101/263/32 95/317/32 87/262/32 +f 165/176/32 103/332/32 101/263/32 +f 87/262/32 166/151/32 165/176/32 +f 166/151/25 172/150/25 171/258/25 +f 170/257/8 172/256/8 70/264/8 +f 169/254/5 170/13/5 168/15/5 +f 33/94/12 45/96/12 39/266/12 +f 39/266/12 41/59/12 167/255/12 +f 167/255/12 168/15/12 25/267/12 +f 168/15/12 23/349/12 25/267/12 +f 25/267/12 33/94/12 39/266/12 +f 215/351/5 220/352/5 217/270/5 +f 223/353/54 224/354/54 222/355/54 +f 214/269/5 215/351/5 217/270/5 +f 217/270/5 223/353/5 221/268/5 +f 223/353/54 222/355/54 221/268/54 +f 231/356/54 232/357/54 229/271/54 +f 232/357/54 230/358/54 229/271/54 +f 226/359/55 228/360/55 227/273/55 +f 227/273/5 231/356/5 229/271/5 +f 225/272/55 226/359/55 227/273/55 +f 233/274/55 234/361/55 236/362/55 +f 233/274/55 236/362/55 235/275/55 +f 216/363/5 213/364/5 219/365/5 +f 213/364/5 233/274/5 219/365/5 +f 219/365/5 233/274/5 218/276/5 +f 257/279/25 237/366/25 243/367/25 +f 237/366/25 240/368/25 243/367/25 +f 257/279/25 243/367/25 242/369/25 +f 259/277/42 260/370/42 258/278/42 +f 242/369/25 259/277/25 257/279/25 +f 251/371/42 252/372/42 249/281/42 +f 252/372/42 250/373/42 249/281/42 +f 254/374/56 256/375/56 255/280/56 +f 255/280/25 251/371/25 249/281/25 +f 253/282/56 254/374/56 255/280/56 +f 241/285/25 244/376/25 239/377/25 +f 239/377/25 238/378/25 241/285/25 +f 238/378/25 245/283/25 241/285/25 +f 245/283/56 246/379/56 248/380/56 +f 245/283/56 248/380/56 247/284/56 +s 1 +f 175/381/57 174/382/8 173/383/8 +f 177/384/58 176/385/57 175/381/57 +f 177/384/58 180/386/1 178/387/58 +f 181/388/59 180/386/1 179/389/1 +f 183/390/60 182/391/59 181/392/59 +f 173/383/8 184/393/60 183/390/60 +f 187/394/61 186/395/62 185/396/63 +f 191/397/64 188/398/65 187/399/61 +f 191/397/64 190/400/66 192/401/67 +f 185/402/63 190/400/66 189/403/68 +f 185/404/63 191/397/64 187/405/61 +f 190/400/66 188/406/65 192/401/67 +f 195/407/61 194/408/62 193/409/63 +f 199/410/64 196/411/65 195/412/61 +f 199/410/64 198/413/66 200/414/67 +f 193/415/63 198/413/66 197/416/68 +f 193/417/63 199/410/64 195/418/61 +f 198/413/66 196/419/65 200/414/67 +f 203/420/57 202/421/8 201/422/8 +f 203/420/57 206/423/58 204/424/57 +f 207/425/1 206/423/58 205/426/58 +f 209/427/59 208/428/1 207/425/1 +f 211/429/60 210/430/59 209/427/59 +f 201/422/8 212/431/60 211/432/60 +f 175/381/57 176/385/57 174/382/8 +f 177/384/58 178/387/58 176/385/57 +f 177/384/58 179/389/1 180/386/1 +f 181/388/59 182/433/59 180/386/1 +f 183/390/60 184/393/60 182/391/59 +f 173/383/8 174/382/8 184/393/60 +f 187/394/61 188/406/65 186/395/62 +f 191/397/64 192/401/67 188/398/65 +f 191/397/64 189/403/68 190/400/66 +f 185/402/63 186/434/62 190/400/66 +f 185/404/63 189/403/68 191/397/64 +f 190/400/66 186/395/62 188/406/65 +f 195/407/61 196/419/65 194/408/62 +f 199/410/64 200/414/67 196/411/65 +f 199/410/64 197/416/68 198/413/66 +f 193/415/63 194/435/62 198/413/66 +f 193/417/63 197/416/68 199/410/64 +f 198/413/66 194/408/62 196/419/65 +f 203/420/57 204/424/57 202/421/8 +f 203/420/57 205/426/58 206/423/58 +f 207/425/1 208/428/1 206/423/58 +f 209/427/59 210/430/59 208/428/1 +f 211/429/60 212/436/60 210/430/59 +f 201/422/8 202/421/8 212/431/60 +o rightDoor +v 0.030935 0.772401 -0.150776 +v 0.030935 0.972661 -0.150776 +v 0.075000 0.088688 -0.911312 +v 0.075000 1.911312 -0.911312 +v 0.075000 0.088688 -0.088688 +v 0.075000 1.911312 -0.088688 +v 0.075000 2.000000 -1.000000 +v 0.075000 0.000000 -1.000000 +v 0.012500 1.861312 -0.861312 +v 0.012500 0.138688 -0.861312 +v 0.012500 0.138688 -0.138688 +v 0.012500 1.861312 -0.138688 +v 0.012500 0.733440 -0.267519 +v 0.012500 0.988637 -0.267519 +v 0.075000 0.655676 -0.088688 +v 0.075000 1.166712 -0.088688 +v 0.012500 1.166712 -0.138688 +v 0.012500 0.655676 -0.138688 +v 0.075000 0.733440 -0.217519 +v 0.075000 0.988637 -0.217519 +v 0.026895 0.753307 -0.256002 +v 0.023223 0.758010 -0.253518 +v 0.026895 0.753307 -0.872828 +v 0.023223 0.758010 -0.875312 +v 0.026895 0.834000 -0.872828 +v 0.023223 0.829297 -0.875312 +v 0.026895 0.834000 -0.256002 +v 0.023223 0.829297 -0.253518 +v 0.012500 0.753307 -0.861312 +v 0.011573 0.758010 -0.866015 +v 0.012500 0.753307 -0.267519 +v 0.011573 0.758010 -0.262816 +v 0.012500 0.834000 -0.861312 +v 0.011573 0.829297 -0.866015 +v 0.012500 0.834000 -0.267519 +v 0.011573 0.829297 -0.262816 +v 0.026895 0.873731 -0.256002 +v 0.023223 0.878434 -0.253518 +v 0.026895 0.873731 -0.872828 +v 0.023223 0.878434 -0.875312 +v 0.026895 0.954424 -0.872828 +v 0.023223 0.949722 -0.875312 +v 0.026895 0.954424 -0.256002 +v 0.023223 0.949722 -0.253518 +v 0.012500 0.873731 -0.861312 +v 0.011573 0.878434 -0.866015 +v 0.012500 0.873731 -0.267519 +v 0.011573 0.878434 -0.262816 +v 0.012500 0.954424 -0.861312 +v 0.011573 0.949722 -0.866015 +v 0.012500 0.954424 -0.267519 +v 0.011573 0.949722 -0.262816 +v 0.023223 0.758010 -0.252557 +v 0.023223 0.829297 -0.252557 +v 0.023223 0.758010 -0.880367 +v 0.023223 0.829297 -0.880367 +v 0.023223 0.878434 -0.252557 +v 0.023223 0.949722 -0.252557 +v 0.023223 0.878434 -0.880367 +v 0.023223 0.949722 -0.880367 +v 0.075000 0.772401 -0.150776 +v 0.075000 0.972661 -0.150776 +v -0.030935 0.772401 -0.150776 +v -0.030935 0.972661 -0.150776 +v -0.075000 0.088688 -0.911312 +v -0.075000 1.911312 -0.911312 +v -0.075000 0.088688 -0.088688 +v -0.075000 1.911312 -0.088688 +v -0.075000 2.000000 -1.000000 +v -0.075000 0.000000 -1.000000 +v -0.012500 1.861312 -0.861312 +v -0.012500 0.138688 -0.861312 +v -0.012500 0.138688 -0.138688 +v -0.012500 1.861312 -0.138688 +v -0.012500 0.733440 -0.267519 +v -0.012500 0.988637 -0.267519 +v -0.075000 0.655676 -0.088688 +v -0.075000 1.166712 -0.088688 +v -0.012500 1.166712 -0.138688 +v -0.012500 0.655676 -0.138688 +v -0.075000 0.733440 -0.217519 +v -0.075000 0.988637 -0.217519 +v -0.026895 0.753307 -0.256002 +v -0.023223 0.758010 -0.253518 +v -0.026895 0.753307 -0.872828 +v -0.023223 0.758010 -0.875312 +v -0.026895 0.834000 -0.872828 +v -0.023223 0.829297 -0.875312 +v -0.026895 0.834000 -0.256002 +v -0.023223 0.829297 -0.253518 +v -0.012500 0.753307 -0.861312 +v -0.011573 0.758010 -0.866015 +v -0.012500 0.753307 -0.267519 +v -0.011573 0.758010 -0.262816 +v -0.012500 0.834000 -0.861312 +v -0.011573 0.829297 -0.866015 +v -0.012500 0.834000 -0.267519 +v -0.011573 0.829297 -0.262816 +v -0.026895 0.873731 -0.256002 +v -0.023223 0.878434 -0.253518 +v -0.026895 0.873731 -0.872828 +v -0.023223 0.878434 -0.875312 +v -0.026895 0.954424 -0.872828 +v -0.023223 0.949722 -0.875312 +v -0.026895 0.954424 -0.256002 +v -0.023223 0.949722 -0.253518 +v -0.012500 0.873731 -0.861312 +v -0.011573 0.878434 -0.866015 +v -0.012500 0.873731 -0.267519 +v -0.011573 0.878434 -0.262816 +v -0.012500 0.954424 -0.861312 +v -0.011573 0.949722 -0.866015 +v -0.012500 0.954424 -0.267519 +v -0.011573 0.949722 -0.262816 +v -0.023223 0.758010 -0.252557 +v -0.023223 0.829297 -0.252557 +v -0.023223 0.758010 -0.880367 +v -0.023223 0.829297 -0.880367 +v -0.023223 0.878434 -0.252557 +v -0.023223 0.949722 -0.252557 +v -0.023223 0.878434 -0.880367 +v -0.023223 0.949722 -0.880367 +v -0.075000 0.772401 -0.150776 +v -0.075000 0.972661 -0.150776 +v 0.065000 0.000000 0.000000 +v 0.075000 0.000000 -0.010000 +v 0.065000 2.000000 0.000000 +v 0.075000 2.000000 -0.010000 +v 0.065000 0.655676 0.000000 +v 0.075000 0.655676 -0.010000 +v 0.065000 1.166712 0.000000 +v 0.075000 1.166712 -0.010000 +v 0.065000 0.733440 0.000000 +v 0.075000 0.733440 -0.010000 +v 0.065000 0.988637 0.000000 +v 0.075000 0.988637 -0.010000 +v 0.065000 0.982661 0.000000 +v 0.075000 0.972661 -0.010000 +v 0.065000 0.762401 0.000000 +v 0.075000 0.772401 -0.010000 +v 0.020935 0.982661 0.000000 +v 0.030935 0.972661 -0.010000 +v 0.020935 0.762401 0.000000 +v 0.030935 0.772401 -0.010000 +v -0.065000 0.000000 0.000000 +v -0.075000 0.000000 -0.010000 +v -0.065000 2.000000 0.000000 +v -0.075000 2.000000 -0.010000 +v -0.065000 0.655676 0.000000 +v -0.075000 0.655676 -0.010000 +v -0.065000 1.166712 0.000000 +v -0.075000 1.166712 -0.010000 +v -0.065000 0.733440 0.000000 +v -0.075000 0.733440 -0.010000 +v -0.065000 0.988637 0.000000 +v -0.075000 0.988637 -0.010000 +v -0.065000 0.982661 0.000000 +v -0.075000 0.972661 -0.010000 +v -0.065000 0.762401 0.000000 +v -0.075000 0.772401 -0.010000 +v -0.020935 0.982661 0.000000 +v -0.030935 0.972661 -0.010000 +v -0.020935 0.762401 0.000000 +v -0.030935 0.772401 -0.010000 +v -0.075000 0.954424 -0.911312 +v -0.075000 0.753307 -0.911312 +v -0.075000 0.954424 -1.000000 +v -0.075000 0.753307 -1.000000 +v 0.075000 0.954424 -1.000000 +v 0.075000 0.753307 -1.000000 +v 0.075000 0.954424 -0.911312 +v 0.075000 0.753307 -0.911312 +v 0.053113 0.765130 -0.133291 +v 0.053113 0.993204 -0.133291 +v 0.066310 0.765130 -0.125672 +v 0.066310 0.993204 -0.125672 +v 0.066310 0.765130 -0.110433 +v 0.066310 0.993204 -0.110433 +v 0.053113 0.765130 -0.102813 +v 0.053113 0.993204 -0.102813 +v 0.039915 0.765130 -0.110433 +v 0.039915 0.993204 -0.110433 +v 0.039915 0.765130 -0.125672 +v 0.039915 0.993204 -0.125672 +v 0.032467 0.805807 0.131365 +v 0.032467 0.818858 0.131365 +v 0.032467 0.805807 -0.136816 +v 0.032467 0.818858 -0.136816 +v 0.073758 0.805807 0.131365 +v 0.073758 0.818858 0.131365 +v 0.073758 0.805807 -0.136816 +v 0.073758 0.818858 -0.136816 +v 0.032467 0.927874 0.131365 +v 0.032467 0.940925 0.131365 +v 0.032467 0.927874 -0.136816 +v 0.032467 0.940925 -0.136816 +v 0.073758 0.927874 0.131365 +v 0.073758 0.940925 0.131365 +v 0.073758 0.927874 -0.136816 +v 0.073758 0.940925 -0.136816 +v 0.053113 0.806775 0.083099 +v 0.053113 0.932934 0.083099 +v 0.071903 0.806775 0.093947 +v 0.071903 0.932934 0.093947 +v 0.071903 0.806775 0.115645 +v 0.071903 0.932934 0.115645 +v 0.053113 0.806775 0.126494 +v 0.053113 0.932934 0.126494 +v 0.034322 0.806775 0.115645 +v 0.034322 0.932934 0.115645 +v 0.034322 0.806775 0.093947 +v 0.034322 0.932934 0.093947 +v 0.012500 1.861312 -0.861312 +v 0.012500 0.138688 -0.861312 +v 0.012500 0.138688 -0.138688 +v 0.012500 1.861312 -0.138688 +v 0.012500 0.733440 -0.267519 +v 0.012500 0.988637 -0.267519 +v 0.012500 1.166712 -0.138688 +v 0.012500 0.655676 -0.138688 +v 0.012500 0.753307 -0.861312 +v 0.011573 0.758010 -0.866015 +v 0.012500 0.753307 -0.267519 +v 0.011573 0.758010 -0.262816 +v 0.012500 0.834000 -0.861312 +v 0.011573 0.829297 -0.866015 +v 0.012500 0.834000 -0.267519 +v 0.011573 0.829297 -0.262816 +v 0.012500 0.873731 -0.861312 +v 0.011573 0.878434 -0.866015 +v 0.012500 0.873731 -0.267519 +v 0.011573 0.878434 -0.262816 +v 0.012500 0.954424 -0.861312 +v 0.011573 0.949722 -0.866015 +v 0.012500 0.954424 -0.267519 +v 0.011573 0.949722 -0.262816 +v -0.012500 1.861312 -0.861312 +v -0.012500 0.138688 -0.861312 +v -0.012500 0.138688 -0.138688 +v -0.012500 1.861312 -0.138688 +v -0.012500 0.733440 -0.267519 +v -0.012500 0.988637 -0.267519 +v -0.012500 1.166712 -0.138688 +v -0.012500 0.655676 -0.138688 +v -0.012500 0.753307 -0.861312 +v -0.011573 0.758010 -0.866015 +v -0.012500 0.753307 -0.267519 +v -0.011573 0.758010 -0.262816 +v -0.012500 0.834000 -0.861312 +v -0.011573 0.829297 -0.866015 +v -0.012500 0.834000 -0.267519 +v -0.011573 0.829297 -0.262816 +v -0.012500 0.873731 -0.861312 +v -0.011573 0.878434 -0.866015 +v -0.012500 0.873731 -0.267519 +v -0.011573 0.878434 -0.262816 +v -0.012500 0.954424 -0.861312 +v -0.011573 0.949722 -0.866015 +v -0.012500 0.954424 -0.267519 +v -0.011573 0.949722 -0.262816 +vt 0.482071 0.316646 +vt 0.492599 0.268801 +vt 0.492599 0.316646 +vt 0.916084 0.591352 +vt 0.951921 0.827876 +vt 0.916084 0.827876 +vt 0.934488 0.940835 +vt 0.928582 0.942288 +vt 0.928948 0.940645 +vt 0.817339 0.635132 +vt 0.651502 0.654242 +vt 0.639564 0.635132 +vt 0.026878 0.462326 +vt 0.005689 0.303540 +vt 0.026878 0.303540 +vt 0.314827 0.781356 +vt 0.296028 0.916817 +vt 0.296028 0.760168 +vt 0.817339 0.616345 +vt 0.314827 0.916817 +vt 0.333950 0.793302 +vt 0.333949 0.916817 +vt 0.736463 0.318882 +vt 0.717341 0.134293 +vt 0.736463 0.122348 +vt 0.594271 0.285212 +vt 0.613394 0.469801 +vt 0.594271 0.481746 +vt 0.542450 0.748788 +vt 0.292649 0.712952 +vt 0.542450 0.712952 +vt 0.046001 0.255490 +vt 0.051973 0.038824 +vt 0.051973 0.255490 +vt 0.619366 0.297157 +vt 0.613394 0.297157 +vt 0.666555 0.886644 +vt 0.652881 0.859517 +vt 0.683660 0.878096 +vt 0.702460 0.859517 +vt 0.051973 0.303540 +vt 0.046001 0.450380 +vt 0.046001 0.303540 +vt 0.680036 0.827073 +vt 0.633746 0.831619 +vt 0.649257 0.784529 +vt 0.690349 0.810970 +vt 0.926611 0.283306 +vt 0.916084 0.257808 +vt 0.936615 0.283306 +vt 0.066659 0.592068 +vt 0.014998 0.608014 +vt 0.005690 0.592068 +vt 0.749656 0.760168 +vt 0.760183 0.793801 +vt 0.749656 0.793801 +vt 0.817339 0.660210 +vt 0.817339 0.654242 +vt 0.026878 0.255490 +vt 0.026878 0.026878 +vt 0.046001 0.038824 +vt 0.029715 0.577350 +vt 0.039207 0.577350 +vt 0.711368 0.134293 +vt 0.717341 0.306937 +vt 0.711368 0.306937 +vt 0.664409 0.764925 +vt 0.659570 0.768426 +vt 0.570526 0.921544 +vt 0.564753 0.923072 +vt 0.564622 0.921479 +vt 0.717217 0.945045 +vt 0.718388 0.927567 +vt 0.718195 0.943853 +vt 0.560421 0.922992 +vt 0.561787 0.940663 +vt 0.560713 0.941820 +vt 0.717245 0.926378 +vt 0.721467 0.925304 +vt 0.727061 0.925087 +vt 0.721087 0.923635 +vt 0.727381 0.923449 +vt 0.564833 0.942859 +vt 0.564468 0.944502 +vt 0.010061 0.896685 +vt 0.015903 0.894826 +vt 0.015602 0.896491 +vt 0.721550 0.944905 +vt 0.721435 0.946497 +vt 0.561410 0.924159 +vt 0.019754 0.916314 +vt 0.018664 0.898655 +vt 0.019754 0.897489 +vt 0.924536 0.920778 +vt 0.925902 0.938449 +vt 0.924828 0.939606 +vt 0.051973 0.274769 +vt 0.046001 0.284261 +vt 0.046001 0.274769 +vt 0.928868 0.920858 +vt 0.925525 0.921945 +vt 0.015696 0.916430 +vt 0.018777 0.915200 +vt 0.010063 0.916440 +vt 0.015871 0.917960 +vt 0.009957 0.918083 +vt 0.903593 0.022721 +vt 0.753601 0.005689 +vt 0.903593 0.005689 +vt 0.592231 0.044914 +vt 0.742222 0.061946 +vt 0.592231 0.061946 +vt 0.753601 0.050849 +vt 0.903593 0.061946 +vt 0.753601 0.061946 +vt 0.692245 0.318882 +vt 0.671057 0.103548 +vt 0.692246 0.122348 +vt 0.674255 0.075714 +vt 0.640621 0.086241 +vt 0.640621 0.075714 +vt 0.526232 0.268801 +vt 0.526232 0.316646 +vt 0.742222 0.016786 +vt 0.592231 0.005689 +vt 0.742222 0.005689 +vt 0.742222 0.033818 +vt 0.592231 0.033818 +vt 0.058485 0.566973 +vt 0.066659 0.572946 +vt 0.058485 0.572946 +vt 0.039207 0.566973 +vt 0.029715 0.572946 +vt 0.029715 0.566973 +vt 0.753601 0.033817 +vt 0.903593 0.033818 +vt 0.727149 0.944802 +vt 0.010436 0.566973 +vt 0.005689 0.572946 +vt 0.005689 0.566973 +vt 0.663468 0.891757 +vt 0.635775 0.868065 +vt 0.570373 0.943049 +vt 0.339922 0.793302 +vt 0.222382 0.836271 +vt 0.211854 0.788427 +vt 0.222382 0.788427 +vt 0.651502 0.660211 +vt 0.817339 0.679320 +vt 0.639564 0.679320 +vt 0.092284 0.303540 +vt 0.071096 0.462326 +vt 0.071096 0.303540 +vt 0.359045 0.781356 +vt 0.377844 0.916817 +vt 0.359045 0.916817 +vt 0.817339 0.698107 +vt 0.619367 0.469801 +vt 0.638489 0.285211 +vt 0.638489 0.481746 +vt 0.633095 0.892296 +vt 0.663874 0.910875 +vt 0.656193 0.936166 +vt 0.713709 0.802712 +vt 0.732509 0.760168 +vt 0.732509 0.802712 +vt 0.682930 0.760168 +vt 0.695188 0.807469 +vt 0.659678 0.266412 +vt 0.014998 0.531905 +vt 0.062842 0.531905 +vt 0.066659 0.547851 +vt 0.553906 0.269791 +vt 0.543379 0.303424 +vt 0.543379 0.269791 +vt 0.056378 0.255490 +vt 0.005690 0.547851 +vt 0.039207 0.562569 +vt 0.730271 0.943568 +vt 0.731254 0.926081 +vt 0.731254 0.944703 +vt 0.573397 0.940891 +vt 0.574481 0.923217 +vt 0.574481 0.942042 +vt 0.570696 0.944663 +vt 0.727318 0.946384 +vt 0.570366 0.923131 +vt 0.007055 0.898880 +vt 0.005689 0.916555 +vt 0.005985 0.897737 +vt 0.937512 0.938677 +vt 0.938596 0.921004 +vt 0.938596 0.939828 +vt 0.009677 0.895087 +vt 0.934481 0.920918 +vt 0.934641 0.919331 +vt 0.934811 0.942449 +vt 0.903593 0.050849 +vt 0.592231 0.016786 +vt 0.592231 0.073325 +vt 0.625864 0.083852 +vt 0.592231 0.083852 +vt 0.256015 0.836271 +vt 0.256015 0.788427 +vt 0.573083 0.266412 +vt 0.852036 0.316991 +vt 0.816199 0.553514 +vt 0.816199 0.316991 +vt 0.928736 0.919265 +vt 0.066659 0.641647 +vt 0.065231 0.645026 +vt 0.062842 0.641647 +vt 0.705838 0.878096 +vt 0.702460 0.878096 +vt 0.674154 0.844929 +vt 0.632689 0.834828 +vt 0.292649 0.762557 +vt 0.292649 0.916817 +vt 0.618390 0.616345 +vt 0.817340 0.612914 +vt 0.005690 0.641647 +vt 0.012609 0.645026 +vt 0.005690 0.645026 +vt 0.677633 0.083852 +vt 0.677633 0.073325 +vt 0.529611 0.319035 +vt 0.757794 0.797179 +vt 0.747266 0.797179 +vt 0.949531 0.587974 +vt 0.951921 0.591352 +vt 0.849647 0.313612 +vt 0.065231 0.494893 +vt 0.066659 0.498272 +vt 0.062842 0.498272 +vt 0.657767 0.939155 +vt 0.672632 0.927510 +vt 0.674207 0.930499 +vt 0.735888 0.802712 +vt 0.735888 0.760168 +vt 0.381223 0.762557 +vt 0.381223 0.916817 +vt 0.620816 0.701538 +vt 0.817340 0.701537 +vt 0.012609 0.494893 +vt 0.005690 0.498272 +vt 0.005690 0.494893 +vt 0.629242 0.075714 +vt 0.629242 0.086241 +vt 0.259394 0.838661 +vt 0.259394 0.786038 +vt 0.551517 0.266412 +vt 0.540990 0.266412 +vt 0.757652 0.103548 +vt 0.757652 0.340071 +vt 0.041596 0.303540 +vt 0.005689 0.255490 +vt 0.005690 0.005690 +vt 0.590499 0.748788 +vt 0.590499 0.712952 +vt 0.071096 0.026878 +vt 0.092284 0.255490 +vt 0.071096 0.255490 +vt 0.051973 0.450380 +vt 0.056378 0.274769 +vt 0.056378 0.284261 +vt 0.770473 0.748789 +vt 0.770473 0.712952 +vt 0.041596 0.284261 +vt 0.041596 0.274769 +vt 0.839729 0.699298 +vt 0.831045 0.699299 +vt 0.831024 0.569515 +vt 0.323689 0.368753 +vt 0.326247 0.513936 +vt 0.323712 0.512813 +vt 0.484577 0.106103 +vt 0.628460 0.106103 +vt 0.628460 0.110917 +vt 0.300041 0.670357 +vt 0.295227 0.670357 +vt 0.295227 0.526483 +vt 0.089048 0.626916 +vt 0.080343 0.497134 +vt 0.089027 0.497132 +vt 0.106172 0.106106 +vt 0.250233 0.114407 +vt 0.281488 0.157609 +vt 0.482071 0.268801 +vt 0.005689 0.483514 +vt 0.292649 0.748789 +vt 0.947142 0.335929 +vt 0.947142 0.337357 +vt 0.936615 0.335929 +vt 0.947142 0.379901 +vt 0.947142 0.576595 +vt 0.916084 0.576595 +vt 0.916084 0.379901 +vt 0.916084 0.337357 +vt 0.926611 0.335929 +vt 0.916084 0.335929 +vt 0.947142 0.276387 +vt 0.947142 0.283306 +vt 0.947142 0.257808 +vt 0.916084 0.283306 +vt 0.916084 0.276387 +vt 0.947142 0.103548 +vt 0.916084 0.103548 +vt 0.062842 0.608014 +vt 0.014998 0.641647 +vt 0.760183 0.760168 +vt 0.041596 0.255490 +vt 0.058485 0.577350 +vt 0.010436 0.577350 +vt 0.010436 0.572946 +vt 0.039207 0.572946 +vt 0.051973 0.284261 +vt 0.753601 0.022721 +vt 0.742222 0.044914 +vt 0.671057 0.340071 +vt 0.674255 0.086241 +vt 0.066659 0.566973 +vt 0.632689 0.873178 +vt 0.339922 0.916817 +vt 0.211854 0.836271 +vt 0.092284 0.483514 +vt 0.377844 0.760168 +vt 0.618390 0.698107 +vt 0.659678 0.502935 +vt 0.014998 0.498272 +vt 0.553906 0.303424 +vt 0.058485 0.562569 +vt 0.029715 0.562569 +vt 0.010436 0.562569 +vt 0.730133 0.927265 +vt 0.573497 0.924351 +vt 0.006685 0.915371 +vt 0.937612 0.922137 +vt 0.625864 0.073325 +vt 0.573082 0.502935 +vt 0.852036 0.553514 +vt 0.066659 0.645026 +vt 0.705838 0.859517 +vt 0.673097 0.848138 +vt 0.620778 0.612914 +vt 0.529611 0.266412 +vt 0.918473 0.587974 +vt 0.818588 0.313612 +vt 0.066659 0.494893 +vt 0.092284 0.005689 +vt 0.056378 0.303540 +vt 0.839707 0.569514 +vt 0.842033 0.567275 +vt 0.842033 0.700351 +vt 0.828719 0.701538 +vt 0.828719 0.568462 +vt 0.103692 0.512849 +vt 0.272181 0.337506 +vt 0.103663 0.337533 +vt 0.315389 0.368754 +vt 0.326247 0.366244 +vt 0.659678 0.129760 +vt 0.659678 0.255033 +vt 0.484577 0.255033 +vt 0.482071 0.103548 +vt 0.629582 0.103572 +vt 0.444147 0.526484 +vt 0.444147 0.701573 +vt 0.318883 0.701573 +vt 0.292649 0.672839 +vt 0.292673 0.525315 +vt 0.080364 0.626918 +vt 0.078038 0.629157 +vt 0.078038 0.496080 +vt 0.091352 0.494893 +vt 0.091352 0.627970 +vt 0.281488 0.326127 +vt 0.106172 0.326127 +vt 0.103663 0.103548 +vt 0.251356 0.103572 +vt 0.250233 0.106106 +vt 0.030383 0.669552 +vt 0.079577 0.666265 +vt 0.079577 0.669552 +vt 0.030383 0.666265 +vt 0.079577 0.662978 +vt 0.030383 0.662978 +vt 0.079577 0.659692 +vt 0.030383 0.659692 +vt 0.079577 0.656405 +vt 0.030383 0.676126 +vt 0.079577 0.672839 +vt 0.079577 0.676126 +vt 0.030383 0.672839 +vt 0.882594 0.884444 +vt 0.940438 0.887259 +vt 0.882594 0.887259 +vt 0.949344 0.898980 +vt 0.940438 0.896165 +vt 0.949344 0.896165 +vt 0.940438 0.898980 +vt 0.882594 0.896165 +vt 0.882594 0.898980 +vt 0.873687 0.896165 +vt 0.940438 0.907886 +vt 0.897130 0.806314 +vt 0.894315 0.864159 +vt 0.894315 0.806314 +vt 0.882594 0.873065 +vt 0.885409 0.864159 +vt 0.885409 0.873065 +vt 0.882594 0.864159 +vt 0.885409 0.806314 +vt 0.882594 0.806314 +vt 0.885409 0.797408 +vt 0.873687 0.864159 +vt 0.833701 0.900185 +vt 0.838381 0.927396 +vt 0.833701 0.927396 +vt 0.838381 0.900185 +vt 0.843061 0.927396 +vt 0.843061 0.900185 +vt 0.847741 0.927396 +vt 0.847741 0.900185 +vt 0.852421 0.927396 +vt 0.852421 0.900185 +vt 0.857101 0.927396 +vt 0.829021 0.900185 +vt 0.829021 0.927396 +vt 0.030383 0.656405 +vt 0.940438 0.884444 +vt 0.873687 0.898980 +vt 0.882594 0.907886 +vt 0.897130 0.864159 +vt 0.882594 0.797408 +vt 0.873687 0.806314 +vt 0.857101 0.900185 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.6247 0.0000 -0.7809 +vn 1.0000 0.0000 0.0000 +vn 0.6247 0.7809 0.0000 +vn 0.6247 -0.7809 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3821 -0.7912 -0.4776 +vn 0.5439 0.4919 -0.6799 +vn 0.6247 0.0000 0.7809 +vn 0.0000 0.5862 -0.8102 +vn 0.0000 -0.7071 0.7071 +vn -0.5602 0.0000 -0.8283 +vn -0.5602 0.0000 0.8283 +vn 0.4637 0.6689 -0.5810 +vn 0.0000 0.7071 -0.7071 +vn 0.4634 0.6706 0.5793 +vn 0.0000 0.7071 0.7071 +vn 0.4634 -0.6706 -0.5792 +vn 0.4637 -0.6689 0.5810 +vn 0.4634 -0.6706 -0.5793 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.8561 -0.5168 +vn -0.6247 0.0000 -0.7809 +vn -0.6247 0.7809 0.0000 +vn -0.6247 -0.7809 0.0000 +vn -0.3821 -0.7912 -0.4776 +vn -0.5439 0.4919 -0.6799 +vn -0.6247 0.0000 0.7809 +vn 0.5602 0.0000 -0.8283 +vn 0.5602 0.0000 0.8283 +vn -0.4634 0.6706 -0.5793 +vn -0.4634 0.6706 0.5793 +vn -0.4634 -0.6706 -0.5792 +vn -0.4634 -0.6706 0.5792 +vn -0.4634 -0.6706 0.5793 +vn -0.4634 -0.6706 -0.5793 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.9811 -0.1935 0.0000 +vn 0.4634 0.6706 -0.5793 +vn 0.4637 0.6689 0.5810 +vn 0.4637 -0.6689 -0.5810 +vn 0.4634 -0.6706 0.5792 +vn -0.5603 0.0000 -0.8283 +vn 0.4634 -0.6706 0.5793 +vn -0.4637 0.6689 -0.5810 +vn -0.4637 0.6689 0.5810 +vn -0.4637 -0.6689 -0.5810 +vn -0.4637 -0.6689 0.5810 +vn 0.5603 0.0000 -0.8283 +vn 0.9811 0.1935 -0.0000 +vn -0.9811 0.1935 0.0000 +vn -0.9811 -0.1935 -0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn -0.5773 0.5773 0.5773 +vn -0.5773 -0.5773 -0.5773 +vn -0.5773 -0.5773 0.5773 +vn -0.5773 0.5773 -0.5773 +vn 0.5773 -0.5773 -0.5773 +vn 0.5773 0.5773 -0.5773 +vn 0.5773 -0.5773 0.5773 +vn 0.5773 0.5773 0.5773 +s off +f 321/437/69 262/438/69 261/439/69 +f 408/440/70 267/441/70 329/442/70 +f 374/443/71 311/444/71 312/445/71 +f 276/446/72 272/447/72 266/448/72 +f 263/449/73 430/450/73 432/451/73 +f 265/452/73 390/453/73 386/454/73 +f 266/448/73 392/455/73 276/446/73 +f 275/456/72 271/457/72 278/458/72 +f 263/459/74 271/460/74 265/461/74 +f 266/462/75 269/463/75 264/464/75 +f 427/465/76 267/466/76 429/467/76 +f 309/468/69 331/469/69 371/470/69 +f 334/471/77 269/463/77 272/472/77 +f 278/473/78 279/474/78 275/475/78 +f 394/476/73 275/475/73 279/474/73 +f 351/477/69 270/478/69 289/479/69 +f 276/480/73 396/481/73 280/482/73 +f 280/482/79 277/483/79 276/480/79 +f 423/484/69 409/485/69 403/486/69 +f 280/487/73 321/488/73 279/489/73 +f 262/490/77 398/491/77 402/492/77 +f 339/493/76 272/447/76 277/494/76 +f 431/495/80 264/496/80 269/497/80 +f 279/489/72 287/498/72 297/499/72 +f 333/500/70 270/501/70 332/502/70 +f 336/503/81 277/483/81 274/504/81 +f 355/505/82 294/506/82 293/507/82 +f 287/508/83 282/509/83 288/510/83 +f 285/511/84 284/512/84 283/513/84 +f 281/514/85 292/515/85 282/509/85 +f 354/516/86 291/517/86 353/518/86 +f 283/513/87 290/519/87 289/520/87 +f 368/521/88 305/522/88 306/523/88 +f 287/508/89 296/524/89 295/525/89 +f 285/511/90 294/506/90 286/526/90 +f 301/527/84 300/528/84 299/529/84 +f 297/530/83 304/531/83 303/532/83 +f 367/533/69 293/534/69 305/535/69 +f 299/529/87 306/523/87 305/522/87 +f 297/530/85 308/536/85 298/537/85 +f 301/527/90 310/538/90 302/539/90 +f 372/540/82 309/541/82 371/542/82 +f 303/532/91 312/445/91 311/444/91 +f 316/543/73 313/544/73 315/545/73 +f 320/546/73 317/547/73 319/548/73 +f 375/549/77 315/550/77 313/551/77 +f 325/552/92 406/553/92 327/554/92 +f 404/555/70 321/556/70 261/557/70 +f 261/439/73 402/558/73 404/559/73 +f 379/560/77 319/561/77 317/562/77 +f 380/563/70 320/546/70 382/564/70 +f 373/565/76 274/566/76 311/567/76 +f 369/568/76 295/569/76 357/570/76 +f 376/571/70 316/543/70 378/572/70 +f 358/573/71 295/525/71 296/524/71 +f 353/574/76 273/575/76 335/576/76 +f 340/577/93 273/578/93 278/473/93 +f 352/579/88 289/520/88 290/519/88 +f 333/580/76 278/458/76 271/457/76 +f 324/581/69 383/582/69 323/583/69 +f 334/584/94 338/585/94 328/586/94 +f 428/587/92 325/588/92 426/589/92 +f 327/590/92 410/591/92 337/592/92 +f 412/593/92 328/586/92 338/585/92 +f 337/592/94 333/580/94 327/590/94 +f 333/500/95 325/552/95 327/554/95 +f 331/594/96 328/595/96 326/596/96 +f 341/597/97 340/577/97 337/598/97 +f 337/598/92 414/599/92 341/597/92 +f 338/600/92 416/601/92 412/602/92 +f 342/603/98 339/604/98 336/503/98 +f 408/605/92 326/596/92 328/595/92 +f 383/606/92 384/607/92 342/608/92 +f 418/609/77 324/610/77 422/611/77 +f 363/612/99 371/470/99 331/469/99 +f 341/613/94 342/608/94 359/614/94 +f 350/615/100 343/616/100 349/617/100 +f 346/618/101 347/619/101 345/620/101 +f 343/616/102 354/516/102 353/518/102 +f 352/579/103 345/620/103 351/621/103 +f 358/573/104 349/617/104 357/622/104 +f 347/619/105 356/623/105 355/505/105 +f 362/624/101 363/625/101 361/626/101 +f 366/627/100 359/628/100 365/629/100 +f 368/521/103 361/626/103 367/630/103 +f 359/628/102 370/631/102 369/632/102 +f 363/625/106 372/540/106 371/542/106 +f 374/443/107 365/629/107 373/633/107 +f 375/549/92 378/572/92 377/634/92 +f 379/560/92 382/564/92 381/635/92 +f 383/636/70 424/637/70 323/638/70 +f 422/639/92 323/583/92 424/640/92 +f 264/464/73 388/641/73 266/462/73 +f 406/642/77 268/643/77 386/644/77 +f 370/631/86 307/645/86 369/632/86 +f 396/646/108 397/647/108 398/648/108 +f 394/476/108 389/649/108 390/650/108 +f 392/651/108 395/652/108 396/481/108 +f 385/653/108 390/453/108 389/654/108 +f 388/655/108 391/656/108 392/455/108 +f 394/657/108 399/658/108 393/659/108 +f 399/660/88 404/555/88 403/661/88 +f 402/558/108 403/662/108 404/559/108 +f 402/492/82 397/663/82 401/664/82 +f 408/440/70 387/665/70 388/666/70 +f 386/644/77 405/667/77 406/642/77 +f 417/668/109 416/669/109 418/670/109 +f 413/671/109 410/672/109 409/673/109 +f 411/674/109 416/601/109 415/675/109 +f 410/591/109 405/676/109 409/677/109 +f 407/678/109 412/593/109 411/679/109 +f 419/680/109 414/681/109 413/682/109 +f 424/637/88 419/683/88 423/684/88 +f 421/685/109 424/640/109 423/686/109 +f 417/687/82 422/611/82 421/688/82 +f 263/459/73 386/689/73 268/690/73 +f 283/691/80 289/479/80 270/478/80 +f 264/496/73 429/692/73 267/693/73 +f 428/694/76 429/467/76 430/695/76 +f 326/696/92 427/697/92 425/698/92 +f 426/589/99 325/588/99 332/699/99 +f 361/700/99 425/698/99 347/701/99 +f 427/697/92 426/589/92 425/698/92 +f 330/702/76 430/695/76 268/703/76 +f 432/451/73 429/692/73 431/495/73 +f 285/704/80 431/495/80 299/705/80 +f 485/706/73 489/707/73 491/708/73 +f 495/709/110 494/710/110 493/711/110 +f 481/712/73 483/713/73 477/714/73 +f 501/715/92 507/716/92 505/717/92 +f 511/718/92 513/719/92 509/720/92 +f 517/721/92 502/722/92 503/723/92 +f 321/437/69 322/724/69 262/438/69 +f 408/440/70 388/666/70 267/441/70 +f 374/443/71 373/633/71 311/444/71 +f 276/446/72 277/494/72 272/447/72 +f 263/449/73 268/725/73 430/450/73 +f 265/452/73 275/456/73 390/453/73 +f 266/448/73 388/655/73 392/455/73 +f 275/456/72 265/452/72 271/457/72 +f 263/459/74 270/501/74 271/460/74 +f 266/462/75 272/472/75 269/463/75 +f 427/465/76 329/726/76 267/466/76 +f 309/468/69 269/497/69 331/469/69 +f 334/471/77 331/594/77 269/463/77 +f 278/473/78 273/578/78 279/474/78 +f 394/476/73 390/650/73 275/475/73 +f 351/477/69 332/699/69 270/478/69 +f 276/480/73 392/651/73 396/481/73 +f 280/482/79 274/504/79 277/483/79 +f 397/727/69 395/728/69 401/729/69 +f 395/728/69 391/730/69 401/729/69 +f 391/730/69 387/731/69 407/732/69 +f 411/733/69 415/734/69 421/735/69 +f 415/734/69 417/736/69 421/735/69 +f 391/730/69 407/732/69 411/733/69 +f 393/737/69 399/738/69 403/486/69 +f 401/729/69 391/730/69 411/733/69 +f 389/739/69 393/737/69 403/486/69 +f 423/484/69 419/740/69 413/741/69 +f 401/729/69 411/733/69 421/735/69 +f 423/484/69 413/741/69 409/485/69 +f 401/729/69 421/735/69 423/484/69 +f 385/742/69 389/739/69 405/743/69 +f 389/739/69 403/486/69 409/485/69 +f 405/743/69 389/739/69 409/485/69 +f 403/486/69 401/729/69 423/484/69 +f 280/487/73 396/646/73 322/744/73 +f 396/646/73 398/648/73 322/744/73 +f 400/745/73 394/657/73 321/488/73 +f 394/657/73 279/489/73 321/488/73 +f 280/487/73 322/744/73 321/488/73 +f 262/490/77 322/746/77 398/491/77 +f 339/493/76 334/584/76 272/447/76 +f 309/468/80 301/747/80 269/497/80 +f 301/747/80 431/495/80 269/497/80 +f 303/748/72 311/567/72 274/566/72 +f 279/489/72 273/575/72 281/749/72 +f 273/575/72 291/750/72 281/749/72 +f 303/748/72 274/566/72 280/487/72 +f 295/569/72 307/751/72 297/499/72 +f 297/499/72 303/748/72 280/487/72 +f 280/487/72 279/489/72 297/499/72 +f 279/489/72 281/749/72 287/498/72 +f 287/498/72 295/569/72 297/499/72 +f 333/500/70 271/460/70 270/501/70 +f 336/503/81 339/604/81 277/483/81 +f 355/505/82 356/623/82 294/506/82 +f 287/508/83 281/514/83 282/509/83 +f 285/511/84 286/526/84 284/512/84 +f 281/514/111 291/517/111 292/515/111 +f 354/516/86 292/515/86 291/517/86 +f 283/513/112 284/512/112 290/519/112 +f 368/521/88 367/630/88 305/522/88 +f 287/508/113 288/510/113 296/524/113 +f 285/511/114 293/507/114 294/506/114 +f 301/527/84 302/539/84 300/528/84 +f 297/530/115 298/537/115 304/531/115 +f 367/533/69 355/752/69 293/534/69 +f 299/529/112 300/528/112 306/523/112 +f 297/530/111 307/645/111 308/536/111 +f 301/527/116 309/541/116 310/538/116 +f 372/540/82 310/538/82 309/541/82 +f 303/532/113 304/531/113 312/445/113 +f 316/543/73 314/753/73 313/544/73 +f 320/546/73 318/754/73 317/547/73 +f 375/549/77 377/634/77 315/550/77 +f 325/552/92 330/755/92 406/553/92 +f 404/555/70 400/756/70 321/556/70 +f 261/439/73 262/438/73 402/558/73 +f 379/560/77 381/635/77 319/561/77 +f 380/563/70 318/754/70 320/546/70 +f 373/565/76 336/757/76 274/566/76 +f 369/568/76 307/751/76 295/569/76 +f 376/571/70 314/753/70 316/543/70 +f 358/573/71 357/622/71 295/525/71 +f 353/574/76 291/750/76 273/575/76 +f 340/577/93 335/758/93 273/578/93 +f 352/579/88 351/621/88 289/520/88 +f 333/580/76 340/759/76 278/458/76 +f 324/581/69 384/760/69 383/582/69 +f 334/584/94 339/493/94 338/585/94 +f 428/587/92 330/761/92 325/588/92 +f 327/590/92 406/762/92 410/591/92 +f 412/593/92 408/763/92 328/586/92 +f 337/592/94 340/759/94 333/580/94 +f 333/500/95 332/502/95 325/552/95 +f 331/594/96 334/471/96 328/595/96 +f 341/597/97 335/758/97 340/577/97 +f 337/598/92 410/672/92 414/599/92 +f 338/600/92 342/603/92 416/601/92 +f 342/603/98 338/600/98 339/604/98 +f 408/605/92 329/764/92 326/596/92 +f 341/613/92 414/681/92 383/606/92 +f 414/681/92 420/765/92 383/606/92 +f 418/670/92 416/669/92 384/607/92 +f 416/669/92 342/608/92 384/607/92 +f 341/613/92 383/606/92 342/608/92 +f 418/609/77 384/766/77 324/610/77 +f 326/696/99 425/698/99 331/469/99 +f 425/698/99 363/612/99 331/469/99 +f 336/757/94 373/565/94 365/767/94 +f 359/614/94 369/568/94 357/570/94 +f 342/608/94 336/757/94 365/767/94 +f 359/614/94 357/570/94 349/768/94 +f 342/608/94 365/767/94 359/614/94 +f 353/574/94 335/576/94 343/769/94 +f 335/576/94 341/613/94 343/769/94 +f 359/614/94 349/768/94 341/613/94 +f 349/768/94 343/769/94 341/613/94 +f 350/615/100 344/770/100 343/616/100 +f 346/618/101 348/771/101 347/619/101 +f 343/616/117 344/770/117 354/516/117 +f 352/579/118 346/618/118 345/620/118 +f 358/573/119 350/615/119 349/617/119 +f 347/619/120 348/771/120 356/623/120 +f 362/624/101 364/772/101 363/625/101 +f 366/627/121 360/773/121 359/628/121 +f 368/521/118 362/624/118 361/626/118 +f 359/628/117 360/773/117 370/631/117 +f 363/625/120 364/772/120 372/540/120 +f 374/443/119 366/627/119 365/629/119 +f 375/549/92 376/571/92 378/572/92 +f 379/560/92 380/563/92 382/564/92 +f 383/636/70 420/774/70 424/637/70 +f 422/639/92 324/581/92 323/583/92 +f 264/464/73 267/775/73 388/641/73 +f 406/642/77 330/776/77 268/643/77 +f 370/631/86 308/536/86 307/645/86 +f 396/646/108 395/777/108 397/647/108 +f 394/476/108 393/778/108 389/649/108 +f 392/651/108 391/779/108 395/652/108 +f 385/653/108 386/454/108 390/453/108 +f 388/655/108 387/780/108 391/656/108 +f 394/657/108 400/745/108 399/658/108 +f 399/660/88 400/756/88 404/555/88 +f 402/558/108 401/781/108 403/662/108 +f 402/492/82 398/491/82 397/663/82 +f 408/440/70 407/782/70 387/665/70 +f 386/644/77 385/783/77 405/667/77 +f 417/668/109 415/784/109 416/669/109 +f 413/671/109 414/599/109 410/672/109 +f 411/674/109 412/602/109 416/601/109 +f 410/591/109 406/762/109 405/676/109 +f 407/678/109 408/763/109 412/593/109 +f 419/680/109 420/765/109 414/681/109 +f 424/637/88 420/774/88 419/683/88 +f 421/685/109 422/639/109 424/640/109 +f 417/687/82 418/609/82 422/611/82 +f 263/459/73 265/461/73 386/689/73 +f 263/449/80 432/451/80 270/478/80 +f 432/451/80 283/691/80 270/478/80 +f 264/496/73 431/495/73 429/692/73 +f 428/694/76 427/465/76 429/467/76 +f 326/696/92 329/785/92 427/697/92 +f 351/477/99 345/786/99 332/699/99 +f 345/786/99 426/589/99 332/699/99 +f 355/752/99 367/533/99 361/700/99 +f 361/700/99 363/612/99 425/698/99 +f 425/698/99 426/589/99 347/701/99 +f 426/589/99 345/786/99 347/701/99 +f 347/701/99 355/752/99 361/700/99 +f 427/697/92 428/587/92 426/589/92 +f 330/702/76 428/694/76 430/695/76 +f 432/451/73 430/450/73 429/692/73 +f 299/705/80 305/535/80 293/534/80 +f 285/704/80 283/691/80 432/451/80 +f 299/705/80 293/534/80 285/704/80 +f 431/495/80 301/747/80 299/705/80 +f 285/704/80 432/451/80 431/495/80 +f 487/787/110 488/788/110 485/706/110 +f 488/788/110 486/789/110 485/706/110 +f 490/790/122 492/791/122 491/708/122 +f 491/708/73 487/787/73 485/706/73 +f 489/707/122 490/790/122 491/708/122 +f 493/711/73 473/792/73 479/793/73 +f 473/792/73 476/794/73 479/793/73 +f 493/711/73 479/793/73 478/795/73 +f 495/709/110 496/796/110 494/710/110 +f 478/795/73 495/709/73 493/711/73 +f 480/797/73 475/798/73 477/714/73 +f 475/798/73 474/799/73 477/714/73 +f 481/712/122 482/800/122 484/801/122 +f 474/799/73 481/712/73 477/714/73 +f 481/712/122 484/801/122 483/713/122 +f 498/802/92 499/803/92 501/715/92 +f 499/803/92 504/804/92 501/715/92 +f 508/805/123 506/806/123 505/717/123 +f 505/717/92 498/802/92 501/715/92 +f 507/716/123 508/805/123 505/717/123 +f 515/807/123 516/808/123 513/719/123 +f 516/808/123 514/809/123 513/719/123 +f 510/810/124 512/811/124 511/718/124 +f 511/718/92 515/807/92 513/719/92 +f 509/720/124 510/810/124 511/718/124 +f 500/812/92 497/813/92 503/723/92 +f 497/813/92 517/721/92 503/723/92 +f 517/721/124 518/814/124 520/815/124 +f 517/721/124 520/815/124 519/816/124 +f 517/721/92 519/816/92 502/722/92 +s 1 +f 434/817/76 435/818/125 433/819/76 +f 436/820/125 437/821/126 435/818/125 +f 438/822/126 439/823/69 437/821/126 +f 440/824/69 441/825/127 439/823/69 +f 442/826/127 443/827/128 441/828/127 +f 444/829/128 433/819/76 443/827/128 +f 446/830/129 447/831/130 445/832/131 +f 448/833/132 451/834/133 447/835/130 +f 452/836/134 449/837/135 451/834/133 +f 450/838/136 445/839/131 449/837/135 +f 451/834/133 445/832/131 447/831/130 +f 448/840/132 450/838/136 452/836/134 +f 454/841/129 455/842/130 453/843/131 +f 456/844/132 459/845/133 455/846/130 +f 460/847/134 457/848/135 459/845/133 +f 458/849/136 453/850/131 457/848/135 +f 459/845/133 453/843/131 455/842/130 +f 456/851/132 458/849/136 460/847/134 +f 462/852/76 463/853/125 461/854/76 +f 464/855/125 465/856/126 463/853/125 +f 466/857/126 467/858/69 465/856/126 +f 468/859/69 469/860/127 467/858/69 +f 470/861/127 471/862/128 469/860/127 +f 472/863/128 461/854/76 471/864/128 +f 434/817/76 436/820/125 435/818/125 +f 436/820/125 438/822/126 437/821/126 +f 438/822/126 440/824/69 439/823/69 +f 440/824/69 442/865/127 441/825/127 +f 442/826/127 444/829/128 443/827/128 +f 444/829/128 434/817/76 433/819/76 +f 446/830/129 448/866/132 447/831/130 +f 448/833/132 452/836/134 451/834/133 +f 452/836/134 450/838/136 449/837/135 +f 450/838/136 446/867/129 445/839/131 +f 451/834/133 449/837/135 445/832/131 +f 448/840/132 446/868/129 450/838/136 +f 454/841/129 456/869/132 455/842/130 +f 456/844/132 460/847/134 459/845/133 +f 460/847/134 458/849/136 457/848/135 +f 458/849/136 454/870/129 453/850/131 +f 459/845/133 457/848/135 453/843/131 +f 456/851/132 454/871/129 458/849/136 +f 462/852/76 464/855/125 463/853/125 +f 464/855/125 466/857/126 465/856/126 +f 466/857/126 468/859/69 467/858/69 +f 468/859/69 470/861/127 469/860/127 +f 470/861/127 472/872/128 471/862/128 +f 472/863/128 462/852/76 461/854/76 diff --git a/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj b/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj new file mode 100644 index 000000000..1a9ada200 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj @@ -0,0 +1,3160 @@ +# Blender v2.92.0 OBJ File: 'airlock.blend' +# www.blender.org +o frame +v -0.500000 0.000000 2.000000 +v -0.500000 4.000000 2.000000 +v -0.500000 0.000000 -2.000000 +v -0.500000 4.000000 -2.000000 +v 0.500000 0.000000 2.000000 +v 0.500000 4.000000 2.000000 +v 0.500000 0.000000 -2.000000 +v 0.500000 4.000000 -2.000000 +v 0.500000 1.990837 -1.903622 +v -0.500000 1.990837 -1.903622 +v 0.500000 2.466150 -1.706741 +v -0.500000 2.466150 -1.706741 +v 0.500000 1.480763 -1.970774 +v -0.500000 1.480763 -1.970774 +v 0.500000 0.970688 -1.903621 +v -0.500000 0.970688 -1.903622 +v 0.500000 0.495375 -1.706740 +v -0.500000 0.495375 -1.706740 +v 0.500000 2.874311 -1.393548 +v -0.500000 2.874311 -1.393548 +v 0.500000 0.056024 -1.443547 +v -0.500000 0.056024 -1.443547 +v 0.500000 3.187504 -0.985387 +v -0.500000 3.187504 -0.985387 +v 0.500000 0.056026 1.443549 +v -0.500000 0.056026 1.443549 +v 0.500000 3.384384 -0.510074 +v -0.500000 3.384384 -0.510074 +v 0.500000 3.451537 -0.000000 +v -0.500000 3.451537 -0.000000 +v 0.500000 3.384385 0.510074 +v -0.500000 3.384385 0.510074 +v 0.500000 3.187504 0.985387 +v -0.500000 3.187504 0.985387 +v 0.500000 2.874311 1.393548 +v -0.500000 2.874311 1.393548 +v 0.500000 2.466151 1.706741 +v -0.500000 2.466151 1.706741 +v 0.500000 1.990837 1.903622 +v -0.500000 1.990837 1.903622 +v 0.500000 1.480764 1.970774 +v -0.500000 1.480763 1.970774 +v 0.500000 0.970690 1.903622 +v -0.500000 0.970690 1.903622 +v 0.500000 0.495377 1.706741 +v -0.500000 0.495376 1.706741 +v -0.533603 1.476714 -2.000000 +v -0.533603 1.994352 -1.931852 +v -0.533603 2.476714 -1.732051 +v -0.533603 2.890928 -1.414214 +v -0.533603 3.208765 -1.000000 +v -0.533603 3.408566 -0.517638 +v -0.533603 3.476714 -0.000000 +v -0.533603 3.408566 0.517638 +v -0.533603 3.208765 1.000000 +v -0.533603 2.890928 1.414213 +v -0.533603 2.476715 1.732051 +v -0.533603 1.994353 1.931852 +v -0.533603 1.476715 2.000000 +v -0.533603 0.959077 1.931852 +v -0.533603 0.476715 1.732051 +v -0.533603 0.062501 1.414214 +v -0.533603 0.062500 -1.414213 +v -0.533603 0.476713 -1.732050 +v -0.533603 0.959075 -1.931851 +v 0.533603 1.476714 -2.000000 +v 0.533603 1.994352 -1.931852 +v 0.533603 2.476714 -1.732051 +v 0.533603 2.890928 -1.414214 +v 0.533603 3.208765 -1.000000 +v 0.533603 3.408566 -0.517638 +v 0.533603 3.476714 -0.000000 +v 0.533603 3.408566 0.517638 +v 0.533603 3.208765 1.000000 +v 0.533603 2.890928 1.414213 +v 0.533603 2.476715 1.732051 +v 0.533603 1.994353 1.931852 +v 0.533603 1.476715 2.000000 +v 0.533603 0.959077 1.931852 +v 0.533603 0.476715 1.732051 +v 0.533603 0.062501 1.414214 +v 0.533603 0.062500 -1.414213 +v 0.533603 0.476713 -1.732050 +v 0.533603 0.959074 -1.931851 +v -0.533603 1.970088 -1.841296 +v -0.533603 1.476714 -1.906250 +v -0.533603 2.429839 -1.650861 +v -0.533603 2.824636 -1.347922 +v -0.533603 3.127575 -0.953125 +v -0.533603 3.318010 -0.493374 +v -0.533603 3.382964 -0.000000 +v -0.533603 3.318010 0.493374 +v -0.533603 3.127575 0.953125 +v -0.533603 2.824636 1.347922 +v -0.533603 2.429840 1.650861 +v -0.533603 1.970088 1.841296 +v -0.533603 1.476715 1.906250 +v -0.533603 0.983341 1.841296 +v -0.533603 0.523590 1.650861 +v -0.533603 0.523588 -1.650860 +v -0.533603 0.983339 -1.841296 +v 0.533603 1.970088 -1.841296 +v 0.533603 1.476714 -1.906250 +v 0.533603 2.429839 -1.650861 +v 0.533603 2.824636 -1.347922 +v 0.533603 3.127575 -0.953125 +v 0.533603 3.318010 -0.493374 +v 0.533603 3.382964 -0.000000 +v 0.533603 3.318010 0.493374 +v 0.533603 3.127575 0.953125 +v 0.533603 2.824637 1.347922 +v 0.533603 2.429840 1.650861 +v 0.533603 1.970088 1.841296 +v 0.533603 1.476715 1.906250 +v 0.533603 0.983341 1.841296 +v 0.533603 0.523590 1.650861 +v 0.533603 0.523588 -1.650860 +v 0.533603 0.983339 -1.841296 +v 0.533603 -0.000000 -1.414213 +v -0.533603 -0.000000 -1.414213 +v -0.533603 0.000001 1.414214 +v 0.533603 0.000001 1.414214 +v 0.166667 0.062500 -1.414213 +v -0.166667 0.062500 -1.414213 +v -0.166667 0.062501 1.414214 +v 0.166667 0.062501 1.414214 +v 0.166667 3.382964 -0.000000 +v -0.166667 3.382964 -0.000000 +v -0.166667 3.318010 0.493374 +v 0.166667 3.318010 0.493374 +v -0.166667 0.523588 -1.650860 +v 0.166667 0.523588 -1.650860 +v 0.166667 0.523590 1.650861 +v -0.166667 0.523590 1.650861 +v -0.166667 3.127575 0.953125 +v 0.166667 3.127575 0.953125 +v -0.166667 0.983339 -1.841296 +v 0.166667 0.983339 -1.841296 +v 0.166667 1.476714 -1.906250 +v -0.166667 1.476714 -1.906250 +v -0.166667 1.970088 -1.841296 +v 0.166667 1.970088 -1.841296 +v -0.166667 2.824637 1.347922 +v 0.166667 2.824637 1.347922 +v -0.166667 2.429839 -1.650861 +v 0.166667 2.429839 -1.650861 +v -0.166667 2.429840 1.650861 +v 0.166667 2.429840 1.650861 +v -0.166667 2.824636 -1.347922 +v 0.166667 2.824636 -1.347922 +v -0.166667 1.970088 1.841296 +v 0.166667 1.970088 1.841296 +v -0.166667 3.127575 -0.953125 +v 0.166667 3.127575 -0.953125 +v -0.166667 1.476715 1.906250 +v 0.166667 1.476715 1.906250 +v -0.166667 3.318010 -0.493374 +v 0.166667 3.318010 -0.493374 +v -0.166667 0.983341 1.841296 +v 0.166667 0.983341 1.841296 +v 0.500000 -0.000000 -1.414213 +v -0.500000 -0.000000 -1.414213 +v -0.500000 0.000001 1.414214 +v 0.500000 0.000001 1.414214 +v -0.166667 0.048000 1.923243 +v -0.166667 0.047998 -1.923243 +v 0.166667 0.048000 1.923243 +v 0.166667 0.047998 -1.923243 +v -0.166667 0.978943 1.923243 +v -0.166667 0.516453 1.923243 +v 0.166667 0.978943 1.923243 +v 0.166667 0.516453 1.923243 +v -0.166667 3.334424 -1.923243 +v -0.166667 3.399957 -0.000000 +v 0.166667 3.334424 -1.923243 +v 0.166667 3.399957 -0.000000 +v -0.166667 1.476715 1.923243 +v 0.166667 1.476715 1.923243 +v -0.166667 3.142291 -1.923243 +v 0.166667 3.142291 -1.923243 +v -0.166667 1.974486 1.923243 +v 0.166667 1.974486 1.923243 +v -0.166667 2.836652 -1.923243 +v 0.166667 2.836652 -1.923243 +v -0.166667 2.438336 1.923243 +v 0.166667 2.438336 1.923243 +v -0.166667 2.438335 -1.923243 +v 0.166667 2.438335 -1.923243 +v -0.166667 2.836652 1.923243 +v 0.166667 2.836653 1.923243 +v -0.166667 1.974486 -1.923243 +v 0.166667 1.974486 -1.923243 +v -0.166667 0.978941 -1.923243 +v -0.166667 1.476714 -1.923243 +v 0.166667 0.978941 -1.923243 +v 0.166667 1.476714 -1.923243 +v -0.166667 3.142291 1.923243 +v 0.166667 3.142291 1.923243 +v -0.166667 0.516451 -1.923243 +v 0.166667 0.516451 -1.923243 +v -0.166667 3.334424 1.923243 +v 0.166667 3.334424 1.923243 +v 0.500000 0.476715 1.732051 +v 0.500000 0.959077 1.931852 +v 0.500000 1.476715 2.000000 +v 0.500000 1.994353 1.931852 +v 0.500000 2.476715 1.732051 +v 0.500000 2.890928 1.414213 +v 0.500000 3.208765 1.000000 +v 0.500000 3.408566 0.517638 +v 0.500000 3.476714 -0.000000 +v 0.500000 3.408566 -0.517638 +v 0.500000 3.208765 -1.000000 +v 0.500000 2.890928 -1.414214 +v 0.500000 2.476714 -1.732051 +v 0.500000 1.994352 -1.931852 +v 0.500000 1.476714 -2.000000 +v 0.500000 0.959074 -1.931851 +v 0.500000 0.476713 -1.732050 +v -0.500000 0.476715 1.732051 +v -0.500000 0.959077 1.931852 +v -0.500000 1.476715 2.000000 +v -0.500000 1.994353 1.931852 +v -0.500000 2.476715 1.732051 +v -0.500000 2.890928 1.414213 +v -0.500000 3.208765 1.000000 +v -0.500000 3.408566 0.517638 +v -0.500000 3.476714 -0.000000 +v -0.500000 3.408566 -0.517638 +v -0.500000 3.208765 -1.000000 +v -0.500000 2.890928 -1.414214 +v -0.500000 2.476714 -1.732051 +v -0.500000 1.994352 -1.931852 +v -0.500000 1.476714 -2.000000 +v -0.500000 0.959075 -1.931851 +v -0.500000 0.476713 -1.732050 +vt 0.068980 0.323539 +vt 0.067373 0.076025 +vt 0.101951 0.199335 +vt 0.320032 0.005495 +vt 0.321765 0.069092 +vt 0.647589 0.225990 +vt 0.647578 0.043005 +vt 0.651413 0.005495 +vt 0.067840 0.386736 +vt 0.321765 0.328100 +vt 0.320625 0.391296 +vt 0.386516 0.069092 +vt 0.007101 0.323941 +vt 0.005495 0.076427 +vt 0.317926 0.106905 +vt 0.431125 0.134236 +vt 0.435293 0.166263 +vt 0.397517 0.258065 +vt 0.132225 0.655744 +vt 0.163488 0.645688 +vt 0.165025 0.651426 +vt 0.421694 0.342907 +vt 0.403923 0.370450 +vt 0.416559 0.339942 +vt 0.100963 0.645688 +vt 0.099425 0.651426 +vt 0.409650 0.371984 +vt 0.399613 0.403189 +vt 0.071831 0.633622 +vt 0.068860 0.638766 +vt 0.409650 0.434393 +vt 0.403923 0.435928 +vt 0.042614 0.618627 +vt 0.416560 0.466435 +vt 0.526107 0.529682 +vt 0.557311 0.519644 +vt 0.558846 0.525372 +vt 0.027618 0.589410 +vt 0.022474 0.592380 +vt 0.421695 0.463471 +vt 0.436662 0.492633 +vt 0.589354 0.512735 +vt 0.015551 0.560278 +vt 0.009813 0.561816 +vt 0.440855 0.488440 +vt 0.462860 0.512735 +vt 0.011435 0.529016 +vt 0.005495 0.529016 +vt 0.465825 0.507600 +vt 0.493368 0.525372 +vt 0.619504 0.313743 +vt 0.615551 0.492633 +vt 0.615551 0.313743 +vt 0.358254 0.687384 +vt 0.381505 0.655852 +vt 0.381505 0.687384 +vt 0.381505 0.972483 +vt 0.358254 0.939643 +vt 0.381505 0.939643 +vt 0.358254 0.435125 +vt 0.381505 0.402285 +vt 0.381505 0.435125 +vt 0.358254 0.655852 +vt 0.381505 0.624319 +vt 0.381505 0.908111 +vt 0.358254 0.876578 +vt 0.381505 0.845046 +vt 0.381505 0.876578 +vt 0.358254 0.624319 +vt 0.381505 0.592787 +vt 0.358254 0.813513 +vt 0.381505 0.813513 +vt 0.358254 0.592787 +vt 0.381505 0.561255 +vt 0.358254 0.781981 +vt 0.381505 0.781981 +vt 0.358254 0.561255 +vt 0.381505 0.529722 +vt 0.381505 0.750449 +vt 0.358254 0.498190 +vt 0.381505 0.498190 +vt 0.358254 0.750449 +vt 0.381505 0.718916 +vt 0.381505 0.466657 +vt 0.358254 0.718916 +vt 0.440854 0.317937 +vt 0.436662 0.313744 +vt 0.195590 0.638765 +vt 0.132223 0.408225 +vt 0.099423 0.406604 +vt 0.132223 0.402285 +vt 0.465824 0.298777 +vt 0.462859 0.293642 +vt 0.100960 0.412342 +vt 0.068858 0.419264 +vt 0.493367 0.281005 +vt 0.698707 0.252092 +vt 0.662402 0.254221 +vt 0.662402 0.252092 +vt 0.046812 0.443605 +vt 0.042612 0.439404 +vt 0.526106 0.276695 +vt 0.494902 0.286732 +vt 0.195588 0.419263 +vt 0.163486 0.412341 +vt 0.165023 0.406603 +vt 0.027617 0.468621 +vt 0.022472 0.465651 +vt 0.557310 0.286732 +vt 0.558845 0.281005 +vt 0.009812 0.496216 +vt 0.589353 0.293641 +vt 0.494902 0.519645 +vt 0.015550 0.497753 +vt 0.108173 0.933725 +vt 0.106043 0.897420 +vt 0.108173 0.897420 +vt 0.087859 0.930852 +vt 0.085729 0.963935 +vt 0.085729 0.930852 +vt 0.714219 0.524745 +vt 0.747302 0.526874 +vt 0.714219 0.526874 +vt 0.020742 0.931104 +vt 0.018613 0.964186 +vt 0.018613 0.931104 +vt 0.551923 0.901930 +vt 0.549793 0.935013 +vt 0.549793 0.901930 +vt 0.461565 0.291956 +vt 0.435368 0.312058 +vt 0.434975 0.312450 +vt 0.414873 0.338648 +vt 0.414596 0.339129 +vt 0.401959 0.369636 +vt 0.401816 0.370172 +vt 0.397506 0.402911 +vt 0.397506 0.403466 +vt 0.401816 0.436205 +vt 0.401960 0.436741 +vt 0.414596 0.467249 +vt 0.414874 0.467729 +vt 0.434976 0.493927 +vt 0.435368 0.494319 +vt 0.461566 0.514421 +vt 0.462047 0.514699 +vt 0.492555 0.527335 +vt 0.493090 0.527479 +vt 0.525829 0.531789 +vt 0.526384 0.531789 +vt 0.559123 0.527479 +vt 0.559659 0.527335 +vt 0.590167 0.514698 +vt 0.225797 0.618625 +vt 0.221836 0.439403 +vt 0.225797 0.439403 +vt 0.619504 0.492633 +vt 0.831188 0.746127 +vt 0.807937 0.925350 +vt 0.807937 0.746127 +vt 0.192618 0.424408 +vt 0.586388 0.298776 +vt 0.221836 0.618625 +vt 0.192620 0.633620 +vt 0.773697 0.746127 +vt 0.796948 0.925350 +vt 0.773697 0.925350 +vt 0.926346 0.069867 +vt 0.949597 0.038335 +vt 0.949597 0.069867 +vt 0.949597 0.322126 +vt 0.926346 0.290593 +vt 0.949597 0.290593 +vt 0.926346 0.101399 +vt 0.949597 0.101399 +vt 0.926346 0.353658 +vt 0.949597 0.353658 +vt 0.949597 0.132932 +vt 0.926346 0.385190 +vt 0.949597 0.385190 +vt 0.949597 0.164464 +vt 0.926346 0.132932 +vt 0.926346 0.416723 +vt 0.949597 0.416723 +vt 0.949597 0.195996 +vt 0.926346 0.164464 +vt 0.949597 0.448255 +vt 0.926346 0.511320 +vt 0.949597 0.479788 +vt 0.949597 0.511320 +vt 0.949597 0.227529 +vt 0.926346 0.195996 +vt 0.926346 0.479788 +vt 0.926346 0.542852 +vt 0.949597 0.542852 +vt 0.926346 0.259061 +vt 0.949597 0.259061 +vt 0.926346 0.038335 +vt 0.949597 0.005495 +vt 0.926346 0.575693 +vt 0.949597 0.575693 +vt 0.622626 0.313752 +vt 0.622626 0.492642 +vt 0.635215 0.820032 +vt 0.632634 0.967885 +vt 0.632634 0.820018 +vt 0.815877 0.291846 +vt 0.877345 0.278740 +vt 0.877345 0.290914 +vt 0.640163 0.633315 +vt 0.641239 0.601777 +vt 0.641240 0.633315 +vt 0.860085 0.456842 +vt 0.877344 0.486978 +vt 0.845090 0.486059 +vt 0.579768 0.737922 +vt 0.641240 0.751029 +vt 0.550636 0.749989 +vt 0.872152 0.365186 +vt 0.877345 0.335517 +vt 0.877345 0.364908 +vt 0.623981 0.572926 +vt 0.641239 0.542793 +vt 0.641239 0.572474 +vt 0.634692 0.396460 +vt 0.633615 0.428001 +vt 0.633615 0.396460 +vt 0.636047 0.664578 +vt 0.641240 0.694248 +vt 0.623980 0.693710 +vt 0.650875 0.456855 +vt 0.633615 0.486991 +vt 0.633615 0.457307 +vt 0.398583 0.633314 +vt 0.397506 0.601771 +vt 0.402699 0.602049 +vt 0.650876 0.336062 +vt 0.633615 0.310283 +vt 0.670072 0.311044 +vt 0.414766 0.572916 +vt 0.397506 0.542778 +vt 0.429762 0.543697 +vt 0.786746 0.279780 +vt 0.755485 0.274588 +vt 0.414766 0.693709 +vt 0.397506 0.719487 +vt 0.397506 0.694248 +vt 0.695090 0.291847 +vt 0.633615 0.278740 +vt 0.724224 0.279780 +vt 0.519374 0.755181 +vt 0.519374 0.754105 +vt 0.860086 0.336056 +vt 0.877345 0.310279 +vt 0.458978 0.737922 +vt 0.397506 0.751029 +vt 0.397506 0.738854 +vt 0.638808 0.427723 +vt 0.915357 0.920578 +vt 0.894235 0.676845 +vt 0.915357 0.676845 +vt 0.894235 0.005495 +vt 0.915357 0.035178 +vt 0.894235 0.035178 +vt 0.915357 0.064484 +vt 0.894235 0.064484 +vt 0.915357 0.096025 +vt 0.894235 0.096025 +vt 0.894235 0.127566 +vt 0.915357 0.127566 +vt 0.915357 0.156958 +vt 0.894235 0.156958 +vt 0.915357 0.182197 +vt 0.894235 0.182197 +vt 0.915357 0.201564 +vt 0.894235 0.201564 +vt 0.915357 0.213739 +vt 0.894235 0.213739 +vt 0.915357 0.335675 +vt 0.894235 0.335675 +vt 0.915357 0.457612 +vt 0.894235 0.457612 +vt 0.915357 0.469787 +vt 0.894235 0.469787 +vt 0.915357 0.489153 +vt 0.894235 0.489153 +vt 0.915357 0.514393 +vt 0.894235 0.514393 +vt 0.915357 0.543784 +vt 0.894235 0.543784 +vt 0.915357 0.575326 +vt 0.894235 0.575326 +vt 0.894235 0.606867 +vt 0.915357 0.606867 +vt 0.915357 0.636173 +vt 0.894235 0.636173 +vt 0.894235 0.665856 +vt 0.915357 0.665856 +vt 0.488111 0.749989 +vt 0.876268 0.396447 +vt 0.877345 0.427988 +vt 0.872152 0.427710 +vt 0.397506 0.664856 +vt 0.397506 0.633314 +vt 0.755485 0.275664 +vt 0.433962 0.718726 +vt 0.633615 0.364917 +vt 0.638808 0.365195 +vt 0.633615 0.290915 +vt 0.604785 0.718726 +vt 0.641240 0.738854 +vt 0.641240 0.664857 +vt 0.840892 0.311041 +vt 0.760850 0.958917 +vt 0.762194 0.823957 +vt 0.762194 0.969333 +vt 0.877345 0.396447 +vt 0.402699 0.664577 +vt 0.990032 0.493759 +vt 0.992233 0.561870 +vt 0.990889 0.551453 +vt 0.636047 0.602055 +vt 0.633615 0.335523 +vt 0.397506 0.572463 +vt 0.877345 0.457294 +vt 0.641240 0.719488 +vt 0.462046 0.291678 +vt 0.493090 0.278898 +vt 0.526383 0.274588 +vt 0.559658 0.279041 +vt 0.005495 0.931104 +vt 0.007624 0.964186 +vt 0.005495 0.964186 +vt 0.198058 0.922286 +vt 0.200187 0.955369 +vt 0.198058 0.955369 +vt 0.536675 0.901930 +vt 0.538804 0.935013 +vt 0.536675 0.935013 +vt 0.742779 0.252092 +vt 0.709696 0.254221 +vt 0.709696 0.252092 +vt 0.753769 0.254221 +vt 0.786851 0.252092 +vt 0.786851 0.254221 +vt 0.072611 0.930852 +vt 0.074740 0.963935 +vt 0.072611 0.963935 +vt 0.187069 0.955369 +vt 0.184940 0.922286 +vt 0.187069 0.922286 +vt 0.960586 0.538006 +vt 0.962716 0.571089 +vt 0.960586 0.571089 +vt 0.341384 0.897681 +vt 0.343513 0.930765 +vt 0.341384 0.930765 +vt 0.871547 0.531064 +vt 0.869418 0.497980 +vt 0.871547 0.497980 +vt 0.328265 0.897681 +vt 0.330395 0.930765 +vt 0.328265 0.930765 +vt 0.741558 0.930395 +vt 0.743688 0.963478 +vt 0.741558 0.963478 +vt 0.620683 0.494401 +vt 0.590532 0.514503 +vt 0.620683 0.311975 +vt 0.223103 0.324116 +vt 0.221951 0.074040 +vt 0.190475 0.078944 +vt 0.191904 0.319517 +vt 0.162864 0.306928 +vt 0.161326 0.091754 +vt 0.136494 0.111633 +vt 0.137910 0.287105 +vt 0.118657 0.261353 +vt 0.117599 0.137327 +vt 0.105823 0.167232 +vt 0.106317 0.231450 +vt 0.065640 0.012427 +vt 0.651413 0.263598 +vt 0.552691 0.259238 +vt 0.586679 0.255595 +vt 0.618394 0.243259 +vt 0.586883 0.013251 +vt 0.552820 0.009503 +vt 0.618445 0.025671 +vt 0.386516 0.328100 +vt 0.257044 0.320347 +vt 0.288698 0.307876 +vt 0.256415 0.077528 +vt 0.288704 0.089685 +vt 0.317917 0.290484 +vt 0.397506 0.010132 +vt 0.521402 0.014143 +vt 0.521401 0.254494 +vt 0.492084 0.026804 +vt 0.466891 0.046640 +vt 0.492220 0.241702 +vt 0.467071 0.221661 +vt 0.447526 0.072318 +vt 0.435314 0.102161 +vt 0.447526 0.196031 +vt 0.132225 0.649804 +vt 0.405542 0.403189 +vt 0.046814 0.614426 +vt 0.526107 0.523753 +vt 0.586389 0.507600 +vt 0.358254 0.972483 +vt 0.358254 0.402285 +vt 0.358254 0.908110 +vt 0.358254 0.845046 +vt 0.358254 0.529722 +vt 0.358254 0.466657 +vt 0.071828 0.424409 +vt 0.698707 0.254221 +vt 0.526106 0.282624 +vt 0.106043 0.933725 +vt 0.087859 0.963935 +vt 0.747302 0.524745 +vt 0.020742 0.964186 +vt 0.551923 0.935013 +vt 0.831188 0.925350 +vt 0.796948 0.746127 +vt 0.926346 0.322126 +vt 0.926346 0.448255 +vt 0.926346 0.227529 +vt 0.926346 0.005495 +vt 0.635215 0.967900 +vt 0.608988 0.543712 +vt 0.665870 0.486072 +vt 0.894235 0.920578 +vt 0.915357 0.005495 +vt 0.759993 0.901223 +vt 0.992233 0.416493 +vt 0.492554 0.279041 +vt 0.525828 0.274588 +vt 0.559122 0.278898 +vt 0.590166 0.291678 +vt 0.007624 0.931104 +vt 0.200187 0.922286 +vt 0.538804 0.901930 +vt 0.742779 0.254221 +vt 0.753769 0.252092 +vt 0.074740 0.930852 +vt 0.184940 0.955369 +vt 0.962716 0.538006 +vt 0.343513 0.897681 +vt 0.869418 0.531064 +vt 0.330395 0.897681 +vt 0.743688 0.930395 +vt 0.590532 0.291873 +vn -1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9659 -0.2588 +vn 0.0000 0.4566 0.8897 +vn 0.0000 0.4200 0.9075 +vn -0.0000 0.4200 -0.9075 +vn -0.0000 0.4566 -0.8897 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.2588 0.9659 +vn -0.0000 -0.2588 0.9659 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.9659 0.2588 +vn -0.0000 0.2588 -0.9659 +vn 0.0000 -0.5547 -0.8320 +vn 0.0000 -0.4710 -0.8822 +vn 0.0000 -0.4710 0.8822 +vn 0.0000 -0.5547 0.8320 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.9659 0.2588 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.9994 0.0341 +vn 0.0000 -0.9994 -0.0341 +s 1 +f 2/1/1 4/2/1 30/3/1 +f 4/2/2 7/4/2 3/5/2 +f 21/6/3 25/7/3 5/8/3 +f 6/9/4 1/10/4 5/11/4 +f 7/12/5 1/10/5 3/5/5 +f 4/2/6 6/13/6 8/14/6 +f 22/15/1 3/5/1 1/10/1 +f 29/16/3 27/17/3 8/18/3 +f 59/19/1 98/20/1 60/21/1 +f 110/22/3 73/23/3 74/24/3 +f 96/25/1 59/19/1 58/26/1 +f 109/27/3 72/28/3 73/23/3 +f 95/29/1 58/26/1 57/30/1 +f 72/28/3 107/31/3 71/32/3 +f 56/33/1 95/29/1 57/30/1 +f 107/31/3 70/34/3 71/32/3 +f 66/35/3 118/36/3 84/37/3 +f 93/38/1 56/33/1 55/39/1 +f 106/40/3 69/41/3 70/34/3 +f 118/36/3 83/42/3 84/37/3 +f 92/43/1 55/39/1 54/44/1 +f 105/45/3 68/46/3 69/41/3 +f 91/47/1 54/44/1 53/48/1 +f 104/49/3 67/50/3 68/46/3 +f 122/51/3 82/52/3 81/53/3 +f 108/54/5 130/55/7 127/56/5 +f 123/57/8 117/58/9 132/59/9 +f 116/60/10 126/61/11 133/62/10 +f 109/63/7 136/64/12 130/55/7 +f 117/58/9 138/65/13 132/59/9 +f 103/66/4 142/67/14 139/68/4 +f 110/69/12 144/70/15 136/64/12 +f 138/65/13 103/66/4 139/68/4 +f 142/67/14 104/71/16 146/72/16 +f 111/73/15 148/74/17 144/70/15 +f 146/72/16 105/75/18 150/76/18 +f 112/77/17 152/78/19 148/74/17 +f 105/75/18 154/79/20 150/76/18 +f 152/78/19 114/80/2 156/81/2 +f 106/82/20 158/83/21 154/79/20 +f 114/80/2 160/84/22 156/81/2 +f 107/85/21 127/56/5 158/83/21 +f 160/84/22 116/60/10 133/62/10 +f 111/86/3 74/24/3 75/87/3 +f 98/20/1 61/88/1 60/21/1 +f 86/89/1 48/90/1 47/91/1 +f 112/92/3 75/87/3 76/93/3 +f 85/94/1 49/95/1 48/90/1 +f 77/96/3 112/92/3 76/93/3 +f 162/97/23 64/98/24 236/99/24 +f 49/95/1 88/100/1 50/101/1 +f 78/102/3 113/103/3 77/96/3 +f 64/104/1 101/105/1 65/106/1 +f 50/101/1 89/107/1 51/108/1 +f 115/109/3 78/102/3 79/110/3 +f 65/106/1 86/89/1 47/91/1 +f 89/107/1 52/111/1 51/108/1 +f 80/112/3 115/109/3 79/110/3 +f 102/113/3 66/35/3 67/50/3 +f 90/114/1 53/48/1 52/111/1 +f 220/115/25 121/116/26 163/117/26 +f 60/118/14 220/119/25 221/120/14 +f 59/121/4 221/122/14 222/123/4 +f 58/124/13 222/125/4 223/126/13 +f 57/127/27 223/128/13 224/129/27 +f 207/130/27 75/87/28 208/131/28 +f 208/132/28 74/24/29 209/133/29 +f 209/134/29 73/23/30 210/135/30 +f 210/136/30 72/28/6 211/137/6 +f 211/138/6 71/32/31 212/139/31 +f 212/140/31 70/34/32 213/141/32 +f 213/142/32 69/41/33 214/143/33 +f 214/144/33 68/46/34 215/145/34 +f 215/146/34 67/50/22 216/147/22 +f 216/148/22 66/35/2 217/149/2 +f 217/150/2 84/37/19 218/151/19 +f 218/152/19 83/42/24 219/153/24 +f 121/154/1 63/155/1 120/156/1 +f 83/42/3 82/52/3 119/157/3 +f 125/158/6 63/159/6 62/160/6 +f 64/104/1 63/155/1 100/161/1 +f 80/112/3 81/53/3 116/162/3 +f 62/163/1 61/88/1 99/164/1 +f 126/165/6 82/166/6 123/167/6 +f 159/168/22 99/169/10 98/170/22 +f 90/171/21 128/172/5 91/173/5 +f 155/174/2 98/170/22 97/175/2 +f 153/176/20 90/171/21 89/177/20 +f 96/178/19 155/174/2 97/175/2 +f 149/179/18 89/177/20 88/180/18 +f 95/181/17 151/182/19 96/178/19 +f 145/183/16 88/180/18 87/184/16 +f 94/185/15 147/186/17 95/181/17 +f 85/187/14 145/183/16 87/184/16 +f 137/188/13 86/189/4 101/190/13 +f 93/191/12 143/192/15 94/185/15 +f 140/193/4 85/187/14 86/189/4 +f 131/194/9 101/190/13 100/195/9 +f 129/196/7 93/191/12 92/197/7 +f 134/198/10 62/199/11 99/169/10 +f 124/200/8 100/195/9 63/201/8 +f 128/172/5 92/197/7 91/173/5 +f 119/157/5 164/202/5 161/203/5 +f 162/204/5 121/205/5 120/206/5 +f 154/207/1 175/208/1 180/209/1 +f 140/210/3 193/211/3 194/212/3 +f 132/213/1 168/214/1 123/215/1 +f 153/216/3 173/217/3 157/218/3 +f 142/219/1 188/220/1 192/221/1 +f 131/222/3 166/223/3 199/224/3 +f 156/225/1 171/226/1 178/227/1 +f 141/228/3 187/229/3 145/230/3 +f 133/231/1 167/232/1 172/233/1 +f 155/234/3 169/235/3 159/236/3 +f 148/237/1 190/238/1 144/239/1 +f 134/240/3 165/241/3 125/242/3 +f 158/243/1 176/244/1 175/208/1 +f 147/245/3 189/246/3 185/247/3 +f 136/248/1 202/249/1 130/250/1 +f 157/218/3 174/251/3 128/252/3 +f 146/253/1 184/254/1 188/220/1 +f 135/255/3 201/256/3 197/257/3 +f 160/258/1 172/233/1 171/226/1 +f 165/259/6 168/260/6 166/261/6 +f 166/262/4 200/263/4 199/264/4 +f 199/264/4 195/265/4 193/266/4 +f 193/266/4 196/267/4 194/268/4 +f 191/269/4 196/267/4 192/270/4 +f 191/269/4 188/271/4 187/272/4 +f 187/272/4 184/273/4 183/274/4 +f 183/274/4 180/275/4 179/276/4 +f 179/276/4 175/277/4 173/278/4 +f 173/278/35 176/279/5 174/280/5 +f 174/280/5 202/281/36 201/282/36 +f 201/282/2 198/283/2 197/284/2 +f 197/284/2 190/285/2 189/286/2 +f 189/286/2 186/287/2 185/288/2 +f 185/288/2 182/289/2 181/290/2 +f 181/290/2 178/291/2 177/292/2 +f 169/293/2 178/291/2 171/294/2 +f 169/293/2 172/295/2 170/296/2 +f 165/297/2 172/295/2 167/298/2 +f 129/299/3 174/251/3 201/256/3 +f 139/300/1 195/301/1 138/302/1 +f 155/234/3 181/303/3 177/304/3 +f 130/250/1 176/244/1 127/305/1 +f 143/306/3 197/257/3 189/246/3 +f 156/225/1 182/307/1 152/308/1 +f 144/239/1 198/309/1 136/248/1 +f 149/310/3 179/311/3 153/216/3 +f 140/210/3 191/312/3 141/228/3 +f 150/313/1 180/209/1 184/254/1 +f 124/314/3 165/315/3 166/316/3 +f 139/300/1 192/221/1 196/317/1 +f 151/318/3 185/247/3 181/303/3 +f 123/319/1 167/320/1 126/321/1 +f 137/322/3 199/224/3 193/211/3 +f 152/308/1 186/323/1 148/237/1 +f 159/236/3 170/324/3 134/240/3 +f 138/302/1 200/325/1 132/213/1 +f 145/230/3 183/326/3 149/310/3 +f 207/327/27 77/96/13 76/93/27 +f 206/328/13 78/102/4 77/96/13 +f 205/329/4 79/110/14 78/102/4 +f 204/330/14 80/112/25 79/110/14 +f 57/331/27 225/332/28 56/333/28 +f 56/334/28 226/335/29 55/336/29 +f 55/337/29 227/338/30 54/339/30 +f 54/340/30 228/341/6 53/342/6 +f 53/343/6 229/344/31 52/345/31 +f 52/346/31 230/347/32 51/348/32 +f 51/349/32 231/350/33 50/351/33 +f 50/352/33 232/353/34 49/354/34 +f 49/355/34 233/356/22 48/357/22 +f 48/358/22 234/359/2 47/360/2 +f 47/361/2 235/362/19 65/363/19 +f 65/364/19 236/365/24 64/366/24 +f 83/42/24 161/367/23 219/368/24 +f 80/112/25 164/369/26 122/51/26 +f 42/370/1 1/10/1 2/1/1 +f 4/2/1 3/5/1 14/371/1 +f 4/2/1 14/371/1 10/372/1 +f 40/373/1 42/370/1 2/1/1 +f 38/374/1 40/373/1 2/1/1 +f 4/2/1 10/372/1 12/375/1 +f 4/2/1 12/375/1 20/376/1 +f 36/377/1 38/374/1 2/1/1 +f 34/378/1 36/377/1 2/1/1 +f 4/2/1 20/376/1 24/379/1 +f 4/2/1 24/379/1 28/380/1 +f 32/381/1 34/378/1 2/1/1 +f 4/2/1 28/380/1 30/3/1 +f 30/3/1 32/381/1 2/1/1 +f 4/2/2 8/382/2 7/4/2 +f 7/383/3 13/384/3 15/385/3 +f 7/383/3 15/385/3 17/386/3 +f 43/387/3 41/388/3 5/8/3 +f 45/389/3 43/387/3 5/8/3 +f 7/383/3 17/386/3 21/6/3 +f 25/7/3 45/389/3 5/8/3 +f 7/383/3 21/6/3 5/8/3 +f 6/9/4 2/1/4 1/10/4 +f 7/12/5 5/390/5 1/10/5 +f 4/2/6 2/1/6 6/13/6 +f 1/10/1 42/370/1 44/391/1 +f 1/10/1 44/391/1 46/392/1 +f 16/393/1 14/371/1 3/5/1 +f 18/394/1 16/393/1 3/5/1 +f 1/10/1 46/392/1 26/395/1 +f 22/15/1 18/394/1 3/5/1 +f 1/10/1 26/395/1 22/15/1 +f 6/396/3 5/8/3 41/388/3 +f 6/396/3 41/388/3 39/397/3 +f 13/384/3 7/383/3 8/18/3 +f 9/398/3 13/384/3 8/18/3 +f 6/396/3 39/397/3 37/399/3 +f 6/396/3 37/399/3 35/400/3 +f 11/401/3 9/398/3 8/18/3 +f 19/402/3 11/401/3 8/18/3 +f 6/396/3 35/400/3 33/403/3 +f 6/396/3 33/403/3 31/404/3 +f 23/405/3 19/402/3 8/18/3 +f 27/17/3 23/405/3 8/18/3 +f 8/18/3 6/396/3 29/16/3 +f 6/396/3 31/404/3 29/16/3 +f 59/19/1 97/406/1 98/20/1 +f 110/22/3 109/27/3 73/23/3 +f 96/25/1 97/406/1 59/19/1 +f 109/27/3 108/407/3 72/28/3 +f 95/29/1 96/25/1 58/26/1 +f 72/28/3 108/407/3 107/31/3 +f 56/33/1 94/408/1 95/29/1 +f 107/31/3 106/40/3 70/34/3 +f 66/35/3 103/409/3 118/36/3 +f 93/38/1 94/408/1 56/33/1 +f 106/40/3 105/45/3 69/41/3 +f 118/36/3 117/410/3 83/42/3 +f 92/43/1 93/38/1 55/39/1 +f 105/45/3 104/49/3 68/46/3 +f 91/47/1 92/43/1 54/44/1 +f 104/49/3 102/113/3 67/50/3 +f 122/51/3 119/157/3 82/52/3 +f 108/54/5 109/63/7 130/55/7 +f 123/57/8 82/411/8 117/58/9 +f 116/60/10 81/412/11 126/61/11 +f 109/63/7 110/69/12 136/64/12 +f 117/58/9 118/413/13 138/65/13 +f 103/66/4 102/414/14 142/67/14 +f 110/69/12 111/73/15 144/70/15 +f 138/65/13 118/413/13 103/66/4 +f 142/67/14 102/414/14 104/71/16 +f 111/73/15 112/77/17 148/74/17 +f 146/72/16 104/71/16 105/75/18 +f 112/77/17 113/415/19 152/78/19 +f 105/75/18 106/82/20 154/79/20 +f 152/78/19 113/415/19 114/80/2 +f 106/82/20 107/85/21 158/83/21 +f 114/80/2 115/416/22 160/84/22 +f 107/85/21 108/54/5 127/56/5 +f 160/84/22 115/416/22 116/60/10 +f 111/86/3 110/22/3 74/24/3 +f 98/20/1 99/164/1 61/88/1 +f 86/89/1 85/94/1 48/90/1 +f 112/92/3 111/86/3 75/87/3 +f 85/94/1 87/417/1 49/95/1 +f 77/96/3 113/103/3 112/92/3 +f 162/97/23 120/418/23 64/98/24 +f 49/95/1 87/417/1 88/100/1 +f 78/102/3 114/419/3 113/103/3 +f 64/104/1 100/161/1 101/105/1 +f 50/101/1 88/100/1 89/107/1 +f 115/109/3 114/419/3 78/102/3 +f 65/106/1 101/105/1 86/89/1 +f 89/107/1 90/114/1 52/111/1 +f 80/112/3 116/162/3 115/109/3 +f 102/113/3 103/409/3 66/35/3 +f 90/114/1 91/47/1 53/48/1 +f 220/115/25 61/420/25 121/116/26 +f 60/118/14 61/421/25 220/119/25 +f 59/121/4 60/422/14 221/122/14 +f 58/124/13 59/423/4 222/125/4 +f 57/127/27 58/424/13 223/128/13 +f 207/130/27 76/93/27 75/87/28 +f 208/132/28 75/87/28 74/24/29 +f 209/134/29 74/24/29 73/23/30 +f 210/136/30 73/23/30 72/28/6 +f 211/138/6 72/28/6 71/32/31 +f 212/140/31 71/32/31 70/34/32 +f 213/142/32 70/34/32 69/41/33 +f 214/144/33 69/41/33 68/46/34 +f 215/146/34 68/46/34 67/50/22 +f 216/148/22 67/50/22 66/35/2 +f 217/150/2 66/35/2 84/37/19 +f 218/152/19 84/37/19 83/42/24 +f 121/154/1 62/163/1 63/155/1 +f 83/42/3 117/410/3 82/52/3 +f 125/158/6 124/425/6 63/159/6 +f 64/104/1 120/156/1 63/155/1 +f 80/112/3 122/51/3 81/53/3 +f 62/163/1 121/154/1 61/88/1 +f 126/165/6 81/426/6 82/166/6 +f 159/168/22 134/198/10 99/169/10 +f 90/171/21 157/427/21 128/172/5 +f 155/174/2 159/168/22 98/170/22 +f 153/176/20 157/427/21 90/171/21 +f 96/178/19 151/182/19 155/174/2 +f 149/179/18 153/176/20 89/177/20 +f 95/181/17 147/186/17 151/182/19 +f 145/183/16 149/179/18 88/180/18 +f 94/185/15 143/192/15 147/186/17 +f 85/187/14 141/428/14 145/183/16 +f 137/188/13 140/193/4 86/189/4 +f 93/191/12 135/429/12 143/192/15 +f 140/193/4 141/428/14 85/187/14 +f 131/194/9 137/188/13 101/190/13 +f 129/196/7 135/429/12 93/191/12 +f 134/198/10 125/430/11 62/199/11 +f 124/200/8 131/194/9 100/195/9 +f 128/172/5 129/196/7 92/197/7 +f 119/157/5 122/51/5 164/202/5 +f 162/204/5 163/431/5 121/205/5 +f 154/207/1 158/243/1 175/208/1 +f 140/210/3 137/322/3 193/211/3 +f 132/213/1 200/325/1 168/214/1 +f 153/216/3 179/311/3 173/217/3 +f 142/219/1 146/253/1 188/220/1 +f 131/222/3 124/432/3 166/223/3 +f 156/225/1 160/258/1 171/226/1 +f 141/228/3 191/312/3 187/229/3 +f 133/231/1 126/433/1 167/232/1 +f 155/234/3 177/304/3 169/235/3 +f 148/237/1 186/323/1 190/238/1 +f 134/240/3 170/324/3 165/241/3 +f 158/243/1 127/305/1 176/244/1 +f 147/245/3 143/306/3 189/246/3 +f 136/248/1 198/309/1 202/249/1 +f 157/218/3 173/217/3 174/251/3 +f 146/253/1 150/313/1 184/254/1 +f 135/255/3 129/299/3 201/256/3 +f 160/258/1 133/231/1 172/233/1 +f 165/259/6 167/434/6 168/260/6 +f 166/262/4 168/435/4 200/263/4 +f 199/264/4 200/263/4 195/265/4 +f 193/266/4 195/265/4 196/267/4 +f 191/269/4 194/268/4 196/267/4 +f 191/269/4 192/270/4 188/271/4 +f 187/272/4 188/271/4 184/273/4 +f 183/274/4 184/273/4 180/275/4 +f 179/276/4 180/275/4 175/277/4 +f 173/278/35 175/277/35 176/279/5 +f 174/280/5 176/279/5 202/281/36 +f 201/282/2 202/281/2 198/283/2 +f 197/284/2 198/283/2 190/285/2 +f 189/286/2 190/285/2 186/287/2 +f 185/288/2 186/287/2 182/289/2 +f 181/290/2 182/289/2 178/291/2 +f 169/293/2 177/292/2 178/291/2 +f 169/293/2 171/294/2 172/295/2 +f 165/297/2 170/296/2 172/295/2 +f 129/299/3 128/252/3 174/251/3 +f 139/300/1 196/317/1 195/301/1 +f 155/234/3 151/318/3 181/303/3 +f 130/250/1 202/249/1 176/244/1 +f 143/306/3 135/255/3 197/257/3 +f 156/225/1 178/227/1 182/307/1 +f 144/239/1 190/238/1 198/309/1 +f 149/310/3 183/326/3 179/311/3 +f 140/210/3 194/212/3 191/312/3 +f 150/313/1 154/207/1 180/209/1 +f 124/314/3 125/436/3 165/315/3 +f 139/300/1 142/219/1 192/221/1 +f 151/318/3 147/245/3 185/247/3 +f 123/319/1 168/437/1 167/320/1 +f 137/322/3 131/222/3 199/224/3 +f 152/308/1 182/307/1 186/323/1 +f 159/236/3 169/235/3 170/324/3 +f 138/302/1 195/301/1 200/325/1 +f 145/230/3 187/229/3 183/326/3 +f 207/327/27 206/438/13 77/96/13 +f 206/328/13 205/439/4 78/102/4 +f 205/329/4 204/440/14 79/110/14 +f 204/330/14 203/441/25 80/112/25 +f 57/331/27 224/442/27 225/332/28 +f 56/334/28 225/443/28 226/335/29 +f 55/337/29 226/444/29 227/338/30 +f 54/340/30 227/445/30 228/341/6 +f 53/343/6 228/446/6 229/344/31 +f 52/346/31 229/447/31 230/347/32 +f 51/349/32 230/448/32 231/350/33 +f 50/352/33 231/449/33 232/353/34 +f 49/355/34 232/450/34 233/356/22 +f 48/358/22 233/451/22 234/359/2 +f 47/361/2 234/452/2 235/362/19 +f 65/364/19 235/453/19 236/365/24 +f 83/42/24 119/157/23 161/367/23 +f 80/112/25 203/454/25 164/369/26 +o doorRight +v 0.166667 0.183059 -1.291355 +v 0.166667 0.574264 -1.541358 +v 0.166667 1.014811 -1.723840 +v 0.166667 1.476714 -1.784650 +v 0.166667 1.938615 -1.723840 +v 0.166667 2.369039 -1.545552 +v 0.166667 2.738652 -1.261938 +v 0.166667 3.022266 -0.892325 +v 0.166667 3.200554 -0.461901 +v 0.168084 0.047997 -1.426236 +v 0.166667 0.183060 -0.183059 +v 0.168084 3.345687 -0.497568 +v 0.168084 3.153632 -0.961228 +v 0.166667 3.245492 -0.183060 +v 0.168084 2.848119 -1.359382 +v 0.168084 2.449965 -1.664895 +v 0.168084 1.986305 -1.856950 +v 0.168084 0.991167 -1.856950 +v 0.168084 1.488737 -1.922456 +v 0.168084 0.527508 -1.664895 +v 0.107558 0.183060 -0.183059 +v 0.107558 3.245492 -0.183060 +v 0.107558 0.183059 -1.291355 +v 0.107558 3.200554 -0.461901 +v 0.107558 3.022266 -0.892325 +v 0.107558 2.738652 -1.261938 +v 0.107558 2.369039 -1.545552 +v 0.107558 1.938615 -1.723840 +v 0.107558 1.014811 -1.723840 +v 0.107558 1.476714 -1.784650 +v 0.107558 0.574264 -1.541358 +v 0.166667 0.047998 -0.100000 +v 0.166667 3.039069 -0.100000 +v 0.166667 2.708339 -0.100000 +v 0.166667 2.377609 -0.100000 +v 0.166667 2.046879 -0.100000 +v 0.166667 1.716149 -0.100000 +v 0.166667 1.385420 -0.100000 +v 0.166667 1.054690 -0.100000 +v 0.166667 0.723960 -0.100000 +v 0.166667 0.393230 -0.100000 +v 0.116667 0.393230 0.100000 +v 0.166667 0.393230 0.050000 +v 0.166667 0.047998 0.050000 +v 0.116667 0.047998 0.100000 +v 0.116667 3.039069 0.100000 +v 0.166667 3.039069 0.050000 +v 0.166667 2.708339 0.050000 +v 0.116667 2.708339 0.100000 +v 0.116667 2.377609 0.100000 +v 0.166667 2.377609 0.050000 +v 0.166667 2.046879 0.050000 +v 0.116667 2.046879 0.100000 +v 0.116667 1.716149 0.100000 +v 0.166667 1.716149 0.050000 +v 0.166667 1.385420 0.050000 +v 0.116667 1.385420 0.100000 +v 0.116667 1.054690 0.100000 +v 0.166667 1.054690 0.050000 +v 0.166667 0.723960 0.050000 +v 0.116667 0.723960 0.100000 +v -0.166666 0.183059 -1.291355 +v -0.166666 0.574264 -1.541358 +v -0.166666 1.014811 -1.723840 +v -0.166666 1.476714 -1.784650 +v -0.166666 1.938615 -1.723840 +v -0.166666 2.369039 -1.545552 +v -0.166666 2.738652 -1.261938 +v -0.166666 3.022266 -0.892325 +v -0.166666 3.200554 -0.461901 +v -0.168083 0.047997 -1.426236 +v -0.166666 0.183060 -0.183059 +v -0.168083 3.345687 -0.497568 +v -0.168083 3.153632 -0.961228 +v -0.166666 3.245492 -0.183060 +v -0.168083 2.848119 -1.359382 +v -0.168083 2.449965 -1.664895 +v -0.168083 1.986305 -1.856950 +v -0.168083 0.991167 -1.856950 +v -0.168083 1.488737 -1.922456 +v -0.168083 0.527508 -1.664895 +v -0.107558 0.183060 -0.183059 +v -0.107557 3.245492 -0.183060 +v -0.107558 0.183059 -1.291355 +v -0.107557 3.200554 -0.461901 +v -0.107557 3.022266 -0.892325 +v -0.107557 2.738652 -1.261938 +v -0.107558 2.369039 -1.545552 +v -0.107558 1.938615 -1.723840 +v -0.107558 1.014811 -1.723840 +v -0.107557 1.476714 -1.784650 +v -0.107558 0.574264 -1.541358 +v -0.168083 3.397916 -0.100850 +v -0.166666 3.039069 -0.100000 +v -0.166666 2.708339 -0.100000 +v -0.166666 2.377609 -0.100000 +v -0.166666 2.046879 -0.100000 +v -0.166666 1.716149 -0.100000 +v -0.166666 1.385420 -0.100000 +v -0.166666 1.054690 -0.100000 +v -0.166666 0.723960 -0.100000 +v -0.166666 0.393230 -0.100000 +v -0.116666 0.393230 0.100000 +v -0.166666 0.393230 0.050000 +v -0.166666 0.047998 0.050000 +v -0.116666 0.047998 0.100000 +v -0.116666 3.039069 0.100000 +v -0.166666 3.039069 0.050000 +v -0.166666 2.708339 0.050000 +v -0.116666 2.708339 0.100000 +v -0.116666 2.377609 0.100000 +v -0.166666 2.377609 0.050000 +v -0.166666 2.046879 0.050000 +v -0.116666 2.046879 0.100000 +v -0.116666 1.716149 0.100000 +v -0.166666 1.716149 0.050000 +v -0.166666 1.385420 0.050000 +v -0.116666 1.385420 0.100000 +v -0.116666 1.054690 0.100000 +v -0.166666 1.054690 0.050000 +v -0.166666 0.723960 0.050000 +v -0.116666 0.723960 0.100000 +v 0.166667 0.047998 -0.183059 +v -0.166666 0.047998 -0.183059 +v 0.057399 2.947922 -0.628826 +v 0.057399 2.811188 -0.572189 +v 0.057399 2.754550 -0.435454 +v 0.057399 2.811188 -0.298720 +v 0.057399 2.947922 -0.242083 +v 0.057399 3.084657 -0.298720 +v 0.057399 3.141294 -0.435454 +v 0.057399 3.084657 -0.572189 +v 0.134706 2.811188 -0.572189 +v 0.134706 2.947922 -0.628826 +v 0.134706 2.754550 -0.435454 +v 0.134706 2.811188 -0.298720 +v 0.134706 2.947922 -0.242083 +v 0.134706 3.084657 -0.298720 +v 0.134706 3.141294 -0.435454 +v 0.134706 3.084657 -0.572189 +v -0.057398 2.947922 -0.628826 +v -0.057398 2.811188 -0.572189 +v -0.057398 2.754550 -0.435454 +v -0.057398 2.811188 -0.298720 +v -0.057398 2.947922 -0.242083 +v -0.057398 3.084657 -0.298720 +v -0.057398 3.141294 -0.435454 +v -0.057398 3.084657 -0.572189 +v -0.134705 2.811188 -0.572189 +v -0.134705 2.947922 -0.628826 +v -0.134705 2.754550 -0.435454 +v -0.134705 2.811188 -0.298720 +v -0.134705 2.947922 -0.242083 +v -0.134705 3.084657 -0.298720 +v -0.134705 3.141294 -0.435454 +v -0.134705 3.084657 -0.572189 +v 0.168084 3.397916 -0.100850 +v -0.166666 0.047998 -0.100000 +v 0.168084 3.397916 -0.184616 +v -0.168083 3.397916 -0.184616 +v 0.090995 0.595453 -0.114216 +v 0.090995 0.707781 -0.114216 +v 0.090995 0.595453 -1.616943 +v 0.090995 0.707781 -1.616943 +v 0.159155 0.609494 -0.114216 +v 0.159155 0.693740 -0.114216 +v 0.159155 0.609494 -1.616943 +v 0.159155 0.693740 -1.616943 +v 0.090995 1.262953 -0.114216 +v 0.090995 1.375282 -0.114216 +v 0.090995 1.262953 -1.841179 +v 0.090995 1.375282 -1.841179 +v 0.159155 1.276994 -0.114216 +v 0.159155 1.361241 -0.114216 +v 0.159155 1.276994 -1.841179 +v 0.159155 1.361241 -1.841179 +v 0.090995 1.930453 -0.114216 +v 0.090995 2.042782 -0.114216 +v 0.090995 1.930453 -1.753672 +v 0.090995 2.042782 -1.753672 +v 0.159155 1.944494 -0.114216 +v 0.159155 2.028741 -0.114216 +v 0.159155 1.944494 -1.753672 +v 0.159155 2.028741 -1.753672 +v 0.090995 2.597953 -0.114216 +v 0.090995 2.710282 -0.114216 +v 0.090995 2.597953 -1.403646 +v 0.090995 2.710282 -1.403646 +v 0.159155 2.611994 -0.114216 +v 0.159155 2.696241 -0.114216 +v 0.159155 2.611994 -1.403646 +v 0.159155 2.696241 -1.403646 +v -0.090994 0.595453 -0.114216 +v -0.090994 0.707781 -0.114216 +v -0.090994 0.595453 -1.616943 +v -0.090994 0.707781 -1.616943 +v -0.159155 0.609494 -0.114216 +v -0.159155 0.693740 -0.114216 +v -0.159155 0.609494 -1.616943 +v -0.159155 0.693740 -1.616943 +v -0.090994 1.262953 -0.114216 +v -0.090994 1.375282 -0.114216 +v -0.090994 1.262953 -1.841179 +v -0.090994 1.375282 -1.841179 +v -0.159155 1.276994 -0.114216 +v -0.159155 1.361241 -0.114216 +v -0.159155 1.276994 -1.841179 +v -0.159155 1.361241 -1.841179 +v -0.090994 1.930453 -0.114216 +v -0.090994 2.042782 -0.114216 +v -0.090994 1.930453 -1.753672 +v -0.090994 2.042782 -1.753672 +v -0.159155 1.944494 -0.114216 +v -0.159155 2.028741 -0.114216 +v -0.159155 1.944494 -1.753672 +v -0.159155 2.028741 -1.753672 +v -0.090994 2.597953 -0.114216 +v -0.090994 2.710282 -0.114216 +v -0.090994 2.597953 -1.403646 +v -0.090994 2.710282 -1.403646 +v -0.159155 2.611994 -0.114216 +v -0.159155 2.696241 -0.114216 +v -0.159155 2.611994 -1.403646 +v -0.159155 2.696241 -1.403646 +vt 0.633615 0.502400 +vt 0.743307 0.497980 +vt 0.743307 0.502401 +vt 0.739233 0.919405 +vt 0.744584 0.823957 +vt 0.744584 0.919405 +vt 0.749004 0.823957 +vt 0.749004 0.919405 +vt 0.734812 0.919405 +vt 0.739233 0.823957 +vt 0.772094 0.236682 +vt 0.662402 0.231331 +vt 0.772094 0.231331 +vt 0.662402 0.226911 +vt 0.772094 0.226911 +vt 0.772094 0.241103 +vt 0.662402 0.236682 +vt 0.005495 0.876659 +vt 0.109628 0.882010 +vt 0.005495 0.882010 +vt 0.109628 0.886430 +vt 0.005495 0.886430 +vt 0.005495 0.872239 +vt 0.109628 0.876659 +vt 0.261809 0.876921 +vt 0.343710 0.882272 +vt 0.261809 0.882272 +vt 0.343710 0.886692 +vt 0.261809 0.886692 +vt 0.261809 0.872501 +vt 0.343710 0.876921 +vt 0.633615 0.507752 +vt 0.743307 0.507752 +vt 0.633615 0.512172 +vt 0.743307 0.512172 +vt 0.719403 0.823957 +vt 0.723823 0.919405 +vt 0.719403 0.919405 +vt 0.709632 0.823957 +vt 0.714052 0.919405 +vt 0.709632 0.919405 +vt 0.714052 0.823957 +vt 0.858429 0.502401 +vt 0.754296 0.507752 +vt 0.754296 0.502401 +vt 0.418177 0.958691 +vt 0.413756 0.876791 +vt 0.418177 0.876791 +vt 0.427948 0.958691 +vt 0.423528 0.876791 +vt 0.427948 0.876791 +vt 0.423528 0.958691 +vt 0.858429 0.507752 +vt 0.754296 0.512172 +vt 0.858429 0.497980 +vt 0.754296 0.497980 +vt 0.633615 0.497980 +vt 0.734812 0.823957 +vt 0.662402 0.241102 +vt 0.109628 0.872239 +vt 0.343710 0.872501 +vt 0.723823 0.823957 +vt 0.413756 0.958691 +vt 0.858429 0.512172 +vt 0.993787 0.200005 +vt 0.990032 0.005495 +vt 0.993787 0.005495 +vt 0.960586 0.378465 +vt 0.964341 0.348873 +vt 0.964341 0.378465 +vt 0.960586 0.497528 +vt 0.964341 0.467240 +vt 0.964341 0.497528 +vt 0.947698 0.768695 +vt 0.926346 0.736818 +vt 0.947698 0.736818 +vt 0.676169 0.690209 +vt 0.656390 0.665899 +vt 0.664845 0.662870 +vt 0.717658 0.731702 +vt 0.687992 0.720640 +vt 0.694182 0.713686 +vt 0.762708 0.745883 +vt 0.742731 0.752246 +vt 0.744997 0.743027 +vt 0.347265 0.411967 +vt 0.327288 0.405604 +vt 0.347166 0.402285 +vt 0.329554 0.414822 +vt 0.297838 0.417804 +vt 0.302215 0.426148 +vt 0.272550 0.437210 +vt 0.278739 0.444163 +vt 0.253145 0.462500 +vt 0.260726 0.467640 +vt 0.240947 0.491951 +vt 0.245539 0.524318 +vt 0.240946 0.555159 +vt 0.236786 0.523555 +vt 0.249402 0.494980 +vt 0.249401 0.553657 +vt 0.253144 0.584609 +vt 0.276870 0.606488 +vt 0.260991 0.581640 +vt 0.038696 0.698926 +vt 0.062172 0.680912 +vt 0.107223 0.861250 +vt 0.960586 0.082619 +vt 0.964341 0.112210 +vt 0.960586 0.112210 +vt 0.960586 0.005495 +vt 0.964341 0.023434 +vt 0.960586 0.023434 +vt 0.960586 0.200985 +vt 0.964341 0.231273 +vt 0.960586 0.231273 +vt 0.964341 0.141802 +vt 0.960586 0.141802 +vt 0.964341 0.053027 +vt 0.960586 0.053026 +vt 0.964341 0.260761 +vt 0.960586 0.260761 +vt 0.960586 0.171394 +vt 0.964341 0.200985 +vt 0.964341 0.082619 +vt 0.599944 0.947302 +vt 0.596189 0.876906 +vt 0.599943 0.876906 +vt 0.964341 0.171394 +vt 0.993787 0.210994 +vt 0.990032 0.405504 +vt 0.990032 0.210994 +vt 0.685939 0.766554 +vt 0.664932 0.776082 +vt 0.664932 0.766554 +vt 0.261809 0.897681 +vt 0.284602 0.918944 +vt 0.261809 0.919034 +vt 0.173950 0.922286 +vt 0.152778 0.943293 +vt 0.152778 0.922286 +vt 0.141789 0.922286 +vt 0.120617 0.943293 +vt 0.120617 0.922286 +vt 0.504679 0.901930 +vt 0.525686 0.923102 +vt 0.504679 0.923102 +vt 0.752490 0.800264 +vt 0.742962 0.779257 +vt 0.752490 0.779257 +vt 0.564552 0.766170 +vt 0.543545 0.775698 +vt 0.543545 0.766170 +vt 0.621955 0.766170 +vt 0.600948 0.775698 +vt 0.600948 0.766170 +vt 0.507149 0.795010 +vt 0.485221 0.799501 +vt 0.485221 0.795010 +vt 0.664932 0.780573 +vt 0.685939 0.776082 +vt 0.685939 0.780573 +vt 0.600948 0.780189 +vt 0.621955 0.775698 +vt 0.621955 0.780189 +vt 0.738471 0.779257 +vt 0.742962 0.800264 +vt 0.738471 0.800264 +vt 0.543545 0.780189 +vt 0.564552 0.775698 +vt 0.564552 0.780189 +vt 0.485221 0.809029 +vt 0.507149 0.799501 +vt 0.507149 0.809029 +vt 0.723651 0.800264 +vt 0.564552 0.795010 +vt 0.485221 0.780189 +vt 0.519852 0.798186 +vt 0.510325 0.798186 +vt 0.493690 0.901930 +vt 0.472517 0.922937 +vt 0.472517 0.901930 +vt 0.530841 0.777013 +vt 0.540369 0.777013 +vt 0.741647 0.766554 +vt 0.741647 0.776082 +vt 0.588244 0.777013 +vt 0.597772 0.777013 +vt 0.652229 0.777397 +vt 0.661756 0.777397 +vt 0.947698 0.948231 +vt 0.926346 0.928078 +vt 0.947698 0.928078 +vt 0.668587 0.573240 +vt 0.692313 0.551361 +vt 0.676434 0.576210 +vt 0.960586 0.319281 +vt 0.964341 0.289690 +vt 0.964341 0.319281 +vt 0.713281 0.740046 +vt 0.668588 0.695350 +vt 0.660982 0.633531 +vt 0.656389 0.602691 +vt 0.664844 0.604193 +vt 0.118212 0.748902 +vt 0.122074 0.719563 +vt 0.219940 0.666733 +vt 0.960586 0.408057 +vt 0.964341 0.408057 +vt 0.960586 0.289690 +vt 0.964341 0.271750 +vt 0.964341 0.437648 +vt 0.960586 0.467240 +vt 0.664932 0.799885 +vt 0.685939 0.809412 +vt 0.664932 0.809412 +vt 0.960586 0.348873 +vt 0.614687 0.876906 +vt 0.610933 0.947302 +vt 0.610933 0.876906 +vt 0.960586 0.527017 +vt 0.964341 0.527017 +vt 0.543545 0.799501 +vt 0.564552 0.809029 +vt 0.543545 0.809029 +vt 0.719159 0.779257 +vt 0.709632 0.800264 +vt 0.709632 0.779257 +vt 0.600948 0.799501 +vt 0.621955 0.809029 +vt 0.600948 0.809029 +vt 0.685939 0.799885 +vt 0.664932 0.795393 +vt 0.685939 0.795393 +vt 0.485221 0.775698 +vt 0.507149 0.780189 +vt 0.621955 0.799501 +vt 0.600948 0.795010 +vt 0.621955 0.795010 +vt 0.564552 0.799501 +vt 0.543545 0.795010 +vt 0.719159 0.800264 +vt 0.723651 0.779257 +vt 0.507149 0.775698 +vt 0.485221 0.766170 +vt 0.507149 0.766170 +vt 0.762708 0.542778 +vt 0.762708 0.551357 +vt 0.347265 0.615072 +vt 0.268302 0.615067 +vt 0.472517 0.777013 +vt 0.577255 0.798186 +vt 0.720475 0.812968 +vt 0.634658 0.798186 +vt 0.698643 0.798569 +vt 0.926346 0.896201 +vt 0.947698 0.896201 +vt 0.926346 0.864325 +vt 0.947698 0.864325 +vt 0.926346 0.832448 +vt 0.947698 0.832448 +vt 0.926346 0.800571 +vt 0.947698 0.800571 +vt 0.926346 0.768695 +vt 0.652229 0.634295 +vt 0.926346 0.704941 +vt 0.947698 0.704941 +vt 0.926346 0.670920 +vt 0.947698 0.670920 +vt 0.947608 0.591958 +vt 0.926436 0.591957 +vt 0.947698 0.953551 +vt 0.926346 0.948231 +vt 0.443847 0.895592 +vt 0.438937 0.904993 +vt 0.438937 0.895592 +vt 0.443847 0.904993 +vt 0.438937 0.914393 +vt 0.443847 0.914393 +vt 0.438937 0.923794 +vt 0.443847 0.923794 +vt 0.438937 0.933194 +vt 0.443847 0.933194 +vt 0.438937 0.942595 +vt 0.443847 0.942595 +vt 0.438937 0.951995 +vt 0.443847 0.876791 +vt 0.438937 0.886191 +vt 0.438937 0.876791 +vt 0.443847 0.886191 +vt 0.454837 0.923794 +vt 0.459747 0.933194 +vt 0.454837 0.933194 +vt 0.454837 0.914393 +vt 0.459747 0.923794 +vt 0.454837 0.904993 +vt 0.459747 0.914393 +vt 0.454837 0.895592 +vt 0.459747 0.904993 +vt 0.454837 0.886191 +vt 0.459747 0.895592 +vt 0.454837 0.876791 +vt 0.459747 0.886191 +vt 0.454837 0.942595 +vt 0.459747 0.951995 +vt 0.454837 0.951995 +vt 0.459747 0.942595 +vt 0.025527 0.900082 +vt 0.029124 0.908767 +vt 0.004560 0.908767 +vt 0.863808 0.746128 +vt 0.858532 0.958902 +vt 0.858487 0.746127 +vt 0.842223 0.746128 +vt 0.847498 0.958897 +vt 0.842177 0.958898 +vt 0.042481 0.916865 +vt 0.038915 0.908257 +vt 0.063262 0.908257 +vt 0.990032 0.200005 +vt 0.762609 0.755565 +vt 0.107223 0.666733 +vt 0.089512 0.669587 +vt 0.036827 0.861250 +vt 0.020948 0.836401 +vt 0.009357 0.808419 +vt 0.005495 0.779081 +vt 0.009357 0.749742 +vt 0.020681 0.722403 +vt 0.964341 0.005495 +vt 0.596189 0.947302 +vt 0.993787 0.405504 +vt 0.284602 0.897771 +vt 0.173950 0.943293 +vt 0.141789 0.943293 +vt 0.525686 0.901930 +vt 0.510325 0.777013 +vt 0.519852 0.777013 +vt 0.493690 0.922937 +vt 0.540369 0.798186 +vt 0.530841 0.798186 +vt 0.720475 0.776082 +vt 0.720475 0.766554 +vt 0.597772 0.798186 +vt 0.588244 0.798186 +vt 0.661756 0.798569 +vt 0.652229 0.798569 +vt 0.683745 0.542783 +vt 0.149544 0.666733 +vt 0.133665 0.691581 +vt 0.219940 0.861250 +vt 0.202229 0.858395 +vt 0.174890 0.847071 +vt 0.151413 0.829057 +vt 0.133399 0.805580 +vt 0.122074 0.778241 +vt 0.960586 0.271750 +vt 0.960586 0.437648 +vt 0.614687 0.947302 +vt 0.347265 0.606493 +vt 0.482045 0.798186 +vt 0.472517 0.798186 +vt 0.482045 0.777013 +vt 0.567728 0.777013 +vt 0.577255 0.777013 +vt 0.567728 0.798186 +vt 0.741647 0.803440 +vt 0.741647 0.812968 +vt 0.720475 0.803440 +vt 0.625130 0.777013 +vt 0.634658 0.777013 +vt 0.625130 0.798186 +vt 0.689115 0.777397 +vt 0.698643 0.777397 +vt 0.689115 0.798569 +vt 0.926436 0.586682 +vt 0.947608 0.586682 +vt 0.926346 0.953551 +vt 0.443847 0.951995 +vt 0.459747 0.876791 +vt 0.025527 0.917452 +vt 0.016842 0.921049 +vt 0.008157 0.917452 +vt 0.008157 0.900082 +vt 0.016842 0.896485 +vt 0.863808 0.958903 +vt 0.847498 0.746127 +vt 0.042481 0.899649 +vt 0.051089 0.896083 +vt 0.059697 0.899649 +vt 0.059697 0.916865 +vt 0.051089 0.920430 +vn -0.2018 0.9794 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.2018 -0.9794 0.0000 +vn 0.2018 0.9794 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.2018 -0.9794 0.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.4624 0.8867 +vn 0.0000 0.2588 0.9659 +vn 0.0000 -0.2588 -0.9659 +vn -1.0000 -0.0049 0.0086 +vn -0.9999 -0.0027 0.0097 +vn -0.9999 -0.0025 0.0097 +vn -1.0000 -0.0083 0.0048 +vn -1.0000 -0.0069 0.0068 +vn -1.0000 -0.0068 0.0069 +vn -1.0000 -0.0093 0.0015 +vn -1.0000 -0.0091 0.0026 +vn 1.0000 -0.0093 0.0015 +vn 1.0000 -0.0091 0.0026 +vn 1.0000 -0.0083 0.0048 +vn 1.0000 -0.0069 0.0068 +vn 1.0000 -0.0068 0.0069 +vn 1.0000 -0.0050 0.0085 +vn 1.0000 -0.0049 0.0086 +vn 0.9999 -0.0027 0.0097 +vn 0.9999 0.0001 0.0103 +vn 0.9999 0.0027 0.0102 +vn 0.9999 -0.0001 0.0103 +vn 0.9999 -0.0025 0.0097 +vn 0.9999 0.0028 0.0101 +vn 0.9999 0.0047 0.0093 +vn 1.0000 0.0067 0.0038 +vn 0.9999 0.0051 0.0096 +vn 0.0000 -0.9873 0.1591 +vn 0.0000 -0.9621 0.2727 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5385 0.8426 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0024 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.9966 -0.0826 +vn 0.0000 0.9613 -0.2754 +vn -0.9999 0.0047 0.0093 +vn -1.0000 0.0067 0.0038 +vn -0.9999 0.0051 0.0096 +vn -1.0000 -0.0050 0.0085 +vn -0.9999 0.0001 0.0103 +vn -0.9999 0.0027 0.0102 +vn -0.9999 0.0028 0.0101 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0007 0.0001 +vn 1.0000 0.0007 0.0001 +vn 1.0000 0.0058 0.0047 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.2588 -0.9659 +vn -0.9999 -0.0001 0.0103 +vn 0.0000 -0.4144 -0.9101 +vn 0.0000 -0.4456 -0.8952 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 1.0000 -0.0004 0.0000 +vn -1.0000 -0.0004 0.0000 +vn -1.0000 0.0058 0.0047 +s off +f 442/455/37 440/456/37 444/457/37 +f 404/458/38 401/459/38 403/460/38 +f 403/460/39 397/461/39 399/462/39 +f 400/463/40 402/464/40 404/458/40 +f 412/465/38 409/466/38 411/467/38 +f 411/467/39 405/468/39 407/469/39 +f 408/470/40 410/471/40 412/465/40 +f 420/472/38 417/473/38 419/474/38 +f 419/474/39 413/475/39 415/476/39 +f 416/477/40 418/478/40 420/472/40 +f 428/479/38 425/480/38 427/481/38 +f 427/481/39 421/482/39 423/483/39 +f 424/484/40 426/485/40 428/479/40 +f 441/486/41 444/457/41 443/487/41 +f 437/488/42 443/487/42 439/489/42 +f 434/490/37 432/491/37 436/492/37 +f 429/493/42 435/494/42 431/495/42 +f 433/496/41 436/492/41 435/494/41 +f 449/497/41 452/498/41 451/499/41 +f 458/500/37 456/501/37 460/502/37 +f 453/503/42 459/504/42 455/505/42 +f 457/506/41 460/502/41 459/504/41 +f 450/507/37 448/508/37 452/498/37 +f 445/509/42 451/499/42 447/510/42 +f 442/455/37 438/511/37 440/456/37 +f 404/458/38 402/464/38 401/459/38 +f 403/460/39 401/459/39 397/461/39 +f 400/463/40 398/512/40 402/464/40 +f 412/465/38 410/471/38 409/466/38 +f 411/467/39 409/466/39 405/468/39 +f 408/470/40 406/513/40 410/471/40 +f 420/472/38 418/478/38 417/473/38 +f 419/474/39 417/473/39 413/475/39 +f 416/477/40 414/514/40 418/478/40 +f 428/479/38 426/485/38 425/480/38 +f 427/481/39 425/480/39 421/482/39 +f 424/484/40 422/515/40 426/485/40 +f 441/486/41 442/455/41 444/457/41 +f 437/488/42 441/486/42 443/487/42 +f 434/490/37 430/516/37 432/491/37 +f 429/493/42 433/496/42 435/494/42 +f 433/496/41 434/490/41 436/492/41 +f 449/497/41 450/507/41 452/498/41 +f 458/500/37 454/517/37 456/501/37 +f 453/503/42 457/506/42 459/504/42 +f 457/506/41 458/500/41 460/502/41 +f 450/507/37 446/518/37 448/508/37 +f 445/509/42 449/497/42 451/499/42 +s 1 +f 247/519/43 258/520/43 250/521/43 +f 324/522/44 304/523/45 303/524/44 +f 328/525/46 300/526/47 299/527/46 +f 316/528/43 254/529/48 315/530/48 +f 303/531/49 314/532/50 302/533/51 +f 305/534/52 312/535/53 304/536/54 +f 311/537/55 309/538/56 306/539/56 +f 250/540/57 248/541/58 395/542/57 +f 245/543/58 249/544/59 248/541/58 +f 244/545/59 251/546/60 249/544/59 +f 243/547/61 252/548/62 251/546/60 +f 242/549/63 253/550/64 252/548/62 +f 240/551/65 254/552/66 255/553/67 +f 241/554/68 255/553/67 253/550/64 +f 239/555/69 256/556/70 254/552/66 +f 237/557/71 256/556/70 238/558/72 +f 262/559/38 261/560/38 257/561/38 +f 243/562/45 263/563/44 242/564/44 +f 250/565/73 260/566/74 245/567/74 +f 239/568/47 267/569/46 238/570/46 +f 242/564/44 264/571/75 241/572/75 +f 245/567/74 261/573/76 244/574/76 +f 238/570/46 259/575/77 237/576/77 +f 240/577/78 265/578/47 239/568/47 +f 244/574/76 262/579/45 243/562/45 +f 237/580/79 257/581/79 247/582/79 +f 241/572/75 266/583/78 240/577/78 +f 319/584/43 308/585/43 311/586/43 +f 269/587/38 284/588/38 270/589/38 +f 329/590/80 269/591/80 393/592/80 +f 331/593/78 271/594/78 270/595/78 +f 333/596/78 273/597/78 272/598/78 +f 335/599/78 275/600/78 274/601/78 +f 273/602/38 292/603/38 274/604/38 +f 275/605/38 296/606/38 276/607/38 +f 271/608/38 288/609/38 272/610/38 +f 281/611/81 279/612/81 278/613/81 +f 285/614/81 283/615/81 282/616/81 +f 289/617/81 287/618/81 286/619/81 +f 293/620/81 291/621/81 290/622/81 +f 297/623/81 295/624/81 294/625/81 +f 277/626/38 280/627/38 268/628/38 +f 351/629/78 293/620/78 290/622/78 +f 355/630/78 297/623/78 294/625/78 +f 339/631/78 281/611/78 278/613/78 +f 268/632/82 280/633/82 281/611/82 +f 337/634/78 277/635/78 276/636/78 +f 276/637/82 296/638/82 297/623/82 +f 274/639/82 292/640/82 293/620/82 +f 272/641/82 288/642/82 289/617/82 +f 270/643/82 284/644/82 285/614/82 +f 396/645/83 248/646/84 309/647/84 +f 317/648/85 298/649/86 299/650/87 +f 322/651/76 306/652/74 305/653/76 +f 306/539/56 310/654/52 305/534/52 +f 304/536/54 313/655/88 303/531/49 +f 301/656/89 315/657/90 300/658/91 +f 327/659/41 326/660/41 318/661/41 +f 300/658/91 317/648/85 299/650/87 +f 325/662/75 303/524/44 302/663/75 +f 321/664/74 311/665/73 306/652/74 +f 301/666/78 325/662/75 302/663/75 +f 326/667/47 301/666/78 300/526/47 +f 345/668/41 330/669/41 331/670/41 +f 323/671/45 305/653/76 304/523/45 +f 318/672/79 298/673/79 308/674/79 +f 320/675/77 299/527/46 298/676/77 +f 357/677/41 336/678/41 337/679/41 +f 353/680/41 334/681/41 335/682/41 +f 349/683/41 332/684/41 333/685/41 +f 344/686/92 346/687/92 343/688/92 +f 340/689/92 342/690/92 339/631/92 +f 348/691/92 350/692/92 347/693/92 +f 356/694/92 358/695/92 355/630/92 +f 352/696/92 354/697/92 351/629/92 +f 341/698/41 338/699/41 394/700/41 +f 298/649/86 360/701/93 308/702/41 +f 347/693/78 289/617/78 286/619/78 +f 237/557/71 359/703/94 246/704/95 +f 343/688/78 285/614/78 282/616/78 +f 339/631/79 278/613/79 338/705/79 +f 355/630/79 294/625/79 336/706/79 +f 351/629/79 290/622/79 334/707/79 +f 347/693/79 286/619/79 332/708/79 +f 343/688/79 282/616/79 330/709/79 +f 309/647/84 249/710/96 310/711/96 +f 310/711/96 251/712/97 312/713/97 +f 312/713/97 252/714/98 313/715/98 +f 313/715/98 253/716/99 314/717/99 +f 316/528/43 253/716/99 255/718/43 +f 302/533/51 316/719/100 301/656/89 +f 315/530/48 256/720/101 317/721/101 +f 317/721/101 246/722/102 307/723/102 +f 360/724/82 246/722/82 359/725/82 +f 329/726/79 395/727/83 396/645/83 +f 370/728/43 362/729/103 361/730/43 +f 369/731/103 363/732/82 362/729/103 +f 371/733/82 364/734/45 363/732/82 +f 372/735/45 365/736/78 364/734/45 +f 373/737/78 366/738/104 365/736/78 +f 374/739/104 367/740/79 366/738/104 +f 375/741/79 368/742/97 367/743/79 +f 376/744/97 361/730/43 368/742/97 +f 378/745/103 386/746/43 377/747/43 +f 379/748/82 385/749/103 378/745/103 +f 380/750/45 387/751/82 379/748/82 +f 381/752/78 388/753/45 380/750/45 +f 382/754/104 389/755/78 381/752/78 +f 383/756/79 390/757/104 382/754/104 +f 384/758/97 391/759/79 383/760/79 +f 377/747/43 392/761/97 384/758/97 +f 392/762/41 386/763/41 389/764/41 +f 393/765/105 359/766/105 395/767/105 +f 360/768/106 329/769/106 396/770/106 +f 372/771/38 371/772/38 375/773/38 +f 247/519/43 257/774/43 258/520/43 +f 324/522/44 323/671/45 304/523/45 +f 328/525/46 326/667/47 300/526/47 +f 316/528/43 255/718/43 254/529/48 +f 303/531/49 313/655/88 314/532/50 +f 305/534/52 310/654/52 312/535/53 +f 311/537/55 396/775/55 309/538/56 +f 250/540/57 245/543/58 248/541/58 +f 245/543/58 244/545/59 249/544/59 +f 244/545/59 243/547/61 251/546/60 +f 243/547/61 242/549/63 252/548/62 +f 242/549/63 241/554/68 253/550/64 +f 240/551/65 239/555/69 254/552/66 +f 241/554/68 240/551/65 255/553/67 +f 239/555/69 238/558/72 256/556/70 +f 237/557/71 246/704/95 256/556/70 +f 258/776/38 257/561/38 260/777/38 +f 257/561/38 259/778/38 267/779/38 +f 260/777/38 257/561/38 261/560/38 +f 267/779/38 265/780/38 257/561/38 +f 265/780/38 266/781/38 257/561/38 +f 266/781/38 264/782/38 257/561/38 +f 264/782/38 263/783/38 257/561/38 +f 263/783/38 262/559/38 257/561/38 +f 243/562/45 262/579/45 263/563/44 +f 250/565/73 258/784/73 260/566/74 +f 239/568/47 265/578/47 267/569/46 +f 242/564/44 263/563/44 264/571/75 +f 245/567/74 260/566/74 261/573/76 +f 238/570/46 267/569/46 259/575/77 +f 240/577/78 266/583/78 265/578/47 +f 244/574/76 261/573/76 262/579/45 +f 237/580/79 259/785/79 257/581/79 +f 241/572/75 264/571/75 266/583/78 +f 319/584/43 318/786/43 308/585/43 +f 269/587/38 283/615/38 284/588/38 +f 329/590/80 330/787/80 269/591/80 +f 331/593/78 332/788/78 271/594/78 +f 333/596/78 334/789/78 273/597/78 +f 335/599/78 336/790/78 275/600/78 +f 273/602/38 291/621/38 292/603/38 +f 275/605/38 295/624/38 296/606/38 +f 271/608/38 287/618/38 288/609/38 +f 281/611/81 280/627/81 279/612/81 +f 285/614/81 284/588/81 283/615/81 +f 289/617/81 288/609/81 287/618/81 +f 293/620/81 292/603/81 291/621/81 +f 297/623/81 296/606/81 295/624/81 +f 277/626/38 279/612/38 280/627/38 +f 351/629/78 354/697/78 293/620/78 +f 355/630/78 358/695/78 297/623/78 +f 339/631/78 342/690/78 281/611/78 +f 281/611/82 342/690/82 268/632/82 +f 342/690/82 341/791/82 394/792/82 +f 268/632/82 342/690/82 394/792/82 +f 337/634/78 338/793/78 277/635/78 +f 297/623/82 358/695/82 276/637/82 +f 358/695/82 357/794/82 337/795/82 +f 276/637/82 358/695/82 337/795/82 +f 293/620/82 354/697/82 274/639/82 +f 354/697/82 353/796/82 335/797/82 +f 274/639/82 354/697/82 335/797/82 +f 289/617/82 350/692/82 272/641/82 +f 350/692/82 349/798/82 333/799/82 +f 272/641/82 350/692/82 333/799/82 +f 285/614/82 346/687/82 270/643/82 +f 346/687/82 345/800/82 331/801/82 +f 270/643/82 346/687/82 331/801/82 +f 396/645/83 395/727/83 248/646/84 +f 317/648/85 307/802/107 298/649/86 +f 322/651/76 321/664/74 306/652/74 +f 306/539/56 309/538/56 310/654/52 +f 304/536/54 312/535/53 313/655/88 +f 301/656/89 316/719/100 315/657/90 +f 320/803/41 318/661/41 328/804/41 +f 318/661/41 319/805/41 321/806/41 +f 328/804/41 318/661/41 326/660/41 +f 321/806/41 322/807/41 318/661/41 +f 322/807/41 323/808/41 318/661/41 +f 323/808/41 324/809/41 318/661/41 +f 324/809/41 325/810/41 318/661/41 +f 325/810/41 327/659/41 318/661/41 +f 300/658/91 315/657/90 317/648/85 +f 325/662/75 324/522/44 303/524/44 +f 321/664/74 319/811/73 311/665/73 +f 301/666/78 327/812/78 325/662/75 +f 326/667/47 327/812/78 301/666/78 +f 345/668/41 344/686/41 330/669/41 +f 323/671/45 322/651/76 305/653/76 +f 318/672/79 320/813/79 298/673/79 +f 320/675/77 328/525/46 299/527/46 +f 357/677/41 356/694/41 336/678/41 +f 353/680/41 352/696/41 334/681/41 +f 349/683/41 348/691/41 332/684/41 +f 344/686/92 345/668/92 346/687/92 +f 340/689/92 341/698/92 342/690/92 +f 348/691/92 349/683/92 350/692/92 +f 356/694/92 357/677/92 358/695/92 +f 352/696/92 353/680/92 354/697/92 +f 341/698/41 340/689/41 338/699/41 +f 298/649/86 307/802/107 360/701/93 +f 347/693/78 350/692/78 289/617/78 +f 237/557/71 247/814/38 359/703/94 +f 343/688/78 346/687/78 285/614/78 +f 279/815/79 277/816/79 278/613/79 +f 277/816/79 338/705/79 278/613/79 +f 338/705/79 340/817/79 339/631/79 +f 295/818/79 275/819/79 294/625/79 +f 275/819/79 336/706/79 294/625/79 +f 336/706/79 356/820/79 355/630/79 +f 291/821/79 273/822/79 290/622/79 +f 273/822/79 334/707/79 290/622/79 +f 334/707/79 352/823/79 351/629/79 +f 287/824/79 271/825/79 286/619/79 +f 271/825/79 332/708/79 286/619/79 +f 332/708/79 348/826/79 347/693/79 +f 283/827/79 269/828/79 282/616/79 +f 269/828/79 330/709/79 282/616/79 +f 330/709/79 344/829/79 343/688/79 +f 309/647/84 248/646/84 249/710/96 +f 310/711/96 249/710/96 251/712/97 +f 312/713/97 251/712/97 252/714/98 +f 313/715/98 252/714/98 253/716/99 +f 316/528/43 314/717/99 253/716/99 +f 302/533/51 314/532/50 316/719/100 +f 315/530/48 254/529/48 256/720/101 +f 317/721/101 256/720/101 246/722/102 +f 268/830/82 394/831/82 360/724/82 +f 360/724/82 307/723/82 246/722/82 +f 359/725/82 268/830/82 360/724/82 +f 329/726/79 393/832/79 395/727/83 +f 370/728/43 369/731/103 362/729/103 +f 369/731/103 371/733/82 363/732/82 +f 371/733/82 372/735/45 364/734/45 +f 372/735/45 373/737/78 365/736/78 +f 373/737/78 374/739/104 366/738/104 +f 374/739/104 375/833/79 367/740/79 +f 375/741/79 376/744/97 368/742/97 +f 376/744/97 370/728/43 361/730/43 +f 378/745/103 385/749/103 386/746/43 +f 379/748/82 387/751/82 385/749/103 +f 380/750/45 388/753/45 387/751/82 +f 381/752/78 389/755/78 388/753/45 +f 382/754/104 390/757/104 389/755/78 +f 383/756/79 391/834/79 390/757/104 +f 384/758/97 392/761/97 391/759/79 +f 377/747/43 386/746/43 392/761/97 +f 386/763/41 385/835/41 389/764/41 +f 385/835/41 387/836/41 389/764/41 +f 387/836/41 388/837/41 389/764/41 +f 389/764/41 390/838/41 391/839/41 +f 391/839/41 392/762/41 389/764/41 +f 393/765/105 268/840/105 359/766/105 +f 360/768/106 394/841/106 329/769/106 +f 371/772/38 369/842/38 375/773/38 +f 369/842/38 370/843/38 375/773/38 +f 370/843/38 376/844/38 375/773/38 +f 375/773/38 374/845/38 373/846/38 +f 373/846/38 372/771/38 375/773/38 +o doorLeft +v 0.166667 0.183059 1.291355 +v 0.166667 0.574264 1.541358 +v 0.166667 1.014811 1.723840 +v 0.166667 1.476714 1.784650 +v 0.166667 1.938615 1.723840 +v 0.166667 2.369039 1.545552 +v 0.166667 2.738652 1.261938 +v 0.166667 3.022266 0.892325 +v 0.166667 3.200554 0.461901 +v 0.168084 0.047998 1.426236 +v 0.166667 0.183060 0.183059 +v 0.168084 3.345687 0.497568 +v 0.168084 3.153632 0.961228 +v 0.166667 3.245492 0.183060 +v 0.168084 2.848119 1.359382 +v 0.168084 2.449965 1.664895 +v 0.168084 1.986305 1.856950 +v 0.168084 0.991167 1.856950 +v 0.168084 1.488737 1.922456 +v 0.168084 0.527508 1.664895 +v 0.107558 0.183060 0.183059 +v 0.107558 3.245492 0.183060 +v 0.107558 0.183059 1.291355 +v 0.107558 3.200554 0.461901 +v 0.107558 3.022266 0.892325 +v 0.107558 2.738652 1.261938 +v 0.107558 2.369039 1.545552 +v 0.107558 1.938615 1.723840 +v 0.107558 1.014811 1.723840 +v 0.107558 1.476714 1.784650 +v 0.107558 0.574264 1.541358 +v 0.168084 3.397916 0.100850 +v 0.166667 3.039069 0.100000 +v 0.166667 2.708339 0.100000 +v 0.166667 2.377609 0.100000 +v 0.166667 2.046879 0.100000 +v 0.166667 1.716149 0.100000 +v 0.166667 1.385420 0.100000 +v 0.166667 1.054690 0.100000 +v 0.166667 0.723960 0.100000 +v 0.166667 0.393230 0.100000 +v -0.166666 0.183059 1.291355 +v -0.166666 0.574264 1.541358 +v -0.166666 1.014811 1.723840 +v -0.166666 1.476714 1.784650 +v -0.166666 1.938615 1.723840 +v -0.166666 2.369039 1.545552 +v -0.166666 2.738652 1.261938 +v -0.166666 3.022266 0.892325 +v -0.166666 3.200554 0.461901 +v -0.168083 0.047998 1.426236 +v -0.166666 0.183060 0.183059 +v -0.168083 3.345687 0.497568 +v -0.168083 3.153632 0.961228 +v -0.166666 3.245492 0.183060 +v -0.168083 2.848119 1.359382 +v -0.168083 2.449965 1.664895 +v -0.168083 1.986305 1.856950 +v -0.168083 0.991167 1.856950 +v -0.168083 1.488737 1.922456 +v -0.168083 0.527508 1.664895 +v -0.107558 0.183060 0.183059 +v -0.107557 3.245492 0.183060 +v -0.107558 0.183059 1.291355 +v -0.107557 3.200554 0.461901 +v -0.107557 3.022266 0.892325 +v -0.107557 2.738652 1.261938 +v -0.107558 2.369039 1.545552 +v -0.107558 1.938615 1.723840 +v -0.107558 1.014811 1.723840 +v -0.107557 1.476714 1.784650 +v -0.107558 0.574264 1.541358 +v -0.166666 3.039069 0.100000 +v -0.166666 2.708339 0.100000 +v -0.166666 2.377609 0.100000 +v -0.166666 2.046879 0.100000 +v -0.166666 1.716149 0.100000 +v -0.166666 1.385420 0.100000 +v -0.166666 1.054690 0.100000 +v -0.166666 0.723960 0.100000 +v -0.166666 0.393230 0.100000 +v 0.166667 0.047999 0.183059 +v -0.168083 3.397916 0.184616 +v 0.168084 3.397916 -0.050425 +v 0.117658 3.397916 -0.100850 +v 0.116667 3.039069 -0.100000 +v 0.166667 3.039069 -0.050000 +v 0.166667 2.708339 -0.050000 +v 0.116667 2.708339 -0.100000 +v 0.116667 2.377609 -0.100000 +v 0.166667 2.377609 -0.050000 +v 0.166667 2.046879 -0.050000 +v 0.116667 2.046879 -0.100000 +v 0.116667 1.716149 -0.100000 +v 0.166667 1.716149 -0.050000 +v 0.166667 1.385420 -0.050000 +v 0.116667 1.385420 -0.100000 +v 0.116667 1.054690 -0.100000 +v 0.166667 1.054690 -0.050000 +v 0.166667 0.723960 -0.050000 +v 0.116667 0.723960 -0.100000 +v 0.116667 0.393230 -0.100000 +v 0.166667 0.393230 -0.050000 +v -0.168083 3.397916 -0.050425 +v -0.117658 3.397916 -0.100850 +v -0.116666 3.039069 -0.100000 +v -0.166666 3.039069 -0.050000 +v -0.166666 2.708339 -0.050000 +v -0.116666 2.708339 -0.100000 +v -0.116666 2.377609 -0.100000 +v -0.166666 2.377609 -0.050000 +v -0.166666 2.046879 -0.050000 +v -0.116666 2.046879 -0.100000 +v -0.116666 1.716149 -0.100000 +v -0.166666 1.716149 -0.050000 +v -0.166666 1.385420 -0.050000 +v -0.116666 1.385420 -0.100000 +v -0.116666 1.054690 -0.100000 +v -0.166666 1.054690 -0.050000 +v -0.166666 0.723960 -0.050000 +v -0.116666 0.723960 -0.100000 +v -0.116666 0.393230 -0.100000 +v -0.166666 0.393230 -0.050000 +v 0.057399 2.947922 0.628826 +v 0.057399 2.811188 0.572189 +v 0.057399 2.754550 0.435454 +v 0.057399 2.811188 0.298720 +v 0.057399 2.947922 0.242083 +v 0.057399 3.084657 0.298720 +v 0.057399 3.141294 0.435454 +v 0.057399 3.084657 0.572189 +v 0.134706 2.811188 0.572189 +v 0.134706 2.947922 0.628826 +v 0.134706 2.754550 0.435454 +v 0.134706 2.811188 0.298720 +v 0.134706 2.947922 0.242083 +v 0.134706 3.084657 0.298720 +v 0.134706 3.141294 0.435454 +v 0.134706 3.084657 0.572189 +v -0.057398 2.947922 0.628826 +v -0.057398 2.811188 0.572189 +v -0.057398 2.754550 0.435454 +v -0.057398 2.811188 0.298720 +v -0.057398 2.947922 0.242083 +v -0.057398 3.084657 0.298720 +v -0.057398 3.141294 0.435454 +v -0.057398 3.084657 0.572189 +v -0.134705 2.811188 0.572189 +v -0.134705 2.947922 0.628826 +v -0.134705 2.754550 0.435454 +v -0.134705 2.811188 0.298720 +v -0.134705 2.947922 0.242083 +v -0.134705 3.084657 0.298720 +v -0.134705 3.141294 0.435454 +v -0.134705 3.084657 0.572189 +v 0.166667 2.212244 0.100000 +v -0.166666 2.212244 0.100000 +v 0.090995 0.595453 0.114216 +v 0.090995 0.707781 0.114216 +v 0.090995 0.595453 1.616943 +v 0.090995 0.707781 1.616943 +v 0.159155 0.609494 0.114216 +v 0.159155 0.693740 0.114216 +v 0.159155 0.609494 1.616943 +v 0.159155 0.693740 1.616943 +v 0.090995 1.262953 0.114216 +v 0.090995 1.375282 0.114216 +v 0.090995 1.262953 1.841179 +v 0.090995 1.375282 1.841179 +v 0.159155 1.276994 0.114216 +v 0.159155 1.361241 0.114216 +v 0.159155 1.276994 1.841179 +v 0.159155 1.361241 1.841179 +v 0.090995 1.930453 0.114216 +v 0.090995 2.042782 0.114216 +v 0.090995 1.930453 1.753672 +v 0.090995 2.042782 1.753672 +v 0.159155 1.944494 0.114216 +v 0.159155 2.028741 0.114216 +v 0.159155 1.944494 1.753672 +v 0.159155 2.028741 1.753672 +v 0.090995 2.597953 0.114216 +v 0.090995 2.710282 0.114216 +v 0.090995 2.597953 1.403646 +v 0.090995 2.710282 1.403646 +v 0.159155 2.611994 0.114216 +v 0.159155 2.696241 0.114216 +v 0.159155 2.611994 1.403646 +v 0.159155 2.696241 1.403646 +v -0.090994 0.595453 0.114216 +v -0.090994 0.707781 0.114216 +v -0.090994 0.595453 1.616943 +v -0.090994 0.707781 1.616943 +v -0.159155 0.609494 0.114216 +v -0.159155 0.693740 0.114216 +v -0.159155 0.609494 1.616943 +v -0.159155 0.693740 1.616943 +v -0.090994 1.262953 0.114216 +v -0.090994 1.375282 0.114216 +v -0.090994 1.262953 1.841179 +v -0.090994 1.375282 1.841179 +v -0.159155 1.276994 0.114216 +v -0.159155 1.361241 0.114216 +v -0.159155 1.276994 1.841179 +v -0.159155 1.361241 1.841179 +v -0.090994 1.930453 0.114216 +v -0.090994 2.042782 0.114216 +v -0.090994 1.930453 1.753672 +v -0.090994 2.042782 1.753672 +v -0.159155 1.944494 0.114216 +v -0.159155 2.028741 0.114216 +v -0.159155 1.944494 1.753672 +v -0.159155 2.028741 1.753672 +v -0.090994 2.597953 0.114216 +v -0.090994 2.710282 0.114216 +v -0.090994 2.597953 1.403646 +v -0.090994 2.710282 1.403646 +v -0.159155 2.611994 0.114216 +v -0.159155 2.696241 0.114216 +v -0.159155 2.611994 1.403646 +v -0.159155 2.696241 1.403646 +v 0.166667 0.047999 0.100000 +v -0.166666 0.047999 0.100000 +v -0.168083 3.397916 0.100850 +v 0.168084 3.397916 0.184616 +v -0.166666 0.047999 0.183059 +vt 0.345261 0.851848 +vt 0.236786 0.847477 +vt 0.345261 0.847477 +vt 0.783083 0.236574 +vt 0.877473 0.231282 +vt 0.877473 0.236574 +vt 0.783083 0.240945 +vt 0.877473 0.240945 +vt 0.783083 0.231282 +vt 0.877473 0.226911 +vt 0.661892 0.928877 +vt 0.656600 0.820401 +vt 0.661892 0.820401 +vt 0.666263 0.928877 +vt 0.666263 0.820401 +vt 0.656600 0.928877 +vt 0.652229 0.820401 +vt 0.686915 0.923380 +vt 0.681624 0.820401 +vt 0.686915 0.820401 +vt 0.691287 0.923380 +vt 0.691287 0.820401 +vt 0.681624 0.923380 +vt 0.677252 0.820401 +vt 0.120617 0.906925 +vt 0.201609 0.901634 +vt 0.201609 0.906925 +vt 0.120617 0.911296 +vt 0.201609 0.911296 +vt 0.120617 0.901634 +vt 0.201609 0.897262 +vt 0.345261 0.857140 +vt 0.236786 0.851848 +vt 0.246449 0.872501 +vt 0.241157 0.966891 +vt 0.241157 0.872501 +vt 0.250820 0.872501 +vt 0.246449 0.966891 +vt 0.236786 0.966891 +vt 0.236786 0.872501 +vt 0.553510 0.890940 +vt 0.472517 0.886569 +vt 0.553510 0.886569 +vt 0.345261 0.861511 +vt 0.236786 0.857140 +vt 0.120617 0.881902 +vt 0.223595 0.886273 +vt 0.120617 0.886273 +vt 0.472517 0.881277 +vt 0.553510 0.881278 +vt 0.472517 0.876906 +vt 0.553510 0.876906 +vt 0.120617 0.872239 +vt 0.223595 0.876610 +vt 0.120617 0.876610 +vt 0.223595 0.881902 +vt 0.783083 0.226911 +vt 0.652229 0.928877 +vt 0.677252 0.923380 +vt 0.120617 0.897262 +vt 0.250820 0.966891 +vt 0.472517 0.890940 +vt 0.236786 0.861511 +vt 0.223595 0.872239 +vt 0.990793 0.982377 +vt 0.994505 0.790024 +vt 0.994505 0.982377 +vt 0.975330 0.140291 +vt 0.979043 0.169554 +vt 0.975330 0.169554 +vt 0.958688 0.735153 +vt 0.979803 0.703630 +vt 0.979803 0.735153 +vt 0.686077 0.070125 +vt 0.666517 0.094166 +vt 0.678580 0.065042 +vt 0.754142 0.017893 +vt 0.722778 0.020841 +vt 0.751901 0.008776 +vt 0.346040 0.826913 +vt 0.326285 0.833206 +vt 0.328526 0.824090 +vt 0.297161 0.821141 +vt 0.301490 0.812889 +vt 0.272153 0.801950 +vt 0.278274 0.795074 +vt 0.252964 0.776940 +vt 0.260460 0.771857 +vt 0.240900 0.747817 +vt 0.249262 0.744821 +vt 0.245442 0.715808 +vt 0.240900 0.685309 +vt 0.249262 0.686794 +vt 0.236786 0.716563 +vt 0.252963 0.656185 +vt 0.260723 0.659122 +vt 0.276425 0.634549 +vt 0.782646 0.086752 +vt 0.786465 0.057739 +vt 0.883246 0.005495 +vt 0.975330 0.374451 +vt 0.979043 0.345187 +vt 0.979043 0.374451 +vt 0.975330 0.286661 +vt 0.979043 0.268920 +vt 0.979043 0.286661 +vt 0.975330 0.492194 +vt 0.979043 0.462242 +vt 0.979043 0.492194 +vt 0.975330 0.403715 +vt 0.979043 0.403715 +vt 0.975330 0.315924 +vt 0.979043 0.315924 +vt 0.975330 0.521356 +vt 0.979043 0.521356 +vt 0.975330 0.462242 +vt 0.979043 0.432979 +vt 0.975330 0.345187 +vt 0.633615 0.523161 +vt 0.703230 0.526874 +vt 0.633615 0.526874 +vt 0.975330 0.023236 +vt 0.979043 0.052499 +vt 0.975330 0.052499 +vt 0.486381 0.832580 +vt 0.501037 0.853354 +vt 0.486381 0.853354 +vt 0.593125 0.832580 +vt 0.588684 0.853354 +vt 0.588684 0.832580 +vt 0.514901 0.853354 +vt 0.505479 0.832580 +vt 0.514901 0.832580 +vt 0.958688 0.703630 +vt 0.979803 0.669986 +vt 0.975330 0.198817 +vt 0.979043 0.228769 +vt 0.975330 0.228769 +vt 0.979043 0.081763 +vt 0.975330 0.081763 +vt 0.990793 0.586682 +vt 0.994505 0.779035 +vt 0.990792 0.779035 +vt 0.703891 0.046908 +vt 0.697769 0.040032 +vt 0.702042 0.207434 +vt 0.678579 0.185797 +vt 0.686339 0.182860 +vt 0.979043 0.111027 +vt 0.975330 0.111027 +vt 0.979043 0.198817 +vt 0.771656 0.215922 +vt 0.693569 0.215917 +vt 0.212598 0.897262 +vt 0.216311 0.966877 +vt 0.212598 0.966877 +vt 0.481939 0.832580 +vt 0.472517 0.853354 +vt 0.472517 0.832580 +vt 0.979043 0.257931 +vt 0.975330 0.257931 +vt 0.346040 0.626061 +vt 0.346040 0.634544 +vt 0.589985 0.820018 +vt 0.610922 0.820018 +vt 0.607782 0.832580 +vt 0.958688 0.892770 +vt 0.979803 0.861246 +vt 0.979803 0.892770 +vt 0.448966 0.780214 +vt 0.452106 0.777073 +vt 0.461528 0.777073 +vt 0.958688 0.829723 +vt 0.979803 0.798200 +vt 0.979803 0.829723 +vt 0.958688 0.944222 +vt 0.979803 0.924293 +vt 0.979803 0.944222 +vt 0.674878 0.155188 +vt 0.666516 0.156673 +vt 0.806530 0.574614 +vt 0.829747 0.556800 +vt 0.874297 0.735138 +vt 0.958688 0.949484 +vt 0.979803 0.949484 +vt 0.958688 0.766676 +vt 0.979803 0.766676 +vt 0.958688 0.798200 +vt 0.413756 0.798100 +vt 0.413756 0.776984 +vt 0.426426 0.780152 +vt 0.424479 0.819903 +vt 0.445417 0.819903 +vt 0.442276 0.832465 +vt 0.442276 0.853239 +vt 0.445417 0.856380 +vt 0.445417 0.865802 +vt 0.504178 0.856495 +vt 0.504178 0.865917 +vt 0.554409 0.853354 +vt 0.557550 0.856495 +vt 0.557550 0.865917 +vt 0.958688 0.861246 +vt 0.483240 0.820018 +vt 0.504178 0.820018 +vt 0.501037 0.832580 +vt 0.536613 0.820018 +vt 0.557550 0.820018 +vt 0.554409 0.832580 +vt 0.295591 0.929608 +vt 0.316365 0.950546 +vt 0.295591 0.950545 +vt 0.568273 0.853354 +vt 0.558851 0.832580 +vt 0.568273 0.832580 +vt 0.426437 0.799412 +vt 0.449030 0.808733 +vt 0.426490 0.808914 +vt 0.539753 0.832580 +vt 0.535312 0.853354 +vt 0.535312 0.832580 +vt 0.427620 0.832465 +vt 0.423178 0.853239 +vt 0.423178 0.832465 +vt 0.413756 0.853239 +vt 0.413756 0.832465 +vt 0.525890 0.853354 +vt 0.525890 0.832580 +vt 0.456139 0.853239 +vt 0.446718 0.832465 +vt 0.456139 0.832465 +vt 0.621645 0.853354 +vt 0.612223 0.832580 +vt 0.621645 0.832580 +vt 0.426426 0.794932 +vt 0.448977 0.799312 +vt 0.448977 0.775772 +vt 0.426437 0.775672 +vt 0.612223 0.853354 +vt 0.446718 0.853239 +vt 0.558851 0.853354 +vt 0.449030 0.766351 +vt 0.426490 0.766170 +vt 0.427620 0.853239 +vt 0.607782 0.853354 +vt 0.593125 0.853354 +vt 0.448966 0.794870 +vt 0.610922 0.856495 +vt 0.610922 0.865917 +vt 0.958777 0.591899 +vt 0.979714 0.586682 +vt 0.979714 0.591899 +vt 0.282747 0.940410 +vt 0.261809 0.950797 +vt 0.261809 0.940410 +vt 0.481939 0.853355 +vt 0.295591 0.897681 +vt 0.317276 0.918619 +vt 0.295591 0.918619 +vt 0.060116 0.930852 +vt 0.039179 0.951626 +vt 0.039179 0.930852 +vt 0.958688 0.924293 +vt 0.771657 0.015069 +vt 0.771558 0.005495 +vt 0.730569 0.930395 +vt 0.709632 0.951169 +vt 0.709632 0.930395 +vt 0.727106 0.029093 +vt 0.671059 0.126175 +vt 0.662402 0.125419 +vt 0.979043 0.140291 +vt 0.674878 0.097162 +vt 0.975330 0.005495 +vt 0.979043 0.023236 +vt 0.579262 0.853354 +vt 0.579262 0.832580 +vt 0.539753 0.853354 +vt 0.580344 0.923388 +vt 0.585200 0.932684 +vt 0.580344 0.932684 +vt 0.580344 0.914091 +vt 0.585200 0.923388 +vt 0.580344 0.904795 +vt 0.585200 0.914091 +vt 0.580344 0.895499 +vt 0.585200 0.904795 +vt 0.580344 0.886202 +vt 0.585200 0.895499 +vt 0.580344 0.876906 +vt 0.585200 0.886202 +vt 0.580344 0.941980 +vt 0.585200 0.951277 +vt 0.580344 0.951277 +vt 0.585200 0.941980 +vt 0.041812 0.917230 +vt 0.038254 0.908641 +vt 0.062546 0.908641 +vt 0.564499 0.932684 +vt 0.569355 0.923388 +vt 0.569355 0.932684 +vt 0.564499 0.923388 +vt 0.569355 0.914091 +vt 0.564499 0.914091 +vt 0.569355 0.904795 +vt 0.564499 0.904795 +vt 0.569355 0.895499 +vt 0.564499 0.895499 +vt 0.569355 0.886202 +vt 0.564499 0.886202 +vt 0.569355 0.876906 +vt 0.564499 0.951277 +vt 0.569355 0.941980 +vt 0.569355 0.951277 +vt 0.564499 0.941980 +vt 0.092421 0.900053 +vt 0.095979 0.908641 +vt 0.071686 0.908641 +vt 0.282747 0.930023 +vt 0.261809 0.930023 +vt 0.874841 0.746128 +vt 0.880058 0.956548 +vt 0.874797 0.956549 +vt 0.402767 0.766172 +vt 0.397550 0.976585 +vt 0.397506 0.766170 +vt 0.990792 0.790024 +vt 0.345942 0.836488 +vt 0.267953 0.626065 +vt 0.813631 0.005495 +vt 0.797928 0.030067 +vt 0.883246 0.197854 +vt 0.865731 0.195031 +vt 0.838695 0.183833 +vt 0.815479 0.166018 +vt 0.797664 0.142802 +vt 0.786465 0.115766 +vt 0.975330 0.268920 +vt 0.975330 0.432979 +vt 0.703230 0.523161 +vt 0.505479 0.853354 +vt 0.958688 0.669986 +vt 0.994505 0.586682 +vt 0.771657 0.207438 +vt 0.216311 0.897262 +vt 0.610922 0.829440 +vt 0.589985 0.829440 +vt 0.461528 0.798011 +vt 0.452106 0.798011 +vt 0.874297 0.542778 +vt 0.856783 0.545601 +vt 0.804682 0.735138 +vt 0.788979 0.710565 +vt 0.777517 0.682893 +vt 0.773697 0.653880 +vt 0.777517 0.624867 +vt 0.788716 0.597831 +vt 0.423258 0.776984 +vt 0.423258 0.798100 +vt 0.445417 0.829325 +vt 0.424479 0.829325 +vt 0.424479 0.865802 +vt 0.424479 0.856380 +vt 0.483240 0.865917 +vt 0.483240 0.856495 +vt 0.536613 0.865917 +vt 0.536613 0.856495 +vt 0.504178 0.829440 +vt 0.483240 0.829440 +vt 0.557550 0.829440 +vt 0.536613 0.829440 +vt 0.316365 0.929608 +vt 0.589985 0.865917 +vt 0.589985 0.856495 +vt 0.958777 0.586682 +vt 0.282747 0.950797 +vt 0.317276 0.897681 +vt 0.060116 0.951626 +vt 0.730569 0.951169 +vt 0.979043 0.005495 +vt 0.585200 0.876906 +vt 0.041812 0.900053 +vt 0.050400 0.896495 +vt 0.058989 0.900053 +vt 0.058989 0.917230 +vt 0.050400 0.920787 +vt 0.564499 0.876906 +vt 0.092421 0.917230 +vt 0.083833 0.920787 +vt 0.075244 0.917230 +vt 0.075244 0.900052 +vt 0.083833 0.896495 +vt 0.880058 0.746127 +vt 0.402767 0.976587 +vn -0.2018 -0.9794 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.2018 -0.9794 0.0000 +vn 0.2018 0.9794 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.2018 0.9794 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 -0.4144 0.9101 +vn -1.0000 -0.0049 -0.0086 +vn -0.9999 -0.0027 -0.0097 +vn -1.0000 -0.0050 -0.0085 +vn -1.0000 -0.0091 -0.0026 +vn -1.0000 -0.0083 -0.0048 +vn 1.0000 -0.0093 -0.0015 +vn 1.0000 -0.0091 -0.0026 +vn 1.0000 -0.0083 -0.0048 +vn 1.0000 -0.0069 -0.0068 +vn 1.0000 -0.0068 -0.0069 +vn 1.0000 -0.0050 -0.0085 +vn 1.0000 -0.0049 -0.0086 +vn 0.9999 -0.0027 -0.0097 +vn 0.9999 -0.0025 -0.0097 +vn 0.9999 0.0001 -0.0103 +vn 0.9999 0.0027 -0.0102 +vn 0.9999 0.0028 -0.0101 +vn 0.9999 -0.0001 -0.0103 +vn 0.9999 0.0047 -0.0093 +vn 0.9999 0.0051 -0.0096 +vn 1.0000 0.0067 -0.0038 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9621 -0.2727 +vn 0.0000 -0.9873 -0.1591 +vn 0.0000 0.4624 -0.8867 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.5385 -0.8426 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 -0.4456 0.8952 +vn -1.0000 -0.0068 -0.0069 +vn -1.0000 -0.0069 -0.0068 +vn -1.0000 0.0067 -0.0038 +vn -0.9999 0.0047 -0.0093 +vn -0.9999 0.0051 -0.0096 +vn -1.0000 0.0007 -0.0001 +vn -1.0000 0.0058 -0.0047 +vn 1.0000 0.0007 -0.0001 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.9966 0.0826 +vn 0.0000 0.9613 0.2754 +vn -0.9999 0.0028 -0.0101 +vn -0.9999 0.0027 -0.0102 +vn -1.0000 -0.0039 0.0000 +vn -0.7071 -0.0036 -0.7071 +vn 0.7071 -0.0036 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 -0.0039 0.0000 +vn 0.0000 -0.0024 -1.0000 +vn -1.0000 -0.0093 -0.0015 +vn -0.9999 0.0001 -0.0103 +vn -0.9999 -0.0001 -0.0103 +vn -0.9999 -0.0025 -0.0097 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 -0.0004 0.0000 +vn -1.0000 -0.0004 0.0000 +vn 1.0000 0.0058 -0.0047 +s off +f 664/847/108 658/848/108 660/849/108 +f 622/850/109 625/851/109 624/852/109 +f 618/853/110 624/852/110 620/854/110 +f 623/855/111 621/856/111 625/851/111 +f 630/857/109 633/858/109 632/859/109 +f 626/860/110 632/859/110 628/861/110 +f 631/862/111 629/863/111 633/858/111 +f 638/864/109 641/865/109 640/866/109 +f 634/867/110 640/866/110 636/868/110 +f 639/869/111 637/870/111 641/865/111 +f 646/871/109 649/872/109 648/873/109 +f 642/874/110 648/873/110 644/875/110 +f 647/876/111 645/877/111 649/872/111 +f 665/878/112 662/879/112 664/847/112 +f 657/880/112 654/881/112 656/882/112 +f 653/883/113 655/884/113 657/880/113 +f 656/882/108 650/885/108 652/886/108 +f 677/887/113 679/888/113 681/889/113 +f 661/890/113 663/891/113 665/878/113 +f 672/892/108 666/893/108 668/894/108 +f 681/889/112 678/895/112 680/896/112 +f 680/896/108 674/897/108 676/898/108 +f 669/899/113 671/900/113 673/901/113 +f 673/901/112 670/902/112 672/892/112 +f 664/847/108 662/879/108 658/848/108 +f 622/850/109 623/855/109 625/851/109 +f 618/853/110 622/850/110 624/852/110 +f 623/855/111 619/903/111 621/856/111 +f 630/857/109 631/862/109 633/858/109 +f 626/860/110 630/857/110 632/859/110 +f 631/862/111 627/904/111 629/863/111 +f 638/864/109 639/869/109 641/865/109 +f 634/867/110 638/864/110 640/866/110 +f 639/869/111 635/905/111 637/870/111 +f 646/871/109 647/876/109 649/872/109 +f 642/874/110 646/871/110 648/873/110 +f 647/876/111 643/906/111 645/877/111 +f 665/878/112 663/891/112 662/879/112 +f 657/880/112 655/884/112 654/881/112 +f 653/883/113 651/907/113 655/884/113 +f 656/882/108 654/881/108 650/885/108 +f 677/887/113 675/908/113 679/888/113 +f 661/890/113 659/909/113 663/891/113 +f 672/892/108 670/902/108 666/893/108 +f 681/889/112 679/888/112 678/895/112 +f 680/896/108 678/895/108 674/897/108 +f 669/899/113 667/910/113 671/900/113 +f 673/901/112 671/900/112 670/902/112 +s 1 +f 482/911/114 471/912/114 474/913/114 +f 506/914/115 531/915/116 505/916/116 +f 519/917/117 480/918/118 478/919/117 +f 507/920/119 518/921/120 517/922/121 +f 510/923/122 514/924/123 513/925/122 +f 474/926/124 472/927/125 469/928/125 +f 469/928/125 473/929/126 468/930/126 +f 468/930/126 475/931/127 467/932/128 +f 467/932/128 476/933/129 466/934/130 +f 466/934/130 477/935/131 465/936/132 +f 464/937/133 478/938/134 463/939/135 +f 465/936/132 479/940/136 464/937/133 +f 463/939/135 480/941/137 462/942/138 +f 480/941/137 461/943/139 462/942/138 +f 490/944/109 489/945/109 481/946/109 +f 487/947/140 467/948/141 466/949/140 +f 484/950/142 474/951/143 469/952/142 +f 491/953/144 463/954/145 462/955/144 +f 488/956/115 466/949/140 465/957/115 +f 485/958/146 469/952/142 468/959/146 +f 483/960/147 462/955/144 461/961/147 +f 489/962/145 464/963/116 463/954/145 +f 486/964/141 468/959/146 467/948/141 +f 481/965/148 461/966/148 471/967/148 +f 464/963/116 488/956/115 465/957/115 +f 510/968/142 526/969/146 509/970/146 +f 577/971/116 558/972/116 578/973/116 +f 569/974/149 571/975/149 568/976/149 +f 499/977/109 556/978/109 498/979/109 +f 521/980/118 470/981/150 480/918/118 +f 504/982/145 532/983/144 503/984/144 +f 509/970/146 527/985/141 508/986/141 +f 512/987/114 523/988/114 515/989/114 +f 508/990/151 517/922/121 516/991/152 +f 502/992/153 521/993/154 503/994/155 +f 508/986/141 528/995/140 507/996/140 +f 505/916/116 530/997/145 504/982/145 +f 502/992/153 686/998/156 511/999/157 +f 502/1000/148 522/1001/148 512/1002/148 +f 576/1003/112 539/1004/112 538/1005/112 +f 503/984/144 524/1006/147 502/1007/147 +f 461/943/139 542/1008/158 471/1009/109 +f 534/1010/148 494/1011/148 549/1012/148 +f 514/1013/159 475/1014/160 473/1015/159 +f 546/1016/161 547/1017/161 493/1018/161 +f 517/1019/162 477/1020/163 476/1021/162 +f 543/1022/164 472/1023/165 685/1024/164 +f 504/1025/166 521/993/154 519/1026/167 +f 527/1027/112 526/1028/112 522/1029/112 +f 684/1030/148 685/1024/164 492/1031/148 +f 520/1032/114 478/919/117 479/1033/114 +f 520/1032/114 477/1020/163 518/1034/163 +f 684/1035/148 492/1036/148 545/1037/148 +f 536/1038/148 496/1039/148 553/1040/148 +f 554/1041/161 555/1042/161 497/1043/161 +f 558/972/161 559/1044/161 499/1045/161 +f 562/1046/161 563/1047/161 501/1048/161 +f 516/1049/160 476/1021/162 475/1014/160 +f 538/1050/148 498/1051/148 557/1052/148 +f 540/1053/148 500/1054/148 561/1055/148 +f 540/1056/116 499/1057/116 500/1058/116 +f 501/1059/109 560/1060/109 500/1061/109 +f 564/1062/168 533/1063/168 684/1064/168 +f 581/1065/149 583/1066/149 580/1067/149 +f 573/1068/149 575/1069/149 572/1070/149 +f 572/1070/112 537/1071/112 536/1072/112 +f 580/1067/112 541/1073/112 540/1074/112 +f 497/1075/109 552/1076/109 496/1077/109 +f 495/1078/109 548/1079/109 494/1080/109 +f 565/1081/169 567/1082/169 564/1062/169 +f 547/1083/170 545/1037/170 544/1084/170 +f 551/1085/171 549/1012/171 548/1079/171 +f 555/1086/171 553/1040/171 552/1076/171 +f 556/978/171 558/972/171 557/1052/171 +f 563/1087/171 561/1055/171 560/1060/171 +f 493/1088/172 544/1084/172 492/1089/172 +f 573/1068/116 554/1041/116 574/1090/116 +f 569/974/116 550/1091/116 570/1092/116 +f 565/1081/173 546/1016/173 566/1093/173 +f 550/1091/161 551/1094/161 495/1095/161 +f 686/1096/161 682/1097/161 542/1098/161 +f 617/1099/116 495/1100/116 616/1101/116 +f 576/1003/149 578/973/149 579/1102/149 +f 683/1103/116 501/1104/116 682/1105/116 +f 538/1106/116 497/1107/116 498/1108/116 +f 513/1109/165 473/1015/159 472/1023/165 +f 515/1110/174 513/925/122 543/1111/174 +f 534/1112/116 493/1113/116 494/1114/116 +f 509/1115/123 516/991/152 514/924/123 +f 505/1116/175 519/1026/167 520/1117/176 +f 507/996/140 529/1118/115 506/914/115 +f 506/1119/177 520/1117/176 518/921/120 +f 515/1120/143 525/1121/142 510/968/142 +f 568/976/112 535/1122/112 534/1123/112 +f 581/1065/116 562/1046/116 582/1124/116 +f 585/1125/178 593/1126/114 584/1127/114 +f 586/1128/161 592/1129/178 585/1125/178 +f 587/1130/141 594/1131/161 586/1128/161 +f 588/1132/116 595/1133/141 587/1130/141 +f 589/1134/179 596/1135/116 588/1132/116 +f 590/1136/148 597/1137/179 589/1134/179 +f 591/1138/160 598/1139/148 590/1140/148 +f 584/1127/114 599/1141/160 591/1138/160 +f 599/1142/109 593/1143/109 596/1144/109 +f 609/1145/114 601/1146/178 600/1147/114 +f 608/1148/178 602/1149/161 601/1146/178 +f 610/1150/161 603/1151/141 602/1149/161 +f 611/1152/141 604/1153/116 603/1151/141 +f 612/1154/116 605/1155/179 604/1153/116 +f 613/1156/179 606/1157/148 605/1155/179 +f 614/1158/148 607/1159/160 606/1160/148 +f 615/1161/160 600/1147/114 607/1159/160 +f 611/1162/112 610/1163/112 614/1164/112 +f 536/1165/116 616/1101/116 496/1166/116 +f 542/1167/180 492/1168/180 685/1169/180 +f 684/1170/181 686/1171/181 543/1172/181 +f 482/911/114 481/1173/114 471/912/114 +f 506/914/115 529/1118/115 531/915/116 +f 519/917/117 521/980/118 480/918/118 +f 507/920/119 506/1119/177 518/921/120 +f 510/923/122 509/1115/123 514/924/123 +f 474/926/124 685/1174/124 472/927/125 +f 469/928/125 472/927/125 473/929/126 +f 468/930/126 473/929/126 475/931/127 +f 467/932/128 475/931/127 476/933/129 +f 466/934/130 476/933/129 477/935/131 +f 464/937/133 479/940/136 478/938/134 +f 465/936/132 477/935/131 479/940/136 +f 463/939/135 478/938/134 480/941/137 +f 480/941/137 470/1175/182 461/943/139 +f 483/1176/109 481/946/109 491/1177/109 +f 481/946/109 482/1178/109 484/1179/109 +f 491/1177/109 481/946/109 489/945/109 +f 484/1179/109 485/1180/109 481/946/109 +f 485/1180/109 486/1181/109 481/946/109 +f 486/1181/109 487/1182/109 481/946/109 +f 487/1182/109 488/1183/109 481/946/109 +f 488/1183/109 490/944/109 481/946/109 +f 487/947/140 486/964/141 467/948/141 +f 484/950/142 482/1184/143 474/951/143 +f 491/953/144 489/962/145 463/954/145 +f 488/956/115 487/947/140 466/949/140 +f 485/958/146 484/950/142 469/952/142 +f 483/960/147 491/953/144 462/955/144 +f 489/962/145 490/1185/116 464/963/116 +f 486/964/141 485/958/146 468/959/146 +f 481/965/148 483/1186/148 461/966/148 +f 464/963/116 490/1185/116 488/956/115 +f 510/968/142 525/1121/142 526/969/146 +f 577/971/116 557/1052/116 558/972/116 +f 569/974/149 570/1092/149 571/975/149 +f 499/977/109 559/1187/109 556/978/109 +f 521/980/118 511/1188/150 470/981/150 +f 504/982/145 530/997/145 532/983/144 +f 509/970/146 526/969/146 527/985/141 +f 512/987/114 522/1189/114 523/988/114 +f 508/990/151 507/920/119 517/922/121 +f 502/992/153 511/999/157 521/993/154 +f 508/986/141 527/985/141 528/995/140 +f 505/916/116 531/915/116 530/997/145 +f 502/992/153 512/1190/112 686/998/156 +f 502/1000/148 524/1191/148 522/1001/148 +f 576/1003/112 579/1102/112 539/1004/112 +f 503/984/144 532/983/144 524/1006/147 +f 461/943/139 470/1175/182 542/1008/158 +f 548/1192/148 549/1012/148 494/1011/148 +f 549/1012/148 569/974/148 534/1010/148 +f 569/974/148 568/1193/148 534/1010/148 +f 514/1013/159 516/1049/160 475/1014/160 +f 493/1018/161 533/1194/161 566/1093/161 +f 533/1194/161 567/1195/161 566/1093/161 +f 566/1093/161 546/1016/161 493/1018/161 +f 517/1019/162 518/1034/163 477/1020/163 +f 543/1022/164 513/1109/165 472/1023/165 +f 504/1025/166 503/994/155 521/993/154 +f 523/1196/112 522/1029/112 525/1197/112 +f 522/1029/112 524/1198/112 532/1199/112 +f 525/1197/112 522/1029/112 526/1028/112 +f 532/1199/112 530/1200/112 522/1029/112 +f 530/1200/112 531/1201/112 522/1029/112 +f 531/1201/112 529/1202/112 522/1029/112 +f 529/1202/112 528/1203/112 522/1029/112 +f 528/1203/112 527/1027/112 522/1029/112 +f 684/1030/148 543/1022/164 685/1024/164 +f 520/1032/114 519/917/117 478/919/117 +f 520/1032/114 479/1033/114 477/1020/163 +f 544/1204/148 545/1037/148 492/1036/148 +f 545/1037/148 565/1081/148 684/1035/148 +f 565/1081/148 564/1205/148 684/1035/148 +f 552/1206/148 553/1040/148 496/1039/148 +f 553/1040/148 573/1068/148 536/1038/148 +f 573/1068/148 572/1207/148 536/1038/148 +f 497/1043/161 537/1208/161 574/1090/161 +f 537/1208/161 575/1209/161 574/1090/161 +f 574/1090/161 554/1041/161 497/1043/161 +f 499/1045/161 539/1210/161 578/973/161 +f 539/1210/161 579/1211/161 578/973/161 +f 578/973/161 558/972/161 499/1045/161 +f 501/1048/161 541/1212/161 582/1124/161 +f 541/1212/161 583/1213/161 582/1124/161 +f 582/1124/161 562/1046/161 501/1048/161 +f 516/1049/160 517/1019/162 476/1021/162 +f 556/1214/148 557/1052/148 498/1051/148 +f 557/1052/148 577/971/148 538/1050/148 +f 577/971/148 576/1215/148 538/1050/148 +f 560/1216/148 561/1055/148 500/1054/148 +f 561/1055/148 581/1065/148 540/1053/148 +f 581/1065/148 580/1217/148 540/1053/148 +f 540/1056/116 539/1218/116 499/1057/116 +f 501/1059/109 563/1087/109 560/1060/109 +f 564/1062/168 567/1082/168 533/1063/168 +f 581/1065/149 582/1124/149 583/1066/149 +f 573/1068/149 574/1090/149 575/1069/149 +f 572/1070/112 575/1069/112 537/1071/112 +f 580/1067/112 583/1066/112 541/1073/112 +f 497/1075/109 555/1086/109 552/1076/109 +f 495/1078/109 551/1085/109 548/1079/109 +f 565/1081/169 566/1093/169 567/1082/169 +f 547/1083/170 546/1016/170 545/1037/170 +f 551/1085/171 550/1091/171 549/1012/171 +f 555/1086/171 554/1041/171 553/1040/171 +f 556/978/171 559/1187/171 558/972/171 +f 563/1087/171 562/1046/171 561/1055/171 +f 493/1088/172 547/1083/172 544/1084/172 +f 573/1068/116 553/1040/116 554/1041/116 +f 569/974/116 549/1012/116 550/1091/116 +f 565/1081/173 545/1037/173 546/1016/173 +f 495/1095/161 535/1219/161 570/1092/161 +f 535/1219/161 571/1220/161 570/1092/161 +f 570/1092/161 550/1091/161 495/1095/161 +f 542/1098/161 470/981/161 511/1188/161 +f 686/1096/161 683/1221/161 682/1097/161 +f 542/1098/161 511/1188/161 686/1096/161 +f 617/1099/116 535/1222/116 495/1100/116 +f 576/1003/149 577/971/149 578/973/149 +f 683/1103/116 541/1223/116 501/1104/116 +f 538/1106/116 537/1224/116 497/1107/116 +f 513/1109/165 514/1013/159 473/1015/159 +f 515/1110/174 510/923/122 513/925/122 +f 534/1112/116 533/1225/116 493/1113/116 +f 509/1115/123 508/990/151 516/991/152 +f 505/1116/175 504/1025/166 519/1026/167 +f 507/996/140 528/995/140 529/1118/115 +f 506/1119/177 505/1116/175 520/1117/176 +f 515/1120/143 523/1226/143 525/1121/142 +f 568/976/112 571/975/112 535/1122/112 +f 581/1065/116 561/1055/116 562/1046/116 +f 585/1125/178 592/1129/178 593/1126/114 +f 586/1128/161 594/1131/161 592/1129/178 +f 587/1130/141 595/1133/141 594/1131/161 +f 588/1132/116 596/1135/116 595/1133/141 +f 589/1134/179 597/1137/179 596/1135/116 +f 590/1136/148 598/1227/148 597/1137/179 +f 591/1138/160 599/1141/160 598/1139/148 +f 584/1127/114 593/1126/114 599/1141/160 +f 593/1143/109 592/1228/109 596/1144/109 +f 592/1228/109 594/1229/109 596/1144/109 +f 594/1229/109 595/1230/109 596/1144/109 +f 596/1144/109 597/1231/109 598/1232/109 +f 598/1232/109 599/1142/109 596/1144/109 +f 609/1145/114 608/1148/178 601/1146/178 +f 608/1148/178 610/1150/161 602/1149/161 +f 610/1150/161 611/1152/141 603/1151/141 +f 611/1152/141 612/1154/116 604/1153/116 +f 612/1154/116 613/1156/179 605/1155/179 +f 613/1156/179 614/1233/148 606/1157/148 +f 614/1158/148 615/1161/160 607/1159/160 +f 615/1161/160 609/1145/114 600/1147/114 +f 610/1163/112 608/1234/112 614/1164/112 +f 608/1234/112 609/1235/112 614/1164/112 +f 609/1235/112 615/1236/112 614/1164/112 +f 614/1164/112 613/1237/112 612/1238/112 +f 612/1238/112 611/1162/112 614/1164/112 +f 536/1165/116 617/1099/116 616/1101/116 +f 542/1167/180 682/1239/180 492/1168/180 +f 684/1170/181 683/1240/181 686/1171/181 diff --git a/src/main/resources/assets/hbm/models/doors/secure_access_door.obj b/src/main/resources/assets/hbm/models/doors/secure_access_door.obj new file mode 100644 index 000000000..24c2c95b6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/secure_access_door.obj @@ -0,0 +1,4364 @@ +# Blender v2.92.0 OBJ File: 'secure_access_door.blend' +# www.blender.org +o door +v -2.340313 1.159684 0.125000 +v 2.340313 1.159684 0.125000 +v -2.500000 0.999997 0.125000 +v -2.500000 4.499997 0.125000 +v 2.500000 4.499997 0.125000 +v 2.500000 0.999997 0.125000 +v -2.340313 1.159684 0.045951 +v 2.340313 1.159684 0.045951 +v -2.340313 4.119773 0.125000 +v -2.119776 4.340310 0.125000 +v -2.496256 4.496253 0.125000 +v 2.119776 4.340310 0.125000 +v 2.340313 4.119773 0.125000 +v 2.496256 4.496253 0.125000 +v -2.119776 4.340310 0.045951 +v -2.340313 4.119773 0.045951 +v 2.340313 4.119773 0.045951 +v 2.119776 4.340310 0.045951 +v -2.500000 4.119773 0.125000 +v 2.500000 4.119773 0.125000 +v 2.500000 3.579181 0.125000 +v 2.500000 3.423868 0.125000 +v 2.500000 2.800531 0.125000 +v 2.500000 2.642630 0.125000 +v 2.500000 2.022151 0.125000 +v 2.500000 1.861122 0.125000 +v -2.340313 3.455513 0.125000 +v -2.340313 3.610826 0.125000 +v -2.340313 2.714197 0.125000 +v -2.340313 2.872098 0.125000 +v -2.340313 1.972611 0.125000 +v -2.340313 2.133640 0.125000 +v -2.340313 2.133400 0.045951 +v -2.340313 1.972851 0.045951 +v -2.340313 2.871974 0.045951 +v -2.340313 2.714321 0.045951 +v -2.340313 3.610798 0.045951 +v -2.340313 3.455542 0.045951 +v 2.340313 2.133640 0.125000 +v 2.340313 1.972611 0.125000 +v 2.340313 2.872098 0.125000 +v 2.340313 2.714197 0.125000 +v 2.340313 3.610826 0.125000 +v 2.340313 3.455513 0.125000 +v 2.340313 3.455542 0.045951 +v 2.340313 3.610798 0.045951 +v 2.340313 2.714321 0.045951 +v 2.340313 2.871974 0.045951 +v 2.340313 1.972851 0.045951 +v 2.340313 2.133400 0.045951 +v -2.500000 1.861122 0.125000 +v -2.500000 2.022151 0.125000 +v -2.500000 2.642630 0.125000 +v -2.500000 2.800531 0.125000 +v -2.500000 3.423868 0.125000 +v -2.500000 3.579181 0.125000 +v -2.340313 3.455542 0.072230 +v -2.340313 3.483067 0.099755 +v -2.340313 3.583273 0.099755 +v -2.340313 3.610798 0.072230 +v 2.340313 3.610798 0.072230 +v 2.340313 3.583273 0.099755 +v 2.340313 3.483067 0.099755 +v 2.340313 3.455542 0.072230 +v -2.340313 2.714321 0.072230 +v -2.340313 2.741846 0.099755 +v -2.340313 2.844450 0.099755 +v -2.340313 2.871974 0.072230 +v 2.340313 2.871974 0.072230 +v 2.340313 2.844450 0.099755 +v 2.340313 2.741846 0.099755 +v 2.340313 2.714321 0.072230 +v -2.340313 1.972851 0.072230 +v -2.340313 2.000376 0.099755 +v -2.340313 2.105875 0.099755 +v -2.340313 2.133400 0.072230 +v 2.340313 2.133400 0.072230 +v 2.340313 2.105875 0.099755 +v 2.340313 2.000376 0.099755 +v 2.340313 1.972851 0.072230 +v -1.212864 2.208840 0.074562 +v -1.212864 2.619229 0.074562 +v -1.243111 2.178593 0.033562 +v -1.243111 2.649477 0.033562 +v -0.802475 2.208840 0.074562 +v -0.802475 2.619229 0.074562 +v -0.772228 2.178593 0.033562 +v -0.772228 2.649477 0.033562 +v -1.243111 2.178593 0.074562 +v -1.243111 2.649477 0.074562 +v -0.772228 2.649477 0.074562 +v -0.772228 2.178593 0.074562 +v -1.212864 2.208840 0.054611 +v -1.212864 2.619229 0.054611 +v -0.802475 2.619229 0.054611 +v -0.802475 2.208840 0.054611 +v -0.204356 2.301647 0.091702 +v -0.204356 2.301647 0.020851 +v -0.204356 2.466216 0.020851 +v 0.204356 2.301647 0.091702 +v 0.204356 2.301647 0.020851 +v 0.204356 2.466216 0.020851 +v -0.204356 2.395251 0.091702 +v -0.204356 2.466216 0.055863 +v -0.204356 2.445431 0.081205 +v 0.204356 2.466216 0.055863 +v 0.204356 2.395251 0.091702 +v 0.204356 2.445431 0.081205 +v -2.500240 1.249014 0.129405 +v -2.500100 1.217400 0.147657 +v -2.499822 1.217400 0.184161 +v -2.499682 1.249014 0.202413 +v -2.499822 1.280628 0.184161 +v -2.500101 1.280628 0.147657 +v -1.553283 1.291650 0.190060 +v -2.111814 1.291690 0.190126 +v -2.112233 1.249014 0.116279 +v -1.553702 1.249014 0.116145 +v -1.553562 1.291690 0.140806 +v -2.112093 1.291650 0.140872 +v -1.546745 1.249014 0.128878 +v -2.119190 1.249014 0.129046 +v -2.119050 1.217400 0.147298 +v -1.546605 1.217400 0.147130 +v -2.118771 1.217400 0.183802 +v -1.546326 1.217400 0.183635 +v -2.118632 1.249014 0.202055 +v -1.546187 1.249014 0.201887 +v -2.118772 1.280628 0.183802 +v -1.546326 1.280628 0.183635 +v -2.119050 1.280628 0.147298 +v -1.546605 1.280628 0.147130 +v -2.111675 1.249014 0.214788 +v -1.553144 1.249014 0.214653 +v -2.111814 1.206339 0.190126 +v -1.553283 1.206378 0.190060 +v -2.112093 1.206378 0.140872 +v -1.553562 1.206339 0.140806 +v -2.111814 1.206378 0.083217 +v -2.111814 1.617254 0.083217 +v -2.111814 1.206378 0.043381 +v -2.111814 1.617254 0.043381 +v -1.553562 1.206378 0.083217 +v -1.553562 1.617254 0.083217 +v -1.553562 1.206378 0.043381 +v -1.553563 1.617254 0.043381 +v -2.111814 1.291650 0.083217 +v -2.111814 1.291650 0.043381 +v -1.553562 1.291650 0.043381 +v -1.553562 1.291650 0.083217 +v -2.111814 1.249014 0.043381 +v -2.111814 1.249014 0.083217 +v -1.553562 1.249014 0.043381 +v -1.553562 1.249014 0.083217 +v 2.500240 1.249014 0.129405 +v 2.500100 1.217400 0.147657 +v 2.499822 1.217400 0.184161 +v 2.499682 1.249014 0.202413 +v 2.499822 1.280628 0.184161 +v 2.500100 1.280628 0.147657 +v 1.553283 1.291650 0.190060 +v 2.111814 1.291690 0.190126 +v 2.112233 1.249014 0.116279 +v 1.553702 1.249014 0.116145 +v 1.553562 1.291690 0.140806 +v 2.112094 1.291650 0.140872 +v 1.546745 1.249014 0.128878 +v 2.119189 1.249014 0.129046 +v 2.119050 1.217400 0.147298 +v 1.546605 1.217400 0.147130 +v 2.118771 1.217400 0.183802 +v 1.546326 1.217400 0.183635 +v 2.118632 1.249014 0.202055 +v 1.546187 1.249014 0.201887 +v 2.118772 1.280628 0.183802 +v 1.546326 1.280628 0.183635 +v 2.119050 1.280628 0.147298 +v 1.546605 1.280628 0.147130 +v 2.111675 1.249014 0.214788 +v 1.553144 1.249014 0.214653 +v 2.111814 1.206339 0.190126 +v 1.553283 1.206378 0.190060 +v 2.112093 1.206378 0.140872 +v 1.553562 1.206339 0.140806 +v 2.111814 1.206378 0.083217 +v 2.111814 1.617254 0.083217 +v 2.111814 1.206378 0.043381 +v 2.111814 1.617254 0.043381 +v 1.553562 1.206378 0.083217 +v 1.553562 1.617254 0.083217 +v 1.553562 1.206378 0.043381 +v 1.553562 1.617254 0.043381 +v 2.111814 1.291650 0.083217 +v 2.111814 1.291650 0.043381 +v 1.553562 1.291650 0.043381 +v 1.553562 1.291650 0.083217 +v 2.111814 1.249014 0.043381 +v 2.111814 1.249014 0.083217 +v 1.553562 1.249014 0.043381 +v 1.553562 1.249014 0.083217 +v 1.168282 2.133092 0.117246 +v 1.168282 2.449447 0.117246 +v 1.116952 2.081763 0.040213 +v 1.116952 2.500776 0.040213 +v 1.964271 2.133092 0.117246 +v 1.964271 2.449447 0.117246 +v 2.015600 2.081763 0.040213 +v 2.015600 2.500776 0.040213 +v 1.116952 2.081763 0.117246 +v 1.116952 2.500776 0.117246 +v 2.015600 2.500776 0.117246 +v 2.015600 2.081763 0.117246 +v 1.657742 2.277558 0.065015 +v 1.657742 2.416211 0.065015 +v 1.916054 2.416211 0.065015 +v 1.916054 2.277558 0.065015 +v 1.220038 2.166149 0.036199 +v 1.220038 2.265817 0.036199 +v 1.319705 2.166149 0.036199 +v 1.319705 2.265817 0.036199 +v 1.269871 2.166149 0.115509 +v 1.220038 2.166149 0.065675 +v 1.234634 2.166149 0.100913 +v 1.220038 2.265817 0.065675 +v 1.234634 2.265817 0.100913 +v 1.319705 2.166149 0.065675 +v 1.305109 2.166149 0.100913 +v 1.269871 2.265817 0.115509 +v 1.319705 2.265817 0.065675 +v 1.305109 2.265817 0.100913 +v 1.293844 2.216693 0.042410 +v 1.293844 2.197116 0.053712 +v 1.293844 2.197116 0.076318 +v 1.293844 2.216693 0.087620 +v 1.293844 2.236270 0.076318 +v 1.293844 2.236270 0.053712 +v 1.715496 2.216693 0.042410 +v 1.715496 2.197116 0.053712 +v 1.715496 2.197116 0.076318 +v 1.715496 2.216693 0.087620 +v 1.715496 2.236270 0.076318 +v 1.715496 2.236270 0.053712 +v 1.916054 2.187559 0.048194 +v 1.916054 2.216693 0.031373 +v 1.715496 2.216693 0.031373 +v 1.916054 2.187559 0.081836 +v 1.916054 2.216693 0.098657 +v 1.916054 2.245828 0.081836 +v 1.916054 2.245828 0.048194 +v 1.715496 2.187559 0.048194 +v 1.715496 2.187559 0.081836 +v 1.715496 2.216693 0.098657 +v 1.715496 2.245828 0.081836 +v 1.715496 2.245828 0.048194 +v 1.168282 2.133092 0.065015 +v 1.168282 2.449447 0.065015 +v 1.964271 2.449447 0.065015 +v 1.964271 2.133092 0.065015 +v 1.659844 2.302833 0.046480 +v 1.659844 2.415082 0.046480 +v 1.913952 2.415082 0.046480 +v 1.913952 2.302833 0.046480 +v 1.683615 2.394066 0.030874 +v 1.715124 2.394066 0.030874 +v 1.683615 2.376265 0.011737 +v 1.715124 2.376265 0.011737 +v 1.683615 2.350791 0.017585 +v 1.715124 2.350791 0.017585 +v 1.683615 2.343119 0.042570 +v 1.715124 2.343119 0.042570 +v 1.683615 2.360920 0.061707 +v 1.715124 2.360920 0.061707 +v 1.683615 2.386394 0.055858 +v 1.715124 2.386394 0.055858 +v 1.683615 2.365368 0.062249 +v 1.683615 2.383127 0.059579 +v 1.715124 2.383127 0.059579 +v 1.715124 2.365368 0.062249 +v 1.683615 2.373156 0.074653 +v 1.683615 2.382544 0.071410 +v 1.715124 2.382544 0.071410 +v 1.715124 2.373156 0.074653 +v 1.740331 2.391644 0.058652 +v 1.771840 2.391644 0.058652 +v 1.740331 2.400436 0.034039 +v 1.771840 2.400436 0.034039 +v 1.740331 2.383517 0.014118 +v 1.771840 2.383517 0.014118 +v 1.740331 2.357806 0.018809 +v 1.771840 2.357806 0.018809 +v 1.740331 2.349013 0.043422 +v 1.771840 2.349013 0.043422 +v 1.740331 2.365932 0.063343 +v 1.771840 2.365932 0.063343 +v 1.740331 2.350579 0.047620 +v 1.740331 2.361125 0.062156 +v 1.771840 2.361125 0.062156 +v 1.771840 2.350579 0.047620 +v 1.740331 2.343153 0.060243 +v 1.740331 2.350354 0.067085 +v 1.771840 2.350354 0.067085 +v 1.771840 2.343153 0.060243 +v 1.797047 2.386932 0.021940 +v 1.828556 2.386932 0.021940 +v 1.797047 2.362782 0.011948 +v 1.828556 2.362782 0.011948 +v 1.797047 2.342053 0.027867 +v 1.828556 2.342053 0.027867 +v 1.797047 2.345475 0.053778 +v 1.828556 2.345475 0.053778 +v 1.797047 2.369626 0.063770 +v 1.828556 2.369626 0.063770 +v 1.797047 2.390355 0.047851 +v 1.828556 2.390355 0.047851 +v 1.797047 2.373896 0.062413 +v 1.797047 2.388932 0.052594 +v 1.828556 2.388932 0.052594 +v 1.828556 2.373896 0.062413 +v 1.797047 2.386139 0.070450 +v 1.797047 2.393326 0.063594 +v 1.828556 2.393326 0.063594 +v 1.828556 2.386139 0.070450 +v 1.853763 2.396732 0.045249 +v 1.885272 2.396732 0.045249 +v 1.853763 2.391602 0.019622 +v 1.885272 2.391602 0.019622 +v 1.853763 2.366842 0.011250 +v 1.885272 2.366842 0.011250 +v 1.853763 2.347213 0.028507 +v 1.885272 2.347213 0.028507 +v 1.853763 2.352343 0.054135 +v 1.885272 2.352343 0.054135 +v 1.853763 2.377102 0.062506 +v 1.885272 2.377102 0.062506 +v 1.853763 2.355846 0.056928 +v 1.853763 2.372370 0.063962 +v 1.885272 2.372370 0.063962 +v 1.885272 2.355846 0.056928 +v 1.853763 2.355977 0.071573 +v 1.853763 2.365673 0.073732 +v 1.885272 2.365673 0.073732 +v 1.885272 2.355977 0.071573 +v -2.340313 1.159684 -0.125000 +v 2.340313 1.159684 -0.125000 +v -2.500000 0.999997 -0.125000 +v -2.500000 4.499997 -0.125000 +v 2.500000 4.499997 -0.125000 +v 2.500000 0.999997 -0.125000 +v -2.340313 1.159684 -0.045951 +v 2.340313 1.159684 -0.045951 +v -2.340313 4.119773 -0.125000 +v -2.119776 4.340310 -0.125000 +v -2.496256 4.496253 -0.125000 +v 2.119776 4.340310 -0.125000 +v 2.340313 4.119773 -0.125000 +v 2.496256 4.496253 -0.125000 +v -2.119776 4.340310 -0.045951 +v -2.340313 4.119773 -0.045951 +v 2.340313 4.119773 -0.045951 +v 2.119776 4.340310 -0.045951 +v -2.500000 4.119773 -0.125000 +v 2.500000 4.119773 -0.125000 +v 2.500000 3.579181 -0.125000 +v 2.500000 3.423868 -0.125000 +v 2.500000 2.800531 -0.125000 +v 2.500000 2.642630 -0.125000 +v 2.500000 2.022151 -0.125000 +v 2.500000 1.861122 -0.125000 +v -2.340313 3.455513 -0.125000 +v -2.340313 3.610826 -0.125000 +v -2.340313 2.714197 -0.125000 +v -2.340313 2.872098 -0.125000 +v -2.340313 1.972611 -0.125000 +v -2.340313 2.133640 -0.125000 +v -2.340313 2.133400 -0.045951 +v -2.340313 1.972851 -0.045951 +v -2.340313 2.871974 -0.045951 +v -2.340313 2.714321 -0.045951 +v -2.340313 3.610798 -0.045951 +v -2.340313 3.455542 -0.045951 +v 2.340313 2.133640 -0.125000 +v 2.340313 1.972611 -0.125000 +v 2.340313 2.872098 -0.125000 +v 2.340313 2.714197 -0.125000 +v 2.340313 3.610826 -0.125000 +v 2.340313 3.455513 -0.125000 +v 2.340313 3.455542 -0.045951 +v 2.340313 3.610798 -0.045951 +v 2.340313 2.714321 -0.045951 +v 2.340313 2.871974 -0.045951 +v 2.340313 1.972851 -0.045951 +v 2.340313 2.133400 -0.045951 +v -2.500000 1.861122 -0.125000 +v -2.500000 2.022151 -0.125000 +v -2.500000 2.642630 -0.125000 +v -2.500000 2.800531 -0.125000 +v -2.500000 3.423868 -0.125000 +v -2.500000 3.579181 -0.125000 +v -2.340313 3.455542 -0.072230 +v -2.340313 3.483067 -0.099755 +v -2.340313 3.583273 -0.099755 +v -2.340313 3.610798 -0.072230 +v 2.340313 3.610798 -0.072230 +v 2.340313 3.583273 -0.099755 +v 2.340313 3.483067 -0.099755 +v 2.340313 3.455542 -0.072230 +v -2.340313 2.714321 -0.072230 +v -2.340313 2.741846 -0.099755 +v -2.340313 2.844450 -0.099755 +v -2.340313 2.871974 -0.072230 +v 2.340313 2.871974 -0.072230 +v 2.340313 2.844450 -0.099755 +v 2.340313 2.741846 -0.099755 +v 2.340313 2.714321 -0.072230 +v -2.340313 1.972851 -0.072230 +v -2.340313 2.000376 -0.099755 +v -2.340313 2.105875 -0.099755 +v -2.340313 2.133400 -0.072230 +v 2.340313 2.133400 -0.072230 +v 2.340313 2.105875 -0.099755 +v 2.340313 2.000376 -0.099755 +v 2.340313 1.972851 -0.072230 +v -1.212864 2.208840 -0.074562 +v -1.212864 2.619229 -0.074562 +v -1.243111 2.178593 -0.033562 +v -1.243111 2.649477 -0.033562 +v -0.802475 2.208840 -0.074562 +v -0.802475 2.619229 -0.074562 +v -0.772228 2.178593 -0.033562 +v -0.772228 2.649477 -0.033562 +v -1.243111 2.178593 -0.074562 +v -1.243111 2.649477 -0.074562 +v -0.772228 2.649477 -0.074562 +v -0.772228 2.178593 -0.074562 +v -1.212864 2.208840 -0.054611 +v -1.212864 2.619229 -0.054611 +v -0.802475 2.619229 -0.054611 +v -0.802475 2.208840 -0.054611 +v -0.204356 2.301647 -0.091702 +v -0.204356 2.301647 -0.020851 +v -0.204356 2.466216 -0.020851 +v 0.204356 2.301647 -0.091702 +v 0.204356 2.301647 -0.020851 +v 0.204356 2.466216 -0.020851 +v -0.204356 2.395251 -0.091702 +v -0.204356 2.466216 -0.055863 +v -0.204356 2.445431 -0.081205 +v 0.204356 2.466216 -0.055863 +v 0.204356 2.395251 -0.091702 +v 0.204356 2.445431 -0.081205 +v -2.500240 1.249014 -0.129405 +v -2.500100 1.217400 -0.147657 +v -2.499822 1.217400 -0.184161 +v -2.499682 1.249014 -0.202413 +v -2.499822 1.280628 -0.184161 +v -2.500101 1.280628 -0.147657 +v -1.553283 1.291650 -0.190060 +v -2.111814 1.291690 -0.190126 +v -2.112233 1.249014 -0.116279 +v -1.553702 1.249014 -0.116145 +v -1.553562 1.291690 -0.140806 +v -2.112093 1.291650 -0.140872 +v -1.546745 1.249014 -0.128878 +v -2.119190 1.249014 -0.129046 +v -2.119050 1.217400 -0.147298 +v -1.546605 1.217400 -0.147130 +v -2.118771 1.217400 -0.183802 +v -1.546326 1.217400 -0.183635 +v -2.118632 1.249014 -0.202055 +v -1.546187 1.249014 -0.201887 +v -2.118772 1.280628 -0.183802 +v -1.546326 1.280628 -0.183635 +v -2.119050 1.280628 -0.147298 +v -1.546605 1.280628 -0.147130 +v -2.111675 1.249014 -0.214788 +v -1.553144 1.249014 -0.214653 +v -2.111814 1.206339 -0.190126 +v -1.553283 1.206378 -0.190060 +v -2.112093 1.206378 -0.140872 +v -1.553562 1.206339 -0.140806 +v -2.111814 1.206378 -0.083217 +v -2.111814 1.617254 -0.083217 +v -2.111814 1.206378 -0.043381 +v -2.111814 1.617254 -0.043381 +v -1.553562 1.206378 -0.083217 +v -1.553562 1.617254 -0.083217 +v -1.553562 1.206378 -0.043381 +v -1.553563 1.617254 -0.043381 +v -2.111814 1.291650 -0.083217 +v -2.111814 1.291650 -0.043381 +v -1.553562 1.291650 -0.043381 +v -1.553562 1.291650 -0.083217 +v -2.111814 1.249014 -0.043381 +v -2.111814 1.249014 -0.083217 +v -1.553562 1.249014 -0.043381 +v -1.553562 1.249014 -0.083217 +v 2.500240 1.249014 -0.129405 +v 2.500100 1.217400 -0.147657 +v 2.499822 1.217400 -0.184161 +v 2.499682 1.249014 -0.202413 +v 2.499822 1.280628 -0.184161 +v 2.500100 1.280628 -0.147657 +v 1.553283 1.291650 -0.190060 +v 2.111814 1.291690 -0.190126 +v 2.112233 1.249014 -0.116279 +v 1.553702 1.249014 -0.116145 +v 1.553562 1.291690 -0.140806 +v 2.112094 1.291650 -0.140872 +v 1.546745 1.249014 -0.128878 +v 2.119189 1.249014 -0.129046 +v 2.119050 1.217400 -0.147298 +v 1.546605 1.217400 -0.147130 +v 2.118771 1.217400 -0.183802 +v 1.546326 1.217400 -0.183635 +v 2.118632 1.249014 -0.202055 +v 1.546187 1.249014 -0.201887 +v 2.118772 1.280628 -0.183802 +v 1.546326 1.280628 -0.183635 +v 2.119050 1.280628 -0.147298 +v 1.546605 1.280628 -0.147130 +v 2.111675 1.249014 -0.214788 +v 1.553144 1.249014 -0.214653 +v 2.111814 1.206339 -0.190126 +v 1.553283 1.206378 -0.190060 +v 2.112093 1.206378 -0.140872 +v 1.553562 1.206339 -0.140806 +v 2.111814 1.206378 -0.083217 +v 2.111814 1.617254 -0.083217 +v 2.111814 1.206378 -0.043381 +v 2.111814 1.617254 -0.043381 +v 1.553562 1.206378 -0.083217 +v 1.553562 1.617254 -0.083217 +v 1.553562 1.206378 -0.043381 +v 1.553562 1.617254 -0.043381 +v 2.111814 1.291650 -0.083217 +v 2.111814 1.291650 -0.043381 +v 1.553562 1.291650 -0.043381 +v 1.553562 1.291650 -0.083217 +v 2.111814 1.249014 -0.043381 +v 2.111814 1.249014 -0.083217 +v 1.553562 1.249014 -0.043381 +v 1.553562 1.249014 -0.083217 +v 1.168282 2.133092 -0.117246 +v 1.168282 2.449447 -0.117246 +v 1.116952 2.081763 -0.040213 +v 1.116952 2.500776 -0.040213 +v 1.964271 2.133092 -0.117246 +v 1.964271 2.449447 -0.117246 +v 2.015600 2.081763 -0.040213 +v 2.015600 2.500776 -0.040213 +v 1.116952 2.081763 -0.117246 +v 1.116952 2.500776 -0.117246 +v 2.015600 2.500776 -0.117246 +v 2.015600 2.081763 -0.117246 +v 1.657742 2.277558 -0.065015 +v 1.657742 2.416211 -0.065015 +v 1.916054 2.416211 -0.065015 +v 1.916054 2.277558 -0.065015 +v 1.220038 2.166149 -0.036199 +v 1.220038 2.265817 -0.036199 +v 1.319705 2.166149 -0.036199 +v 1.319705 2.265817 -0.036199 +v 1.269871 2.166149 -0.115509 +v 1.220038 2.166149 -0.065675 +v 1.234634 2.166149 -0.100913 +v 1.220038 2.265817 -0.065675 +v 1.234634 2.265817 -0.100913 +v 1.319705 2.166149 -0.065675 +v 1.305109 2.166149 -0.100913 +v 1.269871 2.265817 -0.115509 +v 1.319705 2.265817 -0.065675 +v 1.305109 2.265817 -0.100913 +v 1.293844 2.216693 -0.042410 +v 1.293844 2.197116 -0.053712 +v 1.293844 2.197116 -0.076318 +v 1.293844 2.216693 -0.087620 +v 1.293844 2.236270 -0.076318 +v 1.293844 2.236270 -0.053712 +v 1.715496 2.216693 -0.042410 +v 1.715496 2.197116 -0.053712 +v 1.715496 2.197116 -0.076318 +v 1.715496 2.216693 -0.087620 +v 1.715496 2.236270 -0.076318 +v 1.715496 2.236270 -0.053712 +v 1.916054 2.187559 -0.048194 +v 1.916054 2.216693 -0.031373 +v 1.715496 2.216693 -0.031373 +v 1.916054 2.187559 -0.081836 +v 1.916054 2.216693 -0.098657 +v 1.916054 2.245828 -0.081836 +v 1.916054 2.245828 -0.048194 +v 1.715496 2.187559 -0.048194 +v 1.715496 2.187559 -0.081836 +v 1.715496 2.216693 -0.098657 +v 1.715496 2.245828 -0.081836 +v 1.715496 2.245828 -0.048194 +v 1.168282 2.133092 -0.065015 +v 1.168282 2.449447 -0.065015 +v 1.964271 2.449447 -0.065015 +v 1.964271 2.133092 -0.065015 +v 1.659844 2.302833 -0.046480 +v 1.659844 2.415082 -0.046480 +v 1.913952 2.415082 -0.046480 +v 1.913952 2.302833 -0.046480 +v 1.683615 2.394066 -0.030874 +v 1.715124 2.394066 -0.030874 +v 1.683615 2.376265 -0.011737 +v 1.715124 2.376265 -0.011737 +v 1.683615 2.350791 -0.017585 +v 1.715124 2.350791 -0.017585 +v 1.683615 2.343119 -0.042570 +v 1.715124 2.343119 -0.042570 +v 1.683615 2.360920 -0.061707 +v 1.715124 2.360920 -0.061707 +v 1.683615 2.386394 -0.055858 +v 1.715124 2.386394 -0.055858 +v 1.683615 2.365368 -0.062249 +v 1.683615 2.383127 -0.059579 +v 1.715124 2.383127 -0.059579 +v 1.715124 2.365368 -0.062249 +v 1.683615 2.373156 -0.074653 +v 1.683615 2.382544 -0.071410 +v 1.715124 2.382544 -0.071410 +v 1.715124 2.373156 -0.074653 +v 1.740331 2.391644 -0.058652 +v 1.771840 2.391644 -0.058652 +v 1.740331 2.400436 -0.034039 +v 1.771840 2.400436 -0.034039 +v 1.740331 2.383517 -0.014118 +v 1.771840 2.383517 -0.014118 +v 1.740331 2.357806 -0.018809 +v 1.771840 2.357806 -0.018809 +v 1.740331 2.349013 -0.043422 +v 1.771840 2.349013 -0.043422 +v 1.740331 2.365932 -0.063343 +v 1.771840 2.365932 -0.063343 +v 1.740331 2.350579 -0.047620 +v 1.740331 2.361125 -0.062156 +v 1.771840 2.361125 -0.062156 +v 1.771840 2.350579 -0.047620 +v 1.740331 2.343153 -0.060243 +v 1.740331 2.350354 -0.067085 +v 1.771840 2.350354 -0.067085 +v 1.771840 2.343153 -0.060243 +v 1.797047 2.386932 -0.021940 +v 1.828556 2.386932 -0.021940 +v 1.797047 2.362782 -0.011948 +v 1.828556 2.362782 -0.011948 +v 1.797047 2.342053 -0.027867 +v 1.828556 2.342053 -0.027867 +v 1.797047 2.345475 -0.053778 +v 1.828556 2.345475 -0.053778 +v 1.797047 2.369626 -0.063770 +v 1.828556 2.369626 -0.063770 +v 1.797047 2.390355 -0.047851 +v 1.828556 2.390355 -0.047851 +v 1.797047 2.373896 -0.062413 +v 1.797047 2.388932 -0.052594 +v 1.828556 2.388932 -0.052594 +v 1.828556 2.373896 -0.062413 +v 1.797047 2.386139 -0.070450 +v 1.797047 2.393326 -0.063594 +v 1.828556 2.393326 -0.063594 +v 1.828556 2.386139 -0.070450 +v 1.853763 2.396732 -0.045249 +v 1.885272 2.396732 -0.045249 +v 1.853763 2.391602 -0.019622 +v 1.885272 2.391602 -0.019622 +v 1.853763 2.366842 -0.011250 +v 1.885272 2.366842 -0.011250 +v 1.853763 2.347213 -0.028507 +v 1.885272 2.347213 -0.028507 +v 1.853763 2.352343 -0.054135 +v 1.885272 2.352343 -0.054135 +v 1.853763 2.377102 -0.062506 +v 1.885272 2.377102 -0.062506 +v 1.853763 2.355846 -0.056928 +v 1.853763 2.372370 -0.063962 +v 1.885272 2.372370 -0.063962 +v 1.885272 2.355846 -0.056928 +v 1.853763 2.355977 -0.071573 +v 1.853763 2.365673 -0.073732 +v 1.885272 2.365673 -0.073732 +v 1.885272 2.355977 -0.071573 +v -2.163461 0.999997 0.125000 +v -1.682692 0.999997 0.125000 +v -1.394231 0.999997 0.125000 +v -0.913461 0.999997 0.125000 +v -0.625000 0.999997 0.125000 +v -0.144231 0.999997 0.125000 +v 0.144231 0.999997 0.125000 +v 0.625000 0.999997 0.125000 +v 0.913462 0.999997 0.125000 +v 1.394231 0.999997 0.125000 +v 1.682693 0.999997 0.125000 +v 2.163461 0.999997 0.125000 +v -2.163461 0.999997 -0.125000 +v -1.682692 0.999997 -0.125000 +v -1.394231 0.999997 -0.125000 +v -0.913461 0.999997 -0.125000 +v -0.625000 0.999997 -0.125000 +v -0.144231 0.999997 -0.125000 +v 0.144231 0.999997 -0.125000 +v 0.625000 0.999997 -0.125000 +v 0.913462 0.999997 -0.125000 +v 1.394231 0.999997 -0.125000 +v 1.682693 0.999997 -0.125000 +v 2.163461 0.999997 -0.125000 +v -2.043269 0.874997 0.093750 +v -1.802885 0.874997 0.093750 +v -1.274038 0.874997 0.093750 +v -1.033654 0.874997 0.093750 +v -0.504808 0.874997 0.093750 +v -0.264423 0.874997 0.093750 +v 0.264423 0.874997 0.093750 +v 0.504808 0.874997 0.093750 +v 1.033654 0.874997 0.093750 +v 1.274039 0.874997 0.093750 +v 1.802885 0.874997 0.093750 +v 2.043269 0.874997 0.093750 +v -2.043269 0.874997 -0.093750 +v -1.802885 0.874997 -0.093750 +v -1.274038 0.874997 -0.093750 +v -1.033654 0.874997 -0.093750 +v -0.504808 0.874997 -0.093750 +v -0.264423 0.874997 -0.093750 +v 0.264423 0.874997 -0.093750 +v 0.504808 0.874997 -0.093750 +v 1.033654 0.874997 -0.093750 +v 1.274039 0.874997 -0.093750 +v 1.802885 0.874997 -0.093750 +v 2.043269 0.874997 -0.093750 +vt 0.733844 0.172974 +vt 0.709510 0.205732 +vt 0.709510 0.172974 +vt 0.831397 0.355292 +vt 0.877231 0.351301 +vt 0.877231 0.355292 +vt 0.492430 0.004449 +vt 0.468095 0.041459 +vt 0.468095 0.004449 +vt 0.425092 0.452798 +vt 0.004556 0.460138 +vt 0.004507 0.452797 +vt 0.675567 0.125895 +vt 0.691111 0.072187 +vt 0.691111 0.132861 +vt 0.675567 0.141265 +vt 0.004877 0.575079 +vt 0.425404 0.567739 +vt 0.425462 0.575079 +vt 0.535486 0.503659 +vt 0.543181 0.473300 +vt 0.543181 0.503659 +vt 0.700410 0.955730 +vt 0.700410 0.473300 +vt 0.715817 0.509987 +vt 0.788978 0.083578 +vt 0.781284 0.004449 +vt 0.788979 0.004449 +vt 0.004663 0.484298 +vt 0.425191 0.476959 +vt 0.425248 0.484299 +vt 0.840564 0.127662 +vt 0.861856 0.110783 +vt 0.864898 0.127662 +vt 0.701335 0.954904 +vt 0.740980 0.954293 +vt 0.616380 0.658755 +vt 0.632175 0.489094 +vt 0.616380 0.706311 +vt 0.004606 0.476958 +vt 0.425141 0.469618 +vt 0.772385 0.227922 +vt 0.764691 0.243037 +vt 0.764691 0.227920 +vt 0.004984 0.651201 +vt 0.425568 0.642197 +vt 0.425569 0.651201 +vt 0.602240 0.186675 +vt 0.617784 0.240383 +vt 0.602240 0.243463 +vt 0.005091 0.665882 +vt 0.425618 0.658542 +vt 0.425676 0.665882 +vt 0.691111 0.208626 +vt 0.675567 0.213449 +vt 0.675567 0.197774 +vt 0.602240 0.171305 +vt 0.617784 0.179709 +vt 0.675567 0.292577 +vt 0.691111 0.224301 +vt 0.691111 0.308120 +vt 0.691111 0.057069 +vt 0.675567 0.069107 +vt 0.675567 0.053989 +vt 0.425462 0.627517 +vt 0.764691 0.099252 +vt 0.772385 0.155774 +vt 0.764691 0.155762 +vt 0.781284 0.243034 +vt 0.788979 0.227919 +vt 0.788979 0.243037 +vt 0.602240 0.114795 +vt 0.617784 0.164339 +vt 0.004770 0.560398 +vt 0.425355 0.551180 +vt 0.425355 0.560399 +vt 0.715817 0.919044 +vt 0.739687 0.938221 +vt 0.535487 0.946694 +vt 0.543181 0.916338 +vt 0.543181 0.946694 +vt 0.764691 0.083578 +vt 0.772385 0.004449 +vt 0.772385 0.083601 +vt 0.834341 0.348357 +vt 0.831397 0.305467 +vt 0.834341 0.308411 +vt 0.781284 0.292577 +vt 0.877231 0.301476 +vt 0.877231 0.305466 +vt 0.425305 0.543839 +vt 0.004770 0.551178 +vt 0.004720 0.543838 +vt 0.005033 0.658542 +vt 0.923079 0.004449 +vt 0.883297 0.011346 +vt 0.883297 0.004449 +vt 0.788978 0.099252 +vt 0.781284 0.155774 +vt 0.781284 0.099228 +vt 0.764691 0.171132 +vt 0.425248 0.536499 +vt 0.004663 0.536498 +vt 0.617784 0.255500 +vt 0.602240 0.258581 +vt 0.788978 0.171131 +vt 0.781284 0.227922 +vt 0.781284 0.171119 +vt 0.827406 0.305467 +vt 0.831397 0.351301 +vt 0.827406 0.351301 +vt 0.004819 0.567739 +vt 0.585191 0.188500 +vt 0.588744 0.151434 +vt 0.588744 0.188524 +vt 0.408813 0.843186 +vt 0.410755 0.883132 +vt 0.408813 0.883132 +vt 0.874287 0.308411 +vt 0.883297 0.028637 +vt 0.923079 0.025447 +vt 0.923079 0.028637 +vt 0.450701 0.841244 +vt 0.410755 0.843186 +vt 0.410755 0.841244 +vt 0.592297 0.151445 +vt 0.592297 0.188536 +vt 0.410755 0.885074 +vt 0.450701 0.883132 +vt 0.450701 0.885074 +vt 0.452643 0.883132 +vt 0.450701 0.843186 +vt 0.452643 0.843186 +vt 0.881222 0.351301 +vt 0.881222 0.305467 +vt 0.883297 0.032045 +vt 0.923079 0.032045 +vt 0.004934 0.634857 +vt 0.004877 0.627516 +vt 0.922971 0.338452 +vt 0.922971 0.354471 +vt 0.916075 0.345360 +vt 0.578084 0.151410 +vt 0.581638 0.188488 +vt 0.578084 0.188500 +vt 0.874287 0.348357 +vt 0.883297 0.025447 +vt 0.923079 0.020457 +vt 0.585191 0.151410 +vt 0.513586 0.921476 +vt 0.512564 0.917257 +vt 0.515067 0.921475 +vt 0.462309 0.358295 +vt 0.463331 0.362557 +vt 0.460816 0.358296 +vt 0.570978 0.151445 +vt 0.574531 0.188524 +vt 0.570978 0.188536 +vt 0.923079 0.011346 +vt 0.927292 0.271964 +vt 0.930370 0.273741 +vt 0.930370 0.277294 +vt 0.574531 0.151434 +vt 0.921295 0.150557 +vt 0.920274 0.145672 +vt 0.927170 0.152580 +vt 0.508461 0.924433 +vt 0.505315 0.921496 +vt 0.506735 0.921496 +vt 0.464029 0.361267 +vt 0.468237 0.362487 +vt 0.067792 0.891333 +vt 0.122132 0.896120 +vt 0.067766 0.896127 +vt 0.463324 0.354029 +vt 0.464030 0.355315 +vt 0.467486 0.355305 +vt 0.470666 0.358271 +vt 0.469231 0.358271 +vt 0.511881 0.918527 +vt 0.507722 0.917326 +vt 0.511878 0.924431 +vt 0.507718 0.925667 +vt 0.067792 0.910503 +vt 0.122132 0.905715 +vt 0.122158 0.910510 +vt 0.122119 0.900918 +vt 0.067753 0.900918 +vt 0.508468 0.918556 +vt 0.467482 0.361242 +vt 0.522312 0.925727 +vt 0.518340 0.921474 +vt 0.522312 0.921471 +vt 0.866635 0.260833 +vt 0.834941 0.206494 +vt 0.866635 0.206494 +vt 0.518336 0.925725 +vt 0.512568 0.925698 +vt 0.831064 0.260833 +vt 0.834941 0.260833 +vt 0.122129 0.919999 +vt 0.067791 0.916109 +vt 0.122130 0.916122 +vt 0.468237 0.354057 +vt 0.473941 0.354062 +vt 0.477869 0.358271 +vt 0.473937 0.358271 +vt 0.518612 0.353039 +vt 0.522932 0.105485 +vt 0.522933 0.353081 +vt 0.477872 0.362476 +vt 0.473942 0.362479 +vt 0.501328 0.352990 +vt 0.505650 0.105402 +vt 0.505650 0.352998 +vt 0.518331 0.917223 +vt 0.527254 0.105493 +vt 0.527254 0.353122 +vt 0.586021 0.300510 +vt 0.589098 0.302286 +vt 0.586021 0.307616 +vt 0.067766 0.905709 +vt 0.522306 0.917217 +vt 0.920423 0.058711 +vt 0.883344 0.062264 +vt 0.883332 0.058711 +vt 0.514292 0.352998 +vt 0.518611 0.105494 +vt 0.834941 0.264711 +vt 0.866635 0.264711 +vt 0.866635 0.202617 +vt 0.920399 0.048051 +vt 0.883332 0.044498 +vt 0.920423 0.044498 +vt 0.122130 0.885714 +vt 0.122158 0.891326 +vt 0.920387 0.051604 +vt 0.883309 0.048051 +vt 0.883309 0.055157 +vt 0.883297 0.051604 +vt 0.911809 0.919556 +vt 0.910787 0.923775 +vt 0.910104 0.922505 +vt 0.903538 0.919536 +vt 0.906684 0.916599 +vt 0.904958 0.919536 +vt 0.408852 0.903469 +vt 0.463192 0.908257 +vt 0.408826 0.908263 +vt 0.920399 0.055157 +vt 0.008327 0.841244 +vt 0.004449 0.872938 +vt 0.004449 0.841244 +vt 0.066543 0.841244 +vt 0.062666 0.872938 +vt 0.062666 0.841244 +vt 0.906691 0.922476 +vt 0.883344 0.040944 +vt 0.920435 0.040944 +vt 0.509971 0.105445 +vt 0.509971 0.352990 +vt 0.463179 0.913054 +vt 0.408826 0.917845 +vt 0.408813 0.913054 +vt 0.892629 0.346980 +vt 0.891613 0.342714 +vt 0.893335 0.345694 +vt 0.008327 0.872938 +vt 0.062666 0.876815 +vt 0.008327 0.876815 +vt 0.463192 0.917852 +vt 0.408852 0.922640 +vt 0.893333 0.339742 +vt 0.897541 0.338522 +vt 0.896787 0.339767 +vt 0.913289 0.919557 +vt 0.916559 0.915307 +vt 0.916563 0.919558 +vt 0.899971 0.342738 +vt 0.898536 0.342738 +vt 0.905941 0.915366 +vt 0.910101 0.916602 +vt 0.903246 0.346947 +vt 0.897541 0.346952 +vt 0.907176 0.338533 +vt 0.903242 0.342738 +vt 0.903247 0.338530 +vt 0.916554 0.923810 +vt 0.910791 0.915335 +vt 0.892636 0.338452 +vt 0.478497 0.827980 +vt 0.509290 0.822896 +vt 0.509290 0.827980 +vt 0.463190 0.897851 +vt 0.463218 0.903463 +vt 0.463190 0.928258 +vt 0.463218 0.922646 +vt 0.434574 0.581710 +vt 0.442073 0.669182 +vt 0.434574 0.669182 +vt 0.896791 0.345704 +vt 0.920535 0.919561 +vt 0.920529 0.923815 +vt 0.490356 0.669182 +vt 0.482858 0.581710 +vt 0.490356 0.581710 +vt 0.477862 0.664186 +vt 0.447069 0.664186 +vt 0.920535 0.915306 +vt 0.907174 0.342738 +vt 0.442073 0.581710 +vt 0.482858 0.574212 +vt 0.442073 0.676680 +vt 0.482858 0.669182 +vt 0.482858 0.676680 +vt 0.514374 0.822896 +vt 0.509290 0.745417 +vt 0.514374 0.745417 +vt 0.905945 0.923706 +vt 0.473413 0.745417 +vt 0.478497 0.822896 +vt 0.473413 0.822896 +vt 0.447069 0.586706 +vt 0.477862 0.586706 +vt 0.509290 0.740332 +vt 0.478497 0.745417 +vt 0.478497 0.740332 +vt 0.931635 0.319515 +vt 0.933055 0.322945 +vt 0.923354 0.322945 +vt 0.571259 0.354466 +vt 0.572701 0.353479 +vt 0.573181 0.353528 +vt 0.848783 0.273609 +vt 0.851652 0.283311 +vt 0.848783 0.283311 +vt 0.845071 0.273609 +vt 0.845071 0.283311 +vt 0.931635 0.302896 +vt 0.933055 0.306326 +vt 0.923354 0.306326 +vt 0.831064 0.273609 +vt 0.833933 0.283311 +vt 0.831064 0.283311 +vt 0.572675 0.234699 +vt 0.583711 0.236515 +vt 0.572785 0.236515 +vt 0.754611 0.249901 +vt 0.755542 0.247164 +vt 0.755542 0.250438 +vt 0.514291 0.105486 +vt 0.408850 0.893986 +vt 0.463189 0.893973 +vt 0.841358 0.283311 +vt 0.837645 0.273609 +vt 0.841358 0.273609 +vt 0.602115 0.557117 +vt 0.605182 0.556635 +vt 0.605182 0.557117 +vt 0.602115 0.559237 +vt 0.605182 0.558270 +vt 0.605182 0.559237 +vt 0.273168 0.912975 +vt 0.314210 0.910774 +vt 0.314210 0.912975 +vt 0.603839 0.597606 +vt 0.602129 0.598020 +vt 0.602396 0.596619 +vt 0.837645 0.283311 +vt 0.833933 0.273609 +vt 0.602115 0.593742 +vt 0.604318 0.592470 +vt 0.602115 0.568731 +vt 0.605182 0.566187 +vt 0.605182 0.568731 +vt 0.602115 0.501927 +vt 0.605182 0.499383 +vt 0.605182 0.501927 +vt 0.602115 0.556635 +vt 0.605182 0.554091 +vt 0.602115 0.563643 +vt 0.605182 0.561099 +vt 0.605182 0.563643 +vt 0.602115 0.560663 +vt 0.605182 0.560663 +vt 0.752706 0.252075 +vt 0.752706 0.251001 +vt 0.750800 0.247701 +vt 0.749870 0.250438 +vt 0.749870 0.247164 +vt 0.273168 0.910774 +vt 0.314210 0.908574 +vt 0.752706 0.245526 +vt 0.752706 0.246601 +vt 0.273168 0.908574 +vt 0.314210 0.906374 +vt 0.586762 0.236310 +vt 0.583711 0.261249 +vt 0.273168 0.915175 +vt 0.314210 0.915175 +vt 0.273168 0.906374 +vt 0.314210 0.904173 +vt 0.506276 0.686230 +vt 0.525797 0.682955 +vt 0.525797 0.686230 +vt 0.481732 0.793059 +vt 0.570978 0.236310 +vt 0.572785 0.261249 +vt 0.570978 0.261453 +vt 0.273168 0.917375 +vt 0.314210 0.917375 +vt 0.506276 0.692779 +vt 0.525797 0.689505 +vt 0.525797 0.692779 +vt 0.506276 0.696054 +vt 0.525797 0.696054 +vt 0.506276 0.689505 +vt 0.752706 0.230078 +vt 0.755542 0.231716 +vt 0.755542 0.234990 +vt 0.495228 0.793059 +vt 0.495228 0.818203 +vt 0.506276 0.702603 +vt 0.525797 0.699328 +vt 0.525797 0.702603 +vt 0.754611 0.247701 +vt 0.481732 0.818203 +vt 0.572675 0.263065 +vt 0.586171 0.263065 +vt 0.602115 0.554091 +vt 0.605182 0.551547 +vt 0.602115 0.566187 +vt 0.750800 0.249901 +vt 0.506276 0.699328 +vt 0.602115 0.561099 +vt 0.602115 0.504471 +vt 0.605182 0.504471 +vt 0.602115 0.558270 +vt 0.570991 0.353066 +vt 0.571875 0.352675 +vt 0.606241 0.581779 +vt 0.604798 0.582766 +vt 0.604318 0.582718 +vt 0.602115 0.516566 +vt 0.605182 0.514022 +vt 0.605182 0.516566 +vt 0.602115 0.507015 +vt 0.605182 0.507015 +vt 0.602115 0.514022 +vt 0.605182 0.511478 +vt 0.486770 0.355301 +vt 0.488973 0.354029 +vt 0.487051 0.358179 +vt 0.602115 0.507497 +vt 0.605182 0.507497 +vt 0.602115 0.511478 +vt 0.605182 0.511042 +vt 0.606508 0.583180 +vt 0.605624 0.583571 +vt 0.602115 0.509616 +vt 0.605182 0.508650 +vt 0.605182 0.509616 +vt 0.602115 0.511042 +vt 0.602115 0.508650 +vt 0.488494 0.359166 +vt 0.486784 0.359579 +vt 0.574045 0.341232 +vt 0.570978 0.343776 +vt 0.570978 0.341232 +vt 0.602396 0.638781 +vt 0.603839 0.637794 +vt 0.604318 0.637843 +vt 0.574045 0.338688 +vt 0.570978 0.338688 +vt 0.574045 0.326592 +vt 0.570978 0.329136 +vt 0.570978 0.326592 +vt 0.574045 0.331680 +vt 0.570978 0.334224 +vt 0.570978 0.331680 +vt 0.574045 0.329136 +vt 0.749870 0.277694 +vt 0.752073 0.276422 +vt 0.750151 0.280572 +vt 0.574045 0.338206 +vt 0.570978 0.338206 +vt 0.574045 0.334224 +vt 0.570978 0.334660 +vt 0.602129 0.637381 +vt 0.603013 0.636990 +vt 0.574045 0.336086 +vt 0.570978 0.337053 +vt 0.570978 0.336086 +vt 0.574045 0.334660 +vt 0.574045 0.337053 +vt 0.751593 0.281559 +vt 0.749883 0.281972 +vt 0.278256 0.929341 +vt 0.275712 0.926274 +vt 0.278256 0.926274 +vt 0.602396 0.712981 +vt 0.603839 0.711994 +vt 0.604318 0.712043 +vt 0.280800 0.929341 +vt 0.280800 0.926274 +vt 0.275712 0.929341 +vt 0.273168 0.926274 +vt 0.287807 0.929341 +vt 0.285263 0.926274 +vt 0.287807 0.926274 +vt 0.290351 0.929341 +vt 0.290351 0.926274 +vt 0.602115 0.667942 +vt 0.604319 0.666670 +vt 0.602396 0.670819 +vt 0.281282 0.929341 +vt 0.281282 0.926274 +vt 0.285263 0.929341 +vt 0.284827 0.926274 +vt 0.602129 0.711581 +vt 0.603013 0.711190 +vt 0.283402 0.929341 +vt 0.282435 0.926274 +vt 0.283402 0.926274 +vt 0.284827 0.929341 +vt 0.282435 0.929341 +vt 0.603839 0.671806 +vt 0.602129 0.672220 +vt 0.861856 0.044727 +vt 0.874398 0.009630 +vt 0.874398 0.056426 +vt 0.712551 0.132696 +vt 0.733844 0.115817 +vt 0.730802 0.132696 +vt 0.700010 0.167794 +vt 0.700010 0.120997 +vt 0.843605 0.087385 +vt 0.864898 0.070505 +vt 0.861856 0.087385 +vt 0.861856 0.176839 +vt 0.840564 0.193718 +vt 0.843605 0.176839 +vt 0.642226 0.350853 +vt 0.625347 0.329561 +vt 0.642226 0.326519 +vt 0.434862 0.041459 +vt 0.459196 0.004449 +vt 0.459196 0.041459 +vt 0.492430 0.094079 +vt 0.468095 0.109197 +vt 0.468095 0.094079 +vt 0.668004 0.347811 +vt 0.703102 0.360353 +vt 0.656305 0.360353 +vt 0.874398 0.075685 +vt 0.874398 0.122482 +vt 0.831064 0.141741 +vt 0.831064 0.188538 +vt 0.492430 0.109197 +vt 0.468095 0.169871 +vt 0.590249 0.317019 +vt 0.637046 0.317019 +vt 0.916054 0.095497 +vt 0.883297 0.071163 +vt 0.916054 0.071163 +vt 0.691111 0.148231 +vt 0.602240 0.019993 +vt 0.617784 0.088269 +vt 0.602240 0.099121 +vt 0.691111 0.004449 +vt 0.814516 0.351301 +vt 0.818507 0.305467 +vt 0.818507 0.351301 +vt 0.004844 0.199797 +vt 0.425348 0.207135 +vt 0.004757 0.207136 +vt 0.552080 0.473300 +vt 0.559774 0.503656 +vt 0.552080 0.503656 +vt 0.626683 0.308120 +vt 0.642226 0.258581 +vt 0.642226 0.308120 +vt 0.805572 0.004449 +vt 0.797877 0.083578 +vt 0.797877 0.004449 +vt 0.425809 0.092198 +vt 0.005286 0.084858 +vt 0.425876 0.084858 +vt 0.814471 0.155774 +vt 0.822165 0.099252 +vt 0.822165 0.155761 +vt 0.651125 0.186675 +vt 0.666669 0.240383 +vt 0.651125 0.243463 +vt 0.651125 0.171305 +vt 0.666669 0.179709 +vt 0.775041 0.509987 +vt 0.790449 0.955730 +vt 0.775041 0.919044 +vt 0.805572 0.099229 +vt 0.797877 0.099252 +vt 0.814471 0.083601 +vt 0.822165 0.083577 +vt 0.797877 0.227919 +vt 0.805572 0.243034 +vt 0.797877 0.243037 +vt 0.768681 0.305467 +vt 0.811572 0.308411 +vt 0.771626 0.308411 +vt 0.642226 0.171305 +vt 0.626683 0.179709 +vt 0.626683 0.164339 +vt 0.754283 0.331232 +vt 0.717217 0.334785 +vt 0.717193 0.331232 +vt 0.666669 0.255500 +vt 0.651125 0.258581 +vt 0.797877 0.171131 +vt 0.805572 0.227922 +vt 0.822165 0.171131 +vt 0.004603 0.283258 +vt 0.425127 0.290597 +vt 0.004536 0.290598 +vt 0.877476 0.244505 +vt 0.917422 0.204559 +vt 0.917422 0.244505 +vt 0.768682 0.351301 +vt 0.814516 0.355292 +vt 0.768682 0.355292 +vt 0.919364 0.204559 +vt 0.919364 0.244505 +vt 0.805572 0.292577 +vt 0.797877 0.292577 +vt 0.552079 0.916335 +vt 0.559774 0.946694 +vt 0.552079 0.946694 +vt 0.004911 0.183237 +vt 0.425501 0.192456 +vt 0.004911 0.192457 +vt 0.642226 0.243463 +vt 0.626683 0.255500 +vt 0.626683 0.240383 +vt 0.805572 0.155774 +vt 0.797877 0.155762 +vt 0.425501 0.183237 +vt 0.004978 0.175897 +vt 0.425569 0.175897 +vt 0.917422 0.246447 +vt 0.877476 0.246447 +vt 0.754307 0.334785 +vt 0.717228 0.338339 +vt 0.753565 0.354145 +vt 0.746668 0.347238 +vt 0.752543 0.349261 +vt 0.436354 0.358291 +vt 0.437377 0.354029 +vt 0.438074 0.355319 +vt 0.919759 0.171817 +vt 0.922226 0.169794 +vt 0.925634 0.169794 +vt 0.642226 0.114795 +vt 0.004757 0.259574 +vt 0.651125 0.019993 +vt 0.666669 0.088269 +vt 0.651125 0.099121 +vt 0.764691 0.351301 +vt 0.814471 0.004449 +vt 0.822165 0.004449 +vt 0.789524 0.954904 +vt 0.751172 0.938220 +vt 0.814516 0.305467 +vt 0.768681 0.301476 +vt 0.814516 0.301476 +vt 0.005065 0.168558 +vt 0.425655 0.168558 +vt 0.915316 0.262242 +vt 0.875534 0.255346 +vt 0.915316 0.255346 +vt 0.754271 0.327679 +vt 0.717193 0.324126 +vt 0.754283 0.324125 +vt 0.442282 0.354099 +vt 0.441528 0.355343 +vt 0.875534 0.271354 +vt 0.915316 0.276344 +vt 0.875534 0.276344 +vt 0.875534 0.262242 +vt 0.200439 0.914986 +vt 0.146099 0.919773 +vt 0.146073 0.914979 +vt 0.893198 0.362986 +vt 0.890121 0.361209 +vt 0.893198 0.355879 +vt 0.811572 0.348357 +vt 0.717181 0.327679 +vt 0.717217 0.320572 +vt 0.754307 0.320572 +vt 0.717228 0.317019 +vt 0.754319 0.317019 +vt 0.437370 0.362557 +vt 0.438076 0.361271 +vt 0.373050 0.908404 +vt 0.376196 0.905467 +vt 0.374470 0.908404 +vt 0.381322 0.908424 +vt 0.380300 0.912643 +vt 0.379617 0.911373 +vt 0.444712 0.358315 +vt 0.441532 0.361280 +vt 0.443277 0.358315 +vt 0.382802 0.908425 +vt 0.386071 0.904175 +vt 0.386075 0.908426 +vt 0.390047 0.904173 +vt 0.390047 0.908429 +vt 0.146099 0.900603 +vt 0.200439 0.905390 +vt 0.146073 0.905397 +vt 0.375458 0.912574 +vt 0.376203 0.911344 +vt 0.200426 0.910188 +vt 0.146060 0.910188 +vt 0.375453 0.904234 +vt 0.379613 0.905470 +vt 0.200435 0.891107 +vt 0.146098 0.894997 +vt 0.146097 0.891120 +vt 0.442282 0.362529 +vt 0.492791 0.685579 +vt 0.438452 0.689457 +vt 0.438452 0.685579 +vt 0.492791 0.721150 +vt 0.492791 0.689457 +vt 0.380303 0.904202 +vt 0.540474 0.105465 +vt 0.544795 0.353018 +vt 0.540474 0.353051 +vt 0.451915 0.358315 +vt 0.447987 0.362523 +vt 0.447983 0.358315 +vt 0.557757 0.105393 +vt 0.562079 0.352970 +vt 0.557757 0.352979 +vt 0.386066 0.912677 +vt 0.451917 0.354109 +vt 0.447988 0.354106 +vt 0.496668 0.689457 +vt 0.496668 0.721150 +vt 0.390041 0.912683 +vt 0.588744 0.142487 +vt 0.592297 0.105409 +vt 0.592297 0.142499 +vt 0.536153 0.105474 +vt 0.536153 0.353083 +vt 0.200436 0.894984 +vt 0.200465 0.900596 +vt 0.931108 0.076493 +vt 0.928030 0.078269 +vt 0.924953 0.076493 +vt 0.570978 0.105409 +vt 0.574531 0.142487 +vt 0.570978 0.142499 +vt 0.578084 0.105373 +vt 0.581638 0.142451 +vt 0.578084 0.142463 +vt 0.508461 0.907025 +vt 0.505315 0.904087 +vt 0.506735 0.904088 +vt 0.574531 0.105397 +vt 0.137536 0.872938 +vt 0.133658 0.841244 +vt 0.137536 0.841244 +vt 0.585191 0.105373 +vt 0.585191 0.142463 +vt 0.513586 0.904067 +vt 0.512564 0.899849 +vt 0.515067 0.904067 +vt 0.588744 0.105397 +vt 0.553436 0.105426 +vt 0.553436 0.352977 +vt 0.544795 0.105467 +vt 0.549116 0.352987 +vt 0.434574 0.721150 +vt 0.438452 0.721150 +vt 0.079319 0.872938 +vt 0.075442 0.841244 +vt 0.079319 0.841244 +vt 0.508468 0.901147 +vt 0.507722 0.899917 +vt 0.004488 0.910503 +vt 0.058828 0.905715 +vt 0.058854 0.910510 +vt 0.200436 0.925392 +vt 0.200465 0.919780 +vt 0.004488 0.891333 +vt 0.058828 0.896120 +vt 0.004462 0.896127 +vt 0.518336 0.908317 +vt 0.512568 0.908289 +vt 0.512941 0.718715 +vt 0.516125 0.715744 +vt 0.513696 0.719960 +vt 0.507768 0.715767 +vt 0.508784 0.711502 +vt 0.509489 0.712788 +vt 0.079319 0.876815 +vt 0.133658 0.872938 +vt 0.133658 0.876815 +vt 0.511878 0.907022 +vt 0.519397 0.715744 +vt 0.523331 0.719949 +vt 0.519401 0.719952 +vt 0.507718 0.908258 +vt 0.508790 0.720029 +vt 0.506276 0.715768 +vt 0.004462 0.905709 +vt 0.058815 0.900918 +vt 0.735887 0.219714 +vt 0.705094 0.214630 +vt 0.735887 0.214630 +vt 0.004449 0.900918 +vt 0.519401 0.711535 +vt 0.513696 0.711529 +vt 0.518331 0.899814 +vt 0.509488 0.718739 +vt 0.748294 0.099420 +vt 0.755792 0.011948 +vt 0.755792 0.099420 +vt 0.512945 0.712778 +vt 0.707508 0.011948 +vt 0.700010 0.099420 +vt 0.700010 0.011948 +vt 0.511881 0.901119 +vt 0.712504 0.094423 +vt 0.712504 0.016944 +vt 0.748294 0.011948 +vt 0.707508 0.004449 +vt 0.748294 0.004449 +vt 0.522312 0.904062 +vt 0.522306 0.899808 +vt 0.743297 0.016944 +vt 0.523329 0.715744 +vt 0.058826 0.885714 +vt 0.058854 0.891326 +vt 0.058826 0.916122 +vt 0.004487 0.916109 +vt 0.514691 0.715744 +vt 0.705094 0.297194 +vt 0.735887 0.302278 +vt 0.705094 0.302278 +vt 0.737769 0.347238 +vt 0.734900 0.356939 +vt 0.734900 0.347238 +vt 0.705094 0.219714 +vt 0.700010 0.297194 +vt 0.700010 0.219714 +vt 0.932863 0.109247 +vt 0.932863 0.112116 +vt 0.923161 0.109247 +vt 0.933917 0.260197 +vt 0.933917 0.263066 +vt 0.924215 0.260197 +vt 0.604318 0.731971 +vt 0.602115 0.730699 +vt 0.606241 0.727821 +vt 0.731188 0.356939 +vt 0.731188 0.347238 +vt 0.754611 0.265349 +vt 0.752706 0.267523 +vt 0.752706 0.266449 +vt 0.748294 0.106918 +vt 0.707508 0.099420 +vt 0.735887 0.297194 +vt 0.740971 0.219714 +vt 0.740971 0.297194 +vt 0.720050 0.347238 +vt 0.717181 0.356939 +vt 0.717181 0.347238 +vt 0.572675 0.225800 +vt 0.583711 0.223985 +vt 0.586171 0.225800 +vt 0.743297 0.094423 +vt 0.570978 0.305598 +vt 0.574045 0.306080 +vt 0.570978 0.306080 +vt 0.364152 0.910774 +vt 0.323109 0.908574 +vt 0.364152 0.908574 +vt 0.606508 0.746419 +vt 0.604798 0.746006 +vt 0.606241 0.745019 +vt 0.004486 0.919986 +vt 0.058825 0.919999 +vt 0.723763 0.356939 +vt 0.727475 0.347238 +vt 0.727475 0.356939 +vt 0.602115 0.473300 +vt 0.605182 0.475844 +vt 0.602115 0.475844 +vt 0.570978 0.315149 +vt 0.574045 0.317693 +vt 0.570978 0.317693 +vt 0.720050 0.356939 +vt 0.723763 0.347238 +vt 0.570978 0.310061 +vt 0.574045 0.312605 +vt 0.570978 0.312605 +vt 0.570978 0.303054 +vt 0.574045 0.305598 +vt 0.570978 0.308200 +vt 0.574045 0.309625 +vt 0.570978 0.309625 +vt 0.549116 0.105457 +vt 0.604318 0.745957 +vt 0.602115 0.744685 +vt 0.570978 0.307233 +vt 0.574045 0.308200 +vt 0.522312 0.908318 +vt 0.518340 0.904065 +vt 0.755542 0.262612 +vt 0.754611 0.263149 +vt 0.323109 0.906374 +vt 0.364152 0.906374 +vt 0.602115 0.482567 +vt 0.605182 0.483534 +vt 0.602115 0.483534 +vt 0.364152 0.917375 +vt 0.323109 0.915175 +vt 0.364152 0.915175 +vt 0.749870 0.265886 +vt 0.750800 0.263149 +vt 0.750800 0.265349 +vt 0.752706 0.260974 +vt 0.752706 0.262048 +vt 0.586762 0.199046 +vt 0.586762 0.224189 +vt 0.323109 0.912975 +vt 0.364152 0.912975 +vt 0.323109 0.910774 +vt 0.602115 0.525465 +vt 0.605182 0.528009 +vt 0.602115 0.528009 +vt 0.604318 0.656918 +vt 0.602115 0.655646 +vt 0.606241 0.655979 +vt 0.602115 0.484960 +vt 0.605182 0.485396 +vt 0.602115 0.485396 +vt 0.605182 0.482567 +vt 0.602115 0.481414 +vt 0.605182 0.481414 +vt 0.590499 0.288336 +vt 0.570978 0.285062 +vt 0.590499 0.285062 +vt 0.590499 0.291611 +vt 0.570978 0.288336 +vt 0.570978 0.281787 +vt 0.590499 0.281787 +vt 0.323109 0.904173 +vt 0.364152 0.904173 +vt 0.708329 0.249551 +vt 0.708329 0.224408 +vt 0.749870 0.216268 +vt 0.752706 0.214630 +vt 0.755542 0.216268 +vt 0.570978 0.278513 +vt 0.590499 0.278513 +vt 0.572785 0.199250 +vt 0.570978 0.224189 +vt 0.570978 0.199046 +vt 0.602115 0.487940 +vt 0.605182 0.490484 +vt 0.602115 0.490484 +vt 0.605182 0.478388 +vt 0.602115 0.478388 +vt 0.604798 0.726834 +vt 0.606508 0.726421 +vt 0.721825 0.224408 +vt 0.583711 0.199250 +vt 0.572675 0.197435 +vt 0.586171 0.197435 +vt 0.590499 0.275238 +vt 0.570978 0.271963 +vt 0.590499 0.271963 +vt 0.721825 0.249551 +vt 0.574045 0.315149 +vt 0.574045 0.310061 +vt 0.574045 0.307233 +vt 0.605182 0.480932 +vt 0.602115 0.480932 +vt 0.605182 0.487940 +vt 0.570978 0.275238 +vt 0.570978 0.300510 +vt 0.574045 0.303054 +vt 0.604318 0.607310 +vt 0.606522 0.608582 +vt 0.602396 0.611459 +vt 0.606508 0.657380 +vt 0.604798 0.656966 +vt 0.605182 0.484960 +vt 0.603839 0.612446 +vt 0.602129 0.612860 +vt 0.602115 0.540105 +vt 0.605182 0.542649 +vt 0.602115 0.542649 +vt 0.604318 0.681510 +vt 0.606522 0.682782 +vt 0.602396 0.685659 +vt 0.602115 0.535017 +vt 0.605182 0.537561 +vt 0.602115 0.537561 +vt 0.605182 0.530553 +vt 0.602115 0.530553 +vt 0.605182 0.540105 +vt 0.752073 0.296350 +vt 0.749870 0.295078 +vt 0.753995 0.295412 +vt 0.605182 0.531035 +vt 0.602115 0.531035 +vt 0.602115 0.534580 +vt 0.605182 0.535017 +vt 0.605182 0.532188 +vt 0.602115 0.533155 +vt 0.605182 0.534580 +vt 0.603839 0.686646 +vt 0.602129 0.687059 +vt 0.602115 0.532188 +vt 0.605182 0.533155 +vt 0.754262 0.296812 +vt 0.752553 0.296399 +vt 0.373050 0.924649 +vt 0.375594 0.921582 +vt 0.375594 0.924649 +vt 0.385146 0.924649 +vt 0.387690 0.921582 +vt 0.387690 0.924649 +vt 0.378138 0.921582 +vt 0.378138 0.924649 +vt 0.380682 0.921582 +vt 0.380682 0.924649 +vt 0.604318 0.696350 +vt 0.606522 0.697622 +vt 0.602396 0.700499 +vt 0.390234 0.921582 +vt 0.390234 0.924649 +vt 0.604318 0.623003 +vt 0.606522 0.624275 +vt 0.602396 0.623941 +vt 0.381164 0.921582 +vt 0.381164 0.924649 +vt 0.384710 0.924649 +vt 0.385146 0.921582 +vt 0.382317 0.921582 +vt 0.383284 0.924649 +vt 0.384710 0.921582 +vt 0.603839 0.701486 +vt 0.602129 0.701899 +vt 0.382317 0.924649 +vt 0.383284 0.921582 +vt 0.602129 0.622541 +vt 0.603839 0.622954 +vt 0.831064 0.009630 +vt 0.843605 0.044727 +vt 0.831064 0.056426 +vt 0.743344 0.167794 +vt 0.743344 0.120997 +vt 0.703102 0.317019 +vt 0.668004 0.329561 +vt 0.656305 0.317019 +vt 0.590249 0.360353 +vt 0.625347 0.347811 +vt 0.637046 0.360353 +vt 0.831064 0.075685 +vt 0.843605 0.110783 +vt 0.831064 0.122482 +vt 0.874398 0.141741 +vt 0.861856 0.153440 +vt 0.666669 0.308120 +vt 0.651125 0.308120 +vt 0.814471 0.227922 +vt 0.822165 0.227919 +vt 0.651125 0.114795 +vt 0.666669 0.164339 +vt 0.425655 0.116357 +vt 0.005065 0.116357 +vt 0.626683 0.088269 +vt 0.642226 0.019993 +vt 0.642226 0.099121 +vt 0.425194 0.274253 +vt 0.004670 0.266914 +vt 0.425261 0.266913 +vt 0.425519 0.634857 +vt 0.004984 0.642197 +vt 0.601948 0.347811 +vt 0.585069 0.326519 +vt 0.601948 0.329561 +vt 0.814471 0.292577 +vt 0.822165 0.243037 +vt 0.822165 0.292577 +vt 0.434862 0.169871 +vt 0.459196 0.109197 +vt 0.459196 0.169871 +vt 0.691403 0.347811 +vt 0.730802 0.156094 +vt 0.712551 0.156094 +vt 0.434862 0.185241 +vt 0.459196 0.185241 +vt 0.434862 0.345130 +vt 0.459196 0.261311 +vt 0.459197 0.345130 +vt 0.492430 0.245636 +vt 0.468095 0.261311 +vt 0.468095 0.245636 +vt 0.843605 0.153440 +vt 0.864898 0.136561 +vt 0.927872 0.841352 +vt 0.903538 0.869430 +vt 0.903538 0.841352 +vt 0.771626 0.348357 +vt 0.492430 0.261311 +vt 0.468095 0.345130 +vt 0.626683 0.103943 +vt 0.425040 0.297936 +vt 0.004450 0.343672 +vt 0.004449 0.297937 +vt 0.911375 0.160895 +vt 0.883297 0.136561 +vt 0.911375 0.136561 +vt 0.492430 0.185241 +vt 0.468095 0.185241 +vt 0.434862 0.094079 +vt 0.459196 0.094079 +vt 0.492430 0.169871 +vt 0.890121 0.329554 +vt 0.914455 0.301476 +vt 0.914455 0.329554 +vt 0.434862 0.261311 +vt 0.459196 0.245636 +vt 0.843605 0.021329 +vt 0.864898 0.004449 +vt 0.861856 0.021329 +vt 0.840564 0.061606 +vt 0.864898 0.061606 +vt 0.559774 0.916335 +vt 0.927872 0.878329 +vt 0.903538 0.906407 +vt 0.903538 0.878329 +vt 0.617784 0.308120 +vt 0.602240 0.308120 +vt 0.593216 0.921447 +vt 0.585394 0.473304 +vt 0.593216 0.473300 +vt 0.425034 0.445458 +vt 0.004450 0.372388 +vt 0.425034 0.372389 +vt 0.739686 0.490810 +vt 0.701335 0.474126 +vt 0.535487 0.916338 +vt 0.405859 0.731434 +vt 0.005091 0.711617 +vt 0.425676 0.711617 +vt 0.651125 0.326519 +vt 0.651125 0.350853 +vt 0.740980 0.474737 +vt 0.523590 0.614076 +vt 0.499255 0.642155 +vt 0.499255 0.614076 +vt 0.434862 0.245636 +vt 0.492430 0.041459 +vt 0.004449 0.445457 +vt 0.788978 0.155761 +vt 0.004556 0.469617 +vt 0.425141 0.460139 +vt 0.617784 0.103943 +vt 0.772385 0.292577 +vt 0.764691 0.292577 +vt 0.805572 0.171119 +vt 0.005373 0.077519 +vt 0.425963 0.077519 +vt 0.005219 0.092198 +vt 0.425809 0.101678 +vt 0.005219 0.101678 +vt 0.434862 0.109197 +vt 0.005152 0.109018 +vt 0.425742 0.109018 +vt 0.642226 0.186675 +vt 0.425434 0.199796 +vt 0.749879 0.474737 +vt 0.789524 0.474126 +vt 0.751172 0.490810 +vt 0.749879 0.954293 +vt 0.641491 0.652942 +vt 0.641741 0.625305 +vt 0.658278 0.488738 +vt 0.877476 0.204559 +vt 0.875534 0.244505 +vt 0.875534 0.204559 +vt 0.425040 0.343671 +vt 0.024267 0.363490 +vt 0.576495 0.473305 +vt 0.568673 0.921447 +vt 0.568673 0.473300 +vt 0.425348 0.259574 +vt 0.877476 0.202617 +vt 0.917422 0.202617 +vt 0.004603 0.274254 +vt 0.425194 0.283257 +vt 0.666669 0.103943 +vt 0.915316 0.279534 +vt 0.875534 0.279534 +vt 0.425963 0.004449 +vt 0.005373 0.004449 +vt 0.915316 0.282942 +vt 0.875534 0.282942 +vt 0.691403 0.329561 +vt 0.708282 0.350853 +vt 0.733844 0.205732 +vt 0.535486 0.473300 +vt 0.781284 0.083601 +vt 0.616381 0.473300 +vt 0.616381 0.506586 +vt 0.632175 0.952056 +vt 0.616381 0.554136 +vt 0.618764 0.965790 +vt 0.618423 0.937186 +vt 0.617937 0.896322 +vt 0.617645 0.871803 +vt 0.617159 0.830939 +vt 0.616381 0.582667 +vt 0.616380 0.630217 +vt 0.616867 0.806430 +vt 0.616380 0.765570 +vt 0.772385 0.243035 +vt 0.772385 0.099229 +vt 0.764691 0.004449 +vt 0.788979 0.292577 +vt 0.831397 0.301476 +vt 0.772385 0.171120 +vt 0.916075 0.354471 +vt 0.917097 0.340476 +vt 0.919563 0.338452 +vt 0.581638 0.151398 +vt 0.883297 0.020457 +vt 0.927292 0.279071 +vt 0.924215 0.277294 +vt 0.924215 0.273741 +vt 0.920274 0.136561 +vt 0.927170 0.136561 +vt 0.923762 0.152580 +vt 0.831064 0.206494 +vt 0.067790 0.919986 +vt 0.477872 0.354064 +vt 0.501328 0.105361 +vt 0.589098 0.305840 +vt 0.582943 0.305840 +vt 0.582944 0.302286 +vt 0.920435 0.062264 +vt 0.834941 0.202617 +vt 0.067791 0.885727 +vt 0.066543 0.872938 +vt 0.890121 0.342714 +vt 0.408851 0.897863 +vt 0.408851 0.928245 +vt 0.907176 0.346945 +vt 0.442073 0.574212 +vt 0.933055 0.325814 +vt 0.923354 0.325814 +vt 0.924775 0.319515 +vt 0.928205 0.318094 +vt 0.575384 0.354800 +vt 0.575384 0.357344 +vt 0.573181 0.358616 +vt 0.570978 0.357344 +vt 0.570978 0.354800 +vt 0.851652 0.273609 +vt 0.933055 0.309195 +vt 0.923354 0.309195 +vt 0.924775 0.302896 +vt 0.928205 0.301476 +vt 0.586171 0.234699 +vt 0.603013 0.598411 +vt 0.606522 0.593742 +vt 0.606522 0.596286 +vt 0.604318 0.597558 +vt 0.602115 0.596286 +vt 0.602115 0.499383 +vt 0.586762 0.261453 +vt 0.273168 0.904173 +vt 0.506276 0.682955 +vt 0.752706 0.236627 +vt 0.749870 0.234990 +vt 0.749870 0.231716 +vt 0.602115 0.551547 +vt 0.602115 0.581446 +vt 0.602115 0.578902 +vt 0.604318 0.577630 +vt 0.606522 0.578902 +vt 0.606522 0.581446 +vt 0.491177 0.355301 +vt 0.491177 0.357845 +vt 0.488973 0.359117 +vt 0.486770 0.357845 +vt 0.487668 0.359970 +vt 0.574045 0.343776 +vt 0.606522 0.639115 +vt 0.606522 0.641659 +vt 0.604319 0.642931 +vt 0.602115 0.641659 +vt 0.602115 0.639115 +vt 0.754276 0.277694 +vt 0.754276 0.280238 +vt 0.752073 0.281510 +vt 0.749870 0.280238 +vt 0.750768 0.282363 +vt 0.606522 0.713315 +vt 0.606522 0.715859 +vt 0.604319 0.717131 +vt 0.602115 0.715859 +vt 0.602115 0.713315 +vt 0.273168 0.929341 +vt 0.606522 0.667942 +vt 0.606522 0.670486 +vt 0.604318 0.671758 +vt 0.602115 0.670486 +vt 0.603013 0.672611 +vt 0.709510 0.115817 +vt 0.840564 0.070505 +vt 0.864898 0.193718 +vt 0.434862 0.004449 +vt 0.883297 0.095497 +vt 0.617784 0.004449 +vt 0.675567 0.004449 +vt 0.559774 0.473300 +vt 0.805572 0.083601 +vt 0.814471 0.099228 +vt 0.790449 0.473300 +vt 0.814471 0.171119 +vt 0.754319 0.338339 +vt 0.753565 0.363256 +vt 0.746668 0.363256 +vt 0.750076 0.347238 +vt 0.434862 0.358290 +vt 0.925634 0.185813 +vt 0.918738 0.176702 +vt 0.918738 0.185813 +vt 0.666669 0.004449 +vt 0.764691 0.305467 +vt 0.915316 0.271354 +vt 0.890121 0.357656 +vt 0.896275 0.357656 +vt 0.896275 0.361209 +vt 0.451917 0.362521 +vt 0.562079 0.105361 +vt 0.924953 0.072939 +vt 0.928030 0.071163 +vt 0.931108 0.072940 +vt 0.581638 0.105361 +vt 0.434574 0.689457 +vt 0.075442 0.872938 +vt 0.146098 0.925379 +vt 0.523331 0.711537 +vt 0.004487 0.885727 +vt 0.737769 0.356939 +vt 0.923161 0.112116 +vt 0.924582 0.105817 +vt 0.928012 0.104396 +vt 0.931442 0.105817 +vt 0.924215 0.263066 +vt 0.925636 0.256767 +vt 0.929066 0.255346 +vt 0.932496 0.256767 +vt 0.602115 0.728155 +vt 0.604318 0.726883 +vt 0.606522 0.728155 +vt 0.606522 0.730699 +vt 0.755542 0.265886 +vt 0.707508 0.106918 +vt 0.572785 0.223985 +vt 0.605624 0.746811 +vt 0.605182 0.473300 +vt 0.602115 0.742141 +vt 0.604318 0.740869 +vt 0.606522 0.742141 +vt 0.606522 0.744685 +vt 0.323109 0.917375 +vt 0.749870 0.262611 +vt 0.605182 0.525465 +vt 0.602115 0.653102 +vt 0.604318 0.651830 +vt 0.606522 0.653102 +vt 0.606522 0.655646 +vt 0.570978 0.291611 +vt 0.755542 0.219542 +vt 0.752706 0.221180 +vt 0.749870 0.219542 +vt 0.605624 0.726029 +vt 0.574045 0.300510 +vt 0.606522 0.611126 +vt 0.604318 0.612398 +vt 0.602115 0.611126 +vt 0.602115 0.608582 +vt 0.605624 0.657771 +vt 0.603013 0.613251 +vt 0.606522 0.685326 +vt 0.604318 0.686598 +vt 0.602115 0.685326 +vt 0.602115 0.682782 +vt 0.749870 0.292534 +vt 0.752073 0.291262 +vt 0.754276 0.292534 +vt 0.754276 0.295078 +vt 0.603013 0.687451 +vt 0.753378 0.297203 +vt 0.373050 0.921582 +vt 0.606522 0.700166 +vt 0.604318 0.701438 +vt 0.602115 0.700166 +vt 0.602115 0.697622 +vt 0.606522 0.626819 +vt 0.604318 0.628091 +vt 0.602115 0.626819 +vt 0.602115 0.624275 +vt 0.603013 0.702291 +vt 0.603013 0.622150 +vt 0.874398 0.188538 +vt 0.626683 0.004449 +vt 0.585069 0.350853 +vt 0.814471 0.243034 +vt 0.840564 0.136561 +vt 0.927872 0.869430 +vt 0.492430 0.345130 +vt 0.883297 0.160895 +vt 0.890121 0.301476 +vt 0.840564 0.004449 +vt 0.927872 0.906407 +vt 0.585394 0.921451 +vt 0.024908 0.731434 +vt 0.523590 0.642155 +vt 0.658278 0.937198 +vt 0.642978 0.726786 +vt 0.642978 0.952498 +vt 0.642978 0.920254 +vt 0.642978 0.874191 +vt 0.642978 0.846554 +vt 0.642978 0.800490 +vt 0.642825 0.505544 +vt 0.643117 0.473300 +vt 0.642158 0.579242 +vt 0.642408 0.551605 +vt 0.642978 0.772852 +vt 0.641074 0.699003 +vt 0.405223 0.363488 +vt 0.576495 0.921451 +vt 0.708282 0.326519 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7208 -0.6931 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.0005 0.8669 0.4984 +vn -0.0005 0.8669 -0.4984 +vn -0.0005 0.8651 -0.5016 +vn 0.0000 0.9416 0.3368 +vn 0.0000 0.5185 0.8551 +vn 0.0000 0.9416 0.3367 +vn -0.0009 -0.0000 -1.0000 +vn 0.0005 -0.8651 0.5016 +vn 0.0009 0.0000 1.0000 +vn 0.0005 -0.8669 0.4984 +vn 0.0000 0.1029 0.9947 +vn 0.0005 0.8651 0.5016 +vn 0.8773 -0.0000 -0.4799 +vn 0.9438 -0.2844 -0.1682 +vn 0.9861 0.0000 -0.1660 +vn -0.8773 -0.0000 0.4799 +vn -0.8778 -0.4127 0.2431 +vn -0.8776 0.0000 0.4795 +vn -0.0005 -0.8651 -0.5016 +vn -1.0000 -0.0000 0.0076 +vn -0.0005 -0.8669 -0.4984 +vn 0.8778 0.4175 0.2349 +vn 0.8784 0.0000 0.4779 +vn 0.8781 0.0000 0.4785 +vn -0.8774 -0.4131 0.2439 +vn -0.9430 -0.2896 -0.1641 +vn 0.0000 0.8671 0.4982 +vn 0.0002 0.8650 0.5018 +vn -0.8778 0.4127 0.2431 +vn -0.8774 0.4131 0.2439 +vn -0.8778 0.4175 -0.2349 +vn -0.9850 -0.0000 -0.1723 +vn -0.8781 -0.0000 -0.4785 +vn 0.8774 -0.4131 -0.2439 +vn 0.8783 -0.4163 0.2352 +vn 0.8774 0.4131 -0.2439 +vn 0.8783 0.4163 0.2352 +vn 0.0000 -0.8671 0.4982 +vn -0.0001 -1.0000 -0.0004 +vn 0.0002 0.0000 1.0000 +vn 0.8778 -0.4175 0.2349 +vn -0.8778 -0.4175 -0.2349 +vn 1.0000 0.0000 0.0021 +vn 1.0000 -0.0006 0.0006 +vn 0.9438 0.2844 -0.1682 +vn 0.0000 -1.0000 -0.0003 +vn -0.9430 0.2896 -0.1641 +vn -1.0000 0.0012 -0.0027 +vn -1.0000 0.0000 -0.0063 +vn 0.0000 -0.8650 -0.5018 +vn -1.0000 -0.0018 -0.0041 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.8650 -0.5018 +vn 1.0000 0.0010 0.0009 +vn 1.0000 -0.0000 0.0076 +vn 0.0002 -0.8650 0.5018 +vn 0.0005 0.8651 -0.5016 +vn 0.0009 -0.0000 -1.0000 +vn 0.0005 0.8669 -0.4984 +vn -0.0005 -0.8669 0.4984 +vn 0.0005 -0.8669 -0.4984 +vn 0.0005 -0.8651 -0.5016 +vn -0.0001 1.0000 -0.0000 +vn -0.0001 1.0000 -0.0004 +vn -0.0009 -0.0000 1.0000 +vn -0.0005 -0.8651 0.5016 +vn -0.0005 0.8651 0.5016 +vn -0.8773 0.0000 -0.4800 +vn -0.9438 -0.2844 -0.1682 +vn -0.8774 -0.4131 -0.2439 +vn -0.8784 -0.0000 0.4779 +vn -0.8778 0.4175 0.2349 +vn -0.8781 -0.0000 0.4785 +vn -0.0002 -0.8650 0.5018 +vn -0.0005 0.8669 0.4984 +vn -1.0000 -0.0006 0.0006 +vn 1.0000 0.0012 -0.0027 +vn -0.8778 -0.4175 0.2349 +vn -0.0002 0.0000 1.0000 +vn -0.0002 0.8650 0.5018 +vn 0.8778 0.4127 0.2431 +vn 0.8773 -0.0000 0.4799 +vn 0.8774 0.4131 0.2439 +vn 0.8774 -0.4131 0.2439 +vn 0.9430 -0.2896 -0.1641 +vn 0.8778 -0.4175 -0.2349 +vn -0.9861 0.0000 -0.1660 +vn -1.0000 0.0000 0.0021 +vn 0.9850 -0.0000 -0.1723 +vn 0.8781 -0.0000 -0.4785 +vn -0.8783 0.4163 0.2352 +vn -0.8774 0.4131 -0.2439 +vn 0.9430 0.2896 -0.1641 +vn 1.0000 0.0000 -0.0063 +vn 1.0000 -0.0018 -0.0041 +vn -1.0000 0.0010 0.0009 +vn -0.9438 0.2844 -0.1682 +vn 0.8778 -0.4127 0.2431 +vn 0.0001 -1.0000 -0.0004 +vn 0.0001 1.0000 -0.0000 +vn 0.0001 1.0000 -0.0004 +vn 0.8778 0.4175 -0.2349 +vn -0.8783 -0.4163 0.2352 +vn -0.9808 0.0000 0.1951 +vn -0.7071 0.0000 0.7071 +vn 0.9808 0.0000 0.1951 +vn 0.9936 0.0000 0.1127 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.9268 0.3755 +vn 0.0000 0.8731 0.4875 +vn 0.0000 0.9268 0.3754 +vn 0.0000 0.3265 0.9452 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.2935 -0.9559 +vn 0.0000 -0.6811 -0.7322 +vn 0.0000 0.9838 -0.1795 +vn 0.0000 0.3364 -0.9417 +vn 0.0000 0.9746 -0.2238 +vn 0.0000 -0.9746 0.2238 +vn 0.0000 -0.7322 0.6811 +vn 0.0000 -0.8469 0.5318 +vn 0.0000 -0.8469 0.5317 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5914 0.8064 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.9981 0.0608 +vn 0.0000 -0.9982 0.0608 +vn -0.9936 0.0000 0.1127 +vn 0.0000 -0.1211 0.9926 +vn 0.0000 0.6473 0.7622 +vn 0.0000 0.9988 0.0492 +vn 0.0000 -0.6473 -0.7622 +vn 0.0000 -0.0308 0.9995 +vn 0.0000 -0.9417 -0.3364 +vn 0.0000 0.0934 0.9956 +vn 0.0000 -0.9369 0.3495 +vn 0.0000 -0.9369 0.3496 +vn 0.0000 -0.6888 0.7249 +vn 0.0000 -0.8619 -0.5070 +vn 0.0000 0.4161 0.9093 +vn 0.0000 0.7931 -0.6091 +vn 0.0000 -0.1309 -0.9914 +vn 0.0000 0.9968 0.0800 +vn 0.0000 0.9968 0.0799 +vn 0.0000 -0.9240 -0.3823 +vn 0.0000 -0.7931 0.6091 +vn 0.0000 -0.3823 0.9240 +vn 0.0000 0.9990 -0.0443 +vn 0.0000 0.3030 0.9530 +vn 0.0000 0.6902 0.7236 +vn 0.0000 -0.5488 0.8360 +vn 0.0000 0.9286 -0.3710 +vn 0.0000 0.9473 0.3203 +vn 0.0000 0.7510 -0.6603 +vn 0.0000 0.4880 0.8728 +vn 0.0000 -0.1963 -0.9805 +vn 0.0000 -0.9473 -0.3203 +vn 0.0000 -0.9806 0.1963 +vn 0.0000 0.5925 0.8055 +vn 0.0000 -0.6234 0.7819 +vn 0.0000 -0.2174 0.9761 +vn 0.0000 -1.0000 0.0089 +vn 0.0000 0.8248 0.5654 +vn 0.0000 -0.2425 0.9701 +vn 0.7208 -0.6931 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.8773 -0.0000 -0.4799 +vn -0.8778 -0.4127 -0.2431 +vn -0.9430 -0.2896 0.1641 +vn 0.0000 0.1029 -0.9947 +vn 0.0000 0.5185 -0.8551 +vn 0.0000 0.8671 -0.4982 +vn 0.0002 0.8650 -0.5018 +vn -1.0000 -0.0000 -0.0076 +vn -0.8778 0.4127 -0.2431 +vn 0.8784 0.0000 -0.4779 +vn 0.9438 -0.2844 0.1682 +vn -0.9850 -0.0000 0.1723 +vn 0.9861 0.0000 0.1660 +vn 1.0000 -0.0006 -0.0006 +vn 1.0000 0.0000 -0.0021 +vn 0.0000 -0.8671 -0.4982 +vn 0.0002 -0.8650 -0.5018 +vn 0.8783 -0.4163 -0.2352 +vn 0.0002 0.0000 -1.0000 +vn 0.8783 0.4163 -0.2352 +vn 0.0000 -1.0000 0.0003 +vn -0.9430 0.2896 0.1641 +vn 0.9438 0.2844 0.1682 +vn 0.0000 -0.8650 0.5018 +vn -1.0000 0.0012 0.0027 +vn -1.0000 0.0000 0.0063 +vn 0.0000 0.8650 0.5018 +vn 1.0000 0.0010 -0.0009 +vn -1.0000 -0.0018 0.0041 +vn -0.0001 -1.0000 0.0004 +vn 1.0000 -0.0000 -0.0076 +vn -0.8784 -0.0000 -0.4779 +vn -1.0000 -0.0006 -0.0006 +vn -0.8773 0.0000 0.4800 +vn -0.9438 -0.2844 0.1682 +vn -0.9861 0.0000 0.1660 +vn 1.0000 0.0012 0.0027 +vn -0.8783 -0.4163 -0.2352 +vn 0.0001 -1.0000 0.0004 +vn -0.0001 1.0000 0.0004 +vn -0.0002 0.8650 -0.5018 +vn -0.9438 0.2844 0.1682 +vn 0.9850 -0.0000 0.1723 +vn 0.9430 -0.2896 0.1641 +vn 0.8778 0.4127 -0.2431 +vn 1.0000 0.0000 0.0063 +vn 1.0000 -0.0018 0.0041 +vn -0.8783 0.4163 -0.2352 +vn 0.8778 -0.4127 -0.2431 +vn 0.8776 0.0000 -0.4795 +vn -0.0002 -0.8650 -0.5018 +vn -0.0002 0.0000 -1.0000 +vn 0.9430 0.2896 0.1641 +vn -1.0000 0.0010 -0.0009 +vn 0.8778 0.4174 0.2349 +vn 0.0001 1.0000 0.0004 +vn -0.9808 0.0000 -0.1951 +vn -0.7071 0.0000 -0.7071 +vn 0.9808 0.0000 -0.1951 +vn 0.9936 0.0000 -0.1127 +vn 0.0000 0.8731 -0.4875 +vn 0.0000 0.9268 -0.3755 +vn 0.0000 0.9268 -0.3754 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.3364 0.9417 +vn 0.0000 0.9838 0.1795 +vn 0.0000 -0.6811 0.7322 +vn 0.0000 0.2935 0.9559 +vn 0.0000 -0.7322 -0.6811 +vn 0.0000 -0.9746 -0.2238 +vn 0.0000 0.9746 0.2238 +vn 0.0000 -0.8469 -0.5317 +vn 0.0000 -0.8469 -0.5318 +vn 0.0000 0.3265 -0.9452 +vn -1.0000 0.0000 -0.0021 +vn 0.0000 -0.6888 -0.7249 +vn 0.0000 0.5914 -0.8064 +vn 0.0000 -0.1309 0.9914 +vn 0.0000 0.7931 0.6091 +vn 0.0000 -0.9369 -0.3496 +vn 0.0000 -0.9369 -0.3495 +vn 0.0000 0.4161 -0.9093 +vn 0.0000 0.0934 -0.9956 +vn 0.0000 -0.9982 -0.0608 +vn 0.0000 -0.9981 -0.0608 +vn 0.0000 -0.6473 0.7622 +vn 0.0000 0.6473 -0.7622 +vn -0.9936 0.0000 -0.1127 +vn 0.0000 -0.1211 -0.9926 +vn 0.0000 0.9988 -0.0492 +vn 0.0000 -0.0308 -0.9995 +vn 0.0000 -0.9417 0.3364 +vn 0.0000 -0.8619 0.5070 +vn 0.0000 -0.9240 0.3823 +vn 0.0000 -0.3823 -0.9240 +vn 0.0000 -0.7931 -0.6091 +vn 0.0000 0.9968 -0.0800 +vn 0.0000 0.9968 -0.0799 +vn 0.0000 0.9990 0.0443 +vn 0.0000 0.3030 -0.9530 +vn 0.0000 0.9286 0.3710 +vn 0.0000 -0.5488 -0.8360 +vn 0.0000 0.6902 -0.7236 +vn 0.0000 -0.1963 0.9805 +vn 0.0000 0.7510 0.6603 +vn 0.0000 -0.9806 -0.1963 +vn 0.0000 -0.9473 0.3203 +vn 0.0000 0.9473 -0.3203 +vn 0.0000 0.4880 -0.8728 +vn 0.0000 0.5925 -0.8055 +vn 0.0000 -0.6234 -0.7819 +vn 0.0000 0.8248 -0.5654 +vn 0.0000 -1.0000 -0.0089 +vn 0.0000 -0.2174 -0.9761 +vn 0.0000 -0.2425 -0.9701 +vn 0.0000 0.9416 -0.3368 +vn 0.0000 0.9416 -0.3367 +vn 0.0000 1.0000 -0.0007 +vn 0.8776 0.0000 0.4795 +vn 1.0000 0.0001 0.0000 +vn 0.0000 0.9287 -0.3709 +vn 0.0000 -0.9805 0.1963 +vn -0.8776 0.0000 -0.4795 +vn 0.0000 1.0000 0.0007 +vn 0.0000 0.9287 0.3709 +vn 0.0000 -0.9805 -0.1963 +s 1 +f 708/1/1 6/2/1 696/3/1 +f 88/4/2 92/5/2 87/6/2 +f 346/7/3 19/8/3 4/9/3 +f 80/10/4 74/11/4 73/12/4 +f 30/13/5 55/14/5 54/15/5 +f 54/15/5 29/16/5 30/13/5 +f 35/17/6 69/18/6 48/19/6 +f 10/20/7 16/21/7 15/22/7 +f 5/23/5 4/24/5 10/25/5 +f 40/26/3 8/27/3 2/28/3 +f 33/29/6 77/30/6 50/31/6 +f 697/32/8 709/33/8 685/34/8 +f 14/35/5 20/36/5 5/23/5 +f 692/37/5 2/38/5 691/39/5 +f 76/40/9 78/41/9 77/30/9 +f 38/42/2 28/43/2 27/44/2 +f 59/45/5 63/46/5 62/47/5 +f 41/48/5 22/49/5 44/50/5 +f 37/51/6 61/52/6 46/53/6 +f 52/54/5 31/55/5 32/56/5 +f 42/57/5 23/58/5 41/48/5 +f 1/59/5 51/60/5 3/61/5 +f 56/62/5 27/63/5 28/64/5 +f 45/65/5 35/17/5 48/19/5 +f 32/66/2 36/67/2 29/68/2 +f 46/69/3 44/70/3 43/71/3 +f 39/72/5 24/73/5 42/57/5 +f 67/74/5 71/75/5 70/76/5 +f 12/77/5 13/78/5 14/35/5 +f 13/79/10 18/80/10 17/81/10 +f 31/82/2 7/83/2 34/84/2 +f 86/85/5 90/86/5 82/87/5 +f 43/71/3 17/88/3 46/69/3 +f 90/86/3 83/89/3 89/90/3 +f 72/91/4 66/92/4 65/93/4 +f 60/94/9 62/47/9 61/52/9 +f 101/95/1 97/96/1 98/97/1 +f 39/98/3 47/99/3 50/100/3 +f 36/67/2 30/101/2 29/68/2 +f 47/102/1 65/93/1 36/103/1 +f 34/84/2 32/66/2 31/82/2 +f 50/100/3 40/26/3 39/98/3 +f 44/50/5 21/104/5 43/105/5 +f 41/106/3 45/107/3 48/108/3 +f 84/109/6 91/110/6 88/111/6 +f 68/112/9 70/76/9 69/18/9 +f 113/113/11 131/114/12 114/115/13 +f 85/116/6 93/117/6 81/118/6 +f 81/119/5 90/86/5 89/90/5 +f 104/120/14 108/121/15 106/122/16 +f 86/123/3 96/124/3 85/125/3 +f 114/115/13 122/126/17 109/127/17 +f 81/128/2 94/129/2 82/130/2 +f 82/131/1 95/132/1 86/133/1 +f 87/134/1 89/90/1 83/135/1 +f 99/136/6 106/122/16 102/137/6 +f 95/132/5 93/117/5 96/124/5 +f 45/65/1 57/138/1 38/139/1 +f 99/140/3 98/141/3 103/142/3 +f 125/143/18 112/144/19 111/145/20 +f 85/146/5 91/110/5 86/85/5 +f 105/147/15 107/148/21 108/121/15 +f 112/144/19 129/149/22 113/113/11 +f 121/150/23 138/151/24 118/152/25 +f 127/153/26 135/154/27 133/155/28 +f 122/156/17 110/157/29 109/158/17 +f 107/148/21 97/96/5 100/159/5 +f 112/160/30 113/161/30 114/162/30 +f 123/163/31 111/145/20 110/157/29 +f 108/164/2 107/165/2 102/166/2 +f 130/167/32 134/168/33 128/169/34 +f 125/170/35 137/171/36 135/154/27 +f 119/172/6 116/173/37 115/174/38 +f 127/153/26 116/175/39 129/176/40 +f 131/177/41 117/178/42 122/179/43 +f 124/180/44 136/181/45 138/151/24 +f 132/182/46 115/183/47 130/167/32 +f 138/184/1 135/185/48 137/186/49 +f 115/174/38 133/187/50 134/188/50 +f 126/189/51 134/168/33 136/181/45 +f 123/190/52 117/178/42 137/171/36 +f 149/191/2 154/192/53 153/193/2 +f 150/194/5 140/195/5 147/196/5 +f 118/152/25 150/197/54 119/198/55 +f 146/199/6 140/195/6 144/200/6 +f 141/201/1 143/202/56 139/203/1 +f 129/176/40 120/204/57 131/177/41 +f 147/205/58 151/206/3 152/207/59 +f 172/208/48 124/209/60 170/210/60 +f 121/150/23 119/198/55 132/182/46 +f 152/207/59 141/211/3 139/212/61 +f 147/205/58 117/178/42 120/204/57 +f 167/213/62 132/214/63 178/215/63 +f 143/216/64 118/152/25 138/151/24 +f 138/184/1 139/203/1 143/202/56 +f 117/178/42 139/212/61 137/171/36 +f 170/210/60 121/217/62 167/218/62 +f 157/219/65 156/220/65 160/221/65 +f 136/222/66 133/187/50 135/185/48 +f 153/193/2 143/216/64 145/223/2 +f 160/224/67 168/225/68 177/226/69 +f 174/227/5 126/228/48 172/208/48 +f 146/229/2 150/194/54 149/230/2 +f 140/195/3 148/231/3 147/196/58 +f 157/232/70 169/233/71 156/234/72 +f 119/172/6 147/235/73 120/236/74 +f 158/237/75 171/238/76 157/232/70 +f 158/237/75 175/239/77 173/240/75 +f 167/241/78 184/242/79 170/243/80 +f 180/244/81 176/245/82 174/246/83 +f 184/247/1 181/248/48 182/249/84 +f 159/250/85 177/226/69 175/239/77 +f 196/251/86 192/252/3 195/253/3 +f 194/254/2 186/255/2 193/256/87 +f 172/257/88 180/244/81 174/246/83 +f 156/234/72 168/258/68 155/259/68 +f 178/215/63 130/260/37 176/261/37 +f 179/262/89 161/263/90 180/264/89 +f 162/265/91 173/266/92 175/267/93 +f 190/268/6 188/269/6 192/270/6 +f 162/271/37 165/272/6 161/263/90 +f 171/273/94 183/274/95 169/275/96 +f 164/276/97 196/277/86 200/278/98 +f 169/275/96 163/279/99 168/280/100 +f 161/281/101 178/282/102 176/245/82 +f 163/279/99 193/283/87 166/284/103 +f 187/285/2 198/286/104 185/287/105 +f 164/276/97 189/288/106 184/242/79 +f 165/289/107 167/241/78 178/282/102 +f 182/249/84 179/262/89 180/264/89 +f 173/266/92 181/290/108 171/273/94 +f 206/291/3 258/292/3 205/293/3 +f 184/247/1 185/294/1 183/295/109 +f 193/256/5 190/268/5 196/251/5 +f 193/296/110 165/272/6 166/297/111 +f 204/298/6 211/299/6 208/300/6 +f 163/279/99 185/287/105 198/286/104 +f 166/284/103 175/267/93 177/301/112 +f 189/288/106 199/302/3 191/303/3 +f 207/304/1 209/305/1 203/306/1 +f 205/307/5 211/299/5 206/308/5 +f 200/278/98 195/309/3 199/302/3 +f 197/310/2 193/283/87 198/286/104 +f 210/311/3 203/312/3 209/305/3 +f 208/313/2 212/314/2 207/315/2 +f 205/316/6 255/317/6 201/318/6 +f 170/243/80 182/319/113 172/257/88 +f 202/320/1 257/321/1 206/322/1 +f 202/323/5 211/299/5 210/311/5 +f 201/324/5 212/314/5 205/307/5 +f 201/325/2 256/326/2 202/327/2 +f 230/328/6 229/329/6 224/330/6 +f 275/331/3 276/332/3 273/333/3 +f 224/334/114 217/335/3 222/336/114 +f 201/324/5 210/311/5 209/305/5 +f 225/337/115 222/336/114 223/338/115 +f 223/339/1 222/340/1 226/341/1 +f 220/342/2 226/343/116 219/344/2 +f 214/345/117 259/346/117 260/347/117 +f 163/279/99 177/301/112 168/280/100 +f 237/348/3 254/349/3 245/350/3 +f 176/261/37 128/351/5 174/227/5 +f 185/294/1 191/352/1 187/353/1 +f 221/354/5 230/355/118 228/356/5 +f 277/357/119 273/358/120 276/359/121 +f 282/360/122 280/361/122 279/362/122 +f 239/363/123 234/364/5 233/365/123 +f 277/366/2 282/367/2 278/368/2 +f 227/369/118 229/370/116 230/355/118 +f 270/371/2 268/372/2 278/368/2 +f 266/373/124 267/374/125 265/375/124 +f 228/356/5 223/338/115 221/354/5 +f 286/376/126 287/377/127 285/378/126 +f 274/379/120 263/380/128 273/358/120 +f 270/381/129 271/382/130 269/383/129 +f 278/384/131 279/362/132 275/385/132 +f 237/348/3 250/386/3 238/387/3 +f 240/388/3 251/389/3 252/390/3 +f 240/391/5 235/392/133 234/364/5 +f 240/388/3 253/393/3 241/394/3 +f 241/395/133 236/396/134 235/392/133 +f 213/397/135 262/398/135 259/346/135 +f 238/399/136 233/365/123 232/400/136 +f 242/401/134 231/402/62 236/396/134 +f 249/403/134 245/404/62 254/405/134 +f 214/406/5 257/321/5 256/326/5 +f 214/407/137 261/408/138 215/409/138 +f 237/410/62 232/400/136 231/411/62 +f 247/412/5 253/413/133 252/414/5 +f 246/415/123 252/414/5 251/416/123 +f 248/417/133 254/405/134 253/413/133 +f 248/418/2 247/419/2 246/420/2 +f 261/408/5 259/346/5 262/398/5 +f 213/421/5 258/292/5 216/422/5 +f 244/423/62 250/424/136 245/425/62 +f 241/394/3 254/349/3 242/426/3 +f 216/422/5 257/321/5 215/427/5 +f 215/428/139 262/398/139 216/429/139 +f 264/430/128 265/431/124 263/380/128 +f 268/432/125 269/383/129 267/374/125 +f 238/387/3 251/389/3 239/433/3 +f 243/434/136 251/416/123 250/424/136 +f 213/421/5 256/326/5 255/317/5 +f 272/435/140 275/385/140 271/382/140 +f 284/436/141 285/378/126 283/437/141 +f 276/359/121 281/438/142 277/357/119 +f 276/332/3 279/439/3 280/440/3 +f 295/441/3 296/442/3 293/443/3 +f 288/444/127 289/445/143 287/446/127 +f 294/447/144 283/437/141 293/448/144 +f 290/449/143 291/450/145 289/445/143 +f 290/451/2 288/452/2 298/453/2 +f 297/454/146 293/448/144 296/455/146 +f 292/456/147 295/457/148 291/450/148 +f 296/442/3 299/458/3 300/459/3 +f 302/460/149 300/461/149 299/462/149 +f 298/463/150 299/462/150 295/457/150 +f 296/455/146 301/464/151 297/454/146 +f 297/465/2 302/466/2 298/453/2 +f 304/467/152 305/468/153 303/469/152 +f 315/470/3 316/471/3 313/472/3 +f 314/473/154 303/469/152 313/474/155 +f 306/475/153 307/476/156 305/477/153 +f 310/478/157 311/479/158 309/480/157 +f 308/481/156 309/480/157 307/476/156 +f 310/482/2 308/483/2 318/484/2 +f 317/485/159 313/474/155 316/486/159 +f 312/487/160 315/488/160 311/479/160 +f 316/471/3 319/489/3 320/490/3 +f 322/491/161 320/492/161 319/493/161 +f 318/494/162 319/493/162 315/488/162 +f 316/486/159 321/495/163 317/485/159 +f 317/496/2 322/497/2 318/484/2 +f 324/498/164 325/499/165 323/500/164 +f 335/501/3 336/502/3 333/503/3 +f 334/504/166 323/500/164 333/505/166 +f 326/506/165 327/507/167 325/499/165 +f 330/508/168 331/509/169 329/510/168 +f 328/511/167 329/510/168 327/512/167 +f 330/513/2 328/514/2 338/515/2 +f 337/516/170 333/505/166 336/517/170 +f 332/518/171 335/519/171 331/509/171 +f 336/502/3 339/520/3 340/521/3 +f 342/522/172 340/523/172 339/524/172 +f 338/525/173 339/524/173 335/519/173 +f 336/517/170 341/526/174 337/516/170 +f 337/527/2 342/528/2 338/515/2 +f 713/529/175 690/530/175 689/531/175 +f 719/532/8 707/533/8 731/534/8 +f 719/532/175 696/535/175 695/536/175 +f 722/537/176 686/538/176 710/539/176 +f 724/540/176 688/541/176 712/542/176 +f 703/543/8 715/544/8 691/545/8 +f 362/546/2 5/547/2 20/548/2 +f 398/549/3 55/550/3 56/551/3 +f 717/552/175 694/553/175 693/554/175 +f 709/33/175 686/555/175 685/556/175 +f 687/557/175 712/542/175 688/558/175 +f 397/559/3 54/560/3 55/550/3 +f 715/544/175 692/561/175 691/562/175 +f 345/563/1 685/564/1 3/565/1 +f 32/56/5 53/566/5 52/54/5 +f 2/567/5 26/568/5 40/569/5 +f 47/102/5 33/29/5 50/31/5 +f 28/64/5 19/570/5 56/62/5 +f 30/101/2 38/42/2 27/44/2 +f 434/571/2 430/572/2 429/573/2 +f 411/574/6 377/575/6 390/576/6 +f 358/577/7 352/578/7 357/579/7 +f 362/580/62 385/581/62 355/582/62 +f 350/583/3 382/584/3 344/585/3 +f 416/586/177 422/587/177 415/588/177 +f 378/589/2 374/590/2 371/591/2 +f 372/592/62 397/593/62 369/594/62 +f 371/595/62 396/596/62 372/592/62 +f 352/597/62 347/598/62 354/599/62 +f 382/584/3 392/600/3 381/601/3 +f 374/590/2 376/602/2 373/603/2 +f 386/604/3 388/605/3 385/606/3 +f 432/607/62 428/608/62 424/609/62 +f 384/610/62 365/611/62 366/612/62 +f 455/613/69 473/614/85 471/615/67 +f 369/594/62 398/616/62 370/617/62 +f 383/618/3 387/619/3 386/604/3 +f 372/620/2 378/589/2 371/591/2 +f 404/621/178 402/622/178 403/623/178 +f 435/624/62 437/625/62 438/626/62 +f 431/627/1 429/628/1 425/629/1 +f 438/626/3 428/630/3 427/631/3 +f 385/606/3 359/632/3 355/633/3 +f 360/634/10 355/635/10 359/636/10 +f 413/637/62 409/638/62 412/639/62 +f 386/640/62 363/641/62 364/642/62 +f 381/601/3 389/643/3 384/644/3 +f 408/645/177 414/646/177 407/647/177 +f 435/624/6 427/648/6 423/649/6 +f 456/650/77 464/651/75 473/614/85 +f 445/652/3 441/653/3 447/654/3 +f 469/655/179 477/656/180 467/657/80 +f 450/658/2 448/659/2 444/660/2 +f 366/612/62 381/661/62 384/610/62 +f 377/575/62 387/662/62 390/576/62 +f 343/663/62 393/664/62 373/665/62 +f 425/666/3 432/607/3 431/627/3 +f 373/603/2 349/667/2 343/668/2 +f 354/599/62 356/669/62 355/670/62 +f 433/671/6 426/672/6 430/673/6 +f 407/647/1 389/674/1 378/675/1 +f 439/676/1 443/677/1 440/678/1 +f 454/679/68 467/680/72 453/681/71 +f 467/657/80 479/682/181 465/683/88 +f 449/684/182 447/685/183 450/686/183 +f 439/676/62 449/684/182 442/687/62 +f 458/688/184 461/689/6 457/690/185 +f 453/691/186 452/692/186 456/693/186 +f 433/671/62 427/694/62 428/608/62 +f 454/679/68 471/615/67 469/695/68 +f 453/681/71 465/696/70 452/697/76 +f 452/697/76 464/698/75 451/699/75 +f 458/700/187 469/655/179 471/701/102 +f 476/702/188 472/703/112 470/704/100 +f 463/705/92 480/706/189 466/707/94 +f 459/708/190 473/709/82 464/710/83 +f 465/683/88 459/708/190 464/710/83 +f 460/711/191 492/712/192 496/713/193 +f 496/713/193 491/714/2 495/715/2 +f 480/716/1 477/717/194 478/718/195 +f 466/707/94 478/719/196 468/720/96 +f 468/720/96 476/702/188 470/704/100 +f 475/721/197 457/690/185 476/722/197 +f 457/723/198 474/724/93 472/703/112 +f 483/725/1 485/726/199 487/727/1 +f 462/728/200 471/701/102 473/709/82 +f 488/729/6 482/730/6 484/731/6 +f 492/732/62 482/730/62 486/733/62 +f 461/734/201 463/705/92 474/724/93 +f 466/735/202 514/736/194 512/737/202 +f 493/738/3 489/739/203 494/740/204 +f 474/741/205 509/742/5 520/743/205 +f 460/711/191 485/744/206 480/706/189 +f 459/708/190 489/739/203 462/728/200 +f 483/745/3 494/740/204 481/746/207 +f 492/732/192 488/747/2 491/748/2 +f 478/718/195 475/721/197 476/722/197 +f 485/744/206 495/715/2 487/749/2 +f 502/750/22 510/751/19 497/752/19 +f 463/753/5 512/737/202 509/754/5 +f 480/716/1 481/755/1 479/756/208 +f 500/757/209 501/758/209 502/759/209 +f 510/760/19 498/761/18 497/762/19 +f 513/763/29 500/764/17 499/765/31 +f 518/766/41 522/767/210 516/768/43 +f 511/769/20 499/765/31 498/761/18 +f 534/770/3 538/771/211 537/772/3 +f 500/764/17 517/773/13 501/774/12 +f 459/708/190 481/746/207 494/740/204 +f 509/775/212 526/776/213 506/777/214 +f 501/774/12 519/778/11 502/750/22 +f 472/779/184 520/743/205 518/780/184 +f 468/781/194 516/782/62 514/736/194 +f 490/783/3 482/730/3 489/784/203 +f 528/785/2 536/786/2 535/787/215 +f 514/788/52 522/767/210 524/789/216 +f 526/790/1 523/791/194 525/792/217 +f 489/793/73 461/689/6 462/794/218 +f 507/795/6 504/796/184 503/797/219 +f 506/777/214 538/798/211 507/799/220 +f 511/800/51 505/801/221 525/802/222 +f 515/803/23 504/804/223 517/805/46 +f 530/806/6 532/807/6 534/808/6 +f 509/775/212 507/799/220 520/809/40 +f 540/810/224 529/811/2 527/812/225 +f 520/809/40 503/813/226 518/766/41 +f 515/803/23 523/814/227 521/815/228 +f 524/816/229 521/817/230 523/791/194 +f 600/818/3 548/819/3 547/820/3 +f 503/797/219 521/817/230 522/821/230 +f 535/822/215 505/801/221 508/823/231 +f 531/824/232 506/777/214 526/776/213 +f 513/825/44 525/802/222 523/814/227 +f 551/826/1 549/827/1 545/828/1 +f 517/805/46 508/823/231 519/829/233 +f 553/830/6 546/831/6 550/832/6 +f 512/833/35 524/789/216 526/776/213 +f 544/834/62 553/830/62 548/835/62 +f 554/836/2 550/837/2 549/838/2 +f 541/839/3 531/824/232 533/840/3 +f 553/830/62 547/841/62 548/835/62 +f 535/822/215 539/842/2 540/810/224 +f 507/795/6 535/843/110 508/844/234 +f 526/790/1 527/845/1 531/846/199 +f 505/801/221 527/812/225 525/802/222 +f 519/829/233 505/801/221 510/847/34 +f 598/848/2 543/849/2 544/850/2 +f 559/851/3 566/852/235 564/853/235 +f 599/854/1 544/855/1 548/856/1 +f 568/857/1 561/858/1 564/859/1 +f 566/860/6 560/861/6 571/862/6 +f 532/807/62 535/787/62 538/771/62 +f 609/863/3 607/864/3 617/865/3 +f 564/853/235 567/866/236 565/867/236 +f 579/868/3 596/869/3 584/870/3 +f 545/871/3 552/872/3 551/826/3 +f 597/873/6 547/874/6 543/875/6 +f 568/876/237 562/877/2 561/878/2 +f 556/879/238 601/880/238 555/881/238 +f 543/882/62 552/872/62 544/834/62 +f 554/836/62 543/882/62 547/841/62 +f 615/883/239 619/884/240 618/885/241 +f 576/886/62 581/887/136 575/888/136 +f 624/889/2 619/890/2 620/891/2 +f 533/892/1 527/845/1 529/893/1 +f 572/894/242 563/895/62 570/896/62 +f 629/897/243 628/898/244 627/899/244 +f 609/900/245 608/901/246 607/902/246 +f 571/903/237 569/904/242 572/894/242 +f 613/905/247 612/906/248 611/907/248 +f 605/908/249 616/909/239 615/883/239 +f 621/910/250 620/911/251 617/912/250 +f 470/913/62 518/780/184 516/782/62 +f 616/914/2 606/915/2 620/891/2 +f 565/867/236 570/896/62 563/895/62 +f 622/916/252 624/917/252 621/910/252 +f 537/918/3 542/919/253 541/839/3 +f 592/920/3 579/868/3 580/921/3 +f 575/888/136 580/922/123 574/923/123 +f 642/924/254 644/925/254 641/926/254 +f 573/927/5 584/928/133 578/929/133 +f 595/930/3 582/931/3 583/932/3 +f 582/931/3 593/933/3 581/934/3 +f 601/880/255 558/935/255 555/936/255 +f 578/929/133 583/937/134 577/938/134 +f 577/938/134 582/939/62 576/886/62 +f 647/940/256 646/941/257 645/942/257 +f 636/943/2 626/944/2 640/945/2 +f 637/946/258 634/947/259 633/948/258 +f 643/949/260 638/950/261 639/951/261 +f 596/952/133 590/953/134 595/954/134 +f 587/955/5 591/956/133 596/952/133 +f 595/954/134 589/957/62 594/958/62 +f 574/923/123 579/959/5 573/960/5 +f 556/961/62 599/854/62 557/962/62 +f 590/963/2 591/964/2 586/965/2 +f 594/958/62 588/966/136 593/967/136 +f 603/968/262 556/969/263 557/970/262 +f 631/971/264 630/972/243 629/973/243 +f 627/899/244 626/974/265 625/975/265 +f 618/976/3 621/977/3 617/865/3 +f 593/933/3 580/921/3 581/934/3 +f 599/854/62 558/978/62 557/962/62 +f 604/979/266 557/980/266 558/981/266 +f 596/869/3 583/932/3 584/870/3 +f 592/982/123 586/983/5 587/984/5 +f 600/818/62 555/985/62 558/978/62 +f 601/880/62 603/968/62 604/979/62 +f 611/907/248 610/986/245 609/900/245 +f 555/985/62 598/848/62 556/961/62 +f 617/912/267 614/987/267 613/905/267 +f 623/988/268 618/885/241 619/884/240 +f 625/975/265 636/989/269 635/990/269 +f 633/948/270 632/991/264 631/971/264 +f 593/967/136 585/992/123 592/982/123 +f 607/993/246 606/994/249 605/908/249 +f 629/995/3 627/996/3 637/997/3 +f 635/990/269 639/951/261 638/950/261 +f 644/998/2 639/999/2 640/945/2 +f 641/926/271 640/1000/271 637/946/271 +f 638/1001/3 641/1002/3 637/997/3 +f 649/1003/272 648/1004/256 647/1005/256 +f 649/1006/3 647/1007/3 657/1008/3 +f 653/1009/273 652/1010/274 651/1011/274 +f 645/942/257 656/1012/275 655/1013/276 +f 651/1011/274 650/1014/272 649/1003/272 +f 656/1015/2 646/1016/2 660/1017/2 +f 655/1013/276 659/1018/277 658/1019/277 +f 657/1020/278 654/1021/278 653/1009/278 +f 663/1022/279 658/1019/277 659/1018/277 +f 661/1023/280 660/1024/280 657/1020/280 +f 658/1025/3 661/1026/3 657/1008/3 +f 662/1027/281 664/1028/281 661/1023/281 +f 664/1029/2 659/1030/2 660/1017/2 +f 669/1031/282 668/1032/283 667/1033/283 +f 673/1034/284 672/1035/285 671/1036/285 +f 667/1033/283 666/1037/286 665/1038/286 +f 665/1038/286 676/1039/287 675/1040/287 +f 669/1041/3 667/1042/3 677/1043/3 +f 671/1036/285 670/1044/282 669/1045/282 +f 676/1046/2 666/1047/2 680/1048/2 +f 675/1040/287 679/1049/288 678/1050/288 +f 677/1051/289 674/1052/289 673/1034/289 +f 683/1053/290 678/1050/288 679/1049/288 +f 681/1054/291 680/1055/291 677/1051/291 +f 678/1056/3 681/1057/3 677/1043/3 +f 682/1058/292 684/1059/292 681/1054/292 +f 684/1060/2 679/1061/2 680/1048/2 +f 702/1062/293 725/1063/293 701/1064/293 +f 708/1065/293 731/534/293 707/1066/293 +f 706/1067/293 729/1068/293 705/1069/293 +f 704/1070/293 727/1071/293 703/1072/293 +f 698/1073/293 721/1074/293 697/1075/293 +f 699/1076/293 724/540/293 723/1077/293 +f 370/617/62 361/1078/62 351/1079/62 +f 380/1080/2 372/620/2 369/1081/2 +f 374/1082/62 395/1083/62 371/595/62 +f 375/1084/62 389/674/62 392/1085/62 +f 368/1086/62 344/1087/62 382/1088/62 +f 400/1089/177 406/1090/177 399/1091/177 +f 64/1092/4 58/1093/4 57/138/4 +f 728/1094/176 692/1095/176 716/1096/176 +f 358/1097/2 370/1098/2 351/1099/2 +f 365/1100/2 22/1101/2 23/1102/2 +f 729/1068/1 718/1103/1 717/552/1 +f 732/1104/176 696/3/176 720/1105/176 +f 366/1106/2 23/1102/2 24/1107/2 +f 348/1108/2 26/1109/2 6/1110/2 +f 394/1111/3 51/1112/3 52/1113/3 +f 711/1114/8 699/1115/8 723/1077/8 +f 704/1116/1 693/1117/1 692/1118/1 +f 434/571/62 423/1119/62 427/694/62 +f 393/1120/3 3/1121/3 51/1112/3 +f 382/1088/62 367/1122/62 368/1086/62 +f 379/1123/62 359/1124/62 388/1125/62 +f 706/1126/1 695/1127/1 694/1128/1 +f 395/1129/3 52/1113/3 53/1130/3 +f 363/1131/2 20/548/2 21/1132/2 +f 396/1133/3 53/1130/3 54/560/3 +f 702/1134/1 691/1135/1 690/1136/1 +f 368/1137/2 25/1138/2 26/1109/2 +f 726/1139/176 690/1140/176 714/1141/176 +f 701/1142/8 713/529/8 689/1143/8 +f 360/634/1 352/578/1 354/1144/1 +f 700/1145/1 689/1146/1 688/1147/1 +f 43/105/5 20/1148/5 13/1149/5 +f 2/1150/6 7/1151/6 1/1152/6 +f 721/1074/1 710/539/1 709/33/1 +f 49/1153/5 7/1154/5 8/1155/5 +f 9/1156/5 10/25/5 11/1157/5 +f 81/119/5 92/5/5 85/146/5 +f 10/20/1 18/80/1 12/1158/1 +f 18/1159/5 16/1160/5 17/1161/5 +f 17/1161/5 37/51/5 46/53/5 +f 705/1162/8 717/552/8 693/1163/8 +f 11/1157/5 19/1164/5 9/1156/5 +f 698/1165/1 687/1166/1 686/1167/1 +f 727/1071/1 716/1096/1 715/544/1 +f 731/534/1 720/1105/1 719/532/1 +f 367/1168/2 24/1107/2 25/1138/2 +f 361/1169/3 56/551/3 19/8/3 +f 49/1153/1 73/12/1 34/1170/1 +f 48/108/3 42/1171/3 41/106/3 +f 75/1172/5 79/1173/5 78/41/5 +f 40/569/5 25/1174/5 39/72/5 +f 28/43/2 16/1175/2 9/1176/2 +f 723/1077/1 712/542/1 711/1114/1 +f 384/644/3 390/1177/3 383/618/3 +f 415/588/1 391/1178/1 376/1179/1 +f 421/1180/62 417/1181/62 420/1182/62 +f 364/1183/2 21/1132/2 22/1101/2 +f 419/1184/178 417/1181/178 418/1185/178 +f 364/642/62 383/1186/62 386/640/62 +f 412/639/178 410/1187/178 411/574/178 +f 361/1188/62 353/1189/62 351/1190/62 +f 356/669/62 362/1191/62 355/670/62 +f 701/1192/62 700/1193/62 343/1194/62 +f 436/1195/2 423/1196/2 424/1197/2 +f 358/1198/62 360/1199/62 359/1124/62 +f 725/1063/1 714/1141/1 713/529/1 +f 349/1200/6 344/1201/6 343/1202/6 +f 399/1091/1 387/662/1 380/1203/1 +f 437/625/1 424/1204/1 428/1205/1 +f 405/1206/62 401/1207/62 404/621/62 +f 370/1098/2 380/1080/2 369/1081/2 +f 373/665/62 394/1208/62 374/1082/62 +f 403/623/6 379/1123/6 388/1125/6 +f 450/686/183 446/1209/294 448/1210/295 +f 423/1119/62 432/607/62 424/609/62 +f 351/1190/62 353/1189/62 352/597/62 +f 349/1211/62 391/1178/62 350/1212/62 +f 448/1210/295 441/1213/6 444/1214/6 +f 419/1184/6 375/1084/6 392/1085/6 +f 730/1215/176 694/1216/176 718/1103/176 +f 708/1/1 348/1217/1 6/2/1 +f 88/4/2 91/110/2 92/5/2 +f 346/7/3 361/1169/3 19/8/3 +f 80/10/4 79/1173/4 74/11/4 +f 30/13/5 27/63/5 55/14/5 +f 54/15/5 53/566/5 29/16/5 +f 35/17/6 68/112/6 69/18/6 +f 10/20/7 9/1218/7 16/21/7 +f 4/24/5 11/1157/5 10/25/5 +f 10/25/5 12/77/5 5/23/5 +f 12/77/5 14/35/5 5/23/5 +f 40/26/3 49/1219/3 8/27/3 +f 33/29/6 76/40/6 77/30/6 +f 697/32/8 721/1074/8 709/33/8 +f 14/35/5 13/78/5 20/36/5 +f 6/1220/5 2/38/5 696/1221/5 +f 2/38/5 1/1222/5 691/39/5 +f 696/1221/5 2/38/5 695/1223/5 +f 1/1222/5 3/1224/5 685/1225/5 +f 686/1226/5 687/1227/5 1/1222/5 +f 687/1227/5 688/1228/5 1/1222/5 +f 1/1222/5 685/1225/5 686/1226/5 +f 695/1223/5 2/38/5 694/1229/5 +f 693/1230/5 694/1229/5 2/38/5 +f 693/1230/5 2/38/5 692/37/5 +f 689/1231/5 690/1232/5 1/1222/5 +f 690/1232/5 691/39/5 1/1222/5 +f 1/1222/5 688/1228/5 689/1231/5 +f 76/40/9 75/1172/9 78/41/9 +f 38/42/2 37/1233/2 28/43/2 +f 59/45/5 58/1093/5 63/46/5 +f 41/48/5 23/58/5 22/49/5 +f 37/51/6 60/94/6 61/52/6 +f 52/54/5 51/60/5 31/55/5 +f 42/57/5 24/73/5 23/58/5 +f 1/59/5 31/55/5 51/60/5 +f 56/62/5 55/14/5 27/63/5 +f 45/65/5 38/139/5 35/17/5 +f 32/66/2 33/1234/2 36/67/2 +f 46/69/3 45/107/3 44/70/3 +f 39/72/5 25/1174/5 24/73/5 +f 67/74/5 66/92/5 71/75/5 +f 13/79/10 12/1158/10 18/80/10 +f 31/82/2 1/1235/2 7/83/2 +f 86/85/5 91/110/5 90/86/5 +f 43/71/3 13/1236/3 17/88/3 +f 90/86/3 84/1237/3 83/89/3 +f 72/91/4 71/75/4 66/92/4 +f 60/94/9 59/45/9 62/47/9 +f 101/95/1 100/159/1 97/96/1 +f 39/98/3 42/1171/3 47/99/3 +f 36/67/2 35/1238/2 30/101/2 +f 47/102/1 72/91/1 65/93/1 +f 34/84/2 33/1234/2 32/66/2 +f 50/100/3 49/1219/3 40/26/3 +f 44/50/5 22/49/5 21/104/5 +f 41/106/3 44/70/3 45/107/3 +f 84/109/6 90/86/6 91/110/6 +f 68/112/9 67/74/9 70/76/9 +f 113/113/11 129/149/22 131/114/12 +f 85/116/6 96/124/6 93/117/6 +f 81/119/5 82/87/5 90/86/5 +f 104/120/14 105/147/15 108/121/15 +f 86/123/3 95/132/3 96/124/3 +f 114/115/13 131/114/12 122/126/17 +f 81/128/2 93/117/2 94/129/2 +f 82/131/1 94/129/1 95/132/1 +f 87/134/1 92/5/1 89/90/1 +f 99/136/6 104/120/14 106/122/16 +f 95/132/5 94/129/5 93/117/5 +f 45/65/1 64/1092/1 57/138/1 +f 98/141/3 97/1239/3 103/142/3 +f 103/142/3 105/1240/3 99/140/3 +f 105/1240/3 104/1241/3 99/140/3 +f 125/143/18 127/1242/19 112/144/19 +f 85/146/5 92/5/5 91/110/5 +f 105/147/15 103/1243/21 107/148/21 +f 112/144/19 127/1242/19 129/149/22 +f 121/150/23 124/180/44 138/151/24 +f 127/153/26 125/170/35 135/154/27 +f 122/156/17 123/163/31 110/157/29 +f 107/148/21 103/1243/21 97/96/5 +f 114/162/30 109/1244/30 110/1245/30 +f 110/1245/30 111/1246/30 114/162/30 +f 111/1246/30 112/160/30 114/162/30 +f 123/163/31 125/143/18 111/145/20 +f 100/1247/2 101/1248/2 107/165/2 +f 101/1248/2 102/166/2 107/165/2 +f 102/166/2 106/1249/2 108/164/2 +f 130/167/32 115/183/47 134/168/33 +f 125/170/35 123/190/52 137/171/36 +f 119/172/6 120/236/74 116/173/37 +f 127/153/26 133/155/28 116/175/39 +f 131/177/41 120/204/57 117/178/42 +f 124/180/44 126/189/51 136/181/45 +f 132/182/46 119/198/55 115/183/47 +f 138/184/1 136/222/66 135/185/48 +f 115/174/38 116/173/37 133/187/50 +f 126/189/51 128/169/34 134/168/33 +f 123/190/52 122/179/43 117/178/42 +f 149/191/2 150/197/54 154/192/53 +f 150/194/5 144/200/5 140/195/5 +f 118/152/25 154/192/53 150/197/54 +f 146/199/6 142/1250/6 140/195/6 +f 141/201/1 145/1251/1 143/202/56 +f 129/176/40 116/175/39 120/204/57 +f 147/205/58 148/1252/3 151/206/3 +f 172/208/48 126/228/48 124/209/60 +f 121/150/23 118/152/25 119/198/55 +f 152/207/59 151/206/3 141/211/3 +f 147/205/58 152/207/59 117/178/42 +f 167/213/62 121/1253/62 132/214/63 +f 143/216/64 154/192/53 118/152/25 +f 138/184/1 137/186/49 139/203/1 +f 117/178/42 152/207/59 139/212/61 +f 170/210/60 124/209/60 121/217/62 +f 156/220/65 155/1254/65 160/221/65 +f 160/221/65 159/1255/65 158/1256/65 +f 158/1256/65 157/219/65 160/221/65 +f 136/222/66 134/188/50 133/187/50 +f 153/193/2 154/192/53 143/216/64 +f 160/224/67 155/1257/68 168/225/68 +f 174/227/5 128/351/5 126/228/48 +f 146/229/2 144/200/2 150/194/54 +f 140/195/3 142/1258/3 148/231/3 +f 157/232/70 171/238/76 169/233/71 +f 119/172/6 150/1259/296 147/235/73 +f 158/237/75 173/240/75 171/238/76 +f 158/237/75 159/250/85 175/239/77 +f 167/241/78 164/276/97 184/242/79 +f 180/244/81 161/281/101 176/245/82 +f 184/247/1 183/295/109 181/248/48 +f 159/250/85 160/224/67 177/226/69 +f 196/251/86 190/268/3 192/252/3 +f 194/254/2 188/1260/2 186/255/2 +f 172/257/88 182/319/113 180/244/81 +f 156/234/72 169/233/71 168/258/68 +f 178/215/63 132/214/63 130/260/37 +f 179/262/89 162/271/37 161/263/90 +f 162/265/91 179/1261/297 173/266/92 +f 190/268/6 186/255/6 188/269/6 +f 162/271/37 166/297/111 165/272/6 +f 171/273/94 181/290/108 183/274/95 +f 164/276/97 165/289/107 196/277/86 +f 169/275/96 183/274/95 163/279/99 +f 161/281/101 165/289/107 178/282/102 +f 163/279/99 198/286/104 193/283/87 +f 187/285/2 197/310/2 198/286/104 +f 164/276/97 200/278/98 189/288/106 +f 165/289/107 164/276/97 167/241/78 +f 182/249/84 181/248/48 179/262/89 +f 173/266/92 179/1261/297 181/290/108 +f 206/291/3 257/321/3 258/292/3 +f 184/247/1 189/1262/56 185/294/1 +f 193/256/5 186/255/5 190/268/5 +f 193/296/110 196/1263/296 165/272/6 +f 204/298/6 210/311/6 211/299/6 +f 163/279/99 183/274/95 185/287/105 +f 166/284/103 162/265/91 175/267/93 +f 189/288/106 200/278/98 199/302/3 +f 207/304/1 212/314/1 209/305/1 +f 205/307/5 212/314/5 211/299/5 +f 200/278/98 196/277/86 195/309/3 +f 197/310/2 194/1264/2 193/283/87 +f 210/311/3 204/1265/3 203/312/3 +f 208/313/2 211/299/2 212/314/2 +f 205/316/6 258/292/6 255/317/6 +f 170/243/80 184/242/79 182/319/113 +f 202/320/1 256/326/1 257/321/1 +f 202/323/5 206/308/5 211/299/5 +f 201/324/5 209/305/5 212/314/5 +f 201/325/2 255/317/2 256/326/2 +f 229/329/6 220/1266/6 218/1267/6 +f 218/1267/6 224/330/6 229/329/6 +f 224/330/6 225/1268/6 230/328/6 +f 225/1268/6 228/1269/6 230/328/6 +f 273/333/3 263/1270/3 275/331/3 +f 263/1270/3 265/1271/3 275/331/3 +f 265/1271/3 267/1272/3 275/331/3 +f 267/1272/3 269/1273/3 275/331/3 +f 269/1273/3 271/1274/3 275/331/3 +f 224/334/114 218/1275/3 217/335/3 +f 201/324/5 202/323/5 210/311/5 +f 225/337/115 224/334/114 222/336/114 +f 222/340/1 217/1276/1 219/1277/1 +f 219/1277/1 226/341/1 222/340/1 +f 226/341/1 227/1278/1 223/339/1 +f 227/1278/1 221/1279/1 223/339/1 +f 220/342/2 229/370/116 226/343/116 +f 214/345/117 213/1280/117 259/346/117 +f 163/279/99 166/284/103 177/301/112 +f 237/348/3 242/426/3 254/349/3 +f 176/261/37 130/260/37 128/351/5 +f 185/294/1 189/1262/56 191/352/1 +f 221/354/5 227/369/118 230/355/118 +f 277/357/119 274/379/120 273/358/120 +f 282/360/122 281/438/122 280/361/122 +f 239/363/123 240/391/5 234/364/5 +f 277/366/2 281/1281/2 282/367/2 +f 227/369/118 226/343/116 229/370/116 +f 268/372/2 266/1282/2 278/368/2 +f 266/1282/2 264/1283/2 278/368/2 +f 264/1283/2 274/1284/2 278/368/2 +f 274/1284/2 277/366/2 278/368/2 +f 278/368/2 272/1285/298 270/371/2 +f 266/373/124 268/432/125 267/374/125 +f 228/356/5 225/337/115 223/338/115 +f 286/376/126 288/1286/127 287/377/127 +f 274/379/120 264/430/128 263/380/128 +f 270/381/129 272/435/130 271/382/130 +f 278/384/131 282/360/131 279/362/132 +f 237/348/3 245/350/3 250/386/3 +f 240/388/3 239/433/3 251/389/3 +f 240/391/5 241/395/133 235/392/133 +f 240/388/3 252/390/3 253/393/3 +f 241/395/133 242/401/134 236/396/134 +f 213/397/135 216/1287/135 262/398/135 +f 238/399/136 239/363/123 233/365/123 +f 242/401/134 237/1288/62 231/402/62 +f 249/403/134 244/1289/62 245/404/62 +f 214/406/5 215/427/5 257/321/5 +f 214/407/137 260/347/137 261/408/138 +f 237/410/62 238/399/136 232/400/136 +f 247/412/5 248/417/133 253/413/133 +f 246/415/123 247/412/5 252/414/5 +f 248/417/133 249/403/134 254/405/134 +f 246/420/2 243/1290/2 248/418/2 +f 243/1290/2 244/1291/2 248/418/2 +f 244/1291/2 249/1292/2 248/418/2 +f 261/408/5 260/347/5 259/346/5 +f 213/421/5 255/317/5 258/292/5 +f 244/423/62 243/434/136 250/424/136 +f 241/394/3 253/393/3 254/349/3 +f 216/422/5 258/292/5 257/321/5 +f 215/428/139 261/408/139 262/398/139 +f 264/430/128 266/1293/124 265/431/124 +f 268/432/125 270/381/129 269/383/129 +f 238/387/3 250/386/3 251/389/3 +f 243/434/136 246/415/123 251/416/123 +f 213/421/5 214/406/5 256/326/5 +f 272/435/140 278/384/140 275/385/140 +f 284/436/141 286/376/126 285/378/126 +f 276/359/121 280/361/142 281/438/142 +f 276/332/3 275/331/3 279/439/3 +f 293/443/3 283/1294/3 295/441/3 +f 283/1294/3 285/1295/3 295/441/3 +f 285/1295/3 287/1296/3 295/441/3 +f 287/1296/3 289/1297/3 295/441/3 +f 289/1297/3 291/1298/3 295/441/3 +f 288/444/127 290/449/143 289/445/143 +f 294/447/144 284/436/141 283/437/141 +f 290/449/143 292/456/145 291/450/145 +f 288/452/2 286/1299/2 298/453/2 +f 286/1299/2 284/1300/2 298/453/2 +f 284/1300/2 294/1301/2 298/453/2 +f 294/1301/2 297/465/2 298/453/2 +f 298/453/2 292/1302/2 290/451/2 +f 297/454/146 294/447/144 293/448/144 +f 292/456/147 298/463/147 295/457/148 +f 296/442/3 295/441/3 299/458/3 +f 302/460/149 301/464/149 300/461/149 +f 298/463/150 302/460/150 299/462/150 +f 296/455/146 300/461/151 301/464/151 +f 297/465/2 301/1303/2 302/466/2 +f 304/467/152 306/1304/153 305/468/153 +f 313/472/3 303/1305/3 315/470/3 +f 303/1305/3 305/1306/3 315/470/3 +f 305/1306/3 307/1307/3 315/470/3 +f 307/1307/3 309/1308/3 315/470/3 +f 309/1308/3 311/1309/3 315/470/3 +f 314/473/154 304/467/152 303/469/152 +f 306/475/153 308/481/156 307/476/156 +f 310/478/157 312/487/158 311/479/158 +f 308/481/156 310/478/157 309/480/157 +f 308/483/2 306/1310/2 318/484/2 +f 306/1310/2 304/1311/2 318/484/2 +f 304/1311/2 314/1312/2 318/484/2 +f 314/1312/2 317/496/2 318/484/2 +f 318/484/2 312/1313/2 310/482/2 +f 317/485/159 314/473/154 313/474/155 +f 312/487/160 318/494/160 315/488/160 +f 316/471/3 315/470/3 319/489/3 +f 322/491/161 321/495/161 320/492/161 +f 318/494/162 322/491/162 319/493/162 +f 316/486/159 320/492/299 321/495/163 +f 317/496/2 321/1314/2 322/497/2 +f 324/498/164 326/506/165 325/499/165 +f 333/503/3 323/1315/3 335/501/3 +f 323/1315/3 325/1316/3 335/501/3 +f 325/1316/3 327/1317/3 335/501/3 +f 327/1317/3 329/1318/3 335/501/3 +f 329/1318/3 331/1319/3 335/501/3 +f 334/504/166 324/498/164 323/500/164 +f 326/506/165 328/1320/167 327/507/167 +f 330/508/168 332/518/300 331/509/169 +f 328/511/167 330/508/168 329/510/168 +f 328/514/2 326/1321/2 338/515/2 +f 326/1321/2 324/1322/2 338/515/2 +f 324/1322/2 334/1323/2 338/515/2 +f 334/1323/2 337/527/2 338/515/2 +f 338/515/2 332/1324/2 330/513/2 +f 337/516/170 334/504/166 333/505/166 +f 332/518/171 338/525/171 335/519/171 +f 336/502/3 335/501/3 339/520/3 +f 342/522/172 341/526/172 340/523/172 +f 338/525/173 342/522/173 339/524/173 +f 336/517/170 340/523/174 341/526/174 +f 337/527/2 341/1325/2 342/528/2 +f 713/529/175 714/1141/175 690/530/175 +f 719/532/8 695/1326/8 707/533/8 +f 719/532/175 720/1105/175 696/535/175 +f 722/537/176 698/1327/176 686/538/176 +f 724/540/176 700/1328/176 688/541/176 +f 703/543/8 727/1071/8 715/544/8 +f 362/546/2 347/1329/2 5/547/2 +f 398/549/3 397/559/3 55/550/3 +f 717/552/175 718/1103/175 694/553/175 +f 709/33/175 710/539/175 686/555/175 +f 687/557/175 711/1114/175 712/542/175 +f 397/559/3 396/1133/3 54/560/3 +f 715/544/175 716/1096/175 692/561/175 +f 345/563/1 697/1330/1 685/564/1 +f 32/56/5 29/16/5 53/566/5 +f 2/567/5 6/1331/5 26/568/5 +f 47/102/5 36/103/5 33/29/5 +f 28/64/5 9/1332/5 19/570/5 +f 30/101/2 35/1238/2 38/42/2 +f 434/571/2 433/671/2 430/572/2 +f 411/574/6 410/1187/6 377/575/6 +f 358/577/7 351/1333/7 352/578/7 +f 362/580/62 363/641/62 385/581/62 +f 350/583/3 391/1334/3 382/584/3 +f 416/586/177 421/1180/177 422/587/177 +f 378/589/2 375/1335/2 374/590/2 +f 372/592/62 396/596/62 397/593/62 +f 371/595/62 395/1083/62 396/596/62 +f 352/597/62 353/1189/62 346/1336/62 +f 346/1336/62 347/598/62 352/597/62 +f 347/598/62 356/669/62 354/599/62 +f 382/584/3 391/1334/3 392/600/3 +f 374/590/2 375/1335/2 376/602/2 +f 386/604/3 387/619/3 388/605/3 +f 432/607/62 433/671/62 428/608/62 +f 384/610/62 383/1186/62 365/611/62 +f 455/613/69 456/650/77 473/614/85 +f 369/594/62 397/593/62 398/616/62 +f 383/618/3 390/1177/3 387/619/3 +f 372/620/2 377/1337/2 378/589/2 +f 404/621/178 401/1207/178 402/622/178 +f 435/624/62 436/1195/62 437/625/62 +f 431/627/1 434/571/1 429/628/1 +f 438/626/3 437/625/3 428/630/3 +f 385/606/3 388/605/3 359/632/3 +f 360/634/10 354/1144/10 355/635/10 +f 413/637/62 408/645/62 409/638/62 +f 386/640/62 385/581/62 363/641/62 +f 381/601/3 392/600/3 389/643/3 +f 408/645/177 413/637/177 414/646/177 +f 435/624/6 438/626/6 427/648/6 +f 456/650/77 451/1338/75 464/651/75 +f 445/652/3 439/1339/3 440/1340/3 +f 440/1340/3 441/653/3 445/652/3 +f 441/653/3 446/1341/3 447/654/3 +f 469/655/179 475/1342/301 477/656/180 +f 444/660/2 443/1343/2 449/1344/2 +f 443/1343/2 442/1345/2 449/1344/2 +f 449/1344/2 450/658/2 444/660/2 +f 366/612/62 367/1122/62 381/661/62 +f 377/575/62 380/1203/62 387/662/62 +f 343/663/62 345/1346/62 393/664/62 +f 425/666/3 426/1347/3 432/607/3 +f 373/603/2 376/602/2 349/667/2 +f 433/671/6 432/607/6 426/672/6 +f 407/647/1 414/646/1 389/674/1 +f 439/676/1 442/687/1 443/677/1 +f 454/679/68 469/695/68 467/680/72 +f 467/657/80 477/656/180 479/682/181 +f 449/684/182 445/1348/182 447/685/183 +f 439/676/62 445/1348/182 449/684/182 +f 458/688/184 462/794/218 461/689/6 +f 452/692/186 451/1349/186 456/693/186 +f 456/693/186 455/1350/186 454/1351/186 +f 454/1351/186 453/691/186 456/693/186 +f 433/671/62 434/571/62 427/694/62 +f 454/679/68 455/613/69 471/615/67 +f 453/681/71 467/680/72 465/696/70 +f 452/697/76 465/696/70 464/698/75 +f 458/700/187 475/1342/301 469/655/179 +f 476/702/188 457/723/198 472/703/112 +f 463/705/92 460/711/191 480/706/189 +f 459/708/190 462/728/200 473/709/82 +f 465/683/88 479/682/181 459/708/190 +f 460/711/191 461/734/201 492/712/192 +f 496/713/193 492/712/192 491/714/2 +f 480/716/1 479/756/208 477/717/194 +f 466/707/94 480/706/189 478/719/196 +f 468/720/96 478/719/196 476/702/188 +f 475/721/197 458/688/184 457/690/185 +f 457/723/198 461/734/201 474/724/93 +f 483/725/1 481/755/1 485/726/199 +f 462/728/200 458/700/187 471/701/102 +f 488/729/6 486/733/6 482/730/6 +f 492/732/62 489/784/62 482/730/62 +f 461/734/201 460/711/191 463/705/92 +f 466/735/202 468/781/194 514/736/194 +f 493/738/3 490/1352/3 489/739/203 +f 474/741/205 463/1353/5 509/742/5 +f 460/711/191 496/713/193 485/744/206 +f 459/708/190 494/740/204 489/739/203 +f 483/745/3 493/738/3 494/740/204 +f 492/732/192 486/733/2 488/747/2 +f 478/718/195 477/717/194 475/721/197 +f 485/744/206 496/713/193 495/715/2 +f 502/750/22 519/778/11 510/751/19 +f 463/753/5 466/735/202 512/737/202 +f 480/716/1 485/726/199 481/755/1 +f 502/759/209 497/1354/209 498/1355/209 +f 498/1355/209 499/1356/209 502/759/209 +f 499/1356/209 500/757/209 502/759/209 +f 510/760/19 511/769/20 498/761/18 +f 513/763/29 515/1357/17 500/764/17 +f 518/766/41 503/813/226 522/767/210 +f 511/769/20 513/763/29 499/765/31 +f 534/770/3 532/807/3 538/771/211 +f 500/764/17 515/1357/17 517/773/13 +f 459/708/190 479/682/181 481/746/207 +f 509/775/212 512/833/35 526/776/213 +f 501/774/12 517/773/13 519/778/11 +f 472/779/184 474/741/205 520/743/205 +f 468/781/194 470/913/62 516/782/62 +f 490/783/3 484/1358/3 482/730/3 +f 528/785/2 530/1359/2 536/786/2 +f 514/788/52 516/768/43 522/767/210 +f 526/790/1 524/816/229 523/791/194 +f 489/793/73 492/1360/302 461/689/6 +f 507/795/6 508/844/234 504/796/184 +f 506/777/214 542/919/253 538/798/211 +f 511/800/51 510/847/34 505/801/221 +f 515/803/23 521/815/228 504/804/223 +f 530/806/6 528/785/6 532/807/6 +f 509/775/212 506/777/214 507/799/220 +f 540/810/224 539/842/2 529/811/2 +f 520/809/40 507/799/220 503/813/226 +f 515/803/23 513/825/44 523/814/227 +f 524/816/229 522/821/230 521/817/230 +f 600/818/3 599/854/3 548/819/3 +f 503/797/219 504/796/184 521/817/230 +f 535/822/215 540/810/224 505/801/221 +f 531/824/232 542/919/253 506/777/214 +f 513/825/44 511/800/51 525/802/222 +f 551/826/1 554/836/1 549/827/1 +f 517/805/46 504/804/223 508/823/231 +f 553/830/6 552/872/6 546/831/6 +f 512/833/35 514/788/52 524/789/216 +f 544/834/62 552/872/62 553/830/62 +f 554/836/2 553/830/2 550/837/2 +f 541/839/3 542/919/253 531/824/232 +f 553/830/62 554/836/62 547/841/62 +f 535/822/215 536/1361/2 539/842/2 +f 507/795/6 538/1362/302 535/843/110 +f 526/790/1 525/792/217 527/845/1 +f 505/801/221 540/810/224 527/812/225 +f 519/829/233 508/823/231 505/801/221 +f 598/848/2 597/873/2 543/849/2 +f 559/851/3 560/1363/3 566/852/235 +f 599/854/1 598/848/1 544/855/1 +f 561/858/1 559/1364/1 564/859/1 +f 564/859/1 565/1365/1 568/857/1 +f 565/1365/1 563/1366/1 568/857/1 +f 563/1366/1 569/1367/1 568/857/1 +f 560/861/6 562/1368/6 571/862/6 +f 571/862/6 572/1369/6 570/1370/6 +f 570/1370/6 567/1371/6 571/862/6 +f 567/1371/6 566/860/6 571/862/6 +f 532/807/62 528/785/62 535/787/62 +f 607/864/3 605/1372/3 617/865/3 +f 605/1372/3 615/1373/3 617/865/3 +f 615/1373/3 618/976/3 617/865/3 +f 617/865/3 613/1374/3 611/1375/3 +f 611/1375/3 609/863/3 617/865/3 +f 564/853/235 566/852/235 567/866/236 +f 579/868/3 587/1376/3 596/869/3 +f 545/871/3 546/1377/3 552/872/3 +f 597/873/6 600/818/6 547/874/6 +f 568/876/237 571/903/237 562/877/2 +f 556/879/238 602/1378/238 601/880/238 +f 543/882/62 551/826/62 552/872/62 +f 554/836/62 551/826/62 543/882/62 +f 615/883/239 616/909/239 619/884/240 +f 576/886/62 582/939/62 581/887/136 +f 624/889/2 623/1379/2 619/890/2 +f 533/892/1 531/846/199 527/845/1 +f 572/894/242 569/904/242 563/895/62 +f 629/897/243 630/1380/243 628/898/244 +f 609/900/245 610/986/245 608/901/246 +f 571/903/237 568/876/237 569/904/242 +f 613/905/247 614/987/247 612/906/248 +f 605/908/249 606/994/249 616/909/239 +f 621/910/250 624/917/251 620/911/251 +f 470/913/62 472/779/184 518/780/184 +f 606/915/2 608/1381/2 620/891/2 +f 608/1381/2 610/1382/2 620/891/2 +f 610/1382/2 612/1383/2 620/891/2 +f 612/1383/2 614/1384/298 620/891/2 +f 620/891/2 619/890/2 616/914/2 +f 565/867/236 567/866/236 570/896/62 +f 622/916/252 623/988/252 624/917/252 +f 537/918/3 538/798/211 542/919/253 +f 592/920/3 587/1376/3 579/868/3 +f 575/888/136 581/887/136 580/922/123 +f 642/924/254 643/949/254 644/925/254 +f 573/927/5 579/1385/5 584/928/133 +f 595/930/3 594/1386/3 582/931/3 +f 582/931/3 594/1386/3 593/933/3 +f 601/880/255 604/979/255 558/935/255 +f 578/929/133 584/928/133 583/937/134 +f 577/938/134 583/937/134 582/939/62 +f 647/940/256 648/1387/256 646/941/257 +f 626/944/2 628/1388/2 640/945/2 +f 628/1388/2 630/1389/2 640/945/2 +f 630/1389/2 632/1390/2 640/945/2 +f 632/1390/2 634/1391/2 640/945/2 +f 640/945/2 639/999/2 636/943/2 +f 637/946/258 640/1000/259 634/947/259 +f 643/949/260 642/924/260 638/950/261 +f 596/952/133 591/956/133 590/953/134 +f 587/955/5 586/1392/5 591/956/133 +f 595/954/134 590/953/134 589/957/62 +f 574/923/123 580/922/123 579/959/5 +f 556/961/62 598/848/62 599/854/62 +f 586/965/2 585/1393/2 590/963/2 +f 585/1393/2 588/1394/2 590/963/2 +f 588/1394/2 589/1395/2 590/963/2 +f 594/958/62 589/957/62 588/966/136 +f 603/968/262 602/1378/263 556/969/263 +f 631/971/264 632/991/264 630/972/243 +f 627/899/244 628/898/244 626/974/265 +f 618/976/3 622/1396/3 621/977/3 +f 593/933/3 592/920/3 580/921/3 +f 599/854/62 600/818/62 558/978/62 +f 604/979/266 603/968/266 557/980/266 +f 596/869/3 595/930/3 583/932/3 +f 592/982/123 585/992/123 586/983/5 +f 600/818/62 597/873/62 555/985/62 +f 601/880/62 602/1378/62 603/968/62 +f 611/907/248 612/906/248 610/986/245 +f 555/985/62 597/873/62 598/848/62 +f 617/912/267 620/911/267 614/987/267 +f 623/988/268 622/916/268 618/885/241 +f 625/975/265 626/974/265 636/989/269 +f 633/948/270 634/947/270 632/991/264 +f 593/967/136 588/966/136 585/992/123 +f 607/993/246 608/1397/246 606/994/249 +f 627/996/3 625/1398/3 637/997/3 +f 625/1398/3 635/1399/3 637/997/3 +f 635/1399/3 638/1001/3 637/997/3 +f 637/997/3 633/1400/3 631/1401/3 +f 631/1401/3 629/995/3 637/997/3 +f 635/990/269 636/989/269 639/951/261 +f 644/998/2 643/1402/2 639/999/2 +f 641/926/271 644/925/271 640/1000/271 +f 638/1001/3 642/1403/3 641/1002/3 +f 649/1003/272 650/1014/272 648/1004/256 +f 647/1007/3 645/1404/3 657/1008/3 +f 645/1404/3 655/1405/3 657/1008/3 +f 655/1405/3 658/1025/3 657/1008/3 +f 657/1008/3 653/1406/3 651/1407/3 +f 651/1407/3 649/1006/3 657/1008/3 +f 653/1009/273 654/1021/273 652/1010/274 +f 645/942/257 646/941/257 656/1012/275 +f 651/1011/274 652/1010/274 650/1014/272 +f 646/1016/2 648/1408/2 660/1017/2 +f 648/1408/2 650/1409/2 660/1017/2 +f 650/1409/2 652/1410/2 660/1017/2 +f 652/1410/2 654/1411/2 660/1017/2 +f 660/1017/2 659/1030/2 656/1015/2 +f 655/1013/276 656/1012/275 659/1018/277 +f 657/1020/278 660/1024/278 654/1021/278 +f 663/1022/279 662/1027/303 658/1019/277 +f 661/1023/280 664/1028/280 660/1024/280 +f 658/1025/3 662/1412/3 661/1026/3 +f 662/1027/281 663/1022/281 664/1028/281 +f 664/1029/2 663/1413/2 659/1030/2 +f 669/1031/282 670/1414/282 668/1032/283 +f 673/1034/284 674/1052/304 672/1035/285 +f 667/1033/283 668/1032/283 666/1037/286 +f 665/1038/286 666/1037/286 676/1039/287 +f 667/1042/3 665/1415/3 677/1043/3 +f 665/1415/3 675/1416/3 677/1043/3 +f 675/1416/3 678/1056/3 677/1043/3 +f 677/1043/3 673/1417/3 671/1418/3 +f 671/1418/3 669/1041/3 677/1043/3 +f 671/1036/285 672/1035/285 670/1044/282 +f 666/1047/2 668/1419/2 680/1048/2 +f 668/1419/2 670/1420/2 680/1048/2 +f 670/1420/2 672/1421/2 680/1048/2 +f 672/1421/2 674/1422/2 680/1048/2 +f 680/1048/2 679/1061/2 676/1046/2 +f 675/1040/287 676/1039/287 679/1049/288 +f 677/1051/289 680/1055/289 674/1052/289 +f 683/1053/290 682/1058/290 678/1050/288 +f 681/1054/291 684/1059/291 680/1055/291 +f 678/1056/3 682/1423/3 681/1057/3 +f 682/1058/292 683/1053/292 684/1059/292 +f 684/1060/2 683/1424/2 679/1061/2 +f 702/1062/293 726/1139/293 725/1063/293 +f 708/1065/293 732/1104/293 731/534/293 +f 706/1067/293 730/1215/293 729/1068/293 +f 704/1070/293 728/1094/293 727/1071/293 +f 698/1073/293 722/537/293 721/1074/293 +f 699/1076/293 700/1425/293 724/540/293 +f 370/617/62 398/616/62 361/1078/62 +f 380/1080/2 377/1337/2 372/620/2 +f 374/1082/62 394/1208/62 395/1083/62 +f 375/1084/62 378/675/62 389/674/62 +f 368/1086/62 348/1426/62 344/1087/62 +f 400/1089/177 405/1206/177 406/1090/177 +f 64/1092/4 63/46/4 58/1093/4 +f 728/1094/176 704/1427/176 692/1095/176 +f 358/1097/2 379/1428/2 370/1098/2 +f 365/1100/2 364/1183/2 22/1101/2 +f 729/1068/1 730/1215/1 718/1103/1 +f 732/1104/176 708/1/176 696/3/176 +f 366/1106/2 365/1100/2 23/1102/2 +f 348/1108/2 368/1137/2 26/1109/2 +f 394/1111/3 393/1120/3 51/1112/3 +f 711/1114/8 687/1429/8 699/1115/8 +f 704/1116/1 705/1430/1 693/1117/1 +f 434/571/62 431/627/62 423/1119/62 +f 393/1120/3 345/1431/3 3/1121/3 +f 382/1088/62 381/661/62 367/1122/62 +f 379/1123/62 358/1198/62 359/1124/62 +f 706/1126/1 707/1432/1 695/1127/1 +f 395/1129/3 394/1111/3 52/1113/3 +f 363/1131/2 362/546/2 20/548/2 +f 396/1133/3 395/1129/3 53/1130/3 +f 702/1134/1 703/1433/1 691/1135/1 +f 368/1137/2 367/1168/2 25/1138/2 +f 726/1139/176 702/1434/176 690/1140/176 +f 701/1142/8 725/1063/8 713/529/8 +f 360/634/1 357/579/1 352/578/1 +f 700/1145/1 701/1435/1 689/1146/1 +f 43/105/5 21/104/5 20/1148/5 +f 2/1150/6 8/1436/6 7/1151/6 +f 721/1074/1 722/537/1 710/539/1 +f 49/1153/5 34/1170/5 7/1154/5 +f 81/119/5 89/90/5 92/5/5 +f 10/20/1 15/22/1 18/80/1 +f 18/1159/5 15/1437/5 16/1160/5 +f 17/1161/5 16/1160/5 37/51/5 +f 705/1162/8 729/1068/8 717/552/8 +f 11/1157/5 4/24/5 19/1164/5 +f 698/1165/1 699/1438/1 687/1166/1 +f 727/1071/1 728/1094/1 716/1096/1 +f 731/534/1 732/1104/1 720/1105/1 +f 367/1168/2 366/1106/2 24/1107/2 +f 361/1169/3 398/549/3 56/551/3 +f 49/1153/1 80/10/1 73/12/1 +f 48/108/3 47/99/3 42/1171/3 +f 75/1172/5 74/11/5 79/1173/5 +f 40/569/5 26/568/5 25/1174/5 +f 28/43/2 37/1233/2 16/1175/2 +f 723/1077/1 724/540/1 712/542/1 +f 384/644/3 389/643/3 390/1177/3 +f 415/588/1 422/587/1 391/1178/1 +f 421/1180/62 416/586/62 417/1181/62 +f 364/1183/2 363/1131/2 21/1132/2 +f 419/1184/178 420/1182/178 417/1181/178 +f 364/642/62 365/611/62 383/1186/62 +f 412/639/178 409/638/178 410/1187/178 +f 361/1188/62 346/1336/62 353/1189/62 +f 356/669/62 347/598/62 362/1191/62 +f 343/1194/62 344/1439/62 703/1440/62 +f 344/1439/62 348/1441/62 708/1442/62 +f 708/1442/62 707/1443/62 344/1439/62 +f 707/1443/62 706/1444/62 344/1439/62 +f 344/1439/62 706/1444/62 705/1445/62 +f 697/1446/62 345/1447/62 343/1194/62 +f 700/1193/62 699/1448/62 343/1194/62 +f 699/1448/62 698/1449/62 343/1194/62 +f 698/1449/62 697/1446/62 343/1194/62 +f 705/1445/62 704/1450/62 344/1439/62 +f 704/1450/62 703/1440/62 344/1439/62 +f 703/1440/62 702/1451/62 343/1194/62 +f 702/1451/62 701/1192/62 343/1194/62 +f 436/1195/2 435/624/2 423/1196/2 +f 358/1198/62 357/1452/62 360/1199/62 +f 725/1063/1 726/1139/1 714/1141/1 +f 349/1200/6 350/1453/6 344/1201/6 +f 399/1091/1 406/1090/1 387/662/1 +f 437/625/1 436/1195/1 424/1204/1 +f 405/1206/62 400/1089/62 401/1207/62 +f 370/1098/2 379/1428/2 380/1080/2 +f 373/665/62 393/664/62 394/1208/62 +f 403/623/6 402/622/6 379/1123/6 +f 450/686/183 447/685/183 446/1209/294 +f 423/1119/62 431/627/62 432/607/62 +f 349/1211/62 376/1179/62 391/1178/62 +f 448/1210/295 446/1209/294 441/1213/6 +f 419/1184/6 418/1185/6 375/1084/6 +f 730/1215/176 706/1454/176 694/1216/176 +o base +v -2.500000 1.000000 0.125000 +v 2.500000 1.000000 0.125000 +v -2.500000 1.000000 -0.125000 +v 2.500000 1.000000 -0.125000 +v -2.163461 1.000000 0.125000 +v -1.682692 1.000000 0.125000 +v -1.394231 1.000000 0.125000 +v -0.913461 1.000000 0.125000 +v -0.625000 1.000000 0.125000 +v -0.144231 1.000000 0.125000 +v 0.144231 1.000000 0.125000 +v 0.625000 1.000000 0.125000 +v 0.913462 1.000000 0.125000 +v 1.394231 1.000000 0.125000 +v 1.682693 1.000000 0.125000 +v 2.163462 1.000000 0.125000 +v -2.163461 1.000000 -0.125000 +v -1.682692 1.000000 -0.125000 +v -1.394231 1.000000 -0.125000 +v -0.913461 1.000000 -0.125000 +v -0.625000 1.000000 -0.125000 +v -0.144231 1.000000 -0.125000 +v 0.144231 1.000000 -0.125000 +v 0.625000 1.000000 -0.125000 +v 0.913462 1.000000 -0.125000 +v 1.394231 1.000000 -0.125000 +v 1.682693 1.000000 -0.125000 +v 2.163462 1.000000 -0.125000 +v -2.043269 0.875000 0.093750 +v -1.802885 0.875000 0.093750 +v -1.274038 0.875000 0.093750 +v -1.033654 0.875000 0.093750 +v -0.504808 0.875000 0.093750 +v -0.264423 0.875000 0.093750 +v 0.264423 0.875000 0.093750 +v 0.504808 0.875000 0.093750 +v 1.033654 0.875000 0.093750 +v 1.274039 0.875000 0.093750 +v 1.802885 0.875000 0.093750 +v 2.043269 0.875000 0.093750 +v -2.043269 0.875000 -0.093750 +v -1.802885 0.875000 -0.093750 +v -1.274038 0.875000 -0.093750 +v -1.033654 0.875000 -0.093750 +v -0.504808 0.875000 -0.093750 +v -0.264423 0.875000 -0.093750 +v 0.264423 0.875000 -0.093750 +v 0.504808 0.875000 -0.093750 +v 1.033654 0.875000 -0.093750 +v 1.274039 0.875000 -0.093750 +v 1.802885 0.875000 -0.093750 +v 2.043269 0.875000 -0.093750 +v -2.500000 1.000000 0.500000 +v -2.500000 1.000000 -0.500000 +v 2.500000 1.000000 0.500000 +v 2.500000 1.000000 -0.500000 +v -2.500000 0.000000 0.500000 +v -2.500000 0.000000 -0.500000 +v 2.500000 0.000000 0.500000 +v 2.500000 0.000000 -0.500000 +v 2.163462 1.062500 0.125000 +v 2.500000 1.062500 0.125000 +v 2.163462 1.062500 -0.125000 +v 2.500000 1.062500 -0.125000 +v -2.500000 1.062500 0.125000 +v -2.163461 1.062500 0.125000 +v -1.682692 1.062500 0.125000 +v -1.394231 1.062500 0.125000 +v -0.913461 1.062500 0.125000 +v -0.625000 1.062500 0.125000 +v -0.144231 1.062500 0.125000 +v 0.144231 1.062500 0.125000 +v 0.625000 1.062500 0.125000 +v 0.913462 1.062500 0.125000 +v 1.394231 1.062500 0.125000 +v 1.682693 1.062500 0.125000 +v -2.500000 1.062500 -0.125000 +v -2.163461 1.062500 -0.125000 +v -1.682692 1.062500 -0.125000 +v -1.394231 1.062500 -0.125000 +v -0.913461 1.062500 -0.125000 +v -0.625000 1.062500 -0.125000 +v -0.144231 1.062500 -0.125000 +v 0.144231 1.062500 -0.125000 +v 0.625000 1.062500 -0.125000 +v 0.913462 1.062500 -0.125000 +v 1.394231 1.062500 -0.125000 +v 1.682693 1.062500 -0.125000 +v -2.500000 1.062500 0.437500 +v 2.500000 1.062500 0.437500 +v 2.500000 1.062500 -0.437500 +v -2.500000 1.062500 -0.437500 +v -2.500000 4.499997 0.125000 +v 2.500000 4.499997 0.125000 +v -2.500000 4.499997 -0.125000 +v 2.500000 4.499997 -0.125000 +v 2.500000 4.999997 -0.125000 +v -2.500000 4.999997 -0.125000 +v 2.500000 4.999997 0.125000 +v -2.500000 4.999997 0.125000 +v 2.500000 4.584002 -0.341924 +v -2.500000 4.584002 -0.341924 +v 2.500000 4.584002 0.341924 +v -2.500000 4.584002 0.341924 +v 2.500000 4.999997 -0.341924 +v -2.500000 4.999997 -0.341924 +v 2.500000 4.999997 0.341924 +v -2.500000 4.999997 0.341924 +vt 0.995551 0.832453 +vt 0.903538 0.372388 +vt 0.995551 0.372388 +vt 0.004449 0.740332 +vt 0.464514 0.832345 +vt 0.004449 0.832345 +vt 0.894639 0.464401 +vt 0.434574 0.372388 +vt 0.894639 0.372388 +vt 0.883297 0.104396 +vt 0.914263 0.127399 +vt 0.883297 0.127399 +vt 0.241266 0.930716 +vt 0.264269 0.904173 +vt 0.264269 0.930716 +vt 0.221219 0.879319 +vt 0.209364 0.846141 +vt 0.221219 0.857200 +vt 0.909839 0.192797 +vt 0.883297 0.169794 +vt 0.909839 0.169794 +vt 0.485268 0.852835 +vt 0.505396 0.836879 +vt 0.502521 0.852835 +vt 0.473413 0.926350 +vt 0.496416 0.899808 +vt 0.496416 0.926350 +vt 0.195568 0.841244 +vt 0.162390 0.853100 +vt 0.151331 0.841244 +vt 0.318069 0.895275 +vt 0.338196 0.879319 +vt 0.341072 0.895275 +vt 0.514376 0.886013 +vt 0.514376 0.841776 +vt 0.499255 0.651053 +vt 0.525797 0.674057 +vt 0.499255 0.674057 +vt 0.370806 0.879319 +vt 0.358951 0.846141 +vt 0.370806 0.857200 +vt 0.502521 0.874953 +vt 0.288334 0.879319 +vt 0.271082 0.857200 +vt 0.288334 0.857200 +vt 0.238472 0.879319 +vt 0.238472 0.857200 +vt 0.320944 0.857200 +vt 0.338196 0.857200 +vt 0.184509 0.853100 +vt 0.162390 0.870352 +vt 0.388059 0.879319 +vt 0.388059 0.857200 +vt 0.146434 0.850224 +vt 0.482393 0.890909 +vt 0.505396 0.890909 +vt 0.300190 0.890378 +vt 0.300190 0.846141 +vt 0.200465 0.873228 +vt 0.200465 0.850224 +vt 0.399914 0.846141 +vt 0.291209 0.841244 +vt 0.320944 0.879319 +vt 0.309088 0.846141 +vt 0.390934 0.841244 +vt 0.268206 0.895275 +vt 0.291209 0.895275 +vt 0.250327 0.890378 +vt 0.250327 0.846141 +vt 0.367931 0.895275 +vt 0.390934 0.895275 +vt 0.485268 0.874953 +vt 0.473413 0.841776 +vt 0.241347 0.841244 +vt 0.218344 0.841244 +vt 0.184509 0.870352 +vt 0.151331 0.882208 +vt 0.218344 0.895275 +vt 0.350052 0.890378 +vt 0.350052 0.846141 +vt 0.271082 0.879319 +vt 0.259226 0.846141 +vt 0.341072 0.841244 +vt 0.318069 0.841244 +vt 0.894636 0.700521 +vt 0.888604 0.654741 +vt 0.894521 0.654738 +vt 0.841467 0.867572 +vt 0.836035 0.841924 +vt 0.841594 0.841952 +vt 0.522258 0.605178 +vt 0.499255 0.574212 +vt 0.522258 0.574212 +vt 0.209364 0.930716 +vt 0.232367 0.904173 +vt 0.232367 0.930716 +vt 0.469079 0.565313 +vt 0.434574 0.565313 +vt 0.434574 0.473300 +vt 0.535833 0.096462 +vt 0.501328 0.004449 +vt 0.593341 0.004449 +vt 0.836363 0.773181 +vt 0.836233 0.799101 +vt 0.807869 0.939936 +vt 0.888458 0.773182 +vt 0.888328 0.799102 +vt 0.859964 0.939936 +vt 0.841825 0.799136 +vt 0.894639 0.729014 +vt 0.888578 0.700511 +vt 0.842044 0.773229 +vt 0.836608 0.729026 +vt 0.842544 0.729014 +vt 0.836709 0.473339 +vt 0.807494 0.479148 +vt 0.801659 0.473300 +vt 0.894139 0.773229 +vt 0.888703 0.729026 +vt 0.836483 0.700510 +vt 0.842541 0.700521 +vt 0.835565 0.945607 +vt 0.835591 0.940063 +vt 0.893920 0.799137 +vt 0.836509 0.654740 +vt 0.842426 0.654737 +vt 0.888803 0.473339 +vt 0.859588 0.479148 +vt 0.853753 0.473300 +vt 0.893689 0.841952 +vt 0.836534 0.627597 +vt 0.842402 0.627598 +vt 0.887660 0.945608 +vt 0.887686 0.940063 +vt 0.893562 0.867572 +vt 0.888130 0.841925 +vt 0.836583 0.582562 +vt 0.842433 0.582567 +vt 0.893366 0.910233 +vt 0.888013 0.867546 +vt 0.836614 0.555582 +vt 0.842458 0.555588 +vt 0.842508 0.510644 +vt 0.836702 0.479181 +vt 0.842544 0.479188 +vt 0.836666 0.510638 +vt 0.894603 0.510644 +vt 0.888797 0.479181 +vt 0.894639 0.479188 +vt 0.893230 0.940089 +vt 0.887821 0.910207 +vt 0.894553 0.555588 +vt 0.888761 0.510638 +vt 0.799348 0.479155 +vt 0.799723 0.939943 +vt 0.894528 0.582568 +vt 0.888709 0.555582 +vt 0.841135 0.940088 +vt 0.835726 0.910207 +vt 0.841271 0.910232 +vt 0.851443 0.479155 +vt 0.851818 0.939943 +vt 0.894497 0.627599 +vt 0.888678 0.582562 +vt 0.835918 0.867546 +vt 0.888628 0.627597 +vt 0.233016 0.948456 +vt 0.251643 0.984178 +vt 0.233016 0.991391 +vt 0.014324 0.956233 +vt 0.443677 0.977701 +vt 0.014324 0.977701 +vt 0.082167 0.993341 +vt 0.103634 0.950405 +vt 0.103634 0.993341 +vt 0.211548 0.991391 +vt 0.122262 0.986127 +vt 0.032779 0.982491 +vt 0.462133 0.946769 +vt 0.462133 0.982491 +vt 0.476898 0.940769 +vt 0.047544 0.976491 +vt 0.047544 0.940769 +vt 0.503969 0.961382 +vt 0.074613 0.981357 +vt 0.074613 0.961382 +vt 0.443677 0.937606 +vt 0.443677 0.956233 +vt 0.483594 0.956906 +vt 0.054238 0.976881 +vt 0.054238 0.956906 +vt 0.211548 0.948456 +vt 0.192921 0.984178 +vt 0.192921 0.948456 +vt 0.082167 0.950405 +vt 0.063539 0.986127 +vt 0.063539 0.950405 +vt 0.014324 0.996329 +vt 0.903538 0.832453 +vt 0.464514 0.740333 +vt 0.434574 0.464401 +vt 0.914263 0.104396 +vt 0.241266 0.904173 +vt 0.209364 0.890378 +vt 0.883297 0.192797 +vt 0.482393 0.836879 +vt 0.473413 0.899808 +vt 0.525797 0.651053 +vt 0.358951 0.890378 +vt 0.146434 0.873228 +vt 0.399914 0.890378 +vt 0.268206 0.841244 +vt 0.309088 0.890378 +vt 0.367931 0.841244 +vt 0.473413 0.886012 +vt 0.195568 0.882208 +vt 0.241347 0.895275 +vt 0.259226 0.890378 +vt 0.499255 0.605178 +vt 0.209364 0.904173 +vt 0.526587 0.473300 +vt 0.492082 0.565313 +vt 0.526587 0.565313 +vt 0.593341 0.096462 +vt 0.558837 0.096462 +vt 0.501328 0.096462 +vt 0.802299 0.945455 +vt 0.854395 0.945455 +vt 0.251643 0.948456 +vt 0.122262 0.950405 +vt 0.032779 0.946769 +vt 0.476898 0.976491 +vt 0.503969 0.981358 +vt 0.014324 0.937606 +vt 0.483594 0.976881 +vt 0.443677 0.996329 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.2425 0.9701 +vn 0.7208 0.6931 0.0000 +vn 0.0000 0.2425 -0.9701 +vn -0.7208 0.6931 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.8321 0.3922 0.3922 +vn 0.4472 0.6325 0.6325 +vn -0.7071 0.0000 -0.7071 +vn -0.8321 0.3922 0.3922 +vn -0.7071 0.0000 0.7071 +vn -0.8321 0.3922 -0.3922 +vn -0.4472 0.6325 -0.6325 +vn 0.7071 0.0000 0.7071 +vn 0.8321 0.3922 -0.3922 +vn -0.4472 0.6325 0.6325 +vn 0.4472 0.6325 -0.6325 +vn 0.8944 0.4472 0.0000 +vn 0.5993 -0.4524 0.6604 +vn 0.8700 -0.4597 0.1780 +vn -0.8700 -0.4597 0.1780 +vn -0.8944 0.4472 0.0000 +vn -0.8700 -0.4597 -0.1780 +vn 0.8700 -0.4597 -0.1780 +vn -0.5993 -0.4524 -0.6604 +vn -0.5774 0.5774 0.5774 +vn -0.5993 -0.4524 0.6604 +vn 0.5774 0.5774 -0.5774 +vn 0.5993 -0.4524 -0.6604 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 0.5774 +s 1 +f 792/1455/305 789/1456/305 790/1457/305 +f 792/1458/306 786/1459/306 788/1460/306 +f 789/1461/307 787/1462/307 785/1463/307 +f 736/1464/308 748/1465/308 734/1466/308 +f 755/1467/308 742/1468/308 743/1469/308 +f 778/1470/309 753/1471/309 777/1472/309 +f 738/1473/308 751/1474/308 750/1475/308 +f 773/1476/310 737/1477/310 761/1478/310 +f 753/1479/308 740/1480/308 741/1481/308 +f 746/1482/311 769/1483/311 745/1484/311 +f 756/1485/312 768/1486/312 744/1487/312 +f 738/1488/311 761/1478/311 737/1489/311 +f 759/1490/308 746/1491/308 747/1492/308 +f 784/1493/309 759/1494/309 783/1495/309 +f 762/1496/308 773/1476/308 761/1478/308 +f 764/1497/308 775/1498/308 763/1499/308 +f 766/1500/308 777/1472/308 765/1501/308 +f 768/1486/308 779/1502/308 767/1503/308 +f 770/1504/308 781/1505/308 769/1483/308 +f 772/1506/308 783/1495/308 771/1507/308 +f 781/1505/310 745/1508/310 769/1483/310 +f 750/1509/312 762/1496/312 738/1510/312 +f 740/1511/311 763/1499/311 739/1512/311 +f 758/1513/312 770/1504/312 746/1514/312 +f 747/1515/311 772/1506/311 771/1507/311 +f 775/1498/310 739/1516/310 763/1499/310 +f 780/1517/309 755/1518/309 779/1502/309 +f 783/1495/310 747/1519/310 771/1507/310 +f 752/1520/312 764/1497/312 740/1521/312 +f 742/1522/311 765/1501/311 741/1523/311 +f 760/1524/312 772/1506/312 748/1525/312 +f 774/1526/309 749/1527/309 773/1476/309 +f 741/1528/310 777/1472/310 753/1529/310 +f 782/1530/309 757/1531/309 781/1505/309 +f 766/1500/312 754/1532/312 778/1470/312 +f 744/1533/311 767/1503/311 743/1534/311 +f 776/1535/309 751/1536/309 775/1498/309 +f 743/1537/310 779/1502/310 755/1538/310 +f 754/1539/307 814/1540/307 753/1541/307 +f 738/1542/306 800/1543/306 739/1544/306 +f 737/1545/308 735/1546/308 733/1547/308 +f 757/1548/308 744/1549/308 745/1550/308 +f 734/1551/313 787/1552/313 791/1553/313 +f 735/1554/314 790/1555/314 789/1556/314 +f 802/1557/308 801/1558/308 821/1559/308 +f 817/1560/308 818/1561/308 823/1562/308 +f 739/1544/306 801/1558/306 740/1563/306 +f 755/1564/307 815/1565/307 754/1539/307 +f 741/1566/306 803/1567/306 742/1568/306 +f 734/1569/315 822/1570/316 787/1571/317 +f 756/1572/307 816/1573/307 755/1564/307 +f 742/1568/306 804/1574/306 743/1575/306 +f 733/1576/318 821/1559/319 797/1577/318 +f 757/1578/307 817/1560/307 756/1572/307 +f 743/1575/306 805/1579/306 744/1580/306 +f 735/1581/320 824/1582/321 786/1583/322 +f 758/1584/307 818/1561/307 757/1578/307 +f 744/1580/306 806/1585/306 745/1586/306 +f 736/1587/323 823/1562/324 796/1588/323 +f 759/1589/307 819/1590/307 758/1584/307 +f 745/1586/306 807/1591/306 746/1592/306 +f 760/1593/307 820/1594/307 759/1589/307 +f 746/1592/306 808/1595/306 747/1596/306 +f 748/1597/306 794/1598/315 734/1599/315 +f 747/1596/306 793/1600/306 748/1597/306 +f 740/1563/306 802/1557/306 741/1566/306 +f 749/1601/307 809/1602/320 735/1603/320 +f 736/1604/323 795/1605/307 760/1593/307 +f 750/1606/307 810/1607/307 749/1601/307 +f 787/1608/317 821/1559/319 785/1609/325 +f 751/1610/307 811/1611/307 750/1606/307 +f 733/1612/318 798/1613/306 737/1614/306 +f 786/1615/322 823/1562/324 788/1616/326 +f 752/1617/307 812/1618/307 751/1610/307 +f 737/1614/306 799/1619/306 738/1542/306 +f 753/1541/307 813/1620/307 752/1617/307 +f 831/1621/327 835/1622/328 826/1623/329 +f 829/1624/308 832/1625/308 831/1626/308 +f 825/1627/330 830/1628/331 827/1629/332 +f 828/1630/333 831/1621/327 826/1623/329 +f 830/1628/331 834/1631/334 827/1629/332 +f 835/1632/328 840/1633/335 836/1634/336 +f 834/1635/334 837/1636/337 833/1637/338 +f 827/1638/332 833/1639/338 828/1640/333 +f 829/1624/327 838/1641/339 830/1642/331 +f 826/1643/329 836/1644/336 825/1645/330 +f 829/1646/327 833/1647/338 837/1648/337 +f 832/1649/331 836/1650/336 840/1651/335 +f 832/1625/331 839/1652/340 831/1626/327 +f 792/1455/305 791/1653/305 789/1456/305 +f 792/1458/306 790/1654/306 786/1459/306 +f 789/1461/307 791/1655/307 787/1462/307 +f 736/1464/308 760/1656/308 748/1465/308 +f 755/1467/308 754/1657/308 742/1468/308 +f 778/1470/309 754/1658/309 753/1471/309 +f 738/1473/308 739/1659/308 751/1474/308 +f 773/1476/310 749/1660/310 737/1477/310 +f 753/1479/308 752/1661/308 740/1480/308 +f 746/1482/311 770/1504/311 769/1483/311 +f 756/1485/312 780/1517/312 768/1486/312 +f 738/1488/311 762/1496/311 761/1478/311 +f 759/1490/308 758/1662/308 746/1491/308 +f 784/1493/309 760/1663/309 759/1494/309 +f 762/1496/308 774/1526/308 773/1476/308 +f 764/1497/308 776/1535/308 775/1498/308 +f 766/1500/308 778/1470/308 777/1472/308 +f 768/1486/308 780/1517/308 779/1502/308 +f 770/1504/308 782/1530/308 781/1505/308 +f 772/1506/308 784/1493/308 783/1495/308 +f 781/1505/310 757/1664/310 745/1508/310 +f 750/1509/312 774/1526/312 762/1496/312 +f 740/1511/311 764/1497/311 763/1499/311 +f 758/1513/312 782/1530/312 770/1504/312 +f 747/1515/311 748/1665/311 772/1506/311 +f 775/1498/310 751/1666/310 739/1516/310 +f 780/1517/309 756/1667/309 755/1518/309 +f 783/1495/310 759/1668/310 747/1519/310 +f 752/1520/312 776/1535/312 764/1497/312 +f 742/1522/311 766/1500/311 765/1501/311 +f 760/1524/312 784/1493/312 772/1506/312 +f 774/1526/309 750/1669/309 749/1527/309 +f 741/1528/310 765/1501/310 777/1472/310 +f 782/1530/309 758/1670/309 757/1531/309 +f 766/1500/312 742/1671/312 754/1532/312 +f 744/1533/311 768/1486/311 767/1503/311 +f 776/1535/309 752/1672/309 751/1536/309 +f 743/1537/310 767/1503/310 779/1502/310 +f 754/1539/307 815/1565/307 814/1540/307 +f 738/1542/306 799/1619/306 800/1543/306 +f 737/1545/308 749/1673/308 735/1546/308 +f 757/1548/308 756/1674/308 744/1549/308 +f 791/1553/313 792/1675/313 736/1676/313 +f 792/1675/313 788/1677/313 736/1676/313 +f 736/1676/313 734/1551/313 791/1553/313 +f 789/1556/314 785/1678/314 733/1679/314 +f 735/1554/314 786/1680/314 790/1555/314 +f 789/1556/314 733/1679/314 735/1554/314 +f 821/1559/308 822/1570/308 804/1574/308 +f 822/1570/308 794/1598/308 793/1600/308 +f 793/1600/308 808/1595/308 822/1570/308 +f 808/1595/308 807/1591/308 822/1570/308 +f 822/1570/308 807/1591/308 806/1585/308 +f 798/1613/308 797/1577/308 821/1559/308 +f 801/1558/308 800/1543/308 821/1559/308 +f 800/1543/308 799/1619/308 821/1559/308 +f 799/1619/308 798/1613/308 821/1559/308 +f 806/1585/308 805/1579/308 822/1570/308 +f 805/1579/308 804/1574/308 822/1570/308 +f 804/1574/308 803/1567/308 821/1559/308 +f 803/1567/308 802/1557/308 821/1559/308 +f 823/1562/308 824/1582/308 815/1565/308 +f 824/1582/308 809/1602/308 810/1607/308 +f 810/1607/308 811/1611/308 824/1582/308 +f 811/1611/308 812/1618/308 824/1582/308 +f 824/1582/308 812/1618/308 813/1620/308 +f 795/1605/308 796/1588/308 823/1562/308 +f 818/1561/308 819/1590/308 823/1562/308 +f 819/1590/308 820/1594/308 823/1562/308 +f 820/1594/308 795/1605/308 823/1562/308 +f 813/1620/308 814/1540/308 824/1582/308 +f 814/1540/308 815/1565/308 824/1582/308 +f 815/1565/308 816/1573/308 823/1562/308 +f 816/1573/308 817/1560/308 823/1562/308 +f 739/1544/306 800/1543/306 801/1558/306 +f 755/1564/307 816/1573/307 815/1565/307 +f 741/1566/306 802/1557/306 803/1567/306 +f 734/1569/315 794/1598/315 822/1570/316 +f 756/1572/307 817/1560/307 816/1573/307 +f 742/1568/306 803/1567/306 804/1574/306 +f 733/1576/318 785/1681/325 821/1559/319 +f 757/1578/307 818/1561/307 817/1560/307 +f 743/1575/306 804/1574/306 805/1579/306 +f 735/1581/320 809/1602/320 824/1582/321 +f 758/1584/307 819/1590/307 818/1561/307 +f 744/1580/306 805/1579/306 806/1585/306 +f 736/1587/323 788/1682/326 823/1562/324 +f 759/1589/307 820/1594/307 819/1590/307 +f 745/1586/306 806/1585/306 807/1591/306 +f 760/1593/307 795/1605/307 820/1594/307 +f 746/1592/306 807/1591/306 808/1595/306 +f 748/1597/306 793/1600/306 794/1598/315 +f 747/1596/306 808/1595/306 793/1600/306 +f 740/1563/306 801/1558/306 802/1557/306 +f 749/1601/307 810/1607/307 809/1602/320 +f 736/1604/323 796/1588/323 795/1605/307 +f 750/1606/307 811/1611/307 810/1607/307 +f 787/1608/317 822/1570/316 821/1559/319 +f 751/1610/307 812/1618/307 811/1611/307 +f 733/1612/318 797/1577/318 798/1613/306 +f 786/1615/322 824/1582/321 823/1562/324 +f 752/1617/307 813/1620/307 812/1618/307 +f 737/1614/306 798/1613/306 799/1619/306 +f 753/1541/307 814/1540/307 813/1620/307 +f 831/1621/327 839/1683/340 835/1622/328 +f 829/1624/308 830/1642/308 832/1625/308 +f 825/1627/330 832/1649/331 830/1628/331 +f 828/1630/333 829/1646/327 831/1621/327 +f 830/1628/331 838/1684/339 834/1631/334 +f 835/1632/328 839/1685/340 840/1633/335 +f 834/1635/334 838/1686/339 837/1636/337 +f 827/1638/332 834/1687/334 833/1639/338 +f 829/1624/327 837/1688/337 838/1641/339 +f 826/1643/329 835/1689/328 836/1644/336 +f 829/1646/327 828/1630/333 833/1647/338 +f 832/1649/331 825/1627/330 836/1650/336 +f 832/1625/331 840/1690/335 839/1652/340 diff --git a/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj new file mode 100644 index 000000000..dc0017cc3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj @@ -0,0 +1,2522 @@ +# Blender v2.92.0 OBJ File: 'sliding_seal_door.blend' +# www.blender.org +o frame +v 0.125000 2.000000 -0.500000 +v 0.125000 0.000000 -0.500000 +v 0.125000 0.000000 0.500000 +v 0.125000 2.000000 0.500000 +v 0.125000 0.076037 0.228141 +v 0.125000 0.271859 0.423963 +v 0.125000 0.102272 0.326052 +v 0.125000 0.173948 0.397728 +v 0.125000 1.728141 0.423963 +v 0.125000 1.923963 0.228141 +v 0.125000 1.826052 0.397728 +v 0.125000 1.897728 0.326052 +v 0.125000 0.271859 -0.423963 +v 0.125000 0.076037 -0.228141 +v 0.125000 0.173948 -0.397728 +v 0.125000 0.102272 -0.326052 +v 0.125000 1.923963 -0.228141 +v 0.125000 1.728141 -0.423963 +v 0.125000 1.897728 -0.326052 +v 0.125000 1.826052 -0.397728 +v 0.089033 1.728141 -0.423963 +v 0.089033 1.826052 -0.397728 +v 0.089033 1.897728 -0.326052 +v 0.089033 1.923963 -0.228141 +v 0.089033 0.076037 -0.228141 +v 0.089033 0.102272 -0.326052 +v 0.089033 0.173948 -0.397728 +v 0.089033 0.271859 -0.423963 +v 0.089033 0.271859 0.423963 +v 0.089033 0.173948 0.397728 +v 0.089033 0.102272 0.326052 +v 0.089033 0.076037 0.228141 +v 0.089033 1.923963 0.228141 +v 0.089033 1.897728 0.326052 +v 0.089033 1.826052 0.397728 +v 0.089033 1.728141 0.423963 +v 0.089033 0.036209 -0.233384 +v 0.089033 0.036209 0.233384 +v 0.089033 1.846138 0.432517 +v 0.089033 1.733384 0.463791 +v 0.089033 1.932517 0.346138 +v 0.089033 1.963791 0.233384 +v 0.089033 0.067483 0.346138 +v 0.089033 0.153862 0.432517 +v 0.089033 0.266616 0.463791 +v 0.089033 0.036209 -0.432517 +v 0.089033 0.036209 -0.477970 +v 0.089033 0.036209 -0.346138 +v 0.089033 1.963791 -0.346138 +v 0.089033 1.963791 -0.233384 +v 0.089033 1.963791 -0.432517 +v 0.089033 1.963791 -0.477970 +v 0.125000 0.053035 0.242267 +v 0.125000 0.253733 0.450214 +v 0.125000 0.079924 0.346241 +v 0.125000 0.153384 0.422355 +v 0.125000 1.746267 0.450214 +v 0.125000 1.946965 0.242267 +v 0.125000 1.846616 0.422355 +v 0.125000 1.920076 0.346241 +v 0.125000 0.253733 -0.450214 +v 0.125000 0.053035 -0.242267 +v 0.125000 0.153384 -0.422355 +v 0.125000 0.079924 -0.346241 +v 0.125000 1.946965 -0.242267 +v 0.125000 1.746267 -0.450214 +v 0.125000 1.920076 -0.346241 +v 0.125000 1.846616 -0.422355 +v 0.139289 0.068129 0.233128 +v 0.139289 0.094589 0.333179 +v 0.139289 0.166878 0.406422 +v 0.139289 0.265627 0.433231 +v 0.139289 1.734373 0.433231 +v 0.139289 1.833122 0.406422 +v 0.139289 1.905411 0.333179 +v 0.139289 1.931871 0.233128 +v 0.139289 0.265627 -0.433231 +v 0.139289 0.166878 -0.406422 +v 0.139289 0.094589 -0.333179 +v 0.139289 0.068129 -0.233128 +v 0.139289 1.931871 -0.233128 +v 0.139289 1.905411 -0.333179 +v 0.139289 1.833122 -0.406422 +v 0.139289 1.734373 -0.433231 +v 0.139289 0.058093 0.238676 +v 0.139289 0.084837 0.341109 +v 0.139289 0.157905 0.416095 +v 0.139289 0.257718 0.443541 +v 0.139289 1.742282 0.443541 +v 0.139289 1.842094 0.416095 +v 0.139289 1.915163 0.341109 +v 0.139289 1.941907 0.238676 +v 0.139289 0.257718 -0.443541 +v 0.139289 0.157905 -0.416095 +v 0.139289 0.084837 -0.341109 +v 0.139289 0.058093 -0.238676 +v 0.139289 1.941907 -0.238676 +v 0.139289 1.915163 -0.341109 +v 0.139289 1.842094 -0.416095 +v 0.139289 1.742282 -0.443541 +v -0.125000 2.000000 -0.500000 +v -0.125000 0.000000 -0.500000 +v -0.125000 0.000000 0.500000 +v -0.125000 2.000000 0.500000 +v -0.125000 0.076037 0.228141 +v -0.125000 0.271859 0.423963 +v -0.125000 0.102272 0.326052 +v -0.125000 0.173948 0.397728 +v -0.125000 1.728141 0.423963 +v -0.125000 1.923963 0.228141 +v -0.125000 1.826052 0.397728 +v -0.125000 1.897728 0.326052 +v -0.125000 0.271859 -0.423963 +v -0.125000 0.076037 -0.228141 +v -0.125000 0.173948 -0.397728 +v -0.125000 0.102272 -0.326052 +v -0.125000 1.923963 -0.228141 +v -0.125000 1.728141 -0.423963 +v -0.125000 1.897728 -0.326052 +v -0.125000 1.826052 -0.397728 +v -0.089033 1.728141 -0.423963 +v -0.089033 1.826052 -0.397728 +v -0.089033 1.897728 -0.326052 +v -0.089033 1.923963 -0.228141 +v -0.089033 0.076037 -0.228141 +v -0.089033 0.102272 -0.326052 +v -0.089033 0.173948 -0.397728 +v -0.089033 0.271859 -0.423963 +v -0.089033 0.271859 0.423963 +v -0.089033 0.173948 0.397728 +v -0.089033 0.102272 0.326052 +v -0.089033 0.076037 0.228141 +v -0.089033 1.923963 0.228141 +v -0.089033 1.897728 0.326052 +v -0.089033 1.826052 0.397728 +v -0.089033 1.728141 0.423963 +v -0.089033 0.036209 -0.233384 +v -0.089033 0.036209 0.233384 +v -0.089033 1.846138 0.432517 +v -0.089033 1.733384 0.463791 +v -0.089033 1.932517 0.346138 +v -0.089033 1.963791 0.233384 +v -0.089033 0.067483 0.346138 +v -0.089033 0.153862 0.432517 +v -0.089033 0.266616 0.463791 +v -0.089033 0.036209 -0.432517 +v -0.089033 0.036209 -0.477970 +v -0.089033 0.036209 -0.346138 +v -0.089033 1.963791 -0.346138 +v -0.089033 1.963791 -0.233384 +v -0.089033 1.963791 -0.432517 +v -0.089033 1.963791 -0.477970 +v -0.125000 0.053035 0.242267 +v -0.125000 0.253733 0.450214 +v -0.125000 0.079924 0.346241 +v -0.125000 0.153384 0.422355 +v -0.125000 1.746267 0.450214 +v -0.125000 1.946965 0.242267 +v -0.125000 1.846616 0.422355 +v -0.125000 1.920076 0.346241 +v -0.125000 0.253733 -0.450214 +v -0.125000 0.053035 -0.242267 +v -0.125000 0.153384 -0.422355 +v -0.125000 0.079924 -0.346241 +v -0.125000 1.946965 -0.242267 +v -0.125000 1.746267 -0.450214 +v -0.125000 1.920076 -0.346241 +v -0.125000 1.846616 -0.422355 +v -0.139289 0.068129 0.233128 +v -0.139289 0.094589 0.333179 +v -0.139289 0.166878 0.406422 +v -0.139289 0.265627 0.433231 +v -0.139289 1.734373 0.433231 +v -0.139289 1.833122 0.406422 +v -0.139289 1.905411 0.333179 +v -0.139289 1.931871 0.233128 +v -0.139289 0.265627 -0.433231 +v -0.139289 0.166878 -0.406422 +v -0.139289 0.094589 -0.333179 +v -0.139289 0.068129 -0.233128 +v -0.139289 1.931871 -0.233128 +v -0.139289 1.905411 -0.333179 +v -0.139289 1.833122 -0.406422 +v -0.139289 1.734373 -0.433231 +v -0.139289 0.058093 0.238676 +v -0.139289 0.084837 0.341109 +v -0.139289 0.157905 0.416095 +v -0.139289 0.257718 0.443541 +v -0.139289 1.742282 0.443541 +v -0.139289 1.842094 0.416095 +v -0.139289 1.915163 0.341109 +v -0.139289 1.941907 0.238676 +v -0.139289 0.257718 -0.443541 +v -0.139289 0.157905 -0.416095 +v -0.139289 0.084837 -0.341109 +v -0.139289 0.058093 -0.238676 +v -0.139289 1.941907 -0.238676 +v -0.139289 1.915163 -0.341109 +v -0.139289 1.842094 -0.416095 +v -0.139289 1.742282 -0.443541 +v 0.000000 0.036209 0.233384 +v 0.000000 1.846138 0.432517 +v 0.000000 1.932517 0.346138 +v 0.000000 1.963791 0.233384 +v 0.000000 0.067483 0.346138 +v 0.000000 0.153862 0.432517 +v 0.000000 0.266616 0.463791 +v 0.000000 0.036209 -0.432517 +v 0.000000 0.036209 -0.346138 +v 0.000000 1.963791 -0.346138 +v 0.000000 1.963791 -0.432517 +v 0.000000 1.963791 -0.477970 +v 0.000000 0.036209 -0.233384 +v 0.000000 1.733384 0.463791 +v 0.000000 0.036209 -0.477970 +v 0.000000 1.963791 -0.233384 +vt 0.904854 0.827347 +vt 0.912404 0.923128 +vt 0.904854 0.923128 +vt 0.182166 0.407583 +vt 0.214442 0.424360 +vt 0.160340 0.413227 +vt 0.730026 0.958073 +vt 0.722475 0.652378 +vt 0.730026 0.652378 +vt 0.912404 0.806069 +vt 0.912404 0.827347 +vt 0.904854 0.784791 +vt 0.912404 0.763512 +vt 0.912404 0.784791 +vt 0.904854 0.806069 +vt 0.932696 0.944406 +vt 0.940246 0.923128 +vt 0.940246 0.944406 +vt 0.932696 0.965684 +vt 0.940246 0.965684 +vt 0.932695 0.784790 +vt 0.940246 0.763512 +vt 0.940246 0.784790 +vt 0.932695 0.806068 +vt 0.940246 0.806068 +vt 0.932695 0.827347 +vt 0.940246 0.827347 +vt 0.904854 0.944406 +vt 0.912404 0.944406 +vt 0.904854 0.965684 +vt 0.912404 0.965684 +vt 0.966711 0.756750 +vt 0.974261 0.451055 +vt 0.974261 0.756750 +vt 0.932696 0.923128 +vt 0.932696 0.986962 +vt 0.940246 0.986962 +vt 0.422073 0.482879 +vt 0.433410 0.838040 +vt 0.422073 0.788572 +vt 0.295881 0.650980 +vt 0.282013 0.670433 +vt 0.288578 0.646764 +vt 0.295881 0.787867 +vt 0.282013 0.810216 +vt 0.282013 0.792083 +vt 0.369446 0.638910 +vt 0.340532 0.622066 +vt 0.389999 0.633403 +vt 0.354400 0.790843 +vt 0.340532 0.771391 +vt 0.348893 0.770290 +vt 0.310927 0.802913 +vt 0.282013 0.819757 +vt 0.354400 0.653956 +vt 0.340532 0.631607 +vt 0.365229 0.813192 +vt 0.347097 0.795059 +vt 0.904854 0.986962 +vt 0.912404 0.986962 +vt 0.631115 0.055869 +vt 0.649805 0.032200 +vt 0.649805 0.055869 +vt 0.631115 0.611283 +vt 0.649805 0.586720 +vt 0.649805 0.611283 +vt 0.631115 0.561077 +vt 0.649805 0.536515 +vt 0.649805 0.561077 +vt 0.290374 0.767314 +vt 0.290374 0.671533 +vt 0.282013 0.768414 +vt 0.306711 0.628631 +vt 0.310927 0.635934 +vt 0.340532 0.673409 +vt 0.348893 0.674509 +vt 0.369446 0.805889 +vt 0.388898 0.819757 +vt 0.340532 0.649740 +vt 0.949298 0.452156 +vt 0.957659 0.758947 +vt 0.949298 0.757847 +vt 0.330379 0.622066 +vt 0.331480 0.630427 +vt 0.198143 0.392163 +vt 0.203991 0.371098 +vt 0.214442 0.004526 +vt 0.865192 0.817262 +vt 0.858261 0.797178 +vt 0.861696 0.796063 +vt 0.852813 0.799151 +vt 0.859566 0.820210 +vt 0.856513 0.821732 +vt 0.592572 0.439565 +vt 0.585588 0.459661 +vt 0.589275 0.437907 +vt 0.580143 0.457706 +vt 0.586941 0.436609 +vt 0.583470 0.458607 +vt 0.602693 0.421328 +vt 0.599653 0.419257 +vt 0.583884 0.435080 +vt 0.597329 0.418076 +vt 0.615681 0.405976 +vt 0.618533 0.408287 +vt 0.610906 0.402422 +vt 0.594693 0.416061 +vt 0.858132 0.697391 +vt 0.861606 0.698513 +vt 0.865116 0.677295 +vt 0.861819 0.675637 +vt 0.852687 0.695436 +vt 0.859486 0.674339 +vt 0.856014 0.696337 +vt 0.875237 0.659059 +vt 0.872197 0.656987 +vt 0.856428 0.672810 +vt 0.869873 0.655806 +vt 0.888224 0.643707 +vt 0.891076 0.646018 +vt 0.883449 0.640153 +vt 0.867237 0.653791 +vt 0.981481 0.010131 +vt 0.985505 0.237997 +vt 0.981527 0.237046 +vt 0.203992 0.057788 +vt 0.198143 0.036724 +vt 0.182166 0.021303 +vt 0.160340 0.015659 +vt 0.004526 0.004526 +vt 0.058629 0.015659 +vt 0.036803 0.021303 +vt 0.020825 0.036724 +vt 0.014977 0.057789 +vt 0.004528 0.424360 +vt 0.014978 0.371099 +vt 0.020826 0.392163 +vt 0.036803 0.407583 +vt 0.058629 0.413227 +vt 0.585717 0.559449 +vt 0.583550 0.560522 +vt 0.589353 0.581187 +vt 0.587023 0.582481 +vt 0.597374 0.600993 +vt 0.599696 0.599816 +vt 0.613430 0.614296 +vt 0.615683 0.613092 +vt 0.989529 0.239202 +vt 0.985466 0.008672 +vt 0.989522 0.005561 +vt 0.885969 0.642498 +vt 0.856093 0.798250 +vt 0.861896 0.818916 +vt 0.869918 0.838723 +vt 0.872239 0.837545 +vt 0.885973 0.852026 +vt 0.888226 0.850822 +vt 0.012574 0.918273 +vt 0.008511 0.687744 +vt 0.012567 0.684632 +vt 0.613425 0.404768 +vt 0.004526 0.689203 +vt 0.008550 0.917069 +vt 0.004572 0.916117 +vt 0.867284 0.840731 +vt 0.875277 0.835481 +vt 0.883455 0.854365 +vt 0.580270 0.561422 +vt 0.589153 0.558335 +vt 0.589062 0.460784 +vt 0.993618 0.239807 +vt 0.993618 0.004526 +vt 0.583970 0.584003 +vt 0.592648 0.579533 +vt 0.594741 0.603002 +vt 0.602733 0.597751 +vt 0.016663 0.918878 +vt 0.016663 0.683597 +vt 0.610912 0.616635 +vt 0.631115 0.732934 +vt 0.649805 0.709265 +vt 0.649805 0.732934 +vt 0.631115 0.751066 +vt 0.649805 0.751066 +vt 0.631115 0.014067 +vt 0.649805 0.004526 +vt 0.649805 0.014067 +vt 0.631115 0.032200 +vt 0.631115 0.228619 +vt 0.649805 0.204057 +vt 0.649805 0.228619 +vt 0.631115 0.204057 +vt 0.649805 0.178414 +vt 0.631115 0.586720 +vt 0.631115 0.178414 +vt 0.649805 0.153851 +vt 0.004526 0.674545 +vt 0.214442 0.622066 +vt 0.214442 0.674545 +vt 0.677547 0.004526 +vt 0.730026 0.424358 +vt 0.677547 0.424358 +vt 0.631116 0.760608 +vt 0.649805 0.760608 +vt 0.461152 0.807049 +vt 0.479841 0.402422 +vt 0.479841 0.807049 +vt 0.631115 0.536515 +vt 0.631115 0.709265 +vt 0.631115 0.153851 +vt 0.677547 0.643326 +vt 0.730026 0.433410 +vt 0.730026 0.643326 +vt 0.190397 0.881984 +vt 0.094616 0.874434 +vt 0.190397 0.874434 +vt 0.255771 0.407583 +vt 0.277596 0.413227 +vt 0.223495 0.424360 +vt 0.713423 0.652379 +vt 0.705873 0.958073 +vt 0.705873 0.652379 +vt 0.073338 0.881984 +vt 0.094616 0.881984 +vt 0.030782 0.881984 +vt 0.052060 0.874434 +vt 0.052060 0.881984 +vt 0.073338 0.874434 +vt 0.602077 0.869276 +vt 0.623356 0.861726 +vt 0.623356 0.869276 +vt 0.644634 0.861726 +vt 0.644634 0.869276 +vt 0.442462 0.869276 +vt 0.463740 0.861726 +vt 0.463740 0.869276 +vt 0.485018 0.861726 +vt 0.485018 0.869276 +vt 0.506296 0.861726 +vt 0.506296 0.869276 +vt 0.211675 0.874434 +vt 0.211675 0.881984 +vt 0.232953 0.874434 +vt 0.232953 0.881984 +vt 0.964879 0.004526 +vt 0.972429 0.310220 +vt 0.964879 0.310220 +vt 0.602077 0.861726 +vt 0.665912 0.861726 +vt 0.665912 0.869276 +vt 0.916191 0.004526 +vt 0.904854 0.359687 +vt 0.904855 0.053992 +vt 0.237362 0.790843 +vt 0.223494 0.771391 +vt 0.231855 0.770290 +vt 0.237362 0.653956 +vt 0.223494 0.631607 +vt 0.252408 0.638910 +vt 0.739078 0.631101 +vt 0.767991 0.614257 +vt 0.788545 0.619764 +vt 0.739078 0.481777 +vt 0.752945 0.462324 +vt 0.747438 0.482877 +vt 0.223494 0.622066 +vt 0.272961 0.633403 +vt 0.739078 0.621560 +vt 0.752945 0.599211 +vt 0.763775 0.439975 +vt 0.767991 0.447278 +vt 0.254232 0.874434 +vt 0.254232 0.881984 +vt 0.668494 0.055869 +vt 0.668494 0.611283 +vt 0.668494 0.561077 +vt 0.231855 0.674510 +vt 0.223494 0.673409 +vt 0.248192 0.813192 +vt 0.252408 0.805889 +vt 0.739078 0.579758 +vt 0.747438 0.578658 +vt 0.787444 0.433410 +vt 0.788545 0.441771 +vt 0.955827 0.004526 +vt 0.947465 0.311311 +vt 0.947466 0.005627 +vt 0.271861 0.819757 +vt 0.272961 0.811396 +vt 0.239793 0.392163 +vt 0.233945 0.371098 +vt 0.223494 0.004526 +vt 0.862987 0.061715 +vt 0.869917 0.041630 +vt 0.866422 0.062829 +vt 0.864292 0.038682 +vt 0.857539 0.059741 +vt 0.861238 0.037160 +vt 0.869842 0.404863 +vt 0.862858 0.384768 +vt 0.866332 0.383645 +vt 0.857413 0.386723 +vt 0.864212 0.407819 +vt 0.861155 0.409348 +vt 0.879963 0.423098 +vt 0.866546 0.406520 +vt 0.874599 0.426351 +vt 0.871964 0.428366 +vt 0.892950 0.438449 +vt 0.895802 0.436138 +vt 0.888175 0.442003 +vt 0.862858 0.161501 +vt 0.866332 0.160379 +vt 0.869842 0.181597 +vt 0.857413 0.163457 +vt 0.864212 0.184553 +vt 0.861155 0.186082 +vt 0.879963 0.199833 +vt 0.866545 0.183254 +vt 0.874599 0.203086 +vt 0.871964 0.205101 +vt 0.892950 0.215184 +vt 0.895802 0.212873 +vt 0.888175 0.218738 +vt 0.987299 0.699025 +vt 0.983360 0.926896 +vt 0.983313 0.700458 +vt 0.233945 0.057789 +vt 0.239793 0.036724 +vt 0.255771 0.021303 +vt 0.277597 0.015659 +vt 0.433410 0.004526 +vt 0.379308 0.015659 +vt 0.401134 0.021304 +vt 0.417111 0.036724 +vt 0.422960 0.057789 +vt 0.433410 0.424360 +vt 0.422959 0.371097 +vt 0.417111 0.392162 +vt 0.401133 0.407583 +vt 0.379308 0.413227 +vt 0.860741 0.385822 +vt 0.862986 0.284980 +vt 0.860818 0.283907 +vt 0.866621 0.263241 +vt 0.864291 0.261947 +vt 0.874643 0.243433 +vt 0.890699 0.230129 +vt 0.876965 0.244611 +vt 0.987338 0.927885 +vt 0.991379 0.695962 +vt 0.991386 0.929157 +vt 0.876923 0.201904 +vt 0.890695 0.216393 +vt 0.860741 0.162555 +vt 0.860819 0.060642 +vt 0.866622 0.039976 +vt 0.874644 0.020169 +vt 0.890699 0.006865 +vt 0.876965 0.021346 +vt 0.987338 0.683984 +vt 0.991379 0.452060 +vt 0.991386 0.685255 +vt 0.876923 0.425169 +vt 0.890694 0.439658 +vt 0.987299 0.455123 +vt 0.983360 0.682994 +vt 0.983313 0.456556 +vt 0.872010 0.018160 +vt 0.880002 0.023411 +vt 0.888181 0.004526 +vt 0.892952 0.008069 +vt 0.895802 0.010374 +vt 0.857538 0.283007 +vt 0.866421 0.286094 +vt 0.995474 0.694957 +vt 0.995474 0.929807 +vt 0.861238 0.260425 +vt 0.869917 0.264894 +vt 0.872009 0.241424 +vt 0.880002 0.246675 +vt 0.995474 0.451055 +vt 0.995474 0.685905 +vt 0.888181 0.227790 +vt 0.892952 0.231334 +vt 0.895802 0.233638 +vt 0.668494 0.732934 +vt 0.668494 0.751066 +vt 0.668494 0.014067 +vt 0.668494 0.032200 +vt 0.668494 0.228619 +vt 0.668494 0.204057 +vt 0.668494 0.586720 +vt 0.668494 0.178414 +vt 0.668494 0.760608 +vt 0.442462 0.402422 +vt 0.442462 0.807049 +vt 0.668494 0.536515 +vt 0.668494 0.709265 +vt 0.668494 0.153851 +vt 0.739078 0.424358 +vt 0.791557 0.004526 +vt 0.791557 0.424358 +vt 0.722475 0.958073 +vt 0.904854 0.763512 +vt 0.932695 0.763512 +vt 0.966711 0.451055 +vt 0.433410 0.433412 +vt 0.331480 0.808420 +vt 0.389999 0.811396 +vt 0.957659 0.451055 +vt 0.891076 0.848518 +vt 0.618533 0.610788 +vt 0.631115 0.004526 +vt 0.004526 0.622066 +vt 0.730026 0.004526 +vt 0.461151 0.402422 +vt 0.677547 0.433410 +vt 0.713423 0.958073 +vt 0.030782 0.874434 +vt 0.442462 0.861726 +vt 0.972429 0.004526 +vt 0.916191 0.409154 +vt 0.230059 0.795060 +vt 0.223494 0.649740 +vt 0.745642 0.458108 +vt 0.739078 0.603427 +vt 0.955827 0.312412 +vt 0.668494 0.004526 +vt 0.739078 0.004526 +vn 0.0000 -0.9914 -0.1305 +vn 0.0000 -0.9914 0.1305 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 -0.1305 -0.9914 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.9914 -0.1305 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.1305 0.9914 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.9914 0.1305 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.1305 0.9914 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9909 -0.1349 +vn 0.0000 -0.8638 -0.5038 +vn 0.0000 -0.5038 -0.8638 +vn 0.0000 -0.1349 -0.9909 +vn 0.5785 -0.7172 0.3885 +vn 0.5147 -0.8479 0.1271 +vn 0.5072 -0.8566 0.0950 +vn 0.3608 0.9232 -0.1322 +vn 0.4265 0.7984 -0.4251 +vn 0.4330 0.7770 -0.4570 +vn 0.5785 0.7172 0.3885 +vn 0.5147 0.8479 0.1271 +vn 0.5847 0.6955 0.4177 +vn 0.3608 -0.9232 -0.1322 +vn 0.4265 -0.7984 -0.4251 +vn 0.3550 -0.9290 -0.1043 +vn 0.6108 0.3862 0.6912 +vn 0.6133 0.4076 0.6765 +vn 0.4330 -0.7770 -0.4570 +vn 0.4732 -0.4444 -0.7607 +vn 0.5767 0.1242 0.8074 +vn 0.5686 0.0871 0.8180 +vn 0.4489 -0.1331 -0.8836 +vn 0.4742 -0.4551 -0.7537 +vn 0.5147 -0.8479 -0.1271 +vn 0.5072 -0.8566 -0.0950 +vn 0.5785 -0.7172 -0.3885 +vn 0.5847 -0.6955 -0.4177 +vn 0.3608 0.9232 0.1322 +vn 0.4265 0.7984 0.4251 +vn 0.3550 0.9290 0.1043 +vn 0.6108 -0.3862 -0.6912 +vn 0.6133 -0.4076 -0.6765 +vn 0.4330 0.7770 0.4570 +vn 0.4732 0.4444 0.7607 +vn 0.5767 -0.1242 -0.8074 +vn 0.5686 -0.0871 -0.8180 +vn 0.4489 0.1331 0.8836 +vn 0.4742 0.4551 0.7537 +vn 0.5767 0.1242 -0.8074 +vn 0.5686 0.0871 -0.8180 +vn 0.5767 -0.1242 0.8074 +vn 0.5686 -0.0871 0.8180 +vn 0.4732 0.4444 -0.7607 +vn 0.4742 0.4551 -0.7537 +vn 0.6108 -0.3862 0.6912 +vn 0.5847 -0.6955 0.4177 +vn 0.4489 0.1331 -0.8836 +vn 0.4446 0.1047 -0.8896 +vn 0.6133 -0.4076 0.6765 +vn 0.3550 -0.9290 0.1043 +vn 0.3608 -0.9232 0.1322 +vn 0.5072 0.8566 -0.0950 +vn 0.5072 0.8566 0.0950 +vn 0.4489 -0.1331 0.8836 +vn 0.4446 0.1047 0.8896 +vn 0.4265 -0.7984 0.4251 +vn 0.4330 -0.7770 0.4570 +vn 0.5785 0.7172 -0.3885 +vn 0.5147 0.8479 -0.1271 +vn 0.3550 0.9290 -0.1043 +vn 0.4732 -0.4444 0.7607 +vn 0.4742 -0.4551 0.7537 +vn 0.6108 0.3862 -0.6912 +vn 0.5847 0.6955 -0.4177 +vn 0.4446 -0.1047 -0.8896 +vn 0.4446 -0.1047 0.8896 +vn 0.6133 0.4076 -0.6765 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.1349 -0.9909 +vn 0.0000 0.5038 -0.8638 +vn 0.0000 0.8638 -0.5038 +vn 0.0000 0.9909 -0.1349 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.5147 -0.8479 0.1271 +vn -0.5785 -0.7172 0.3885 +vn -0.5072 -0.8566 0.0950 +vn -0.4265 0.7984 -0.4251 +vn -0.3608 0.9232 -0.1322 +vn -0.4330 0.7770 -0.4570 +vn -0.5785 0.7172 0.3885 +vn -0.5147 0.8479 0.1271 +vn -0.5072 0.8566 0.0950 +vn -0.3608 -0.9232 -0.1322 +vn -0.4265 -0.7984 -0.4251 +vn -0.4330 -0.7770 -0.4570 +vn -0.6108 0.3862 0.6912 +vn -0.5847 0.6955 0.4177 +vn -0.4732 -0.4444 -0.7607 +vn -0.4742 -0.4551 -0.7537 +vn -0.5767 0.1242 0.8074 +vn -0.5686 0.0871 0.8180 +vn -0.4489 -0.1331 -0.8836 +vn -0.5147 -0.8479 -0.1271 +vn -0.5072 -0.8566 -0.0950 +vn -0.5785 -0.7172 -0.3885 +vn -0.3608 0.9232 0.1322 +vn -0.4265 0.7984 0.4251 +vn -0.4330 0.7770 0.4570 +vn -0.6108 -0.3862 -0.6912 +vn -0.5847 -0.6955 -0.4177 +vn -0.4732 0.4444 0.7607 +vn -0.4742 0.4551 0.7537 +vn -0.5767 -0.1242 -0.8074 +vn -0.5686 -0.0871 -0.8180 +vn -0.4489 0.1331 0.8836 +vn -0.5767 0.1242 -0.8074 +vn -0.5686 0.0871 -0.8180 +vn -0.5767 -0.1242 0.8074 +vn -0.5686 -0.0871 0.8180 +vn -0.4732 0.4444 -0.7607 +vn -0.4742 0.4551 -0.7537 +vn -0.5847 -0.6955 0.4177 +vn -0.6108 -0.3862 0.6912 +vn -0.4489 0.1331 -0.8836 +vn -0.3550 -0.9290 0.1043 +vn -0.3608 -0.9232 0.1322 +vn -0.5072 0.8566 -0.0950 +vn -0.4446 0.1047 0.8896 +vn -0.4489 -0.1331 0.8836 +vn -0.4265 -0.7984 0.4251 +vn -0.4330 -0.7770 0.4570 +vn -0.5147 0.8479 -0.1271 +vn -0.5785 0.7172 -0.3885 +vn -0.3550 0.9290 -0.1043 +vn -0.4732 -0.4444 0.7607 +vn -0.4742 -0.4551 0.7537 +vn -0.5847 0.6955 -0.4177 +vn -0.6108 0.3862 -0.6912 +vn -0.4446 -0.1047 -0.8896 +vn -0.3550 -0.9290 -0.1043 +vn -0.6133 0.4076 0.6765 +vn -0.3550 0.9290 0.1043 +vn -0.6133 -0.4076 -0.6765 +vn -0.6133 -0.4076 0.6765 +vn -0.4446 0.1047 -0.8896 +vn -0.4446 -0.1047 0.8896 +vn -0.6133 0.4076 -0.6765 +s 1 +f 10/1/1 24/2/2 17/3/2 +f 67/4/3 1/5/3 65/6/3 +f 6/7/4 36/8/5 9/9/5 +f 10/1/1 34/10/6 33/11/1 +f 11/12/7 36/13/5 35/14/7 +f 12/15/6 35/14/7 34/10/6 +f 7/16/8 32/17/9 31/18/8 +f 8/19/10 31/18/8 30/20/10 +f 15/21/11 28/22/12 27/23/11 +f 16/24/13 27/23/11 26/25/13 +f 14/26/14 26/25/13 25/27/14 +f 19/28/15 24/2/2 23/29/15 +f 20/30/16 23/29/15 22/31/16 +f 13/32/12 21/33/17 28/34/12 +f 14/26/14 32/17/9 5/35/9 +f 6/36/4 30/20/10 29/37/4 +f 21/38/18 47/39/18 28/40/18 +f 31/41/18 38/42/18 43/43/18 +f 26/44/18 46/45/18 48/46/18 +f 22/47/18 52/48/18 21/49/18 +f 34/50/18 42/51/18 33/52/18 +f 27/53/18 47/54/18 46/45/18 +f 23/55/18 51/56/18 22/47/18 +f 34/50/18 39/57/18 41/58/18 +f 18/59/17 22/31/16 21/60/17 +f 37/61/19 209/62/19 213/63/19 +f 42/64/20 203/65/21 204/66/20 +f 39/67/22 214/68/23 202/69/22 +f 25/70/18 38/42/18 32/71/18 +f 26/44/18 37/72/18 25/70/18 +f 31/41/18 44/73/18 30/74/18 +f 33/52/18 50/75/18 24/76/18 +f 35/77/18 40/78/18 39/57/18 +f 23/55/18 50/75/18 49/79/18 +f 29/80/18 40/81/18 36/82/18 +f 30/74/18 45/83/18 29/84/18 +f 1/5/3 67/4/3 68/85/3 +f 68/85/3 66/86/3 1/5/3 +f 66/86/3 2/87/3 1/5/3 +f 19/88/24 81/89/25 17/90/26 +f 65/91/27 98/92/28 67/93/29 +f 16/94/30 80/95/31 79/96/32 +f 62/97/33 95/98/34 96/99/35 +f 15/100/36 79/96/32 78/101/37 +f 64/102/38 94/103/39 95/98/34 +f 15/100/36 77/104/40 13/105/41 +f 61/106/42 94/103/39 63/107/43 +f 17/90/26 76/108/44 10/109/45 +f 12/110/46 76/108/44 75/111/47 +f 58/112/48 91/113/49 92/114/50 +f 11/115/51 75/111/47 74/116/52 +f 60/117/53 90/118/54 91/113/49 +f 11/115/51 73/119/55 9/120/56 +f 57/121/57 90/118/54 59/122/58 +f 9/123/56 72/124/59 6/125/60 +f 61/126/3 63/127/3 2/87/3 +f 64/128/3 2/87/3 63/127/3 +f 62/129/3 2/87/3 64/128/3 +f 62/129/3 3/130/3 2/87/3 +f 53/131/3 55/132/3 3/130/3 +f 56/133/3 3/130/3 55/132/3 +f 54/134/3 3/130/3 56/133/3 +f 54/134/3 4/135/3 3/130/3 +f 57/136/3 59/137/3 4/135/3 +f 60/138/3 4/135/3 59/137/3 +f 58/139/3 4/135/3 60/138/3 +f 58/139/3 1/5/3 4/135/3 +f 96/99/3 79/96/3 80/95/3 +f 96/99/3 69/140/3 85/141/3 +f 85/141/3 70/142/3 86/143/3 +f 87/144/3 70/142/3 71/145/3 +f 88/146/3 71/145/3 72/147/3 +f 88/148/3 73/149/3 89/150/3 +f 89/151/3 74/116/3 90/118/3 +f 90/118/3 75/111/3 91/113/3 +f 92/114/3 75/111/3 76/108/3 +f 92/114/3 81/89/3 97/152/3 +f 97/152/3 82/153/3 98/92/3 +f 99/154/3 82/153/3 83/155/3 +f 100/156/3 83/155/3 84/157/3 +f 100/158/3 77/159/3 93/160/3 +f 93/161/3 78/101/3 94/103/3 +f 94/103/3 79/96/3 95/98/3 +f 13/162/41 84/163/61 18/164/62 +f 67/93/29 99/154/63 68/165/64 +f 20/166/65 82/153/66 19/88/24 +f 66/167/67 99/154/63 100/156/68 +f 20/166/65 84/157/61 83/155/69 +f 62/97/33 85/141/70 53/168/71 +f 5/169/72 80/95/31 14/170/73 +f 54/171/74 89/150/75 57/172/57 +f 53/168/71 86/143/76 55/173/77 +f 7/174/78 69/140/79 5/169/72 +f 58/112/48 97/152/80 65/91/27 +f 55/173/77 87/144/81 56/175/82 +f 8/176/83 70/142/84 7/174/78 +f 66/177/67 93/160/85 61/178/42 +f 54/179/74 87/144/81 88/146/86 +f 8/176/83 72/147/59 71/145/87 +f 49/180/88 216/181/88 210/182/88 +f 51/183/88 210/182/88 211/184/88 +f 46/185/19 215/186/19 208/187/19 +f 48/188/19 208/187/19 209/62/19 +f 45/189/89 206/190/90 207/191/89 +f 44/192/90 205/193/91 206/190/90 +f 41/194/21 202/69/22 203/65/21 +f 43/195/91 201/196/92 205/193/91 +f 102/197/88 3/198/88 103/199/88 +f 101/200/93 2/201/93 102/202/93 +f 52/203/88 211/184/88 212/204/88 +f 212/205/94 47/206/94 52/207/94 +f 207/191/89 40/208/23 45/189/89 +f 204/66/20 50/209/88 42/64/20 +f 213/63/19 38/210/92 37/61/19 +f 101/211/19 4/212/19 1/213/19 +f 124/214/2 110/215/1 117/216/2 +f 167/217/18 165/218/18 101/219/18 +f 136/220/5 106/221/4 109/222/5 +f 134/223/6 110/215/1 133/224/1 +f 136/225/5 111/226/7 135/227/7 +f 135/227/7 112/228/6 134/223/6 +f 132/229/9 107/230/8 131/231/8 +f 131/231/8 108/232/10 130/233/10 +f 128/234/12 115/235/11 127/236/11 +f 127/236/11 116/237/13 126/238/13 +f 126/238/13 114/239/14 125/240/14 +f 124/214/2 119/241/15 123/242/15 +f 123/242/15 120/243/16 122/244/16 +f 121/245/17 113/246/12 128/247/12 +f 132/229/9 114/239/14 105/248/9 +f 130/233/10 106/249/4 129/250/4 +f 147/251/3 121/252/3 128/253/3 +f 131/254/3 138/255/3 132/256/3 +f 126/257/3 146/258/3 127/259/3 +f 152/260/3 122/261/3 121/262/3 +f 142/263/3 134/264/3 133/265/3 +f 127/259/3 147/266/3 128/267/3 +f 151/268/3 123/269/3 122/261/3 +f 134/264/3 139/270/3 135/271/3 +f 122/244/16 118/272/17 121/273/17 +f 209/62/19 137/274/19 213/63/19 +f 203/65/21 142/275/20 204/66/20 +f 214/68/23 139/276/22 202/69/22 +f 138/255/3 125/277/3 132/256/3 +f 137/278/3 126/257/3 125/277/3 +f 144/279/3 131/254/3 130/280/3 +f 150/281/3 133/265/3 124/282/3 +f 135/271/3 140/283/3 136/284/3 +f 123/269/3 150/281/3 124/282/3 +f 140/285/3 129/286/3 136/287/3 +f 145/288/3 130/280/3 129/289/3 +f 101/219/18 168/290/18 167/217/18 +f 168/290/18 101/219/18 166/291/18 +f 102/292/18 166/291/18 101/219/18 +f 181/293/95 119/294/96 117/295/97 +f 198/296/98 165/297/99 167/298/100 +f 116/299/101 180/300/102 114/301/103 +f 162/302/104 195/303/105 164/304/106 +f 115/305/107 179/306/108 116/299/101 +f 164/304/106 194/307/109 163/308/110 +f 177/309/111 115/305/107 113/310/112 +f 194/307/109 161/311/113 163/308/110 +f 176/312/114 117/295/97 110/313/115 +f 112/314/116 176/312/114 110/313/115 +f 158/315/117 191/316/118 160/317/119 +f 111/318/120 175/319/121 112/314/116 +f 160/317/119 190/320/122 159/321/123 +f 173/322/124 111/318/120 109/323/125 +f 190/320/122 157/324/126 159/321/123 +f 172/325/127 109/326/125 106/327/128 +f 161/328/18 102/292/18 163/329/18 +f 164/330/18 163/329/18 102/292/18 +f 162/331/18 164/330/18 102/292/18 +f 103/332/18 162/331/18 102/292/18 +f 153/333/18 103/332/18 155/334/18 +f 156/335/18 155/334/18 103/332/18 +f 154/336/18 156/335/18 103/332/18 +f 104/337/18 154/336/18 103/332/18 +f 157/338/18 104/337/18 159/339/18 +f 160/340/18 159/339/18 104/337/18 +f 158/341/18 160/340/18 104/337/18 +f 101/219/18 158/341/18 104/337/18 +f 179/306/18 196/342/18 180/300/18 +f 169/343/18 196/342/18 185/344/18 +f 170/345/18 185/344/18 186/346/18 +f 187/347/18 170/345/18 186/346/18 +f 188/348/18 171/349/18 187/347/18 +f 173/350/18 188/351/18 189/352/18 +f 174/353/18 189/354/18 190/320/18 +f 175/319/18 190/320/18 191/316/18 +f 192/355/18 175/319/18 191/316/18 +f 181/293/18 192/355/18 197/356/18 +f 182/357/18 197/356/18 198/296/18 +f 199/358/18 182/357/18 198/296/18 +f 200/359/18 183/360/18 199/358/18 +f 177/361/18 200/362/18 193/363/18 +f 178/364/18 193/365/18 194/307/18 +f 179/306/18 194/307/18 195/303/18 +f 184/366/129 113/367/112 118/368/130 +f 199/358/131 167/298/100 168/369/132 +f 182/357/133 120/370/134 119/294/96 +f 166/371/135 199/358/131 168/369/132 +f 120/370/134 184/372/129 118/373/130 +f 185/344/136 162/302/104 153/374/137 +f 180/300/102 105/375/138 114/301/103 +f 189/352/139 154/376/140 157/377/126 +f 186/346/141 153/374/137 155/378/142 +f 169/343/143 107/379/144 105/375/138 +f 197/356/145 158/315/117 165/297/99 +f 187/347/146 155/378/142 156/380/147 +f 170/345/148 108/381/149 107/379/144 +f 193/363/150 166/382/135 161/383/113 +f 154/384/140 187/347/146 156/380/147 +f 108/381/149 172/385/127 106/386/128 +f 216/181/88 149/387/88 210/182/88 +f 210/182/88 151/388/88 211/184/88 +f 215/186/19 146/389/19 208/187/19 +f 208/187/19 148/390/19 209/62/19 +f 206/190/90 145/391/89 207/191/89 +f 205/193/91 144/392/90 206/190/90 +f 202/69/22 141/393/21 203/65/21 +f 201/196/92 143/394/91 205/193/91 +f 211/184/88 152/395/88 212/204/88 +f 147/396/94 212/205/94 152/397/94 +f 140/398/23 207/191/89 145/391/89 +f 150/399/88 204/66/20 142/275/20 +f 138/400/92 213/63/19 137/274/19 +f 104/401/94 3/402/94 4/403/94 +f 10/1/1 33/11/1 24/2/2 +f 6/7/4 29/404/4 36/8/5 +f 10/1/1 12/15/6 34/10/6 +f 11/12/7 9/405/5 36/13/5 +f 12/15/6 11/12/7 35/14/7 +f 7/16/8 5/35/9 32/17/9 +f 8/19/10 7/16/8 31/18/8 +f 15/21/11 13/406/12 28/22/12 +f 16/24/13 15/21/11 27/23/11 +f 14/26/14 16/24/13 26/25/13 +f 19/28/15 17/3/2 24/2/2 +f 20/30/16 19/28/15 23/29/15 +f 13/32/12 18/407/17 21/33/17 +f 14/26/14 25/27/14 32/17/9 +f 6/36/4 8/19/10 30/20/10 +f 21/38/18 52/408/18 47/39/18 +f 31/41/18 32/71/18 38/42/18 +f 26/44/18 27/53/18 46/45/18 +f 22/47/18 51/56/18 52/48/18 +f 34/50/18 41/58/18 42/51/18 +f 27/53/18 28/409/18 47/54/18 +f 23/55/18 49/79/18 51/56/18 +f 34/50/18 35/77/18 39/57/18 +f 18/59/17 20/30/16 22/31/16 +f 37/61/19 48/188/19 209/62/19 +f 42/64/20 41/194/21 203/65/21 +f 39/67/22 40/208/23 214/68/23 +f 25/70/18 37/72/18 38/42/18 +f 26/44/18 48/46/18 37/72/18 +f 31/41/18 43/43/18 44/73/18 +f 33/52/18 42/51/18 50/75/18 +f 35/77/18 36/410/18 40/78/18 +f 23/55/18 24/76/18 50/75/18 +f 29/80/18 45/411/18 40/81/18 +f 30/74/18 44/73/18 45/83/18 +f 66/86/3 61/126/3 2/87/3 +f 19/88/24 82/153/66 81/89/25 +f 65/91/27 97/152/80 98/92/28 +f 16/94/30 14/170/73 80/95/31 +f 62/97/33 64/102/38 95/98/34 +f 15/100/36 16/94/30 79/96/32 +f 64/102/38 63/107/43 94/103/39 +f 15/100/36 78/101/37 77/104/40 +f 61/106/42 93/161/85 94/103/39 +f 17/90/26 81/89/25 76/108/44 +f 12/110/46 10/109/45 76/108/44 +f 58/112/48 60/117/53 91/113/49 +f 11/115/51 12/110/46 75/111/47 +f 60/117/53 59/122/58 90/118/54 +f 11/115/51 74/116/52 73/119/55 +f 57/121/57 89/151/75 90/118/54 +f 9/123/56 73/149/55 72/124/59 +f 62/129/3 53/131/3 3/130/3 +f 54/134/3 57/136/3 4/135/3 +f 58/139/3 65/6/3 1/5/3 +f 96/99/3 95/98/3 79/96/3 +f 96/99/3 80/95/3 69/140/3 +f 85/141/3 69/140/3 70/142/3 +f 87/144/3 86/143/3 70/142/3 +f 88/146/3 87/144/3 71/145/3 +f 88/148/3 72/124/3 73/149/3 +f 89/151/3 73/119/3 74/116/3 +f 90/118/3 74/116/3 75/111/3 +f 92/114/3 91/113/3 75/111/3 +f 92/114/3 76/108/3 81/89/3 +f 97/152/3 81/89/3 82/153/3 +f 99/154/3 98/92/3 82/153/3 +f 100/156/3 99/154/3 83/155/3 +f 100/158/3 84/163/3 77/159/3 +f 93/161/3 77/104/3 78/101/3 +f 94/103/3 78/101/3 79/96/3 +f 13/162/41 77/159/40 84/163/61 +f 67/93/29 98/92/28 99/154/63 +f 20/166/65 83/155/69 82/153/66 +f 66/167/67 68/165/64 99/154/63 +f 20/166/65 18/412/62 84/157/61 +f 62/97/33 96/99/35 85/141/70 +f 5/169/72 69/140/79 80/95/31 +f 54/171/74 88/148/86 89/150/75 +f 53/168/71 85/141/70 86/143/76 +f 7/174/78 70/142/84 69/140/79 +f 58/112/48 92/114/50 97/152/80 +f 55/173/77 86/143/76 87/144/81 +f 8/176/83 71/145/87 70/142/84 +f 66/177/67 100/158/68 93/160/85 +f 54/179/74 56/175/82 87/144/81 +f 8/176/83 6/413/60 72/147/59 +f 49/180/88 50/209/88 216/181/88 +f 51/183/88 49/180/88 210/182/88 +f 46/185/19 47/414/19 215/186/19 +f 48/188/19 46/185/19 208/187/19 +f 45/189/89 44/192/90 206/190/90 +f 44/192/90 43/195/91 205/193/91 +f 41/194/21 39/67/22 202/69/22 +f 43/195/91 38/210/92 201/196/92 +f 102/197/88 2/415/88 3/198/88 +f 101/200/93 1/416/93 2/201/93 +f 52/203/88 51/183/88 211/184/88 +f 212/205/94 215/417/94 47/206/94 +f 207/191/89 214/68/23 40/208/23 +f 204/66/20 216/181/88 50/209/88 +f 213/63/19 201/196/92 38/210/92 +f 101/211/19 104/418/19 4/212/19 +f 124/214/2 133/224/1 110/215/1 +f 136/220/5 129/419/4 106/221/4 +f 134/223/6 112/228/6 110/215/1 +f 136/225/5 109/420/5 111/226/7 +f 135/227/7 111/226/7 112/228/6 +f 132/229/9 105/248/9 107/230/8 +f 131/231/8 107/230/8 108/232/10 +f 128/234/12 113/421/12 115/235/11 +f 127/236/11 115/235/11 116/237/13 +f 126/238/13 116/237/13 114/239/14 +f 124/214/2 117/216/2 119/241/15 +f 123/242/15 119/241/15 120/243/16 +f 121/245/17 118/422/17 113/246/12 +f 132/229/9 125/240/14 114/239/14 +f 130/233/10 108/232/10 106/249/4 +f 147/251/3 152/423/3 121/252/3 +f 131/254/3 143/424/3 138/255/3 +f 126/257/3 148/425/3 146/258/3 +f 152/260/3 151/268/3 122/261/3 +f 142/263/3 141/426/3 134/264/3 +f 127/259/3 146/258/3 147/266/3 +f 151/268/3 149/427/3 123/269/3 +f 134/264/3 141/426/3 139/270/3 +f 122/244/16 120/243/16 118/272/17 +f 209/62/19 148/390/19 137/274/19 +f 203/65/21 141/393/21 142/275/20 +f 214/68/23 140/398/23 139/276/22 +f 138/255/3 137/278/3 125/277/3 +f 137/278/3 148/425/3 126/257/3 +f 144/279/3 143/424/3 131/254/3 +f 150/281/3 142/263/3 133/265/3 +f 135/271/3 139/270/3 140/283/3 +f 123/269/3 149/427/3 150/281/3 +f 140/285/3 145/428/3 129/286/3 +f 145/288/3 144/279/3 130/280/3 +f 102/292/18 161/328/18 166/291/18 +f 181/293/95 182/357/133 119/294/96 +f 198/296/98 197/356/145 165/297/99 +f 116/299/101 179/306/108 180/300/102 +f 162/302/104 196/342/151 195/303/105 +f 115/305/107 178/364/152 179/306/108 +f 164/304/106 195/303/105 194/307/109 +f 177/309/111 178/364/152 115/305/107 +f 194/307/109 193/365/150 161/311/113 +f 176/312/114 181/293/95 117/295/97 +f 112/314/116 175/319/121 176/312/114 +f 158/315/117 192/355/153 191/316/118 +f 111/318/120 174/353/154 175/319/121 +f 160/317/119 191/316/118 190/320/122 +f 173/322/124 174/353/154 111/318/120 +f 190/320/122 189/354/139 157/324/126 +f 172/325/127 173/350/124 109/326/125 +f 103/332/18 153/333/18 162/331/18 +f 104/337/18 157/338/18 154/336/18 +f 101/219/18 165/218/18 158/341/18 +f 179/306/18 195/303/18 196/342/18 +f 169/343/18 180/300/18 196/342/18 +f 170/345/18 169/343/18 185/344/18 +f 187/347/18 171/349/18 170/345/18 +f 188/348/18 172/385/18 171/349/18 +f 173/350/18 172/325/18 188/351/18 +f 174/353/18 173/322/18 189/354/18 +f 175/319/18 174/353/18 190/320/18 +f 192/355/18 176/312/18 175/319/18 +f 181/293/18 176/312/18 192/355/18 +f 182/357/18 181/293/18 197/356/18 +f 199/358/18 183/360/18 182/357/18 +f 200/359/18 184/372/18 183/360/18 +f 177/361/18 184/366/18 200/362/18 +f 178/364/18 177/309/18 193/365/18 +f 179/306/18 178/364/18 194/307/18 +f 184/366/129 177/361/111 113/367/112 +f 199/358/131 198/296/98 167/298/100 +f 182/357/133 183/360/155 120/370/134 +f 166/371/135 200/359/156 199/358/131 +f 120/370/134 183/360/155 184/372/129 +f 185/344/136 196/342/151 162/302/104 +f 180/300/102 169/343/143 105/375/138 +f 189/352/139 188/351/157 154/376/140 +f 186/346/141 185/344/136 153/374/137 +f 169/343/143 170/345/148 107/379/144 +f 197/356/145 192/355/153 158/315/117 +f 187/347/146 186/346/141 155/378/142 +f 170/345/148 171/349/158 108/381/149 +f 193/363/150 200/362/156 166/382/135 +f 154/384/140 188/348/157 187/347/146 +f 108/381/149 171/349/158 172/385/127 +f 216/181/88 150/399/88 149/387/88 +f 210/182/88 149/387/88 151/388/88 +f 215/186/19 147/429/19 146/389/19 +f 208/187/19 146/389/19 148/390/19 +f 206/190/90 144/392/90 145/391/89 +f 205/193/91 143/394/91 144/392/90 +f 202/69/22 139/276/22 141/393/21 +f 201/196/92 138/400/92 143/394/91 +f 211/184/88 151/388/88 152/395/88 +f 147/396/94 215/417/94 212/205/94 +f 140/398/23 214/68/23 207/191/89 +f 150/399/88 216/181/88 204/66/20 +f 138/400/92 201/196/92 213/63/19 +f 104/401/94 103/430/94 3/402/94 +o door +v 0.089033 0.062912 -0.229749 +v 0.089033 0.062912 0.229749 +v 0.089033 1.832227 0.408665 +v 0.089033 1.908665 0.332227 +v 0.089033 1.937088 0.229749 +v 0.089033 0.091335 0.332227 +v 0.089033 0.167773 0.408665 +v 0.089033 0.167773 -0.408665 +v 0.089033 0.091335 -0.332227 +v 0.089033 1.908665 -0.332227 +v 0.089033 1.937088 -0.229749 +v 0.089033 1.832227 -0.408665 +v 0.089033 0.036209 0.233384 +v 0.089033 0.036209 -0.233384 +v 0.089033 1.846138 0.432517 +v 0.089033 1.733384 0.463791 +v 0.089033 1.932517 0.346138 +v 0.089033 1.963791 0.233384 +v 0.089033 0.067483 0.346138 +v 0.089033 0.153862 0.432517 +v 0.089033 0.266616 0.463791 +v 0.089033 0.153862 -0.432517 +v 0.089033 0.266616 -0.463791 +v 0.089033 0.067483 -0.346138 +v 0.089033 1.932517 -0.346138 +v 0.089033 1.963791 -0.233384 +v 0.089033 1.846138 -0.432517 +v 0.089033 1.733384 -0.463791 +v 0.089033 1.440030 -0.463791 +v 0.089033 0.559970 0.463791 +v 0.089033 0.559970 -0.463791 +v 0.089033 0.853323 -0.463791 +v 0.089033 1.146677 -0.463791 +v 0.089033 1.440030 0.463791 +v 0.089033 1.146677 0.463791 +v 0.089033 0.853323 0.463791 +v 0.067522 0.088680 0.216673 +v 0.067522 0.088680 -0.216673 +v 0.067522 1.809342 0.385405 +v 0.067522 1.883679 0.313317 +v 0.067522 1.911320 0.216673 +v 0.067522 0.116321 0.313317 +v 0.067522 0.190658 0.385405 +v 0.067522 0.190658 -0.385405 +v 0.067522 0.116321 -0.313317 +v 0.067522 1.883679 -0.313317 +v 0.067522 1.911320 -0.216673 +v 0.067522 1.809342 -0.385405 +v 0.089033 1.719954 0.437088 +v 0.089033 1.737910 0.432067 +v 0.089033 1.732162 0.454811 +v 0.089033 0.262090 0.432067 +v 0.089033 0.280046 0.437088 +v 0.089033 0.267838 0.454811 +v 0.089033 0.280046 -0.437088 +v 0.089033 0.262090 -0.432067 +v 0.089033 0.267838 -0.454811 +v 0.089033 1.737910 -0.432067 +v 0.089033 1.719954 -0.437088 +v 0.089033 1.732162 -0.454811 +v 0.089033 0.568817 -0.437088 +v 0.089033 0.551123 -0.437088 +v 0.089033 0.559970 -0.454975 +v 0.089033 0.861853 -0.437088 +v 0.089033 0.844794 -0.437088 +v 0.089033 0.853323 -0.454975 +v 0.089033 1.155206 -0.437088 +v 0.089033 1.138147 -0.437088 +v 0.089033 1.146677 -0.454975 +v 0.089033 1.448877 -0.437088 +v 0.089033 1.431183 -0.437088 +v 0.089033 1.440030 -0.454975 +v 0.089033 1.431183 0.437088 +v 0.089033 1.448877 0.437088 +v 0.089033 1.440030 0.454975 +v 0.089033 1.138147 0.437088 +v 0.089033 1.155206 0.437088 +v 0.089033 1.146677 0.454975 +v 0.089033 0.844794 0.437088 +v 0.089033 0.861853 0.437088 +v 0.089033 0.853323 0.454975 +v 0.089033 0.551123 0.437088 +v 0.089033 0.568817 0.437088 +v 0.089033 0.559970 0.454975 +v 0.067522 1.689992 -0.412210 +v 0.067522 1.727860 -0.407321 +v 0.067522 1.727860 0.407321 +v 0.067522 1.689992 0.412210 +v 0.067522 0.310008 -0.412210 +v 0.067522 0.272139 -0.407321 +v 0.067522 0.310008 0.412210 +v 0.067522 0.272139 0.407321 +v 0.067522 0.553441 -0.412210 +v 0.067522 0.590698 -0.412210 +v 0.067522 0.590698 0.412210 +v 0.067522 0.553441 0.412210 +v 0.067522 0.839382 -0.412210 +v 0.067522 0.875331 -0.412210 +v 0.067522 0.839382 0.412210 +v 0.067522 0.875331 0.412210 +v 0.067522 1.124669 -0.412210 +v 0.067522 1.160618 -0.412210 +v 0.067522 1.124669 0.412210 +v 0.067522 1.160618 0.412210 +v 0.067522 1.409302 -0.412210 +v 0.067522 1.446559 -0.412210 +v 0.067522 1.446559 0.412210 +v 0.067522 1.409302 0.412210 +v 0.079726 1.134115 0.439682 +v 0.079726 1.151172 0.439682 +v 0.079726 0.848828 0.439682 +v 0.079726 0.865885 0.439682 +v 0.079726 0.300058 -0.434752 +v 0.079726 0.282090 -0.429863 +v 0.079726 1.699942 -0.434752 +v 0.079726 1.717910 -0.429863 +v 0.079726 1.717910 0.434792 +v 0.079726 1.699942 0.439682 +v 0.079726 0.300058 0.439682 +v 0.079726 0.282090 0.434792 +v 0.079726 0.563230 -0.434752 +v 0.079726 0.580909 -0.434752 +v 0.079726 0.580909 0.439682 +v 0.079726 0.563230 0.439682 +v 0.079726 0.848828 -0.434752 +v 0.079726 0.865885 -0.434752 +v 0.079726 1.134115 -0.434752 +v 0.079726 1.151172 -0.434752 +v 0.079726 1.419091 -0.434752 +v 0.079726 1.436770 -0.434752 +v 0.079726 1.436770 0.439682 +v 0.079726 1.419091 0.439682 +v -0.089033 0.062912 -0.229749 +v -0.089033 0.062912 0.229749 +v -0.089033 1.832227 0.408665 +v -0.089033 1.908665 0.332227 +v -0.089033 1.937088 0.229749 +v -0.089033 0.091335 0.332227 +v -0.089033 0.167773 0.408665 +v -0.089033 0.167773 -0.408665 +v -0.089033 0.091335 -0.332227 +v -0.089033 1.908665 -0.332227 +v -0.089033 1.937088 -0.229749 +v -0.089033 1.832227 -0.408665 +v -0.089033 0.036209 0.233384 +v -0.089033 0.036209 -0.233384 +v -0.089033 1.846138 0.432517 +v -0.089033 1.733384 0.463791 +v -0.089033 1.932517 0.346138 +v -0.089033 1.963791 0.233384 +v -0.089033 0.067483 0.346138 +v -0.089033 0.153862 0.432517 +v -0.089033 0.266616 0.463791 +v -0.089033 0.153862 -0.432517 +v -0.089033 0.266616 -0.463791 +v -0.089033 0.067483 -0.346138 +v -0.089033 1.932517 -0.346138 +v -0.089033 1.963791 -0.233384 +v -0.089033 1.846138 -0.432517 +v -0.089033 1.733384 -0.463791 +v -0.089033 1.440030 -0.463791 +v -0.089033 0.559970 0.463791 +v -0.089033 0.559970 -0.463791 +v -0.089033 0.853323 -0.463791 +v -0.089033 1.146677 -0.463791 +v -0.089033 1.440030 0.463791 +v -0.089033 1.146677 0.463791 +v -0.089033 0.853323 0.463791 +v -0.067522 0.088680 0.216673 +v -0.067522 0.088680 -0.216673 +v -0.067522 1.809342 0.385405 +v -0.067522 1.883679 0.313317 +v -0.067522 1.911320 0.216673 +v -0.067522 0.116321 0.313317 +v -0.067522 0.190658 0.385405 +v -0.067522 0.190658 -0.385405 +v -0.067522 0.116321 -0.313317 +v -0.067522 1.883679 -0.313317 +v -0.067522 1.911320 -0.216673 +v -0.067522 1.809342 -0.385405 +v -0.089033 1.719954 0.437088 +v -0.089033 1.737910 0.432067 +v -0.089033 1.732162 0.454811 +v -0.089033 0.262090 0.432067 +v -0.089033 0.280046 0.437088 +v -0.089033 0.267838 0.454811 +v -0.089033 0.280046 -0.437088 +v -0.089033 0.262090 -0.432067 +v -0.089033 0.267838 -0.454811 +v -0.089033 1.737910 -0.432067 +v -0.089033 1.719954 -0.437088 +v -0.089033 1.732162 -0.454811 +v -0.089033 0.568817 -0.437088 +v -0.089033 0.551123 -0.437088 +v -0.089033 0.559970 -0.454975 +v -0.089033 0.861853 -0.437088 +v -0.089033 0.844794 -0.437088 +v -0.089033 0.853323 -0.454975 +v -0.089033 1.155206 -0.437088 +v -0.089033 1.138147 -0.437088 +v -0.089033 1.146677 -0.454975 +v -0.089033 1.448877 -0.437088 +v -0.089033 1.431183 -0.437088 +v -0.089033 1.440030 -0.454975 +v -0.089033 1.431183 0.437088 +v -0.089033 1.448877 0.437088 +v -0.089033 1.440030 0.454975 +v -0.089033 1.138147 0.437088 +v -0.089033 1.155206 0.437088 +v -0.089033 1.146677 0.454975 +v -0.089033 0.844794 0.437088 +v -0.089033 0.861853 0.437088 +v -0.089033 0.853323 0.454975 +v -0.089033 0.551123 0.437088 +v -0.089033 0.568817 0.437088 +v -0.089033 0.559970 0.454975 +v -0.067522 1.689992 -0.412210 +v -0.067522 1.727860 -0.407321 +v -0.067522 1.727860 0.407321 +v -0.067522 1.689992 0.412210 +v -0.067522 0.310008 -0.412210 +v -0.067522 0.272139 -0.407321 +v -0.067522 0.310008 0.412210 +v -0.067522 0.272139 0.407321 +v -0.067522 0.553441 -0.412210 +v -0.067522 0.590698 -0.412210 +v -0.067522 0.590698 0.412210 +v -0.067522 0.553441 0.412210 +v -0.067522 0.839382 -0.412210 +v -0.067522 0.875331 -0.412210 +v -0.067522 0.839382 0.412210 +v -0.067522 0.875331 0.412210 +v -0.067522 1.124669 -0.412210 +v -0.067522 1.160618 -0.412210 +v -0.067522 1.124669 0.412210 +v -0.067522 1.160618 0.412210 +v -0.067522 1.409302 -0.412210 +v -0.067522 1.446559 -0.412210 +v -0.067522 1.446559 0.412210 +v -0.067522 1.409302 0.412210 +v -0.079726 1.134115 0.439682 +v -0.079726 1.151172 0.439682 +v -0.079726 0.848828 0.439682 +v -0.079726 0.865885 0.439682 +v -0.079726 0.300058 -0.434752 +v -0.079726 0.282090 -0.429863 +v -0.079726 1.699942 -0.434752 +v -0.079726 1.717910 -0.429863 +v -0.079726 1.717910 0.434792 +v -0.079726 1.699942 0.439682 +v -0.079726 0.300058 0.439682 +v -0.079726 0.282090 0.434792 +v -0.079726 0.563230 -0.434752 +v -0.079726 0.580909 -0.434752 +v -0.079726 0.580909 0.439682 +v -0.079726 0.563230 0.439682 +v -0.079726 0.848828 -0.434752 +v -0.079726 0.865885 -0.434752 +v -0.079726 1.134115 -0.434752 +v -0.079726 1.151172 -0.434752 +v -0.079726 1.419091 -0.434752 +v -0.079726 1.436770 -0.434752 +v -0.079726 1.436770 0.439682 +v -0.079726 1.419091 0.439682 +vt 0.783593 0.831993 +vt 0.770625 0.819241 +vt 0.786830 0.825688 +vt 0.904889 0.572687 +vt 0.904889 0.512544 +vt 0.910360 0.514355 +vt 0.764922 0.653705 +vt 0.756727 0.675027 +vt 0.750214 0.670777 +vt 0.934743 0.510728 +vt 0.927961 0.461088 +vt 0.934717 0.454799 +vt 0.744799 0.692104 +vt 0.751356 0.783421 +vt 0.744526 0.786188 +vt 0.904889 0.632829 +vt 0.910364 0.574436 +vt 0.783665 0.646709 +vt 0.761647 0.649126 +vt 0.783850 0.640153 +vt 0.739383 0.691433 +vt 0.910357 0.694788 +vt 0.917138 0.744427 +vt 0.910383 0.750717 +vt 0.821727 0.653705 +vt 0.801970 0.668151 +vt 0.818451 0.649126 +vt 0.807019 0.670776 +vt 0.796188 0.691433 +vt 0.749803 0.807573 +vt 0.739078 0.786824 +vt 0.764620 0.824799 +vt 0.744748 0.810146 +vt 0.910357 0.510728 +vt 0.917138 0.461089 +vt 0.917112 0.511201 +vt 0.840397 0.831993 +vt 0.827430 0.819241 +vt 0.843635 0.825688 +vt 0.745166 0.668151 +vt 0.806608 0.807573 +vt 0.795882 0.786824 +vt 0.801331 0.786188 +vt 0.821424 0.824799 +vt 0.801552 0.810145 +vt 0.934743 0.694788 +vt 0.927961 0.744427 +vt 0.927987 0.694314 +vt 0.840556 0.838653 +vt 0.818043 0.829441 +vt 0.801604 0.692104 +vt 0.783752 0.838653 +vt 0.761239 0.829441 +vt 0.770853 0.659218 +vt 0.934736 0.574436 +vt 0.927993 0.628317 +vt 0.927993 0.577199 +vt 0.934736 0.634577 +vt 0.927993 0.686669 +vt 0.927993 0.635687 +vt 0.910364 0.634578 +vt 0.917107 0.686670 +vt 0.910360 0.691161 +vt 0.840470 0.646709 +vt 0.827657 0.659218 +vt 0.917106 0.628317 +vt 0.910364 0.631080 +vt 0.910364 0.570938 +vt 0.917107 0.518846 +vt 0.917106 0.569829 +vt 0.295529 0.438043 +vt 0.345528 0.607370 +vt 0.295529 0.607370 +vt 0.052365 0.438043 +vt 0.102363 0.607367 +vt 0.052365 0.607367 +vt 0.393369 0.567210 +vt 0.387691 0.587060 +vt 0.355688 0.606368 +vt 0.112420 0.438043 +vt 0.163496 0.607367 +vt 0.112420 0.607367 +vt 0.042205 0.439048 +vt 0.042206 0.606362 +vt 0.004526 0.567206 +vt 0.173340 0.438043 +vt 0.224551 0.607368 +vt 0.173340 0.607369 +vt 0.234395 0.438043 +vt 0.285472 0.607370 +vt 0.234395 0.607370 +vt 0.940211 0.512544 +vt 0.940246 0.452090 +vt 0.751649 0.694916 +vt 0.813531 0.675027 +vt 0.940210 0.572687 +vt 0.934739 0.514355 +vt 0.813165 0.803316 +vt 0.808453 0.694916 +vt 0.940210 0.632828 +vt 0.934736 0.631080 +vt 0.756360 0.803316 +vt 0.940211 0.692971 +vt 0.934739 0.691161 +vt 0.940246 0.753425 +vt 0.934717 0.750716 +vt 0.904889 0.692971 +vt 0.904854 0.753426 +vt 0.934736 0.570939 +vt 0.927993 0.518846 +vt 0.904854 0.452090 +vt 0.910383 0.454799 +vt 0.808160 0.783421 +vt 0.911333 0.754460 +vt 0.906690 0.753196 +vt 0.911333 0.451055 +vt 0.906690 0.452320 +vt 0.933767 0.451055 +vt 0.938409 0.452320 +vt 0.933767 0.754460 +vt 0.938409 0.753195 +vt 0.938406 0.512543 +vt 0.938402 0.572687 +vt 0.938402 0.632828 +vt 0.938406 0.692972 +vt 0.906694 0.692973 +vt 0.906697 0.632829 +vt 0.906697 0.572687 +vt 0.906694 0.512543 +vt 0.917106 0.635687 +vt 0.927076 0.453302 +vt 0.045440 0.434418 +vt 0.045441 0.612005 +vt 0.166666 0.433413 +vt 0.166667 0.613011 +vt 0.918024 0.453302 +vt 0.918024 0.752213 +vt 0.927987 0.511202 +vt 0.927993 0.569829 +vt 0.927076 0.752213 +vt 0.917112 0.694314 +vt 0.840655 0.640153 +vt 0.352454 0.612010 +vt 0.348762 0.433413 +vt 0.352453 0.434417 +vt 0.049131 0.613009 +vt 0.049131 0.433413 +vt 0.109207 0.613009 +vt 0.105575 0.433414 +vt 0.109207 0.433414 +vt 0.170170 0.613011 +vt 0.170170 0.433413 +vt 0.231225 0.613012 +vt 0.227721 0.433413 +vt 0.231224 0.433413 +vt 0.292316 0.613013 +vt 0.288684 0.433414 +vt 0.292316 0.433414 +vt 0.355688 0.439047 +vt 0.227721 0.613012 +vt 0.105576 0.613009 +vt 0.348763 0.613014 +vt 0.288685 0.613013 +vt 0.534518 0.522925 +vt 0.571091 0.462674 +vt 0.571091 0.522925 +vt 0.525466 0.462674 +vt 0.488893 0.522925 +vt 0.488893 0.462674 +vt 0.525466 0.522925 +vt 0.488893 0.583177 +vt 0.525466 0.583177 +vt 0.488893 0.643428 +vt 0.103937 0.865381 +vt 0.079904 0.828809 +vt 0.103937 0.828809 +vt 0.079904 0.865381 +vt 0.054814 0.828809 +vt 0.525466 0.402422 +vt 0.488893 0.402422 +vt 0.054814 0.865381 +vt 0.030782 0.828809 +vt 0.525466 0.643428 +vt 0.488893 0.703680 +vt 0.442462 0.816101 +vt 0.466495 0.852674 +vt 0.442462 0.852674 +vt 0.466495 0.816101 +vt 0.491585 0.852674 +vt 0.491585 0.816101 +vt 0.515617 0.852674 +vt 0.515617 0.816101 +vt 0.611486 0.852674 +vt 0.611486 0.816101 +vt 0.635519 0.852674 +vt 0.635519 0.816101 +vt 0.660609 0.852674 +vt 0.534518 0.703680 +vt 0.571091 0.643428 +vt 0.571091 0.703680 +vt 0.660609 0.816101 +vt 0.684642 0.852674 +vt 0.534518 0.462674 +vt 0.571091 0.402422 +vt 0.272961 0.865381 +vt 0.248929 0.828809 +vt 0.272961 0.828809 +vt 0.248929 0.865381 +vt 0.223838 0.828809 +vt 0.223838 0.865381 +vt 0.199806 0.828809 +vt 0.199806 0.865381 +vt 0.534518 0.583177 +vt 0.571091 0.583177 +vt 0.845124 0.011186 +vt 0.832156 0.023938 +vt 0.826151 0.018380 +vt 0.406715 0.685366 +vt 0.412185 0.743698 +vt 0.406711 0.741949 +vt 0.818257 0.168152 +vt 0.826453 0.189473 +vt 0.811744 0.172402 +vt 0.937528 0.014559 +vt 0.930746 0.064198 +vt 0.930772 0.008270 +vt 0.812887 0.059757 +vt 0.806330 0.151074 +vt 0.806057 0.056990 +vt 0.406711 0.745446 +vt 0.412185 0.803840 +vt 0.406711 0.802091 +vt 0.823177 0.194053 +vt 0.845196 0.196470 +vt 0.800914 0.151745 +vt 0.399936 0.915438 +vt 0.406718 0.865799 +vt 0.406692 0.921727 +vt 0.826453 0.397025 +vt 0.806696 0.382579 +vt 0.811744 0.379954 +vt 0.800913 0.359297 +vt 0.806330 0.358626 +vt 0.800609 0.056354 +vt 0.811335 0.035605 +vt 0.806279 0.033033 +vt 0.406718 0.681738 +vt 0.399936 0.632099 +vt 0.406692 0.625810 +vt 0.845124 0.218738 +vt 0.832156 0.231489 +vt 0.826151 0.225932 +vt 0.806696 0.175027 +vt 0.800609 0.263906 +vt 0.811335 0.243157 +vt 0.806057 0.264542 +vt 0.806279 0.240585 +vt 0.930746 0.248259 +vt 0.937528 0.297898 +vt 0.930772 0.304187 +vt 0.845283 0.212078 +vt 0.845754 0.213902 +vt 0.845283 0.004526 +vt 0.845755 0.006350 +vt 0.832384 0.183961 +vt 0.930753 0.127906 +vt 0.937496 0.181787 +vt 0.930753 0.184550 +vt 0.930753 0.188048 +vt 0.937496 0.240140 +vt 0.930750 0.244631 +vt 0.399968 0.857680 +vt 0.406711 0.805588 +vt 0.406714 0.862172 +vt 0.832383 0.391513 +vt 0.845196 0.404022 +vt 0.399969 0.799328 +vt 0.399968 0.689857 +vt 0.448109 0.052365 +vt 0.617432 0.102364 +vt 0.448109 0.102362 +vt 0.448105 0.295531 +vt 0.617433 0.345528 +vt 0.448106 0.345530 +vt 0.597123 0.010205 +vt 0.611928 0.025473 +vt 0.616429 0.042208 +vt 0.448105 0.234396 +vt 0.617432 0.285472 +vt 0.448105 0.285473 +vt 0.577272 0.393368 +vt 0.488267 0.393370 +vt 0.616429 0.355686 +vt 0.448106 0.173341 +vt 0.617432 0.224552 +vt 0.448106 0.224552 +vt 0.448108 0.112421 +vt 0.617433 0.163498 +vt 0.448108 0.163497 +vt 0.925278 0.066015 +vt 0.818257 0.375704 +vt 0.930750 0.067825 +vt 0.930753 0.124409 +vt 0.925279 0.126158 +vt 0.817892 0.247415 +vt 0.817892 0.039863 +vt 0.925279 0.186299 +vt 0.925278 0.246442 +vt 0.412186 0.863982 +vt 0.937496 0.072317 +vt 0.412186 0.683555 +vt 0.812887 0.267309 +vt 0.410384 0.924207 +vt 0.405742 0.925471 +vt 0.405742 0.622066 +vt 0.410384 0.623331 +vt 0.927080 0.005791 +vt 0.931722 0.004526 +vt 0.931722 0.307931 +vt 0.927080 0.306666 +vt 0.927083 0.066014 +vt 0.927086 0.126158 +vt 0.927086 0.186299 +vt 0.927083 0.246443 +vt 0.410381 0.863983 +vt 0.410378 0.803840 +vt 0.410378 0.743698 +vt 0.410381 0.683554 +vt 0.399969 0.806698 +vt 0.399969 0.740840 +vt 0.938413 0.006773 +vt 0.449109 0.355690 +vt 0.621059 0.352452 +vt 0.622062 0.231225 +vt 0.617432 0.234395 +vt 0.399051 0.624313 +vt 0.399963 0.682212 +vt 0.399051 0.923224 +vt 0.937501 0.064672 +vt 0.937496 0.123300 +vt 0.937496 0.130670 +vt 0.937496 0.189157 +vt 0.937501 0.247785 +vt 0.938413 0.305684 +vt 0.399963 0.865325 +vt 0.823177 0.401605 +vt 0.622063 0.049133 +vt 0.443471 0.045440 +vt 0.621059 0.045442 +vt 0.442462 0.348765 +vt 0.622063 0.348762 +vt 0.622062 0.292316 +vt 0.442463 0.288686 +vt 0.622062 0.288685 +vt 0.442463 0.227723 +vt 0.622062 0.227721 +vt 0.622062 0.170171 +vt 0.442464 0.166668 +vt 0.622062 0.166667 +vt 0.622062 0.109209 +vt 0.442466 0.105576 +vt 0.622062 0.105578 +vt 0.449115 0.042205 +vt 0.617432 0.173341 +vt 0.617432 0.295529 +vt 0.617433 0.052367 +vt 0.617433 0.112422 +vt 0.534518 0.643428 +vt 0.784307 0.641951 +vt 0.841028 0.836829 +vt 0.784223 0.836829 +vt 0.786830 0.652929 +vt 0.843635 0.652929 +vt 0.917106 0.577199 +vt 0.345528 0.438043 +vt 0.102362 0.438043 +vt 0.372423 0.601866 +vt 0.372423 0.443548 +vt 0.387691 0.458355 +vt 0.393369 0.478205 +vt 0.163496 0.438043 +vt 0.025471 0.601860 +vt 0.010204 0.587055 +vt 0.004526 0.478204 +vt 0.010203 0.458355 +vt 0.025470 0.443549 +vt 0.224551 0.438043 +vt 0.285471 0.438043 +vt 0.841112 0.641951 +vt 0.030782 0.865381 +vt 0.525466 0.703680 +vt 0.684642 0.816101 +vt 0.534518 0.402422 +vt 0.848361 0.017491 +vt 0.813179 0.148262 +vt 0.845838 0.201228 +vt 0.845381 0.203026 +vt 0.822770 0.013738 +vt 0.848361 0.225043 +vt 0.822770 0.221290 +vt 0.848361 0.190250 +vt 0.848361 0.397802 +vt 0.399969 0.748210 +vt 0.488272 0.004526 +vt 0.453616 0.025470 +vt 0.468422 0.010203 +vt 0.577274 0.004528 +vt 0.468417 0.387693 +vt 0.453611 0.372426 +vt 0.611928 0.372422 +vt 0.597122 0.387690 +vt 0.925243 0.005561 +vt 0.813179 0.355814 +vt 0.925243 0.306896 +vt 0.412221 0.924437 +vt 0.412221 0.623101 +vt 0.443467 0.352456 +vt 0.442463 0.231227 +vt 0.845838 0.408780 +vt 0.845381 0.410578 +vt 0.442467 0.049131 +vt 0.442463 0.292318 +vt 0.442464 0.170171 +vt 0.442466 0.109207 +vn 0.7790 0.1642 -0.6052 +vn 0.8198 0.2555 -0.5126 +vn 0.7857 0.1313 -0.6045 +vn 1.0000 0.0000 -0.0000 +vn 0.8258 0.2898 0.4837 +vn 0.8225 0.4962 0.2778 +vn 0.8229 0.4869 0.2928 +vn 0.7564 0.0000 0.6541 +vn 0.7693 0.0222 0.6385 +vn 0.7802 0.0915 0.6187 +vn 0.7889 0.6067 0.0976 +vn 0.7831 0.6180 -0.0704 +vn 0.7889 0.6067 -0.0976 +vn 0.7564 0.0000 -0.6541 +vn 0.7693 -0.0222 -0.6385 +vn 0.7802 -0.0915 -0.6187 +vn 0.7693 0.0222 -0.6385 +vn 0.7790 -0.1642 0.6052 +vn 0.8198 -0.2555 0.5126 +vn 0.7857 -0.1313 0.6045 +vn 0.7693 -0.0222 0.6385 +vn 0.7790 0.1642 0.6052 +vn 0.8198 0.2555 0.5126 +vn 0.7790 -0.1642 -0.6052 +vn 0.8198 -0.2555 -0.5126 +vn 0.8258 -0.2898 -0.4837 +vn 0.7831 0.6180 0.0704 +vn 0.8225 -0.4962 -0.2778 +vn 0.8229 -0.4869 -0.2928 +vn 0.7889 -0.6067 0.0976 +vn 0.8225 -0.4962 0.2778 +vn 0.8229 -0.4869 0.2928 +vn 0.7889 -0.6067 -0.0976 +vn 0.7831 -0.6180 -0.0704 +vn 0.8258 -0.2898 0.4837 +vn 0.8225 0.4962 -0.2778 +vn 0.8229 0.4869 -0.2928 +vn 0.8258 0.2898 -0.4837 +vn 0.7831 -0.6180 0.0704 +vn 0.7857 0.1313 0.6045 +vn 0.6319 -0.7750 0.0000 +vn 0.6121 -0.7908 0.0000 +vn 0.7802 0.0915 -0.6187 +vn 0.7857 -0.1313 -0.6045 +vn 0.7802 -0.0915 0.6187 +vn 0.6121 0.7908 0.0000 +vn 0.6257 0.7800 0.0000 +vn 0.6319 0.7750 0.0000 +vn 0.6257 -0.7800 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.9909 -0.1349 +vn 0.0000 -0.8638 -0.5038 +vn 0.0000 -0.5038 -0.8638 +vn 0.0000 -0.1349 -0.9909 +vn 0.0000 0.1349 -0.9909 +vn 0.0000 0.5038 -0.8638 +vn 0.0000 0.8638 -0.5038 +vn 0.0000 0.9909 -0.1349 +vn 0.0000 0.9909 0.1349 +vn 0.0000 0.8638 0.5038 +vn 0.0000 0.5038 0.8638 +vn 0.0000 0.1349 0.9909 +vn 0.0000 -0.1349 0.9909 +vn 0.0000 -0.5038 0.8638 +vn 0.0000 -0.8638 0.5038 +vn 0.0000 -0.9909 0.1349 +vn -0.7790 0.1642 -0.6052 +vn -0.8198 0.2555 -0.5126 +vn -0.8258 0.2898 -0.4837 +vn -1.0000 0.0000 0.0000 +vn -0.8225 0.4962 0.2778 +vn -0.8258 0.2898 0.4837 +vn -0.8229 0.4869 0.2928 +vn -0.7693 0.0222 0.6385 +vn -0.7564 0.0000 0.6541 +vn -0.7802 0.0915 0.6187 +vn -0.7831 0.6180 -0.0704 +vn -0.7889 0.6067 0.0976 +vn -0.7889 0.6067 -0.0976 +vn -0.7693 -0.0222 -0.6385 +vn -0.7564 0.0000 -0.6541 +vn -0.7802 -0.0915 -0.6187 +vn -0.7693 0.0222 -0.6385 +vn -0.7802 0.0915 -0.6187 +vn -0.7790 -0.1642 0.6052 +vn -0.8198 -0.2555 0.5126 +vn -0.8258 -0.2898 0.4837 +vn -0.7693 -0.0222 0.6385 +vn -0.7802 -0.0915 0.6187 +vn -0.8198 0.2555 0.5126 +vn -0.7790 0.1642 0.6052 +vn -0.8198 -0.2555 -0.5126 +vn -0.7790 -0.1642 -0.6052 +vn -0.8258 -0.2898 -0.4837 +vn -0.8225 -0.4962 -0.2778 +vn -0.8229 -0.4869 -0.2928 +vn -0.8225 -0.4962 0.2778 +vn -0.7889 -0.6067 0.0976 +vn -0.8229 -0.4869 0.2928 +vn -0.7889 -0.6067 -0.0976 +vn -0.8225 0.4962 -0.2778 +vn -0.8229 0.4869 -0.2928 +vn -0.7831 -0.6180 0.0704 +vn -0.7857 0.1313 0.6045 +vn -0.6319 -0.7750 0.0000 +vn -0.6121 -0.7908 0.0000 +vn -0.7857 0.1313 -0.6045 +vn -0.7857 -0.1313 -0.6045 +vn -0.7857 -0.1313 0.6045 +vn -0.6121 0.7908 0.0000 +vn -0.6257 0.7800 0.0000 +vn -0.6319 0.7750 0.0000 +vn -0.6257 -0.7800 0.0000 +vn -0.7831 0.6180 0.0704 +vn -0.7831 -0.6180 -0.0704 +s 1 +f 268/431/159 259/432/160 308/433/161 +f 252/434/162 246/435/162 299/436/162 +f 224/437/163 261/438/164 225/439/165 +f 278/440/166 305/441/167 271/442/168 +f 217/443/169 253/444/170 218/445/171 +f 251/446/162 252/434/162 296/447/162 +f 272/448/162 238/449/162 239/450/162 +f 218/445/162 230/451/162 217/443/162 +f 290/452/172 304/453/173 265/454/174 +f 219/455/162 233/456/162 231/457/162 +f 220/458/162 234/459/162 233/456/162 +f 222/460/162 229/461/162 218/445/162 +f 223/462/162 235/463/162 222/460/162 +f 298/464/172 307/465/175 312/466/172 +f 274/467/176 264/468/177 302/469/178 +f 225/439/162 238/449/162 224/437/162 +f 225/439/162 230/451/162 240/470/162 +f 226/471/162 242/472/162 227/473/162 +f 228/474/162 241/475/162 226/471/162 +f 286/476/166 301/477/179 322/478/166 +f 274/467/162 244/479/162 243/480/162 +f 227/473/162 234/459/162 221/481/162 +f 268/431/162 237/482/162 236/483/162 +f 272/448/180 260/484/181 224/437/163 +f 280/485/166 317/486/166 314/487/166 +f 283/488/166 321/489/166 318/490/166 +f 293/491/172 324/492/172 289/493/172 +f 266/494/182 255/495/183 219/455/184 +f 296/447/172 319/496/172 292/497/172 +f 295/498/172 311/499/172 315/500/172 +f 322/501/162 304/502/162 323/503/162 +f 305/504/162 312/505/162 307/506/162 +f 257/507/162 256/508/162 303/509/162 +f 310/510/162 315/511/162 311/512/162 +f 306/513/162 308/514/162 253/515/162 +f 314/516/162 319/517/162 316/518/162 +f 318/519/162 324/520/162 320/521/162 +f 247/522/162 271/442/162 239/523/162 +f 217/443/169 261/438/164 254/524/185 +f 219/455/184 256/525/186 220/458/187 +f 248/526/162 277/527/162 247/522/162 +f 227/473/188 262/528/189 226/471/190 +f 221/481/191 256/525/186 257/529/192 +f 248/526/162 249/530/162 284/531/162 +f 228/474/193 262/528/189 264/468/177 +f 218/445/171 258/532/194 222/460/195 +f 249/530/162 245/533/162 287/534/162 +f 245/533/162 244/535/162 275/536/162 +f 223/462/196 258/532/194 259/432/160 +f 250/537/162 265/454/162 232/538/162 +f 281/539/166 310/540/166 277/527/166 +f 246/435/162 237/541/162 269/542/162 +f 251/446/162 289/493/162 250/537/162 +f 221/481/191 263/543/197 227/473/188 +f 265/454/162 266/544/162 267/545/162 +f 268/546/162 269/542/162 270/547/162 +f 271/442/162 272/548/162 273/549/162 +f 274/550/162 275/536/162 276/551/162 +f 277/527/162 278/440/162 279/552/162 +f 280/485/162 281/539/162 282/553/162 +f 283/488/162 284/531/162 285/554/162 +f 286/476/162 287/534/162 288/555/162 +f 289/493/162 290/452/162 291/556/162 +f 292/497/162 293/491/162 294/557/162 +f 295/498/162 296/447/162 297/558/162 +f 298/464/162 299/436/162 300/559/162 +f 320/560/172 292/497/172 319/496/172 +f 315/500/172 296/447/172 295/498/172 +f 271/442/168 306/561/198 272/548/180 +f 308/514/199 330/562/199 336/563/199 +f 315/511/200 341/564/200 327/565/200 +f 308/566/161 269/542/201 268/546/159 +f 299/436/172 312/466/172 311/499/172 +f 265/454/174 303/567/202 266/544/182 +f 277/527/166 309/568/166 278/440/166 +f 280/485/166 313/569/166 281/539/166 +f 318/490/166 284/531/166 283/488/166 +f 322/478/166 287/534/166 286/476/166 +f 275/536/203 302/570/178 301/477/179 +f 289/493/172 323/571/172 290/452/172 +f 266/494/162 231/457/162 232/572/162 +f 333/573/162 331/574/162 332/575/162 +f 335/576/162 330/562/162 329/577/162 +f 339/578/162 337/579/162 338/580/162 +f 328/581/162 341/564/162 342/582/162 +f 326/583/162 343/584/162 344/585/162 +f 347/586/162 345/587/162 346/588/162 +f 320/521/204 344/585/204 318/519/204 +f 311/512/205 338/580/205 310/510/205 +f 303/509/206 332/575/206 302/589/206 +f 319/517/200 343/584/200 325/590/200 +f 312/505/207 337/579/207 340/591/207 +f 304/502/199 331/574/199 334/592/199 +f 323/503/205 346/588/205 322/501/205 +f 307/506/206 329/577/206 305/504/206 +f 316/518/204 342/582/204 314/516/204 +f 324/520/207 345/587/207 348/593/207 +f 384/594/208 246/595/208 252/596/208 +f 379/597/209 248/598/209 247/599/209 +f 380/600/209 249/601/209 248/598/209 +f 381/602/209 245/603/209 249/601/209 +f 362/604/210 240/605/211 230/606/210 +f 372/607/211 238/608/212 240/605/211 +f 371/609/213 247/599/209 239/610/213 +f 370/611/212 239/612/213 238/608/212 +f 377/613/209 244/614/214 245/603/209 +f 376/615/214 243/616/215 244/617/214 +f 375/618/215 241/619/216 243/616/215 +f 373/620/216 242/621/217 241/619/216 +f 374/622/217 234/623/218 242/621/217 +f 366/624/218 233/625/219 234/623/218 +f 365/626/219 231/627/220 233/625/219 +f 364/628/221 250/629/208 232/630/221 +f 363/631/220 232/632/221 231/627/220 +f 378/633/208 237/634/222 246/595/208 +f 369/635/222 236/636/223 237/637/222 +f 368/638/223 235/639/224 236/636/223 +f 367/640/224 229/641/225 235/639/224 +f 361/642/225 230/606/210 229/641/225 +f 383/643/208 252/596/208 251/644/208 +f 400/645/226 391/646/227 355/647/228 +f 431/648/229 384/649/229 427/650/229 +f 393/651/230 356/652/231 357/653/232 +f 437/654/233 410/655/234 403/656/235 +f 385/657/236 349/658/237 350/659/238 +f 428/660/229 383/661/229 424/662/229 +f 370/663/229 356/652/229 404/664/229 +f 362/665/229 350/659/229 349/658/229 +f 436/666/239 422/667/240 397/668/241 +f 351/669/229 365/670/229 352/671/229 +f 352/671/229 366/672/229 353/673/229 +f 361/674/229 354/675/229 350/659/229 +f 367/676/229 355/647/229 354/675/229 +f 430/677/240 439/678/242 401/679/243 +f 406/680/244 396/681/245 360/682/246 +f 356/652/229 372/683/229 357/653/229 +f 357/653/229 362/665/229 349/658/229 +f 374/684/229 358/685/229 359/686/229 +f 373/687/229 360/682/229 358/685/229 +f 418/688/234 433/689/247 407/690/248 +f 376/691/229 408/692/229 406/680/229 +f 366/672/229 359/686/229 353/673/229 +f 369/693/229 402/694/229 400/645/229 +f 392/695/249 404/664/250 356/652/231 +f 412/696/234 449/697/234 416/698/234 +f 415/699/234 453/700/234 419/701/234 +f 456/702/240 425/703/240 421/704/240 +f 387/705/251 398/706/252 351/669/253 +f 451/707/240 428/660/240 424/662/240 +f 427/650/240 443/708/240 431/648/240 +f 436/709/229 454/710/229 455/711/229 +f 444/712/229 437/713/229 439/714/229 +f 394/715/229 396/716/229 434/717/229 +f 447/718/229 442/719/229 443/720/229 +f 386/721/229 385/722/229 438/723/229 +f 451/724/229 446/725/229 448/726/229 +f 456/727/229 450/728/229 452/729/229 +f 403/656/229 410/655/229 379/730/229 +f 349/658/237 393/651/230 357/653/232 +f 388/731/254 351/669/253 352/671/255 +f 409/732/229 413/733/229 380/734/229 +f 394/735/256 359/686/257 358/685/258 +f 353/673/259 388/731/254 352/671/255 +f 416/698/229 380/734/229 412/696/229 +f 360/682/246 394/735/256 358/685/258 +f 390/736/260 350/659/238 354/675/261 +f 419/701/229 381/737/229 415/699/229 +f 407/690/229 377/738/229 418/688/229 +f 355/647/228 390/736/260 354/675/261 +f 397/668/229 422/667/229 382/739/229 +f 442/740/234 413/733/234 409/732/234 +f 401/679/229 378/741/229 430/677/229 +f 421/704/229 425/703/229 383/661/229 +f 395/742/262 353/673/259 359/686/257 +f 397/668/229 399/743/229 398/744/229 +f 400/745/229 402/746/229 401/679/229 +f 403/656/229 405/747/229 404/748/229 +f 406/749/229 408/750/229 407/690/229 +f 409/732/229 411/751/229 410/655/229 +f 412/696/229 414/752/229 413/733/229 +f 415/699/229 417/753/229 416/698/229 +f 418/688/229 420/754/229 419/701/229 +f 421/704/229 423/755/229 422/667/229 +f 424/662/229 426/756/229 425/703/229 +f 427/650/229 429/757/229 428/660/229 +f 430/677/229 432/758/229 431/648/229 +f 452/759/240 424/662/240 425/703/240 +f 428/660/240 447/760/240 427/650/240 +f 403/656/235 438/761/263 437/654/233 +f 440/762/264 462/763/264 438/723/264 +f 447/718/265 473/764/265 445/765/265 +f 401/679/243 440/766/266 400/745/226 +f 444/767/240 431/648/240 443/708/240 +f 397/668/241 435/768/267 436/666/239 +f 409/732/234 441/769/234 442/740/234 +f 412/696/234 445/770/234 446/771/234 +f 416/698/234 450/772/234 415/699/234 +f 419/701/234 454/773/234 418/688/234 +f 434/774/268 407/690/248 433/689/247 +f 421/704/240 455/775/240 456/702/240 +f 363/776/229 351/669/229 398/706/229 +f 463/777/229 465/778/229 464/779/229 +f 462/763/229 467/780/229 461/781/229 +f 469/782/229 471/783/229 470/784/229 +f 473/764/229 460/785/229 474/786/229 +f 475/787/229 458/788/229 476/789/229 +f 477/790/229 479/791/229 478/792/229 +f 476/789/269 452/729/269 450/728/269 +f 470/784/270 443/720/270 442/719/270 +f 464/779/271 435/793/271 434/717/271 +f 451/724/265 475/787/265 449/794/265 +f 444/712/272 469/782/272 441/795/272 +f 436/709/264 463/777/264 433/796/264 +f 478/792/270 455/711/270 454/710/270 +f 461/781/271 439/714/271 437/713/271 +f 474/786/269 448/726/269 446/725/269 +f 456/727/272 477/790/272 453/797/272 +f 382/798/208 251/644/208 250/629/208 +f 268/431/159 223/462/196 259/432/160 +f 246/435/162 300/559/162 299/436/162 +f 299/436/162 295/498/162 252/434/162 +f 295/498/162 297/558/162 252/434/162 +f 224/437/163 260/484/181 261/438/164 +f 278/440/166 309/568/166 305/441/167 +f 217/443/169 254/524/185 253/444/170 +f 252/434/162 297/558/162 296/447/162 +f 296/447/162 292/497/162 251/446/162 +f 292/497/162 294/557/162 251/446/162 +f 239/450/162 273/799/162 272/448/162 +f 272/448/162 224/437/162 238/449/162 +f 218/445/162 229/461/162 230/451/162 +f 290/452/172 323/571/172 304/453/173 +f 219/455/162 220/458/162 233/456/162 +f 220/458/162 221/481/162 234/459/162 +f 222/460/162 235/463/162 229/461/162 +f 223/462/162 236/483/162 235/463/162 +f 298/464/172 269/542/201 307/465/175 +f 274/467/176 228/474/193 264/468/177 +f 225/439/162 240/470/162 238/449/162 +f 225/439/162 217/443/162 230/451/162 +f 226/471/162 241/475/162 242/472/162 +f 228/474/162 243/480/162 241/475/162 +f 286/476/166 275/536/203 301/477/179 +f 243/480/162 228/474/162 274/467/162 +f 274/467/162 276/800/162 244/479/162 +f 227/473/162 242/472/162 234/459/162 +f 236/483/162 223/462/162 268/431/162 +f 268/431/162 270/801/162 237/482/162 +f 272/448/180 306/802/198 260/484/181 +f 280/485/166 284/531/166 317/486/166 +f 283/488/166 287/534/166 321/489/166 +f 293/491/172 320/560/172 324/492/172 +f 266/494/182 303/803/202 255/495/183 +f 296/447/172 316/804/172 319/496/172 +f 295/498/172 299/436/172 311/499/172 +f 322/501/162 301/805/162 304/502/162 +f 305/504/162 309/806/162 312/505/162 +f 255/807/162 303/509/162 256/508/162 +f 303/509/162 302/589/162 257/507/162 +f 302/589/162 264/808/162 262/809/162 +f 262/809/162 263/810/162 302/589/162 +f 263/810/162 257/507/162 302/589/162 +f 310/510/162 313/811/162 315/511/162 +f 259/812/162 258/813/162 308/514/162 +f 258/813/162 253/515/162 308/514/162 +f 253/515/162 254/814/162 306/513/162 +f 254/814/162 261/815/162 306/513/162 +f 261/815/162 260/816/162 306/513/162 +f 314/516/162 317/817/162 319/517/162 +f 318/519/162 321/818/162 324/520/162 +f 247/522/162 279/552/162 278/440/162 +f 278/440/162 271/442/162 247/522/162 +f 271/442/162 273/549/162 239/523/162 +f 217/443/169 225/439/165 261/438/164 +f 219/455/184 255/495/183 256/525/186 +f 248/526/162 282/553/162 281/539/162 +f 281/539/162 277/527/162 248/526/162 +f 277/527/162 279/552/162 247/522/162 +f 227/473/188 263/543/197 262/528/189 +f 221/481/191 220/458/187 256/525/186 +f 249/530/162 285/554/162 284/531/162 +f 284/531/162 280/485/162 248/526/162 +f 280/485/162 282/553/162 248/526/162 +f 228/474/193 226/471/190 262/528/189 +f 218/445/171 253/444/170 258/532/194 +f 245/533/162 288/555/162 287/534/162 +f 287/534/162 283/488/162 249/530/162 +f 283/488/162 285/554/162 249/530/162 +f 244/535/162 276/551/162 275/536/162 +f 275/536/162 286/476/162 245/533/162 +f 286/476/162 288/555/162 245/533/162 +f 223/462/196 222/460/195 258/532/194 +f 250/537/162 291/556/162 290/452/162 +f 290/452/162 265/454/162 250/537/162 +f 265/454/162 267/545/162 232/538/162 +f 281/539/166 313/569/166 310/540/166 +f 237/541/162 270/547/162 269/542/162 +f 269/542/162 298/464/162 246/435/162 +f 298/464/162 300/559/162 246/435/162 +f 251/446/162 294/557/162 293/491/162 +f 293/491/162 289/493/162 251/446/162 +f 289/493/162 291/556/162 250/537/162 +f 221/481/191 257/529/192 263/543/197 +f 320/560/172 293/491/172 292/497/172 +f 315/500/172 316/804/172 296/447/172 +f 271/442/168 305/441/167 306/561/198 +f 308/514/199 306/513/199 330/562/199 +f 315/511/200 313/811/200 341/564/200 +f 308/566/161 307/465/175 269/542/201 +f 299/436/172 298/464/172 312/466/172 +f 265/454/174 304/453/173 303/567/202 +f 277/527/166 310/540/166 309/568/166 +f 280/485/166 314/487/166 313/569/166 +f 318/490/166 317/486/166 284/531/166 +f 322/478/166 321/489/166 287/534/166 +f 275/536/203 274/550/176 302/570/178 +f 289/493/172 324/492/172 323/571/172 +f 232/572/162 267/819/162 266/494/162 +f 266/494/162 219/455/162 231/457/162 +f 333/573/162 334/592/162 331/574/162 +f 335/576/162 336/563/162 330/562/162 +f 339/578/162 340/591/162 337/579/162 +f 328/581/162 327/565/162 341/564/162 +f 326/583/162 325/590/162 343/584/162 +f 347/586/162 348/593/162 345/587/162 +f 320/521/204 326/583/204 344/585/204 +f 311/512/205 339/578/205 338/580/205 +f 303/509/206 333/573/206 332/575/206 +f 319/517/200 317/817/200 343/584/200 +f 312/505/207 309/806/207 337/579/207 +f 304/502/199 301/805/199 331/574/199 +f 323/503/205 347/586/205 346/588/205 +f 307/506/206 335/576/206 329/577/206 +f 316/518/204 328/581/204 342/582/204 +f 324/520/207 321/818/207 345/587/207 +f 384/594/208 378/633/208 246/595/208 +f 379/597/209 380/600/209 248/598/209 +f 380/600/209 381/602/209 249/601/209 +f 381/602/209 377/613/209 245/603/209 +f 362/604/210 372/607/211 240/605/211 +f 372/607/211 370/611/212 238/608/212 +f 371/609/213 379/597/209 247/599/209 +f 370/611/212 371/820/213 239/612/213 +f 377/613/209 376/821/214 244/614/214 +f 376/615/214 375/618/215 243/616/215 +f 375/618/215 373/620/216 241/619/216 +f 373/620/216 374/622/217 242/621/217 +f 374/622/217 366/624/218 234/623/218 +f 366/624/218 365/626/219 233/625/219 +f 365/626/219 363/631/220 231/627/220 +f 364/628/221 382/798/208 250/629/208 +f 363/631/220 364/822/221 232/632/221 +f 378/633/208 369/823/222 237/634/222 +f 369/635/222 368/638/223 236/636/223 +f 368/638/223 367/640/224 235/639/224 +f 367/640/224 361/642/225 229/641/225 +f 361/642/225 362/604/210 230/606/210 +f 383/643/208 384/594/208 252/596/208 +f 400/645/226 440/824/266 391/646/227 +f 431/648/229 432/758/229 378/741/229 +f 378/741/229 384/649/229 431/648/229 +f 384/649/229 429/757/229 427/650/229 +f 393/651/230 392/695/249 356/652/231 +f 437/654/233 441/769/234 410/655/234 +f 385/657/236 386/825/273 349/658/237 +f 428/660/229 429/757/229 384/649/229 +f 384/649/229 383/661/229 428/660/229 +f 383/661/229 426/756/229 424/662/229 +f 404/664/229 405/826/229 371/827/229 +f 371/827/229 370/663/229 404/664/229 +f 362/665/229 361/674/229 350/659/229 +f 436/666/239 455/775/240 422/667/240 +f 351/669/229 363/776/229 365/670/229 +f 352/671/229 365/670/229 366/672/229 +f 361/674/229 367/676/229 354/675/229 +f 367/676/229 368/828/229 355/647/229 +f 430/677/240 444/767/240 439/678/242 +f 406/680/244 434/829/268 396/681/245 +f 356/652/229 370/663/229 372/683/229 +f 357/653/229 372/683/229 362/665/229 +f 374/684/229 373/687/229 358/685/229 +f 373/687/229 375/830/229 360/682/229 +f 418/688/234 454/773/234 433/689/247 +f 406/680/229 360/682/229 375/830/229 +f 375/830/229 376/691/229 406/680/229 +f 366/672/229 374/684/229 359/686/229 +f 400/645/229 355/647/229 368/828/229 +f 368/828/229 369/693/229 400/645/229 +f 392/695/249 438/831/263 404/664/250 +f 412/696/234 446/771/234 449/697/234 +f 415/699/234 450/772/234 453/700/234 +f 456/702/240 452/759/240 425/703/240 +f 387/705/251 435/832/267 398/706/252 +f 451/707/240 448/833/240 428/660/240 +f 427/650/240 447/760/240 443/708/240 +f 436/709/229 433/796/229 454/710/229 +f 444/712/229 441/795/229 437/713/229 +f 434/717/229 435/793/229 389/834/229 +f 435/793/229 387/835/229 388/836/229 +f 389/834/229 435/793/229 388/836/229 +f 389/834/229 395/837/229 434/717/229 +f 395/837/229 394/715/229 434/717/229 +f 447/718/229 445/765/229 442/719/229 +f 385/722/229 390/838/229 440/762/229 +f 390/838/229 391/839/229 440/762/229 +f 440/762/229 438/723/229 385/722/229 +f 438/723/229 392/840/229 393/841/229 +f 393/841/229 386/721/229 438/723/229 +f 451/724/229 449/794/229 446/725/229 +f 456/727/229 453/797/229 450/728/229 +f 410/655/229 411/751/229 379/730/229 +f 379/730/229 371/842/229 403/656/229 +f 371/842/229 405/747/229 403/656/229 +f 349/658/237 386/825/273 393/651/230 +f 388/731/254 387/705/251 351/669/253 +f 413/733/229 414/752/229 380/734/229 +f 380/734/229 379/730/229 409/732/229 +f 379/730/229 411/751/229 409/732/229 +f 394/735/256 395/742/262 359/686/257 +f 353/673/259 389/843/274 388/731/254 +f 416/698/229 417/753/229 381/737/229 +f 381/737/229 380/734/229 416/698/229 +f 380/734/229 414/752/229 412/696/229 +f 360/682/246 396/681/245 394/735/256 +f 390/736/260 385/657/236 350/659/238 +f 419/701/229 420/754/229 377/738/229 +f 377/738/229 381/737/229 419/701/229 +f 381/737/229 417/753/229 415/699/229 +f 407/690/229 408/750/229 376/844/229 +f 376/844/229 377/738/229 407/690/229 +f 377/738/229 420/754/229 418/688/229 +f 355/647/228 391/646/227 390/736/260 +f 422/667/229 423/755/229 382/739/229 +f 382/739/229 364/845/229 397/668/229 +f 364/845/229 399/743/229 397/668/229 +f 442/740/234 445/770/234 413/733/234 +f 401/679/229 402/746/229 369/846/229 +f 369/846/229 378/741/229 401/679/229 +f 378/741/229 432/758/229 430/677/229 +f 425/703/229 426/756/229 383/661/229 +f 383/661/229 382/739/229 421/704/229 +f 382/739/229 423/755/229 421/704/229 +f 395/742/262 389/843/274 353/673/259 +f 452/759/240 451/707/240 424/662/240 +f 428/660/240 448/833/240 447/760/240 +f 403/656/235 404/748/250 438/761/263 +f 440/762/264 468/847/264 462/763/264 +f 447/718/265 459/848/265 473/764/265 +f 401/679/243 439/678/242 440/766/266 +f 444/767/240 430/677/240 431/648/240 +f 397/668/241 398/744/252 435/768/267 +f 409/732/234 410/655/234 441/769/234 +f 412/696/234 413/733/234 445/770/234 +f 416/698/234 449/697/234 450/772/234 +f 419/701/234 453/700/234 454/773/234 +f 434/774/268 406/749/244 407/690/248 +f 421/704/240 422/667/240 455/775/240 +f 398/706/229 399/849/229 364/850/229 +f 364/850/229 363/776/229 398/706/229 +f 463/777/229 466/851/229 465/778/229 +f 462/763/229 468/847/229 467/780/229 +f 469/782/229 472/852/229 471/783/229 +f 473/764/229 459/848/229 460/785/229 +f 475/787/229 457/853/229 458/788/229 +f 477/790/229 480/854/229 479/791/229 +f 476/789/269 458/788/269 452/729/269 +f 470/784/270 471/783/270 443/720/270 +f 464/779/271 465/778/271 435/793/271 +f 451/724/265 457/853/265 475/787/265 +f 444/712/272 472/852/272 469/782/272 +f 436/709/264 466/851/264 463/777/264 +f 478/792/270 479/791/270 455/711/270 +f 461/781/271 467/780/271 439/714/271 +f 474/786/269 460/785/269 448/726/269 +f 456/727/272 480/854/272 477/790/272 +f 382/798/208 383/643/208 251/644/208 diff --git a/src/main/resources/assets/hbm/models/doors/water_door.obj b/src/main/resources/assets/hbm/models/doors/water_door.obj new file mode 100644 index 000000000..6dfaabcff --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/water_door.obj @@ -0,0 +1,7570 @@ +# Blender v2.92.0 OBJ File: 'water_door.blend' +# www.blender.org +o bolt +v 0.165037 2.447428 -0.486393 +v 0.165037 2.563211 -0.486393 +v 0.165037 2.447428 -1.450890 +v 0.165037 2.563211 -1.450890 +v 0.197443 2.447428 -0.486393 +v 0.197443 2.563211 -0.486393 +v 0.197443 2.447428 -1.450890 +v 0.197443 2.563211 -1.450890 +v 0.165037 0.441220 -0.486393 +v 0.165037 0.557003 -0.486393 +v 0.165037 0.441220 -1.450890 +v 0.165037 0.557003 -1.450890 +v 0.197443 0.441220 -0.486393 +v 0.197443 0.557003 -0.486393 +v 0.197443 0.441220 -1.450890 +v 0.197443 0.557003 -1.450890 +vt 0.017052 0.475044 +vt 0.410579 0.522284 +vt 0.017052 0.522285 +vt 0.423801 0.461821 +vt 0.410579 0.414580 +vt 0.423801 0.414580 +vt 0.410579 0.461821 +vt 0.017052 0.414580 +vt 0.017052 0.461821 +vt 0.003830 0.414580 +vt 0.017052 0.401357 +vt 0.410579 0.401358 +vt 0.410579 0.475043 +vt 0.478701 0.414580 +vt 0.431462 0.808107 +vt 0.431460 0.414580 +vt 0.491925 0.821329 +vt 0.539166 0.808106 +vt 0.539166 0.821329 +vt 0.491925 0.808106 +vt 0.539165 0.414580 +vt 0.491924 0.414580 +vt 0.539165 0.401357 +vt 0.552388 0.414579 +vt 0.552388 0.808106 +vt 0.478703 0.808106 +vt 0.003830 0.461821 +vt 0.491924 0.401357 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/5/3 +f 6/9/4 1/10/4 5/8/4 +f 7/5/5 1/11/5 3/12/5 +f 4/13/6 6/9/6 8/7/6 +f 10/14/1 11/15/1 9/16/1 +f 12/17/2 15/18/2 11/19/2 +f 16/20/3 13/21/3 15/18/3 +f 14/22/4 9/23/4 13/21/4 +f 15/18/5 9/24/5 11/25/5 +f 12/26/6 14/22/6 16/20/6 +f 2/1/1 4/13/1 3/2/1 +f 4/4/2 8/7/2 7/5/2 +f 8/7/3 6/9/3 5/8/3 +f 6/9/4 2/27/4 1/10/4 +f 7/5/5 5/8/5 1/11/5 +f 4/13/6 2/1/6 6/9/6 +f 10/14/1 12/26/1 11/15/1 +f 12/17/2 16/20/2 15/18/2 +f 16/20/3 14/22/3 13/21/3 +f 14/22/4 10/28/4 9/23/4 +f 15/18/5 13/21/5 9/24/5 +f 12/26/6 10/14/6 14/22/6 +o door +v 0.101040 2.807820 -0.722241 +v 0.101040 2.743416 -0.939834 +v 0.101040 2.807820 0.722241 +v 0.101040 2.743416 0.939834 +v 0.101040 2.325418 -1.144342 +v 0.101040 2.325418 1.144342 +v 0.101040 0.674582 -1.144342 +v 0.101040 0.674582 1.144342 +v 0.101040 0.256584 -0.939834 +v 0.101040 0.256584 0.939834 +v 0.101040 0.192180 -0.722241 +v 0.101040 0.192180 0.722241 +v 0.125000 2.848552 -0.726781 +v 0.125000 2.780064 -0.958169 +v 0.125000 2.848552 0.726781 +v 0.125000 2.780064 0.958169 +v 0.125000 2.330607 -1.179983 +v 0.125000 2.330607 1.179983 +v 0.125000 0.669393 -1.179983 +v 0.125000 0.669393 1.179983 +v 0.125000 0.219935 -0.958169 +v 0.125000 0.219935 0.958169 +v 0.125000 0.151448 -0.726781 +v 0.125000 0.151448 0.726781 +v 0.125000 2.848552 -0.108504 +v 0.125000 2.848552 0.108504 +v 0.125000 0.151448 0.108504 +v 0.125000 0.151448 -0.108504 +v 0.101040 2.807820 -0.108504 +v 0.101040 2.807820 0.108504 +v 0.101040 0.192180 0.108504 +v 0.101040 0.192180 -0.108504 +v 0.133246 2.807820 -0.071231 +v 0.133246 2.807820 0.071231 +v 0.133246 0.192180 0.071231 +v 0.133246 0.192180 -0.071231 +v 0.101040 2.325418 0.722241 +v 0.101040 2.325418 0.108504 +v 0.133246 2.324229 0.071231 +v 0.133246 2.324229 -0.071231 +v 0.101040 2.325418 -0.108504 +v 0.101040 2.325418 -0.722241 +v 0.101040 0.674582 0.722241 +v 0.101040 0.674582 0.108504 +v 0.133246 0.675771 0.071231 +v 0.133246 0.675771 -0.071231 +v 0.101040 0.674582 -0.108504 +v 0.101040 0.674582 -0.722241 +v 0.130922 1.829642 -0.108504 +v 0.130922 1.906068 -0.108504 +v 0.130922 1.093932 -0.108504 +v 0.130922 1.170358 -0.108504 +v 0.130922 1.906068 0.108504 +v 0.130922 1.829642 0.108504 +v 0.130922 1.170358 0.108504 +v 0.130922 1.093932 0.108504 +v 0.130922 1.829642 1.144342 +v 0.130922 1.906068 1.144342 +v 0.130922 1.906068 0.722241 +v 0.130922 1.829642 0.722241 +v 0.130922 1.170358 0.722241 +v 0.130922 1.093932 0.722241 +v 0.130922 1.093932 1.144342 +v 0.130922 1.170358 1.144342 +v 0.130922 1.829642 -0.722241 +v 0.130922 1.906068 -0.722241 +v 0.130922 1.906068 -1.144342 +v 0.130922 1.829642 -1.144342 +v 0.130922 1.170358 -1.144342 +v 0.130922 1.093932 -1.144342 +v 0.130922 1.093932 -0.722241 +v 0.130922 1.170358 -0.722241 +v 0.125000 1.075880 -1.179983 +v 0.125000 1.188410 -1.179983 +v 0.125000 1.811590 -1.179983 +v 0.125000 1.924120 -1.179983 +v 0.125000 1.924120 1.179983 +v 0.125000 1.811590 1.179983 +v 0.125000 1.188410 1.179983 +v 0.125000 1.075880 1.179983 +v 0.101040 1.075880 -1.144342 +v 0.101040 1.188410 -1.144342 +v 0.101040 1.811590 -1.144342 +v 0.101040 1.924120 -1.144342 +v 0.101040 1.924120 1.144342 +v 0.101040 1.811590 1.144342 +v 0.101040 1.188410 1.144342 +v 0.101040 1.075880 1.144342 +v 0.133246 1.075880 -0.071231 +v 0.133246 1.188410 -0.071231 +v 0.133246 1.811590 -0.071231 +v 0.133246 1.924120 -0.071231 +v 0.101040 1.924120 -0.108504 +v 0.101040 1.811590 -0.108504 +v 0.101040 1.188410 -0.108504 +v 0.101040 1.075880 -0.108504 +v 0.101040 1.075880 0.722241 +v 0.101040 1.188410 0.722241 +v 0.101040 1.811590 0.722241 +v 0.101040 1.924120 0.722241 +v 0.101040 1.075880 0.108504 +v 0.101040 1.188410 0.108504 +v 0.101040 1.811590 0.108504 +v 0.101040 1.924120 0.108504 +v 0.133246 1.075880 0.071231 +v 0.133246 1.188410 0.071231 +v 0.133246 1.811590 0.071231 +v 0.133246 1.924120 0.071231 +v 0.101040 1.924120 -0.722241 +v 0.101040 1.811590 -0.722241 +v 0.101040 1.188410 -0.722241 +v 0.101040 1.075880 -0.722241 +v 0.101040 0.392644 1.051717 +v 0.101040 0.605411 1.126214 +v 0.124987 0.404961 1.120039 +v 0.101040 0.605411 -1.126213 +v 0.101040 0.392644 -1.051717 +v 0.124987 0.404961 -1.120039 +v 0.101040 0.392642 -0.722241 +v 0.101040 0.605412 -0.722241 +v 0.101040 0.392635 -0.108504 +v 0.101040 0.605416 -0.108504 +v 0.133246 0.392635 -0.071231 +v 0.133246 0.605416 -0.071231 +v 0.133246 0.392635 0.071231 +v 0.133246 0.605416 0.071231 +v 0.101040 0.392635 0.108504 +v 0.101040 0.605416 0.108504 +v 0.101040 0.605412 0.722241 +v 0.101040 0.392642 0.722241 +v 0.124996 0.586645 1.161225 +v 0.124996 0.586645 -1.161225 +v 0.148339 0.594584 0.722241 +v 0.148339 0.403470 0.722241 +v 0.148339 0.403463 0.108504 +v 0.148339 0.594588 0.108504 +v 0.148339 0.403463 -0.108504 +v 0.148339 0.594588 -0.108504 +v 0.148339 0.403470 -0.722241 +v 0.148339 0.594584 -0.722241 +v 0.101040 2.603477 -1.033087 +v 0.101040 2.403613 -1.126622 +v 0.124987 2.595039 -1.120039 +v 0.101040 2.403613 1.126622 +v 0.101040 2.600861 1.034830 +v 0.124987 2.595039 1.120039 +v 0.101040 2.590124 0.722241 +v 0.101040 2.403611 0.722241 +v 0.101040 2.590129 0.108504 +v 0.101040 2.403606 0.108504 +v 0.133246 2.590129 0.071231 +v 0.133246 2.403606 0.071231 +v 0.133246 2.590129 -0.071231 +v 0.133246 2.403606 -0.071231 +v 0.101040 2.590129 -0.108504 +v 0.101040 2.403606 -0.108504 +v 0.101040 2.403611 -0.722241 +v 0.101040 2.590124 -0.722241 +v 0.124996 2.411551 -1.161633 +v 0.124996 2.411551 1.161633 +v 0.148339 2.579340 -0.108504 +v 0.148339 2.414395 -0.108504 +v 0.148339 2.414400 -0.722241 +v 0.148339 2.579335 -0.722241 +v 0.148339 2.579340 0.108504 +v 0.148339 2.414395 0.108504 +v 0.148339 2.579335 0.722241 +v 0.148339 2.414400 0.722241 +v -0.101040 2.807820 -0.722241 +v -0.101040 2.743416 -0.939834 +v -0.101040 2.807820 0.722241 +v -0.101040 2.743416 0.939834 +v -0.101040 2.325418 -1.144342 +v -0.101040 2.325418 1.144342 +v -0.101040 0.674582 -1.144342 +v -0.101040 0.674582 1.144342 +v -0.101040 0.256584 -0.939834 +v -0.101040 0.256584 0.939834 +v -0.101040 0.192180 -0.722241 +v -0.101040 0.192180 0.722241 +v -0.125000 2.848552 -0.726781 +v -0.125000 2.780064 -0.958169 +v -0.125000 2.848552 0.726781 +v -0.125000 2.780064 0.958169 +v -0.125000 2.330607 -1.179983 +v -0.125000 2.330607 1.179983 +v -0.125000 0.669393 -1.179983 +v -0.125000 0.669393 1.179983 +v -0.125000 0.219935 -0.958169 +v -0.125000 0.219935 0.958169 +v -0.125000 0.151448 -0.726781 +v -0.125000 0.151448 0.726781 +v -0.125000 2.848552 -0.108504 +v -0.125000 2.848552 0.108504 +v -0.125000 0.151448 0.108504 +v -0.125000 0.151448 -0.108504 +v -0.101040 2.807820 -0.108504 +v -0.101040 2.807820 0.108504 +v -0.101040 0.192180 0.108504 +v -0.101040 0.192180 -0.108504 +v -0.133246 2.807820 -0.071231 +v -0.133246 2.807820 0.071231 +v -0.133246 0.192180 0.071231 +v -0.133246 0.192180 -0.071231 +v -0.101040 2.325418 0.722241 +v -0.101040 2.325418 0.108504 +v -0.133246 2.324229 0.071231 +v -0.133246 2.324229 -0.071231 +v -0.101040 2.325418 -0.108504 +v -0.101040 2.325418 -0.722241 +v -0.101040 0.674582 0.722241 +v -0.101040 0.674582 0.108504 +v -0.133246 0.675771 0.071231 +v -0.133246 0.675771 -0.071231 +v -0.101040 0.674582 -0.108504 +v -0.101040 0.674582 -0.722241 +v -0.130922 1.829642 -0.108504 +v -0.130922 1.906068 -0.108504 +v -0.130922 1.093932 -0.108504 +v -0.130922 1.170358 -0.108504 +v -0.130922 1.906068 0.108504 +v -0.130922 1.829642 0.108504 +v -0.130922 1.170358 0.108504 +v -0.130922 1.093932 0.108504 +v -0.130922 1.829642 1.144342 +v -0.130922 1.906068 1.144342 +v -0.130922 1.906068 0.722241 +v -0.130922 1.829642 0.722241 +v -0.130922 1.170358 0.722241 +v -0.130922 1.093932 0.722241 +v -0.130922 1.093932 1.144342 +v -0.130922 1.170358 1.144342 +v -0.130922 1.829642 -0.722241 +v -0.130922 1.906068 -0.722241 +v -0.130922 1.906068 -1.144342 +v -0.130922 1.829642 -1.144342 +v -0.130922 1.170358 -1.144342 +v -0.130922 1.093932 -1.144342 +v -0.130922 1.093932 -0.722241 +v -0.130922 1.170358 -0.722241 +v -0.125000 1.075880 -1.179983 +v -0.125000 1.188410 -1.179983 +v -0.125000 1.811590 -1.179983 +v -0.125000 1.924120 -1.179983 +v -0.125000 1.924120 1.179983 +v -0.125000 1.811590 1.179983 +v -0.125000 1.188410 1.179983 +v -0.125000 1.075880 1.179983 +v -0.101040 1.075880 -1.144342 +v -0.101040 1.188410 -1.144342 +v -0.101040 1.811590 -1.144342 +v -0.101040 1.924120 -1.144342 +v -0.101040 1.924120 1.144342 +v -0.101040 1.811590 1.144342 +v -0.101040 1.188410 1.144342 +v -0.101040 1.075880 1.144342 +v -0.133246 1.075880 -0.071231 +v -0.133246 1.188410 -0.071231 +v -0.133246 1.811590 -0.071231 +v -0.133246 1.924120 -0.071231 +v -0.101040 1.924120 -0.108504 +v -0.101040 1.811590 -0.108504 +v -0.101040 1.188410 -0.108504 +v -0.101040 1.075880 -0.108504 +v -0.101040 1.075880 0.722241 +v -0.101040 1.188410 0.722241 +v -0.101040 1.811590 0.722241 +v -0.101040 1.924120 0.722241 +v -0.101040 1.075880 0.108504 +v -0.101040 1.188410 0.108504 +v -0.101040 1.811590 0.108504 +v -0.101040 1.924120 0.108504 +v -0.133246 1.075880 0.071231 +v -0.133246 1.188410 0.071231 +v -0.133246 1.811590 0.071231 +v -0.133246 1.924120 0.071231 +v -0.101040 1.924120 -0.722241 +v -0.101040 1.811590 -0.722241 +v -0.101040 1.188410 -0.722241 +v -0.101040 1.075880 -0.722241 +v -0.101040 0.392644 1.051717 +v -0.101040 0.605411 1.126214 +v -0.124987 0.404961 1.120039 +v -0.101040 0.605411 -1.126213 +v -0.101040 0.392644 -1.051717 +v -0.124987 0.404961 -1.120039 +v -0.101040 0.392642 -0.722241 +v -0.101040 0.605412 -0.722241 +v -0.101040 0.392635 -0.108504 +v -0.101040 0.605416 -0.108504 +v -0.133246 0.392635 -0.071231 +v -0.133246 0.605416 -0.071231 +v -0.133246 0.392635 0.071231 +v -0.133246 0.605416 0.071231 +v -0.101040 0.392635 0.108504 +v -0.101040 0.605416 0.108504 +v -0.101040 0.605412 0.722241 +v -0.101040 0.392642 0.722241 +v -0.124996 0.586645 1.161225 +v -0.124996 0.586645 -1.161225 +v -0.148339 0.594584 0.722241 +v -0.148339 0.403470 0.722241 +v -0.148339 0.403463 0.108504 +v -0.148339 0.594588 0.108504 +v -0.148339 0.403463 -0.108504 +v -0.148339 0.594588 -0.108504 +v -0.148339 0.403470 -0.722241 +v -0.148339 0.594584 -0.722241 +v -0.101040 2.603477 -1.033087 +v -0.101040 2.403613 -1.126622 +v -0.124987 2.595039 -1.120039 +v -0.101040 2.403613 1.126622 +v -0.101040 2.600861 1.034830 +v -0.124987 2.595039 1.120039 +v -0.101040 2.590124 0.722241 +v -0.101040 2.403611 0.722241 +v -0.101040 2.590129 0.108504 +v -0.101040 2.403606 0.108504 +v -0.133246 2.590129 0.071231 +v -0.133246 2.403606 0.071231 +v -0.133246 2.590129 -0.071231 +v -0.133246 2.403606 -0.071231 +v -0.101040 2.590129 -0.108504 +v -0.101040 2.403606 -0.108504 +v -0.101040 2.403611 -0.722241 +v -0.101040 2.590124 -0.722241 +v -0.124996 2.411551 -1.161633 +v -0.124996 2.411551 1.161633 +v -0.148339 2.579340 -0.108504 +v -0.148339 2.414395 -0.108504 +v -0.148339 2.414400 -0.722241 +v -0.148339 2.579335 -0.722241 +v -0.148339 2.579340 0.108504 +v -0.148339 2.414395 0.108504 +v -0.148339 2.579335 0.722241 +v -0.148339 2.414400 0.722241 +v 0.197647 2.347521 -0.528361 +v 0.197647 2.645470 -0.528361 +v 0.197647 2.347521 -0.647202 +v 0.197647 2.645470 -0.647202 +v 0.226225 2.347521 -0.528361 +v 0.226225 2.645470 -0.528361 +v 0.226225 2.347521 -0.647202 +v 0.226225 2.645470 -0.647202 +v 0.097240 2.347521 -0.528361 +v 0.097240 2.645470 -0.528361 +v 0.097240 2.347521 -0.647202 +v 0.097240 2.645470 -0.647202 +v 0.164155 2.347521 -0.528361 +v 0.164155 2.645470 -0.528361 +v 0.164155 2.347521 -0.647202 +v 0.164155 2.645470 -0.647202 +v 0.203265 2.586435 -0.575212 +v 0.203265 2.612117 -0.575212 +v 0.203265 2.586435 -0.600894 +v 0.203265 2.612117 -0.600894 +v 0.244293 2.612117 -0.600894 +v 0.244293 2.586435 -0.600894 +v 0.244293 2.586435 -0.575212 +v 0.244293 2.612117 -0.575212 +v 0.161929 2.564306 -0.571122 +v 0.161929 2.582345 -0.553083 +v 0.161929 2.616207 -0.553083 +v 0.161929 2.634246 -0.571122 +v 0.161929 2.582345 -0.623023 +v 0.161929 2.564306 -0.604984 +v 0.161929 2.634246 -0.604984 +v 0.161929 2.616207 -0.623023 +v 0.203265 2.616207 -0.623023 +v 0.203265 2.634246 -0.604984 +v 0.203265 2.621491 -0.610268 +v 0.203265 2.564306 -0.604984 +v 0.203265 2.582345 -0.623023 +v 0.203265 2.577062 -0.610268 +v 0.203265 2.582345 -0.553083 +v 0.203265 2.564306 -0.571122 +v 0.203265 2.577062 -0.565838 +v 0.203265 2.634246 -0.571122 +v 0.203265 2.616207 -0.553083 +v 0.203265 2.621491 -0.565838 +v 0.203265 2.384638 -0.575212 +v 0.203265 2.410320 -0.575212 +v 0.203265 2.384638 -0.600894 +v 0.203265 2.410320 -0.600894 +v 0.244293 2.410320 -0.600894 +v 0.244293 2.384638 -0.600894 +v 0.244293 2.384638 -0.575212 +v 0.244293 2.410320 -0.575212 +v 0.161929 2.362509 -0.571122 +v 0.161929 2.380548 -0.553083 +v 0.161929 2.414410 -0.553083 +v 0.161929 2.432449 -0.571122 +v 0.161929 2.380548 -0.623023 +v 0.161929 2.362509 -0.604984 +v 0.161929 2.432449 -0.604984 +v 0.161929 2.414410 -0.623023 +v 0.203265 2.414410 -0.623023 +v 0.203265 2.432449 -0.604984 +v 0.203265 2.419693 -0.610268 +v 0.203265 2.362509 -0.604984 +v 0.203265 2.380548 -0.623023 +v 0.203265 2.375264 -0.610268 +v 0.203265 2.380548 -0.553083 +v 0.203265 2.362509 -0.571122 +v 0.203265 2.375264 -0.565838 +v 0.203265 2.432449 -0.571122 +v 0.203265 2.414410 -0.553083 +v 0.203265 2.419693 -0.565838 +v 0.197647 0.341313 -0.866632 +v 0.197647 0.639262 -0.866632 +v 0.197647 0.341313 -0.985472 +v 0.197647 0.639262 -0.985472 +v 0.226225 0.341313 -0.866632 +v 0.226225 0.639262 -0.866632 +v 0.226225 0.341313 -0.985472 +v 0.226225 0.639262 -0.985472 +v 0.097240 0.341313 -0.866632 +v 0.097240 0.639262 -0.866632 +v 0.097240 0.341313 -0.985472 +v 0.097240 0.639262 -0.985472 +v 0.164155 0.341313 -0.866632 +v 0.164155 0.639262 -0.866632 +v 0.164155 0.341313 -0.985472 +v 0.164155 0.639262 -0.985472 +v 0.203265 0.580227 -0.913483 +v 0.203265 0.605909 -0.913483 +v 0.203265 0.580227 -0.939164 +v 0.203265 0.605909 -0.939164 +v 0.244293 0.605909 -0.939164 +v 0.244293 0.580227 -0.939164 +v 0.244293 0.580227 -0.913483 +v 0.244293 0.605909 -0.913483 +v 0.161929 0.558098 -0.909392 +v 0.161929 0.576137 -0.891353 +v 0.161929 0.609999 -0.891353 +v 0.161929 0.628038 -0.909392 +v 0.161929 0.576137 -0.961294 +v 0.161929 0.558098 -0.943255 +v 0.161929 0.628038 -0.943255 +v 0.161929 0.609999 -0.961294 +v 0.203265 0.609999 -0.961294 +v 0.203265 0.628038 -0.943255 +v 0.203265 0.615283 -0.948538 +v 0.203265 0.558098 -0.943255 +v 0.203265 0.576137 -0.961294 +v 0.203265 0.570854 -0.948538 +v 0.203265 0.576137 -0.891353 +v 0.203265 0.558098 -0.909392 +v 0.203265 0.570854 -0.904109 +v 0.203265 0.628038 -0.909392 +v 0.203265 0.609999 -0.891353 +v 0.203265 0.615283 -0.904109 +v 0.203265 0.378430 -0.913483 +v 0.203265 0.404112 -0.913483 +v 0.203265 0.378430 -0.939164 +v 0.203265 0.404112 -0.939164 +v 0.244293 0.404112 -0.939164 +v 0.244293 0.378430 -0.939164 +v 0.244293 0.378430 -0.913483 +v 0.244293 0.404112 -0.913483 +v 0.161929 0.356301 -0.909392 +v 0.161929 0.374340 -0.891353 +v 0.161929 0.408202 -0.891353 +v 0.161929 0.426241 -0.909392 +v 0.161929 0.374340 -0.961294 +v 0.161929 0.356301 -0.943255 +v 0.161929 0.426241 -0.943255 +v 0.161929 0.408202 -0.961294 +v 0.203265 0.408202 -0.961294 +v 0.203265 0.426241 -0.943255 +v 0.203265 0.413486 -0.948538 +v 0.203265 0.356301 -0.943255 +v 0.203265 0.374340 -0.961294 +v 0.203265 0.369056 -0.948538 +v 0.203265 0.374340 -0.891353 +v 0.203265 0.356301 -0.909392 +v 0.203265 0.369056 -0.904109 +v 0.203265 0.426241 -0.909392 +v 0.203265 0.408202 -0.891353 +v 0.203265 0.413486 -0.904109 +v 0.197647 0.341313 -0.528361 +v 0.197647 0.639262 -0.528361 +v 0.197647 0.341313 -0.647202 +v 0.197647 0.639262 -0.647202 +v 0.226225 0.341313 -0.528361 +v 0.226225 0.639262 -0.528361 +v 0.226225 0.341313 -0.647202 +v 0.226225 0.639262 -0.647202 +v 0.097240 0.341313 -0.528361 +v 0.097240 0.639262 -0.528361 +v 0.097240 0.341313 -0.647202 +v 0.097240 0.639262 -0.647202 +v 0.164155 0.341313 -0.528361 +v 0.164155 0.639262 -0.528361 +v 0.164155 0.341313 -0.647202 +v 0.164155 0.639262 -0.647202 +v 0.203265 0.580227 -0.575212 +v 0.203265 0.605909 -0.575212 +v 0.203265 0.580227 -0.600894 +v 0.203265 0.605909 -0.600894 +v 0.244293 0.605909 -0.600894 +v 0.244293 0.580227 -0.600894 +v 0.244293 0.580227 -0.575212 +v 0.244293 0.605909 -0.575212 +v 0.161929 0.558098 -0.571122 +v 0.161929 0.576137 -0.553083 +v 0.161929 0.609999 -0.553083 +v 0.161929 0.628038 -0.571122 +v 0.161929 0.576137 -0.623023 +v 0.161929 0.558098 -0.604984 +v 0.161929 0.628038 -0.604984 +v 0.161929 0.609999 -0.623023 +v 0.203265 0.609999 -0.623023 +v 0.203265 0.628038 -0.604984 +v 0.203265 0.615283 -0.610268 +v 0.203265 0.558098 -0.604984 +v 0.203265 0.576137 -0.623023 +v 0.203265 0.570854 -0.610268 +v 0.203265 0.576137 -0.553083 +v 0.203265 0.558098 -0.571122 +v 0.203265 0.570854 -0.565839 +v 0.203265 0.628038 -0.571122 +v 0.203265 0.609999 -0.553083 +v 0.203265 0.615283 -0.565839 +v 0.203265 0.378430 -0.575212 +v 0.203265 0.404112 -0.575212 +v 0.203265 0.378430 -0.600894 +v 0.203265 0.404112 -0.600894 +v 0.244293 0.404112 -0.600894 +v 0.244293 0.378430 -0.600894 +v 0.244293 0.378430 -0.575212 +v 0.244293 0.404112 -0.575212 +v 0.161929 0.356301 -0.571122 +v 0.161929 0.374340 -0.553083 +v 0.161929 0.408202 -0.553083 +v 0.161929 0.426241 -0.571122 +v 0.161929 0.374340 -0.623023 +v 0.161929 0.356301 -0.604984 +v 0.161929 0.426241 -0.604984 +v 0.161929 0.408202 -0.623023 +v 0.203265 0.408202 -0.623023 +v 0.203265 0.426241 -0.604984 +v 0.203265 0.413486 -0.610268 +v 0.203265 0.356301 -0.604984 +v 0.203265 0.374340 -0.623023 +v 0.203265 0.369056 -0.610268 +v 0.203265 0.374340 -0.553083 +v 0.203265 0.356301 -0.571122 +v 0.203265 0.369056 -0.565839 +v 0.203265 0.426241 -0.571122 +v 0.203265 0.408202 -0.553083 +v 0.203265 0.413486 -0.565839 +v 0.197647 2.347521 -0.866632 +v 0.197647 2.645470 -0.866632 +v 0.197647 2.347521 -0.985472 +v 0.197647 2.645470 -0.985472 +v 0.226225 2.347521 -0.866632 +v 0.226225 2.645470 -0.866632 +v 0.226225 2.347521 -0.985472 +v 0.226225 2.645470 -0.985472 +v 0.097240 2.347521 -0.866632 +v 0.097240 2.645470 -0.866632 +v 0.097240 2.347521 -0.985472 +v 0.097240 2.645470 -0.985472 +v 0.164155 2.347521 -0.866632 +v 0.164155 2.645470 -0.866632 +v 0.164155 2.347521 -0.985472 +v 0.164155 2.645470 -0.985472 +v 0.203265 2.586436 -0.913483 +v 0.203265 2.612117 -0.913483 +v 0.203265 2.586436 -0.939164 +v 0.203265 2.612117 -0.939164 +v 0.244293 2.612117 -0.939164 +v 0.244293 2.586436 -0.939164 +v 0.244293 2.586436 -0.913483 +v 0.244293 2.612117 -0.913483 +v 0.161929 2.564306 -0.909392 +v 0.161929 2.582345 -0.891353 +v 0.161929 2.616208 -0.891353 +v 0.161929 2.634247 -0.909392 +v 0.161929 2.582345 -0.961294 +v 0.161929 2.564306 -0.943255 +v 0.161929 2.634247 -0.943255 +v 0.161929 2.616208 -0.961294 +v 0.203265 2.616208 -0.961294 +v 0.203265 2.634247 -0.943255 +v 0.203265 2.621491 -0.948538 +v 0.203265 2.564306 -0.943255 +v 0.203265 2.582345 -0.961294 +v 0.203265 2.577062 -0.948538 +v 0.203265 2.582345 -0.891353 +v 0.203265 2.564306 -0.909392 +v 0.203265 2.577062 -0.904109 +v 0.203265 2.634247 -0.909392 +v 0.203265 2.616208 -0.891353 +v 0.203265 2.621491 -0.904109 +v 0.203265 2.384638 -0.913483 +v 0.203265 2.410320 -0.913483 +v 0.203265 2.384638 -0.939164 +v 0.203265 2.410320 -0.939164 +v 0.244293 2.410320 -0.939164 +v 0.244293 2.384638 -0.939164 +v 0.244293 2.384638 -0.913483 +v 0.244293 2.410320 -0.913483 +v 0.161929 2.362509 -0.909392 +v 0.161929 2.380548 -0.891353 +v 0.161929 2.414410 -0.891353 +v 0.161929 2.432449 -0.909392 +v 0.161929 2.380548 -0.961294 +v 0.161929 2.362509 -0.943255 +v 0.161929 2.432449 -0.943255 +v 0.161929 2.414410 -0.961294 +v 0.203265 2.414410 -0.961294 +v 0.203265 2.432449 -0.943255 +v 0.203265 2.419694 -0.948538 +v 0.203265 2.362509 -0.943255 +v 0.203265 2.380548 -0.961294 +v 0.203265 2.375265 -0.948538 +v 0.203265 2.380548 -0.891353 +v 0.203265 2.362509 -0.909392 +v 0.203265 2.375265 -0.904109 +v 0.203265 2.432449 -0.909392 +v 0.203265 2.414410 -0.891353 +v 0.203265 2.419694 -0.904109 +vt 0.511490 0.377541 +vt 0.478344 0.390762 +vt 0.478345 0.377541 +vt 0.194788 0.944062 +vt 0.161643 0.947241 +vt 0.161643 0.944062 +vt 0.194788 0.947241 +vt 0.161643 0.960462 +vt 0.194788 0.960462 +vt 0.161643 0.963641 +vt 0.158463 0.960462 +vt 0.158463 0.947241 +vt 0.197968 0.947241 +vt 0.882134 0.687732 +vt 0.874690 0.654587 +vt 0.882134 0.654587 +vt 0.874690 0.687732 +vt 0.861469 0.654587 +vt 0.861469 0.687732 +vt 0.854025 0.654587 +vt 0.861469 0.647143 +vt 0.874690 0.647143 +vt 0.874690 0.695177 +vt 0.034978 0.968702 +vt 0.034978 0.972469 +vt 0.032517 0.969157 +vt 0.423791 0.822353 +vt 0.419227 0.819496 +vt 0.423791 0.819496 +vt 0.032972 0.979074 +vt 0.029205 0.974476 +vt 0.032972 0.974476 +vt 0.027198 0.972469 +vt 0.022599 0.968702 +vt 0.027198 0.968702 +vt 0.039577 0.972469 +vt 0.039577 0.968702 +vt 0.032517 0.972014 +vt 0.029660 0.972014 +vt 0.029205 0.966695 +vt 0.032972 0.966695 +vt 0.029660 0.969157 +vt 0.416370 0.816639 +vt 0.419227 0.813782 +vt 0.419227 0.816639 +vt 0.423791 0.816639 +vt 0.423791 0.825210 +vt 0.419227 0.822353 +vt 0.423791 0.813782 +vt 0.033559 0.973057 +vt 0.033559 0.968114 +vt 0.028617 0.968114 +vt 0.028617 0.973057 +vt 0.039577 0.965864 +vt 0.034978 0.965864 +vt 0.034978 0.975307 +vt 0.039577 0.975307 +vt 0.027198 0.965864 +vt 0.022599 0.965864 +vt 0.022599 0.975307 +vt 0.027198 0.975307 +vt 0.029205 0.962097 +vt 0.032972 0.962097 +vt 0.701874 0.977962 +vt 0.701874 0.974195 +vt 0.704336 0.977507 +vt 0.689065 0.943870 +vt 0.684500 0.941013 +vt 0.689065 0.941013 +vt 0.703881 0.967590 +vt 0.707648 0.972188 +vt 0.703881 0.972188 +vt 0.709655 0.974195 +vt 0.714253 0.977962 +vt 0.709655 0.977962 +vt 0.697276 0.974195 +vt 0.697276 0.977962 +vt 0.704336 0.974650 +vt 0.707193 0.974650 +vt 0.707648 0.979969 +vt 0.703881 0.979969 +vt 0.707193 0.977507 +vt 0.681643 0.938156 +vt 0.684500 0.935299 +vt 0.684500 0.938156 +vt 0.689065 0.938156 +vt 0.689065 0.946727 +vt 0.684500 0.943870 +vt 0.689065 0.935299 +vt 0.703293 0.973607 +vt 0.703293 0.978550 +vt 0.708236 0.978550 +vt 0.708236 0.973607 +vt 0.697276 0.980800 +vt 0.701874 0.980800 +vt 0.701874 0.971357 +vt 0.697276 0.971357 +vt 0.709655 0.980800 +vt 0.714253 0.980800 +vt 0.714253 0.971357 +vt 0.709655 0.971357 +vt 0.707648 0.984567 +vt 0.703881 0.984567 +vt 0.889793 0.647143 +vt 0.903014 0.680288 +vt 0.889793 0.680288 +vt 0.493260 0.943731 +vt 0.460114 0.946910 +vt 0.460114 0.943731 +vt 0.493260 0.946910 +vt 0.460114 0.960131 +vt 0.493260 0.960131 +vt 0.460114 0.963310 +vt 0.456935 0.960131 +vt 0.456935 0.946910 +vt 0.496439 0.946910 +vt 0.772543 0.890867 +vt 0.805689 0.883423 +vt 0.805689 0.890867 +vt 0.772543 0.883423 +vt 0.805689 0.870202 +vt 0.772543 0.870202 +vt 0.805689 0.862758 +vt 0.813133 0.870202 +vt 0.813133 0.883423 +vt 0.765099 0.883423 +vt 0.408141 0.976041 +vt 0.404374 0.976041 +vt 0.407686 0.973579 +vt 0.867301 0.965358 +vt 0.862737 0.962501 +vt 0.867301 0.962501 +vt 0.397769 0.974034 +vt 0.402367 0.970267 +vt 0.402367 0.974034 +vt 0.404374 0.968260 +vt 0.408141 0.963662 +vt 0.408141 0.968260 +vt 0.404374 0.980639 +vt 0.408141 0.980639 +vt 0.404829 0.973579 +vt 0.404829 0.970722 +vt 0.410148 0.970267 +vt 0.410148 0.974034 +vt 0.407686 0.970722 +vt 0.859880 0.959644 +vt 0.862737 0.956788 +vt 0.862737 0.959644 +vt 0.867301 0.959644 +vt 0.867301 0.968215 +vt 0.862737 0.965358 +vt 0.867301 0.956788 +vt 0.403786 0.974622 +vt 0.408729 0.974622 +vt 0.408729 0.969679 +vt 0.403786 0.969679 +vt 0.410979 0.980639 +vt 0.410979 0.976041 +vt 0.401536 0.976041 +vt 0.401536 0.980639 +vt 0.410979 0.968260 +vt 0.410979 0.963662 +vt 0.401536 0.963662 +vt 0.401536 0.968260 +vt 0.414746 0.970267 +vt 0.414746 0.974034 +vt 0.443840 0.950804 +vt 0.443840 0.954571 +vt 0.441378 0.951259 +vt 0.054658 0.970667 +vt 0.050093 0.967811 +vt 0.054658 0.967811 +vt 0.441833 0.961177 +vt 0.438066 0.956578 +vt 0.441833 0.956578 +vt 0.436059 0.954571 +vt 0.431460 0.950804 +vt 0.436059 0.950804 +vt 0.448438 0.954571 +vt 0.448438 0.950804 +vt 0.441378 0.954116 +vt 0.438521 0.954116 +vt 0.438066 0.948798 +vt 0.441833 0.948798 +vt 0.438521 0.951259 +vt 0.047236 0.964954 +vt 0.050093 0.962097 +vt 0.050093 0.964954 +vt 0.054658 0.964954 +vt 0.054658 0.973525 +vt 0.050093 0.970667 +vt 0.054657 0.962097 +vt 0.442421 0.955159 +vt 0.442421 0.950217 +vt 0.437478 0.950217 +vt 0.437478 0.955159 +vt 0.448438 0.947966 +vt 0.443840 0.947966 +vt 0.443840 0.957409 +vt 0.448438 0.957409 +vt 0.436059 0.947966 +vt 0.431460 0.947966 +vt 0.431461 0.957409 +vt 0.436059 0.957409 +vt 0.438066 0.944199 +vt 0.441833 0.944199 +vt 0.675687 0.855341 +vt 0.688907 0.888487 +vt 0.675687 0.888487 +vt 0.058924 0.934858 +vt 0.025779 0.938038 +vt 0.025779 0.934858 +vt 0.058924 0.938038 +vt 0.025779 0.951258 +vt 0.058924 0.951258 +vt 0.025779 0.954437 +vt 0.022599 0.951258 +vt 0.022599 0.938038 +vt 0.062104 0.938038 +vt 0.861382 0.862758 +vt 0.828236 0.870202 +vt 0.828236 0.862758 +vt 0.861382 0.870202 +vt 0.828236 0.883423 +vt 0.861382 0.883423 +vt 0.828236 0.890867 +vt 0.820792 0.883423 +vt 0.820792 0.870202 +vt 0.868826 0.870202 +vt 0.376465 0.974034 +vt 0.376465 0.970267 +vt 0.378927 0.973579 +vt 0.797157 0.964005 +vt 0.792593 0.961147 +vt 0.797157 0.961147 +vt 0.378472 0.963662 +vt 0.382239 0.968260 +vt 0.378472 0.968260 +vt 0.384246 0.970267 +vt 0.388845 0.974034 +vt 0.384246 0.974034 +vt 0.371867 0.970267 +vt 0.371867 0.974034 +vt 0.378927 0.970722 +vt 0.381784 0.970722 +vt 0.382239 0.976041 +vt 0.378472 0.976041 +vt 0.381784 0.973579 +vt 0.789736 0.958290 +vt 0.792593 0.955434 +vt 0.792593 0.958290 +vt 0.797157 0.958290 +vt 0.797157 0.966861 +vt 0.792593 0.964005 +vt 0.797157 0.955434 +vt 0.377884 0.969679 +vt 0.377884 0.974622 +vt 0.382827 0.974622 +vt 0.382827 0.969679 +vt 0.371867 0.976872 +vt 0.376465 0.976872 +vt 0.376465 0.967429 +vt 0.371867 0.967429 +vt 0.384246 0.976872 +vt 0.388845 0.976872 +vt 0.388844 0.967429 +vt 0.384246 0.967429 +vt 0.382239 0.980639 +vt 0.378472 0.980639 +vt 0.775471 0.967813 +vt 0.771704 0.967813 +vt 0.775016 0.965351 +vt 0.756238 0.968067 +vt 0.751673 0.965210 +vt 0.756238 0.965210 +vt 0.765099 0.965806 +vt 0.769697 0.962039 +vt 0.769697 0.965806 +vt 0.771704 0.960032 +vt 0.775471 0.955434 +vt 0.775471 0.960032 +vt 0.771704 0.972411 +vt 0.775471 0.972411 +vt 0.772159 0.965351 +vt 0.772159 0.962494 +vt 0.777478 0.962039 +vt 0.777478 0.965806 +vt 0.775016 0.962494 +vt 0.748816 0.962353 +vt 0.751673 0.959496 +vt 0.751673 0.962353 +vt 0.756238 0.962353 +vt 0.756238 0.970924 +vt 0.751673 0.968067 +vt 0.756238 0.959496 +vt 0.771116 0.966394 +vt 0.776059 0.966394 +vt 0.776059 0.961451 +vt 0.771116 0.961451 +vt 0.778309 0.972411 +vt 0.778309 0.967813 +vt 0.768866 0.967813 +vt 0.768866 0.972411 +vt 0.778309 0.960032 +vt 0.778309 0.955434 +vt 0.768866 0.955434 +vt 0.768866 0.960032 +vt 0.782076 0.962039 +vt 0.782076 0.965806 +vt 0.512483 0.943731 +vt 0.525704 0.976877 +vt 0.512483 0.976877 +vt 0.074406 0.963605 +vt 0.107552 0.960426 +vt 0.107552 0.963605 +vt 0.074406 0.960426 +vt 0.107552 0.947205 +vt 0.074406 0.947205 +vt 0.107552 0.944026 +vt 0.110731 0.947205 +vt 0.110731 0.960426 +vt 0.071227 0.960426 +vt 0.030043 0.901723 +vt 0.063189 0.894279 +vt 0.063189 0.901723 +vt 0.030043 0.894279 +vt 0.063189 0.881059 +vt 0.030043 0.881059 +vt 0.063189 0.873614 +vt 0.070633 0.881059 +vt 0.070633 0.894279 +vt 0.022599 0.894279 +vt 0.660584 0.966766 +vt 0.656817 0.966766 +vt 0.660129 0.964304 +vt 0.977236 0.397669 +vt 0.972672 0.394812 +vt 0.977236 0.394812 +vt 0.650212 0.964759 +vt 0.654810 0.960992 +vt 0.654810 0.964759 +vt 0.656817 0.958985 +vt 0.660584 0.954387 +vt 0.660584 0.958985 +vt 0.656817 0.971364 +vt 0.660584 0.971364 +vt 0.657272 0.964304 +vt 0.657272 0.961447 +vt 0.662591 0.960992 +vt 0.662591 0.964759 +vt 0.660129 0.961447 +vt 0.969815 0.391955 +vt 0.972672 0.389098 +vt 0.972672 0.391955 +vt 0.977236 0.391955 +vt 0.977236 0.400526 +vt 0.972672 0.397669 +vt 0.977236 0.389098 +vt 0.656229 0.965347 +vt 0.661172 0.965347 +vt 0.661172 0.960404 +vt 0.656229 0.960404 +vt 0.663422 0.971364 +vt 0.663422 0.966766 +vt 0.653979 0.966766 +vt 0.653979 0.971364 +vt 0.663422 0.958985 +vt 0.663422 0.954387 +vt 0.653979 0.954387 +vt 0.653979 0.958985 +vt 0.667189 0.960992 +vt 0.667189 0.964759 +vt 0.352279 0.963111 +vt 0.348512 0.963111 +vt 0.351824 0.960649 +vt 0.558839 0.924580 +vt 0.563403 0.927437 +vt 0.558839 0.927437 +vt 0.341907 0.961105 +vt 0.346505 0.957337 +vt 0.346505 0.961105 +vt 0.348512 0.955331 +vt 0.352279 0.950732 +vt 0.352279 0.955331 +vt 0.348512 0.967710 +vt 0.352279 0.967710 +vt 0.348967 0.960649 +vt 0.348967 0.957793 +vt 0.354286 0.957337 +vt 0.354286 0.961105 +vt 0.351824 0.957793 +vt 0.566260 0.930294 +vt 0.563403 0.933151 +vt 0.563403 0.930294 +vt 0.558839 0.930294 +vt 0.558839 0.921723 +vt 0.563403 0.924580 +vt 0.558839 0.933151 +vt 0.347924 0.961692 +vt 0.352867 0.961692 +vt 0.352867 0.956750 +vt 0.347924 0.956750 +vt 0.355117 0.967710 +vt 0.355117 0.963111 +vt 0.345674 0.963111 +vt 0.345674 0.967710 +vt 0.355117 0.955331 +vt 0.355117 0.950732 +vt 0.345674 0.950732 +vt 0.345674 0.955331 +vt 0.358885 0.957337 +vt 0.358885 0.961105 +vt 0.511490 0.390762 +vt 0.194788 0.963641 +vt 0.197968 0.960462 +vt 0.854025 0.687732 +vt 0.861469 0.695177 +vt 0.029205 0.979074 +vt 0.022599 0.972469 +vt 0.416370 0.813782 +vt 0.419227 0.825210 +vt 0.707648 0.967590 +vt 0.714253 0.974195 +vt 0.681643 0.935299 +vt 0.684500 0.946727 +vt 0.903014 0.647143 +vt 0.493260 0.963310 +vt 0.496439 0.960131 +vt 0.772543 0.862758 +vt 0.765099 0.870202 +vt 0.397769 0.970267 +vt 0.404374 0.963662 +vt 0.859880 0.956788 +vt 0.862737 0.968215 +vt 0.438066 0.961177 +vt 0.431460 0.954571 +vt 0.047236 0.962097 +vt 0.050093 0.973525 +vt 0.688907 0.855341 +vt 0.058924 0.954437 +vt 0.062104 0.951258 +vt 0.861382 0.890867 +vt 0.868826 0.883423 +vt 0.382239 0.963662 +vt 0.388844 0.970267 +vt 0.789736 0.955434 +vt 0.792593 0.966861 +vt 0.765099 0.962039 +vt 0.771704 0.955434 +vt 0.748816 0.959496 +vt 0.751673 0.970924 +vt 0.525704 0.943731 +vt 0.074406 0.944026 +vt 0.071227 0.947205 +vt 0.030043 0.873614 +vt 0.022599 0.881059 +vt 0.650212 0.960992 +vt 0.656817 0.954387 +vt 0.969815 0.389098 +vt 0.972672 0.400526 +vt 0.341907 0.957337 +vt 0.348512 0.950732 +vt 0.566260 0.933151 +vt 0.563403 0.921723 +vt 0.962155 0.498815 +vt 0.946315 0.483530 +vt 0.951470 0.482388 +vt 0.292551 0.908723 +vt 0.297329 0.864080 +vt 0.297329 0.909300 +vt 0.702534 0.910123 +vt 0.698853 0.936428 +vt 0.697276 0.909630 +vt 0.377124 0.887972 +vt 0.384948 0.956002 +vt 0.371867 0.888476 +vt 0.373391 0.861674 +vt 0.378558 0.862768 +vt 0.095346 0.841810 +vt 0.078293 0.866016 +vt 0.079778 0.831435 +vt 0.411927 0.362717 +vt 0.436133 0.345664 +vt 0.436133 0.369882 +vt 0.697276 0.721157 +vt 0.705975 0.766143 +vt 0.697276 0.766143 +vt 0.697277 0.834419 +vt 0.705975 0.834419 +vt 0.574383 0.786681 +vt 0.621341 0.717354 +vt 0.621341 0.786681 +vt 0.180764 0.899749 +vt 0.165628 0.923956 +vt 0.158463 0.899749 +vt 0.140691 0.868091 +vt 0.125555 0.843884 +vt 0.140691 0.831438 +vt 0.861720 0.571207 +vt 0.854025 0.526267 +vt 0.861720 0.524250 +vt 0.604921 0.904982 +vt 0.601436 0.878650 +vt 0.606591 0.879793 +vt 0.612106 0.973083 +vt 0.599659 0.905436 +vt 0.949800 0.457198 +vt 0.944539 0.456744 +vt 0.140691 0.936367 +vt 0.118390 0.868091 +vt 0.478418 0.836683 +vt 0.546694 0.828988 +vt 0.546694 0.836683 +vt 0.854026 0.639483 +vt 0.854025 0.571207 +vt 0.710224 0.842078 +vt 0.715387 0.843068 +vt 0.956985 0.389098 +vt 0.962155 0.390049 +vt 0.929895 0.931209 +vt 0.924414 0.939908 +vt 0.924414 0.931077 +vt 0.701542 0.386315 +vt 0.701542 0.391795 +vt 0.696582 0.388057 +vt 0.949162 0.319186 +vt 0.944539 0.339181 +vt 0.944539 0.323332 +vt 0.929894 0.947567 +vt 0.924414 0.969867 +vt 0.924414 0.947567 +vt 0.903086 0.747560 +vt 0.908566 0.739865 +vt 0.908566 0.747692 +vt 0.676304 0.386315 +vt 0.676304 0.392525 +vt 0.671927 0.389227 +vt 0.688923 0.391795 +vt 0.683963 0.388057 +vt 0.688923 0.386315 +vt 0.739610 0.391572 +vt 0.734440 0.388131 +vt 0.739610 0.386315 +vt 0.753440 0.931842 +vt 0.748816 0.951837 +vt 0.748816 0.927696 +vt 0.906363 0.639483 +vt 0.906363 0.571207 +vt 0.333757 0.943873 +vt 0.309540 0.959721 +vt 0.309540 0.943873 +vt 0.333757 0.938393 +vt 0.309540 0.938393 +vt 0.504409 0.345664 +vt 0.504409 0.369882 +vt 0.750618 0.834419 +vt 0.903086 0.947567 +vt 0.908566 0.969867 +vt 0.903086 0.969867 +vt 0.689617 0.717354 +vt 0.689617 0.786681 +vt 0.977306 0.524250 +vt 0.985809 0.571207 +vt 0.977306 0.571207 +vt 0.908566 0.804721 +vt 0.903086 0.874048 +vt 0.903086 0.804721 +vt 0.929895 0.886566 +vt 0.924415 0.886566 +vt 0.834425 0.786823 +vt 0.765099 0.739865 +vt 0.834425 0.739865 +vt 0.431460 0.881326 +vt 0.478418 0.881326 +vt 0.924415 0.874048 +vt 0.908566 0.874048 +vt 0.903086 0.886566 +vt 0.908566 0.931077 +vt 0.903086 0.931209 +vt 0.924415 0.792203 +vt 0.908566 0.792203 +vt 0.834425 0.855099 +vt 0.765099 0.786823 +vt 0.908566 0.886566 +vt 0.850784 0.808141 +vt 0.895427 0.855099 +vt 0.850784 0.855099 +vt 0.416370 0.599271 +vt 0.421147 0.529944 +vt 0.421147 0.599271 +vt 0.590697 0.386315 +vt 0.635340 0.391092 +vt 0.590119 0.391092 +vt 0.906363 0.524250 +vt 0.705975 0.719185 +vt 0.750618 0.766143 +vt 0.546694 0.881326 +vt 0.903086 0.792203 +vt 0.929895 0.804721 +vt 0.929895 0.874048 +vt 0.850784 0.739865 +vt 0.895427 0.808141 +vt 0.929895 0.792203 +vt 0.924415 0.747692 +vt 0.929895 0.747560 +vt 0.560047 0.823690 +vt 0.564825 0.868333 +vt 0.560047 0.868333 +vt 0.470685 0.382319 +vt 0.401359 0.377541 +vt 0.470685 0.377541 +vt 0.960886 0.173680 +vt 0.964770 0.241956 +vt 0.960886 0.241956 +vt 0.960886 0.334373 +vt 0.964770 0.381331 +vt 0.960886 0.381331 +vt 0.989692 0.778858 +vt 0.985809 0.731901 +vt 0.989692 0.731901 +vt 0.924415 0.804721 +vt 0.985809 0.663625 +vt 0.989692 0.663625 +vt 0.989692 0.571207 +vt 0.985809 0.524250 +vt 0.989692 0.524250 +vt 0.912276 0.191579 +vt 0.896428 0.260905 +vt 0.896428 0.191579 +vt 0.118390 0.965355 +vt 0.140690 0.970835 +vt 0.118390 0.970835 +vt 0.560047 0.770811 +vt 0.564825 0.815454 +vt 0.560047 0.815454 +vt 0.964770 0.334373 +vt 0.973272 0.381331 +vt 0.977306 0.731901 +vt 0.985809 0.778858 +vt 0.977306 0.778858 +vt 0.964770 0.126722 +vt 0.973272 0.173680 +vt 0.964770 0.173680 +vt 0.977306 0.663625 +vt 0.973272 0.241956 +vt 0.985809 0.639483 +vt 0.977306 0.639483 +vt 0.964770 0.266097 +vt 0.973272 0.334373 +vt 0.973423 0.571207 +vt 0.973423 0.639483 +vt 0.960886 0.126722 +vt 0.977156 0.241956 +vt 0.977156 0.173680 +vt 0.989692 0.639483 +vt 0.977156 0.381331 +vt 0.977156 0.334373 +vt 0.960886 0.266097 +vt 0.973272 0.126722 +vt 0.977156 0.126722 +vt 0.973272 0.266097 +vt 0.973423 0.524250 +vt 0.973423 0.663625 +vt 0.973423 0.731901 +vt 0.973423 0.778858 +vt 0.977156 0.266097 +vt 0.937554 0.874470 +vt 0.941182 0.873085 +vt 0.941182 0.877578 +vt 0.900865 0.689333 +vt 0.904493 0.687948 +vt 0.904493 0.692441 +vt 0.937554 0.900498 +vt 0.941182 0.897390 +vt 0.941182 0.901883 +vt 0.889793 0.689802 +vt 0.893206 0.687948 +vt 0.893206 0.692725 +vt 0.974157 0.408185 +vt 0.973894 0.412060 +vt 0.969815 0.410177 +vt 0.870080 0.728312 +vt 0.870080 0.732196 +vt 0.865882 0.729914 +vt 0.937554 0.886623 +vt 0.941182 0.885237 +vt 0.941182 0.889731 +vt 0.862539 0.389233 +vt 0.862539 0.393117 +vt 0.858341 0.390835 +vt 0.937554 0.741874 +vt 0.941573 0.752384 +vt 0.937554 0.750376 +vt 0.974157 0.420558 +vt 0.937554 0.831087 +vt 0.941573 0.820577 +vt 0.941573 0.833096 +vt 0.937554 0.790731 +vt 0.941573 0.780221 +vt 0.941573 0.792740 +vt 0.180764 0.831473 +vt 0.158464 0.831473 +vt 0.908566 0.947567 +vt 0.924415 0.739865 +vt 0.929895 0.739865 +vt 0.617276 0.863365 +vt 0.615741 0.855341 +vt 0.974840 0.486710 +vt 0.969815 0.494974 +vt 0.970038 0.487022 +vt 0.292551 0.918134 +vt 0.297576 0.926398 +vt 0.292774 0.926086 +vt 0.118889 0.775223 +vt 0.123843 0.706772 +vt 0.124265 0.775055 +vt 0.756046 0.920036 +vt 0.748816 0.898762 +vt 0.756046 0.894958 +vt 0.150421 0.614029 +vt 0.145357 0.682370 +vt 0.145048 0.614189 +vt 0.148468 0.577451 +vt 0.145067 0.569966 +vt 0.433477 0.828988 +vt 0.478418 0.828988 +vt 0.123824 0.682440 +vt 0.124085 0.614116 +vt 0.145233 0.774949 +vt 0.145374 0.706709 +vt 0.145361 0.819164 +vt 0.124627 0.565415 +vt 0.121057 0.569182 +vt 0.118719 0.613964 +vt 0.148744 0.811669 +vt 0.150597 0.775094 +vt 0.150804 0.706823 +vt 0.118390 0.682322 +vt 0.121349 0.820020 +vt 0.124930 0.823778 +vt 0.121773 0.702573 +vt 0.147427 0.686567 +vt 0.842086 0.739865 +vt 0.842085 0.808141 +vt 0.102511 0.866016 +vt 0.078293 0.934292 +vt 0.309540 0.965201 +vt 0.333757 0.959721 +vt 0.333757 0.965201 +vt 0.908566 0.939908 +vt 0.903086 0.939908 +vt 0.390110 0.847611 +vt 0.387329 0.838144 +vt 0.715387 0.950181 +vt 0.704017 0.935324 +vt 0.969815 0.504122 +vt 0.974617 0.513041 +vt 0.969816 0.513041 +vt 0.436262 0.968836 +vt 0.431460 0.977756 +vt 0.431461 0.968836 +vt 0.163923 0.682368 +vt 0.182432 0.706700 +vt 0.163904 0.706645 +vt 0.161863 0.686545 +vt 0.159554 0.579292 +vt 0.164151 0.614096 +vt 0.158785 0.614004 +vt 0.182420 0.682417 +vt 0.184482 0.686608 +vt 0.158622 0.775163 +vt 0.164011 0.775077 +vt 0.842085 0.853127 +vt 0.182190 0.775035 +vt 0.182308 0.614138 +vt 0.162601 0.569894 +vt 0.183172 0.565415 +vt 0.162456 0.819349 +vt 0.187684 0.614037 +vt 0.186007 0.820003 +vt 0.187559 0.775139 +vt 0.187859 0.706817 +vt 0.012567 0.964099 +vt 0.003830 0.944483 +vt 0.012567 0.939896 +vt 0.158507 0.682251 +vt 0.012607 0.907688 +vt 0.003830 0.927287 +vt 0.007897 0.906755 +vt 0.159300 0.809760 +vt 0.186122 0.569220 +vt 0.896428 0.317934 +vt 0.912276 0.273424 +vt 0.912276 0.317934 +vt 0.313424 0.704790 +vt 0.321926 0.680648 +vt 0.321926 0.704790 +vt 0.576159 0.949773 +vt 0.579645 0.923442 +vt 0.581315 0.948631 +vt 0.890948 0.117046 +vt 0.898643 0.072106 +vt 0.898643 0.119063 +vt 0.301881 0.633691 +vt 0.232554 0.680649 +vt 0.232554 0.633691 +vt 0.626712 0.878650 +vt 0.642552 0.863365 +vt 0.631868 0.879792 +vt 0.728304 0.891885 +vt 0.724624 0.865580 +vt 0.729788 0.866684 +vt 0.240249 0.858158 +vt 0.284892 0.811201 +vt 0.284892 0.858158 +vt 0.081500 0.569163 +vt 0.084333 0.614085 +vt 0.078962 0.613908 +vt 0.896428 0.134549 +vt 0.912276 0.126722 +vt 0.912276 0.134549 +vt 0.896428 0.179060 +vt 0.912276 0.179060 +vt 0.309540 0.862457 +vt 0.326593 0.838251 +vt 0.333758 0.862457 +vt 0.202683 0.923955 +vt 0.217819 0.899749 +vt 0.217819 0.936402 +vt 0.592000 0.965058 +vt 0.590465 0.973082 +vt 0.364208 0.874797 +vt 0.349071 0.850590 +vt 0.364208 0.838144 +vt 0.399293 0.932471 +vt 0.403026 0.906173 +vt 0.404460 0.931377 +vt 0.105273 0.706731 +vt 0.105312 0.682391 +vt 0.107368 0.686578 +vt 0.689617 0.847682 +vt 0.621341 0.803039 +vt 0.689617 0.803039 +vt 0.219353 0.614177 +vt 0.200968 0.682546 +vt 0.201178 0.614191 +vt 0.917756 0.260905 +vt 0.917756 0.191579 +vt 0.301881 0.688308 +vt 0.232554 0.735265 +vt 0.232554 0.688308 +vt 0.689617 0.794341 +vt 0.621341 0.794340 +vt 0.104848 0.774990 +vt 0.083730 0.706630 +vt 0.937554 0.862318 +vt 0.941182 0.860933 +vt 0.941182 0.865426 +vt 0.961879 0.778858 +vt 0.965763 0.731901 +vt 0.965763 0.778858 +vt 0.576354 0.794340 +vt 0.630197 0.904981 +vt 0.416370 0.806123 +vt 0.421147 0.761480 +vt 0.421147 0.806123 +vt 0.546649 0.369882 +vt 0.614925 0.345664 +vt 0.614925 0.369882 +vt 0.969815 0.470786 +vt 0.974840 0.479050 +vt 0.970038 0.478738 +vt 0.081713 0.686492 +vt 0.083790 0.682300 +vt 0.105279 0.614229 +vt 0.108851 0.577554 +vt 0.110638 0.614094 +vt 0.200938 0.706829 +vt 0.195717 0.775183 +vt 0.195523 0.706937 +vt 0.862724 0.448315 +vt 0.854026 0.516591 +vt 0.854025 0.448315 +vt 0.554691 0.967948 +vt 0.560171 0.943731 +vt 0.560171 0.967948 +vt 0.854025 0.403329 +vt 0.232554 0.926434 +vt 0.240249 0.926434 +vt 0.558839 0.910259 +vt 0.566068 0.888985 +vt 0.566068 0.914064 +vt 0.586830 0.855341 +vt 0.592000 0.856293 +vt 0.637382 0.973082 +vt 0.642552 0.972131 +vt 0.416012 0.946534 +vt 0.413231 0.956002 +vt 0.224624 0.775254 +vt 0.219458 0.706797 +vt 0.224895 0.706914 +vt 0.714161 0.391795 +vt 0.709202 0.390052 +vt 0.714161 0.386315 +vt 0.110226 0.775160 +vt 0.110731 0.706859 +vt 0.195518 0.899749 +vt 0.217819 0.831473 +vt 0.917756 0.273424 +vt 0.917756 0.318066 +vt 0.953377 0.571207 +vt 0.949494 0.639483 +vt 0.949494 0.571207 +vt 0.313424 0.773066 +vt 0.309540 0.820023 +vt 0.309540 0.773066 +vt 0.012607 0.898163 +vt 0.003830 0.878565 +vt 0.012607 0.873614 +vt 0.313424 0.565415 +vt 0.309540 0.612372 +vt 0.309540 0.565415 +vt 0.321926 0.773066 +vt 0.325810 0.704790 +vt 0.325810 0.773066 +vt 0.838696 0.345664 +vt 0.838696 0.350441 +vt 0.835284 0.347518 +vt 0.953377 0.639483 +vt 0.961879 0.571207 +vt 0.961879 0.639483 +vt 0.313424 0.612372 +vt 0.309540 0.680648 +vt 0.850682 0.393117 +vt 0.846484 0.391514 +vt 0.850682 0.389233 +vt 0.943286 0.003830 +vt 0.943286 0.072106 +vt 0.974157 0.444854 +vt 0.969815 0.442862 +vt 0.973894 0.440979 +vt 0.313424 0.680648 +vt 0.321926 0.612372 +vt 0.621341 0.847682 +vt 0.574383 0.803039 +vt 0.953377 0.663625 +vt 0.961879 0.663625 +vt 0.907367 0.401357 +vt 0.862724 0.401357 +vt 0.416370 0.606930 +vt 0.421147 0.676257 +vt 0.416370 0.676257 +vt 0.949162 0.375128 +vt 0.944539 0.355133 +vt 0.949162 0.350987 +vt 0.953377 0.778858 +vt 0.961879 0.731901 +vt 0.321926 0.820023 +vt 0.325810 0.820023 +vt 0.917756 0.134417 +vt 0.917756 0.126722 +vt 0.965763 0.639483 +vt 0.858223 0.732196 +vt 0.854025 0.729914 +vt 0.858223 0.728312 +vt 0.313424 0.820023 +vt 0.941573 0.760043 +vt 0.937554 0.770554 +vt 0.937554 0.762051 +vt 0.943286 0.119063 +vt 0.309540 0.704790 +vt 0.140690 0.944026 +vt 0.118390 0.949506 +vt 0.118390 0.944026 +vt 0.965763 0.663625 +vt 0.364207 0.943073 +vt 0.341907 0.874797 +vt 0.325810 0.612372 +vt 0.325810 0.680648 +vt 0.721821 0.388057 +vt 0.726781 0.386315 +vt 0.726781 0.391795 +vt 0.890948 0.179060 +vt 0.890948 0.134417 +vt 0.953377 0.731901 +vt 0.416370 0.683917 +vt 0.421147 0.753243 +vt 0.416370 0.753243 +vt 0.197431 0.569219 +vt 0.195796 0.614081 +vt 0.735994 0.959930 +vt 0.741157 0.958941 +vt 0.688907 0.916141 +vt 0.684284 0.896147 +vt 0.688907 0.900293 +vt 0.890948 0.003830 +vt 0.898643 0.003830 +vt 0.890948 0.318066 +vt 0.896428 0.326765 +vt 0.890948 0.326765 +vt 0.859880 0.944541 +vt 0.868617 0.924925 +vt 0.868617 0.949128 +vt 0.941573 0.800399 +vt 0.937554 0.810909 +vt 0.937554 0.802407 +vt 0.301881 0.565415 +vt 0.232554 0.565415 +vt 0.554691 0.943731 +vt 0.538843 0.967948 +vt 0.538843 0.943731 +vt 0.140690 0.965355 +vt 0.140690 0.949506 +vt 0.965763 0.571207 +vt 0.284892 0.926434 +vt 0.890948 0.191579 +vt 0.890948 0.260905 +vt 0.105485 0.570061 +vt 0.890948 0.273424 +vt 0.747269 0.388131 +vt 0.752440 0.386315 +vt 0.752440 0.391572 +vt 0.912276 0.260905 +vt 0.560047 0.717931 +vt 0.564825 0.762574 +vt 0.560047 0.762574 +vt 0.961879 0.524250 +vt 0.835284 0.361023 +vt 0.838696 0.358101 +vt 0.838696 0.362878 +vt 0.533363 0.967948 +vt 0.533363 0.943731 +vt 0.104784 0.819259 +vt 0.083864 0.775023 +vt 0.664268 0.392525 +vt 0.659891 0.389612 +vt 0.664268 0.386315 +vt 0.941573 0.840755 +vt 0.937554 0.851265 +vt 0.937554 0.842763 +vt 0.917756 0.179060 +vt 0.953377 0.524250 +vt 0.949494 0.524250 +vt 0.907367 0.448315 +vt 0.862724 0.516591 +vt 0.896428 0.273424 +vt 0.937554 0.912650 +vt 0.941182 0.909542 +vt 0.941182 0.914035 +vt 0.974157 0.432481 +vt 0.219475 0.682519 +vt 0.221529 0.686702 +vt 0.912276 0.326765 +vt 0.080747 0.819998 +vt 0.078491 0.775165 +vt 0.917756 0.326765 +vt 0.232554 0.813217 +vt 0.240249 0.811200 +vt 0.741157 0.851828 +vt 0.652232 0.391117 +vt 0.643313 0.386315 +vt 0.652232 0.386315 +vt 0.448724 0.978069 +vt 0.443922 0.969150 +vt 0.448724 0.968836 +vt 0.198886 0.702648 +vt 0.223890 0.809813 +vt 0.219241 0.775160 +vt 0.220975 0.569932 +vt 0.200390 0.565415 +vt 0.195518 0.682427 +vt 0.321926 0.565415 +vt 0.301881 0.735265 +vt 0.232554 0.803541 +vt 0.297329 0.811200 +vt 0.292551 0.855843 +vt 0.292551 0.811200 +vt 0.748817 0.842655 +vt 0.753594 0.887298 +vt 0.748816 0.887298 +vt 0.224010 0.579344 +vt 0.224725 0.614094 +vt 0.110731 0.682286 +vt 0.201081 0.775087 +vt 0.197195 0.820002 +vt 0.974840 0.452513 +vt 0.969815 0.460777 +vt 0.970038 0.452825 +vt 0.410851 0.838144 +vt 0.416012 0.839143 +vt 0.949494 0.778858 +vt 0.949494 0.731901 +vt 0.949494 0.663625 +vt 0.309540 0.930733 +vt 0.333758 0.930733 +vt 0.108202 0.811773 +vt 0.965763 0.524250 +vt 0.325810 0.565415 +vt 0.522443 0.362717 +vt 0.546649 0.345664 +vt 0.078342 0.682167 +vt 0.078293 0.706739 +vt 0.835284 0.373460 +vt 0.838696 0.370537 +vt 0.838696 0.375315 +vt 0.896428 0.126722 +vt 0.890948 0.126722 +vt 0.224895 0.682411 +vt 0.220721 0.819387 +vt 0.200139 0.823813 +vt 0.249890 0.529944 +vt 0.181109 0.557756 +vt 0.181109 0.529944 +vt 0.925415 0.126722 +vt 0.953227 0.171943 +vt 0.925415 0.171943 +vt 0.953227 0.184461 +vt 0.925415 0.184461 +vt 0.953227 0.253788 +vt 0.925415 0.253788 +vt 0.088187 0.529944 +vt 0.061342 0.557756 +vt 0.061342 0.529944 +vt 0.033993 0.557754 +vt 0.033993 0.529946 +vt 0.914023 0.581989 +vt 0.941834 0.651315 +vt 0.914023 0.651315 +vt 0.914023 0.569470 +vt 0.941834 0.581989 +vt 0.811014 0.013269 +vt 0.811013 0.003830 +vt 0.838824 0.013269 +vt 0.156968 0.557756 +vt 0.156968 0.529944 +vt 0.088187 0.557756 +vt 0.838825 0.181109 +vt 0.811013 0.156968 +vt 0.838825 0.156968 +vt 0.838823 0.304084 +vt 0.811013 0.276736 +vt 0.838825 0.276736 +vt 0.838825 0.249890 +vt 0.811013 0.181109 +vt 0.811013 0.249891 +vt 0.013063 0.557755 +vt 0.003830 0.557756 +vt 0.013063 0.529945 +vt 0.914023 0.524250 +vt 0.941834 0.569470 +vt 0.838825 0.061342 +vt 0.811015 0.033993 +vt 0.838823 0.033993 +vt 0.325014 0.557755 +vt 0.304084 0.557754 +vt 0.325014 0.529945 +vt 0.304084 0.529946 +vt 0.276735 0.557756 +vt 0.276735 0.529944 +vt 0.941834 0.663834 +vt 0.914023 0.663834 +vt 0.953227 0.266306 +vt 0.925415 0.266306 +vt 0.953227 0.311527 +vt 0.925415 0.311527 +vt 0.811014 0.324809 +vt 0.811015 0.304084 +vt 0.838824 0.324809 +vt 0.941834 0.709054 +vt 0.914023 0.709054 +vt 0.838825 0.088187 +vt 0.811013 0.061342 +vt 0.811013 0.088187 +vt 0.249890 0.557756 +vt 0.960620 0.506839 +vt 0.292551 0.864080 +vt 0.390110 0.955002 +vt 0.401359 0.346858 +vt 0.574383 0.717354 +vt 0.180764 0.936403 +vt 0.617276 0.972131 +vt 0.118391 0.936367 +vt 0.861720 0.639483 +vt 0.929895 0.939908 +vt 0.949162 0.343327 +vt 0.929894 0.969867 +vt 0.903086 0.739865 +vt 0.753440 0.947690 +vt 0.431460 0.836683 +vt 0.765099 0.855099 +vt 0.416370 0.529944 +vt 0.635340 0.386315 +vt 0.750618 0.719186 +vt 0.895427 0.739865 +vt 0.564825 0.823113 +vt 0.401359 0.382319 +vt 0.564825 0.770234 +vt 0.941573 0.739865 +vt 0.970202 0.422690 +vt 0.937554 0.822585 +vt 0.937554 0.782229 +vt 0.974840 0.496149 +vt 0.297576 0.916959 +vt 0.118391 0.706895 +vt 0.750927 0.919379 +vt 0.150804 0.682252 +vt 0.121754 0.686636 +vt 0.147444 0.702513 +vt 0.102511 0.934292 +vt 0.712839 0.959930 +vt 0.974617 0.503808 +vt 0.436262 0.978069 +vt 0.158463 0.706753 +vt 0.161839 0.702446 +vt 0.184497 0.702510 +vt 0.187859 0.682307 +vt 0.183054 0.823814 +vt 0.007855 0.965022 +vt 0.012607 0.932237 +vt 0.574383 0.922987 +vt 0.890948 0.072106 +vt 0.301881 0.680649 +vt 0.641017 0.855341 +vt 0.723046 0.892378 +vt 0.085084 0.565415 +vt 0.310734 0.827683 +vt 0.397769 0.905669 +vt 0.107356 0.702525 +vt 0.624936 0.905436 +vt 0.416370 0.760902 +vt 0.974840 0.469611 +vt 0.081667 0.702429 +vt 0.232554 0.858158 +vt 0.560950 0.889642 +vt 0.195519 0.831472 +vt 0.007897 0.899096 +vt 0.574383 0.847682 +vt 0.421147 0.606930 +vt 0.944539 0.370981 +vt 0.941573 0.772562 +vt 0.341907 0.943073 +vt 0.421147 0.683917 +vt 0.684284 0.920288 +vt 0.863905 0.924002 +vt 0.941573 0.812918 +vt 0.564825 0.717354 +vt 0.084313 0.823776 +vt 0.941573 0.853273 +vt 0.907367 0.516591 +vt 0.970202 0.430349 +vt 0.221528 0.702603 +vt 0.738610 0.842078 +vt 0.642999 0.391117 +vt 0.443923 0.978069 +vt 0.198893 0.686746 +vt 0.301881 0.803541 +vt 0.297329 0.856421 +vt 0.753594 0.842078 +vt 0.974840 0.461952 +vt 0.512068 0.347149 +vt 0.953227 0.126722 +vt 0.838825 0.003830 +vt 0.003830 0.529944 +vt 0.941834 0.524250 +vt 0.334248 0.529944 +vt 0.334248 0.557756 +vt 0.838825 0.334248 +vt 0.811013 0.334248 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.8722 0.3210 -0.3692 +vn 0.8648 0.4236 -0.2696 +vn 0.8609 0.4168 -0.2918 +vn 0.8326 0.0701 -0.5495 +vn 0.8299 0.0000 -0.5579 +vn 0.8355 0.0676 -0.5453 +vn 0.8632 -0.4995 0.0739 +vn 0.8725 -0.4038 0.2752 +vn 0.8632 -0.4998 0.0712 +vn 0.8632 -0.4995 -0.0739 +vn 0.8619 -0.5070 0.0000 +vn 0.8632 -0.4998 -0.0712 +vn 0.8725 -0.4037 -0.2752 +vn 0.8580 -0.3995 -0.3228 +vn 0.8632 0.4995 0.0739 +vn 0.8648 0.4236 0.2696 +vn 0.8609 0.4168 0.2918 +vn 0.8619 0.5070 0.0000 +vn 0.8632 0.4998 0.0712 +vn 0.8632 0.4995 -0.0739 +vn 0.8632 0.4998 -0.0712 +vn 0.7567 0.0000 -0.6538 +vn 0.7439 -0.1827 0.6428 +vn 0.7477 -0.1538 0.6460 +vn 0.6913 -0.4066 0.5973 +vn 0.9801 -0.1984 0.0000 +vn 0.9930 -0.1185 0.0000 +vn 0.7567 0.0000 0.6538 +vn 0.7477 0.1538 0.6460 +vn 0.6913 0.4066 0.5973 +vn 0.7439 0.1827 0.6428 +vn 0.7477 0.1538 -0.6460 +vn 0.6913 0.4066 -0.5973 +vn 0.7439 0.1827 -0.6428 +vn 0.6913 -0.4066 -0.5973 +vn 0.7477 -0.1538 -0.6460 +vn 0.7439 -0.1827 -0.6428 +vn 0.9930 0.1185 0.0000 +vn 0.9801 0.1984 0.0000 +vn 0.9957 0.0000 -0.0928 +vn 0.8324 -0.0604 0.5508 +vn 0.8299 0.0000 0.5579 +vn 0.8325 -0.0626 0.5505 +vn 0.8324 -0.0604 -0.5508 +vn 0.5171 0.8559 0.0000 +vn 0.5116 0.8469 0.1446 +vn 0.5123 0.8481 0.1351 +vn 0.5123 0.8481 -0.1351 +vn -0.7477 0.1538 -0.6460 +vn -0.7567 0.0000 -0.6538 +vn -0.7439 0.1827 -0.6428 +vn 0.8326 0.0701 0.5495 +vn 0.9957 0.0000 0.0928 +vn 0.5171 -0.8559 0.0000 +vn 0.5123 -0.8481 0.1351 +vn 0.5116 -0.8469 -0.1446 +vn 0.5123 -0.8481 -0.1351 +vn 0.4884 0.8085 0.3283 +vn 0.4884 -0.8085 0.3283 +vn 0.5116 -0.8469 0.1446 +vn 0.4884 -0.8085 -0.3283 +vn 0.5116 0.8469 -0.1446 +vn 0.4884 0.8085 -0.3283 +vn 0.9865 0.0000 0.1639 +vn 0.9865 0.0000 -0.1639 +vn 0.8722 0.3210 0.3692 +vn 0.8751 0.3187 0.3642 +vn 0.8430 0.1242 -0.5234 +vn 0.8430 0.1242 0.5234 +vn 0.8355 0.0676 0.5453 +vn 0.2232 0.9748 -0.0000 +vn 0.2779 0.9581 -0.0692 +vn 0.2324 0.9726 -0.0011 +vn -0.8691 -0.1186 -0.4803 +vn -0.9219 -0.1215 -0.3680 +vn -0.9296 -0.1218 -0.3478 +vn 0.2231 -0.9748 0.0000 +vn 0.2779 -0.9581 0.0692 +vn 0.2284 -0.9736 0.0008 +vn 0.3872 -0.9217 0.0253 +vn 0.3960 -0.9179 0.0267 +vn 0.9996 0.0000 0.0293 +vn 0.9996 -0.0016 0.0284 +vn 0.9996 0.0000 -0.0293 +vn 0.9985 -0.0090 -0.0543 +vn 0.9996 -0.0016 -0.0284 +vn 0.9985 -0.0090 0.0543 +vn 0.9985 -0.0120 0.0529 +vn 0.5589 0.8281 0.0432 +vn 0.2324 0.9726 0.0011 +vn 0.3872 -0.9217 -0.0253 +vn 0.2284 -0.9736 -0.0008 +vn 0.2779 -0.9581 -0.0692 +vn 0.2226 -0.9725 -0.0683 +vn 0.2226 0.9725 0.0683 +vn 0.2779 0.9581 0.0692 +vn 0.5589 0.8281 -0.0432 +vn 0.5742 0.8175 -0.0453 +vn 0.4856 0.8723 -0.0568 +vn 0.4856 -0.8723 0.0568 +vn 0.9214 -0.2503 -0.2971 +vn 0.9294 -0.2431 -0.2778 +vn 0.9206 -0.2516 0.2987 +vn 0.8580 -0.3995 0.3228 +vn 0.8318 -0.1227 0.5413 +vn 0.8318 -0.1227 -0.5413 +vn 0.4844 0.8730 0.0566 +vn 0.2769 0.9584 0.0690 +vn 0.2769 0.9584 -0.0690 +vn 0.2981 0.9543 -0.0206 +vn 0.2249 0.9743 -0.0160 +vn 0.2223 0.9748 -0.0168 +vn 0.2769 -0.9584 -0.0690 +vn 0.2769 -0.9584 0.0690 +vn 0.4844 -0.8730 0.0566 +vn 0.2223 0.9747 0.0210 +vn 0.2275 0.9736 0.0196 +vn 0.9996 0.0017 -0.0286 +vn 0.9996 0.0000 0.0297 +vn 0.9996 0.0017 0.0286 +vn 0.9985 0.0094 0.0543 +vn 0.9985 0.0121 0.0531 +vn 0.9985 0.0094 -0.0543 +vn 0.9996 0.0000 -0.0297 +vn 0.2224 -0.9750 0.0000 +vn 0.2241 -0.9746 0.0002 +vn 0.2978 -0.9546 -0.0094 +vn 0.2241 -0.9746 -0.0002 +vn 0.2219 -0.9727 -0.0680 +vn -0.8671 0.1251 0.4821 +vn -0.9420 0.1285 0.3099 +vn -0.9524 0.1286 0.2764 +vn 0.2219 0.9727 0.0680 +vn -0.8674 0.1251 -0.4816 +vn -0.9426 0.1285 -0.3081 +vn -0.8318 0.1227 -0.5413 +vn 0.3700 0.9289 0.0158 +vn 0.3782 0.9256 0.0143 +vn 0.2978 -0.9546 0.0094 +vn 0.3015 -0.9534 0.0098 +vn -0.8648 0.4236 0.2696 +vn -0.8632 0.4995 0.0739 +vn -0.8609 0.4168 0.2918 +vn -0.8648 0.4236 -0.2696 +vn -0.8722 0.3210 -0.3692 +vn -0.8609 0.4168 -0.2918 +vn -0.8632 -0.4995 0.0739 +vn -0.8725 -0.4038 0.2752 +vn -0.8580 -0.3995 0.3228 +vn -0.5589 0.8281 -0.0432 +vn -0.2324 0.9726 -0.0011 +vn -0.2232 0.9748 -0.0000 +vn -0.8722 0.3210 0.3692 +vn -0.8751 0.3187 0.3642 +vn -0.8725 -0.4037 -0.2752 +vn -0.8632 -0.4995 -0.0739 +vn -0.8580 -0.3995 -0.3228 +vn -0.2779 -0.9581 0.0692 +vn -0.2779 -0.9581 -0.0692 +vn -0.4856 -0.8723 -0.0568 +vn -0.9996 0.0000 0.0297 +vn -0.9996 0.0017 0.0286 +vn -0.7567 0.0000 0.6538 +vn -0.9996 0.0000 0.0293 +vn -0.5123 -0.8481 0.1351 +vn -0.5116 -0.8469 0.1446 +vn -0.4884 -0.8085 0.3283 +vn -0.5116 0.8469 0.1446 +vn -0.5171 0.8559 0.0000 +vn -0.5123 0.8481 0.1351 +vn -0.8632 0.4995 -0.0739 +vn -0.8299 0.0000 -0.5579 +vn -0.8324 -0.0604 -0.5508 +vn -0.8430 0.1242 -0.5234 +vn -0.8355 0.0676 -0.5453 +vn -0.8326 0.0701 -0.5495 +vn -0.4856 0.8723 -0.0568 +vn -0.2779 0.9581 -0.0692 +vn -0.2779 0.9581 0.0692 +vn -0.2284 -0.9736 -0.0008 +vn -0.3872 -0.9217 -0.0253 +vn -0.2231 -0.9748 -0.0000 +vn -0.2769 -0.9584 -0.0690 +vn -0.2224 -0.9750 -0.0000 +vn -0.2219 -0.9727 -0.0680 +vn -0.7439 -0.1827 -0.6428 +vn 0.9219 -0.1215 -0.3680 +vn 0.8691 -0.1186 -0.4803 +vn 0.9296 -0.1218 -0.3478 +vn -0.8619 0.5070 0.0000 +vn -0.9214 -0.2503 -0.2971 +vn -0.9294 -0.2431 -0.2778 +vn -0.2223 0.9747 0.0210 +vn -0.2769 0.9584 -0.0690 +vn -0.2219 0.9727 -0.0680 +vn -0.7439 -0.1827 0.6428 +vn -0.6913 -0.4066 0.5973 +vn -0.7477 -0.1538 0.6460 +vn -0.2226 -0.9725 0.0683 +vn -0.5171 -0.8559 0.0000 +vn -0.5123 0.8481 -0.1351 +vn 0.8674 0.1251 -0.4816 +vn 0.9426 0.1285 -0.3081 +vn 0.9528 0.1286 -0.2749 +vn -0.5123 -0.8481 -0.1351 +vn -0.4884 -0.8085 -0.3283 +vn -0.5116 -0.8469 -0.1446 +vn -0.9801 0.1984 0.0000 +vn -0.9930 0.1185 0.0000 +vn -0.9957 0.0000 -0.0928 +vn -0.4884 0.8085 0.3283 +vn -0.9957 0.0000 0.0928 +vn -0.9865 0.0000 0.1639 +vn -0.7477 0.1538 0.6460 +vn -0.7439 0.1827 0.6428 +vn -0.6913 0.4066 0.5973 +vn -0.8299 0.0000 0.5579 +vn -0.2978 -0.9546 0.0094 +vn -0.2241 -0.9746 0.0002 +vn -0.8619 -0.5070 0.0000 +vn -0.9930 -0.1185 0.0000 +vn -0.9801 -0.1984 0.0000 +vn 0.9420 0.1285 0.3099 +vn 0.8671 0.1251 0.4821 +vn 0.9524 0.1286 0.2764 +vn -0.9865 0.0000 -0.1639 +vn -0.9996 -0.0016 -0.0284 +vn -0.9985 -0.0090 -0.0543 +vn -0.9996 0.0000 -0.0293 +vn -0.6913 0.4066 -0.5973 +vn -0.8324 -0.0604 0.5508 +vn -0.5116 0.8469 -0.1446 +vn -0.4884 0.8085 -0.3283 +vn -0.9985 -0.0090 0.0543 +vn -0.9996 -0.0016 0.0284 +vn -0.6913 -0.4066 -0.5973 +vn -0.7477 -0.1538 -0.6460 +vn -0.2769 0.9584 0.0690 +vn -0.4844 0.8730 0.0566 +vn -0.2324 0.9726 0.0011 +vn -0.5589 0.8281 0.0432 +vn -0.9206 -0.2516 0.2987 +vn -0.8318 -0.1227 0.5413 +vn -0.8318 -0.1227 -0.5413 +vn -0.8325 -0.0626 -0.5505 +vn -0.4844 -0.8730 -0.0566 +vn -0.2769 -0.9584 0.0690 +vn -0.3700 0.9289 0.0158 +vn -0.2275 0.9736 0.0196 +vn -0.9985 0.0094 0.0543 +vn -0.9985 0.0121 0.0531 +vn -0.2219 -0.9727 0.0680 +vn -0.8326 0.0701 0.5495 +vn -0.2249 0.9743 -0.0160 +vn -0.2981 0.9543 -0.0206 +vn -0.2223 0.9748 -0.0168 +vn -0.2226 -0.9725 -0.0683 +vn -0.2241 -0.9746 -0.0002 +vn -0.2978 -0.9546 -0.0094 +vn -0.8355 0.0676 0.5453 +vn -0.8430 0.1242 0.5234 +vn -0.9996 0.0017 -0.0286 +vn -0.3872 -0.9217 0.0253 +vn -0.2284 -0.9736 0.0008 +vn -0.2226 0.9725 -0.0683 +vn -0.2226 0.9725 0.0683 +vn -0.2219 0.9727 0.0680 +vn -0.9985 0.0094 -0.0543 +vn -0.9985 0.0121 -0.0531 +vn 0.0000 0.9897 0.1434 +vn 0.0000 -0.1112 0.9938 +vn 0.0000 0.9897 -0.1434 +vn 0.0000 0.8420 -0.5396 +vn 0.0000 0.4536 -0.8912 +vn 0.0000 -0.2211 0.9753 +vn 0.0000 -0.4536 -0.8912 +vn 0.0000 -0.8420 -0.5396 +vn 0.0000 -0.9897 -0.1434 +vn 0.0000 0.2211 -0.9753 +vn 0.0000 0.1112 -0.9938 +vn 0.0000 -0.8420 0.5396 +vn 0.0000 -0.4536 0.8912 +vn 0.0000 0.2211 0.9753 +vn 0.0000 0.4536 0.8912 +vn 0.0000 0.8420 0.5396 +vn 0.0000 0.1112 0.9938 +vn 0.0000 -0.2211 -0.9753 +vn 0.0000 -0.1112 -0.9938 +vn 0.0000 -0.9897 0.1434 +vn 0.8751 0.3187 -0.3642 +vn 0.8325 -0.0626 -0.5505 +vn 0.8478 0.1172 -0.5172 +vn 0.8478 0.1172 0.5172 +vn 0.2226 0.9725 -0.0683 +vn -0.8478 -0.1172 -0.5172 +vn 0.2226 -0.9725 0.0683 +vn 0.9985 -0.0120 -0.0529 +vn 0.5742 0.8175 0.0453 +vn 0.3960 -0.9179 -0.0267 +vn 0.4856 0.8723 0.0568 +vn 0.4856 -0.8723 -0.0568 +vn 0.9285 -0.2445 0.2794 +vn 0.2219 0.9727 -0.0680 +vn 0.4844 0.8730 -0.0566 +vn 0.3024 0.9530 -0.0199 +vn 0.4844 -0.8730 -0.0566 +vn 0.2219 -0.9727 0.0680 +vn 0.9985 0.0121 -0.0531 +vn 0.3015 -0.9534 -0.0098 +vn -0.8318 0.1227 0.5413 +vn -0.9528 0.1286 -0.2749 +vn -0.8632 0.4998 0.0712 +vn -0.8751 0.3187 -0.3642 +vn -0.8632 -0.4998 0.0712 +vn -0.5742 0.8175 -0.0453 +vn -0.8632 -0.4998 -0.0712 +vn -0.4856 -0.8723 0.0568 +vn -0.8632 0.4998 -0.0712 +vn -0.8478 0.1172 -0.5172 +vn -0.4856 0.8723 0.0568 +vn -0.3960 -0.9179 -0.0267 +vn 0.8478 -0.1172 -0.5172 +vn 0.8318 0.1227 -0.5413 +vn -0.3015 -0.9534 0.0098 +vn 0.8318 0.1227 0.5413 +vn -0.9985 -0.0120 -0.0529 +vn -0.8325 -0.0626 0.5505 +vn -0.9985 -0.0120 0.0529 +vn -0.4844 0.8730 -0.0566 +vn -0.5742 0.8175 0.0453 +vn -0.9285 -0.2445 0.2794 +vn -0.4844 -0.8730 0.0566 +vn -0.3782 0.9256 0.0143 +vn -0.3024 0.9530 -0.0199 +vn -0.3015 -0.9534 -0.0098 +vn -0.8478 0.1172 0.5172 +vn -0.9996 0.0000 -0.0297 +vn -0.3960 -0.9179 0.0267 +s off +f 354/29/7 355/30/7 353/31/7 +f 356/32/8 359/33/8 355/34/8 +f 360/35/9 357/36/9 359/33/9 +f 358/37/10 353/38/10 357/36/10 +f 359/33/11 353/39/11 355/40/11 +f 356/41/12 358/37/12 360/35/12 +f 364/42/8 367/43/8 363/44/8 +f 368/45/9 365/46/9 367/43/9 +f 366/47/10 361/48/10 365/46/10 +f 367/43/11 361/49/11 363/50/11 +f 364/51/12 366/47/12 368/45/12 +f 389/52/9 385/53/9 371/54/9 +f 370/55/12 373/56/12 372/57/12 +f 383/58/12 394/59/12 386/60/12 +f 395/61/10 378/62/10 391/63/10 +f 384/64/8 389/52/8 381/65/8 +f 386/60/9 394/59/9 372/66/9 +f 395/61/9 391/63/9 370/67/9 +f 392/68/9 388/69/9 369/70/9 +f 373/71/9 375/72/9 374/73/9 +f 372/57/8 374/73/8 371/74/8 +f 369/75/10 376/76/10 370/55/10 +f 371/74/11 375/72/11 369/77/11 +f 385/53/9 386/60/9 387/78/9 +f 388/69/9 389/52/9 390/79/9 +f 391/63/9 392/68/9 393/80/9 +f 394/59/9 395/61/9 396/81/9 +f 382/82/13 389/52/13 388/83/13 +f 386/84/14 384/64/14 383/85/14 +f 392/86/15 378/62/15 377/87/15 +f 380/88/16 395/61/16 394/89/16 +f 388/69/11 377/90/11 382/91/11 +f 417/92/9 413/93/9 399/94/9 +f 398/95/12 401/96/12 400/97/12 +f 411/98/12 422/99/12 414/100/12 +f 423/101/10 406/102/10 419/103/10 +f 412/104/8 417/92/8 409/105/8 +f 414/100/9 422/99/9 400/106/9 +f 423/101/9 419/103/9 398/107/9 +f 420/108/9 416/109/9 397/110/9 +f 401/111/9 403/112/9 402/113/9 +f 400/97/8 402/113/8 399/114/8 +f 397/115/10 404/116/10 398/95/10 +f 399/114/11 403/112/11 397/117/11 +f 413/93/9 414/100/9 415/118/9 +f 416/109/9 417/92/9 418/119/9 +f 419/103/9 420/108/9 421/120/9 +f 422/99/9 423/101/9 424/121/9 +f 410/122/13 417/92/13 416/123/13 +f 414/124/14 412/104/14 411/125/14 +f 420/126/15 406/102/15 405/127/15 +f 408/128/16 423/101/16 422/129/16 +f 416/109/11 405/130/11 410/131/11 +f 426/132/7 427/133/7 425/134/7 +f 428/135/8 431/136/8 427/137/8 +f 432/138/9 429/139/9 431/136/9 +f 430/140/10 425/141/10 429/139/10 +f 431/136/11 425/142/11 427/143/11 +f 428/144/12 430/140/12 432/138/12 +f 436/145/8 439/146/8 435/147/8 +f 440/148/9 437/149/9 439/146/9 +f 438/150/10 433/151/10 437/149/10 +f 439/146/11 433/152/11 435/153/11 +f 436/154/12 438/150/12 440/148/12 +f 461/155/9 457/156/9 443/157/9 +f 442/158/12 445/159/12 444/160/12 +f 455/161/12 466/162/12 458/163/12 +f 467/164/10 450/165/10 463/166/10 +f 456/167/8 461/155/8 453/168/8 +f 458/163/9 466/162/9 444/169/9 +f 467/164/9 463/166/9 442/170/9 +f 464/171/9 460/172/9 441/173/9 +f 445/174/9 447/175/9 446/176/9 +f 444/160/8 446/176/8 443/177/8 +f 441/178/10 448/179/10 442/158/10 +f 443/177/11 447/175/11 441/180/11 +f 457/156/9 458/163/9 459/181/9 +f 460/172/9 461/155/9 462/182/9 +f 463/166/9 464/171/9 465/183/9 +f 466/162/9 467/164/9 468/184/9 +f 454/185/13 461/155/13 460/186/13 +f 458/187/14 456/167/14 455/188/14 +f 464/189/15 450/165/15 449/190/15 +f 452/191/16 467/164/16 466/192/16 +f 460/172/11 449/193/11 454/194/11 +f 489/195/9 485/196/9 471/197/9 +f 470/198/12 473/199/12 472/200/12 +f 483/201/12 494/202/12 486/203/12 +f 495/204/10 478/205/10 491/206/10 +f 484/207/8 489/195/8 481/208/8 +f 486/203/9 494/202/9 472/209/9 +f 495/204/9 491/206/9 470/210/9 +f 492/211/9 488/212/9 469/213/9 +f 473/214/9 475/215/9 474/216/9 +f 472/200/8 474/216/8 471/217/8 +f 469/218/10 476/219/10 470/198/10 +f 471/217/11 475/215/11 469/220/11 +f 485/196/9 486/203/9 487/221/9 +f 488/212/9 489/195/9 490/222/9 +f 491/206/9 492/211/9 493/223/9 +f 494/202/9 495/204/9 496/224/9 +f 482/225/13 489/195/13 488/226/13 +f 486/227/14 484/207/14 483/228/14 +f 492/229/15 478/205/15 477/230/15 +f 480/231/16 495/204/16 494/232/16 +f 488/212/11 477/233/11 482/234/11 +f 498/235/7 499/236/7 497/237/7 +f 500/238/8 503/239/8 499/240/8 +f 504/241/9 501/242/9 503/239/9 +f 502/243/10 497/244/10 501/242/10 +f 503/239/11 497/245/11 499/246/11 +f 500/247/12 502/243/12 504/241/12 +f 508/248/8 511/249/8 507/250/8 +f 512/251/9 509/252/9 511/249/9 +f 510/253/10 505/254/10 509/252/10 +f 511/249/11 505/255/11 507/256/11 +f 508/257/12 510/253/12 512/251/12 +f 533/258/9 529/259/9 515/260/9 +f 514/261/12 517/262/12 516/263/12 +f 527/264/12 538/265/12 530/266/12 +f 539/267/10 522/268/10 535/269/10 +f 528/270/8 533/258/8 525/271/8 +f 530/266/9 538/265/9 516/272/9 +f 539/267/9 535/269/9 514/273/9 +f 536/274/9 532/275/9 513/276/9 +f 517/277/9 519/278/9 518/279/9 +f 516/263/8 518/279/8 515/280/8 +f 513/281/10 520/282/10 514/261/10 +f 515/280/11 519/278/11 513/283/11 +f 529/259/9 530/266/9 531/284/9 +f 532/275/9 533/258/9 534/285/9 +f 535/269/9 536/274/9 537/286/9 +f 538/265/9 539/267/9 540/287/9 +f 526/288/13 533/258/13 532/289/13 +f 530/290/14 528/270/14 527/291/14 +f 536/292/15 522/268/15 521/293/15 +f 524/294/16 539/267/16 538/295/16 +f 532/275/11 521/296/11 526/297/11 +f 561/298/9 557/299/9 543/300/9 +f 542/301/12 545/302/12 544/303/12 +f 555/304/12 566/305/12 558/306/12 +f 567/307/10 550/308/10 563/309/10 +f 556/310/8 561/298/8 553/311/8 +f 558/306/9 566/305/9 544/312/9 +f 567/307/9 563/309/9 542/313/9 +f 564/314/9 560/315/9 541/316/9 +f 545/317/9 547/318/9 546/319/9 +f 544/303/8 546/319/8 543/320/8 +f 541/321/10 548/322/10 542/301/10 +f 543/320/11 547/318/11 541/323/11 +f 557/299/9 558/306/9 559/324/9 +f 560/315/9 561/298/9 562/325/9 +f 563/309/9 564/314/9 565/326/9 +f 566/305/9 567/307/9 568/327/9 +f 554/328/13 561/298/13 560/329/13 +f 558/330/14 556/310/14 555/331/14 +f 564/332/15 550/308/15 549/333/15 +f 552/334/16 567/307/16 566/335/16 +f 560/315/11 549/336/11 554/337/11 +f 570/338/7 571/339/7 569/340/7 +f 572/341/8 575/342/8 571/343/8 +f 576/344/9 573/345/9 575/342/9 +f 574/346/10 569/347/10 573/345/10 +f 575/342/11 569/348/11 571/349/11 +f 572/350/12 574/346/12 576/344/12 +f 580/351/8 583/352/8 579/353/8 +f 584/354/9 581/355/9 583/352/9 +f 582/356/10 577/357/10 581/355/10 +f 583/352/11 577/358/11 579/359/11 +f 580/360/12 582/356/12 584/354/12 +f 605/361/9 601/362/9 587/363/9 +f 586/364/12 589/365/12 588/366/12 +f 599/367/12 610/368/12 602/369/12 +f 611/370/10 594/371/10 607/372/10 +f 600/373/8 605/361/8 597/374/8 +f 602/369/9 610/368/9 588/375/9 +f 611/370/9 607/372/9 586/376/9 +f 608/377/9 604/378/9 585/379/9 +f 589/380/9 591/381/9 590/382/9 +f 588/366/8 590/382/8 587/383/8 +f 585/384/10 592/385/10 586/364/10 +f 587/383/11 591/381/11 585/386/11 +f 601/362/9 602/369/9 603/387/9 +f 604/378/9 605/361/9 606/388/9 +f 607/372/9 608/377/9 609/389/9 +f 610/368/9 611/370/9 612/390/9 +f 598/391/13 605/361/13 604/392/13 +f 602/393/14 600/373/14 599/394/14 +f 608/395/15 594/371/15 593/396/15 +f 596/397/16 611/370/16 610/398/16 +f 604/378/11 593/399/11 598/400/11 +f 633/401/9 629/402/9 615/403/9 +f 614/404/12 617/405/12 616/406/12 +f 627/407/12 638/408/12 630/409/12 +f 639/410/10 622/411/10 635/412/10 +f 628/413/8 633/401/8 625/414/8 +f 630/409/9 638/408/9 616/415/9 +f 639/410/9 635/412/9 614/416/9 +f 636/417/9 632/418/9 613/419/9 +f 617/420/9 619/421/9 618/422/9 +f 616/406/8 618/422/8 615/423/8 +f 613/424/10 620/425/10 614/404/10 +f 615/423/11 619/421/11 613/426/11 +f 629/402/9 630/409/9 631/427/9 +f 632/418/9 633/401/9 634/428/9 +f 635/412/9 636/417/9 637/429/9 +f 638/408/9 639/410/9 640/430/9 +f 626/431/13 633/401/13 632/432/13 +f 630/433/14 628/413/14 627/434/14 +f 636/435/15 622/411/15 621/436/15 +f 624/437/16 639/410/16 638/438/16 +f 632/418/11 621/439/11 626/440/11 +f 354/29/7 356/441/7 355/30/7 +f 356/32/8 360/35/8 359/33/8 +f 360/35/9 358/37/9 357/36/9 +f 358/37/10 354/442/10 353/38/10 +f 359/33/11 357/36/11 353/39/11 +f 356/41/12 354/443/12 358/37/12 +f 364/42/8 368/45/8 367/43/8 +f 368/45/9 366/47/9 365/46/9 +f 366/47/10 362/444/10 361/48/10 +f 367/43/11 365/46/11 361/49/11 +f 364/51/12 362/445/12 366/47/12 +f 387/78/9 372/66/9 385/53/9 +f 372/66/9 371/54/9 385/53/9 +f 371/54/9 390/79/9 389/52/9 +f 370/55/12 376/76/12 373/56/12 +f 383/58/12 380/446/12 394/59/12 +f 395/61/10 379/447/10 378/62/10 +f 384/64/8 385/53/8 389/52/8 +f 396/81/9 370/67/9 394/59/9 +f 370/67/9 372/66/9 394/59/9 +f 372/66/9 387/78/9 386/60/9 +f 393/80/9 369/70/9 391/63/9 +f 369/70/9 370/67/9 391/63/9 +f 370/67/9 396/81/9 395/61/9 +f 390/79/9 371/54/9 388/69/9 +f 371/54/9 369/70/9 388/69/9 +f 369/70/9 393/80/9 392/68/9 +f 373/71/9 376/448/9 375/72/9 +f 372/57/8 373/56/8 374/73/8 +f 369/75/10 375/449/10 376/76/10 +f 371/74/11 374/73/11 375/72/11 +f 382/82/13 381/65/13 389/52/13 +f 386/84/14 385/53/14 384/64/14 +f 392/86/15 391/63/15 378/62/15 +f 380/88/16 379/447/16 395/61/16 +f 388/69/11 392/68/11 377/90/11 +f 415/118/9 400/106/9 413/93/9 +f 400/106/9 399/94/9 413/93/9 +f 399/94/9 418/119/9 417/92/9 +f 398/95/12 404/116/12 401/96/12 +f 411/98/12 408/450/12 422/99/12 +f 423/101/10 407/451/10 406/102/10 +f 412/104/8 413/93/8 417/92/8 +f 424/121/9 398/107/9 422/99/9 +f 398/107/9 400/106/9 422/99/9 +f 400/106/9 415/118/9 414/100/9 +f 421/120/9 397/110/9 419/103/9 +f 397/110/9 398/107/9 419/103/9 +f 398/107/9 424/121/9 423/101/9 +f 418/119/9 399/94/9 416/109/9 +f 399/94/9 397/110/9 416/109/9 +f 397/110/9 421/120/9 420/108/9 +f 401/111/9 404/452/9 403/112/9 +f 400/97/8 401/96/8 402/113/8 +f 397/115/10 403/453/10 404/116/10 +f 399/114/11 402/113/11 403/112/11 +f 410/122/13 409/105/13 417/92/13 +f 414/124/14 413/93/14 412/104/14 +f 420/126/15 419/103/15 406/102/15 +f 408/128/16 407/451/16 423/101/16 +f 416/109/11 420/108/11 405/130/11 +f 426/132/7 428/454/7 427/133/7 +f 428/135/8 432/138/8 431/136/8 +f 432/138/9 430/140/9 429/139/9 +f 430/140/10 426/455/10 425/141/10 +f 431/136/11 429/139/11 425/142/11 +f 428/144/12 426/456/12 430/140/12 +f 436/145/8 440/148/8 439/146/8 +f 440/148/9 438/150/9 437/149/9 +f 438/150/10 434/457/10 433/151/10 +f 439/146/11 437/149/11 433/152/11 +f 436/154/12 434/458/12 438/150/12 +f 459/181/9 444/169/9 457/156/9 +f 444/169/9 443/157/9 457/156/9 +f 443/157/9 462/182/9 461/155/9 +f 442/158/12 448/179/12 445/159/12 +f 455/161/12 452/459/12 466/162/12 +f 467/164/10 451/460/10 450/165/10 +f 456/167/8 457/156/8 461/155/8 +f 468/184/9 442/170/9 466/162/9 +f 442/170/9 444/169/9 466/162/9 +f 444/169/9 459/181/9 458/163/9 +f 465/183/9 441/173/9 463/166/9 +f 441/173/9 442/170/9 463/166/9 +f 442/170/9 468/184/9 467/164/9 +f 462/182/9 443/157/9 460/172/9 +f 443/157/9 441/173/9 460/172/9 +f 441/173/9 465/183/9 464/171/9 +f 445/174/9 448/461/9 447/175/9 +f 444/160/8 445/159/8 446/176/8 +f 441/178/10 447/462/10 448/179/10 +f 443/177/11 446/176/11 447/175/11 +f 454/185/13 453/168/13 461/155/13 +f 458/187/14 457/156/14 456/167/14 +f 464/189/15 463/166/15 450/165/15 +f 452/191/16 451/460/16 467/164/16 +f 460/172/11 464/171/11 449/193/11 +f 487/221/9 472/209/9 485/196/9 +f 472/209/9 471/197/9 485/196/9 +f 471/197/9 490/222/9 489/195/9 +f 470/198/12 476/219/12 473/199/12 +f 483/201/12 480/463/12 494/202/12 +f 495/204/10 479/464/10 478/205/10 +f 484/207/8 485/196/8 489/195/8 +f 496/224/9 470/210/9 494/202/9 +f 470/210/9 472/209/9 494/202/9 +f 472/209/9 487/221/9 486/203/9 +f 493/223/9 469/213/9 491/206/9 +f 469/213/9 470/210/9 491/206/9 +f 470/210/9 496/224/9 495/204/9 +f 490/222/9 471/197/9 488/212/9 +f 471/197/9 469/213/9 488/212/9 +f 469/213/9 493/223/9 492/211/9 +f 473/214/9 476/465/9 475/215/9 +f 472/200/8 473/199/8 474/216/8 +f 469/218/10 475/466/10 476/219/10 +f 471/217/11 474/216/11 475/215/11 +f 482/225/13 481/208/13 489/195/13 +f 486/227/14 485/196/14 484/207/14 +f 492/229/15 491/206/15 478/205/15 +f 480/231/16 479/464/16 495/204/16 +f 488/212/11 492/211/11 477/233/11 +f 498/235/7 500/467/7 499/236/7 +f 500/238/8 504/241/8 503/239/8 +f 504/241/9 502/243/9 501/242/9 +f 502/243/10 498/468/10 497/244/10 +f 503/239/11 501/242/11 497/245/11 +f 500/247/12 498/469/12 502/243/12 +f 508/248/8 512/251/8 511/249/8 +f 512/251/9 510/253/9 509/252/9 +f 510/253/10 506/470/10 505/254/10 +f 511/249/11 509/252/11 505/255/11 +f 508/257/12 506/471/12 510/253/12 +f 531/284/9 516/272/9 529/259/9 +f 516/272/9 515/260/9 529/259/9 +f 515/260/9 534/285/9 533/258/9 +f 514/261/12 520/282/12 517/262/12 +f 527/264/12 524/472/12 538/265/12 +f 539/267/10 523/473/10 522/268/10 +f 528/270/8 529/259/8 533/258/8 +f 540/287/9 514/273/9 538/265/9 +f 514/273/9 516/272/9 538/265/9 +f 516/272/9 531/284/9 530/266/9 +f 537/286/9 513/276/9 535/269/9 +f 513/276/9 514/273/9 535/269/9 +f 514/273/9 540/287/9 539/267/9 +f 534/285/9 515/260/9 532/275/9 +f 515/260/9 513/276/9 532/275/9 +f 513/276/9 537/286/9 536/274/9 +f 517/277/9 520/474/9 519/278/9 +f 516/263/8 517/262/8 518/279/8 +f 513/281/10 519/475/10 520/282/10 +f 515/280/11 518/279/11 519/278/11 +f 526/288/13 525/271/13 533/258/13 +f 530/290/14 529/259/14 528/270/14 +f 536/292/15 535/269/15 522/268/15 +f 524/294/16 523/473/16 539/267/16 +f 532/275/11 536/274/11 521/296/11 +f 559/324/9 544/312/9 557/299/9 +f 544/312/9 543/300/9 557/299/9 +f 543/300/9 562/325/9 561/298/9 +f 542/301/12 548/322/12 545/302/12 +f 555/304/12 552/476/12 566/305/12 +f 567/307/10 551/477/10 550/308/10 +f 556/310/8 557/299/8 561/298/8 +f 568/327/9 542/313/9 566/305/9 +f 542/313/9 544/312/9 566/305/9 +f 544/312/9 559/324/9 558/306/9 +f 565/326/9 541/316/9 563/309/9 +f 541/316/9 542/313/9 563/309/9 +f 542/313/9 568/327/9 567/307/9 +f 562/325/9 543/300/9 560/315/9 +f 543/300/9 541/316/9 560/315/9 +f 541/316/9 565/326/9 564/314/9 +f 545/317/9 548/478/9 547/318/9 +f 544/303/8 545/302/8 546/319/8 +f 541/321/10 547/479/10 548/322/10 +f 543/320/11 546/319/11 547/318/11 +f 554/328/13 553/311/13 561/298/13 +f 558/330/14 557/299/14 556/310/14 +f 564/332/15 563/309/15 550/308/15 +f 552/334/16 551/477/16 567/307/16 +f 560/315/11 564/314/11 549/336/11 +f 570/338/7 572/480/7 571/339/7 +f 572/341/8 576/344/8 575/342/8 +f 576/344/9 574/346/9 573/345/9 +f 574/346/10 570/481/10 569/347/10 +f 575/342/11 573/345/11 569/348/11 +f 572/350/12 570/482/12 574/346/12 +f 580/351/8 584/354/8 583/352/8 +f 584/354/9 582/356/9 581/355/9 +f 582/356/10 578/483/10 577/357/10 +f 583/352/11 581/355/11 577/358/11 +f 580/360/12 578/484/12 582/356/12 +f 603/387/9 588/375/9 601/362/9 +f 588/375/9 587/363/9 601/362/9 +f 587/363/9 606/388/9 605/361/9 +f 586/364/12 592/385/12 589/365/12 +f 599/367/12 596/485/12 610/368/12 +f 611/370/10 595/486/10 594/371/10 +f 600/373/8 601/362/8 605/361/8 +f 612/390/9 586/376/9 610/368/9 +f 586/376/9 588/375/9 610/368/9 +f 588/375/9 603/387/9 602/369/9 +f 609/389/9 585/379/9 607/372/9 +f 585/379/9 586/376/9 607/372/9 +f 586/376/9 612/390/9 611/370/9 +f 606/388/9 587/363/9 604/378/9 +f 587/363/9 585/379/9 604/378/9 +f 585/379/9 609/389/9 608/377/9 +f 589/380/9 592/487/9 591/381/9 +f 588/366/8 589/365/8 590/382/8 +f 585/384/10 591/488/10 592/385/10 +f 587/383/11 590/382/11 591/381/11 +f 598/391/13 597/374/13 605/361/13 +f 602/393/14 601/362/14 600/373/14 +f 608/395/15 607/372/15 594/371/15 +f 596/397/16 595/486/16 611/370/16 +f 604/378/11 608/377/11 593/399/11 +f 631/427/9 616/415/9 629/402/9 +f 616/415/9 615/403/9 629/402/9 +f 615/403/9 634/428/9 633/401/9 +f 614/404/12 620/425/12 617/405/12 +f 627/407/12 624/489/12 638/408/12 +f 639/410/10 623/490/10 622/411/10 +f 628/413/8 629/402/8 633/401/8 +f 640/430/9 614/416/9 638/408/9 +f 614/416/9 616/415/9 638/408/9 +f 616/415/9 631/427/9 630/409/9 +f 637/429/9 613/419/9 635/412/9 +f 613/419/9 614/416/9 635/412/9 +f 614/416/9 640/430/9 639/410/9 +f 634/428/9 615/403/9 632/418/9 +f 615/403/9 613/419/9 632/418/9 +f 613/419/9 637/429/9 636/417/9 +f 617/420/9 620/491/9 619/421/9 +f 616/406/8 617/405/8 618/422/8 +f 613/424/10 619/492/10 620/425/10 +f 615/423/11 618/422/11 619/421/11 +f 626/431/13 625/414/13 633/401/13 +f 630/433/14 629/402/14 628/413/14 +f 636/435/15 635/412/15 622/411/15 +f 624/437/16 623/490/16 639/410/16 +f 632/418/11 636/417/11 621/439/11 +s 1 +f 129/493/17 38/494/18 26/495/19 +f 24/496/20 96/497/21 36/498/22 +f 17/499/23 30/500/24 29/501/25 +f 19/502/26 42/503/27 31/504/28 +f 19/502/26 32/505/29 20/506/30 +f 18/507/9 174/508/9 157/509/9 +f 20/510/9 163/511/9 19/512/9 +f 160/513/9 53/514/9 164/515/9 +f 166/516/9 53/514/9 54/517/9 +f 98/518/9 126/519/9 127/520/9 +f 146/521/9 26/522/9 28/523/9 +f 135/524/9 25/525/9 133/526/9 +f 64/527/9 132/528/9 23/529/9 +f 27/530/31 37/531/32 25/532/33 +f 27/530/31 44/533/34 39/534/35 +f 28/535/36 38/494/18 40/536/37 +f 137/537/9 27/538/9 135/524/9 +f 59/539/9 144/540/9 60/541/9 +f 64/527/9 138/542/9 136/543/9 +f 17/499/23 41/544/27 45/545/27 +f 28/535/36 43/546/34 47/547/34 +f 57/548/38 170/549/38 56/550/38 +f 46/551/39 50/552/40 42/553/41 +f 43/554/42 52/555/43 51/556/43 +f 143/557/44 51/558/45 141/559/44 +f 60/560/44 142/561/44 61/562/44 +f 43/563/46 51/564/45 47/565/47 +f 52/566/48 44/567/49 48/568/50 +f 41/569/51 49/570/52 45/571/53 +f 50/572/54 41/573/55 42/574/55 +f 112/575/9 64/527/9 128/576/9 +f 167/577/9 49/578/54 50/579/54 +f 165/580/44 50/579/40 46/581/39 +f 19/512/9 165/582/9 46/583/9 +f 53/514/9 120/584/9 54/517/9 +f 137/585/38 52/586/48 48/587/50 +f 127/520/9 110/588/9 111/589/9 +f 86/590/56 88/591/9 87/592/9 +f 122/593/44 119/594/44 118/595/44 +f 109/596/38 56/550/38 108/597/38 +f 114/598/9 102/599/9 103/600/9 +f 104/601/9 59/539/9 113/602/9 +f 122/593/9 107/603/9 123/604/9 +f 120/605/44 55/606/44 54/607/44 +f 61/562/9 105/608/9 121/609/9 +f 118/610/9 115/611/9 114/598/9 +f 124/612/9 56/550/9 55/606/9 +f 58/613/9 100/614/9 21/615/9 +f 94/616/21 103/617/21 102/618/21 +f 21/619/57 92/620/58 33/621/59 +f 128/576/9 23/529/9 97/622/9 +f 22/623/9 116/624/9 53/514/9 +f 113/602/9 60/541/9 117/625/9 +f 117/626/44 61/562/44 121/609/44 +f 107/603/38 111/627/38 110/628/38 +f 57/629/9 125/630/9 58/613/9 +f 112/631/38 62/632/38 63/633/38 +f 22/634/60 93/635/21 101/636/21 +f 90/637/58 99/638/58 98/639/58 +f 116/640/61 69/641/61 120/642/61 +f 125/643/61 83/644/62 100/645/63 +f 103/646/64 77/647/61 114/648/61 +f 121/609/44 118/595/44 117/626/44 +f 120/605/44 123/604/44 124/612/44 +f 121/609/9 106/649/9 122/593/9 +f 108/597/9 123/604/9 107/603/9 +f 114/648/61 71/650/61 118/651/61 +f 127/652/61 85/653/62 98/654/63 +f 108/597/38 110/628/38 109/596/38 +f 112/631/38 106/649/38 105/608/38 +f 290/655/7 275/656/7 274/657/7 +f 220/658/65 305/659/66 216/660/67 +f 23/661/68 89/662/58 97/663/58 +f 82/664/9 84/665/56 83/644/56 +f 78/666/9 80/667/69 79/668/69 +f 74/669/69 76/670/9 75/671/9 +f 72/672/9 77/647/9 78/666/9 +f 75/671/9 70/673/9 69/641/9 +f 87/592/9 68/674/9 67/675/9 +f 66/676/9 81/677/9 82/664/9 +f 128/678/70 67/675/70 112/679/70 +f 101/680/64 75/671/61 116/640/61 +f 119/681/70 76/670/70 115/682/70 +f 111/683/61 88/591/61 127/652/61 +f 99/684/71 81/677/70 126/685/70 +f 109/686/61 82/664/61 125/643/61 +f 115/682/70 73/687/72 102/688/73 +f 69/641/9 65/689/9 66/676/9 +f 97/690/71 87/592/70 128/678/70 +f 117/691/70 78/666/70 113/692/70 +f 113/692/70 79/668/72 104/693/73 +f 126/685/70 65/689/70 110/694/70 +f 119/681/70 65/689/70 70/673/70 +f 66/676/61 120/642/61 69/641/61 +f 118/651/61 68/674/61 111/683/61 +f 67/675/9 71/650/9 72/672/9 +f 117/691/70 67/675/70 72/672/70 +f 98/695/63 85/696/62 90/697/74 +f 100/698/63 83/699/62 92/700/74 +f 99/701/71 91/702/75 84/703/76 +f 86/704/76 97/705/71 89/706/75 +f 104/707/73 79/708/72 96/709/77 +f 80/710/78 103/711/64 95/712/79 +f 102/713/73 73/714/72 94/715/77 +f 74/716/78 101/717/64 93/718/79 +f 74/719/69 94/720/80 73/721/69 +f 80/722/69 96/709/80 79/708/69 +f 85/723/56 89/724/81 90/725/81 +f 83/726/56 91/727/81 92/728/81 +f 143/729/9 28/523/9 47/730/9 +f 51/558/43 139/731/9 141/559/9 +f 142/561/9 62/632/9 61/562/9 +f 63/633/38 140/732/38 138/733/38 +f 133/734/82 37/531/32 134/735/83 +f 36/736/22 130/737/84 24/738/20 +f 132/739/85 35/740/86 23/741/68 +f 136/742/87 154/743/88 156/744/89 +f 132/745/90 134/746/91 133/747/92 +f 146/748/93 151/749/94 150/750/95 +f 129/751/96 150/750/95 131/752/97 +f 59/539/9 130/753/9 145/754/9 +f 150/750/98 152/755/9 149/756/99 +f 155/757/100 154/743/9 153/758/9 +f 134/759/101 156/744/102 155/757/100 +f 131/752/103 149/756/99 147/760/104 +f 130/761/105 149/756/106 145/762/87 +f 133/763/107 155/757/108 135/764/93 +f 135/764/93 153/758/109 137/765/110 +f 144/766/111 149/756/106 152/755/112 +f 132/767/113 156/744/89 148/768/114 +f 152/755/112 154/743/88 140/769/115 +f 141/770/116 153/758/109 151/749/94 +f 152/755/9 153/758/9 154/743/9 +f 172/771/9 58/613/9 173/772/9 +f 17/773/9 171/774/9 174/508/9 +f 45/775/53 169/776/38 171/777/38 +f 55/606/9 170/549/9 168/778/9 +f 54/607/44 168/778/44 166/779/44 +f 161/780/117 32/505/29 162/781/118 +f 157/782/119 30/500/24 18/783/120 +f 21/784/57 175/785/121 158/786/121 +f 176/787/122 22/788/60 160/789/122 +f 181/790/9 178/791/9 177/792/9 +f 167/793/123 181/790/124 177/792/125 +f 161/794/126 183/795/127 163/796/128 +f 178/791/129 182/797/130 168/798/131 +f 174/799/132 177/792/125 180/800/133 +f 158/801/9 58/613/9 21/615/9 +f 179/802/134 177/792/9 178/791/9 +f 182/797/9 183/795/135 184/803/136 +f 184/803/136 162/804/137 176/805/138 +f 179/802/134 159/806/139 180/800/140 +f 164/807/141 182/797/130 184/803/142 +f 158/808/143 179/802/144 173/809/141 +f 173/809/141 178/791/129 172/810/145 +f 160/811/146 162/812/147 161/813/148 +f 163/796/128 181/790/124 165/814/149 +f 158/815/150 159/816/151 175/817/152 +f 157/818/153 180/800/133 159/806/154 +f 160/819/155 184/803/142 176/805/156 +f 224/820/7 292/821/7 223/822/7 +f 239/823/7 235/824/7 240/825/7 +f 205/826/157 195/827/158 193/828/159 +f 300/829/7 232/830/7 191/831/7 +f 294/832/7 266/833/7 295/834/7 +f 206/835/160 297/836/161 194/837/162 +f 185/838/163 198/839/164 186/840/165 +f 227/841/7 272/842/7 281/843/7 +f 300/844/166 324/845/167 304/846/168 +f 230/847/7 310/848/7 229/849/7 +f 273/850/7 229/849/7 289/851/7 +f 331/852/7 188/853/7 187/854/7 +f 193/855/7 303/856/7 301/857/7 +f 205/826/157 301/858/169 302/859/170 +f 314/860/7 194/861/7 297/862/7 +f 200/863/171 187/864/172 188/865/173 +f 319/866/174 321/867/175 307/868/176 +f 288/869/7 221/870/7 222/871/7 +f 351/872/177 350/873/7 352/874/178 +f 287/875/179 290/655/179 286/876/179 +f 270/877/7 282/878/7 271/879/7 +f 334/880/7 221/870/7 332/881/7 +f 318/882/180 320/883/7 319/866/7 +f 267/884/181 252/885/182 259/886/183 +f 251/887/184 293/888/185 268/889/186 +f 221/870/7 328/890/7 332/881/7 +f 196/891/187 206/835/160 194/837/162 +f 261/892/188 190/893/189 269/894/188 +f 185/895/7 339/896/7 213/897/7 +f 298/898/190 204/899/191 192/900/192 +f 308/901/193 322/902/194 320/883/195 +f 323/903/196 301/904/197 303/905/198 +f 346/906/199 341/907/200 340/908/201 +f 226/909/7 340/910/7 341/911/7 +f 337/912/66 213/913/202 339/914/66 +f 326/915/7 226/909/7 341/911/7 +f 312/916/7 227/841/7 228/917/7 +f 302/918/203 300/919/204 301/920/205 +f 195/827/158 212/921/206 216/922/206 +f 211/923/206 196/891/187 215/924/206 +f 200/863/171 329/925/207 330/926/208 +f 342/927/209 345/928/210 339/929/211 +f 214/930/212 210/931/213 218/932/214 +f 314/933/198 319/866/174 311/934/215 +f 195/935/7 305/936/7 303/856/7 +f 223/822/179 288/937/179 222/938/179 +f 244/939/216 287/940/216 283/941/216 +f 320/883/7 321/867/7 319/866/7 +f 245/942/185 271/943/217 282/944/185 +f 326/945/218 327/946/219 325/947/220 +f 253/948/184 295/949/185 266/950/186 +f 246/951/216 285/952/216 281/953/216 +f 270/954/221 262/955/222 241/956/223 +f 238/957/7 243/958/7 237/959/7 +f 256/960/185 279/961/185 295/949/185 +f 254/962/182 257/963/183 265/964/181 +f 232/830/7 280/965/7 296/966/7 +f 272/967/221 264/968/222 247/969/223 +f 236/970/7 255/971/7 235/824/7 +f 284/972/7 190/973/7 221/870/7 +f 233/974/7 237/959/7 234/975/7 +f 268/976/7 226/909/7 189/977/7 +f 271/978/188 262/979/188 270/980/188 +f 209/981/224 218/982/225 210/983/224 +f 252/984/226 250/985/7 251/887/226 +f 247/986/223 281/953/216 272/987/221 +f 228/988/179 310/848/179 312/989/179 +f 288/990/185 234/975/185 237/959/185 +f 266/991/186 258/992/227 253/993/184 +f 248/994/228 246/951/7 247/986/228 +f 262/995/229 242/996/228 241/997/228 +f 191/831/7 296/966/7 265/998/7 +f 239/823/185 282/944/185 286/999/185 +f 311/1000/179 219/1001/230 215/1002/231 +f 250/985/185 277/1003/185 293/888/185 +f 311/1004/7 196/1005/7 314/860/7 +f 235/824/216 296/1006/216 280/1007/216 +f 211/1008/232 215/1009/231 219/1010/230 +f 230/847/66 280/1011/66 231/1012/66 +f 236/970/185 286/999/185 279/961/185 +f 249/1013/7 234/975/7 250/985/7 +f 267/1014/233 258/1015/233 266/1016/233 +f 328/1017/234 352/874/235 332/1018/200 +f 209/1019/236 185/838/163 213/1020/236 +f 220/1021/237 211/1022/238 219/1023/237 +f 232/830/7 306/1024/7 231/1025/7 +f 225/1026/66 338/1027/66 340/1028/66 +f 330/1029/239 328/1030/240 329/1031/241 +f 258/1032/242 254/1033/226 253/1034/226 +f 278/1035/7 295/834/7 279/1036/7 +f 217/1037/225 335/1038/7 218/1039/225 +f 307/1040/7 219/1001/237 309/1041/7 +f 237/959/185 284/1042/185 288/990/185 +f 228/917/7 281/843/7 285/1043/7 +f 279/1044/66 275/656/66 278/1045/66 +f 324/845/243 302/1046/244 323/903/245 +f 277/1047/66 224/820/66 225/1026/66 +f 220/1048/65 216/1049/67 212/1050/246 +f 291/1051/179 288/937/179 292/821/179 +f 189/1052/247 260/1053/233 268/1054/233 +f 244/939/7 242/1055/228 243/958/7 +f 248/1056/248 263/1057/249 271/1058/217 +f 218/1039/214 333/1059/179 214/1060/212 +f 299/1061/250 317/1062/251 318/882/180 +f 209/1063/252 213/1064/202 217/1065/253 +f 260/1066/242 252/1067/226 251/1068/226 +f 289/851/7 274/657/7 273/850/7 +f 245/942/7 240/825/7 246/951/7 +f 285/1069/179 229/849/179 228/988/179 +f 274/657/66 280/1011/66 273/850/66 +f 241/1070/223 283/941/216 270/1071/221 +f 293/1072/7 225/1073/7 226/909/7 +f 276/1074/7 291/1051/7 292/821/7 +f 235/824/216 285/952/216 240/825/216 +f 268/1075/186 260/1076/227 251/1077/184 +f 264/968/229 248/1078/228 247/969/228 +f 286/876/179 289/851/179 285/1069/179 +f 345/928/210 349/1079/254 335/1080/255 +f 338/1027/7 223/822/7 336/1081/7 +f 317/1062/256 298/1082/257 313/1083/168 +f 336/1081/179 222/938/179 334/1084/179 +f 227/841/7 298/1085/7 192/1086/7 +f 198/839/164 325/1087/258 186/840/165 +f 343/1088/259 189/1089/247 326/1090/259 +f 344/1091/260 190/1092/189 202/1093/261 +f 338/1094/262 350/873/263 346/906/199 +f 325/1095/264 348/1096/265 342/927/209 +f 346/906/7 349/1079/7 345/928/7 +f 330/1097/266 352/874/178 344/1098/267 +f 332/1018/200 350/873/263 334/1099/268 +f 256/960/7 254/1100/226 255/971/7 +f 283/1101/7 286/1102/7 282/878/7 +f 257/1103/233 191/1104/269 265/1105/233 +f 192/1106/192 264/1107/188 272/1108/188 +f 278/1045/66 276/1074/66 277/1047/66 +f 351/872/270 329/1109/271 331/1110/272 +f 321/867/175 303/905/198 305/1111/273 +f 347/1112/274 326/1113/275 341/907/200 +f 203/1114/276 300/1115/277 191/1116/269 +f 322/902/7 323/903/245 321/867/7 +f 187/864/172 210/1117/236 214/1118/236 +f 345/928/7 347/1112/278 346/906/7 +f 249/1013/216 267/1119/181 294/1120/216 +f 233/974/216 294/1120/216 278/1121/216 +f 333/1122/7 187/854/7 214/1123/7 +f 297/1124/279 318/882/280 314/933/198 +f 243/958/185 269/1125/217 284/1042/185 +f 255/971/216 265/1126/181 296/1006/216 +f 233/974/216 287/940/216 238/957/216 +f 186/1127/7 342/1128/7 185/895/7 +f 324/845/167 306/1129/281 304/846/168 +f 320/883/195 313/1083/168 312/1130/282 +f 242/1131/248 261/1132/249 269/1133/217 +f 308/1134/66 231/1012/66 306/1135/66 +f 349/1079/254 331/1110/272 333/1136/283 +f 347/1112/278 327/1137/284 343/1138/285 +f 199/1139/286 42/1140/12 210/1141/12 +f 204/1142/287 96/1143/10 264/1144/10 +f 264/1144/10 95/1145/10 263/1146/10 +f 263/1146/10 94/1147/10 262/1148/10 +f 197/1149/288 30/1150/289 198/1151/289 +f 198/1151/289 159/1152/290 327/1153/290 +f 259/1154/8 90/1155/8 258/1156/8 +f 260/1157/8 91/1158/8 259/1154/8 +f 147/1159/291 36/1160/287 315/1161/291 +f 210/1141/12 41/1162/12 209/1163/12 +f 209/1163/12 29/1164/288 197/1149/288 +f 212/1165/11 43/1166/11 211/1167/11 +f 302/1168/292 37/1169/293 205/1170/293 +f 207/1171/294 44/1172/11 212/1165/11 +f 205/1170/293 39/1173/294 207/1171/294 +f 175/1174/295 33/1175/296 343/1176/295 +f 201/1177/296 92/1178/8 260/1157/8 +f 206/1179/297 131/1180/298 299/1181/298 +f 176/1182/299 162/1183/300 344/1184/299 +f 330/1185/300 32/1186/301 200/1187/301 +f 258/1156/8 89/1188/8 257/1189/8 +f 262/1148/10 93/1190/10 261/1191/10 +f 261/1191/10 34/1192/302 202/1193/302 +f 148/1194/303 134/1195/292 316/1196/303 +f 257/1189/8 35/1197/304 203/1198/304 +f 208/1199/305 38/1200/297 206/1179/297 +f 211/1167/11 40/1201/305 208/1199/305 +f 200/1187/301 31/1202/286 199/1139/286 +f 129/493/17 131/1203/306 38/494/18 +f 24/496/20 104/1204/21 96/497/21 +f 17/499/23 18/783/120 30/500/24 +f 19/502/26 46/1205/27 42/503/27 +f 19/502/26 31/504/28 32/505/29 +f 18/507/9 17/773/9 174/508/9 +f 20/510/9 161/1206/9 163/511/9 +f 160/513/9 22/623/9 53/514/9 +f 166/516/9 164/515/9 53/514/9 +f 98/518/9 99/1207/9 126/519/9 +f 146/521/9 129/1208/9 26/522/9 +f 135/524/9 27/538/9 25/525/9 +f 64/527/9 136/543/9 132/528/9 +f 27/530/31 39/534/35 37/531/32 +f 27/530/31 48/1209/34 44/533/34 +f 28/535/36 26/495/19 38/494/18 +f 137/537/9 48/1210/9 27/538/9 +f 59/539/9 145/754/9 144/540/9 +f 64/527/9 63/1211/9 138/542/9 +f 17/499/23 29/501/25 41/544/27 +f 28/535/36 40/536/37 43/546/34 +f 57/548/38 172/1212/38 170/549/38 +f 43/554/42 44/1213/42 52/555/43 +f 143/557/44 47/1214/47 51/558/45 +f 60/560/44 144/1215/44 142/561/44 +f 50/572/54 49/1216/54 41/573/55 +f 112/575/9 63/1211/9 64/527/9 +f 167/577/9 169/776/9 49/578/54 +f 165/580/44 167/577/44 50/579/40 +f 19/512/9 163/511/9 165/582/9 +f 53/514/9 116/624/9 120/584/9 +f 137/585/38 139/731/38 52/586/48 +f 127/520/9 126/519/9 110/588/9 +f 86/590/56 85/653/56 88/591/9 +f 122/593/44 123/604/44 119/594/44 +f 109/596/38 57/548/38 56/550/38 +f 114/598/9 115/611/9 102/599/9 +f 104/601/9 24/1217/9 59/539/9 +f 122/593/9 106/649/9 107/603/9 +f 120/605/44 124/612/44 55/606/44 +f 61/562/9 62/632/9 105/608/9 +f 118/610/9 119/1218/9 115/611/9 +f 124/612/9 108/597/9 56/550/9 +f 58/613/9 125/630/9 100/614/9 +f 94/616/21 95/1219/21 103/617/21 +f 21/619/57 100/1220/58 92/620/58 +f 128/576/9 64/527/9 23/529/9 +f 22/623/9 101/1221/9 116/624/9 +f 113/602/9 59/539/9 60/541/9 +f 117/626/44 60/560/44 61/562/44 +f 107/603/38 106/649/38 111/627/38 +f 57/629/9 109/1222/9 125/630/9 +f 112/631/38 105/608/38 62/632/38 +f 22/634/60 34/1223/307 93/635/21 +f 90/637/58 91/1224/58 99/638/58 +f 116/640/61 75/671/61 69/641/61 +f 125/643/61 82/664/61 83/644/62 +f 103/646/64 80/667/78 77/647/61 +f 121/609/44 122/593/44 118/595/44 +f 120/605/44 119/594/44 123/604/44 +f 121/609/9 105/608/9 106/649/9 +f 108/597/9 124/612/9 123/604/9 +f 114/648/61 77/647/61 71/650/61 +f 127/652/61 88/591/61 85/653/62 +f 108/597/38 107/603/38 110/628/38 +f 112/631/38 111/627/38 106/649/38 +f 290/655/7 291/1051/7 275/656/7 +f 220/658/65 307/1040/66 305/659/66 +f 23/661/68 35/1225/86 89/662/58 +f 82/664/9 81/677/9 84/665/56 +f 78/666/9 77/647/9 80/667/69 +f 74/669/69 73/687/69 76/670/9 +f 72/672/9 71/650/9 77/647/9 +f 75/671/9 76/670/9 70/673/9 +f 87/592/9 88/591/9 68/674/9 +f 66/676/9 65/689/9 81/677/9 +f 128/678/70 87/592/70 67/675/70 +f 101/680/64 74/669/78 75/671/61 +f 119/681/70 70/673/70 76/670/70 +f 111/683/61 68/674/61 88/591/61 +f 99/684/71 84/665/76 81/677/70 +f 109/686/61 66/676/61 82/664/61 +f 115/682/70 76/670/70 73/687/72 +f 69/641/9 70/673/9 65/689/9 +f 97/690/71 86/590/76 87/592/70 +f 117/691/70 72/672/70 78/666/70 +f 113/692/70 78/666/70 79/668/72 +f 126/685/70 81/677/70 65/689/70 +f 119/681/70 110/694/70 65/689/70 +f 66/676/61 109/686/61 120/642/61 +f 118/651/61 71/650/61 68/674/61 +f 67/675/9 68/674/9 71/650/9 +f 117/691/70 112/679/70 67/675/70 +f 74/719/69 93/1226/80 94/720/80 +f 80/722/69 95/1227/80 96/709/80 +f 85/723/56 86/1228/56 89/724/81 +f 83/726/56 84/1229/56 91/727/81 +f 143/729/9 146/521/9 28/523/9 +f 51/558/43 52/586/43 139/731/9 +f 142/561/9 140/732/9 62/632/9 +f 63/633/38 62/632/38 140/732/38 +f 133/734/82 25/532/33 37/531/32 +f 36/736/22 147/1230/308 130/737/84 +f 132/739/85 148/1231/309 35/740/86 +f 136/742/87 138/1232/310 154/743/88 +f 132/745/90 148/1233/311 134/746/91 +f 146/748/93 143/1234/312 151/749/94 +f 129/751/96 146/748/93 150/750/95 +f 59/539/9 24/1217/9 130/753/9 +f 150/750/98 151/749/9 152/755/9 +f 155/757/100 156/744/102 154/743/9 +f 134/759/101 148/768/313 156/744/102 +f 131/752/103 150/750/98 149/756/99 +f 130/761/105 147/760/314 149/756/106 +f 133/763/107 134/759/315 155/757/108 +f 135/764/93 155/757/108 153/758/109 +f 144/766/111 145/762/87 149/756/106 +f 132/767/113 136/742/87 156/744/89 +f 142/1235/316 144/766/111 152/755/112 +f 154/743/88 138/1232/310 140/769/115 +f 140/769/115 142/1235/316 152/755/112 +f 139/1236/317 137/765/110 153/758/109 +f 151/749/94 143/1234/312 141/770/116 +f 141/770/116 139/1236/317 153/758/109 +f 152/755/9 151/749/9 153/758/9 +f 172/771/9 57/629/9 58/613/9 +f 17/773/9 45/1237/9 171/774/9 +f 45/775/53 49/578/52 169/776/38 +f 55/606/9 56/550/9 170/549/9 +f 54/607/44 55/606/44 168/778/44 +f 161/780/117 20/506/30 32/505/29 +f 157/782/119 159/1238/318 30/500/24 +f 21/784/57 33/1239/59 175/785/121 +f 176/787/122 34/1240/307 22/788/60 +f 181/790/9 182/797/9 178/791/9 +f 177/792/125 171/1241/319 169/1242/320 +f 167/793/123 165/814/149 181/790/124 +f 177/792/125 169/1242/320 167/793/123 +f 161/794/126 162/804/321 183/795/127 +f 170/1243/322 172/810/145 178/791/129 +f 182/797/130 166/1244/323 168/798/131 +f 168/798/131 170/1243/322 178/791/129 +f 174/799/132 171/1241/319 177/792/125 +f 158/801/9 173/772/9 58/613/9 +f 179/802/134 180/800/140 177/792/9 +f 182/797/9 181/790/9 183/795/135 +f 184/803/136 183/795/135 162/804/137 +f 179/802/134 175/1245/324 159/806/139 +f 164/807/141 166/1244/323 182/797/130 +f 158/808/143 175/1245/325 179/802/144 +f 173/809/141 179/802/144 178/791/129 +f 160/811/146 176/1246/326 162/812/147 +f 163/796/128 183/795/127 181/790/124 +f 158/815/150 157/1247/327 159/816/151 +f 157/818/153 174/799/132 180/800/133 +f 160/819/155 164/807/141 184/803/142 +f 224/820/7 276/1074/7 292/821/7 +f 239/823/7 236/970/7 235/824/7 +f 205/826/157 207/1248/328 195/827/158 +f 300/829/7 304/1249/7 232/830/7 +f 294/832/7 267/1250/7 266/833/7 +f 206/835/160 299/1251/329 297/836/161 +f 185/838/163 197/1252/330 198/839/164 +f 227/841/7 192/1086/7 272/842/7 +f 300/844/166 316/1253/331 324/845/167 +f 230/847/7 308/1134/7 310/848/7 +f 273/850/7 230/847/7 229/849/7 +f 331/852/7 329/1254/7 188/853/7 +f 193/855/7 195/935/7 303/856/7 +f 205/826/157 193/828/159 301/858/169 +f 314/860/7 196/1005/7 194/861/7 +f 200/863/171 199/1255/332 187/864/172 +f 309/1256/333 311/934/215 319/866/174 +f 321/867/175 305/1111/273 307/868/176 +f 307/868/176 309/1256/333 319/866/174 +f 288/869/7 284/972/7 221/870/7 +f 351/872/177 349/1079/7 350/873/7 +f 287/875/179 291/1051/179 290/655/179 +f 270/877/7 283/1101/7 282/878/7 +f 334/880/7 222/871/7 221/870/7 +f 318/882/180 317/1062/251 320/883/7 +f 251/887/184 250/985/185 293/888/185 +f 221/870/7 190/973/7 328/890/7 +f 196/891/187 208/1257/334 206/835/160 +f 261/892/188 202/1258/261 190/893/189 +f 185/895/7 342/1128/7 339/896/7 +f 298/898/190 315/1259/335 204/899/191 +f 320/883/195 312/1130/282 310/1260/336 +f 308/901/193 306/1129/281 322/902/194 +f 320/883/195 310/1260/336 308/901/193 +f 323/903/196 302/1046/337 301/904/197 +f 346/906/199 347/1112/274 341/907/200 +f 226/909/7 225/1073/7 340/910/7 +f 337/912/66 217/1037/253 213/913/202 +f 326/915/7 189/977/7 226/909/7 +f 312/916/7 313/1261/7 227/841/7 +f 302/918/203 316/1262/338 300/919/204 +f 195/827/158 207/1248/328 212/921/206 +f 211/923/206 208/1257/334 196/891/187 +f 200/863/171 188/865/173 329/925/207 +f 342/927/209 348/1096/265 345/928/210 +f 314/933/198 318/882/280 319/866/174 +f 195/935/7 216/1263/7 305/936/7 +f 223/822/179 292/821/179 288/937/179 +f 244/939/216 238/957/216 287/940/216 +f 320/883/7 322/902/7 321/867/7 +f 245/942/185 248/994/248 271/943/217 +f 326/945/218 343/1264/339 327/946/219 +f 253/948/184 256/960/185 295/949/185 +f 246/951/216 240/825/216 285/952/216 +f 238/957/7 244/939/7 243/958/7 +f 256/960/185 236/970/185 279/961/185 +f 232/830/7 231/1025/7 280/965/7 +f 236/970/7 256/960/7 255/971/7 +f 284/972/7 269/1265/7 190/973/7 +f 233/974/7 238/957/7 237/959/7 +f 268/976/7 293/1072/7 226/909/7 +f 271/978/188 263/1266/188 262/979/188 +f 209/981/224 217/1267/225 218/982/225 +f 252/984/226 249/1013/7 250/985/7 +f 247/986/223 246/951/216 281/953/216 +f 228/988/179 229/849/179 310/848/179 +f 288/990/185 277/1003/185 234/975/185 +f 248/994/228 245/942/7 246/951/7 +f 262/995/229 261/1268/229 242/996/228 +f 191/831/7 232/830/7 296/966/7 +f 239/823/185 245/942/185 282/944/185 +f 311/1000/179 309/1041/179 219/1001/230 +f 250/985/185 234/975/185 277/1003/185 +f 311/1004/7 215/1269/7 196/1005/7 +f 235/824/216 255/971/216 296/1006/216 +f 230/847/66 273/850/66 280/1011/66 +f 236/970/185 239/823/185 286/999/185 +f 249/1013/7 233/974/7 234/975/7 +f 267/1014/233 259/1270/233 258/1015/233 +f 328/1017/234 344/1098/340 352/874/235 +f 209/1019/236 197/1252/330 185/838/163 +f 220/1021/237 212/1271/238 211/1022/238 +f 232/830/7 304/1249/7 306/1024/7 +f 225/1026/66 224/820/66 338/1027/66 +f 330/1029/239 344/1272/341 328/1030/240 +f 258/1032/242 257/1273/242 254/1033/226 +f 278/1035/7 294/832/7 295/834/7 +f 217/1037/225 337/912/7 335/1038/7 +f 307/1040/7 220/658/237 219/1001/237 +f 237/959/185 243/958/185 284/1042/185 +f 228/917/7 227/841/7 281/843/7 +f 279/1044/66 274/657/66 275/656/66 +f 324/845/243 316/1253/342 302/1046/244 +f 277/1047/66 276/1074/66 224/820/66 +f 291/1051/179 287/875/179 288/937/179 +f 189/1052/247 201/1274/343 260/1053/233 +f 244/939/7 241/1070/228 242/1055/228 +f 218/1039/214 335/1038/179 333/1059/179 +f 299/1061/250 315/1275/344 317/1062/251 +f 260/1066/242 259/1276/242 252/1067/226 +f 289/851/7 290/655/7 274/657/7 +f 245/942/7 239/823/7 240/825/7 +f 285/1069/179 289/851/179 229/849/179 +f 274/657/66 279/1044/66 280/1011/66 +f 241/1070/223 244/939/216 283/941/216 +f 293/1072/7 277/1277/7 225/1073/7 +f 276/1074/7 275/656/7 291/1051/7 +f 235/824/216 280/1007/216 285/952/216 +f 264/968/229 263/1278/229 248/1078/228 +f 286/876/179 290/655/179 289/851/179 +f 337/1279/345 339/929/211 345/928/210 +f 349/1079/254 333/1136/283 335/1080/255 +f 335/1080/255 337/1279/345 345/928/210 +f 338/1027/7 224/820/7 223/822/7 +f 317/1062/256 315/1275/346 298/1082/257 +f 336/1081/179 223/822/179 222/938/179 +f 227/841/7 313/1261/7 298/1085/7 +f 198/839/164 327/1280/347 325/1087/258 +f 343/1088/259 201/1281/343 189/1089/247 +f 344/1091/260 328/1282/260 190/1092/189 +f 336/1283/348 334/1099/268 350/873/263 +f 346/906/199 340/908/201 338/1094/262 +f 338/1094/262 336/1283/348 350/873/263 +f 325/1095/264 327/1137/349 348/1096/265 +f 346/906/7 350/873/7 349/1079/7 +f 330/1097/266 351/872/177 352/874/178 +f 332/1018/200 352/874/235 350/873/263 +f 256/960/7 253/948/226 254/1100/226 +f 283/1101/7 287/1284/7 286/1102/7 +f 257/1103/233 203/1285/276 191/1104/269 +f 192/1106/192 204/1286/191 264/1107/188 +f 278/1045/66 275/656/66 276/1074/66 +f 351/872/270 330/1097/350 329/1109/271 +f 321/867/175 323/903/196 303/905/198 +f 347/1112/274 343/1138/351 326/1113/275 +f 203/1114/276 316/1287/352 300/1115/277 +f 322/902/7 324/845/243 323/903/245 +f 187/864/172 199/1255/332 210/1117/236 +f 345/928/7 348/1096/353 347/1112/278 +f 249/1013/216 252/984/182 267/1119/181 +f 233/974/216 249/1013/216 294/1120/216 +f 333/1122/7 331/852/7 187/854/7 +f 297/1124/279 299/1061/354 318/882/280 +f 243/958/185 242/1055/248 269/1125/217 +f 255/971/216 254/1100/182 265/1126/181 +f 233/974/216 278/1121/216 287/940/216 +f 186/1127/7 325/1288/7 342/1128/7 +f 324/845/167 322/902/194 306/1129/281 +f 320/883/195 317/1062/256 313/1083/168 +f 308/1134/66 230/847/66 231/1012/66 +f 349/1079/254 351/872/270 331/1110/272 +f 347/1112/278 348/1096/353 327/1137/284 +f 199/1139/286 31/1202/286 42/1140/12 +f 204/1142/287 36/1289/287 96/1143/10 +f 264/1144/10 96/1143/10 95/1145/10 +f 263/1146/10 95/1145/10 94/1147/10 +f 197/1149/288 29/1164/288 30/1150/289 +f 198/1151/289 30/1150/289 159/1152/290 +f 259/1154/8 91/1158/8 90/1155/8 +f 260/1157/8 92/1178/8 91/1158/8 +f 36/1160/287 204/1290/287 315/1161/291 +f 315/1161/291 299/1181/298 131/1180/298 +f 131/1180/298 147/1159/291 315/1161/291 +f 210/1141/12 42/1140/12 41/1162/12 +f 209/1163/12 41/1162/12 29/1164/288 +f 212/1165/11 44/1172/11 43/1166/11 +f 302/1168/292 134/1195/292 37/1169/293 +f 207/1171/294 39/1173/294 44/1172/11 +f 205/1170/293 37/1169/293 39/1173/294 +f 33/1175/296 201/1291/296 343/1176/295 +f 343/1176/295 327/1153/290 159/1152/290 +f 159/1152/290 175/1174/295 343/1176/295 +f 201/1177/296 33/1292/296 92/1178/8 +f 206/1179/297 38/1200/297 131/1180/298 +f 162/1183/300 330/1185/300 344/1184/299 +f 344/1184/299 202/1293/302 34/1294/302 +f 34/1294/302 176/1182/299 344/1184/299 +f 330/1185/300 162/1183/300 32/1186/301 +f 258/1156/8 90/1155/8 89/1188/8 +f 262/1148/10 94/1147/10 93/1190/10 +f 261/1191/10 93/1190/10 34/1192/302 +f 134/1195/292 302/1168/292 316/1196/303 +f 316/1196/303 203/1295/304 35/1296/304 +f 35/1296/304 148/1194/303 316/1196/303 +f 257/1189/8 89/1188/8 35/1197/304 +f 208/1199/305 40/1201/305 38/1200/297 +f 211/1167/11 43/1166/11 40/1201/305 +f 200/1187/301 32/1186/301 31/1202/286 +o frame +v -0.125000 0.000000 1.500000 +v -0.125000 3.000000 1.500000 +v -0.125000 0.000000 -1.500000 +v -0.125000 3.000000 -1.500000 +v 0.125000 0.000000 1.500000 +v 0.125000 3.000000 1.500000 +v 0.125000 0.000000 -1.500000 +v 0.125000 3.000000 -1.500000 +v 0.125000 2.937500 0.737027 +v -0.125000 2.937500 0.737027 +v 0.125000 2.857760 -0.997420 +v -0.125000 2.857760 -0.997420 +v 0.125000 2.937500 -0.737027 +v -0.125000 2.937500 -0.737027 +v 0.125000 2.857760 0.997420 +v -0.125000 2.857760 0.997420 +v 0.125000 2.639908 -1.188040 +v -0.125000 2.639908 -1.188040 +v 0.125000 2.342317 -1.257812 +v -0.125000 2.342317 -1.257812 +v 0.125000 2.639908 1.188040 +v -0.125000 2.639908 1.188040 +v 0.125000 0.657683 -1.257812 +v -0.125000 0.657683 -1.257812 +v 0.125000 2.342317 1.257812 +v -0.125000 2.342317 1.257812 +v 0.125000 0.657683 1.257812 +v -0.125000 0.657683 1.257812 +v 0.125000 0.360092 -1.188040 +v -0.125000 0.360092 -1.188040 +v 0.125000 0.360092 1.188040 +v -0.125000 0.360092 1.188040 +v 0.125000 0.142239 0.997420 +v -0.125000 0.142239 0.997420 +v 0.125000 0.142239 -0.997420 +v -0.125000 0.142239 -0.997420 +v 0.125000 0.062500 -0.737027 +v -0.125000 0.062500 -0.737027 +v 0.125000 0.062500 0.737027 +v -0.125000 0.062500 0.737027 +v -0.125000 2.848552 0.726781 +v -0.125000 2.848552 -0.726781 +v 0.125000 2.848552 -0.726781 +v 0.125000 2.780064 -0.958169 +v -0.125000 2.780064 -0.958169 +v 0.125000 2.848552 0.726781 +v 0.125000 2.780064 0.958169 +v -0.125000 2.780064 0.958169 +v 0.125000 2.595050 -1.120056 +v 0.125000 2.330607 -1.179983 +v -0.125000 2.595050 -1.120056 +v -0.125000 2.330607 -1.179983 +v -0.125000 2.595050 1.120056 +v 0.125000 2.595050 1.120056 +v 0.125000 2.330607 1.179983 +v -0.125000 2.330607 1.179983 +v 0.125000 0.669393 -1.179983 +v -0.125000 0.669393 -1.179983 +v -0.125000 0.669393 1.179983 +v 0.125000 0.669393 1.179983 +v 0.125000 0.404949 1.120056 +v -0.125000 0.404949 1.120056 +v 0.125000 0.404949 -1.120056 +v -0.125000 0.404949 -1.120056 +v 0.125000 0.219935 -0.958169 +v -0.125000 0.219935 -0.958169 +v -0.125000 0.219935 0.958169 +v 0.125000 0.219935 0.958169 +v 0.125000 0.151448 -0.726781 +v -0.125000 0.151448 -0.726781 +v -0.125000 0.151448 0.726781 +v 0.125000 0.151448 0.726781 +v -0.165200 2.915023 0.725503 +v -0.165200 2.915023 -0.725503 +v 0.165200 2.912970 -0.724451 +v 0.165200 2.834591 -0.980400 +v -0.165200 2.836530 -0.981824 +v 0.165200 2.912970 0.724451 +v 0.165200 2.834591 0.980400 +v -0.165200 2.836530 0.981824 +v 0.165200 2.620457 -1.167768 +v 0.165200 2.327943 -1.236349 +v -0.165200 2.622084 -1.169464 +v -0.165200 2.329146 -1.238145 +v -0.165200 2.622084 1.169464 +v 0.165200 2.620457 1.167768 +v 0.165200 2.327943 1.236349 +v -0.165200 2.329146 1.238145 +v 0.165200 0.672056 -1.236349 +v -0.165200 0.670854 -1.238145 +v -0.165200 0.670854 1.238145 +v 0.165200 0.672056 1.236349 +v 0.165200 0.379543 1.167768 +v -0.165200 0.377916 1.169464 +v 0.165200 0.379543 -1.167768 +v -0.165200 0.377916 -1.169464 +v 0.165200 0.165408 -0.980400 +v -0.165200 0.163470 -0.981824 +v -0.165200 0.163470 0.981824 +v 0.165200 0.165408 0.980400 +v 0.165200 0.087030 -0.724451 +v -0.165200 0.084977 -0.725503 +v -0.165200 0.084977 0.725503 +v 0.165200 0.087030 0.724451 +v 0.165200 2.848552 -0.726781 +v 0.165200 0.669393 -1.179983 +v 0.165200 2.330607 -1.179983 +v -0.165200 0.219935 -0.958169 +v -0.165200 0.151448 -0.726781 +v -0.165200 2.848552 0.726781 +v -0.165200 2.848552 -0.726781 +v -0.165200 2.330607 1.179983 +v -0.165200 2.595050 1.120056 +v 0.165200 0.151448 -0.726781 +v 0.165200 0.219935 -0.958169 +v 0.165200 2.330607 1.179983 +v 0.165200 0.404949 1.120056 +v 0.165200 0.219935 0.958169 +v 0.165200 2.780064 0.958169 +v 0.165200 2.595050 1.120056 +v 0.165200 2.780064 -0.958169 +v -0.165200 2.780064 -0.958169 +v 0.165200 2.848552 0.726781 +v -0.165200 2.780064 0.958169 +v 0.165200 2.595050 -1.120056 +v -0.165200 2.595050 -1.120056 +v -0.165200 2.330607 -1.179983 +v -0.165200 0.669393 -1.179983 +v -0.165200 0.669393 1.179983 +v 0.165200 0.669393 1.179983 +v -0.165200 0.404949 1.120056 +v 0.165200 0.404949 -1.120056 +v -0.165200 0.404949 -1.120056 +v -0.165200 0.219935 0.958169 +v -0.165200 0.151448 0.726781 +v 0.165200 0.151448 0.726781 +v 0.230582 0.420818 -1.368763 +v 0.080675 0.420818 -1.368763 +v 0.080675 0.577552 -1.368763 +v 0.230582 0.577552 -1.368763 +v 0.080675 0.559258 -1.358201 +v 0.230582 0.559258 -1.358201 +v 0.080675 0.559258 -1.337076 +v 0.230582 0.559258 -1.337076 +v 0.080675 0.577552 -1.326513 +v 0.230582 0.577552 -1.326513 +v 0.080675 0.595847 -1.337076 +v 0.230582 0.595847 -1.337076 +v 0.080675 0.595847 -1.358201 +v 0.230582 0.595847 -1.358201 +v 0.080675 0.402524 -1.358201 +v 0.230582 0.402524 -1.358201 +v 0.080675 0.402524 -1.337076 +v 0.230582 0.402524 -1.337076 +v 0.080675 0.420819 -1.326513 +v 0.230582 0.420819 -1.326513 +v 0.080675 0.439113 -1.337076 +v 0.230582 0.439113 -1.337076 +v 0.080675 0.439113 -1.358201 +v 0.230582 0.439113 -1.358201 +v 0.198458 0.382969 -1.310873 +v 0.198458 0.398839 -1.286747 +v 0.198458 0.597258 -1.286747 +v 0.198458 0.613127 -1.310873 +v 0.198458 0.398839 -1.408400 +v 0.198458 0.382969 -1.384274 +v 0.198458 0.613127 -1.384274 +v 0.198458 0.597258 -1.408400 +v 0.218101 0.398839 -1.316452 +v 0.218101 0.382969 -1.340579 +v 0.218101 0.613127 -1.340579 +v 0.218101 0.597258 -1.316452 +v 0.218101 0.382969 -1.354568 +v 0.218101 0.398839 -1.378695 +v 0.218101 0.597258 -1.378695 +v 0.218101 0.613127 -1.354568 +v 0.117133 0.382969 -1.306907 +v 0.117133 0.398839 -1.286747 +v 0.117133 0.597258 -1.286747 +v 0.117133 0.613127 -1.306907 +v 0.117133 0.398839 -1.408400 +v 0.117133 0.382969 -1.388240 +v 0.117133 0.613127 -1.388240 +v 0.117133 0.597258 -1.408400 +v 0.164418 0.398839 -1.288175 +v 0.164418 0.382969 -1.308335 +v 0.164418 0.613127 -1.308335 +v 0.164418 0.597257 -1.288175 +v 0.164418 0.382969 -1.386812 +v 0.164418 0.398839 -1.406973 +v 0.164418 0.597257 -1.406973 +v 0.164418 0.613127 -1.386812 +v 0.230582 2.427027 -1.368763 +v 0.080675 2.427027 -1.368763 +v 0.080675 2.583760 -1.368763 +v 0.230582 2.583760 -1.368763 +v 0.080675 2.565465 -1.358201 +v 0.230582 2.565465 -1.358201 +v 0.080675 2.565465 -1.337076 +v 0.230582 2.565465 -1.337076 +v 0.080675 2.583760 -1.326513 +v 0.230582 2.583760 -1.326513 +v 0.080675 2.602055 -1.337076 +v 0.230582 2.602055 -1.337076 +v 0.080675 2.602055 -1.358201 +v 0.230582 2.602055 -1.358201 +v 0.080675 2.408732 -1.358201 +v 0.230582 2.408732 -1.358201 +v 0.080675 2.408732 -1.337076 +v 0.230582 2.408732 -1.337076 +v 0.080675 2.427027 -1.326513 +v 0.230582 2.427027 -1.326513 +v 0.080675 2.445322 -1.337076 +v 0.230582 2.445322 -1.337076 +v 0.080675 2.445322 -1.358201 +v 0.230582 2.445322 -1.358201 +v 0.198458 2.389177 -1.310873 +v 0.198458 2.405047 -1.286747 +v 0.198458 2.603466 -1.286747 +v 0.198458 2.619336 -1.310873 +v 0.198458 2.405047 -1.408400 +v 0.198458 2.389177 -1.384273 +v 0.198458 2.619336 -1.384273 +v 0.198458 2.603466 -1.408400 +v 0.218101 2.405047 -1.316452 +v 0.218101 2.389177 -1.340578 +v 0.218101 2.619336 -1.340578 +v 0.218101 2.603466 -1.316452 +v 0.218101 2.389177 -1.354568 +v 0.218101 2.405047 -1.378694 +v 0.218101 2.603466 -1.378694 +v 0.218101 2.619336 -1.354568 +v 0.117133 2.389177 -1.306907 +v 0.117133 2.405047 -1.286747 +v 0.117133 2.603466 -1.286747 +v 0.117133 2.619336 -1.306907 +v 0.117133 2.405047 -1.408400 +v 0.117133 2.389177 -1.388240 +v 0.117133 2.619336 -1.388240 +v 0.117133 2.603466 -1.408400 +v 0.164418 2.405047 -1.288174 +v 0.164418 2.389177 -1.308335 +v 0.164418 2.619336 -1.308335 +v 0.164418 2.603466 -1.288174 +v 0.164418 2.389177 -1.386812 +v 0.164418 2.405047 -1.406972 +v 0.164418 2.603466 -1.406972 +v 0.164418 2.619336 -1.386812 +vt 0.523106 0.381508 +vt 0.545208 0.377541 +vt 0.545208 0.381508 +vt 0.546975 0.384195 +vt 0.545208 0.388441 +vt 0.801271 0.940418 +vt 0.796004 0.931517 +vt 0.801271 0.931358 +vt 0.521338 0.385754 +vt 0.519150 0.380887 +vt 0.521338 0.384195 +vt 0.767060 0.321658 +vt 0.768828 0.324345 +vt 0.767060 0.335209 +vt 0.523105 0.392408 +vt 0.545208 0.392408 +vt 0.772134 0.929272 +vt 0.794236 0.924002 +vt 0.794236 0.929272 +vt 0.794236 0.942505 +vt 0.765099 0.940418 +vt 0.770366 0.931517 +vt 0.770366 0.940259 +vt 0.794236 0.947774 +vt 0.772134 0.942505 +vt 0.811367 0.391021 +vt 0.809329 0.387491 +vt 0.813405 0.387491 +vt 0.793185 0.331070 +vt 0.776487 0.333423 +vt 0.776487 0.331070 +vt 0.930721 0.719067 +vt 0.914023 0.721420 +vt 0.914023 0.719067 +vt 0.793185 0.333423 +vt 0.776487 0.335777 +vt 0.930721 0.716713 +vt 0.914023 0.716713 +vt 0.793185 0.321658 +vt 0.776487 0.324011 +vt 0.776487 0.321658 +vt 0.930721 0.723773 +vt 0.914023 0.726126 +vt 0.914023 0.723773 +vt 0.930721 0.728479 +vt 0.914023 0.730832 +vt 0.914023 0.728479 +vt 0.793185 0.324011 +vt 0.776487 0.326364 +vt 0.834837 0.386315 +vt 0.836875 0.387491 +vt 0.836875 0.389844 +vt 0.930721 0.726126 +vt 0.793185 0.326364 +vt 0.776487 0.328717 +vt 0.930721 0.721420 +vt 0.793185 0.328717 +vt 0.547515 0.390166 +vt 0.547515 0.386200 +vt 0.520798 0.390166 +vt 0.523105 0.388441 +vt 0.547515 0.379783 +vt 0.520798 0.379783 +vt 0.520798 0.383750 +vt 0.797093 0.947706 +vt 0.797093 0.942437 +vt 0.769277 0.947706 +vt 0.772134 0.947774 +vt 0.797093 0.924070 +vt 0.769277 0.924070 +vt 0.769277 0.929339 +vt 0.546975 0.385754 +vt 0.549163 0.380886 +vt 0.549163 0.389063 +vt 0.209594 0.970120 +vt 0.205627 0.948018 +vt 0.209594 0.948018 +vt 0.212281 0.946250 +vt 0.216527 0.948018 +vt 0.666628 0.910555 +vt 0.657727 0.915822 +vt 0.657568 0.910555 +vt 0.213840 0.971888 +vt 0.208972 0.974076 +vt 0.212281 0.971888 +vt 0.580692 0.377541 +vt 0.582460 0.380228 +vt 0.580692 0.391092 +vt 0.220494 0.970120 +vt 0.220494 0.948018 +vt 0.655481 0.939692 +vt 0.650212 0.917590 +vt 0.655482 0.917590 +vt 0.668715 0.917590 +vt 0.666628 0.946727 +vt 0.657727 0.941460 +vt 0.666469 0.941460 +vt 0.673984 0.939692 +vt 0.673984 0.917590 +vt 0.821064 0.387491 +vt 0.823102 0.386315 +vt 0.825140 0.387491 +vt 0.679555 0.971085 +vt 0.677202 0.954387 +vt 0.679555 0.954387 +vt 0.738611 0.969943 +vt 0.721913 0.972296 +vt 0.721913 0.969943 +vt 0.677202 0.971085 +vt 0.674849 0.954387 +vt 0.738611 0.967590 +vt 0.721913 0.967590 +vt 0.688968 0.971085 +vt 0.686615 0.954387 +vt 0.688968 0.954387 +vt 0.738611 0.974649 +vt 0.721913 0.977002 +vt 0.721913 0.974649 +vt 0.738611 0.979355 +vt 0.721913 0.981709 +vt 0.721913 0.979355 +vt 0.686615 0.971085 +vt 0.684261 0.954387 +vt 0.562085 0.875993 +vt 0.564123 0.877169 +vt 0.564123 0.879522 +vt 0.738611 0.977002 +vt 0.684261 0.971085 +vt 0.681908 0.954387 +vt 0.738611 0.972296 +vt 0.681908 0.971085 +vt 0.218252 0.945711 +vt 0.214285 0.945711 +vt 0.218252 0.972427 +vt 0.216527 0.970120 +vt 0.207869 0.945711 +vt 0.207869 0.972427 +vt 0.211835 0.972427 +vt 0.673916 0.914733 +vt 0.668647 0.914733 +vt 0.673916 0.942549 +vt 0.668715 0.939692 +vt 0.650280 0.914733 +vt 0.650280 0.942549 +vt 0.655549 0.942549 +vt 0.213840 0.946250 +vt 0.208972 0.944062 +vt 0.217149 0.944062 +vt 0.523106 0.377541 +vt 0.796004 0.940259 +vt 0.519150 0.389063 +vt 0.768828 0.332521 +vt 0.744958 0.335209 +vt 0.744958 0.321658 +vt 0.743190 0.332521 +vt 0.743190 0.324345 +vt 0.772134 0.924002 +vt 0.765099 0.931358 +vt 0.813405 0.389844 +vt 0.809329 0.389844 +vt 0.811367 0.386315 +vt 0.793185 0.335777 +vt 0.930721 0.730832 +vt 0.834837 0.391021 +vt 0.832799 0.389844 +vt 0.832799 0.387491 +vt 0.520798 0.386200 +vt 0.547515 0.383750 +vt 0.769277 0.942437 +vt 0.797093 0.929339 +vt 0.205627 0.970120 +vt 0.666469 0.915822 +vt 0.217148 0.974075 +vt 0.582460 0.388405 +vt 0.558590 0.391092 +vt 0.558590 0.377541 +vt 0.556823 0.388405 +vt 0.556823 0.380228 +vt 0.650212 0.939692 +vt 0.657568 0.946727 +vt 0.825140 0.389844 +vt 0.823102 0.391021 +vt 0.821064 0.389844 +vt 0.674849 0.971085 +vt 0.738611 0.981709 +vt 0.562085 0.880699 +vt 0.560047 0.879522 +vt 0.560047 0.877169 +vt 0.214285 0.972427 +vt 0.211836 0.945711 +vt 0.668647 0.942549 +vt 0.655549 0.914733 +vt 0.401359 0.003830 +vt 0.408321 0.088818 +vt 0.401361 0.338004 +vt 0.393699 0.365850 +vt 0.365852 0.031678 +vt 0.393699 0.031678 +vt 0.280864 0.038640 +vt 0.031677 0.031680 +vt 0.031677 0.365850 +vt 0.003830 0.031680 +vt 0.031677 0.003832 +vt 0.365852 0.003830 +vt 0.365852 0.393698 +vt 0.365852 0.365850 +vt 0.841888 0.485825 +vt 0.846366 0.647738 +vt 0.841888 0.647738 +vt 0.769577 0.647738 +vt 0.765099 0.485825 +vt 0.769577 0.485825 +vt 0.697356 0.474001 +vt 0.708945 0.447031 +vt 0.702588 0.475501 +vt 0.743270 0.076473 +vt 0.748362 0.239849 +vt 0.743190 0.241352 +vt 0.116663 0.358888 +vt 0.814040 0.485825 +vt 0.809562 0.458945 +vt 0.814040 0.458945 +vt 0.797425 0.485825 +vt 0.801903 0.647738 +vt 0.797425 0.647738 +vt 0.628662 0.637787 +vt 0.640527 0.664610 +vt 0.635711 0.667109 +vt 0.754815 0.268328 +vt 0.750109 0.270703 +vt 0.841888 0.458945 +vt 0.846366 0.485825 +vt 0.797425 0.458945 +vt 0.801902 0.485825 +vt 0.702448 0.637376 +vt 0.697276 0.638880 +vt 0.560135 0.473269 +vt 0.571963 0.446453 +vt 0.565468 0.474876 +vt 0.728569 0.253018 +vt 0.735531 0.003830 +vt 0.735531 0.338004 +vt 0.814040 0.647738 +vt 0.809562 0.485825 +vt 0.765099 0.458945 +vt 0.769577 0.458945 +vt 0.586568 0.692218 +vt 0.571913 0.664610 +vt 0.590826 0.688728 +vt 0.769577 0.702002 +vt 0.765099 0.674618 +vt 0.769577 0.674618 +vt 0.841888 0.674618 +vt 0.814040 0.702002 +vt 0.814040 0.674618 +vt 0.841888 0.702002 +vt 0.814040 0.732206 +vt 0.814040 0.431561 +vt 0.841888 0.401357 +vt 0.841888 0.431561 +vt 0.797425 0.674618 +vt 0.797425 0.702002 +vt 0.878810 0.196531 +vt 0.850962 0.381573 +vt 0.850963 0.196531 +vt 0.769577 0.732206 +vt 0.797425 0.732206 +vt 0.797425 0.431561 +vt 0.769577 0.431561 +vt 0.797425 0.401357 +vt 0.769577 0.401357 +vt 0.850962 0.188872 +vt 0.878810 0.003830 +vt 0.878810 0.188872 +vt 0.769214 0.021788 +vt 0.754859 0.049503 +vt 0.750154 0.047134 +vt 0.801903 0.702002 +vt 0.769193 0.296049 +vt 0.773358 0.292689 +vt 0.801903 0.458945 +vt 0.586590 0.418847 +vt 0.567148 0.443960 +vt 0.765099 0.431561 +vt 0.797900 0.313998 +vt 0.801475 0.310034 +vt 0.801903 0.431561 +vt 0.615740 0.401357 +vt 0.590849 0.422333 +vt 0.765099 0.401357 +vt 0.797897 0.003830 +vt 0.773379 0.025144 +vt 0.801903 0.732206 +vt 0.615746 0.709695 +vt 0.619388 0.705598 +vt 0.765099 0.702002 +vt 0.979972 0.974174 +vt 0.974896 0.788118 +vt 0.979972 0.786518 +vt 0.883288 0.381573 +vt 0.878810 0.381573 +vt 0.572625 0.636718 +vt 0.578156 0.662994 +vt 0.634082 0.474876 +vt 0.641239 0.636718 +vt 0.633938 0.636178 +vt 0.955972 0.972704 +vt 0.949494 0.787822 +vt 0.955973 0.787985 +vt 0.565324 0.636178 +vt 0.710061 0.475048 +vt 0.931894 0.505372 +vt 0.925415 0.320490 +vt 0.931894 0.320653 +vt 0.748502 0.077974 +vt 0.755924 0.240301 +vt 0.646770 0.662995 +vt 0.989892 0.128323 +vt 0.996170 0.313071 +vt 0.989892 0.312775 +vt 0.761304 0.266651 +vt 0.710010 0.637828 +vt 0.755560 0.707562 +vt 0.731650 0.685815 +vt 0.757439 0.701378 +vt 0.572689 0.474336 +vt 0.659463 0.422333 +vt 0.689616 0.411717 +vt 0.663366 0.426670 +vt 0.594728 0.684386 +vt 0.646819 0.448064 +vt 0.640577 0.446453 +vt 0.974896 0.972573 +vt 0.968618 0.787822 +vt 0.641303 0.474336 +vt 0.755975 0.077521 +vt 0.621002 0.699326 +vt 0.708900 0.665856 +vt 0.715389 0.664178 +vt 0.801472 0.007790 +vt 0.777586 0.029541 +vt 0.659440 0.688728 +vt 0.689617 0.699326 +vt 0.688002 0.705598 +vt 0.621002 0.411717 +vt 0.594752 0.426670 +vt 0.755558 0.405318 +vt 0.731671 0.427068 +vt 0.727464 0.422672 +vt 0.777564 0.288288 +vt 0.803354 0.303850 +vt 0.663342 0.684386 +vt 0.578204 0.448064 +vt 0.715432 0.448705 +vt 0.727443 0.690216 +vt 0.761346 0.051177 +vt 0.560047 0.637787 +vt 0.628749 0.473269 +vt 0.765099 0.647738 +vt 0.846366 0.674618 +vt 0.567097 0.667109 +vt 0.801903 0.674618 +vt 0.809562 0.647738 +vt 0.704195 0.668230 +vt 0.846366 0.431561 +vt 0.684360 0.709695 +vt 0.809562 0.401357 +vt 0.814040 0.401357 +vt 0.751982 0.401357 +vt 0.723300 0.419316 +vt 0.846366 0.458945 +vt 0.655182 0.692219 +vt 0.809562 0.431561 +vt 0.704240 0.444662 +vt 0.809562 0.674618 +vt 0.723279 0.693576 +vt 0.846366 0.702002 +vt 0.655204 0.418847 +vt 0.635762 0.443960 +vt 0.846366 0.732206 +vt 0.841888 0.732206 +vt 0.684355 0.401357 +vt 0.809562 0.702002 +vt 0.751986 0.711526 +vt 0.846484 0.003830 +vt 0.850963 0.003830 +vt 0.984815 0.126722 +vt 0.984816 0.314376 +vt 0.883288 0.188872 +vt 0.936879 0.506839 +vt 0.936879 0.319186 +vt 0.846484 0.196531 +vt 0.960957 0.974171 +vt 0.960957 0.786518 +vt 0.662272 0.030807 +vt 0.474619 0.030807 +vt 0.441471 0.303256 +vt 0.474619 0.311027 +vt 0.417204 0.282023 +vt 0.441470 0.038579 +vt 0.417203 0.059813 +vt 0.408322 0.253018 +vt 0.338874 0.292590 +vt 0.338874 0.104938 +vt 0.066426 0.071790 +vt 0.058654 0.104939 +vt 0.087659 0.047523 +vt 0.331102 0.071789 +vt 0.309869 0.047522 +vt 0.116664 0.038641 +vt 0.003830 0.365850 +vt 0.031677 0.393698 +vt 0.058654 0.292591 +vt 0.331102 0.325739 +vt 0.309869 0.350006 +vt 0.066426 0.325740 +vt 0.087659 0.350006 +vt 0.280864 0.358888 +vt 0.662272 0.311027 +vt 0.695421 0.038579 +vt 0.719687 0.059812 +vt 0.695421 0.303255 +vt 0.719687 0.282022 +vt 0.728569 0.088816 +vt 0.801903 0.401357 +vt 0.619384 0.405449 +vt 0.765099 0.732206 +vt 0.883288 0.196531 +vt 0.949494 0.972866 +vt 0.925415 0.505535 +vt 0.996170 0.128027 +vt 0.687998 0.405449 +vt 0.968617 0.972870 +vt 0.803354 0.013970 +vt 0.757439 0.411498 +vt 0.846366 0.401357 +vt 0.809562 0.732206 +vt 0.846484 0.188872 +vt 0.883288 0.003830 +vt 0.846484 0.381573 +vn 0.8341 0.0000 0.5516 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8341 0.0000 -0.5516 +vn 0.0302 0.0000 0.9995 +vn 0.0302 0.0000 -0.9995 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.6392 -0.6425 -0.4226 +vn 0.6392 0.6425 -0.4226 +vn 0.6392 -0.6425 0.4226 +vn 0.6391 0.6425 0.4226 +vn 0.0187 -0.7856 -0.6184 +vn 0.0187 0.7856 -0.6184 +vn 0.0187 -0.7856 0.6184 +vn 0.0187 0.7856 0.6184 +vn 0.6392 0.6425 0.4227 +vn 0.6391 -0.6425 0.4226 +vn 0.6392 0.6425 0.4226 +vn 0.6391 -0.6425 0.4227 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.9897 0.1434 +vn 0.0000 -0.9897 -0.1434 +vn 0.0000 0.9897 -0.1434 +vn 0.0000 0.9897 0.1434 +vn -0.5135 0.8467 -0.1398 +vn -0.5473 0.7055 -0.4502 +vn -0.5093 0.8532 -0.1126 +vn -0.5135 -0.8467 0.1398 +vn -0.5093 -0.8532 -0.1126 +vn -0.5135 -0.8467 -0.1398 +vn 0.0000 -0.9589 0.2838 +vn 0.0000 -0.8420 0.5395 +vn 0.5469 0.8259 -0.1371 +vn 0.5809 0.6864 -0.4376 +vn 0.5811 0.6808 -0.4458 +vn -0.5473 -0.7055 -0.4502 +vn -0.5475 -0.7002 -0.4582 +vn 0.0000 0.8420 0.5395 +vn -0.5093 0.8532 0.1126 +vn -0.5135 0.8467 0.1398 +vn 0.5469 -0.8259 -0.1371 +vn 0.5809 -0.6864 -0.4376 +vn 0.5424 -0.8330 -0.1090 +vn 0.0000 0.9589 0.2838 +vn 0.5589 -0.3954 0.7289 +vn 0.5809 -0.6864 0.4376 +vn 0.5529 -0.3591 0.7519 +vn 0.0000 0.4536 -0.8912 +vn 0.0000 0.6585 -0.7526 +vn 0.0000 0.8420 -0.5395 +vn 0.0000 -0.8420 -0.5395 +vn 0.0000 -0.4536 -0.8912 +vn 0.0000 -0.1112 -0.9938 +vn 0.0000 -0.4536 0.8912 +vn 0.0000 -0.1112 0.9938 +vn 0.0000 0.1112 -0.9938 +vn 0.0000 0.4536 0.8912 +vn 0.0000 0.1112 0.9938 +vn -0.5253 -0.4049 0.7484 +vn -0.5473 -0.7055 0.4502 +vn -0.5475 -0.7002 0.4582 +vn -0.5253 -0.4049 -0.7484 +vn -0.5198 -0.3697 -0.7702 +vn 0.0000 0.6585 0.7526 +vn 0.5589 -0.3954 -0.7289 +vn 0.5811 -0.6808 -0.4458 +vn -0.4669 -0.1159 -0.8767 +vn -0.4604 -0.0861 -0.8835 +vn 0.4994 -0.1145 -0.8588 +vn 0.5529 -0.3591 -0.7519 +vn -0.4669 -0.1159 0.8767 +vn -0.5198 -0.3697 0.7702 +vn 0.4994 -0.1145 0.8588 +vn 0.4924 -0.0833 0.8664 +vn 0.4924 0.0833 0.8664 +vn 0.4994 0.1145 0.8588 +vn 0.5424 -0.8330 0.1090 +vn 0.5469 -0.8259 0.1371 +vn 0.5469 0.8259 0.1371 +vn 0.5424 0.8330 -0.1090 +vn 0.0000 -0.9589 -0.2838 +vn 0.5811 -0.6808 0.4458 +vn 0.5809 0.6864 0.4376 +vn 0.5424 0.8330 0.1090 +vn 0.0000 0.9589 -0.2838 +vn -0.5093 -0.8532 0.1126 +vn -0.5473 0.7055 0.4502 +vn -0.5475 0.7002 0.4582 +vn 0.4994 0.1145 -0.8588 +vn 0.5529 0.3591 -0.7519 +vn 0.4924 0.0833 -0.8664 +vn -0.4669 0.1159 -0.8767 +vn -0.5198 0.3697 -0.7702 +vn -0.5253 0.4049 -0.7484 +vn 0.0000 -0.6585 0.7526 +vn 0.5589 0.3954 -0.7289 +vn -0.5475 0.7002 -0.4582 +vn 0.0000 -0.6585 -0.7526 +vn -0.5253 0.4049 0.7484 +vn -0.5198 0.3697 0.7702 +vn 0.5589 0.3954 0.7289 +vn 0.5811 0.6808 0.4458 +vn 0.5529 0.3591 0.7519 +vn -0.4669 0.1159 0.8767 +vn -0.4604 0.0861 0.8835 +vn 0.4924 -0.0833 -0.8664 +vn -0.4605 0.0861 -0.8835 +vn -0.4605 -0.0861 0.8835 +s off +f 812/1297/355 802/1298/355 809/1299/355 +f 809/1299/356 810/1300/356 814/1301/356 +f 822/1302/357 826/1303/357 817/1304/357 +f 816/1305/358 804/1306/358 811/1307/358 +f 805/1308/359 806/1309/359 802/1310/359 +f 808/1311/360 814/1301/360 805/1312/360 +f 828/1313/361 818/1314/361 825/1315/361 +f 825/1315/356 826/1303/356 830/1316/356 +f 823/1317/358 827/1318/358 832/1319/358 +f 821/1320/362 831/1321/362 830/1316/362 +f 777/1322/356 798/1323/356 794/1324/356 +f 780/1325/363 781/1326/363 779/1327/363 +f 796/1328/364 797/1329/364 795/1330/364 +f 782/1331/357 783/1332/357 781/1326/357 +f 794/1333/365 795/1330/365 793/1334/365 +f 784/1335/365 785/1336/365 783/1337/365 +f 800/1338/366 778/1339/366 799/1340/366 +f 792/1341/357 793/1342/357 791/1343/357 +f 786/1344/364 787/1345/364 785/1336/364 +f 788/1346/356 786/1347/356 784/1348/356 +f 777/1349/363 791/1343/363 778/1339/363 +f 788/1350/358 789/1351/358 787/1345/358 +f 798/1352/358 799/1340/358 797/1329/358 +f 790/1353/366 779/1327/366 789/1351/366 +f 806/1354/367 814/1301/367 813/1355/367 +f 807/1356/368 815/1357/368 808/1311/368 +f 801/1358/369 809/1299/369 802/1298/369 +f 804/1359/370 812/1297/370 811/1360/370 +f 822/1361/371 830/1316/371 829/1362/371 +f 823/1363/372 831/1321/372 824/1364/372 +f 817/1365/373 825/1315/373 818/1314/373 +f 820/1366/374 828/1313/374 827/1367/374 +f 813/1368/357 801/1369/357 806/1370/357 +f 868/1371/355 858/1372/355 865/1373/355 +f 865/1373/356 866/1374/356 870/1375/356 +f 878/1376/357 882/1377/357 873/1378/357 +f 872/1379/358 860/1380/358 867/1381/358 +f 861/1382/359 862/1383/359 858/1384/359 +f 864/1385/360 870/1375/360 861/1386/360 +f 884/1387/361 874/1388/361 881/1389/361 +f 881/1389/356 882/1377/356 886/1390/356 +f 879/1391/358 883/1392/358 888/1393/358 +f 880/1394/362 886/1390/362 877/1395/362 +f 854/1396/356 852/1397/356 850/1398/356 +f 836/1399/363 837/1400/363 835/1401/363 +f 852/1402/364 853/1403/364 851/1404/364 +f 838/1405/357 839/1406/357 837/1400/357 +f 850/1407/365 851/1404/365 849/1408/365 +f 840/1409/365 841/1410/365 839/1411/365 +f 856/1412/366 834/1413/366 855/1414/366 +f 848/1415/357 849/1416/357 847/1417/357 +f 842/1418/364 843/1419/364 841/1410/364 +f 844/1420/356 842/1421/356 840/1422/356 +f 833/1423/363 847/1417/363 834/1413/363 +f 844/1424/358 845/1425/358 843/1419/358 +f 854/1426/358 855/1414/358 853/1403/358 +f 846/1427/366 835/1401/366 845/1425/366 +f 862/1428/367 870/1375/367 869/1429/367 +f 863/1430/368 871/1431/368 864/1385/368 +f 857/1432/369 865/1373/369 858/1372/369 +f 860/1433/375 868/1371/375 867/1434/375 +f 878/1435/371 886/1390/371 885/1436/371 +f 879/1437/372 887/1438/372 880/1394/372 +f 873/1439/373 881/1389/373 874/1388/373 +f 876/1440/374 884/1387/374 883/1441/374 +f 869/1442/357 857/1443/357 862/1444/357 +f 812/1297/355 803/1445/355 802/1298/355 +f 810/1300/356 813/1368/356 814/1301/356 +f 814/1301/356 815/1357/356 812/1297/356 +f 815/1357/356 816/1305/356 812/1297/356 +f 816/1305/356 811/1307/356 812/1297/356 +f 812/1297/356 809/1299/356 814/1301/356 +f 822/1302/357 829/1446/357 826/1303/357 +f 816/1305/358 807/1447/358 804/1306/358 +f 806/1309/359 801/1448/359 802/1310/359 +f 802/1310/359 803/1449/359 808/1450/359 +f 803/1449/359 804/1451/359 808/1450/359 +f 804/1451/359 807/1452/359 808/1450/359 +f 808/1450/359 805/1308/359 802/1310/359 +f 808/1311/360 815/1357/360 814/1301/360 +f 828/1313/361 819/1453/361 818/1314/361 +f 826/1303/356 829/1446/356 830/1316/356 +f 830/1316/356 831/1321/356 828/1313/356 +f 831/1321/356 832/1319/356 828/1313/356 +f 832/1319/356 827/1318/356 828/1313/356 +f 828/1313/356 825/1315/356 830/1316/356 +f 823/1317/358 820/1454/358 827/1318/358 +f 821/1320/362 824/1364/362 831/1321/362 +f 794/1324/356 792/1455/356 777/1322/356 +f 777/1322/356 800/1456/356 798/1323/356 +f 798/1323/356 796/1457/356 794/1324/356 +f 780/1325/363 782/1331/363 781/1326/363 +f 796/1328/364 798/1352/364 797/1329/364 +f 782/1331/357 784/1458/357 783/1332/357 +f 794/1333/365 796/1328/365 795/1330/365 +f 784/1335/365 786/1344/365 785/1336/365 +f 800/1338/366 777/1349/366 778/1339/366 +f 792/1341/357 794/1459/357 793/1342/357 +f 786/1344/364 788/1350/364 787/1345/364 +f 784/1348/356 782/1460/356 788/1346/356 +f 782/1460/356 780/1461/356 788/1346/356 +f 780/1461/356 790/1462/356 788/1346/356 +f 777/1349/363 792/1341/363 791/1343/363 +f 788/1350/358 790/1353/358 789/1351/358 +f 798/1352/358 800/1338/358 799/1340/358 +f 790/1353/366 780/1325/366 779/1327/366 +f 806/1354/367 805/1312/367 814/1301/367 +f 807/1356/368 816/1463/368 815/1357/368 +f 801/1358/376 810/1464/376 809/1299/376 +f 804/1359/377 803/1445/377 812/1297/377 +f 822/1361/371 821/1320/371 830/1316/371 +f 823/1363/372 832/1465/372 831/1321/372 +f 817/1365/373 826/1466/373 825/1315/373 +f 820/1366/374 819/1453/374 828/1313/374 +f 813/1368/357 810/1300/357 801/1369/357 +f 868/1371/355 859/1467/355 858/1372/355 +f 866/1374/356 869/1442/356 870/1375/356 +f 870/1375/356 871/1431/356 868/1371/356 +f 871/1431/356 872/1379/356 868/1371/356 +f 872/1379/356 867/1381/356 868/1371/356 +f 868/1371/356 865/1373/356 870/1375/356 +f 878/1376/357 885/1468/357 882/1377/357 +f 872/1379/358 863/1469/358 860/1380/358 +f 862/1383/359 857/1470/359 858/1384/359 +f 858/1384/359 859/1471/359 864/1472/359 +f 859/1471/359 860/1473/359 864/1472/359 +f 860/1473/359 863/1474/359 864/1472/359 +f 864/1472/359 861/1382/359 858/1384/359 +f 864/1385/360 871/1431/360 870/1375/360 +f 884/1387/361 875/1475/361 874/1388/361 +f 882/1377/356 885/1468/356 886/1390/356 +f 886/1390/356 887/1438/356 884/1387/356 +f 887/1438/356 888/1393/356 884/1387/356 +f 888/1393/356 883/1392/356 884/1387/356 +f 884/1387/356 881/1389/356 886/1390/356 +f 879/1391/358 876/1476/358 883/1392/358 +f 880/1394/362 887/1438/362 886/1390/362 +f 850/1398/356 848/1477/356 854/1396/356 +f 848/1477/356 833/1478/356 854/1396/356 +f 833/1478/356 856/1479/356 854/1396/356 +f 836/1399/363 838/1405/363 837/1400/363 +f 852/1402/364 854/1426/364 853/1403/364 +f 838/1405/357 840/1480/357 839/1406/357 +f 850/1407/365 852/1402/365 851/1404/365 +f 840/1409/365 842/1418/365 841/1410/365 +f 856/1412/366 833/1423/366 834/1413/366 +f 848/1415/357 850/1481/357 849/1416/357 +f 842/1418/364 844/1424/364 843/1419/364 +f 840/1422/356 838/1482/356 844/1420/356 +f 838/1482/356 836/1483/356 844/1420/356 +f 836/1483/356 846/1484/356 844/1420/356 +f 833/1423/363 848/1415/363 847/1417/363 +f 844/1424/358 846/1427/358 845/1425/358 +f 854/1426/358 856/1412/358 855/1414/358 +f 846/1427/366 836/1399/366 835/1401/366 +f 862/1428/367 861/1386/367 870/1375/367 +f 863/1430/368 872/1485/368 871/1431/368 +f 857/1432/378 866/1486/378 865/1373/378 +f 860/1433/375 859/1467/375 868/1371/375 +f 878/1435/371 877/1395/371 886/1390/371 +f 879/1437/372 888/1487/372 887/1438/372 +f 873/1439/373 882/1488/373 881/1389/373 +f 876/1440/374 875/1475/374 884/1387/374 +f 869/1442/357 866/1374/357 857/1443/357 +s 1 +f 641/1489/359 680/1490/359 643/1491/359 +f 644/1492/379 647/1493/379 643/1494/379 +f 647/1493/356 677/1495/356 645/1496/356 +f 646/1497/380 641/1498/380 645/1496/380 +f 647/1493/357 641/1499/357 643/1500/357 +f 644/1501/358 646/1497/358 648/1502/358 +f 683/1503/381 763/1504/382 686/1505/382 +f 712/1506/383 754/1507/384 709/1508/384 +f 654/1509/385 717/1510/386 714/1511/387 +f 680/1512/388 742/1513/389 678/1514/390 +f 649/1515/356 648/1502/356 646/1497/356 +f 682/1516/381 762/1517/391 685/1518/392 +f 710/1519/384 775/1520/383 711/1521/383 +f 653/1522/393 716/1523/394 651/1524/395 +f 678/1514/390 738/1525/396 676/1526/397 +f 684/1527/392 745/1528/381 683/1503/381 +f 706/1529/398 749/1530/384 710/1519/384 +f 654/1509/385 713/1531/399 650/1532/400 +f 677/1533/401 737/1534/402 741/1535/403 +f 654/1536/359 642/1537/359 644/1538/359 +f 681/1539/382 751/1540/381 682/1516/381 +f 709/1508/384 755/1541/404 705/1542/398 +f 671/1543/405 740/1544/406 733/1545/407 +f 701/1546/408 758/1547/409 708/1548/410 +f 687/1549/411 693/1550/412 688/1551/411 +f 694/1552/412 696/1553/413 693/1550/412 +f 686/1505/382 688/1551/411 681/1539/382 +f 683/1503/381 681/1539/382 682/1516/381 +f 691/1554/414 690/1555/415 689/1556/414 +f 712/1506/383 710/1519/384 711/1521/383 +f 682/1516/381 684/1527/392 683/1503/381 +f 685/1518/392 689/1556/414 684/1527/392 +f 701/1546/408 707/1557/410 702/1558/408 +f 708/1548/410 711/1521/383 707/1557/410 +f 706/1529/398 709/1508/384 705/1542/398 +f 695/1559/413 699/1560/416 696/1561/413 +f 700/1562/416 702/1558/408 699/1563/416 +f 704/1564/417 705/1542/398 703/1565/417 +f 698/1566/418 703/1565/417 697/1567/418 +f 697/1568/418 692/1569/415 698/1570/418 +f 672/1571/419 739/1572/420 674/1573/421 +f 707/1557/410 771/1574/408 702/1558/408 +f 670/1575/422 738/1525/396 736/1576/423 +f 704/1564/417 748/1577/424 706/1529/398 +f 669/1578/425 737/1534/402 675/1579/426 +f 705/1542/398 772/1580/417 703/1565/417 +f 664/1581/427 736/1576/423 730/1582/428 +f 698/1566/418 773/1583/417 704/1564/417 +f 663/1584/429 735/1585/430 669/1578/425 +f 703/1565/417 746/1586/418 697/1567/418 +f 668/1587/431 734/1588/432 672/1571/419 +f 702/1558/408 769/1589/416 699/1563/416 +f 667/1590/433 733/1545/407 732/1591/434 +f 700/1562/416 757/1592/408 701/1546/408 +f 667/1593/433 727/1594/435 665/1595/436 +f 695/1559/413 770/1596/416 700/1597/416 +f 740/1544/356 776/1598/356 758/1599/356 +f 718/1600/356 745/1601/356 715/1602/356 +f 728/1603/359 769/1604/359 731/1605/359 +f 741/1535/356 776/1598/356 744/1606/356 +f 717/1510/359 751/1607/359 714/1511/359 +f 730/1608/359 767/1609/359 724/1610/359 +f 743/1611/359 749/1612/359 742/1513/359 +f 716/1523/356 745/1601/356 761/1613/356 +f 722/1614/356 746/1615/356 729/1616/356 +f 738/1525/359 749/1612/359 748/1617/359 +f 714/1511/359 750/1618/359 713/1531/359 +f 728/1619/359 753/1620/359 752/1621/359 +f 737/1534/356 754/1622/356 741/1535/356 +f 726/1623/356 756/1624/356 760/1625/356 +f 733/1545/356 758/1599/356 757/1626/356 +f 726/1623/356 759/1627/356 719/1628/356 +f 732/1629/356 756/1630/356 727/1594/356 +f 719/1628/356 763/1631/356 718/1600/356 +f 739/1572/359 775/1632/359 743/1611/359 +f 733/1545/356 770/1633/356 732/1591/356 +f 720/1634/359 750/1618/359 764/1635/359 +f 731/1636/359 771/1637/359 734/1588/359 +f 721/1638/356 747/1639/356 722/1640/356 +f 735/1585/356 746/1641/356 772/1642/356 +f 724/1643/359 766/1644/359 723/1645/359 +f 730/1582/359 773/1646/359 768/1647/359 +f 721/1638/356 761/1613/356 765/1648/356 +f 735/1585/356 755/1649/356 737/1534/356 +f 723/1645/359 762/1650/359 717/1510/359 +f 736/1576/359 748/1617/359 773/1646/359 +f 725/1651/359 764/1635/359 753/1620/359 +f 734/1588/359 774/1652/359 739/1572/359 +f 677/1533/401 744/1606/437 679/1653/438 +f 649/1654/439 715/1602/440 653/1522/393 +f 708/1548/410 776/1655/383 712/1506/383 +f 686/1505/382 759/1656/441 687/1549/411 +f 679/1653/438 740/1544/406 673/1657/442 +f 649/1654/439 719/1628/443 718/1600/444 +f 711/1521/383 774/1658/445 707/1557/410 +f 688/1551/411 750/1659/382 681/1539/382 +f 680/1512/388 739/1572/420 743/1611/446 +f 650/1532/400 720/1634/447 656/1660/448 +f 690/1555/415 765/1661/414 689/1556/414 +f 659/1662/449 721/1638/450 722/1640/451 +f 691/1554/414 767/1663/415 692/1664/415 +f 660/1665/452 723/1645/453 658/1666/454 +f 689/1556/414 761/1667/455 684/1527/392 +f 657/1668/456 716/1523/394 721/1638/450 +f 685/1518/392 766/1669/414 691/1554/414 +f 658/1666/454 717/1510/386 652/1670/457 +f 693/1550/412 764/1671/458 688/1551/411 +f 662/1672/459 720/1634/447 725/1651/460 +f 687/1549/411 760/1673/412 694/1552/412 +f 661/1674/461 719/1628/443 655/1675/462 +f 694/1552/412 756/1676/413 695/1677/413 +f 665/1678/436 726/1623/463 661/1674/461 +f 696/1553/413 753/1679/412 693/1550/412 +f 666/1680/464 725/1651/460 728/1619/465 +f 697/1568/418 747/1681/415 690/1682/415 +f 659/1683/449 729/1616/466 663/1684/429 +f 692/1569/415 768/1685/418 698/1570/418 +f 664/1686/427 724/1610/467 660/1687/452 +f 699/1560/416 752/1688/413 696/1561/413 +f 666/1689/464 731/1605/468 668/1690/431 +f 641/1489/359 642/1537/359 666/1691/359 +f 641/1489/359 666/1691/359 668/1692/359 +f 670/1693/359 664/1694/359 643/1491/359 +f 676/1695/359 670/1693/359 643/1491/359 +f 641/1489/359 668/1692/359 672/1696/359 +f 641/1489/359 672/1696/359 674/1697/359 +f 678/1698/359 676/1695/359 643/1491/359 +f 641/1489/359 674/1697/359 680/1490/359 +f 680/1490/359 678/1698/359 643/1491/359 +f 644/1492/379 648/1502/379 647/1493/379 +f 647/1493/356 648/1502/356 659/1699/356 +f 647/1493/356 659/1699/356 663/1700/356 +f 671/1701/356 667/1702/356 645/1496/356 +f 673/1703/356 671/1701/356 645/1496/356 +f 647/1493/356 663/1700/356 669/1704/356 +f 647/1493/356 669/1704/356 675/1705/356 +f 679/1706/356 673/1703/356 645/1496/356 +f 647/1493/356 675/1705/356 677/1495/356 +f 677/1495/356 679/1706/356 645/1496/356 +f 646/1497/380 642/1707/380 641/1498/380 +f 647/1493/357 645/1496/357 641/1499/357 +f 644/1501/358 642/1708/358 646/1497/358 +f 683/1503/381 745/1528/381 763/1504/382 +f 712/1506/383 776/1655/383 754/1507/384 +f 654/1509/385 652/1670/457 717/1510/386 +f 680/1512/388 743/1611/446 742/1513/389 +f 646/1497/356 645/1496/356 667/1702/356 +f 646/1497/356 667/1702/356 665/1709/356 +f 657/1710/356 659/1699/356 648/1502/356 +f 651/1711/356 657/1710/356 648/1502/356 +f 646/1497/356 665/1709/356 661/1712/356 +f 646/1497/356 661/1712/356 655/1713/356 +f 653/1714/356 651/1711/356 648/1502/356 +f 646/1497/356 655/1713/356 649/1515/356 +f 649/1515/356 653/1714/356 648/1502/356 +f 682/1516/381 751/1540/381 762/1517/391 +f 710/1519/384 749/1530/384 775/1520/383 +f 653/1522/393 715/1602/440 716/1523/394 +f 678/1514/390 742/1513/389 738/1525/396 +f 684/1527/392 761/1667/391 745/1528/381 +f 706/1529/398 748/1577/404 749/1530/384 +f 654/1509/385 714/1511/387 713/1531/399 +f 677/1533/401 675/1579/426 737/1534/402 +f 644/1538/359 643/1491/359 664/1694/359 +f 644/1538/359 664/1694/359 660/1715/359 +f 662/1716/359 666/1691/359 642/1537/359 +f 656/1717/359 662/1716/359 642/1537/359 +f 644/1538/359 660/1715/359 658/1718/359 +f 644/1538/359 658/1718/359 652/1719/359 +f 650/1720/359 656/1717/359 642/1537/359 +f 644/1538/359 652/1719/359 654/1536/359 +f 654/1536/359 650/1720/359 642/1537/359 +f 681/1539/382 750/1659/382 751/1540/381 +f 709/1508/384 754/1507/384 755/1541/404 +f 671/1543/405 673/1657/442 740/1544/406 +f 701/1546/408 757/1592/408 758/1547/409 +f 687/1549/411 694/1552/412 693/1550/412 +f 694/1552/412 695/1677/413 696/1553/413 +f 686/1505/382 687/1549/411 688/1551/411 +f 683/1503/381 686/1505/382 681/1539/382 +f 691/1554/414 692/1664/415 690/1555/415 +f 712/1506/383 709/1508/384 710/1519/384 +f 682/1516/381 685/1518/392 684/1527/392 +f 685/1518/392 691/1554/414 689/1556/414 +f 701/1546/408 708/1548/410 707/1557/410 +f 708/1548/410 712/1506/383 711/1521/383 +f 706/1529/398 710/1519/384 709/1508/384 +f 695/1559/413 700/1597/416 699/1560/416 +f 700/1562/416 701/1546/408 702/1558/408 +f 704/1564/417 706/1529/398 705/1542/398 +f 698/1566/418 704/1564/417 703/1565/417 +f 697/1568/418 690/1682/415 692/1569/415 +f 672/1571/419 734/1588/432 739/1572/420 +f 707/1557/410 774/1658/409 771/1574/408 +f 670/1575/422 676/1526/397 738/1525/396 +f 704/1564/417 773/1583/417 748/1577/424 +f 669/1578/425 735/1585/430 737/1534/402 +f 705/1542/398 755/1541/424 772/1580/417 +f 664/1581/427 670/1575/422 736/1576/423 +f 698/1566/418 768/1721/418 773/1583/417 +f 663/1584/429 729/1722/466 735/1585/430 +f 703/1565/417 772/1580/417 746/1586/418 +f 668/1587/431 731/1636/468 734/1588/432 +f 702/1558/408 771/1574/408 769/1589/416 +f 667/1590/433 671/1543/405 733/1545/407 +f 700/1562/416 770/1723/416 757/1592/408 +f 667/1593/433 732/1629/434 727/1594/435 +f 695/1559/413 756/1724/413 770/1596/416 +f 740/1544/356 744/1606/356 776/1598/356 +f 718/1600/356 763/1631/356 745/1601/356 +f 728/1603/359 752/1725/359 769/1604/359 +f 741/1535/356 754/1622/356 776/1598/356 +f 717/1510/359 762/1650/359 751/1607/359 +f 730/1608/359 768/1726/359 767/1609/359 +f 743/1611/359 775/1632/359 749/1612/359 +f 716/1523/356 715/1602/356 745/1601/356 +f 722/1614/356 747/1727/356 746/1615/356 +f 738/1525/359 742/1513/359 749/1612/359 +f 714/1511/359 751/1607/359 750/1618/359 +f 728/1619/359 725/1651/359 753/1620/359 +f 737/1534/356 755/1649/356 754/1622/356 +f 726/1623/356 727/1728/356 756/1624/356 +f 733/1545/356 740/1544/356 758/1599/356 +f 726/1623/356 760/1625/356 759/1627/356 +f 732/1629/356 770/1729/356 756/1630/356 +f 719/1628/356 759/1627/356 763/1631/356 +f 739/1572/359 774/1652/359 775/1632/359 +f 733/1545/356 757/1626/356 770/1633/356 +f 720/1634/359 713/1531/359 750/1618/359 +f 731/1636/359 769/1730/359 771/1637/359 +f 721/1638/356 765/1648/356 747/1639/356 +f 735/1585/356 729/1722/356 746/1641/356 +f 724/1643/359 767/1731/359 766/1644/359 +f 730/1582/359 736/1576/359 773/1646/359 +f 721/1638/356 716/1523/356 761/1613/356 +f 735/1585/356 772/1642/356 755/1649/356 +f 723/1645/359 766/1644/359 762/1650/359 +f 736/1576/359 738/1525/359 748/1617/359 +f 725/1651/359 720/1634/359 764/1635/359 +f 734/1588/359 771/1637/359 774/1652/359 +f 677/1533/401 741/1535/403 744/1606/437 +f 649/1654/439 718/1600/444 715/1602/440 +f 708/1548/410 758/1547/445 776/1655/383 +f 686/1505/382 763/1504/382 759/1656/441 +f 679/1653/438 744/1606/437 740/1544/406 +f 649/1654/439 655/1675/462 719/1628/443 +f 711/1521/383 775/1520/383 774/1658/445 +f 688/1551/411 764/1671/441 750/1659/382 +f 680/1512/388 674/1573/421 739/1572/420 +f 650/1532/400 713/1531/399 720/1634/447 +f 690/1555/415 747/1732/415 765/1661/414 +f 659/1662/449 657/1668/456 721/1638/450 +f 691/1554/414 766/1669/414 767/1663/415 +f 660/1665/452 724/1643/467 723/1645/453 +f 689/1556/414 765/1661/414 761/1667/455 +f 657/1668/456 651/1524/395 716/1523/394 +f 685/1518/392 762/1517/455 766/1669/414 +f 658/1666/454 723/1645/453 717/1510/386 +f 693/1550/412 753/1679/412 764/1671/458 +f 662/1672/459 656/1660/448 720/1634/447 +f 687/1549/411 759/1656/458 760/1673/412 +f 661/1674/461 726/1623/463 719/1628/443 +f 694/1552/412 760/1673/412 756/1676/413 +f 665/1678/436 727/1728/435 726/1623/463 +f 696/1553/413 752/1733/413 753/1679/412 +f 666/1680/464 662/1672/459 725/1651/460 +f 697/1568/418 746/1734/418 747/1681/415 +f 659/1683/449 722/1614/451 729/1616/466 +f 692/1569/415 767/1735/415 768/1685/418 +f 664/1686/427 730/1608/428 724/1610/467 +f 699/1560/416 769/1736/416 752/1688/413 +f 666/1689/464 728/1603/465 731/1605/468 +o spinny_lower +v 0.127409 0.571053 -0.570525 +v 0.311433 0.571053 -0.573891 +v 0.127409 0.586056 -0.579187 +v 0.311433 0.583141 -0.580870 +v 0.127409 0.586056 -0.596510 +v 0.311433 0.583141 -0.594827 +v 0.127409 0.571053 -0.605172 +v 0.311433 0.571053 -0.601806 +v 0.127409 0.556051 -0.596510 +v 0.311433 0.558966 -0.594827 +v 0.127409 0.556051 -0.579187 +v 0.311433 0.558966 -0.580870 +v 0.296158 0.571053 -0.570525 +v 0.244484 0.571053 -0.570525 +v 0.244484 0.586056 -0.579187 +v 0.296158 0.586056 -0.579187 +v 0.244484 0.586056 -0.596510 +v 0.296158 0.586056 -0.596510 +v 0.244484 0.571053 -0.605172 +v 0.296158 0.571053 -0.605172 +v 0.244484 0.556051 -0.596510 +v 0.296158 0.556051 -0.596510 +v 0.244484 0.556051 -0.579187 +v 0.296158 0.556051 -0.579187 +v 0.248187 0.538846 -0.569253 +v 0.292455 0.538846 -0.569253 +v 0.292455 0.571053 -0.550658 +v 0.248187 0.571053 -0.550658 +v 0.248187 0.538846 -0.606444 +v 0.292455 0.538846 -0.606444 +v 0.248187 0.571053 -0.625039 +v 0.292455 0.571053 -0.625039 +v 0.248187 0.603261 -0.606444 +v 0.292455 0.603261 -0.606444 +v 0.248187 0.603261 -0.569253 +v 0.292455 0.603261 -0.569253 +v 0.264576 0.585795 -0.571215 +v 0.375908 0.798690 -0.587129 +v 0.252583 0.591199 -0.579309 +v 0.363915 0.804094 -0.595223 +v 0.252527 0.590075 -0.594713 +v 0.363860 0.802970 -0.610627 +v 0.264465 0.583548 -0.602023 +v 0.375797 0.796443 -0.617937 +v 0.276457 0.578144 -0.593929 +v 0.387789 0.791039 -0.609843 +v 0.276513 0.579268 -0.578525 +v 0.387845 0.792162 -0.594439 +v 0.265024 0.589041 -0.594850 +v 0.375908 0.639695 -0.806877 +v 0.253032 0.583014 -0.602490 +v 0.363915 0.633667 -0.814518 +v 0.252976 0.568017 -0.606182 +v 0.363859 0.618670 -0.818209 +v 0.264913 0.559048 -0.602232 +v 0.375797 0.609701 -0.814260 +v 0.276906 0.565075 -0.594592 +v 0.387789 0.615728 -0.806619 +v 0.276962 0.580072 -0.590900 +v 0.387845 0.630725 -0.802928 +v 0.264576 0.567567 -0.605240 +v 0.375908 0.382270 -0.719820 +v 0.252583 0.558438 -0.601869 +v 0.363915 0.373140 -0.716448 +v 0.252527 0.550293 -0.588746 +v 0.363859 0.364995 -0.703326 +v 0.264465 0.551277 -0.578996 +v 0.375797 0.365980 -0.693575 +v 0.276457 0.560406 -0.582368 +v 0.387789 0.375109 -0.696947 +v 0.276513 0.568551 -0.595490 +v 0.387845 0.383254 -0.710069 +v 0.264576 0.551049 -0.588028 +v 0.375908 0.388167 -0.450017 +v 0.252583 0.551435 -0.578304 +v 0.363915 0.388553 -0.440293 +v 0.252527 0.561398 -0.566502 +v 0.363860 0.398516 -0.428491 +v 0.264465 0.570975 -0.564425 +v 0.375797 0.408094 -0.426414 +v 0.276457 0.570589 -0.574150 +v 0.387789 0.407708 -0.436139 +v 0.276513 0.560626 -0.585951 +v 0.387845 0.397745 -0.447940 +v 0.269238 0.562315 -0.566999 +v 0.375908 0.648259 -0.361717 +v 0.257245 0.571682 -0.564361 +v 0.363915 0.657627 -0.359079 +v 0.257189 0.585985 -0.570190 +v 0.363860 0.671929 -0.364907 +v 0.269127 0.590920 -0.578657 +v 0.375797 0.676864 -0.373374 +v 0.281119 0.581552 -0.581295 +v 0.387789 0.667496 -0.376013 +v 0.281175 0.567249 -0.575466 +v 0.387845 0.653194 -0.370184 +v 0.380466 0.828227 -0.481324 +v 0.398360 0.821379 -0.484160 +v 0.405772 0.804848 -0.491008 +v 0.398360 0.788316 -0.497855 +v 0.380466 0.781468 -0.500692 +v 0.362572 0.788316 -0.497855 +v 0.355160 0.804848 -0.491008 +v 0.362572 0.821379 -0.484160 +v 0.380466 0.677578 -0.330675 +v 0.398360 0.674742 -0.337523 +v 0.405772 0.667894 -0.354054 +v 0.398360 0.661046 -0.370586 +v 0.380466 0.658210 -0.377434 +v 0.362572 0.661046 -0.370586 +v 0.355160 0.667894 -0.354054 +v 0.362572 0.674742 -0.337523 +v 0.380466 0.464529 -0.330675 +v 0.398360 0.467365 -0.337523 +v 0.405772 0.474213 -0.354054 +v 0.398360 0.481060 -0.370586 +v 0.380466 0.483897 -0.377434 +v 0.362572 0.481060 -0.370586 +v 0.355160 0.474213 -0.354054 +v 0.362572 0.467365 -0.337523 +v 0.380466 0.313880 -0.481324 +v 0.398360 0.320727 -0.484160 +v 0.405772 0.337259 -0.491008 +v 0.398360 0.353791 -0.497856 +v 0.380466 0.360639 -0.500692 +v 0.362572 0.353791 -0.497856 +v 0.355160 0.337259 -0.491008 +v 0.362572 0.320727 -0.484160 +v 0.380466 0.313880 -0.694373 +v 0.398360 0.320727 -0.691537 +v 0.405772 0.337259 -0.684689 +v 0.398360 0.353791 -0.677842 +v 0.380466 0.360639 -0.675005 +v 0.362572 0.353791 -0.677842 +v 0.355160 0.337259 -0.684689 +v 0.362572 0.320727 -0.691537 +v 0.380466 0.464529 -0.845022 +v 0.398360 0.467365 -0.838174 +v 0.405772 0.474213 -0.821643 +v 0.398360 0.481060 -0.805111 +v 0.380466 0.483897 -0.798263 +v 0.362572 0.481060 -0.805111 +v 0.355160 0.474213 -0.821643 +v 0.362572 0.467365 -0.838174 +v 0.380466 0.677578 -0.845022 +v 0.398360 0.674742 -0.838174 +v 0.405772 0.667894 -0.821643 +v 0.398360 0.661047 -0.805111 +v 0.380466 0.658210 -0.798263 +v 0.362572 0.661047 -0.805111 +v 0.355160 0.667894 -0.821643 +v 0.362572 0.674742 -0.838174 +v 0.380466 0.828227 -0.694373 +v 0.398360 0.821379 -0.691537 +v 0.405772 0.804848 -0.684689 +v 0.398360 0.788316 -0.677842 +v 0.380466 0.781468 -0.675005 +v 0.362572 0.788316 -0.677842 +v 0.355160 0.804848 -0.684689 +v 0.362572 0.821379 -0.691537 +v -0.044410 0.571053 -0.570525 +v -0.228434 0.571053 -0.573891 +v -0.044410 0.586056 -0.579187 +v -0.228434 0.583141 -0.580870 +v -0.044410 0.586056 -0.596510 +v -0.228434 0.583141 -0.594827 +v -0.044410 0.571053 -0.605172 +v -0.228434 0.571053 -0.601806 +v -0.044410 0.556051 -0.596510 +v -0.228434 0.558966 -0.594827 +v -0.044410 0.556051 -0.579187 +v -0.228434 0.558966 -0.580870 +v -0.213159 0.571053 -0.570525 +v -0.161485 0.571053 -0.570525 +v -0.161485 0.586056 -0.579187 +v -0.213159 0.586056 -0.579187 +v -0.161485 0.586056 -0.596510 +v -0.213159 0.586056 -0.596510 +v -0.161485 0.571053 -0.605172 +v -0.213159 0.571053 -0.605172 +v -0.161485 0.556051 -0.596510 +v -0.213159 0.556051 -0.596510 +v -0.161485 0.556051 -0.579187 +v -0.213159 0.556051 -0.579187 +v -0.165188 0.538846 -0.569253 +v -0.209456 0.538846 -0.569253 +v -0.209456 0.571053 -0.550658 +v -0.165188 0.571053 -0.550658 +v -0.165188 0.538846 -0.606444 +v -0.209456 0.538846 -0.606444 +v -0.165188 0.571053 -0.625039 +v -0.209456 0.571053 -0.625039 +v -0.165188 0.603261 -0.606444 +v -0.209456 0.603261 -0.606444 +v -0.165188 0.603261 -0.569253 +v -0.209456 0.603261 -0.569253 +v -0.181577 0.585795 -0.571215 +v -0.292909 0.798690 -0.587129 +v -0.169584 0.591199 -0.579309 +v -0.280916 0.804094 -0.595223 +v -0.169529 0.590076 -0.594713 +v -0.280861 0.802970 -0.610627 +v -0.181466 0.583548 -0.602023 +v -0.292798 0.796443 -0.617937 +v -0.193459 0.578144 -0.593929 +v -0.304791 0.791039 -0.609843 +v -0.193514 0.579268 -0.578525 +v -0.304846 0.792162 -0.594439 +v -0.182026 0.589041 -0.594850 +v -0.292909 0.639695 -0.806877 +v -0.170033 0.583014 -0.602490 +v -0.280916 0.633667 -0.814518 +v -0.169977 0.568017 -0.606182 +v -0.280861 0.618670 -0.818209 +v -0.181915 0.559048 -0.602232 +v -0.292798 0.609701 -0.814260 +v -0.193907 0.565075 -0.594592 +v -0.304791 0.615728 -0.806620 +v -0.193963 0.580072 -0.590901 +v -0.304846 0.630725 -0.802928 +v -0.181577 0.567567 -0.605240 +v -0.292909 0.382270 -0.719820 +v -0.169584 0.558438 -0.601869 +v -0.280916 0.373140 -0.716448 +v -0.169529 0.550293 -0.588746 +v -0.280861 0.364995 -0.703326 +v -0.181466 0.551277 -0.578996 +v -0.292798 0.365980 -0.693575 +v -0.193459 0.560406 -0.582368 +v -0.304791 0.375109 -0.696947 +v -0.193514 0.568551 -0.595490 +v -0.304846 0.383254 -0.710069 +v -0.181577 0.551049 -0.588028 +v -0.292909 0.388168 -0.450017 +v -0.169584 0.551435 -0.578304 +v -0.280916 0.388553 -0.440293 +v -0.169529 0.561398 -0.566502 +v -0.280861 0.398516 -0.428491 +v -0.181466 0.570975 -0.564425 +v -0.292798 0.408094 -0.426414 +v -0.193459 0.570589 -0.574150 +v -0.304791 0.407708 -0.436139 +v -0.193514 0.560626 -0.585951 +v -0.304846 0.397745 -0.447940 +v -0.186239 0.562315 -0.566999 +v -0.292909 0.648259 -0.361717 +v -0.174246 0.571682 -0.564361 +v -0.280916 0.657627 -0.359079 +v -0.174191 0.585985 -0.570190 +v -0.280861 0.671929 -0.364907 +v -0.186128 0.590920 -0.578657 +v -0.292798 0.676864 -0.373374 +v -0.198121 0.581552 -0.581295 +v -0.304791 0.667497 -0.376013 +v -0.198176 0.567249 -0.575466 +v -0.304846 0.653194 -0.370184 +v -0.297467 0.828227 -0.481324 +v -0.315361 0.821379 -0.484160 +v -0.322773 0.804848 -0.491008 +v -0.315361 0.788316 -0.497855 +v -0.297467 0.781468 -0.500692 +v -0.279573 0.788316 -0.497855 +v -0.272162 0.804848 -0.491008 +v -0.279573 0.821379 -0.484160 +v -0.297467 0.677578 -0.330675 +v -0.315361 0.674742 -0.337523 +v -0.322773 0.667894 -0.354054 +v -0.315361 0.661047 -0.370586 +v -0.297467 0.658210 -0.377434 +v -0.279573 0.661047 -0.370586 +v -0.272162 0.667894 -0.354054 +v -0.279573 0.674742 -0.337523 +v -0.297467 0.464529 -0.330675 +v -0.315361 0.467365 -0.337523 +v -0.322773 0.474213 -0.354054 +v -0.315361 0.481060 -0.370586 +v -0.297467 0.483897 -0.377434 +v -0.279573 0.481060 -0.370586 +v -0.272162 0.474213 -0.354054 +v -0.279573 0.467365 -0.337523 +v -0.297467 0.313880 -0.481324 +v -0.315361 0.320727 -0.484160 +v -0.322773 0.337259 -0.491008 +v -0.315361 0.353791 -0.497856 +v -0.297467 0.360639 -0.500692 +v -0.279573 0.353791 -0.497856 +v -0.272162 0.337259 -0.491008 +v -0.279573 0.320727 -0.484160 +v -0.297467 0.313880 -0.694373 +v -0.315361 0.320727 -0.691537 +v -0.322773 0.337259 -0.684689 +v -0.315361 0.353791 -0.677842 +v -0.297467 0.360639 -0.675005 +v -0.279573 0.353791 -0.677842 +v -0.272162 0.337259 -0.684689 +v -0.279573 0.320727 -0.691537 +v -0.297467 0.464529 -0.845022 +v -0.315361 0.467365 -0.838175 +v -0.322773 0.474213 -0.821643 +v -0.315361 0.481060 -0.805111 +v -0.297467 0.483897 -0.798263 +v -0.279573 0.481060 -0.805111 +v -0.272162 0.474213 -0.821643 +v -0.279573 0.467365 -0.838175 +v -0.297467 0.677578 -0.845022 +v -0.315361 0.674742 -0.838174 +v -0.322773 0.667894 -0.821643 +v -0.315361 0.661047 -0.805111 +v -0.297467 0.658210 -0.798263 +v -0.279573 0.661047 -0.805111 +v -0.272162 0.667894 -0.821643 +v -0.279573 0.674742 -0.838174 +v -0.297467 0.828227 -0.694373 +v -0.315361 0.821379 -0.691537 +v -0.322773 0.804848 -0.684689 +v -0.315361 0.788316 -0.677842 +v -0.297467 0.781468 -0.675005 +v -0.279573 0.788316 -0.677842 +v -0.272162 0.804848 -0.684689 +v -0.279573 0.821379 -0.691537 +vt 0.799635 0.362279 +vt 0.827262 0.359326 +vt 0.827222 0.362762 +vt 0.800448 0.375165 +vt 0.827415 0.369730 +vt 0.827624 0.373751 +vt 0.799726 0.370763 +vt 0.827275 0.366229 +vt 0.799597 0.366415 +vt 0.762423 0.391682 +vt 0.760099 0.390340 +vt 0.762423 0.386315 +vt 0.800031 0.354283 +vt 0.827395 0.355916 +vt 0.827624 0.352523 +vt 0.788264 0.364363 +vt 0.785449 0.361184 +vt 0.788551 0.361047 +vt 0.784514 0.366272 +vt 0.787270 0.367605 +vt 0.783039 0.368301 +vt 0.785025 0.370236 +vt 0.783984 0.355430 +vt 0.785188 0.350017 +vt 0.787304 0.353840 +vt 0.788273 0.357581 +vt 0.791373 0.353216 +vt 0.796382 0.357395 +vt 0.797036 0.352990 +vt 0.799724 0.358261 +vt 0.796056 0.361474 +vt 0.791701 0.357754 +vt 0.795690 0.365588 +vt 0.791589 0.361641 +vt 0.791021 0.365400 +vt 0.795191 0.370261 +vt 0.789634 0.369320 +vt 0.786082 0.373815 +vt 0.795397 0.378285 +vt 0.799279 0.347383 +vt 0.801389 0.350415 +vt 0.286473 0.934138 +vt 0.283504 0.980386 +vt 0.283504 0.934093 +vt 0.301319 0.934093 +vt 0.298350 0.980386 +vt 0.298350 0.934093 +vt 0.295381 0.934138 +vt 0.295381 0.980430 +vt 0.292412 0.934182 +vt 0.292412 0.980475 +vt 0.289442 0.934183 +vt 0.286473 0.980430 +vt 0.867854 0.901496 +vt 0.820842 0.898526 +vt 0.867866 0.898526 +vt 0.820842 0.916343 +vt 0.867852 0.913373 +vt 0.867866 0.916343 +vt 0.820829 0.913373 +vt 0.867827 0.910404 +vt 0.820804 0.910404 +vt 0.867815 0.907434 +vt 0.820805 0.904465 +vt 0.867828 0.904465 +vt 0.820830 0.901496 +vt 0.548210 0.936048 +vt 0.551180 0.889032 +vt 0.551180 0.936071 +vt 0.533363 0.936071 +vt 0.536332 0.889032 +vt 0.536332 0.936072 +vt 0.539302 0.936049 +vt 0.539302 0.889009 +vt 0.542271 0.936025 +vt 0.542271 0.888986 +vt 0.545241 0.936025 +vt 0.548210 0.889008 +vt 0.837375 0.924047 +vt 0.834405 0.970295 +vt 0.834405 0.924002 +vt 0.852221 0.924002 +vt 0.849251 0.970295 +vt 0.849251 0.924002 +vt 0.846282 0.924046 +vt 0.846282 0.970339 +vt 0.843313 0.924091 +vt 0.843313 0.970384 +vt 0.840344 0.924091 +vt 0.837374 0.970339 +vt 0.434430 0.936466 +vt 0.431460 0.889069 +vt 0.434429 0.889017 +vt 0.449276 0.936519 +vt 0.446307 0.889090 +vt 0.449276 0.889069 +vt 0.443337 0.936508 +vt 0.443337 0.889059 +vt 0.440368 0.936456 +vt 0.440368 0.889006 +vt 0.437399 0.936435 +vt 0.437399 0.888985 +vt 0.400992 0.791352 +vt 0.397193 0.754418 +vt 0.400852 0.754391 +vt 0.394091 0.791397 +vt 0.393709 0.754385 +vt 0.390187 0.754324 +vt 0.390588 0.791361 +vt 0.386451 0.754283 +vt 0.382815 0.791366 +vt 0.382712 0.754242 +vt 0.379184 0.754177 +vt 0.407987 0.754399 +vt 0.404551 0.791300 +vt 0.404509 0.754364 +vt 0.401029 0.830484 +vt 0.397466 0.791406 +vt 0.393644 0.828434 +vt 0.390393 0.827137 +vt 0.386724 0.791360 +vt 0.387036 0.826636 +vt 0.383603 0.827212 +vt 0.379180 0.791346 +vt 0.408711 0.828478 +vt 0.408040 0.791308 +vt 0.405031 0.829914 +vt 0.401081 0.569288 +vt 0.397276 0.530538 +vt 0.401303 0.529944 +vt 0.397510 0.569275 +vt 0.393569 0.531995 +vt 0.394002 0.569210 +vt 0.390094 0.533390 +vt 0.390377 0.569117 +vt 0.386663 0.533954 +vt 0.386493 0.569035 +vt 0.383340 0.533443 +vt 0.382642 0.568946 +vt 0.380148 0.532152 +vt 0.407993 0.569370 +vt 0.405237 0.530579 +vt 0.408711 0.531968 +vt 0.404608 0.569300 +vt 0.397153 0.606277 +vt 0.393668 0.606235 +vt 0.390146 0.606165 +vt 0.386408 0.606121 +vt 0.382669 0.606079 +vt 0.379138 0.568835 +vt 0.407945 0.606274 +vt 0.404466 0.606234 +vt 0.400804 0.643287 +vt 0.400811 0.606255 +vt 0.393655 0.643272 +vt 0.390136 0.643206 +vt 0.386405 0.643166 +vt 0.379155 0.643060 +vt 0.379143 0.606013 +vt 0.404468 0.643264 +vt 0.400813 0.680323 +vt 0.397140 0.643310 +vt 0.397149 0.680346 +vt 0.393664 0.680308 +vt 0.390145 0.680243 +vt 0.386415 0.680202 +vt 0.382675 0.643125 +vt 0.382685 0.680161 +vt 0.407962 0.680337 +vt 0.407952 0.643302 +vt 0.404477 0.680299 +vt 0.400825 0.717358 +vt 0.393676 0.717344 +vt 0.390157 0.717280 +vt 0.382696 0.717198 +vt 0.379166 0.680096 +vt 0.404489 0.717335 +vt 0.397161 0.717382 +vt 0.386427 0.717239 +vt 0.379176 0.717133 +vt 0.407973 0.717373 +vt 0.720912 0.364623 +vt 0.693285 0.361670 +vt 0.720872 0.361187 +vt 0.721066 0.354219 +vt 0.694098 0.348783 +vt 0.721275 0.350197 +vt 0.720925 0.357719 +vt 0.693377 0.353186 +vt 0.693247 0.357533 +vt 0.777055 0.387656 +vt 0.777055 0.390340 +vt 0.774731 0.391682 +vt 0.721046 0.368033 +vt 0.693374 0.365687 +vt 0.721275 0.371425 +vt 0.693682 0.369665 +vt 0.682202 0.362901 +vt 0.678936 0.360105 +vt 0.681915 0.359585 +vt 0.680920 0.356343 +vt 0.678164 0.357676 +vt 0.676690 0.355648 +vt 0.678676 0.353713 +vt 0.678838 0.373931 +vt 0.677634 0.368519 +vt 0.680955 0.370109 +vt 0.678692 0.365585 +vt 0.681923 0.366367 +vt 0.685023 0.370733 +vt 0.690686 0.370958 +vt 0.690033 0.366554 +vt 0.689707 0.362474 +vt 0.685352 0.366194 +vt 0.688841 0.353688 +vt 0.679099 0.362764 +vt 0.685239 0.362307 +vt 0.684671 0.358548 +vt 0.683285 0.354629 +vt 0.689047 0.345664 +vt 0.679733 0.350133 +vt 0.682787 0.378285 +vt 0.692930 0.376566 +vt 0.695039 0.373533 +vt 0.953914 0.104208 +vt 0.950945 0.057960 +vt 0.953914 0.057915 +vt 0.968761 0.104252 +vt 0.965791 0.057960 +vt 0.968761 0.057960 +vt 0.962822 0.104208 +vt 0.965791 0.104253 +vt 0.959853 0.104163 +vt 0.962822 0.057916 +vt 0.956883 0.104163 +vt 0.959853 0.057871 +vt 0.956883 0.057871 +vt 0.901087 0.717683 +vt 0.854075 0.720652 +vt 0.854064 0.717683 +vt 0.901085 0.705805 +vt 0.854075 0.702836 +vt 0.901099 0.702836 +vt 0.901060 0.708775 +vt 0.854062 0.705805 +vt 0.901048 0.711744 +vt 0.854037 0.708775 +vt 0.854038 0.714714 +vt 0.854025 0.711744 +vt 0.901062 0.714714 +vt 0.459905 0.936048 +vt 0.456935 0.889032 +vt 0.459905 0.889008 +vt 0.474752 0.936071 +vt 0.471782 0.889032 +vt 0.474752 0.889032 +vt 0.468813 0.936049 +vt 0.471782 0.936072 +vt 0.465844 0.936025 +vt 0.468813 0.889009 +vt 0.462874 0.936025 +vt 0.465844 0.888986 +vt 0.462874 0.888985 +vt 0.891332 0.918016 +vt 0.894301 0.964265 +vt 0.891332 0.964309 +vt 0.876485 0.917972 +vt 0.879455 0.964264 +vt 0.876486 0.964265 +vt 0.882424 0.918016 +vt 0.879455 0.917972 +vt 0.885393 0.918061 +vt 0.882424 0.964309 +vt 0.888363 0.918061 +vt 0.885393 0.964353 +vt 0.888363 0.964354 +vt 0.890948 0.381894 +vt 0.893917 0.334497 +vt 0.893917 0.381947 +vt 0.905794 0.381873 +vt 0.908763 0.334445 +vt 0.908763 0.381894 +vt 0.902824 0.334456 +vt 0.905794 0.334424 +vt 0.902824 0.381905 +vt 0.899855 0.334508 +vt 0.899855 0.381957 +vt 0.896886 0.334529 +vt 0.896886 0.381978 +vt 0.359961 0.606011 +vt 0.363760 0.569076 +vt 0.363621 0.606038 +vt 0.356860 0.569032 +vt 0.360235 0.569022 +vt 0.356477 0.606043 +vt 0.353356 0.569068 +vt 0.349219 0.606145 +vt 0.352955 0.606105 +vt 0.345583 0.569063 +vt 0.349493 0.569068 +vt 0.341953 0.606252 +vt 0.345481 0.606186 +vt 0.367278 0.606065 +vt 0.370809 0.569120 +vt 0.370756 0.606029 +vt 0.367319 0.569128 +vt 0.359879 0.530591 +vt 0.363797 0.529944 +vt 0.353162 0.533291 +vt 0.356412 0.531994 +vt 0.349805 0.533792 +vt 0.342919 0.531808 +vt 0.346372 0.533216 +vt 0.371479 0.531950 +vt 0.367800 0.530514 +vt 0.364071 0.830484 +vt 0.360279 0.791154 +vt 0.363850 0.791140 +vt 0.356338 0.828434 +vt 0.360044 0.829890 +vt 0.353146 0.791312 +vt 0.356770 0.791219 +vt 0.349432 0.826474 +vt 0.352863 0.827038 +vt 0.346108 0.826986 +vt 0.349262 0.791394 +vt 0.341907 0.791593 +vt 0.345411 0.791482 +vt 0.368006 0.829850 +vt 0.370761 0.791058 +vt 0.371479 0.828460 +vt 0.367376 0.791128 +vt 0.363579 0.754173 +vt 0.359921 0.754151 +vt 0.352914 0.754263 +vt 0.356437 0.754193 +vt 0.349176 0.754307 +vt 0.345438 0.754350 +vt 0.367235 0.754194 +vt 0.370713 0.754154 +vt 0.363572 0.717142 +vt 0.356423 0.717157 +vt 0.359908 0.717119 +vt 0.352904 0.717222 +vt 0.349174 0.717263 +vt 0.341923 0.717369 +vt 0.345443 0.717304 +vt 0.370720 0.717126 +vt 0.367236 0.717164 +vt 0.363582 0.680106 +vt 0.356432 0.680121 +vt 0.359918 0.680083 +vt 0.349184 0.680226 +vt 0.352914 0.680186 +vt 0.341934 0.680332 +vt 0.345453 0.680267 +vt 0.370731 0.680091 +vt 0.367246 0.680129 +vt 0.363594 0.643070 +vt 0.356444 0.643084 +vt 0.359930 0.643046 +vt 0.352925 0.643149 +vt 0.349195 0.643189 +vt 0.345464 0.643230 +vt 0.370742 0.643055 +vt 0.367257 0.643093 +vt 0.341944 0.643295 +vt 0.760099 0.387656 +vt 0.764747 0.387656 +vt 0.764747 0.390340 +vt 0.785286 0.363844 +vt 0.782109 0.352463 +vt 0.785042 0.358363 +vt 0.789136 0.345664 +vt 0.301319 0.980386 +vt 0.289442 0.980475 +vt 0.820792 0.907434 +vt 0.533363 0.889032 +vt 0.545241 0.888985 +vt 0.852221 0.970295 +vt 0.840343 0.970384 +vt 0.431460 0.936519 +vt 0.446306 0.936540 +vt 0.397110 0.829838 +vt 0.380151 0.828621 +vt 0.772406 0.390340 +vt 0.772406 0.387656 +vt 0.774731 0.386315 +vt 0.675759 0.371485 +vt 0.689340 0.358360 +vt 0.950945 0.104252 +vt 0.901099 0.720652 +vt 0.456935 0.936071 +vt 0.894301 0.917972 +vt 0.890948 0.334445 +vt 0.341949 0.569082 +vt 0.342916 0.828276 +vt 0.341912 0.754415 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.8660 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.2152 -0.8457 -0.4883 +vn 0.2152 -0.8457 0.4883 +vn 0.2152 -0.0000 -0.9766 +vn 0.2152 0.8457 -0.4883 +vn 0.2152 0.8457 0.4883 +vn 0.2152 -0.0000 0.9766 +vn 0.9831 0.1587 -0.0916 +vn 0.9831 0.1587 0.0916 +vn -0.9831 0.1587 0.0916 +vn -0.9831 0.0000 0.1832 +vn -0.9831 -0.1587 0.0916 +vn -0.9831 -0.1587 -0.0916 +vn 0.9831 -0.0000 0.1832 +vn -0.9831 -0.0000 -0.1832 +vn 0.9831 0.0000 -0.1832 +vn 0.9831 -0.1587 0.0916 +vn 0.9831 -0.1587 -0.0916 +vn -0.9831 0.1587 -0.0916 +vn -0.0013 0.0752 0.9972 +vn -0.7649 0.4355 0.4747 +vn -0.7674 0.4364 0.4698 +vn -0.7685 0.3624 -0.5273 +vn -0.7709 0.3641 -0.5227 +vn -0.0085 -0.0701 -0.9975 +vn 0.0013 -0.0752 -0.9972 +vn 0.7649 -0.4355 -0.4747 +vn 0.7674 -0.4364 -0.4698 +vn 0.7685 -0.3624 0.5273 +vn 0.0085 0.0701 0.9975 +vn 0.0036 0.9722 0.2341 +vn -0.7691 0.5824 -0.2631 +vn -0.7690 0.5826 -0.2630 +vn -0.7757 -0.3873 -0.4982 +vn -0.7736 -0.3916 -0.4981 +vn -0.0076 -0.9717 -0.2361 +vn -0.0036 -0.9722 -0.2341 +vn 0.7691 -0.5824 0.2631 +vn 0.7757 0.3873 0.4982 +vn 0.7736 0.3916 0.4981 +vn 0.0076 0.9717 0.2361 +vn 0.0010 0.5263 -0.8503 +vn -0.7687 -0.0687 -0.6359 +vn -0.7701 -0.0706 -0.6341 +vn -0.7723 -0.5975 0.2158 +vn -0.7736 -0.5967 0.2134 +vn -0.0061 -0.5286 0.8489 +vn -0.0010 -0.5264 0.8503 +vn 0.7687 0.0687 0.6359 +vn 0.7701 0.0706 0.6341 +vn 0.7723 0.5975 -0.2158 +vn 0.0061 0.5286 -0.8489 +vn -0.0013 -0.6470 -0.7625 +vn -0.7649 -0.6313 -0.1281 +vn -0.7674 -0.6292 -0.1236 +vn -0.7685 0.0167 0.6397 +vn -0.7709 0.0127 0.6369 +vn -0.0085 0.6431 0.7658 +vn 0.0013 0.6470 0.7625 +vn 0.7649 0.6313 0.1281 +vn 0.7674 0.6292 0.1236 +vn 0.7685 -0.0167 -0.6397 +vn 0.0085 -0.6431 -0.7658 +vn 0.0020 -0.9228 0.3853 +vn -0.7755 -0.3271 0.5399 +vn 0.0114 -0.9245 0.3811 +vn -0.7797 -0.3191 0.5388 +vn -0.7840 0.6009 0.1558 +vn -0.0114 0.9245 -0.3811 +vn -0.0020 0.9228 -0.3853 +vn 0.7755 0.3271 -0.5399 +vn 0.7797 0.3191 -0.5388 +vn 0.7840 -0.6009 -0.1558 +vn 0.7846 -0.6000 -0.1565 +vn -0.0000 0.3827 0.9239 +vn 0.6630 0.6916 0.2865 +vn 0.0000 0.9239 0.3827 +vn 0.9955 0.0363 0.0876 +vn 0.9955 0.0876 0.0363 +vn 0.7574 -0.6033 -0.2499 +vn 0.7574 -0.2499 -0.6033 +vn 0.0000 -0.9239 -0.3827 +vn -0.7574 -0.2499 -0.6033 +vn -0.7574 -0.6033 -0.2499 +vn -0.9955 0.0876 0.0363 +vn -0.6630 0.2865 0.6916 +vn -0.6630 0.6916 0.2865 +vn 0.0000 -0.3827 0.9239 +vn 0.6630 0.2865 0.6916 +vn 0.9955 -0.0363 0.0876 +vn 0.7574 0.2499 -0.6033 +vn 0.0000 -0.3827 -0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.7574 0.2499 -0.6033 +vn -0.9955 0.0363 0.0876 +vn -0.9955 -0.0363 0.0876 +vn -0.6630 -0.2865 0.6916 +vn 0.0000 -0.9239 0.3827 +vn 0.6630 -0.2865 0.6916 +vn 0.6630 -0.6916 0.2865 +vn 0.9955 -0.0876 0.0363 +vn 0.7574 0.6033 -0.2499 +vn 0.0000 0.9239 -0.3827 +vn -0.7574 0.6033 -0.2499 +vn -0.9955 -0.0876 0.0363 +vn -0.6630 -0.6916 0.2865 +vn 0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0876 -0.0363 +vn 0.7574 0.6033 0.2499 +vn -0.7574 0.6033 0.2499 +vn -0.9955 -0.0876 -0.0363 +vn -0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0363 -0.0876 +vn 0.7574 0.2499 0.6033 +vn -0.9955 -0.0363 -0.0876 +vn -0.6630 -0.2865 -0.6916 +vn 0.6630 -0.2865 -0.6916 +vn 0.6630 0.2865 -0.6916 +vn 0.9955 0.0363 -0.0876 +vn 0.7574 -0.2499 0.6033 +vn -0.7574 0.2499 0.6033 +vn -0.7574 -0.2499 0.6033 +vn -0.9955 0.0363 -0.0876 +vn -0.6630 0.2865 -0.6916 +vn 0.9955 0.0876 -0.0363 +vn 0.7574 -0.6033 0.2499 +vn -0.7574 -0.6033 0.2499 +vn -0.6630 0.6916 -0.2865 +vn 0.6630 0.6916 -0.2865 +vn -0.9955 0.0876 -0.0363 +vn -1.0000 0.0000 0.0000 +vn -0.2152 -0.8457 0.4883 +vn -0.2152 -0.8457 -0.4883 +vn -0.2152 -0.0000 -0.9766 +vn -0.2152 0.8457 -0.4883 +vn -0.2152 0.8457 0.4883 +vn -0.2152 0.0000 0.9766 +vn 0.0013 0.0752 0.9972 +vn 0.7649 0.4355 0.4747 +vn -0.0085 0.0701 0.9975 +vn 0.7674 0.4364 0.4698 +vn 0.7685 0.3625 -0.5273 +vn 0.0085 -0.0701 -0.9975 +vn 0.7709 0.3641 -0.5227 +vn -0.7649 -0.4355 -0.4747 +vn -0.0013 -0.0752 -0.9972 +vn -0.7685 -0.3624 0.5273 +vn -0.7674 -0.4364 -0.4698 +vn -0.7709 -0.3641 0.5227 +vn -0.0036 0.9722 0.2341 +vn 0.7691 0.5824 -0.2631 +vn -0.0076 0.9717 0.2361 +vn 0.7757 -0.3873 -0.4982 +vn 0.7690 0.5826 -0.2630 +vn 0.0076 -0.9717 -0.2361 +vn 0.7736 -0.3916 -0.4981 +vn -0.7691 -0.5824 0.2631 +vn 0.0036 -0.9722 -0.2341 +vn -0.7757 0.3873 0.4982 +vn -0.7691 -0.5826 0.2630 +vn -0.7736 0.3916 0.4981 +vn -0.0010 0.5263 -0.8503 +vn 0.7687 -0.0687 -0.6359 +vn -0.0061 0.5286 -0.8489 +vn 0.7701 -0.0706 -0.6341 +vn 0.7723 -0.5975 0.2158 +vn 0.0061 -0.5286 0.8489 +vn 0.7736 -0.5967 0.2134 +vn -0.7687 0.0687 0.6359 +vn 0.0010 -0.5263 0.8503 +vn -0.7723 0.5975 -0.2158 +vn -0.7701 0.0706 0.6341 +vn -0.7736 0.5967 -0.2134 +vn 0.0013 -0.6470 -0.7625 +vn 0.7649 -0.6313 -0.1281 +vn -0.0085 -0.6431 -0.7658 +vn 0.7674 -0.6292 -0.1236 +vn 0.7685 0.0167 0.6397 +vn 0.0085 0.6431 0.7658 +vn 0.7709 0.0127 0.6369 +vn -0.7649 0.6313 0.1281 +vn -0.0013 0.6470 0.7625 +vn -0.7685 -0.0167 -0.6397 +vn -0.7674 0.6292 0.1236 +vn -0.7709 -0.0127 -0.6369 +vn 0.7755 -0.3271 0.5399 +vn -0.0020 -0.9228 0.3853 +vn -0.0114 -0.9245 0.3811 +vn 0.7840 0.6009 0.1558 +vn 0.7797 -0.3191 0.5388 +vn 0.0114 0.9245 -0.3811 +vn 0.7846 0.6000 0.1565 +vn 0.0020 0.9228 -0.3853 +vn -0.7755 0.3271 -0.5399 +vn -0.7797 0.3191 -0.5388 +vn -0.7840 -0.6009 -0.1558 +vn -0.7846 -0.6000 -0.1565 +vn 0.7709 -0.3641 0.5227 +vn 0.7690 -0.5826 0.2630 +vn 0.7736 0.5967 -0.2134 +vn 0.7709 -0.0127 -0.6369 +vn -0.7846 0.6000 0.1565 +s 1 +f 911/1737/469 889/1738/470 899/1739/469 +f 905/1740/471 895/1741/472 893/1742/471 +f 907/1743/472 897/1744/473 895/1741/472 +f 909/1745/473 899/1739/469 897/1744/473 +f 896/1746/474 894/1747/474 890/1748/474 +f 889/1738/470 903/1749/475 891/1750/475 +f 903/1749/475 893/1751/471 891/1750/475 +f 910/1752/476 900/1753/477 912/1754/477 +f 896/1755/478 910/1752/476 908/1756/478 +f 894/1757/479 908/1756/478 906/1758/479 +f 892/1759/480 906/1760/479 904/1761/480 +f 901/1762/481 892/1759/480 904/1761/480 +f 906/1760/482 924/1763/483 904/1761/483 +f 903/1749/484 916/1764/485 923/1765/484 +f 902/1766/485 913/1767/486 916/1764/485 +f 909/1745/487 913/1767/486 911/1737/486 +f 904/1761/483 915/1768/488 901/1762/488 +f 907/1743/489 917/1769/487 909/1745/487 +f 900/1753/477 901/1762/481 912/1754/477 +f 915/1768/470 913/1767/469 914/1770/469 +f 914/1770/469 917/1769/473 918/1771/473 +f 918/1771/473 919/1772/472 920/1773/472 +f 922/1774/471 919/1772/472 921/1775/471 +f 924/1763/475 921/1776/471 923/1765/475 +f 924/1763/475 916/1764/470 915/1768/470 +f 908/1756/490 922/1774/482 906/1758/482 +f 901/1762/488 914/1770/491 912/1754/491 +f 910/1752/492 920/1773/490 908/1756/490 +f 903/1749/484 921/1776/493 905/1777/493 +f 912/1754/491 918/1771/492 910/1752/492 +f 905/1740/493 919/1772/489 907/1743/489 +f 925/1778/494 928/1779/495 927/1780/496 +f 927/1781/496 930/1782/497 929/1783/498 +f 930/1782/497 931/1784/499 929/1783/498 +f 932/1785/500 933/1786/501 931/1784/499 +f 934/1787/502 935/1788/503 933/1786/501 +f 935/1788/503 926/1789/504 925/1778/494 +f 937/1790/505 940/1791/506 939/1792/507 +f 940/1793/506 941/1794/508 939/1795/507 +f 942/1796/509 943/1797/510 941/1794/508 +f 944/1798/511 945/1799/512 943/1797/510 +f 945/1799/512 948/1800/513 947/1801/514 +f 947/1801/514 938/1802/515 937/1790/505 +f 949/1803/516 952/1804/517 951/1805/518 +f 951/1806/518 954/1807/519 953/1808/520 +f 954/1807/519 955/1809/521 953/1808/520 +f 956/1810/522 957/1811/523 955/1809/521 +f 958/1812/524 959/1813/525 957/1811/523 +f 959/1813/525 950/1814/526 949/1803/516 +f 961/1815/527 964/1816/528 963/1817/529 +f 963/1818/529 966/1819/530 965/1820/531 +f 966/1819/530 967/1821/532 965/1820/531 +f 968/1822/533 969/1823/534 967/1821/532 +f 970/1824/535 971/1825/536 969/1823/534 +f 971/1825/536 962/1826/537 961/1815/527 +f 974/1827/538 975/1828/539 973/1829/540 +f 976/1830/541 977/1831/542 975/1832/539 +f 977/1831/542 980/1833/543 979/1834/544 +f 979/1834/544 982/1835/545 981/1836/546 +f 981/1836/546 984/1837/547 983/1838/548 +f 984/1837/547 973/1829/540 983/1838/548 +f 993/1839/549 986/1840/550 985/1841/551 +f 986/1840/550 995/1842/552 987/1843/553 +f 995/1842/552 988/1844/554 987/1843/553 +f 996/1845/555 989/1846/556 988/1844/554 +f 989/1846/556 998/1847/557 990/1848/558 +f 998/1847/557 991/1849/559 990/1848/558 +f 991/1850/559 1000/1851/560 992/1852/561 +f 1000/1851/560 985/1841/551 992/1852/561 +f 1001/1853/562 994/1854/563 993/1839/549 +f 994/1854/563 1003/1855/564 995/1842/552 +f 1003/1855/564 996/1845/555 995/1842/552 +f 1004/1856/565 997/1857/566 996/1845/555 +f 1005/1858/567 998/1847/557 997/1857/566 +f 1006/1859/568 999/1860/569 998/1847/557 +f 1007/1861/570 1000/1851/560 999/1862/569 +f 1008/1863/571 993/1839/549 1000/1851/560 +f 1009/1864/572 1002/1865/573 1001/1866/562 +f 1010/1867/574 1003/1868/564 1002/1865/573 +f 1011/1869/575 1004/1870/565 1003/1868/564 +f 1012/1871/576 1005/1872/567 1004/1870/565 +f 1013/1873/577 1006/1874/568 1005/1872/567 +f 1014/1875/578 1007/1876/570 1006/1874/568 +f 1015/1877/579 1008/1878/571 1007/1879/570 +f 1016/1880/580 1001/1866/562 1008/1878/571 +f 1009/1864/572 1018/1881/581 1010/1867/574 +f 1018/1881/581 1011/1869/575 1010/1867/574 +f 1019/1882/582 1012/1871/576 1011/1869/575 +f 1020/1883/583 1013/1873/577 1012/1871/576 +f 1021/1884/551 1014/1875/578 1013/1873/577 +f 1022/1885/584 1015/1886/579 1014/1875/578 +f 1023/1887/585 1016/1880/580 1015/1877/579 +f 1024/1888/586 1009/1864/572 1016/1880/580 +f 1025/1889/566 1018/1881/581 1017/1890/556 +f 1018/1881/581 1027/1891/587 1019/1882/582 +f 1019/1882/582 1028/1892/588 1020/1883/583 +f 1020/1883/583 1029/1893/549 1021/1884/551 +f 1029/1893/549 1022/1885/584 1021/1884/551 +f 1022/1885/584 1031/1894/589 1023/1895/585 +f 1023/1887/585 1032/1896/590 1024/1888/586 +f 1032/1896/590 1017/1890/556 1024/1888/586 +f 1033/1897/567 1026/1898/591 1025/1889/566 +f 1034/1899/592 1027/1891/587 1026/1898/591 +f 1035/1900/593 1028/1892/588 1027/1891/587 +f 1036/1901/594 1029/1893/549 1028/1892/588 +f 1037/1902/562 1030/1903/595 1029/1893/549 +f 1038/1904/596 1031/1894/589 1030/1903/595 +f 1039/1905/597 1032/1896/590 1031/1906/589 +f 1040/1907/598 1025/1889/566 1032/1896/590 +f 1041/1908/577 1034/1899/592 1033/1897/567 +f 1034/1899/592 1043/1909/599 1035/1900/593 +f 1043/1909/599 1036/1901/594 1035/1900/593 +f 1044/1910/600 1037/1902/562 1036/1901/594 +f 1037/1902/562 1046/1911/601 1038/1904/596 +f 1046/1911/601 1039/1912/597 1038/1904/596 +f 1039/1905/597 1048/1913/602 1040/1907/598 +f 1048/1913/602 1033/1897/567 1040/1907/598 +f 985/1841/551 1042/1914/603 1041/1908/577 +f 986/1840/550 1043/1909/599 1042/1914/603 +f 987/1843/553 1044/1910/600 1043/1909/599 +f 988/1844/554 1045/1915/572 1044/1910/600 +f 989/1846/556 1046/1911/601 1045/1915/572 +f 990/1848/558 1047/1916/604 1046/1911/601 +f 991/1850/559 1048/1913/602 1047/1917/604 +f 1048/1913/602 985/1841/551 1041/1908/577 +f 1049/1918/470 1071/1919/469 1059/1920/469 +f 1055/1921/472 1065/1922/471 1053/1923/471 +f 1057/1924/473 1067/1925/472 1055/1921/472 +f 1059/1920/469 1069/1926/473 1057/1924/473 +f 1058/1927/605 1060/1928/605 1050/1929/605 +f 1051/1930/475 1062/1931/470 1049/1918/470 +f 1053/1932/471 1063/1933/475 1051/1930/475 +f 1072/1934/606 1058/1935/607 1070/1936/607 +f 1068/1937/608 1058/1935/607 1056/1938/608 +f 1068/1937/608 1054/1939/609 1066/1940/609 +f 1066/1941/609 1052/1942/610 1064/1943/610 +f 1064/1943/610 1050/1944/611 1061/1945/611 +f 1084/1946/484 1066/1941/493 1064/1943/484 +f 1083/1947/483 1062/1931/488 1063/1933/483 +f 1076/1948/488 1071/1919/491 1062/1931/488 +f 1073/1949/491 1069/1926/492 1071/1919/491 +f 1075/1950/485 1064/1943/484 1061/1945/485 +f 1069/1926/492 1079/1951/490 1067/1925/490 +f 1072/1934/606 1050/1944/611 1060/1952/606 +f 1074/1953/469 1076/1948/470 1075/1950/470 +f 1078/1954/473 1073/1949/469 1074/1953/469 +f 1079/1951/472 1078/1954/473 1080/1955/472 +f 1081/1956/471 1080/1955/472 1082/1957/471 +f 1083/1947/475 1082/1958/471 1084/1946/475 +f 1076/1948/470 1084/1946/475 1075/1950/470 +f 1066/1940/493 1080/1955/489 1068/1937/489 +f 1074/1953/486 1061/1945/485 1072/1934/486 +f 1068/1937/489 1078/1954/487 1070/1936/487 +f 1081/1959/482 1063/1933/483 1065/1960/482 +f 1078/1954/487 1072/1934/486 1070/1936/487 +f 1079/1951/490 1065/1922/482 1067/1925/490 +f 1085/1961/612 1088/1962/613 1086/1963/614 +f 1087/1964/615 1090/1965/616 1088/1966/613 +f 1091/1967/617 1090/1965/616 1089/1968/618 +f 1093/1969/619 1092/1970/620 1091/1967/617 +f 1095/1971/621 1094/1972/622 1093/1969/619 +f 1095/1971/621 1086/1963/614 1096/1973/623 +f 1097/1974/624 1100/1975/625 1098/1976/626 +f 1101/1977/627 1100/1978/625 1099/1979/628 +f 1103/1980/629 1102/1981/630 1101/1977/627 +f 1105/1982/631 1104/1983/632 1103/1980/629 +f 1105/1982/631 1108/1984/633 1106/1985/634 +f 1107/1986/635 1098/1976/626 1108/1984/633 +f 1109/1987/636 1112/1988/637 1110/1989/638 +f 1111/1990/639 1114/1991/640 1112/1992/637 +f 1115/1993/641 1114/1991/640 1113/1994/642 +f 1117/1995/643 1116/1996/644 1115/1993/641 +f 1119/1997/645 1118/1998/646 1117/1995/643 +f 1119/1997/645 1110/1989/638 1120/1999/647 +f 1121/2000/648 1124/2001/649 1122/2002/650 +f 1123/2003/651 1126/2004/652 1124/2005/649 +f 1127/2006/653 1126/2004/652 1125/2007/654 +f 1129/2008/655 1128/2009/656 1127/2006/653 +f 1131/2010/657 1130/2011/658 1129/2008/655 +f 1131/2010/657 1122/2002/650 1132/2012/659 +f 1135/2013/660 1134/2014/661 1133/2015/662 +f 1137/2016/663 1136/2017/664 1135/2018/660 +f 1137/2016/663 1140/2019/665 1138/2020/666 +f 1139/2021/667 1142/2022/668 1140/2019/665 +f 1141/2023/669 1144/2024/670 1142/2022/668 +f 1133/2015/662 1144/2024/670 1143/2025/671 +f 1146/2026/561 1153/2027/549 1145/2028/551 +f 1146/2026/561 1155/2029/569 1154/2030/560 +f 1147/2031/559 1156/2032/557 1155/2029/569 +f 1149/2033/556 1156/2032/557 1148/2034/558 +f 1149/2033/556 1158/2035/555 1157/2036/566 +f 1151/2037/553 1158/2035/555 1150/2038/554 +f 1152/2039/550 1159/2040/552 1151/2041/553 +f 1145/2028/551 1160/2042/563 1152/2039/550 +f 1153/2027/549 1162/2043/571 1161/2044/562 +f 1155/2029/569 1162/2043/571 1154/2030/560 +f 1155/2029/569 1164/2045/568 1163/2046/570 +f 1157/2036/566 1164/2045/568 1156/2032/557 +f 1158/2035/555 1165/2047/567 1157/2036/566 +f 1158/2035/555 1167/2048/564 1166/2049/565 +f 1160/2042/563 1167/2050/564 1159/2040/552 +f 1153/2027/549 1168/2051/573 1160/2042/563 +f 1161/2052/562 1170/2053/580 1169/2054/572 +f 1163/2055/570 1170/2053/580 1162/2056/571 +f 1163/2055/570 1172/2057/578 1171/2058/579 +f 1165/2059/567 1172/2057/578 1164/2060/568 +f 1166/2061/565 1173/2062/577 1165/2059/567 +f 1166/2061/565 1175/2063/575 1174/2064/576 +f 1168/2065/573 1175/2066/575 1167/2067/564 +f 1161/2052/562 1176/2068/574 1168/2065/573 +f 1170/2053/580 1177/2069/556 1169/2054/572 +f 1171/2058/579 1178/2070/586 1170/2053/580 +f 1171/2058/579 1180/2071/584 1179/2072/585 +f 1173/2062/577 1180/2071/584 1172/2057/578 +f 1174/2064/576 1181/2073/551 1173/2062/577 +f 1175/2063/575 1182/2074/583 1174/2064/576 +f 1175/2066/575 1184/2075/581 1183/2076/582 +f 1169/2054/572 1184/2075/581 1176/2068/574 +f 1178/2070/586 1185/2077/566 1177/2069/556 +f 1178/2070/586 1187/2078/589 1186/2079/590 +f 1180/2071/584 1187/2078/589 1179/2072/585 +f 1181/2073/551 1188/2080/595 1180/2071/584 +f 1182/2074/583 1189/2081/549 1181/2073/551 +f 1182/2074/583 1191/2082/587 1190/2083/588 +f 1184/2075/581 1191/2084/587 1183/2076/582 +f 1184/2075/581 1185/2077/566 1192/2085/591 +f 1186/2079/590 1193/2086/567 1185/2077/566 +f 1186/2079/590 1195/2087/597 1194/2088/598 +f 1188/2080/595 1195/2087/597 1187/2078/589 +f 1188/2080/595 1197/2089/562 1196/2090/596 +f 1190/2083/588 1197/2089/562 1189/2081/549 +f 1190/2083/588 1199/2091/593 1198/2092/594 +f 1192/2085/591 1199/2093/593 1191/2084/587 +f 1185/2077/566 1200/2094/592 1192/2085/591 +f 1194/2088/598 1201/2095/577 1193/2086/567 +f 1194/2088/598 1203/2096/604 1202/2097/602 +f 1196/2090/596 1203/2096/604 1195/2087/597 +f 1197/2089/562 1204/2098/601 1196/2090/596 +f 1198/2092/594 1205/2099/572 1197/2089/562 +f 1199/2091/593 1206/2100/600 1198/2092/594 +f 1200/2094/592 1207/2101/599 1199/2093/593 +f 1193/2086/567 1208/2102/603 1200/2094/592 +f 1202/2097/602 1145/2028/551 1201/2095/577 +f 1202/2097/602 1147/2031/559 1146/2026/561 +f 1204/2098/601 1147/2031/559 1203/2096/604 +f 1204/2098/601 1149/2033/556 1148/2034/558 +f 1206/2100/600 1149/2033/556 1205/2099/572 +f 1207/2103/599 1150/2038/554 1206/2100/600 +f 1208/2102/603 1151/2041/553 1207/2101/599 +f 1201/2095/577 1152/2039/550 1208/2102/603 +f 911/1737/469 902/1766/470 889/1738/470 +f 905/1740/471 907/1743/472 895/1741/472 +f 907/1743/472 909/1745/473 897/1744/473 +f 909/1745/473 911/1737/469 899/1739/469 +f 894/1747/474 892/2104/474 890/1748/474 +f 890/1748/474 900/2105/474 898/2106/474 +f 898/2106/474 896/1746/474 890/1748/474 +f 889/1738/470 902/1766/470 903/1749/475 +f 903/1749/475 905/1777/471 893/1751/471 +f 910/1752/476 898/2107/476 900/1753/477 +f 896/1755/478 898/2107/476 910/1752/476 +f 894/1757/479 896/1755/478 908/1756/478 +f 892/1759/480 894/2108/479 906/1760/479 +f 901/1762/481 890/2109/481 892/1759/480 +f 906/1760/482 922/2110/482 924/1763/483 +f 903/1749/484 902/1766/485 916/1764/485 +f 902/1766/485 911/1737/486 913/1767/486 +f 909/1745/487 917/1769/487 913/1767/486 +f 904/1761/483 924/1763/483 915/1768/488 +f 907/1743/489 919/1772/489 917/1769/487 +f 900/1753/477 890/2109/481 901/1762/481 +f 915/1768/470 916/1764/470 913/1767/469 +f 914/1770/469 913/1767/469 917/1769/473 +f 918/1771/473 917/1769/473 919/1772/472 +f 922/1774/471 920/1773/472 919/1772/472 +f 924/1763/475 922/2110/471 921/1776/471 +f 924/1763/475 923/1765/475 916/1764/470 +f 908/1756/490 920/1773/490 922/1774/482 +f 901/1762/488 915/1768/488 914/1770/491 +f 910/1752/492 918/1771/492 920/1773/490 +f 903/1749/484 923/1765/484 921/1776/493 +f 912/1754/491 914/1770/491 918/1771/492 +f 905/1740/493 921/1775/493 919/1772/489 +f 925/1778/494 926/1789/504 928/1779/495 +f 927/1781/496 928/2111/495 930/1782/497 +f 930/1782/497 932/1785/500 931/1784/499 +f 932/1785/500 934/1787/502 933/1786/501 +f 934/1787/502 936/2112/672 935/1788/503 +f 935/1788/503 936/2112/672 926/1789/504 +f 937/1790/505 938/1802/515 940/1791/506 +f 940/1793/506 942/1796/509 941/1794/508 +f 942/1796/509 944/1798/511 943/1797/510 +f 944/1798/511 946/2113/673 945/1799/512 +f 945/1799/512 946/2113/673 948/1800/513 +f 947/1801/514 948/1800/513 938/1802/515 +f 949/1803/516 950/1814/526 952/1804/517 +f 951/1806/518 952/2114/517 954/1807/519 +f 954/1807/519 956/1810/522 955/1809/521 +f 956/1810/522 958/1812/524 957/1811/523 +f 958/1812/524 960/2115/674 959/1813/525 +f 959/1813/525 960/2115/674 950/1814/526 +f 961/1815/527 962/1826/537 964/1816/528 +f 963/1818/529 964/2116/528 966/1819/530 +f 966/1819/530 968/1822/533 967/1821/532 +f 968/1822/533 970/1824/535 969/1823/534 +f 970/1824/535 972/2117/675 971/1825/536 +f 971/1825/536 972/2117/675 962/1826/537 +f 974/1827/538 976/2118/541 975/1828/539 +f 976/1830/541 978/2119/676 977/1831/542 +f 977/1831/542 978/2119/676 980/1833/543 +f 979/1834/544 980/1833/543 982/1835/545 +f 981/1836/546 982/1835/545 984/1837/547 +f 984/1837/547 974/1827/538 973/1829/540 +f 993/1839/549 994/1854/563 986/1840/550 +f 986/1840/550 994/1854/563 995/1842/552 +f 995/1842/552 996/1845/555 988/1844/554 +f 996/1845/555 997/1857/566 989/1846/556 +f 989/1846/556 997/1857/566 998/1847/557 +f 998/1847/557 999/1860/569 991/1849/559 +f 991/1850/559 999/1862/569 1000/1851/560 +f 1000/1851/560 993/1839/549 985/1841/551 +f 1001/1853/562 1002/2120/573 994/1854/563 +f 994/1854/563 1002/2120/573 1003/1855/564 +f 1003/1855/564 1004/1856/565 996/1845/555 +f 1004/1856/565 1005/1858/567 997/1857/566 +f 1005/1858/567 1006/1859/568 998/1847/557 +f 1006/1859/568 1007/2121/570 999/1860/569 +f 1007/1861/570 1008/1863/571 1000/1851/560 +f 1008/1863/571 1001/1853/562 993/1839/549 +f 1009/1864/572 1010/1867/574 1002/1865/573 +f 1010/1867/574 1011/1869/575 1003/1868/564 +f 1011/1869/575 1012/1871/576 1004/1870/565 +f 1012/1871/576 1013/1873/577 1005/1872/567 +f 1013/1873/577 1014/1875/578 1006/1874/568 +f 1014/1875/578 1015/1886/579 1007/1876/570 +f 1015/1877/579 1016/1880/580 1008/1878/571 +f 1016/1880/580 1009/1864/572 1001/1866/562 +f 1009/1864/572 1017/1890/556 1018/1881/581 +f 1018/1881/581 1019/1882/582 1011/1869/575 +f 1019/1882/582 1020/1883/583 1012/1871/576 +f 1020/1883/583 1021/1884/551 1013/1873/577 +f 1021/1884/551 1022/1885/584 1014/1875/578 +f 1022/1885/584 1023/1895/585 1015/1886/579 +f 1023/1887/585 1024/1888/586 1016/1880/580 +f 1024/1888/586 1017/1890/556 1009/1864/572 +f 1025/1889/566 1026/1898/591 1018/1881/581 +f 1018/1881/581 1026/1898/591 1027/1891/587 +f 1019/1882/582 1027/1891/587 1028/1892/588 +f 1020/1883/583 1028/1892/588 1029/1893/549 +f 1029/1893/549 1030/1903/595 1022/1885/584 +f 1022/1885/584 1030/1903/595 1031/1894/589 +f 1023/1887/585 1031/1906/589 1032/1896/590 +f 1032/1896/590 1025/1889/566 1017/1890/556 +f 1033/1897/567 1034/1899/592 1026/1898/591 +f 1034/1899/592 1035/1900/593 1027/1891/587 +f 1035/1900/593 1036/1901/594 1028/1892/588 +f 1036/1901/594 1037/1902/562 1029/1893/549 +f 1037/1902/562 1038/1904/596 1030/1903/595 +f 1038/1904/596 1039/1912/597 1031/1894/589 +f 1039/1905/597 1040/1907/598 1032/1896/590 +f 1040/1907/598 1033/1897/567 1025/1889/566 +f 1041/1908/577 1042/1914/603 1034/1899/592 +f 1034/1899/592 1042/1914/603 1043/1909/599 +f 1043/1909/599 1044/1910/600 1036/1901/594 +f 1044/1910/600 1045/1915/572 1037/1902/562 +f 1037/1902/562 1045/1915/572 1046/1911/601 +f 1046/1911/601 1047/1916/604 1039/1912/597 +f 1039/1905/597 1047/1917/604 1048/1913/602 +f 1048/1913/602 1041/1908/577 1033/1897/567 +f 985/1841/551 986/1840/550 1042/1914/603 +f 986/1840/550 987/1843/553 1043/1909/599 +f 987/1843/553 988/1844/554 1044/1910/600 +f 988/1844/554 989/1846/556 1045/1915/572 +f 989/1846/556 990/1848/558 1046/1911/601 +f 990/1848/558 991/1849/559 1047/1916/604 +f 991/1850/559 992/1852/561 1048/1913/602 +f 1048/1913/602 992/1852/561 985/1841/551 +f 1049/1918/470 1062/1931/470 1071/1919/469 +f 1055/1921/472 1067/1925/472 1065/1922/471 +f 1057/1924/473 1069/1926/473 1067/1925/472 +f 1059/1920/469 1071/1919/469 1069/1926/473 +f 1050/1929/605 1052/2122/605 1054/2123/605 +f 1054/2123/605 1056/2124/605 1050/1929/605 +f 1056/2124/605 1058/1927/605 1050/1929/605 +f 1051/1930/475 1063/1933/475 1062/1931/470 +f 1053/1932/471 1065/1960/471 1063/1933/475 +f 1072/1934/606 1060/1952/606 1058/1935/607 +f 1068/1937/608 1070/1936/607 1058/1935/607 +f 1068/1937/608 1056/1938/608 1054/1939/609 +f 1066/1941/609 1054/2125/609 1052/1942/610 +f 1064/1943/610 1052/1942/610 1050/1944/611 +f 1084/1946/484 1082/1958/493 1066/1941/493 +f 1083/1947/483 1076/1948/488 1062/1931/488 +f 1076/1948/488 1073/1949/491 1071/1919/491 +f 1073/1949/491 1077/2126/492 1069/1926/492 +f 1075/1950/485 1084/1946/484 1064/1943/484 +f 1069/1926/492 1077/2126/492 1079/1951/490 +f 1072/1934/606 1061/1945/611 1050/1944/611 +f 1074/1953/469 1073/1949/469 1076/1948/470 +f 1078/1954/473 1077/2126/473 1073/1949/469 +f 1079/1951/472 1077/2126/473 1078/1954/473 +f 1081/1956/471 1079/1951/472 1080/1955/472 +f 1083/1947/475 1081/1959/471 1082/1958/471 +f 1076/1948/470 1083/1947/475 1084/1946/475 +f 1066/1940/493 1082/1957/493 1080/1955/489 +f 1074/1953/486 1075/1950/485 1061/1945/485 +f 1068/1937/489 1080/1955/489 1078/1954/487 +f 1081/1959/482 1083/1947/483 1063/1933/483 +f 1078/1954/487 1074/1953/486 1072/1934/486 +f 1079/1951/490 1081/1956/482 1065/1922/482 +f 1085/1961/612 1087/2127/615 1088/1962/613 +f 1087/1964/615 1089/1968/618 1090/1965/616 +f 1091/1967/617 1092/1970/620 1090/1965/616 +f 1093/1969/619 1094/1972/622 1092/1970/620 +f 1095/1971/621 1096/1973/623 1094/1972/622 +f 1095/1971/621 1085/1961/612 1086/1963/614 +f 1097/1974/624 1099/2128/628 1100/1975/625 +f 1101/1977/627 1102/1981/630 1100/1978/625 +f 1103/1980/629 1104/1983/632 1102/1981/630 +f 1105/1982/631 1106/1985/634 1104/1983/632 +f 1105/1982/631 1107/1986/635 1108/1984/633 +f 1107/1986/635 1097/1974/624 1098/1976/626 +f 1109/1987/636 1111/2129/639 1112/1988/637 +f 1111/1990/639 1113/1994/642 1114/1991/640 +f 1115/1993/641 1116/1996/644 1114/1991/640 +f 1117/1995/643 1118/1998/646 1116/1996/644 +f 1119/1997/645 1120/1999/647 1118/1998/646 +f 1119/1997/645 1109/1987/636 1110/1989/638 +f 1121/2000/648 1123/2130/651 1124/2001/649 +f 1123/2003/651 1125/2007/654 1126/2004/652 +f 1127/2006/653 1128/2009/656 1126/2004/652 +f 1129/2008/655 1130/2011/658 1128/2009/656 +f 1131/2010/657 1132/2012/659 1130/2011/658 +f 1131/2010/657 1121/2000/648 1122/2002/650 +f 1135/2013/660 1136/2131/664 1134/2014/661 +f 1137/2016/663 1138/2020/666 1136/2017/664 +f 1137/2016/663 1139/2021/667 1140/2019/665 +f 1139/2021/667 1141/2023/669 1142/2022/668 +f 1141/2023/669 1143/2025/671 1144/2024/670 +f 1133/2015/662 1134/2014/661 1144/2024/670 +f 1146/2026/561 1154/2030/560 1153/2027/549 +f 1146/2026/561 1147/2031/559 1155/2029/569 +f 1147/2031/559 1148/2034/558 1156/2032/557 +f 1149/2033/556 1157/2036/566 1156/2032/557 +f 1149/2033/556 1150/2038/554 1158/2035/555 +f 1151/2037/553 1159/2132/552 1158/2035/555 +f 1152/2039/550 1160/2042/563 1159/2040/552 +f 1145/2028/551 1153/2027/549 1160/2042/563 +f 1153/2027/549 1154/2030/560 1162/2043/571 +f 1155/2029/569 1163/2046/570 1162/2043/571 +f 1155/2029/569 1156/2032/557 1164/2045/568 +f 1157/2036/566 1165/2047/567 1164/2045/568 +f 1158/2035/555 1166/2049/565 1165/2047/567 +f 1158/2035/555 1159/2132/552 1167/2048/564 +f 1160/2042/563 1168/2051/573 1167/2050/564 +f 1153/2027/549 1161/2044/562 1168/2051/573 +f 1161/2052/562 1162/2056/571 1170/2053/580 +f 1163/2055/570 1171/2058/579 1170/2053/580 +f 1163/2055/570 1164/2060/568 1172/2057/578 +f 1165/2059/567 1173/2062/577 1172/2057/578 +f 1166/2061/565 1174/2064/576 1173/2062/577 +f 1166/2061/565 1167/2133/564 1175/2063/575 +f 1168/2065/573 1176/2068/574 1175/2066/575 +f 1161/2052/562 1169/2054/572 1176/2068/574 +f 1170/2053/580 1178/2070/586 1177/2069/556 +f 1171/2058/579 1179/2072/585 1178/2070/586 +f 1171/2058/579 1172/2057/578 1180/2071/584 +f 1173/2062/577 1181/2073/551 1180/2071/584 +f 1174/2064/576 1182/2074/583 1181/2073/551 +f 1175/2063/575 1183/2134/582 1182/2074/583 +f 1175/2066/575 1176/2068/574 1184/2075/581 +f 1169/2054/572 1177/2069/556 1184/2075/581 +f 1178/2070/586 1186/2079/590 1185/2077/566 +f 1178/2070/586 1179/2072/585 1187/2078/589 +f 1180/2071/584 1188/2080/595 1187/2078/589 +f 1181/2073/551 1189/2081/549 1188/2080/595 +f 1182/2074/583 1190/2083/588 1189/2081/549 +f 1182/2074/583 1183/2134/582 1191/2082/587 +f 1184/2075/581 1192/2085/591 1191/2084/587 +f 1184/2075/581 1177/2069/556 1185/2077/566 +f 1186/2079/590 1194/2088/598 1193/2086/567 +f 1186/2079/590 1187/2078/589 1195/2087/597 +f 1188/2080/595 1196/2090/596 1195/2087/597 +f 1188/2080/595 1189/2081/549 1197/2089/562 +f 1190/2083/588 1198/2092/594 1197/2089/562 +f 1190/2083/588 1191/2082/587 1199/2091/593 +f 1192/2085/591 1200/2094/592 1199/2093/593 +f 1185/2077/566 1193/2086/567 1200/2094/592 +f 1194/2088/598 1202/2097/602 1201/2095/577 +f 1194/2088/598 1195/2087/597 1203/2096/604 +f 1196/2090/596 1204/2098/601 1203/2096/604 +f 1197/2089/562 1205/2099/572 1204/2098/601 +f 1198/2092/594 1206/2100/600 1205/2099/572 +f 1199/2091/593 1207/2103/599 1206/2100/600 +f 1200/2094/592 1208/2102/603 1207/2101/599 +f 1193/2086/567 1201/2095/577 1208/2102/603 +f 1202/2097/602 1146/2026/561 1145/2028/551 +f 1202/2097/602 1203/2096/604 1147/2031/559 +f 1204/2098/601 1148/2034/558 1147/2031/559 +f 1204/2098/601 1205/2099/572 1149/2033/556 +f 1206/2100/600 1150/2038/554 1149/2033/556 +f 1207/2103/599 1151/2037/553 1150/2038/554 +f 1208/2102/603 1152/2039/550 1151/2041/553 +f 1201/2095/577 1145/2028/551 1152/2039/550 +o spinny_upper +v 0.127409 2.435693 -0.570525 +v 0.311433 2.435693 -0.573891 +v 0.127409 2.450696 -0.579187 +v 0.311433 2.447781 -0.580870 +v 0.127409 2.450696 -0.596510 +v 0.311433 2.447781 -0.594827 +v 0.127409 2.435693 -0.605172 +v 0.311433 2.435693 -0.601806 +v 0.127409 2.420691 -0.596510 +v 0.311433 2.423605 -0.594827 +v 0.127409 2.420691 -0.579187 +v 0.311433 2.423605 -0.580870 +v 0.296158 2.435693 -0.570525 +v 0.244484 2.435693 -0.570525 +v 0.244484 2.450696 -0.579187 +v 0.296158 2.450696 -0.579187 +v 0.244484 2.450696 -0.596510 +v 0.296158 2.450696 -0.596510 +v 0.244484 2.435693 -0.605172 +v 0.296158 2.435693 -0.605172 +v 0.244484 2.420691 -0.596510 +v 0.296158 2.420691 -0.596510 +v 0.244484 2.420691 -0.579187 +v 0.296158 2.420691 -0.579187 +v 0.248187 2.403485 -0.569253 +v 0.292455 2.403485 -0.569253 +v 0.292455 2.435693 -0.550658 +v 0.248187 2.435693 -0.550658 +v 0.248187 2.403485 -0.606444 +v 0.292455 2.403485 -0.606444 +v 0.248187 2.435693 -0.625039 +v 0.292455 2.435693 -0.625039 +v 0.248187 2.467901 -0.606444 +v 0.292455 2.467901 -0.606444 +v 0.248187 2.467901 -0.569253 +v 0.292455 2.467901 -0.569253 +v 0.264576 2.450435 -0.571215 +v 0.375908 2.663330 -0.587129 +v 0.252583 2.455839 -0.579309 +v 0.363915 2.668733 -0.595223 +v 0.252527 2.454715 -0.594713 +v 0.363860 2.667610 -0.610627 +v 0.264465 2.448188 -0.602023 +v 0.375797 2.661082 -0.617937 +v 0.276457 2.442784 -0.593929 +v 0.387789 2.655678 -0.609843 +v 0.276513 2.443907 -0.578525 +v 0.387845 2.656802 -0.594439 +v 0.265024 2.453681 -0.594850 +v 0.375908 2.504334 -0.806877 +v 0.253032 2.447653 -0.602490 +v 0.363915 2.498306 -0.814518 +v 0.252976 2.432656 -0.606182 +v 0.363859 2.483309 -0.818209 +v 0.264913 2.423687 -0.602232 +v 0.375797 2.474340 -0.814260 +v 0.276906 2.429715 -0.594592 +v 0.387789 2.480368 -0.806619 +v 0.276962 2.444712 -0.590900 +v 0.387845 2.495365 -0.802928 +v 0.264576 2.432207 -0.605240 +v 0.375908 2.246909 -0.719820 +v 0.252583 2.423077 -0.601869 +v 0.363915 2.237780 -0.716448 +v 0.252527 2.414932 -0.588746 +v 0.363859 2.229635 -0.703326 +v 0.264465 2.415917 -0.578996 +v 0.375797 2.230619 -0.693575 +v 0.276457 2.425046 -0.582368 +v 0.387789 2.239748 -0.696947 +v 0.276513 2.433191 -0.595490 +v 0.387845 2.247894 -0.710069 +v 0.264576 2.415689 -0.588028 +v 0.375908 2.252807 -0.450017 +v 0.252583 2.416074 -0.578304 +v 0.363915 2.253193 -0.440293 +v 0.252527 2.426037 -0.566502 +v 0.363860 2.263156 -0.428491 +v 0.264465 2.435615 -0.564425 +v 0.375797 2.272733 -0.426414 +v 0.276457 2.435229 -0.574150 +v 0.387789 2.272347 -0.436139 +v 0.276513 2.425266 -0.585951 +v 0.387845 2.262384 -0.447940 +v 0.269238 2.426954 -0.566999 +v 0.375908 2.512899 -0.361717 +v 0.257245 2.436322 -0.564361 +v 0.363915 2.522266 -0.359079 +v 0.257189 2.450624 -0.570190 +v 0.363860 2.536569 -0.364907 +v 0.269127 2.455559 -0.578657 +v 0.375797 2.541504 -0.373374 +v 0.281119 2.446192 -0.581295 +v 0.387789 2.532136 -0.376013 +v 0.281175 2.431889 -0.575466 +v 0.387845 2.517833 -0.370184 +v 0.380466 2.692867 -0.481324 +v 0.398360 2.686019 -0.484160 +v 0.405772 2.669487 -0.491008 +v 0.398360 2.652956 -0.497855 +v 0.380466 2.646108 -0.500692 +v 0.362572 2.652956 -0.497855 +v 0.355160 2.669487 -0.491008 +v 0.362572 2.686019 -0.484160 +v 0.380466 2.542218 -0.330675 +v 0.398360 2.539381 -0.337523 +v 0.405772 2.532534 -0.354054 +v 0.398360 2.525686 -0.370586 +v 0.380466 2.522850 -0.377434 +v 0.362572 2.525686 -0.370586 +v 0.355160 2.532534 -0.354054 +v 0.362572 2.539381 -0.337523 +v 0.380466 2.329168 -0.330675 +v 0.398360 2.332005 -0.337523 +v 0.405772 2.338852 -0.354054 +v 0.398360 2.345700 -0.370586 +v 0.380466 2.348536 -0.377434 +v 0.362572 2.345700 -0.370586 +v 0.355160 2.338852 -0.354054 +v 0.362572 2.332005 -0.337523 +v 0.380466 2.178519 -0.481324 +v 0.398360 2.185367 -0.484160 +v 0.405772 2.201899 -0.491008 +v 0.398360 2.218431 -0.497856 +v 0.380466 2.225278 -0.500692 +v 0.362572 2.218431 -0.497856 +v 0.355160 2.201899 -0.491008 +v 0.362572 2.185367 -0.484160 +v 0.380466 2.178519 -0.694373 +v 0.398360 2.185367 -0.691537 +v 0.405772 2.201899 -0.684689 +v 0.398360 2.218431 -0.677842 +v 0.380466 2.225278 -0.675005 +v 0.362572 2.218431 -0.677842 +v 0.355160 2.201899 -0.684689 +v 0.362572 2.185367 -0.691537 +v 0.380466 2.329168 -0.845022 +v 0.398360 2.332005 -0.838174 +v 0.405772 2.338852 -0.821643 +v 0.398360 2.345700 -0.805111 +v 0.380466 2.348536 -0.798263 +v 0.362572 2.345700 -0.805111 +v 0.355160 2.338852 -0.821643 +v 0.362572 2.332005 -0.838174 +v 0.380466 2.542218 -0.845022 +v 0.398360 2.539382 -0.838174 +v 0.405772 2.532534 -0.821643 +v 0.398360 2.525686 -0.805111 +v 0.380466 2.522850 -0.798263 +v 0.362572 2.525686 -0.805111 +v 0.355160 2.532534 -0.821643 +v 0.362572 2.539382 -0.838174 +v 0.380466 2.692867 -0.694373 +v 0.398360 2.686019 -0.691537 +v 0.405772 2.669487 -0.684689 +v 0.398360 2.652956 -0.677842 +v 0.380466 2.646108 -0.675005 +v 0.362572 2.652956 -0.677842 +v 0.355160 2.669487 -0.684689 +v 0.362572 2.686019 -0.691537 +v -0.044410 2.435693 -0.570525 +v -0.228434 2.435693 -0.573891 +v -0.044410 2.450695 -0.579187 +v -0.228434 2.447781 -0.580870 +v -0.044410 2.450695 -0.596510 +v -0.228434 2.447781 -0.594827 +v -0.044410 2.435693 -0.605172 +v -0.228434 2.435693 -0.601806 +v -0.044410 2.420690 -0.596510 +v -0.228434 2.423605 -0.594827 +v -0.044410 2.420690 -0.579187 +v -0.228434 2.423605 -0.580870 +v -0.213159 2.435693 -0.570525 +v -0.161486 2.435693 -0.570525 +v -0.161486 2.450695 -0.579187 +v -0.213159 2.450695 -0.579187 +v -0.161486 2.450695 -0.596510 +v -0.213159 2.450695 -0.596510 +v -0.161486 2.435693 -0.605172 +v -0.213159 2.435693 -0.605172 +v -0.161486 2.420690 -0.596510 +v -0.213159 2.420690 -0.596510 +v -0.161486 2.420690 -0.579187 +v -0.213159 2.420690 -0.579187 +v -0.165188 2.403485 -0.569253 +v -0.209457 2.403485 -0.569253 +v -0.209457 2.435693 -0.550658 +v -0.165188 2.435693 -0.550658 +v -0.165188 2.403485 -0.606444 +v -0.209457 2.403485 -0.606444 +v -0.165188 2.435693 -0.625039 +v -0.209457 2.435693 -0.625039 +v -0.165188 2.467901 -0.606444 +v -0.209457 2.467901 -0.606444 +v -0.165188 2.467901 -0.569253 +v -0.209457 2.467901 -0.569253 +v -0.181577 2.450435 -0.571215 +v -0.292909 2.663329 -0.587129 +v -0.169584 2.455838 -0.579309 +v -0.280916 2.668733 -0.595223 +v -0.169529 2.454715 -0.594713 +v -0.280861 2.667610 -0.610627 +v -0.181466 2.448187 -0.602023 +v -0.292798 2.661082 -0.617937 +v -0.193459 2.442784 -0.593929 +v -0.304791 2.655678 -0.609843 +v -0.193514 2.443907 -0.578525 +v -0.304846 2.656802 -0.594439 +v -0.182026 2.453681 -0.594850 +v -0.292909 2.504334 -0.806877 +v -0.170033 2.447653 -0.602490 +v -0.280916 2.498306 -0.814518 +v -0.169977 2.432656 -0.606182 +v -0.280861 2.483309 -0.818209 +v -0.181915 2.423687 -0.602232 +v -0.292798 2.474340 -0.814260 +v -0.193907 2.429715 -0.594592 +v -0.304791 2.480368 -0.806620 +v -0.193963 2.444712 -0.590901 +v -0.304846 2.495365 -0.802928 +v -0.181577 2.432206 -0.605240 +v -0.292909 2.246909 -0.719820 +v -0.169584 2.423077 -0.601869 +v -0.280916 2.237780 -0.716448 +v -0.169529 2.414932 -0.588746 +v -0.280861 2.229635 -0.703326 +v -0.181466 2.415916 -0.578996 +v -0.292798 2.230619 -0.693575 +v -0.193459 2.425046 -0.582368 +v -0.304791 2.239748 -0.696947 +v -0.193514 2.433191 -0.595490 +v -0.304846 2.247893 -0.710069 +v -0.181577 2.415688 -0.588028 +v -0.292909 2.252807 -0.450017 +v -0.169584 2.416074 -0.578304 +v -0.280916 2.253192 -0.440293 +v -0.169529 2.426037 -0.566502 +v -0.280861 2.263155 -0.428491 +v -0.181466 2.435614 -0.564425 +v -0.292798 2.272733 -0.426414 +v -0.193459 2.435229 -0.574150 +v -0.304791 2.272347 -0.436139 +v -0.193514 2.425266 -0.585951 +v -0.304846 2.262384 -0.447940 +v -0.186239 2.426954 -0.566999 +v -0.292909 2.512898 -0.361717 +v -0.174246 2.436321 -0.564361 +v -0.280916 2.522266 -0.359079 +v -0.174191 2.450624 -0.570190 +v -0.280861 2.536569 -0.364907 +v -0.186128 2.455559 -0.578657 +v -0.292798 2.541503 -0.373374 +v -0.198121 2.446191 -0.581295 +v -0.304791 2.532136 -0.376013 +v -0.198176 2.431889 -0.575466 +v -0.304846 2.517833 -0.370184 +v -0.297467 2.692866 -0.481324 +v -0.315361 2.686019 -0.484160 +v -0.322773 2.669487 -0.491008 +v -0.315361 2.652955 -0.497855 +v -0.297467 2.646108 -0.500692 +v -0.279574 2.652955 -0.497855 +v -0.272162 2.669487 -0.491008 +v -0.279574 2.686019 -0.484160 +v -0.297467 2.542217 -0.330675 +v -0.315361 2.539381 -0.337523 +v -0.322773 2.532533 -0.354054 +v -0.315361 2.525686 -0.370586 +v -0.297467 2.522849 -0.377434 +v -0.279574 2.525686 -0.370586 +v -0.272162 2.532533 -0.354054 +v -0.279574 2.539381 -0.337523 +v -0.297467 2.329168 -0.330675 +v -0.315361 2.332004 -0.337523 +v -0.322773 2.338852 -0.354054 +v -0.315361 2.345700 -0.370586 +v -0.297467 2.348536 -0.377434 +v -0.279574 2.345700 -0.370586 +v -0.272162 2.338852 -0.354054 +v -0.279574 2.332004 -0.337523 +v -0.297467 2.178519 -0.481324 +v -0.315361 2.185367 -0.484160 +v -0.322773 2.201899 -0.491008 +v -0.315361 2.218430 -0.497856 +v -0.297467 2.225278 -0.500692 +v -0.279574 2.218430 -0.497856 +v -0.272162 2.201899 -0.491008 +v -0.279574 2.185367 -0.484160 +v -0.297467 2.178519 -0.694373 +v -0.315361 2.185367 -0.691537 +v -0.322773 2.201899 -0.684689 +v -0.315361 2.218430 -0.677842 +v -0.297467 2.225278 -0.675005 +v -0.279574 2.218430 -0.677842 +v -0.272162 2.201899 -0.684689 +v -0.279574 2.185367 -0.691537 +v -0.297467 2.329168 -0.845022 +v -0.315361 2.332004 -0.838175 +v -0.322773 2.338852 -0.821643 +v -0.315361 2.345700 -0.805111 +v -0.297467 2.348536 -0.798263 +v -0.279574 2.345700 -0.805111 +v -0.272162 2.338852 -0.821643 +v -0.279574 2.332004 -0.838175 +v -0.297467 2.542218 -0.845022 +v -0.315361 2.539381 -0.838174 +v -0.322773 2.532534 -0.821643 +v -0.315361 2.525686 -0.805111 +v -0.297467 2.522850 -0.798263 +v -0.279574 2.525686 -0.805111 +v -0.272162 2.532534 -0.821643 +v -0.279574 2.539381 -0.838174 +v -0.297467 2.692866 -0.694373 +v -0.315361 2.686019 -0.691537 +v -0.322773 2.669487 -0.684689 +v -0.315361 2.652955 -0.677842 +v -0.297467 2.646107 -0.675005 +v -0.279574 2.652955 -0.677842 +v -0.272162 2.669487 -0.684689 +v -0.279574 2.686019 -0.691537 +vt 0.667698 0.362762 +vt 0.640199 0.358261 +vt 0.667737 0.359326 +vt 0.640924 0.375165 +vt 0.667891 0.369730 +vt 0.668100 0.373751 +vt 0.640202 0.370763 +vt 0.667750 0.366229 +vt 0.640072 0.366415 +vt 0.797021 0.387656 +vt 0.799345 0.386315 +vt 0.801670 0.390340 +vt 0.640507 0.354283 +vt 0.667871 0.355916 +vt 0.668100 0.352523 +vt 0.625761 0.363844 +vt 0.629027 0.361047 +vt 0.628740 0.364363 +vt 0.624989 0.366272 +vt 0.627746 0.367605 +vt 0.623515 0.368301 +vt 0.625501 0.370236 +vt 0.624459 0.355430 +vt 0.625663 0.350017 +vt 0.627780 0.353840 +vt 0.625518 0.358363 +vt 0.628748 0.357581 +vt 0.631848 0.353216 +vt 0.636858 0.357395 +vt 0.637511 0.352990 +vt 0.640110 0.362279 +vt 0.636532 0.361474 +vt 0.632177 0.357754 +vt 0.636165 0.365588 +vt 0.632064 0.361641 +vt 0.631496 0.365400 +vt 0.635666 0.370261 +vt 0.630110 0.369320 +vt 0.626558 0.373815 +vt 0.635872 0.378285 +vt 0.639755 0.347383 +vt 0.641864 0.350415 +vt 0.272875 0.980430 +vt 0.275844 0.934182 +vt 0.275844 0.980475 +vt 0.258029 0.980475 +vt 0.260998 0.934183 +vt 0.260998 0.980475 +vt 0.263967 0.980430 +vt 0.263967 0.934138 +vt 0.266937 0.980386 +vt 0.266937 0.934093 +vt 0.269906 0.980386 +vt 0.272875 0.934138 +vt 0.069661 0.912352 +vt 0.022650 0.909383 +vt 0.069673 0.909383 +vt 0.022650 0.927199 +vt 0.069660 0.924230 +vt 0.069673 0.927199 +vt 0.022636 0.924230 +vt 0.069634 0.921260 +vt 0.022611 0.921260 +vt 0.069622 0.918291 +vt 0.022613 0.915321 +vt 0.069636 0.915321 +vt 0.022638 0.912352 +vt 0.510857 0.889009 +vt 0.507887 0.936025 +vt 0.507887 0.888986 +vt 0.525704 0.888986 +vt 0.522734 0.936025 +vt 0.522734 0.888985 +vt 0.519765 0.889008 +vt 0.519765 0.936048 +vt 0.516795 0.889032 +vt 0.516795 0.936071 +vt 0.513826 0.889032 +vt 0.510856 0.936049 +vt 0.235523 0.934138 +vt 0.232554 0.980386 +vt 0.232554 0.934093 +vt 0.250369 0.934093 +vt 0.247400 0.980386 +vt 0.247400 0.934093 +vt 0.244431 0.934138 +vt 0.244431 0.980430 +vt 0.241462 0.934182 +vt 0.241462 0.980475 +vt 0.238492 0.934183 +vt 0.235523 0.980431 +vt 0.653181 0.902823 +vt 0.650212 0.855426 +vt 0.653181 0.855373 +vt 0.668027 0.902875 +vt 0.665058 0.855446 +vt 0.668027 0.855426 +vt 0.662089 0.902864 +vt 0.662089 0.855415 +vt 0.659120 0.902812 +vt 0.659120 0.855362 +vt 0.656150 0.902791 +vt 0.656150 0.855341 +vt 0.025683 0.826823 +vt 0.021884 0.789889 +vt 0.025544 0.789862 +vt 0.018782 0.826867 +vt 0.018400 0.789856 +vt 0.014878 0.789795 +vt 0.015279 0.826832 +vt 0.011142 0.789754 +vt 0.011415 0.826831 +vt 0.007404 0.789713 +vt 0.007506 0.826837 +vt 0.003876 0.789648 +vt 0.032732 0.826779 +vt 0.029201 0.789834 +vt 0.032679 0.789870 +vt 0.029242 0.826771 +vt 0.025720 0.865955 +vt 0.022157 0.826877 +vt 0.021801 0.865308 +vt 0.015085 0.862608 +vt 0.011727 0.862107 +vt 0.008295 0.862683 +vt 0.003872 0.826817 +vt 0.029722 0.865385 +vt 0.025994 0.565415 +vt 0.022202 0.604746 +vt 0.021967 0.566009 +vt 0.018260 0.567466 +vt 0.018693 0.604681 +vt 0.014786 0.568861 +vt 0.015069 0.604588 +vt 0.011355 0.569425 +vt 0.011185 0.604506 +vt 0.008031 0.568914 +vt 0.007334 0.604417 +vt 0.004839 0.567623 +vt 0.032684 0.604841 +vt 0.029929 0.566050 +vt 0.033402 0.567439 +vt 0.029299 0.604771 +vt 0.025502 0.641726 +vt 0.025772 0.604759 +vt 0.021844 0.641748 +vt 0.018359 0.641706 +vt 0.014837 0.641636 +vt 0.011099 0.641592 +vt 0.007360 0.641550 +vt 0.003830 0.604306 +vt 0.032636 0.641745 +vt 0.029158 0.641705 +vt 0.021831 0.678781 +vt 0.018346 0.678743 +vt 0.014827 0.678677 +vt 0.011097 0.678636 +vt 0.007366 0.678596 +vt 0.003834 0.641484 +vt 0.032643 0.678773 +vt 0.029159 0.678735 +vt 0.025505 0.715793 +vt 0.025495 0.678758 +vt 0.021841 0.715817 +vt 0.014836 0.715714 +vt 0.011107 0.715673 +vt 0.003857 0.715567 +vt 0.003846 0.678531 +vt 0.029169 0.715770 +vt 0.025517 0.752829 +vt 0.021853 0.752853 +vt 0.018355 0.715779 +vt 0.018367 0.752815 +vt 0.014848 0.752751 +vt 0.011118 0.752710 +vt 0.007376 0.715632 +vt 0.007387 0.752669 +vt 0.032664 0.752844 +vt 0.032653 0.715808 +vt 0.029180 0.752806 +vt 0.003867 0.752604 +vt 0.774087 0.364623 +vt 0.746460 0.361670 +vt 0.774047 0.361187 +vt 0.774240 0.354219 +vt 0.747273 0.348783 +vt 0.774450 0.350197 +vt 0.774100 0.357719 +vt 0.746551 0.353186 +vt 0.746422 0.357533 +vt 0.789362 0.387656 +vt 0.789362 0.390340 +vt 0.787038 0.391682 +vt 0.774220 0.368033 +vt 0.746549 0.365687 +vt 0.774450 0.371425 +vt 0.746857 0.369665 +vt 0.735376 0.362901 +vt 0.732111 0.360105 +vt 0.735089 0.359585 +vt 0.731339 0.357676 +vt 0.734095 0.356343 +vt 0.729864 0.355648 +vt 0.731851 0.353713 +vt 0.732013 0.373931 +vt 0.730809 0.368519 +vt 0.734129 0.370109 +vt 0.731867 0.365585 +vt 0.735098 0.366367 +vt 0.738198 0.370733 +vt 0.743861 0.370958 +vt 0.743208 0.366554 +vt 0.742881 0.362474 +vt 0.738526 0.366194 +vt 0.742016 0.353688 +vt 0.732274 0.362764 +vt 0.738414 0.362307 +vt 0.737846 0.358548 +vt 0.736460 0.354629 +vt 0.742222 0.345664 +vt 0.732908 0.350133 +vt 0.735961 0.378285 +vt 0.746104 0.376566 +vt 0.748214 0.373533 +vt 0.811899 0.970339 +vt 0.808930 0.924091 +vt 0.811899 0.924046 +vt 0.826746 0.970383 +vt 0.823776 0.924091 +vt 0.826746 0.924091 +vt 0.820807 0.970339 +vt 0.823776 0.970384 +vt 0.817838 0.970295 +vt 0.820807 0.924047 +vt 0.814869 0.970294 +vt 0.817838 0.924002 +vt 0.814869 0.924002 +vt 0.812160 0.913373 +vt 0.765149 0.916343 +vt 0.765137 0.913373 +vt 0.812159 0.901496 +vt 0.765149 0.898526 +vt 0.812172 0.898526 +vt 0.812134 0.904465 +vt 0.765136 0.901496 +vt 0.812122 0.907434 +vt 0.765111 0.904465 +vt 0.765112 0.910404 +vt 0.765099 0.907434 +vt 0.812135 0.910404 +vt 0.485381 0.936048 +vt 0.482411 0.889032 +vt 0.485381 0.889008 +vt 0.500228 0.936071 +vt 0.497258 0.889032 +vt 0.500228 0.889032 +vt 0.494289 0.936049 +vt 0.497258 0.936072 +vt 0.491320 0.936025 +vt 0.494289 0.889009 +vt 0.488350 0.936025 +vt 0.491320 0.888986 +vt 0.488350 0.888985 +vt 0.965791 0.003874 +vt 0.968760 0.050123 +vt 0.965791 0.050167 +vt 0.950945 0.003830 +vt 0.953915 0.050122 +vt 0.950945 0.050123 +vt 0.956884 0.003874 +vt 0.953914 0.003830 +vt 0.959853 0.003919 +vt 0.956884 0.050167 +vt 0.962822 0.003919 +vt 0.959853 0.050211 +vt 0.962822 0.050212 +vt 0.876485 0.910228 +vt 0.879454 0.862831 +vt 0.879454 0.910281 +vt 0.891331 0.910207 +vt 0.894301 0.862779 +vt 0.894301 0.910228 +vt 0.888362 0.862790 +vt 0.891331 0.862758 +vt 0.888362 0.910239 +vt 0.885393 0.862842 +vt 0.885393 0.910291 +vt 0.882424 0.862863 +vt 0.882424 0.910312 +vt 0.062775 0.641509 +vt 0.059389 0.604493 +vt 0.062914 0.604547 +vt 0.055631 0.641514 +vt 0.059115 0.641481 +vt 0.052110 0.641576 +vt 0.056014 0.604503 +vt 0.048373 0.641616 +vt 0.052511 0.604539 +vt 0.044635 0.641657 +vt 0.048647 0.604539 +vt 0.041107 0.641723 +vt 0.044738 0.604533 +vt 0.066432 0.641536 +vt 0.069963 0.604591 +vt 0.069910 0.641500 +vt 0.066474 0.604599 +vt 0.062951 0.565415 +vt 0.059033 0.566062 +vt 0.055567 0.567465 +vt 0.052316 0.568762 +vt 0.048959 0.569263 +vt 0.042074 0.567279 +vt 0.045526 0.568687 +vt 0.070633 0.567421 +vt 0.066954 0.565985 +vt 0.063226 0.865955 +vt 0.059433 0.826625 +vt 0.063004 0.826611 +vt 0.055492 0.863905 +vt 0.059198 0.865361 +vt 0.052300 0.826783 +vt 0.055924 0.826690 +vt 0.048586 0.861945 +vt 0.052017 0.862509 +vt 0.045263 0.862457 +vt 0.048416 0.826865 +vt 0.041061 0.827064 +vt 0.044565 0.826953 +vt 0.067160 0.865320 +vt 0.069915 0.826529 +vt 0.070633 0.863931 +vt 0.066530 0.826599 +vt 0.059076 0.789622 +vt 0.062734 0.789644 +vt 0.052068 0.789734 +vt 0.055591 0.789664 +vt 0.048331 0.789778 +vt 0.044592 0.789821 +vt 0.069867 0.789625 +vt 0.066389 0.789665 +vt 0.062727 0.752612 +vt 0.055577 0.752628 +vt 0.059063 0.752589 +vt 0.052058 0.752693 +vt 0.048328 0.752734 +vt 0.041077 0.752840 +vt 0.044597 0.752774 +vt 0.069875 0.752597 +vt 0.066390 0.752635 +vt 0.062736 0.715577 +vt 0.055587 0.715592 +vt 0.059072 0.715554 +vt 0.048338 0.715697 +vt 0.052068 0.715657 +vt 0.041088 0.715803 +vt 0.044608 0.715738 +vt 0.069885 0.715562 +vt 0.066400 0.715600 +vt 0.062748 0.678541 +vt 0.059084 0.678517 +vt 0.052079 0.678620 +vt 0.055599 0.678555 +vt 0.048349 0.678660 +vt 0.044619 0.678701 +vt 0.066411 0.678564 +vt 0.069896 0.678526 +vt 0.041098 0.678766 +vt 0.801670 0.387656 +vt 0.799345 0.391682 +vt 0.797021 0.390340 +vt 0.625924 0.361184 +vt 0.622584 0.352463 +vt 0.629612 0.345664 +vt 0.258029 0.934182 +vt 0.269906 0.934093 +vt 0.022599 0.918291 +vt 0.525704 0.936025 +vt 0.513826 0.936072 +vt 0.250369 0.980386 +vt 0.238492 0.980475 +vt 0.650212 0.902875 +vt 0.665058 0.902896 +vt 0.018335 0.863905 +vt 0.004842 0.864092 +vt 0.033402 0.863949 +vt 0.784714 0.390340 +vt 0.784714 0.387656 +vt 0.787038 0.386315 +vt 0.728934 0.371485 +vt 0.742515 0.358360 +vt 0.808930 0.970383 +vt 0.812172 0.916343 +vt 0.482411 0.936071 +vt 0.968760 0.003830 +vt 0.876485 0.862779 +vt 0.041103 0.604553 +vt 0.042071 0.863747 +vt 0.041066 0.789886 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.8660 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.2152 -0.8457 -0.4883 +vn 0.2152 -0.8457 0.4883 +vn 0.2152 0.0000 -0.9766 +vn 0.2152 0.8457 -0.4883 +vn 0.2152 0.8457 0.4883 +vn 0.2152 -0.0000 0.9766 +vn 0.9831 0.1587 -0.0916 +vn 0.9831 0.1587 0.0916 +vn -0.9831 0.1587 0.0916 +vn -0.9831 0.0000 0.1832 +vn -0.9831 -0.1587 0.0916 +vn -0.9831 -0.1587 -0.0916 +vn 0.9831 -0.0000 0.1832 +vn -0.9831 -0.0000 -0.1832 +vn 0.9831 0.0000 -0.1832 +vn 0.9831 -0.1587 0.0916 +vn 0.9831 -0.1587 -0.0916 +vn -0.9831 0.1587 -0.0916 +vn -0.0013 0.0752 0.9972 +vn -0.7649 0.4355 0.4747 +vn -0.7674 0.4364 0.4698 +vn -0.7685 0.3625 -0.5273 +vn -0.7709 0.3641 -0.5227 +vn -0.0085 -0.0701 -0.9975 +vn 0.0013 -0.0752 -0.9972 +vn 0.7649 -0.4355 -0.4747 +vn 0.7674 -0.4364 -0.4698 +vn 0.7685 -0.3625 0.5273 +vn 0.0084 0.0701 0.9975 +vn 0.0036 0.9722 0.2341 +vn -0.7691 0.5824 -0.2631 +vn -0.7690 0.5826 -0.2630 +vn -0.7757 -0.3873 -0.4982 +vn -0.7736 -0.3916 -0.4981 +vn -0.0076 -0.9717 -0.2361 +vn -0.0036 -0.9722 -0.2341 +vn 0.7691 -0.5824 0.2631 +vn 0.7757 0.3873 0.4982 +vn 0.7736 0.3916 0.4981 +vn 0.0076 0.9717 0.2361 +vn 0.0010 0.5263 -0.8503 +vn -0.7687 -0.0687 -0.6359 +vn -0.7701 -0.0706 -0.6341 +vn -0.7723 -0.5975 0.2158 +vn -0.7736 -0.5967 0.2134 +vn -0.0061 -0.5286 0.8489 +vn -0.0010 -0.5264 0.8503 +vn 0.7687 0.0687 0.6359 +vn 0.7701 0.0706 0.6341 +vn 0.7723 0.5975 -0.2158 +vn 0.0061 0.5286 -0.8489 +vn -0.0013 -0.6470 -0.7625 +vn -0.7649 -0.6313 -0.1281 +vn -0.7674 -0.6292 -0.1236 +vn -0.7685 0.0167 0.6397 +vn -0.7709 0.0127 0.6369 +vn -0.0084 0.6431 0.7658 +vn 0.0013 0.6470 0.7625 +vn 0.7649 0.6313 0.1281 +vn 0.7674 0.6292 0.1236 +vn 0.7685 -0.0167 -0.6397 +vn 0.0084 -0.6431 -0.7658 +vn 0.0020 -0.9228 0.3853 +vn -0.7755 -0.3271 0.5400 +vn 0.0114 -0.9245 0.3811 +vn -0.7797 -0.3191 0.5387 +vn -0.7840 0.6009 0.1558 +vn -0.0114 0.9245 -0.3811 +vn -0.0020 0.9228 -0.3853 +vn 0.7755 0.3271 -0.5399 +vn 0.7797 0.3191 -0.5388 +vn 0.7840 -0.6009 -0.1558 +vn 0.7846 -0.6000 -0.1565 +vn -0.0000 0.3827 0.9239 +vn 0.6630 0.6916 0.2865 +vn -0.0000 0.9239 0.3827 +vn 0.9955 0.0363 0.0876 +vn 0.9955 0.0876 0.0363 +vn 0.7574 -0.6033 -0.2499 +vn 0.7574 -0.2499 -0.6033 +vn 0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 -0.9239 +vn -0.7574 -0.6033 -0.2499 +vn -0.7574 -0.2499 -0.6033 +vn -0.9955 0.0876 0.0363 +vn -0.9955 0.0363 0.0876 +vn -0.6630 0.6916 0.2865 +vn -0.6630 0.2865 0.6916 +vn 0.0000 -0.3827 0.9239 +vn 0.6630 0.2865 0.6916 +vn 0.6630 -0.2865 0.6916 +vn 0.7574 0.2499 -0.6033 +vn 0.0000 0.3827 -0.9239 +vn -0.7574 0.2499 -0.6033 +vn -0.6630 -0.2865 0.6916 +vn 0.6630 -0.6916 0.2865 +vn 0.9955 -0.0363 0.0876 +vn 0.9955 -0.0876 0.0363 +vn 0.7574 0.6033 -0.2499 +vn 0.0000 0.9239 -0.3827 +vn -0.7574 0.6033 -0.2499 +vn -0.9955 -0.0363 0.0876 +vn -0.9955 -0.0876 0.0363 +vn -0.6630 -0.6916 0.2865 +vn 0.0000 -0.9239 0.3827 +vn 0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0876 -0.0363 +vn 0.7574 0.6033 0.2499 +vn -0.7574 0.6033 0.2499 +vn -0.9955 -0.0876 -0.0363 +vn -0.6630 -0.6916 -0.2865 +vn 0.6630 -0.2865 -0.6916 +vn 0.9955 -0.0363 -0.0876 +vn 0.7574 0.2499 0.6033 +vn -0.7574 0.2499 0.6033 +vn -0.9955 -0.0363 -0.0876 +vn -0.6630 -0.2865 -0.6916 +vn 0.6630 0.2865 -0.6916 +vn 0.7574 -0.2499 0.6033 +vn -0.9955 0.0363 -0.0876 +vn -0.6630 0.2865 -0.6916 +vn 0.6630 0.6916 -0.2865 +vn 0.9955 0.0363 -0.0876 +vn 0.9955 0.0876 -0.0363 +vn 0.7574 -0.6033 0.2499 +vn -0.7574 -0.2499 0.6033 +vn -0.7574 -0.6033 0.2499 +vn -0.9955 0.0876 -0.0363 +vn -0.6630 0.6916 -0.2865 +vn -1.0000 -0.0000 0.0000 +vn -0.2152 -0.8457 0.4883 +vn -0.2152 -0.8457 -0.4883 +vn -0.2152 -0.0000 -0.9766 +vn -0.2152 0.8457 -0.4883 +vn -0.2152 0.8457 0.4883 +vn -0.2152 0.0000 0.9766 +vn 0.0013 0.0752 0.9972 +vn 0.7649 0.4355 0.4747 +vn -0.0085 0.0701 0.9975 +vn 0.7674 0.4364 0.4698 +vn 0.7685 0.3624 -0.5273 +vn 0.0084 -0.0701 -0.9975 +vn 0.7709 0.3641 -0.5227 +vn -0.7649 -0.4355 -0.4747 +vn -0.0013 -0.0752 -0.9972 +vn -0.7685 -0.3625 0.5273 +vn -0.7674 -0.4364 -0.4698 +vn -0.7709 -0.3641 0.5227 +vn -0.0036 0.9722 0.2341 +vn 0.7691 0.5824 -0.2631 +vn -0.0076 0.9717 0.2361 +vn 0.7757 -0.3873 -0.4982 +vn 0.7690 0.5826 -0.2630 +vn 0.0076 -0.9717 -0.2361 +vn 0.7736 -0.3916 -0.4981 +vn -0.7691 -0.5824 0.2631 +vn 0.0035 -0.9722 -0.2341 +vn -0.7758 0.3873 0.4982 +vn -0.7691 -0.5826 0.2630 +vn -0.7736 0.3916 0.4981 +vn -0.0010 0.5264 -0.8503 +vn 0.7687 -0.0687 -0.6359 +vn -0.0061 0.5286 -0.8489 +vn 0.7701 -0.0706 -0.6341 +vn 0.7723 -0.5975 0.2158 +vn 0.0061 -0.5286 0.8489 +vn 0.7736 -0.5967 0.2134 +vn -0.7687 0.0687 0.6359 +vn 0.0010 -0.5263 0.8503 +vn -0.7723 0.5975 -0.2158 +vn -0.7701 0.0706 0.6341 +vn -0.7736 0.5967 -0.2134 +vn 0.0013 -0.6470 -0.7625 +vn 0.7649 -0.6313 -0.1281 +vn -0.0085 -0.6431 -0.7658 +vn 0.7674 -0.6292 -0.1236 +vn 0.7685 0.0167 0.6397 +vn 0.0085 0.6431 0.7658 +vn 0.7709 0.0127 0.6369 +vn -0.7649 0.6313 0.1281 +vn -0.0013 0.6470 0.7625 +vn -0.7685 -0.0167 -0.6397 +vn -0.7674 0.6292 0.1236 +vn -0.7709 -0.0127 -0.6369 +vn 0.7755 -0.3271 0.5399 +vn -0.0020 -0.9228 0.3853 +vn -0.0114 -0.9245 0.3811 +vn 0.7840 0.6009 0.1558 +vn 0.7797 -0.3191 0.5388 +vn 0.0114 0.9245 -0.3811 +vn 0.7846 0.6000 0.1565 +vn 0.0020 0.9228 -0.3853 +vn -0.7755 0.3271 -0.5399 +vn -0.7797 0.3191 -0.5387 +vn -0.7840 -0.6009 -0.1558 +vn -0.7846 -0.6000 -0.1565 +vn 0.7709 -0.3641 0.5227 +vn 0.7690 -0.5826 0.2630 +vn 0.7736 0.5967 -0.2134 +vn 0.7709 -0.0127 -0.6369 +vn -0.7846 0.6000 0.1565 +s 1 +f 1219/2135/677 1222/2136/678 1209/2137/678 +f 1225/2138/679 1215/2139/680 1213/2140/679 +f 1227/2141/680 1217/2142/681 1215/2139/680 +f 1229/2143/681 1219/2135/677 1217/2142/681 +f 1216/2144/682 1214/2145/682 1210/2146/682 +f 1209/2137/678 1223/2147/683 1211/2148/683 +f 1223/2147/683 1213/2149/679 1211/2148/683 +f 1218/2150/684 1232/2151/685 1230/2152/684 +f 1216/2153/686 1230/2152/684 1228/2154/686 +f 1214/2155/687 1228/2154/686 1226/2156/687 +f 1212/2157/688 1226/2158/687 1224/2159/688 +f 1210/2160/689 1224/2159/688 1221/2161/689 +f 1226/2158/690 1244/2162/691 1224/2159/691 +f 1223/2147/692 1236/2163/693 1243/2164/692 +f 1231/2165/694 1236/2163/693 1222/2136/693 +f 1229/2143/695 1233/2166/694 1231/2165/694 +f 1224/2159/691 1235/2167/696 1221/2161/696 +f 1227/2141/697 1237/2168/695 1229/2143/695 +f 1232/2151/685 1210/2160/689 1221/2161/689 +f 1235/2167/678 1233/2166/677 1234/2169/677 +f 1234/2169/677 1237/2168/681 1238/2170/681 +f 1238/2170/681 1239/2171/680 1240/2172/680 +f 1242/2173/679 1239/2171/680 1241/2174/679 +f 1244/2162/683 1241/2175/679 1243/2164/683 +f 1244/2162/683 1236/2163/678 1235/2167/678 +f 1228/2154/698 1242/2173/690 1226/2156/690 +f 1221/2161/696 1234/2169/699 1232/2151/699 +f 1230/2152/700 1240/2172/698 1228/2154/698 +f 1223/2147/692 1241/2175/701 1225/2176/701 +f 1232/2151/699 1238/2170/700 1230/2152/700 +f 1225/2138/701 1239/2171/697 1227/2141/697 +f 1245/2177/702 1248/2178/703 1247/2179/704 +f 1247/2180/704 1250/2181/705 1249/2182/706 +f 1250/2181/705 1251/2183/707 1249/2182/706 +f 1252/2184/708 1253/2185/709 1251/2183/707 +f 1254/2186/710 1255/2187/711 1253/2185/709 +f 1255/2187/711 1246/2188/712 1245/2177/702 +f 1257/2189/713 1260/2190/714 1259/2191/715 +f 1260/2192/714 1261/2193/716 1259/2194/715 +f 1262/2195/717 1263/2196/718 1261/2193/716 +f 1264/2197/719 1265/2198/720 1263/2196/718 +f 1265/2198/720 1268/2199/721 1267/2200/722 +f 1267/2200/722 1258/2201/723 1257/2189/713 +f 1269/2202/724 1272/2203/725 1271/2204/726 +f 1271/2205/726 1274/2206/727 1273/2207/728 +f 1274/2206/727 1275/2208/729 1273/2207/728 +f 1276/2209/730 1277/2210/731 1275/2208/729 +f 1278/2211/732 1279/2212/733 1277/2210/731 +f 1279/2212/733 1270/2213/734 1269/2202/724 +f 1281/2214/735 1284/2215/736 1283/2216/737 +f 1283/2217/737 1286/2218/738 1285/2219/739 +f 1286/2218/738 1287/2220/740 1285/2219/739 +f 1288/2221/741 1289/2222/742 1287/2220/740 +f 1290/2223/743 1291/2224/744 1289/2222/742 +f 1291/2224/744 1282/2225/745 1281/2214/735 +f 1294/2226/746 1295/2227/747 1293/2228/748 +f 1296/2229/749 1297/2230/750 1295/2231/747 +f 1297/2230/750 1300/2232/751 1299/2233/752 +f 1299/2233/752 1302/2234/753 1301/2235/754 +f 1301/2235/754 1304/2236/755 1303/2237/756 +f 1304/2236/755 1293/2228/748 1303/2237/756 +f 1313/2238/757 1306/2239/758 1305/2240/759 +f 1306/2239/758 1315/2241/760 1307/2242/761 +f 1315/2241/760 1308/2243/762 1307/2242/761 +f 1316/2244/763 1309/2245/764 1308/2243/762 +f 1317/2246/765 1310/2247/766 1309/2245/764 +f 1318/2248/767 1311/2249/768 1310/2247/766 +f 1319/2250/769 1312/2251/770 1311/2252/768 +f 1320/2253/771 1305/2240/759 1312/2251/770 +f 1321/2254/772 1314/2255/773 1313/2238/757 +f 1322/2256/774 1315/2241/760 1314/2255/773 +f 1315/2241/760 1324/2257/775 1316/2244/763 +f 1316/2244/763 1325/2258/776 1317/2246/765 +f 1325/2258/776 1318/2248/767 1317/2246/765 +f 1326/2259/777 1319/2260/769 1318/2248/767 +f 1319/2250/769 1328/2261/778 1320/2253/771 +f 1328/2261/778 1313/2238/757 1320/2253/771 +f 1321/2262/772 1330/2263/779 1322/2264/774 +f 1330/2263/779 1323/2265/780 1322/2264/774 +f 1331/2266/781 1324/2267/775 1323/2265/780 +f 1332/2268/782 1325/2269/776 1324/2267/775 +f 1333/2270/783 1326/2271/777 1325/2269/776 +f 1334/2272/784 1327/2273/785 1326/2271/777 +f 1335/2274/786 1328/2275/778 1327/2276/785 +f 1336/2277/787 1321/2262/772 1328/2275/778 +f 1337/2278/764 1330/2263/779 1329/2279/788 +f 1338/2280/789 1331/2266/781 1330/2263/779 +f 1339/2281/790 1332/2268/782 1331/2266/781 +f 1340/2282/791 1333/2270/783 1332/2268/782 +f 1341/2283/759 1334/2272/784 1333/2270/783 +f 1342/2284/792 1335/2285/786 1334/2272/784 +f 1343/2286/793 1336/2277/787 1335/2274/786 +f 1344/2287/794 1329/2279/788 1336/2277/787 +f 1337/2278/764 1346/2288/795 1338/2280/789 +f 1338/2280/789 1347/2289/796 1339/2281/790 +f 1347/2289/796 1340/2282/791 1339/2281/790 +f 1348/2290/797 1341/2283/759 1340/2282/791 +f 1349/2291/757 1342/2284/792 1341/2283/759 +f 1350/2292/798 1343/2293/793 1342/2284/792 +f 1351/2294/799 1344/2287/794 1343/2286/793 +f 1352/2295/800 1337/2278/764 1344/2287/794 +f 1353/2296/776 1346/2288/795 1345/2297/765 +f 1354/2298/801 1347/2289/796 1346/2288/795 +f 1347/2289/796 1356/2299/802 1348/2290/797 +f 1356/2299/802 1349/2291/757 1348/2290/797 +f 1357/2300/772 1350/2292/798 1349/2291/757 +f 1350/2292/798 1359/2301/803 1351/2302/799 +f 1351/2294/799 1360/2303/804 1352/2295/800 +f 1360/2303/804 1345/2297/765 1352/2295/800 +f 1361/2304/783 1354/2298/801 1353/2296/776 +f 1362/2305/805 1355/2306/806 1354/2298/801 +f 1363/2307/807 1356/2299/802 1355/2306/806 +f 1364/2308/808 1357/2300/772 1356/2299/802 +f 1365/2309/788 1358/2310/809 1357/2300/772 +f 1366/2311/810 1359/2301/803 1358/2310/809 +f 1367/2312/811 1360/2303/804 1359/2313/803 +f 1368/2314/812 1353/2296/776 1360/2303/804 +f 1305/2240/759 1362/2305/805 1361/2304/783 +f 1306/2239/758 1363/2307/807 1362/2305/805 +f 1307/2242/761 1364/2308/808 1363/2307/807 +f 1308/2243/762 1365/2309/788 1364/2308/808 +f 1309/2245/764 1366/2311/810 1365/2309/788 +f 1310/2247/766 1367/2315/811 1366/2311/810 +f 1311/2252/768 1368/2314/812 1367/2312/811 +f 1312/2251/770 1361/2304/783 1368/2314/812 +f 1369/2316/678 1391/2317/677 1379/2318/677 +f 1375/2319/680 1385/2320/679 1373/2321/679 +f 1377/2322/681 1387/2323/680 1375/2319/680 +f 1379/2318/677 1389/2324/681 1377/2322/681 +f 1378/2325/813 1380/2326/813 1370/2327/813 +f 1371/2328/683 1382/2329/678 1369/2316/678 +f 1373/2330/679 1383/2331/683 1371/2328/683 +f 1392/2332/814 1378/2333/815 1390/2334/815 +f 1390/2334/815 1376/2335/816 1388/2336/816 +f 1388/2336/816 1374/2337/817 1386/2338/817 +f 1386/2339/817 1372/2340/818 1384/2341/818 +f 1384/2341/818 1370/2342/819 1381/2343/819 +f 1404/2344/692 1386/2339/701 1384/2341/692 +f 1403/2345/691 1382/2329/696 1383/2331/691 +f 1396/2346/696 1391/2317/699 1382/2329/696 +f 1393/2347/699 1389/2324/700 1391/2317/699 +f 1395/2348/693 1384/2341/692 1381/2343/693 +f 1389/2324/700 1399/2349/698 1387/2323/698 +f 1392/2332/814 1370/2342/819 1380/2350/814 +f 1393/2347/677 1395/2348/678 1394/2351/677 +f 1398/2352/681 1393/2347/677 1394/2351/677 +f 1399/2349/680 1398/2352/681 1400/2353/680 +f 1401/2354/679 1400/2353/680 1402/2355/679 +f 1403/2345/683 1402/2356/679 1404/2344/683 +f 1396/2346/678 1404/2344/683 1395/2348/678 +f 1402/2355/701 1388/2336/697 1386/2338/701 +f 1394/2351/694 1381/2343/693 1392/2332/694 +f 1400/2353/697 1390/2334/695 1388/2336/697 +f 1401/2357/690 1383/2331/691 1385/2358/690 +f 1398/2352/695 1392/2332/694 1390/2334/695 +f 1399/2349/698 1385/2320/690 1387/2323/698 +f 1405/2359/820 1408/2360/821 1406/2361/822 +f 1407/2362/823 1410/2363/824 1408/2364/821 +f 1411/2365/825 1410/2363/824 1409/2366/826 +f 1413/2367/827 1412/2368/828 1411/2365/825 +f 1415/2369/829 1414/2370/830 1413/2367/827 +f 1415/2369/829 1406/2361/822 1416/2371/831 +f 1417/2372/832 1420/2373/833 1418/2374/834 +f 1421/2375/835 1420/2376/833 1419/2377/836 +f 1423/2378/837 1422/2379/838 1421/2375/835 +f 1425/2380/839 1424/2381/840 1423/2378/837 +f 1425/2380/839 1428/2382/841 1426/2383/842 +f 1427/2384/843 1418/2374/834 1428/2382/841 +f 1429/2385/844 1432/2386/845 1430/2387/846 +f 1431/2388/847 1434/2389/848 1432/2390/845 +f 1435/2391/849 1434/2389/848 1433/2392/850 +f 1437/2393/851 1436/2394/852 1435/2391/849 +f 1439/2395/853 1438/2396/854 1437/2393/851 +f 1439/2395/853 1430/2387/846 1440/2397/855 +f 1441/2398/856 1444/2399/857 1442/2400/858 +f 1443/2401/859 1446/2402/860 1444/2403/857 +f 1447/2404/861 1446/2402/860 1445/2405/862 +f 1449/2406/863 1448/2407/864 1447/2404/861 +f 1451/2408/865 1450/2409/866 1449/2406/863 +f 1451/2408/865 1442/2400/858 1452/2410/867 +f 1455/2411/868 1454/2412/869 1453/2413/870 +f 1457/2414/871 1456/2415/872 1455/2416/868 +f 1457/2414/871 1460/2417/873 1458/2418/874 +f 1459/2419/875 1462/2420/876 1460/2417/873 +f 1461/2421/877 1464/2422/878 1462/2420/876 +f 1453/2413/870 1464/2422/878 1463/2423/879 +f 1465/2424/759 1474/2425/771 1473/2426/757 +f 1467/2427/768 1474/2425/771 1466/2428/770 +f 1468/2429/766 1475/2430/769 1467/2427/768 +f 1469/2431/764 1476/2432/767 1468/2429/766 +f 1470/2433/762 1477/2434/765 1469/2431/764 +f 1471/2435/761 1478/2436/763 1470/2433/762 +f 1472/2437/758 1479/2438/760 1471/2439/761 +f 1472/2437/758 1473/2426/757 1480/2440/773 +f 1474/2425/771 1481/2441/772 1473/2426/757 +f 1475/2430/769 1482/2442/778 1474/2425/771 +f 1476/2432/767 1483/2443/785 1475/2430/769 +f 1477/2434/765 1484/2444/777 1476/2432/767 +f 1478/2436/763 1485/2445/776 1477/2434/765 +f 1478/2436/763 1487/2446/780 1486/2447/775 +f 1480/2440/773 1487/2448/780 1479/2438/760 +f 1473/2426/757 1488/2449/774 1480/2440/773 +f 1481/2450/772 1490/2451/787 1489/2452/788 +f 1483/2453/785 1490/2451/787 1482/2454/778 +f 1483/2453/785 1492/2455/784 1491/2456/786 +f 1485/2457/776 1492/2455/784 1484/2458/777 +f 1486/2459/775 1493/2460/783 1485/2457/776 +f 1486/2459/775 1495/2461/781 1494/2462/782 +f 1488/2463/774 1495/2464/781 1487/2465/780 +f 1481/2450/772 1496/2466/779 1488/2463/774 +f 1489/2452/788 1498/2467/794 1497/2468/764 +f 1491/2456/786 1498/2467/794 1490/2451/787 +f 1491/2456/786 1500/2469/792 1499/2470/793 +f 1493/2460/783 1500/2469/792 1492/2455/784 +f 1494/2462/782 1501/2471/759 1493/2460/783 +f 1495/2461/781 1502/2472/791 1494/2462/782 +f 1496/2466/779 1503/2473/790 1495/2464/781 +f 1489/2452/788 1504/2474/789 1496/2466/779 +f 1498/2467/794 1505/2475/765 1497/2468/764 +f 1498/2467/794 1507/2476/799 1506/2477/800 +f 1500/2469/792 1507/2476/799 1499/2470/793 +f 1501/2471/759 1508/2478/798 1500/2469/792 +f 1502/2472/791 1509/2479/757 1501/2471/759 +f 1502/2472/791 1511/2480/796 1510/2481/797 +f 1504/2474/789 1511/2482/796 1503/2473/790 +f 1504/2474/789 1505/2475/765 1512/2483/795 +f 1506/2477/800 1513/2484/776 1505/2475/765 +f 1506/2477/800 1515/2485/803 1514/2486/804 +f 1508/2478/798 1515/2485/803 1507/2476/799 +f 1508/2478/798 1517/2487/772 1516/2488/809 +f 1510/2481/797 1517/2487/772 1509/2479/757 +f 1510/2481/797 1519/2489/806 1518/2490/802 +f 1512/2483/795 1519/2491/806 1511/2482/796 +f 1505/2475/765 1520/2492/801 1512/2483/795 +f 1514/2486/804 1521/2493/783 1513/2484/776 +f 1515/2485/803 1522/2494/812 1514/2486/804 +f 1515/2485/803 1524/2495/810 1523/2496/811 +f 1517/2487/772 1524/2495/810 1516/2488/809 +f 1518/2490/802 1525/2497/788 1517/2487/772 +f 1519/2489/806 1526/2498/808 1518/2490/802 +f 1519/2491/806 1528/2499/805 1527/2500/807 +f 1513/2484/776 1528/2499/805 1520/2492/801 +f 1522/2494/812 1465/2424/759 1521/2493/783 +f 1522/2494/812 1467/2427/768 1466/2428/770 +f 1524/2495/810 1467/2427/768 1523/2496/811 +f 1525/2497/788 1468/2429/766 1524/2495/810 +f 1526/2498/808 1469/2431/764 1525/2497/788 +f 1527/2501/807 1470/2433/762 1526/2498/808 +f 1528/2499/805 1471/2439/761 1527/2500/807 +f 1521/2493/783 1472/2437/758 1528/2499/805 +f 1219/2135/677 1231/2165/677 1222/2136/678 +f 1225/2138/679 1227/2141/680 1215/2139/680 +f 1227/2141/680 1229/2143/681 1217/2142/681 +f 1229/2143/681 1231/2165/677 1219/2135/677 +f 1214/2145/682 1212/2502/682 1210/2146/682 +f 1210/2146/682 1220/2503/682 1218/2504/682 +f 1218/2504/682 1216/2144/682 1210/2146/682 +f 1209/2137/678 1222/2136/678 1223/2147/683 +f 1223/2147/683 1225/2176/679 1213/2149/679 +f 1218/2150/684 1220/2505/685 1232/2151/685 +f 1216/2153/686 1218/2150/684 1230/2152/684 +f 1214/2155/687 1216/2153/686 1228/2154/686 +f 1212/2157/688 1214/2506/687 1226/2158/687 +f 1210/2160/689 1212/2157/688 1224/2159/688 +f 1226/2158/690 1242/2507/690 1244/2162/691 +f 1223/2147/692 1222/2136/693 1236/2163/693 +f 1231/2165/694 1233/2166/694 1236/2163/693 +f 1229/2143/695 1237/2168/695 1233/2166/694 +f 1224/2159/691 1244/2162/691 1235/2167/696 +f 1227/2141/697 1239/2171/697 1237/2168/695 +f 1232/2151/685 1220/2505/685 1210/2160/689 +f 1235/2167/678 1236/2163/678 1233/2166/677 +f 1234/2169/677 1233/2166/677 1237/2168/681 +f 1238/2170/681 1237/2168/681 1239/2171/680 +f 1242/2173/679 1240/2172/680 1239/2171/680 +f 1244/2162/683 1242/2507/679 1241/2175/679 +f 1244/2162/683 1243/2164/683 1236/2163/678 +f 1228/2154/698 1240/2172/698 1242/2173/690 +f 1221/2161/696 1235/2167/696 1234/2169/699 +f 1230/2152/700 1238/2170/700 1240/2172/698 +f 1223/2147/692 1243/2164/692 1241/2175/701 +f 1232/2151/699 1234/2169/699 1238/2170/700 +f 1225/2138/701 1241/2174/701 1239/2171/697 +f 1245/2177/702 1246/2188/712 1248/2178/703 +f 1247/2180/704 1248/2508/703 1250/2181/705 +f 1250/2181/705 1252/2184/708 1251/2183/707 +f 1252/2184/708 1254/2186/710 1253/2185/709 +f 1254/2186/710 1256/2509/880 1255/2187/711 +f 1255/2187/711 1256/2509/880 1246/2188/712 +f 1257/2189/713 1258/2201/723 1260/2190/714 +f 1260/2192/714 1262/2195/717 1261/2193/716 +f 1262/2195/717 1264/2197/719 1263/2196/718 +f 1264/2197/719 1266/2510/881 1265/2198/720 +f 1265/2198/720 1266/2510/881 1268/2199/721 +f 1267/2200/722 1268/2199/721 1258/2201/723 +f 1269/2202/724 1270/2213/734 1272/2203/725 +f 1271/2205/726 1272/2511/725 1274/2206/727 +f 1274/2206/727 1276/2209/730 1275/2208/729 +f 1276/2209/730 1278/2211/732 1277/2210/731 +f 1278/2211/732 1280/2512/882 1279/2212/733 +f 1279/2212/733 1280/2512/882 1270/2213/734 +f 1281/2214/735 1282/2225/745 1284/2215/736 +f 1283/2217/737 1284/2513/736 1286/2218/738 +f 1286/2218/738 1288/2221/741 1287/2220/740 +f 1288/2221/741 1290/2223/743 1289/2222/742 +f 1290/2223/743 1292/2514/883 1291/2224/744 +f 1291/2224/744 1292/2514/883 1282/2225/745 +f 1294/2226/746 1296/2515/749 1295/2227/747 +f 1296/2229/749 1298/2516/884 1297/2230/750 +f 1297/2230/750 1298/2516/884 1300/2232/751 +f 1299/2233/752 1300/2232/751 1302/2234/753 +f 1301/2235/754 1302/2234/753 1304/2236/755 +f 1304/2236/755 1294/2226/746 1293/2228/748 +f 1313/2238/757 1314/2255/773 1306/2239/758 +f 1306/2239/758 1314/2255/773 1315/2241/760 +f 1315/2241/760 1316/2244/763 1308/2243/762 +f 1316/2244/763 1317/2246/765 1309/2245/764 +f 1317/2246/765 1318/2248/767 1310/2247/766 +f 1318/2248/767 1319/2260/769 1311/2249/768 +f 1319/2250/769 1320/2253/771 1312/2251/770 +f 1320/2253/771 1313/2238/757 1305/2240/759 +f 1321/2254/772 1322/2256/774 1314/2255/773 +f 1322/2256/774 1323/2517/780 1315/2241/760 +f 1315/2241/760 1323/2517/780 1324/2257/775 +f 1316/2244/763 1324/2257/775 1325/2258/776 +f 1325/2258/776 1326/2259/777 1318/2248/767 +f 1326/2259/777 1327/2518/785 1319/2260/769 +f 1319/2250/769 1327/2519/785 1328/2261/778 +f 1328/2261/778 1321/2254/772 1313/2238/757 +f 1321/2262/772 1329/2279/788 1330/2263/779 +f 1330/2263/779 1331/2266/781 1323/2265/780 +f 1331/2266/781 1332/2268/782 1324/2267/775 +f 1332/2268/782 1333/2270/783 1325/2269/776 +f 1333/2270/783 1334/2272/784 1326/2271/777 +f 1334/2272/784 1335/2285/786 1327/2273/785 +f 1335/2274/786 1336/2277/787 1328/2275/778 +f 1336/2277/787 1329/2279/788 1321/2262/772 +f 1337/2278/764 1338/2280/789 1330/2263/779 +f 1338/2280/789 1339/2281/790 1331/2266/781 +f 1339/2281/790 1340/2282/791 1332/2268/782 +f 1340/2282/791 1341/2283/759 1333/2270/783 +f 1341/2283/759 1342/2284/792 1334/2272/784 +f 1342/2284/792 1343/2293/793 1335/2285/786 +f 1343/2286/793 1344/2287/794 1336/2277/787 +f 1344/2287/794 1337/2278/764 1329/2279/788 +f 1337/2278/764 1345/2297/765 1346/2288/795 +f 1338/2280/789 1346/2288/795 1347/2289/796 +f 1347/2289/796 1348/2290/797 1340/2282/791 +f 1348/2290/797 1349/2291/757 1341/2283/759 +f 1349/2291/757 1350/2292/798 1342/2284/792 +f 1350/2292/798 1351/2302/799 1343/2293/793 +f 1351/2294/799 1352/2295/800 1344/2287/794 +f 1352/2295/800 1345/2297/765 1337/2278/764 +f 1353/2296/776 1354/2298/801 1346/2288/795 +f 1354/2298/801 1355/2306/806 1347/2289/796 +f 1347/2289/796 1355/2306/806 1356/2299/802 +f 1356/2299/802 1357/2300/772 1349/2291/757 +f 1357/2300/772 1358/2310/809 1350/2292/798 +f 1350/2292/798 1358/2310/809 1359/2301/803 +f 1351/2294/799 1359/2313/803 1360/2303/804 +f 1360/2303/804 1353/2296/776 1345/2297/765 +f 1361/2304/783 1362/2305/805 1354/2298/801 +f 1362/2305/805 1363/2307/807 1355/2306/806 +f 1363/2307/807 1364/2308/808 1356/2299/802 +f 1364/2308/808 1365/2309/788 1357/2300/772 +f 1365/2309/788 1366/2311/810 1358/2310/809 +f 1366/2311/810 1367/2315/811 1359/2301/803 +f 1367/2312/811 1368/2314/812 1360/2303/804 +f 1368/2314/812 1361/2304/783 1353/2296/776 +f 1305/2240/759 1306/2239/758 1362/2305/805 +f 1306/2239/758 1307/2242/761 1363/2307/807 +f 1307/2242/761 1308/2243/762 1364/2308/808 +f 1308/2243/762 1309/2245/764 1365/2309/788 +f 1309/2245/764 1310/2247/766 1366/2311/810 +f 1310/2247/766 1311/2249/768 1367/2315/811 +f 1311/2252/768 1312/2251/770 1368/2314/812 +f 1312/2251/770 1305/2240/759 1361/2304/783 +f 1369/2316/678 1382/2329/678 1391/2317/677 +f 1375/2319/680 1387/2323/680 1385/2320/679 +f 1377/2322/681 1389/2324/681 1387/2323/680 +f 1379/2318/677 1391/2317/677 1389/2324/681 +f 1370/2327/813 1372/2520/813 1374/2521/813 +f 1374/2521/813 1376/2522/813 1370/2327/813 +f 1376/2522/813 1378/2325/813 1370/2327/813 +f 1371/2328/683 1383/2331/683 1382/2329/678 +f 1373/2330/679 1385/2358/679 1383/2331/683 +f 1392/2332/814 1380/2350/814 1378/2333/815 +f 1390/2334/815 1378/2333/815 1376/2335/816 +f 1388/2336/816 1376/2335/816 1374/2337/817 +f 1386/2339/817 1374/2523/817 1372/2340/818 +f 1384/2341/818 1372/2340/818 1370/2342/819 +f 1404/2344/692 1402/2356/701 1386/2339/701 +f 1403/2345/691 1396/2346/696 1382/2329/696 +f 1396/2346/696 1393/2347/699 1391/2317/699 +f 1393/2347/699 1397/2524/700 1389/2324/700 +f 1395/2348/693 1404/2344/692 1384/2341/692 +f 1389/2324/700 1397/2524/700 1399/2349/698 +f 1392/2332/814 1381/2343/819 1370/2342/819 +f 1393/2347/677 1396/2346/678 1395/2348/678 +f 1398/2352/681 1397/2524/681 1393/2347/677 +f 1399/2349/680 1397/2524/681 1398/2352/681 +f 1401/2354/679 1399/2349/680 1400/2353/680 +f 1403/2345/683 1401/2357/679 1402/2356/679 +f 1396/2346/678 1403/2345/683 1404/2344/683 +f 1402/2355/701 1400/2353/697 1388/2336/697 +f 1394/2351/694 1395/2348/693 1381/2343/693 +f 1400/2353/697 1398/2352/695 1390/2334/695 +f 1401/2357/690 1403/2345/691 1383/2331/691 +f 1398/2352/695 1394/2351/694 1392/2332/694 +f 1399/2349/698 1401/2354/690 1385/2320/690 +f 1405/2359/820 1407/2525/823 1408/2360/821 +f 1407/2362/823 1409/2366/826 1410/2363/824 +f 1411/2365/825 1412/2368/828 1410/2363/824 +f 1413/2367/827 1414/2370/830 1412/2368/828 +f 1415/2369/829 1416/2371/831 1414/2370/830 +f 1415/2369/829 1405/2359/820 1406/2361/822 +f 1417/2372/832 1419/2526/836 1420/2373/833 +f 1421/2375/835 1422/2379/838 1420/2376/833 +f 1423/2378/837 1424/2381/840 1422/2379/838 +f 1425/2380/839 1426/2383/842 1424/2381/840 +f 1425/2380/839 1427/2384/843 1428/2382/841 +f 1427/2384/843 1417/2372/832 1418/2374/834 +f 1429/2385/844 1431/2527/847 1432/2386/845 +f 1431/2388/847 1433/2392/850 1434/2389/848 +f 1435/2391/849 1436/2394/852 1434/2389/848 +f 1437/2393/851 1438/2396/854 1436/2394/852 +f 1439/2395/853 1440/2397/855 1438/2396/854 +f 1439/2395/853 1429/2385/844 1430/2387/846 +f 1441/2398/856 1443/2528/859 1444/2399/857 +f 1443/2401/859 1445/2405/862 1446/2402/860 +f 1447/2404/861 1448/2407/864 1446/2402/860 +f 1449/2406/863 1450/2409/866 1448/2407/864 +f 1451/2408/865 1452/2410/867 1450/2409/866 +f 1451/2408/865 1441/2398/856 1442/2400/858 +f 1455/2411/868 1456/2529/872 1454/2412/869 +f 1457/2414/871 1458/2418/874 1456/2415/872 +f 1457/2414/871 1459/2419/875 1460/2417/873 +f 1459/2419/875 1461/2421/877 1462/2420/876 +f 1461/2421/877 1463/2423/879 1464/2422/878 +f 1453/2413/870 1454/2412/869 1464/2422/878 +f 1465/2424/759 1466/2428/770 1474/2425/771 +f 1467/2427/768 1475/2430/769 1474/2425/771 +f 1468/2429/766 1476/2432/767 1475/2430/769 +f 1469/2431/764 1477/2434/765 1476/2432/767 +f 1470/2433/762 1478/2436/763 1477/2434/765 +f 1471/2435/761 1479/2530/760 1478/2436/763 +f 1472/2437/758 1480/2440/773 1479/2438/760 +f 1472/2437/758 1465/2424/759 1473/2426/757 +f 1474/2425/771 1482/2442/778 1481/2441/772 +f 1475/2430/769 1483/2443/785 1482/2442/778 +f 1476/2432/767 1484/2444/777 1483/2443/785 +f 1477/2434/765 1485/2445/776 1484/2444/777 +f 1478/2436/763 1486/2447/775 1485/2445/776 +f 1478/2436/763 1479/2530/760 1487/2446/780 +f 1480/2440/773 1488/2449/774 1487/2448/780 +f 1473/2426/757 1481/2441/772 1488/2449/774 +f 1481/2450/772 1482/2454/778 1490/2451/787 +f 1483/2453/785 1491/2456/786 1490/2451/787 +f 1483/2453/785 1484/2458/777 1492/2455/784 +f 1485/2457/776 1493/2460/783 1492/2455/784 +f 1486/2459/775 1494/2462/782 1493/2460/783 +f 1486/2459/775 1487/2531/780 1495/2461/781 +f 1488/2463/774 1496/2466/779 1495/2464/781 +f 1481/2450/772 1489/2452/788 1496/2466/779 +f 1489/2452/788 1490/2451/787 1498/2467/794 +f 1491/2456/786 1499/2470/793 1498/2467/794 +f 1491/2456/786 1492/2455/784 1500/2469/792 +f 1493/2460/783 1501/2471/759 1500/2469/792 +f 1494/2462/782 1502/2472/791 1501/2471/759 +f 1495/2461/781 1503/2532/790 1502/2472/791 +f 1496/2466/779 1504/2474/789 1503/2473/790 +f 1489/2452/788 1497/2468/764 1504/2474/789 +f 1498/2467/794 1506/2477/800 1505/2475/765 +f 1498/2467/794 1499/2470/793 1507/2476/799 +f 1500/2469/792 1508/2478/798 1507/2476/799 +f 1501/2471/759 1509/2479/757 1508/2478/798 +f 1502/2472/791 1510/2481/797 1509/2479/757 +f 1502/2472/791 1503/2532/790 1511/2480/796 +f 1504/2474/789 1512/2483/795 1511/2482/796 +f 1504/2474/789 1497/2468/764 1505/2475/765 +f 1506/2477/800 1514/2486/804 1513/2484/776 +f 1506/2477/800 1507/2476/799 1515/2485/803 +f 1508/2478/798 1516/2488/809 1515/2485/803 +f 1508/2478/798 1509/2479/757 1517/2487/772 +f 1510/2481/797 1518/2490/802 1517/2487/772 +f 1510/2481/797 1511/2480/796 1519/2489/806 +f 1512/2483/795 1520/2492/801 1519/2491/806 +f 1505/2475/765 1513/2484/776 1520/2492/801 +f 1514/2486/804 1522/2494/812 1521/2493/783 +f 1515/2485/803 1523/2496/811 1522/2494/812 +f 1515/2485/803 1516/2488/809 1524/2495/810 +f 1517/2487/772 1525/2497/788 1524/2495/810 +f 1518/2490/802 1526/2498/808 1525/2497/788 +f 1519/2489/806 1527/2501/807 1526/2498/808 +f 1519/2491/806 1520/2492/801 1528/2499/805 +f 1513/2484/776 1521/2493/783 1528/2499/805 +f 1522/2494/812 1466/2428/770 1465/2424/759 +f 1522/2494/812 1523/2496/811 1467/2427/768 +f 1524/2495/810 1468/2429/766 1467/2427/768 +f 1525/2497/788 1469/2431/764 1468/2429/766 +f 1526/2498/808 1470/2433/762 1469/2431/764 +f 1527/2501/807 1471/2435/761 1470/2433/762 +f 1528/2499/805 1472/2437/758 1471/2439/761 +f 1521/2493/783 1465/2424/759 1472/2437/758 diff --git a/src/main/resources/assets/hbm/models/machines/arc_welder.obj b/src/main/resources/assets/hbm/models/machines/arc_welder.obj new file mode 100644 index 000000000..cf99681bf --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/arc_welder.obj @@ -0,0 +1,1225 @@ +# Blender v2.79 (sub 0) OBJ File: 'arc_welder.blend' +# www.blender.org +o Plane +v -1.000000 0.000000 1.500000 +v 1.000000 0.000000 1.500000 +v -1.000000 0.000000 -1.500000 +v 1.000000 0.000000 -1.500000 +v -1.000000 0.125000 1.500000 +v 1.000000 0.125000 1.500000 +v -1.000000 0.125000 -1.500000 +v 1.000000 0.125000 -1.500000 +v -1.000000 0.875000 1.500000 +v 1.000000 0.875000 1.500000 +v -1.000000 0.875000 -1.500000 +v 1.000000 0.875000 -1.500000 +v -1.000000 1.000000 1.500000 +v 1.000000 1.000000 1.500000 +v -1.000000 1.000000 -1.500000 +v 1.000000 1.000000 -1.500000 +v -0.875000 0.125000 -1.375000 +v -0.875000 0.125000 1.375000 +v 0.875000 0.125000 1.375000 +v 0.875000 0.125000 -1.375000 +v -0.875000 0.875000 -1.375000 +v -0.875000 0.875000 1.375000 +v 0.875000 0.875000 1.375000 +v 0.875000 0.875000 -1.375000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.125000 -0.500000 +v -0.500000 1.125000 0.500000 +v 0.500000 1.125000 0.500000 +v 0.500000 1.125000 -0.500000 +v -0.750000 2.000000 1.125000 +v 0.750000 2.000000 1.125000 +v -0.750000 2.000000 0.875000 +v 0.750000 2.000000 0.875000 +v -0.750000 1.000000 1.125000 +v 0.750000 1.000000 1.125000 +v -0.750000 1.000000 0.875000 +v 0.750000 1.000000 0.875000 +v -0.500000 1.750000 1.125000 +v 0.500000 1.750000 1.125000 +v -0.500000 1.750000 0.875000 +v 0.500000 1.750000 0.875000 +v 0.500000 1.000000 1.125000 +v 0.500000 1.000000 0.875000 +v -0.500000 1.000000 1.125000 +v -0.500000 1.000000 0.875000 +v -0.750000 2.000000 -0.875000 +v 0.750000 2.000000 -0.875000 +v -0.750000 2.000000 -1.125000 +v 0.750000 2.000000 -1.125000 +v -0.750000 1.000000 -0.875000 +v 0.750000 1.000000 -0.875000 +v -0.750000 1.000000 -1.125000 +v 0.750000 1.000000 -1.125000 +v -0.500000 1.750000 -0.875000 +v 0.500000 1.750000 -0.875000 +v -0.500000 1.750000 -1.125000 +v 0.500000 1.750000 -1.125000 +v 0.500000 1.000000 -0.875000 +v 0.500000 1.000000 -1.125000 +v -0.500000 1.000000 -0.875000 +v -0.500000 1.000000 -1.125000 +v -0.250000 1.849455 1.399379 +v -0.250000 2.259031 1.112591 +v -0.250000 1.419272 0.785015 +v -0.250000 1.828848 0.498227 +v 0.250000 1.849455 1.399379 +v 0.250000 2.259031 1.112591 +v 0.250000 1.419272 0.785015 +v 0.250000 1.828848 0.498227 +v -0.187500 1.900652 1.363531 +v -0.187500 2.207834 1.148439 +v 0.187500 2.207834 1.148439 +v 0.187500 1.900652 1.363531 +v -0.187500 1.972349 1.465925 +v -0.187500 2.279531 1.250834 +v 0.187500 2.279531 1.250834 +v 0.187500 1.972349 1.465925 +v -0.125000 1.726454 0.569924 +v -0.125000 1.521666 0.713318 +v 0.125000 1.521666 0.713318 +v 0.125000 1.726454 0.569924 +v -0.125000 1.583060 0.365136 +v -0.125000 1.378272 0.508530 +v 0.125000 1.378272 0.508530 +v 0.125000 1.583060 0.365136 +v -0.062500 1.531863 0.400984 +v -0.062500 1.429469 0.472682 +v 0.062500 1.429469 0.472682 +v 0.062500 1.531863 0.400984 +v 0.000000 1.193878 0.027257 +v 0.250000 1.849455 -1.399379 +v 0.250000 2.259031 -1.112591 +v 0.250000 1.419272 -0.785015 +v 0.250000 1.828848 -0.498227 +v -0.250000 1.849455 -1.399379 +v -0.250000 2.259031 -1.112591 +v -0.250000 1.419272 -0.785015 +v -0.250000 1.828848 -0.498227 +v 0.187500 1.900652 -1.363531 +v 0.187500 2.207834 -1.148439 +v -0.187500 2.207834 -1.148439 +v -0.187500 1.900652 -1.363531 +v 0.187500 1.972349 -1.465925 +v 0.187500 2.279531 -1.250834 +v -0.187500 2.279531 -1.250834 +v -0.187500 1.972349 -1.465925 +v 0.125000 1.726454 -0.569924 +v 0.125000 1.521666 -0.713318 +v -0.125000 1.521666 -0.713318 +v -0.125000 1.726454 -0.569924 +v 0.125000 1.583060 -0.365136 +v 0.125000 1.378272 -0.508530 +v -0.125000 1.378272 -0.508530 +v -0.125000 1.583060 -0.365136 +v 0.062500 1.531863 -0.400984 +v 0.062500 1.429469 -0.472682 +v -0.062500 1.429469 -0.472682 +v -0.062500 1.531863 -0.400984 +v 0.000000 1.193878 -0.027257 +v -0.375000 1.000000 1.062500 +v 0.375000 1.000000 1.062500 +v -0.375000 1.000000 1.437500 +v 0.375000 1.000000 1.437500 +v -0.375000 1.187500 1.437500 +v -0.375000 1.187500 1.062500 +v 0.375000 1.187500 1.062500 +v 0.375000 1.187500 1.437500 +v -0.375000 1.250000 1.375000 +v -0.375000 1.250000 1.125000 +v 0.375000 1.250000 1.125000 +v 0.375000 1.250000 1.375000 +v -0.250000 1.000000 1.343750 +v -0.250000 1.000000 1.281250 +v -0.312500 1.000000 1.343750 +v -0.312500 1.000000 1.281250 +v -0.312500 2.062500 1.343750 +v -0.312500 2.062500 1.281250 +v -0.250000 2.062500 1.343750 +v -0.250000 2.062500 1.281250 +v -0.187500 2.062500 1.343750 +v -0.187500 2.062500 1.281250 +v -0.250000 2.125000 1.343750 +v -0.250000 2.125000 1.281250 +v -0.187500 2.125000 1.343750 +v -0.187500 2.125000 1.281250 +v -0.375000 1.000000 -1.437500 +v 0.375000 1.000000 -1.437500 +v -0.375000 1.000000 -1.062500 +v 0.375000 1.000000 -1.062500 +v -0.375000 1.187500 -1.062500 +v -0.375000 1.187500 -1.437500 +v 0.375000 1.187500 -1.437500 +v 0.375000 1.187500 -1.062500 +v -0.375000 1.250000 -1.125000 +v -0.375000 1.250000 -1.375000 +v 0.375000 1.250000 -1.375000 +v 0.375000 1.250000 -1.125000 +v -0.250000 1.000000 -1.281250 +v -0.250000 1.000000 -1.343750 +v -0.312500 1.000000 -1.281250 +v -0.312500 1.000000 -1.343750 +v -0.312500 2.062500 -1.281250 +v -0.312500 2.062500 -1.343750 +v -0.250000 2.062500 -1.281250 +v -0.250000 2.062500 -1.343750 +v -0.187500 2.062500 -1.281250 +v -0.187500 2.062500 -1.343750 +v -0.250000 2.125000 -1.281250 +v -0.250000 2.125000 -1.343750 +v -0.187500 2.125000 -1.281250 +v -0.187500 2.125000 -1.343750 +v 0.750000 1.250000 0.750000 +v 0.875000 1.250000 0.750000 +v 0.750000 1.250000 -0.750000 +v 0.875000 1.250000 -0.750000 +v 0.750000 1.000000 0.750000 +v 0.875000 1.000000 0.750000 +v 0.750000 1.000000 -0.750000 +v 0.875000 1.000000 -0.750000 +v 0.750000 1.124000 0.625000 +v 0.875000 1.124000 0.625000 +v 0.750000 1.124000 -0.625000 +v 0.875000 1.124000 -0.625000 +v 0.750000 0.999000 0.625000 +v 0.875000 0.999000 0.625000 +v 0.750000 0.999000 -0.625000 +v 0.875000 0.999000 -0.625000 +v -0.875000 1.250000 0.750000 +v -0.750000 1.250000 0.750000 +v -0.875000 1.250000 -0.750000 +v -0.750000 1.250000 -0.750000 +v -0.875000 1.000000 0.750000 +v -0.750000 1.000000 0.750000 +v -0.875000 1.000000 -0.750000 +v -0.750000 1.000000 -0.750000 +v -0.875000 1.124000 0.625000 +v -0.750000 1.124000 0.625000 +v -0.875000 1.124000 -0.625000 +v -0.750000 1.124000 -0.625000 +v -0.875000 0.999000 0.625000 +v -0.750000 0.999000 0.625000 +v -0.875000 0.999000 -0.625000 +v -0.750000 0.999000 -0.625000 +v -0.687500 0.687500 1.500000 +v -0.312500 0.687500 1.500000 +v -0.687500 0.312500 1.500000 +v -0.312500 0.312500 1.500000 +v -0.687500 0.312500 1.375000 +v -0.687500 0.687500 1.375000 +v -0.312500 0.687500 1.375000 +v -0.312500 0.312500 1.375000 +v 0.312500 0.687500 1.500000 +v 0.687500 0.687500 1.500000 +v 0.312500 0.312500 1.500000 +v 0.687500 0.312500 1.500000 +v 0.312500 0.312500 1.375000 +v 0.312500 0.687500 1.375000 +v 0.687500 0.687500 1.375000 +v 0.687500 0.312500 1.375000 +v 0.687500 0.687500 -1.500000 +v 0.312500 0.687500 -1.500000 +v 0.687500 0.312500 -1.500000 +v 0.312500 0.312500 -1.500000 +v 0.687500 0.312500 -1.375000 +v 0.687500 0.687500 -1.375000 +v 0.312500 0.687500 -1.375000 +v 0.312500 0.312500 -1.375000 +v -0.312500 0.687500 -1.500000 +v -0.687500 0.687500 -1.500000 +v -0.312500 0.312500 -1.500000 +v -0.687500 0.312500 -1.500000 +v -0.312500 0.312500 -1.375000 +v -0.312500 0.687500 -1.375000 +v -0.687500 0.687500 -1.375000 +v -0.687500 0.312500 -1.375000 +v 1.000000 0.687500 1.187500 +v 1.000000 0.687500 0.812500 +v 1.000000 0.312500 1.187500 +v 1.000000 0.312500 0.812500 +v 0.875000 0.312500 1.187500 +v 0.875000 0.687500 1.187500 +v 0.875000 0.687500 0.812500 +v 0.875000 0.312500 0.812500 +v 1.000000 0.687500 0.187500 +v 1.000000 0.687500 -0.187500 +v 1.000000 0.312500 0.187500 +v 1.000000 0.312500 -0.187500 +v 0.875000 0.312500 0.187500 +v 0.875000 0.687500 0.187500 +v 0.875000 0.687500 -0.187500 +v 0.875000 0.312500 -0.187500 +v -1.000000 0.687500 -0.187500 +v -1.000000 0.687500 0.187500 +v -1.000000 0.312500 -0.187500 +v -1.000000 0.312500 0.187500 +v -0.875000 0.312500 -0.187500 +v -0.875000 0.687500 -0.187500 +v -0.875000 0.687500 0.187500 +v -0.875000 0.312500 0.187500 +v -1.000000 0.687500 0.812500 +v -1.000000 0.687500 1.187500 +v -1.000000 0.312500 0.812500 +v -1.000000 0.312500 1.187500 +v -0.875000 0.312500 0.812500 +v -0.875000 0.687500 0.812500 +v -0.875000 0.687500 1.187500 +v -0.875000 0.312500 1.187500 +v 1.000000 0.687500 -0.812500 +v 1.000000 0.687500 -1.187500 +v 1.000000 0.312500 -0.812500 +v 1.000000 0.312500 -1.187500 +v 0.875000 0.312500 -0.812500 +v 0.875000 0.687500 -0.812500 +v 0.875000 0.687500 -1.187500 +v 0.875000 0.312500 -1.187500 +v -1.000000 0.687500 -1.187500 +v -1.000000 0.687500 -0.812500 +v -1.000000 0.312500 -1.187500 +v -1.000000 0.312500 -0.812500 +v -0.875000 0.312500 -1.187500 +v -0.875000 0.687500 -1.187500 +v -0.875000 0.687500 -0.812500 +v -0.875000 0.312500 -0.812500 +vt 0.571429 0.000000 +vt -0.000000 0.320000 +vt -0.000000 -0.000000 +vt 0.571429 0.340000 +vt 0.023810 0.360000 +vt 0.000000 0.340000 +vt 0.571429 0.320000 +vt 0.571429 0.320000 +vt 0.000000 0.340000 +vt 0.000000 0.320000 +vt 0.952381 0.320000 +vt 0.952381 0.320000 +vt 0.571429 0.340000 +vt 0.000000 0.500000 +vt 0.547619 0.480000 +vt 0.571429 0.500000 +vt -0.000000 0.520000 +vt 0.571429 0.840000 +vt -0.000000 0.840000 +vt 0.571429 0.500000 +vt -0.000000 0.520000 +vt 0.000000 0.500000 +vt 0.952381 0.500000 +vt 0.571429 0.520000 +vt 0.952381 0.500000 +vt 0.571429 0.520000 +vt 0.547619 0.360000 +vt 0.023810 0.480000 +vt 0.023810 0.360000 +vt 0.952381 0.340000 +vt 0.595238 0.360000 +vt 0.952381 0.340000 +vt 0.595238 0.360000 +vt 0.547619 0.360000 +vt 0.023810 0.480000 +vt 0.928571 0.360000 +vt 0.595238 0.480000 +vt 0.928571 0.360000 +vt 0.595238 0.480000 +vt 0.928571 0.480000 +vt 0.547619 0.480000 +vt 0.928571 0.480000 +vt 0.476190 0.880000 +vt 0.190476 0.920000 +vt 0.190476 0.880000 +vt 0.595238 0.540000 +vt 0.785714 0.700000 +vt 0.595238 0.700000 +vt 0.785714 0.520000 +vt 0.595238 0.520000 +vt 0.595238 0.720000 +vt 0.785714 0.720000 +vt 0.809524 0.700000 +vt 0.785714 0.540000 +vt 0.809524 0.540000 +vt 0.571429 0.540000 +vt 0.571429 0.700000 +vt 0.666667 0.920000 +vt 0.476190 0.920000 +vt -0.000000 0.880000 +vt 0.238095 0.960000 +vt 0.428571 0.840000 +vt 0.428571 1.000000 +vt 0.238095 1.000000 +vt 0.523810 0.960000 +vt 0.666667 1.000000 +vt 0.523810 1.000000 +vt 0.142857 1.000000 +vt -0.000000 0.960000 +vt 0.142857 0.960000 +vt -0.000000 0.920000 +vt 0.142857 0.840000 +vt 0.523810 0.840000 +vt 0.666667 0.880000 +vt 0.476190 0.880000 +vt 0.190476 0.920000 +vt 0.190476 0.880000 +vt 0.666667 0.920000 +vt 0.476190 0.920000 +vt -0.000000 0.880000 +vt 0.238095 0.960000 +vt 0.428571 0.840000 +vt 0.428571 1.000000 +vt 0.238095 1.000000 +vt 0.523810 0.960000 +vt 0.666667 1.000000 +vt 0.523810 1.000000 +vt 0.142857 1.000000 +vt -0.000000 0.960000 +vt 0.142857 0.960000 +vt -0.000000 0.920000 +vt 0.142857 0.840000 +vt 0.523810 0.840000 +vt 0.666667 0.880000 +vt 0.678571 0.240000 +vt 0.821429 0.160000 +vt 0.821429 0.240000 +vt 0.821429 -0.000000 +vt 0.845238 0.060000 +vt 0.821429 0.080000 +vt 0.678571 -0.000000 +vt 0.678571 0.160000 +vt 0.666667 0.090000 +vt 0.678571 0.080000 +vt 0.821429 0.320000 +vt 0.666667 0.150000 +vt 0.642857 0.090000 +vt 0.666667 0.010000 +vt 0.666667 0.230000 +vt 0.666667 0.170000 +vt 0.678571 0.320000 +vt 0.666667 0.250000 +vt 0.571429 0.150000 +vt 0.571429 0.090000 +vt 0.642857 0.070000 +vt 0.642857 0.010000 +vt 0.666667 0.310000 +vt 0.642857 0.250000 +vt 0.642857 0.170000 +vt 0.845238 0.180000 +vt 0.892857 0.220000 +vt 0.845238 0.220000 +vt 0.845238 0.300000 +vt 0.845238 0.140000 +vt 0.892857 0.020000 +vt 0.904762 0.050000 +vt 0.892857 0.060000 +vt 0.845238 0.260000 +vt 0.892857 0.300000 +vt 0.845238 0.100000 +vt 0.892857 0.140000 +vt 0.904762 0.030000 +vt 1.000000 0.040000 +vt 0.904762 0.270000 +vt 1.000000 0.280000 +vt 0.904762 0.290000 +vt 0.904762 0.110000 +vt 1.000000 0.120000 +vt 0.904762 0.130000 +vt 0.904762 0.210000 +vt 0.904762 0.190000 +vt 1.000000 0.200000 +vt 0.892857 0.100000 +vt 0.892857 0.260000 +vt 0.678571 0.240000 +vt 0.821429 0.160000 +vt 0.821429 0.240000 +vt 0.821429 -0.000000 +vt 0.845238 0.060000 +vt 0.821429 0.080000 +vt 0.678571 -0.000000 +vt 0.678571 0.160000 +vt 0.666667 0.090000 +vt 0.678571 0.080000 +vt 0.821429 0.320000 +vt 0.666667 0.150000 +vt 0.642857 0.090000 +vt 0.666667 0.010000 +vt 0.666667 0.230000 +vt 0.666667 0.170000 +vt 0.678571 0.320000 +vt 0.666667 0.250000 +vt 0.571429 0.150000 +vt 0.571429 0.090000 +vt 0.642857 0.070000 +vt 0.642857 0.010000 +vt 0.666667 0.310000 +vt 0.642857 0.250000 +vt 0.642857 0.170000 +vt 0.845238 0.180000 +vt 0.892857 0.220000 +vt 0.845238 0.220000 +vt 0.845238 0.300000 +vt 0.845238 0.140000 +vt 0.892857 0.020000 +vt 0.904762 0.050000 +vt 0.892857 0.060000 +vt 0.845238 0.260000 +vt 0.892857 0.300000 +vt 0.845238 0.100000 +vt 0.892857 0.140000 +vt 0.904762 0.030000 +vt 1.000000 0.040000 +vt 0.904762 0.270000 +vt 1.000000 0.280000 +vt 0.904762 0.290000 +vt 0.904762 0.110000 +vt 1.000000 0.120000 +vt 0.904762 0.130000 +vt 0.904762 0.210000 +vt 0.904762 0.190000 +vt 1.000000 0.200000 +vt 0.892857 0.100000 +vt 0.892857 0.260000 +vt 1.000000 0.500000 +vt 0.988095 0.510000 +vt 0.988095 0.500000 +vt 0.726190 0.720000 +vt 0.797619 0.720000 +vt 0.785714 0.760000 +vt 0.952381 0.500000 +vt 0.964286 0.510000 +vt 0.952381 0.510000 +vt 0.964286 0.320000 +vt 0.952381 0.490000 +vt 0.952381 0.320000 +vt 0.690476 0.760000 +vt 0.726190 0.880000 +vt 0.690476 0.880000 +vt 0.833333 0.880000 +vt 0.797619 0.760000 +vt 0.833333 0.760000 +vt 0.738095 0.880000 +vt 0.785714 0.880000 +vt 0.726190 0.760000 +vt 0.797619 0.880000 +vt 0.976190 0.320000 +vt 0.964286 0.490000 +vt 0.797619 0.920000 +vt 0.988095 0.320000 +vt 0.976190 0.490000 +vt 1.000000 0.320000 +vt 0.988095 0.490000 +vt 0.976190 0.500000 +vt 0.976190 0.510000 +vt 0.952381 0.500000 +vt 0.964286 0.500000 +vt 0.988095 0.500000 +vt 0.726190 0.720000 +vt 0.797619 0.720000 +vt 0.785714 0.760000 +vt 0.690476 0.760000 +vt 0.726190 0.880000 +vt 0.690476 0.880000 +vt 0.833333 0.880000 +vt 0.797619 0.760000 +vt 0.833333 0.760000 +vt 0.738095 0.880000 +vt 0.785714 0.880000 +vt 0.726190 0.760000 +vt 0.797619 0.880000 +vt 0.797619 0.920000 +vt 1.000000 0.500000 +vt 0.988095 0.510000 +vt 0.988095 0.500000 +vt 0.952381 0.500000 +vt 0.964286 0.510000 +vt 0.952381 0.510000 +vt 0.964286 0.320000 +vt 0.952381 0.490000 +vt 0.952381 0.320000 +vt 0.976190 0.320000 +vt 0.964286 0.490000 +vt 0.988095 0.320000 +vt 0.976190 0.490000 +vt 1.000000 0.320000 +vt 0.988095 0.490000 +vt 0.976190 0.500000 +vt 0.976190 0.510000 +vt 0.952381 0.500000 +vt 0.964286 0.500000 +vt 0.988095 0.500000 +vt 0.880952 0.560000 +vt 0.857143 0.800000 +vt 0.857143 0.560000 +vt 0.880952 0.800000 +vt 0.857143 0.840000 +vt 0.880952 0.520000 +vt 0.904762 0.780000 +vt 0.833333 0.580000 +vt 0.928571 0.580000 +vt 0.928571 0.780000 +vt 0.904762 0.540000 +vt 0.928571 0.520000 +vt 0.928571 0.540000 +vt 0.928571 0.820000 +vt 0.904762 0.840000 +vt 0.904762 0.820000 +vt 0.833333 0.820000 +vt 0.880952 0.840000 +vt 0.833333 0.540000 +vt 0.857143 0.520000 +vt 0.880952 0.560000 +vt 0.857143 0.800000 +vt 0.857143 0.560000 +vt 0.880952 0.800000 +vt 0.857143 0.840000 +vt 0.880952 0.520000 +vt 0.904762 0.780000 +vt 0.833333 0.580000 +vt 0.928571 0.580000 +vt 0.928571 0.780000 +vt 0.904762 0.540000 +vt 0.928571 0.520000 +vt 0.928571 0.540000 +vt 0.928571 0.820000 +vt 0.904762 0.840000 +vt 0.904762 0.820000 +vt 0.833333 0.820000 +vt 0.880952 0.840000 +vt 0.833333 0.540000 +vt 0.857143 0.520000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.952381 0.520000 +vt 0.952381 0.520000 +vt 0.428571 0.960000 +vt 0.238095 0.840000 +vt 0.666667 0.960000 +vt -0.000000 1.000000 +vt -0.000000 0.840000 +vt 0.666667 0.840000 +vt 0.428571 0.960000 +vt 0.238095 0.840000 +vt 0.666667 0.960000 +vt -0.000000 1.000000 +vt -0.000000 0.840000 +vt 0.666667 0.840000 +vt 0.845238 0.020000 +vt 0.642857 0.150000 +vt 0.666667 0.070000 +vt 0.642857 0.310000 +vt 0.642857 0.230000 +vt 0.892857 0.180000 +vt 0.845238 0.020000 +vt 0.642857 0.150000 +vt 0.666667 0.070000 +vt 0.642857 0.310000 +vt 0.642857 0.230000 +vt 0.892857 0.180000 +vt 1.000000 0.510000 +vt 0.797619 0.750000 +vt 0.738095 0.760000 +vt 0.726190 0.750000 +vt 0.797619 0.890000 +vt 0.726190 0.920000 +vt 0.726190 0.890000 +vt 1.000000 0.490000 +vt 0.797619 0.750000 +vt 0.738095 0.760000 +vt 0.726190 0.750000 +vt 0.797619 0.890000 +vt 0.726190 0.920000 +vt 0.726190 0.890000 +vt 1.000000 0.510000 +vt 1.000000 0.490000 +vt 0.904762 0.580000 +vt 0.833333 0.780000 +vt 0.904762 0.520000 +vt 0.928571 0.840000 +vt 0.833333 0.840000 +vt 0.833333 0.520000 +vt 0.904762 0.580000 +vt 0.833333 0.780000 +vt 0.904762 0.520000 +vt 0.928571 0.840000 +vt 0.833333 0.840000 +vt 0.833333 0.520000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5736 -0.8192 +vn 0.0000 0.5736 0.8192 +vn 0.0000 -0.8192 0.5736 +vn 0.0000 0.8192 -0.5736 +vn 0.9923 -0.0711 -0.1016 +vn 0.0000 -0.8840 0.4675 +vn 0.0000 0.7417 -0.6708 +vn -0.9923 -0.0711 -0.1016 +vn -0.0000 -0.5736 0.8192 +vn 0.0000 0.5736 -0.8192 +vn 0.0000 -0.8192 -0.5736 +vn 0.0000 0.8192 0.5736 +vn -0.9923 -0.0711 0.1016 +vn 0.0000 -0.8840 -0.4675 +vn 0.0000 0.7417 0.6708 +vn 0.9923 -0.0711 0.1016 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/2 19/5/2 6/6/2 +f 4/7/3 6/6/3 2/2/3 +f 1/8/4 7/9/4 3/10/4 +f 3/11/5 8/4/5 4/7/5 +f 2/12/6 5/13/6 1/8/6 +f 10/14/1 24/15/1 12/16/1 +f 14/17/2 15/18/2 13/19/2 +f 12/16/3 14/17/3 10/14/3 +f 9/20/4 15/21/4 11/22/4 +f 11/23/5 16/24/5 12/16/5 +f 10/25/6 13/26/6 9/20/6 +f 20/27/3 23/28/3 19/5/3 +f 5/13/2 17/29/2 7/9/2 +f 7/30/2 20/31/2 8/4/2 +f 6/32/2 18/33/2 5/13/2 +f 18/34/4 21/35/4 17/29/4 +f 17/36/5 24/37/5 20/31/5 +f 19/38/6 22/39/6 18/33/6 +f 12/16/1 21/40/1 11/23/1 +f 11/22/1 22/41/1 9/20/1 +f 9/20/1 23/42/1 10/25/1 +f 34/43/2 35/44/2 33/45/2 +f 31/46/2 29/47/2 30/48/2 +f 28/49/3 31/46/3 26/50/3 +f 25/51/4 29/47/4 27/52/4 +f 27/53/5 32/54/5 28/55/5 +f 26/56/6 30/48/6 25/57/6 +f 34/43/3 40/58/3 36/59/3 +f 35/44/4 37/60/4 33/45/4 +f 36/59/5 43/61/5 35/44/5 +f 33/45/6 42/62/6 34/43/6 +f 43/61/1 42/63/1 41/64/1 +f 44/65/4 45/66/4 42/67/4 +f 41/68/3 48/69/3 43/70/3 +f 43/70/5 39/71/5 35/44/5 +f 37/60/6 41/72/6 33/45/6 +f 40/58/5 44/65/5 36/59/5 +f 42/73/6 38/74/6 34/43/6 +f 50/75/2 51/76/2 49/77/2 +f 50/75/3 56/78/3 52/79/3 +f 51/76/4 53/80/4 49/77/4 +f 52/79/5 59/81/5 51/76/5 +f 49/77/6 58/82/6 50/75/6 +f 59/81/1 58/83/1 57/84/1 +f 60/85/4 61/86/4 58/87/4 +f 57/88/3 64/89/3 59/90/3 +f 59/90/5 55/91/5 51/76/5 +f 53/80/6 57/92/6 49/77/6 +f 56/78/5 60/85/5 52/79/5 +f 58/93/6 54/94/6 50/75/6 +f 65/95/4 68/96/4 67/97/4 +f 71/98/7 84/99/7 72/100/7 +f 72/100/3 69/101/3 71/98/3 +f 66/102/8 75/103/8 70/104/8 +f 71/105/9 65/95/9 67/97/9 +f 68/96/10 70/104/10 72/100/10 +f 74/106/10 79/107/10 75/103/10 +f 70/104/8 76/108/8 69/101/8 +f 66/102/8 73/109/8 74/110/8 +f 69/111/8 73/112/8 65/95/8 +f 79/107/8 77/113/8 80/114/8 +f 76/108/3 79/115/3 80/116/3 +f 76/117/9 77/118/9 73/112/9 +f 73/109/4 78/119/4 74/110/4 +f 81/120/4 86/121/4 82/122/4 +f 67/97/7 83/123/7 71/105/7 +f 72/100/7 81/124/7 68/96/7 +f 67/97/7 81/120/7 82/122/7 +f 87/125/7 92/126/7 88/127/7 +f 84/99/3 87/125/3 88/127/3 +f 82/128/9 87/129/9 83/123/9 +f 84/130/10 85/131/10 81/124/10 +f 91/132/11 93/133/11 92/126/11 +f 90/134/12 93/135/12 91/136/12 +f 92/137/13 93/138/13 89/139/13 +f 90/140/14 89/141/14 93/142/14 +f 92/137/7 85/131/7 88/143/7 +f 86/121/7 89/141/7 90/140/7 +f 90/134/7 87/129/7 86/144/7 +f 94/145/3 97/146/3 96/147/3 +f 100/148/15 113/149/15 101/150/15 +f 101/150/4 98/151/4 100/148/4 +f 95/152/16 104/153/16 99/154/16 +f 100/155/17 94/145/17 96/147/17 +f 97/146/18 99/154/18 101/150/18 +f 103/156/18 108/157/18 104/153/18 +f 99/154/16 105/158/16 98/151/16 +f 95/152/16 102/159/16 103/160/16 +f 98/161/16 102/162/16 94/145/16 +f 108/157/16 106/163/16 109/164/16 +f 105/158/4 108/165/4 109/166/4 +f 105/167/17 106/168/17 102/162/17 +f 102/159/3 107/169/3 103/160/3 +f 110/170/3 115/171/3 111/172/3 +f 96/147/15 112/173/15 100/155/15 +f 101/150/15 110/174/15 97/146/15 +f 96/147/15 110/170/15 111/172/15 +f 116/175/15 121/176/15 117/177/15 +f 113/149/4 116/175/4 117/177/4 +f 111/178/17 116/179/17 112/173/17 +f 113/180/18 114/181/18 110/174/18 +f 120/182/19 122/183/19 121/176/19 +f 119/184/20 122/185/20 120/186/20 +f 121/187/21 122/188/21 118/189/21 +f 119/190/22 118/191/22 122/192/22 +f 121/187/15 114/181/15 117/193/15 +f 115/171/15 118/191/15 119/190/15 +f 119/184/15 116/179/15 115/194/15 +f 142/195/1 143/196/1 141/197/1 +f 126/198/3 124/199/3 133/200/3 +f 142/201/5 148/202/5 144/203/5 +f 138/204/5 142/205/5 136/206/5 +f 126/207/6 127/208/6 125/209/6 +f 123/210/5 129/211/5 124/212/5 +f 131/213/2 133/200/2 132/214/2 +f 130/215/23 131/213/23 127/208/23 +f 128/216/24 133/200/24 129/211/24 +f 137/217/4 140/218/4 138/204/4 +f 131/213/4 132/214/4 123/219/4 +f 135/220/6 139/221/6 137/217/6 +f 136/222/3 141/223/3 135/220/3 +f 143/196/6 145/224/6 141/197/6 +f 148/202/2 145/224/2 147/225/2 +f 140/218/5 146/226/5 142/205/5 +f 139/221/25 146/227/25 140/218/25 +f 141/223/6 145/228/6 139/221/6 +f 152/229/3 150/230/3 159/231/3 +f 152/232/6 153/233/6 151/234/6 +f 149/235/5 155/236/5 150/237/5 +f 157/238/2 159/231/2 158/239/2 +f 156/240/23 157/238/23 153/233/23 +f 154/241/24 159/231/24 155/236/24 +f 157/238/4 158/239/4 149/242/4 +f 168/243/1 169/244/1 167/245/1 +f 168/246/5 174/247/5 170/248/5 +f 164/249/5 168/250/5 162/251/5 +f 163/252/4 166/253/4 164/249/4 +f 161/254/6 165/255/6 163/252/6 +f 162/256/3 167/257/3 161/254/3 +f 169/244/6 171/258/6 167/245/6 +f 174/247/2 171/258/2 173/259/2 +f 166/253/5 172/260/5 168/250/5 +f 165/255/25 172/261/25 166/253/25 +f 167/257/6 171/262/6 165/255/6 +f 176/263/2 177/264/2 175/265/2 +f 178/266/5 181/267/5 177/264/5 +f 175/265/6 180/268/6 176/263/6 +f 176/263/3 186/269/3 178/266/3 +f 177/264/4 183/270/4 175/265/4 +f 186/269/1 183/271/1 185/272/1 +f 184/273/5 187/274/5 183/275/5 +f 185/276/6 190/277/6 186/278/6 +f 181/267/4 185/279/4 177/264/4 +f 186/278/3 182/280/3 178/266/3 +f 183/281/4 179/282/4 175/265/4 +f 180/268/3 184/273/3 176/263/3 +f 192/283/2 193/284/2 191/285/2 +f 194/286/5 197/287/5 193/284/5 +f 191/285/6 196/288/6 192/283/6 +f 192/283/3 202/289/3 194/286/3 +f 193/284/4 199/290/4 191/285/4 +f 202/289/1 199/291/1 201/292/1 +f 200/293/5 203/294/5 199/295/5 +f 201/296/6 206/297/6 202/298/6 +f 197/287/4 201/299/4 193/284/4 +f 202/298/3 198/300/3 194/286/3 +f 199/301/4 195/302/4 191/285/4 +f 196/288/3 200/293/3 192/283/3 +f 209/303/6 208/304/6 207/305/6 +f 217/306/6 216/307/6 215/308/6 +f 210/309/3 213/310/3 208/304/3 +f 207/305/4 211/311/4 209/303/4 +f 209/303/1 214/312/1 210/309/1 +f 208/304/2 212/313/2 207/305/2 +f 218/314/3 221/315/3 216/307/3 +f 215/308/4 219/316/4 217/306/4 +f 217/306/1 222/317/1 218/314/1 +f 216/307/2 220/318/2 215/308/2 +f 225/319/5 224/320/5 223/321/5 +f 233/322/5 232/323/5 231/324/5 +f 226/325/4 229/326/4 224/320/4 +f 223/321/3 227/327/3 225/319/3 +f 225/319/1 230/328/1 226/325/1 +f 224/320/2 228/329/2 223/321/2 +f 234/330/4 237/331/4 232/323/4 +f 231/324/3 235/332/3 233/322/3 +f 233/322/1 238/333/1 234/330/1 +f 232/323/2 236/334/2 231/324/2 +f 241/335/3 240/336/3 239/337/3 +f 249/338/3 248/339/3 247/340/3 +f 242/341/5 245/342/5 240/336/5 +f 239/337/6 243/343/6 241/335/6 +f 241/335/1 246/344/1 242/341/1 +f 240/336/2 244/345/2 239/337/2 +f 250/346/5 253/347/5 248/339/5 +f 247/340/6 251/348/6 249/338/6 +f 249/338/1 254/349/1 250/346/1 +f 248/339/2 252/350/2 247/340/2 +f 257/351/4 256/352/4 255/353/4 +f 265/354/4 264/355/4 263/356/4 +f 258/357/6 261/358/6 256/352/6 +f 255/353/5 259/359/5 257/351/5 +f 257/351/1 262/360/1 258/357/1 +f 256/352/2 260/361/2 255/353/2 +f 266/362/6 269/363/6 264/355/6 +f 263/356/5 267/364/5 265/354/5 +f 265/354/1 270/365/1 266/362/1 +f 264/355/2 268/366/2 263/356/2 +f 273/367/3 272/368/3 271/369/3 +f 274/370/5 277/371/5 272/368/5 +f 271/369/6 275/372/6 273/367/6 +f 273/367/1 278/373/1 274/370/1 +f 272/368/2 276/374/2 271/369/2 +f 281/375/4 280/376/4 279/377/4 +f 282/378/6 285/379/6 280/376/6 +f 279/377/5 283/380/5 281/375/5 +f 281/375/1 286/381/1 282/378/1 +f 280/376/2 284/382/2 279/377/2 +f 3/1/1 4/7/1 2/2/1 +f 8/4/2 20/27/2 19/5/2 +f 4/7/3 8/4/3 6/6/3 +f 1/8/4 5/13/4 7/9/4 +f 3/11/5 7/30/5 8/4/5 +f 2/12/6 6/32/6 5/13/6 +f 10/14/1 23/28/1 24/15/1 +f 14/17/2 16/24/2 15/18/2 +f 12/16/3 16/24/3 14/17/3 +f 9/20/4 13/26/4 15/21/4 +f 11/23/5 15/383/5 16/24/5 +f 10/25/6 14/384/6 13/26/6 +f 20/27/3 24/15/3 23/28/3 +f 5/13/2 18/34/2 17/29/2 +f 7/30/2 17/36/2 20/31/2 +f 6/32/2 19/38/2 18/33/2 +f 18/34/4 22/41/4 21/35/4 +f 17/36/5 21/40/5 24/37/5 +f 19/38/6 23/42/6 22/39/6 +f 12/16/1 24/37/1 21/40/1 +f 11/22/1 21/35/1 22/41/1 +f 9/20/1 22/39/1 23/42/1 +f 34/43/2 36/59/2 35/44/2 +f 31/46/2 32/54/2 29/47/2 +f 28/49/3 32/54/3 31/46/3 +f 25/51/4 30/48/4 29/47/4 +f 27/53/5 29/47/5 32/54/5 +f 26/56/6 31/46/6 30/48/6 +f 34/43/3 38/74/3 40/58/3 +f 35/44/4 39/71/4 37/60/4 +f 36/59/5 44/385/5 43/61/5 +f 33/45/6 41/386/6 42/62/6 +f 43/61/1 44/385/1 42/63/1 +f 44/65/4 46/387/4 45/66/4 +f 41/68/3 47/388/3 48/69/3 +f 43/70/5 48/69/5 39/71/5 +f 37/60/6 47/389/6 41/72/6 +f 40/58/5 46/387/5 44/65/5 +f 42/73/6 45/390/6 38/74/6 +f 50/75/2 52/79/2 51/76/2 +f 50/75/3 54/94/3 56/78/3 +f 51/76/4 55/91/4 53/80/4 +f 52/79/5 60/391/5 59/81/5 +f 49/77/6 57/392/6 58/82/6 +f 59/81/1 60/391/1 58/83/1 +f 60/85/4 62/393/4 61/86/4 +f 57/88/3 63/394/3 64/89/3 +f 59/90/5 64/89/5 55/91/5 +f 53/80/6 63/395/6 57/92/6 +f 56/78/5 62/393/5 60/85/5 +f 58/93/6 61/396/6 54/94/6 +f 65/95/4 66/102/4 68/96/4 +f 71/98/7 83/397/7 84/99/7 +f 72/100/3 70/104/3 69/101/3 +f 66/102/8 74/106/8 75/103/8 +f 71/105/9 69/111/9 65/95/9 +f 68/96/10 66/102/10 70/104/10 +f 74/106/10 78/398/10 79/107/10 +f 70/104/8 75/399/8 76/108/8 +f 66/102/8 65/95/8 73/109/8 +f 69/111/8 76/117/8 73/112/8 +f 79/107/8 78/398/8 77/113/8 +f 76/108/3 75/399/3 79/115/3 +f 76/117/9 80/400/9 77/118/9 +f 73/109/4 77/401/4 78/119/4 +f 81/120/4 85/402/4 86/121/4 +f 67/97/7 82/128/7 83/123/7 +f 72/100/7 84/130/7 81/124/7 +f 67/97/7 68/96/7 81/120/7 +f 87/125/7 91/132/7 92/126/7 +f 84/99/3 83/397/3 87/125/3 +f 82/128/9 86/144/9 87/129/9 +f 84/130/10 88/143/10 85/131/10 +f 92/137/7 89/139/7 85/131/7 +f 86/121/7 85/402/7 89/141/7 +f 90/134/7 91/136/7 87/129/7 +f 94/145/3 95/152/3 97/146/3 +f 100/148/15 112/403/15 113/149/15 +f 101/150/4 99/154/4 98/151/4 +f 95/152/16 103/156/16 104/153/16 +f 100/155/17 98/161/17 94/145/17 +f 97/146/18 95/152/18 99/154/18 +f 103/156/18 107/404/18 108/157/18 +f 99/154/16 104/405/16 105/158/16 +f 95/152/16 94/145/16 102/159/16 +f 98/161/16 105/167/16 102/162/16 +f 108/157/16 107/404/16 106/163/16 +f 105/158/4 104/405/4 108/165/4 +f 105/167/17 109/406/17 106/168/17 +f 102/159/3 106/407/3 107/169/3 +f 110/170/3 114/408/3 115/171/3 +f 96/147/15 111/178/15 112/173/15 +f 101/150/15 113/180/15 110/174/15 +f 96/147/15 97/146/15 110/170/15 +f 116/175/15 120/182/15 121/176/15 +f 113/149/4 112/403/4 116/175/4 +f 111/178/17 115/194/17 116/179/17 +f 113/180/18 117/193/18 114/181/18 +f 121/187/15 118/189/15 114/181/15 +f 115/171/15 114/408/15 118/191/15 +f 119/184/15 120/186/15 116/179/15 +f 142/195/1 144/409/1 143/196/1 +f 124/199/3 129/410/3 133/200/3 +f 133/200/3 134/411/3 126/198/3 +f 134/411/3 130/412/3 126/198/3 +f 142/201/5 146/227/5 148/202/5 +f 138/204/5 140/218/5 142/205/5 +f 126/207/6 130/215/6 127/208/6 +f 123/210/5 128/216/5 129/211/5 +f 131/213/2 134/411/2 133/200/2 +f 130/215/23 134/411/23 131/213/23 +f 128/216/24 132/214/24 133/200/24 +f 137/217/4 139/221/4 140/218/4 +f 128/413/4 123/219/4 132/214/4 +f 123/219/4 125/414/4 131/213/4 +f 125/414/4 127/415/4 131/213/4 +f 135/220/6 141/223/6 139/221/6 +f 136/222/3 142/416/3 141/223/3 +f 143/196/6 147/225/6 145/224/6 +f 148/202/2 146/227/2 145/224/2 +f 139/221/25 145/224/25 146/227/25 +f 150/230/3 155/417/3 159/231/3 +f 159/231/3 160/418/3 152/229/3 +f 160/418/3 156/419/3 152/229/3 +f 152/232/6 156/240/6 153/233/6 +f 149/235/5 154/241/5 155/236/5 +f 157/238/2 160/418/2 159/231/2 +f 156/240/23 160/418/23 157/238/23 +f 154/241/24 158/239/24 159/231/24 +f 154/420/4 149/242/4 158/239/4 +f 149/242/4 151/421/4 157/238/4 +f 151/421/4 153/422/4 157/238/4 +f 168/243/1 170/423/1 169/244/1 +f 168/246/5 172/261/5 174/247/5 +f 164/249/5 166/253/5 168/250/5 +f 163/252/4 165/255/4 166/253/4 +f 161/254/6 167/257/6 165/255/6 +f 162/256/3 168/424/3 167/257/3 +f 169/244/6 173/259/6 171/258/6 +f 174/247/2 172/261/2 171/258/2 +f 165/255/25 171/258/25 172/261/25 +f 176/263/2 178/266/2 177/264/2 +f 178/266/5 182/280/5 181/267/5 +f 175/265/6 179/282/6 180/268/6 +f 176/263/3 184/425/3 186/269/3 +f 177/264/4 185/426/4 183/270/4 +f 186/269/1 184/425/1 183/271/1 +f 184/273/5 188/427/5 187/274/5 +f 185/276/6 189/428/6 190/277/6 +f 181/267/4 189/429/4 185/279/4 +f 186/278/3 190/277/3 182/280/3 +f 183/281/4 187/430/4 179/282/4 +f 180/268/3 188/427/3 184/273/3 +f 192/283/2 194/286/2 193/284/2 +f 194/286/5 198/300/5 197/287/5 +f 191/285/6 195/302/6 196/288/6 +f 192/283/3 200/431/3 202/289/3 +f 193/284/4 201/432/4 199/290/4 +f 202/289/1 200/431/1 199/291/1 +f 200/293/5 204/433/5 203/294/5 +f 201/296/6 205/434/6 206/297/6 +f 197/287/4 205/435/4 201/299/4 +f 202/298/3 206/297/3 198/300/3 +f 199/301/4 203/436/4 195/302/4 +f 196/288/3 204/433/3 200/293/3 +f 209/303/6 210/309/6 208/304/6 +f 217/306/6 218/314/6 216/307/6 +f 210/309/3 214/437/3 213/310/3 +f 207/305/4 212/438/4 211/311/4 +f 209/303/1 211/439/1 214/312/1 +f 208/304/2 213/440/2 212/313/2 +f 218/314/3 222/441/3 221/315/3 +f 215/308/4 220/442/4 219/316/4 +f 217/306/1 219/443/1 222/317/1 +f 216/307/2 221/444/2 220/318/2 +f 225/319/5 226/325/5 224/320/5 +f 233/322/5 234/330/5 232/323/5 +f 226/325/4 230/445/4 229/326/4 +f 223/321/3 228/446/3 227/327/3 +f 225/319/1 227/447/1 230/328/1 +f 224/320/2 229/448/2 228/329/2 +f 234/330/4 238/449/4 237/331/4 +f 231/324/3 236/450/3 235/332/3 +f 233/322/1 235/451/1 238/333/1 +f 232/323/2 237/452/2 236/334/2 +f 241/335/3 242/341/3 240/336/3 +f 249/338/3 250/346/3 248/339/3 +f 242/341/5 246/453/5 245/342/5 +f 239/337/6 244/454/6 243/343/6 +f 241/335/1 243/455/1 246/344/1 +f 240/336/2 245/456/2 244/345/2 +f 250/346/5 254/457/5 253/347/5 +f 247/340/6 252/458/6 251/348/6 +f 249/338/1 251/459/1 254/349/1 +f 248/339/2 253/460/2 252/350/2 +f 257/351/4 258/357/4 256/352/4 +f 265/354/4 266/362/4 264/355/4 +f 258/357/6 262/461/6 261/358/6 +f 255/353/5 260/462/5 259/359/5 +f 257/351/1 259/463/1 262/360/1 +f 256/352/2 261/464/2 260/361/2 +f 266/362/6 270/465/6 269/363/6 +f 263/356/5 268/466/5 267/364/5 +f 265/354/1 267/467/1 270/365/1 +f 264/355/2 269/468/2 268/366/2 +f 273/367/3 274/370/3 272/368/3 +f 274/370/5 278/469/5 277/371/5 +f 271/369/6 276/470/6 275/372/6 +f 273/367/1 275/471/1 278/373/1 +f 272/368/2 277/472/2 276/374/2 +f 281/375/4 282/378/4 280/376/4 +f 282/378/6 286/473/6 285/379/6 +f 279/377/5 284/474/5 283/380/5 +f 281/375/1 283/475/1 286/381/1 +f 280/376/2 285/476/2 284/382/2 diff --git a/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj b/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj new file mode 100644 index 000000000..894620dcb --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj @@ -0,0 +1,1224 @@ +# Blender v2.79 (sub 0) OBJ File: 'chimney_industrial.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v 1.500000 0.875000 0.375000 +v 1.500000 0.125000 0.375000 +v 1.500000 0.875000 -0.375000 +v 1.500000 0.125000 -0.375000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.375000 0.875000 -0.375000 +v 1.375000 0.875000 0.375000 +v 1.375000 0.125000 0.375000 +v 1.375000 0.125000 -0.375000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.312500 -0.187500 +v -1.500000 0.875000 -0.375000 +v -1.500000 0.125000 -0.375000 +v -1.500000 0.875000 0.375000 +v -1.500000 0.125000 0.375000 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.375000 0.875000 0.375000 +v -1.375000 0.875000 -0.375000 +v -1.375000 0.125000 -0.375000 +v -1.375000 0.125000 0.375000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.312500 0.187500 +v 0.375000 0.875000 -1.500000 +v 0.375000 0.125000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.375000 0.125000 -1.500000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v -0.375000 0.875000 -1.375000 +v 0.375000 0.875000 -1.375000 +v 0.375000 0.125000 -1.375000 +v -0.375000 0.125000 -1.375000 +v -0.187500 0.687500 -1.375000 +v 0.187500 0.687500 -1.375000 +v 0.187500 0.312500 -1.375000 +v -0.187500 0.312500 -1.375000 +v -0.375000 0.875000 1.500000 +v -0.375000 0.125000 1.500000 +v 0.375000 0.875000 1.500000 +v 0.375000 0.125000 1.500000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v 0.375000 0.875000 1.375000 +v -0.375000 0.875000 1.375000 +v -0.375000 0.125000 1.375000 +v 0.375000 0.125000 1.375000 +v 0.187500 0.687500 1.375000 +v -0.187500 0.687500 1.375000 +v -0.187500 0.312500 1.375000 +v 0.187500 0.312500 1.375000 +v 0.000000 10.000000 -1.250000 +v -0.478354 10.000000 -1.154849 +v -0.883883 10.000000 -0.883883 +v -1.154849 10.000000 -0.478354 +v -1.250000 10.000000 0.000000 +v -1.154849 10.000000 0.478354 +v -0.883883 10.000000 0.883883 +v -0.478354 10.000000 1.154849 +v -0.000000 10.000000 1.250000 +v 0.478354 10.000000 1.154850 +v 0.883883 10.000000 0.883884 +v 1.154849 10.000000 0.478354 +v 1.250000 10.000000 -0.000000 +v 1.154849 10.000000 -0.478355 +v 0.883883 10.000000 -0.883884 +v 0.478354 10.000000 -1.154850 +v 0.000000 23.000000 -1.250000 +v -0.478354 23.000000 -1.154849 +v -0.883883 23.000000 -0.883883 +v -1.154849 23.000000 -0.478354 +v -1.250000 23.000000 0.000000 +v -1.154849 23.000000 0.478354 +v -0.883883 23.000000 0.883883 +v -0.478354 23.000000 1.154849 +v -0.000000 23.000000 1.250000 +v 0.478354 23.000000 1.154850 +v 0.883883 23.000000 0.883884 +v 1.154849 23.000000 0.478354 +v 1.250000 23.000000 -0.000000 +v 1.154849 23.000000 -0.478355 +v 0.883883 23.000000 -0.883884 +v 0.478354 23.000000 -1.154850 +v -0.000000 23.000000 -1.000000 +v -0.382684 23.000000 -0.923880 +v -0.707107 23.000000 -0.707107 +v -0.923880 23.000000 -0.382683 +v -1.000000 23.000000 0.000000 +v -0.923880 23.000000 0.382684 +v -0.707107 23.000000 0.707107 +v -0.382684 23.000000 0.923880 +v -0.000000 23.000000 1.000000 +v 0.382683 23.000000 0.923880 +v 0.707107 23.000000 0.707107 +v 0.923879 23.000000 0.382684 +v 1.000000 23.000000 -0.000000 +v 0.923879 23.000000 -0.382684 +v 0.707106 23.000000 -0.707107 +v 0.382683 23.000000 -0.923880 +v -0.000000 21.000000 -1.000000 +v -0.382684 21.000000 -0.923880 +v -0.707107 21.000000 -0.707107 +v -0.923880 21.000000 -0.382683 +v -1.000000 21.000000 0.000000 +v -0.923880 21.000000 0.382684 +v -0.707107 21.000000 0.707107 +v -0.382684 21.000000 0.923880 +v -0.000000 21.000000 1.000000 +v 0.382683 21.000000 0.923880 +v 0.707107 21.000000 0.707107 +v 0.923879 21.000000 0.382684 +v 1.000000 21.000000 -0.000000 +v 0.923879 21.000000 -0.382684 +v 0.707106 21.000000 -0.707107 +v 0.382683 21.000000 -0.923880 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v -0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 -0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v -0.000000 22.500000 -1.500000 +v -0.574025 22.500000 -1.385819 +v -1.060660 22.500000 -1.060660 +v -1.385819 22.500000 -0.574025 +v -1.500000 22.500000 0.000000 +v -1.385819 22.500000 0.574025 +v -1.060660 22.500000 1.060660 +v -0.574025 22.500000 1.385819 +v -0.000000 22.500000 1.500000 +v 0.574025 22.500000 1.385819 +v 1.060660 22.500000 1.060660 +v 1.385819 22.500000 0.574025 +v 1.500000 22.500000 -0.000000 +v 1.385819 22.500000 -0.574025 +v 1.060660 22.500000 -1.060660 +v 0.574024 22.500000 -1.385820 +v 0.000000 22.500000 -1.250000 +v -0.478354 22.500000 -1.154849 +v -0.883883 22.500000 -0.883883 +v -1.154849 22.500000 -0.478354 +v -1.250000 22.500000 0.000000 +v -1.154849 22.500000 0.478354 +v -0.883883 22.500000 0.883883 +v -0.478354 22.500000 1.154849 +v -0.000000 22.500000 1.250000 +v 0.478354 22.500000 1.154850 +v 0.883883 22.500000 0.883884 +v 1.154849 22.500000 0.478354 +v 1.250000 22.500000 -0.000000 +v 1.154849 22.500000 -0.478355 +v 0.883883 22.500000 -0.883884 +v 0.478354 22.500000 -1.154850 +v 0.000000 22.000000 -1.250000 +v -0.478354 22.000000 -1.154849 +v -0.883883 22.000000 -0.883883 +v -1.154849 22.000000 -0.478354 +v -1.250000 22.000000 0.000000 +v -1.154849 22.000000 0.478354 +v -0.883883 22.000000 0.883883 +v -0.478354 22.000000 1.154849 +v -0.000000 22.000000 1.250000 +v 0.478354 22.000000 1.154850 +v 0.883883 22.000000 0.883884 +v 1.154849 22.000000 0.478354 +v 1.250000 22.000000 -0.000000 +v 1.154849 22.000000 -0.478355 +v 0.883883 22.000000 -0.883884 +v 0.478354 22.000000 -1.154850 +v -0.000000 22.250000 -1.500000 +v -0.574025 22.250000 -1.385819 +v -1.060660 22.250000 -1.060660 +v -1.385819 22.250000 -0.574025 +v -1.500000 22.250000 0.000000 +v -1.385819 22.250000 0.574025 +v -1.060660 22.250000 1.060660 +v -0.574025 22.250000 1.385819 +v -0.000000 22.250000 1.500000 +v 0.574025 22.250000 1.385819 +v 1.060660 22.250000 1.060660 +v 1.385819 22.250000 0.574025 +v 1.500000 22.250000 -0.000000 +v 1.385819 22.250000 -0.574025 +v 1.060660 22.250000 -1.060660 +v 0.574024 22.250000 -1.385820 +v -0.000000 14.250000 -1.500000 +v -0.574025 14.250000 -1.385819 +v -1.060660 14.250000 -1.060660 +v -1.385819 14.250000 -0.574025 +v -1.500000 14.250000 0.000000 +v -1.385819 14.250000 0.574025 +v -1.060660 14.250000 1.060660 +v -0.574025 14.250000 1.385819 +v -0.000000 14.250000 1.500000 +v 0.574025 14.250000 1.385819 +v 1.060660 14.250000 1.060660 +v 1.385819 14.250000 0.574025 +v 1.500000 14.250000 -0.000000 +v 1.385819 14.250000 -0.574025 +v 1.060660 14.250000 -1.060660 +v 0.574024 14.250000 -1.385820 +v 0.000000 14.250000 -1.250000 +v -0.478354 14.250000 -1.154849 +v -0.883883 14.250000 -0.883883 +v -1.154849 14.250000 -0.478354 +v -1.250000 14.250000 0.000000 +v -1.154849 14.250000 0.478354 +v -0.883883 14.250000 0.883883 +v -0.478354 14.250000 1.154849 +v -0.000000 14.250000 1.250000 +v 0.478354 14.250000 1.154850 +v 0.883883 14.250000 0.883884 +v 1.154849 14.250000 0.478354 +v 1.250000 14.250000 -0.000000 +v 1.154849 14.250000 -0.478355 +v 0.883883 14.250000 -0.883884 +v 0.478354 14.250000 -1.154850 +v 0.000000 13.750000 -1.250000 +v -0.478354 13.750000 -1.154849 +v -0.883883 13.750000 -0.883883 +v -1.154849 13.750000 -0.478354 +v -1.250000 13.750000 0.000000 +v -1.154849 13.750000 0.478354 +v -0.883883 13.750000 0.883883 +v -0.478354 13.750000 1.154849 +v -0.000000 13.750000 1.250000 +v 0.478354 13.750000 1.154850 +v 0.883883 13.750000 0.883884 +v 1.154849 13.750000 0.478354 +v 1.250000 13.750000 -0.000000 +v 1.154849 13.750000 -0.478355 +v 0.883883 13.750000 -0.883884 +v 0.478354 13.750000 -1.154850 +v -0.000000 14.000000 -1.500000 +v -0.574025 14.000000 -1.385819 +v -1.060660 14.000000 -1.060660 +v -1.385819 14.000000 -0.574025 +v -1.500000 14.000000 0.000000 +v -1.385819 14.000000 0.574025 +v -1.060660 14.000000 1.060660 +v -0.574025 14.000000 1.385819 +v -0.000000 14.000000 1.500000 +v 0.574025 14.000000 1.385819 +v 1.060660 14.000000 1.060660 +v 1.385819 14.000000 0.574025 +v 1.500000 14.000000 -0.000000 +v 1.385819 14.000000 -0.574025 +v 1.060660 14.000000 -1.060660 +v 0.574024 14.000000 -1.385820 +vt 0.272727 -0.000000 +vt -0.000000 0.129032 +vt -0.000000 -0.000000 +vt -0.000000 0.212366 +vt 0.272727 0.344086 +vt -0.000000 0.344086 +vt 0.170455 0.166667 +vt 0.272727 0.129032 +vt 0.272727 0.212366 +vt 0.102273 0.166667 +vt 0.102273 0.134409 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.102273 0.387097 +vt 0.085227 0.362903 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.011364 0.354839 +vt 0.028409 0.379032 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.085227 0.379032 +vt 0.028409 0.362903 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.102273 0.387097 +vt 0.085227 0.362903 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.011364 0.354839 +vt 0.028409 0.379032 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.085227 0.379032 +vt 0.028409 0.362903 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.085227 0.379032 +vt 0.102273 0.387097 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.028409 0.362903 +vt 0.011364 0.354839 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.073864 0.384409 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.085227 0.379032 +vt 0.102273 0.387097 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.028409 0.362903 +vt 0.011364 0.354839 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt -0.000000 0.129032 +vt 0.102273 0.166667 +vt -0.000000 0.215054 +vt 0.170455 0.134409 +vt 0.272727 0.129032 +vt 0.272727 0.215054 +vt 0.170455 0.166667 +vt 0.102273 0.166667 +vt 0.000000 0.129032 +vt 0.102273 0.134409 +vt 0.272727 0.215054 +vt 0.000000 0.215054 +vt 0.272727 0.129032 +vt 0.170455 0.166667 +vt 0.170455 0.134409 +vt 0.102273 0.166667 +vt -0.000000 0.129032 +vt 0.102273 0.134409 +vt 0.272727 0.129032 +vt 0.170455 0.166667 +vt 0.272727 0.215054 +vt -0.000000 0.215054 +vt 0.863636 0.903226 +vt 0.823864 0.913979 +vt 0.818182 0.903226 +vt 0.778409 0.913979 +vt 0.772727 0.903226 +vt 0.727273 0.903226 +vt 0.767045 0.913979 +vt 0.732955 0.913979 +vt 0.687500 0.913979 +vt 0.681818 0.903226 +vt 0.642045 0.913979 +vt 0.636364 0.903226 +vt 0.596591 0.913979 +vt 0.590909 0.903226 +vt 0.545455 0.903226 +vt 0.585227 0.913979 +vt 0.551136 0.913979 +vt 0.500000 0.903226 +vt 0.539773 0.913979 +vt 0.505682 0.913979 +vt 0.454545 0.903226 +vt 0.494318 0.913979 +vt 0.460227 0.913979 +vt 0.409091 0.903226 +vt 0.448864 0.913979 +vt 0.414773 0.913979 +vt 0.363636 0.903226 +vt 0.403409 0.913979 +vt 0.369318 0.913979 +vt 0.323864 0.913979 +vt 0.318182 0.903226 +vt 0.278409 0.913979 +vt 0.272727 0.903226 +vt 1.000000 0.903226 +vt 0.960227 0.913979 +vt 0.954545 0.903226 +vt 0.914773 0.913979 +vt 0.909091 0.903226 +vt 0.869318 0.913979 +vt 0.026682 0.410473 +vt 0.090909 0.397887 +vt 0.181740 0.440860 +vt 0.227273 0.666667 +vt 0.204545 0.688172 +vt 0.204545 0.666667 +vt 0.227273 0.365591 +vt 0.204545 0.344086 +vt 0.227273 0.344086 +vt 0.227273 0.387097 +vt 0.204545 0.365591 +vt 0.227273 0.408602 +vt 0.204545 0.387097 +vt 0.227273 0.430108 +vt 0.204545 0.408602 +vt 0.227273 0.451613 +vt 0.204545 0.430108 +vt 0.227273 0.473118 +vt 0.204545 0.451613 +vt 0.227273 0.494624 +vt 0.204545 0.473118 +vt 0.227273 0.516129 +vt 0.204545 0.494624 +vt 0.204545 0.537634 +vt 0.204545 0.516129 +vt 0.227273 0.537634 +vt 0.204545 0.559140 +vt 0.227273 0.559140 +vt 0.204545 0.580645 +vt 0.227273 0.580645 +vt 0.204545 0.602151 +vt 0.227273 0.602151 +vt 0.204545 0.623656 +vt 0.227273 0.623656 +vt 0.204545 0.645161 +vt 0.227273 0.645161 +vt 0.227273 0.666667 +vt 0.204545 0.688172 +vt 0.204545 0.666667 +vt 0.227273 0.365591 +vt 0.204545 0.344086 +vt 0.227273 0.344086 +vt 0.227273 0.387097 +vt 0.204545 0.365591 +vt 0.227273 0.408602 +vt 0.204545 0.387097 +vt 0.227273 0.430108 +vt 0.204545 0.408602 +vt 0.227273 0.451613 +vt 0.204545 0.430108 +vt 0.227273 0.473118 +vt 0.204545 0.451613 +vt 0.227273 0.494624 +vt 0.204545 0.473118 +vt 0.227273 0.516129 +vt 0.204545 0.494624 +vt 0.204545 0.537634 +vt 0.204545 0.516129 +vt 0.227273 0.537634 +vt 0.204545 0.559140 +vt 0.227273 0.559140 +vt 0.204545 0.580645 +vt 0.227273 0.580645 +vt 0.204545 0.602151 +vt 0.227273 0.602151 +vt 0.204545 0.623656 +vt 0.227273 0.623656 +vt 0.204545 0.645161 +vt 0.227273 0.645161 +vt 0.170455 0.134409 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.085227 0.362903 +vt 0.028409 0.379032 +vt 0.039773 0.357527 +vt 0.085227 0.362903 +vt 0.028409 0.379032 +vt 0.102273 0.134409 +vt 0.170455 0.134409 +vt 0.857955 0.913979 +vt 0.812500 0.913979 +vt 0.721591 0.913979 +vt 0.676136 0.913979 +vt 0.630682 0.913979 +vt 0.357955 0.913979 +vt 0.312500 0.913979 +vt 0.994318 0.913979 +vt 0.948864 0.913979 +vt 0.903409 0.913979 +vt 0.174826 0.457305 +vt 0.155136 0.471247 +vt 0.125668 0.480563 +vt 0.090909 0.483834 +vt 0.056150 0.480563 +vt 0.026682 0.471247 +vt 0.006992 0.457305 +vt 0.000078 0.440860 +vt 0.006993 0.424415 +vt 0.056150 0.401158 +vt 0.125668 0.401158 +vt 0.155136 0.410473 +vt 0.174826 0.424415 +vt 0.227273 0.688172 +vt 0.227273 0.688172 +vt 0.363636 0.344086 +vt 0.318182 0.344086 +vt 0.727273 0.344086 +vt 0.681818 0.344086 +vt 0.409091 0.344086 +vt 0.772727 0.344086 +vt 0.454545 0.344086 +vt 0.863636 0.344086 +vt 0.818182 0.344086 +vt 0.500000 0.344086 +vt 0.909091 0.344086 +vt 0.545455 0.344086 +vt 0.954545 0.344086 +vt 0.590909 0.344086 +vt 1.000000 0.344086 +vt 0.636364 0.344086 +vt 0.272727 0.344086 +vt 0.505682 1.000000 +vt 0.914773 1.000000 +vt 0.551136 1.000000 +vt 0.960227 1.000000 +vt 0.596591 1.000000 +vt 0.278409 1.000000 +vt 0.642045 1.000000 +vt 0.323864 1.000000 +vt 0.687500 1.000000 +vt 0.369318 1.000000 +vt 0.732955 1.000000 +vt 0.414773 1.000000 +vt 0.823864 1.000000 +vt 0.778409 1.000000 +vt 0.460227 1.000000 +vt 0.869318 1.000000 +vt 0.909091 0.000000 +vt 0.954545 0.000000 +vt 0.272727 -0.000000 +vt 0.318182 -0.000000 +vt 0.363636 -0.000000 +vt 0.409091 -0.000000 +vt 0.454545 0.000000 +vt 0.545455 -0.000000 +vt 0.590909 0.000000 +vt 0.681818 0.000000 +vt 0.772727 -0.000000 +vt 0.818182 -0.000000 +vt 0.250000 0.451613 +vt 0.250000 0.645161 +vt 0.250000 0.473118 +vt 0.250000 0.666667 +vt 0.250000 0.494624 +vt 0.250000 0.344086 +vt 0.250000 0.516129 +vt 0.250000 0.365591 +vt 0.250000 0.537634 +vt 0.250000 0.387097 +vt 0.250000 0.559140 +vt 0.250000 0.408602 +vt 0.250000 0.602151 +vt 0.250000 0.580645 +vt 0.250000 0.430108 +vt 0.250000 0.623656 +vt 0.272727 0.688172 +vt 0.272727 0.666667 +vt 0.272727 0.365591 +vt 0.272727 0.344086 +vt 0.272727 0.387097 +vt 0.272727 0.408602 +vt 0.272727 0.430108 +vt 0.272727 0.451613 +vt 0.272727 0.473118 +vt 0.272727 0.516129 +vt 0.272727 0.494624 +vt 0.272727 0.537634 +vt 0.272727 0.559140 +vt 0.272727 0.580645 +vt 0.272727 0.602151 +vt 0.272727 0.623656 +vt 0.272727 0.645161 +vt 0.250000 0.451613 +vt 0.250000 0.645161 +vt 0.250000 0.473118 +vt 0.250000 0.666667 +vt 0.250000 0.494624 +vt 0.250000 0.344086 +vt 0.250000 0.516129 +vt 0.250000 0.365591 +vt 0.250000 0.537634 +vt 0.250000 0.387097 +vt 0.250000 0.559140 +vt 0.250000 0.408602 +vt 0.250000 0.602151 +vt 0.250000 0.580645 +vt 0.250000 0.430108 +vt 0.250000 0.623656 +vt 0.272727 0.688172 +vt 0.272727 0.666667 +vt 0.272727 0.365591 +vt 0.272727 0.344086 +vt 0.272727 0.387097 +vt 0.272727 0.408602 +vt 0.272727 0.430108 +vt 0.272727 0.451613 +vt 0.272727 0.473118 +vt 0.272727 0.516129 +vt 0.272727 0.494624 +vt 0.272727 0.537634 +vt 0.272727 0.559140 +vt 0.272727 0.580645 +vt 0.272727 0.602151 +vt 0.272727 0.623656 +vt 0.272727 0.645161 +vt 0.539773 1.000000 +vt 0.948864 1.000000 +vt 0.585227 1.000000 +vt 0.994318 1.000000 +vt 0.630682 1.000000 +vt 0.312500 1.000000 +vt 0.676136 1.000000 +vt 0.357955 1.000000 +vt 0.721591 1.000000 +vt 0.403409 1.000000 +vt 0.767045 1.000000 +vt 0.448864 1.000000 +vt 0.857955 1.000000 +vt 0.812500 1.000000 +vt 0.494318 1.000000 +vt 0.903409 1.000000 +vt 1.000000 0.000000 +vt 0.500000 0.000000 +vt 0.636364 0.000000 +vt 0.727273 -0.000000 +vt 0.863636 -0.000000 +vt 0.250000 0.688172 +vt 0.250000 0.688172 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.7068 0.0312 -0.7068 +vn -0.9234 0.0312 -0.3825 +vn -0.9995 0.0312 -0.0000 +vn -0.9234 0.0312 0.3825 +vn -0.7068 0.0312 0.7068 +vn -0.3825 0.0312 0.9234 +vn -0.0000 0.0312 0.9995 +vn 0.3825 0.0312 0.9234 +vn 0.7068 0.0312 0.7068 +vn 0.9234 0.0312 0.3825 +vn 0.9995 0.0312 -0.0000 +vn 0.9234 0.0312 -0.3825 +vn 0.7068 0.0312 -0.7068 +vn 0.3825 0.0312 -0.9234 +vn -0.0000 0.0312 -0.9995 +vn -0.3825 0.0312 -0.9234 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 -0.2706 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn 0.7071 -0.7071 -0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn -0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 11/7/3 4/8/3 8/9/3 +f 9/10/3 2/2/3 10/11/3 +f 9/10/3 8/9/3 6/4/3 +f 4/8/3 10/11/3 2/2/3 +f 14/12/3 15/13/3 13/14/3 +f 15/13/2 22/15/2 13/14/2 +f 14/12/1 24/16/1 16/17/1 +f 10/18/4 18/19/4 9/20/4 +f 11/21/5 20/22/5 12/23/5 +f 24/16/3 19/24/3 20/25/3 +f 17/26/3 24/27/3 20/22/3 +f 22/15/3 17/28/3 18/29/3 +f 19/30/3 22/31/3 18/19/3 +f 12/32/2 19/24/2 10/33/2 +f 9/34/1 17/28/1 11/35/1 +f 16/17/4 21/36/4 15/13/4 +f 13/14/5 23/37/5 14/12/5 +f 30/38/6 31/39/6 29/40/6 +f 31/39/2 38/41/2 29/40/2 +f 30/38/1 40/42/1 32/43/1 +f 26/44/5 34/45/5 25/46/5 +f 27/47/4 36/48/4 28/49/4 +f 40/42/6 35/50/6 36/51/6 +f 33/52/6 40/53/6 36/48/6 +f 38/41/6 33/54/6 34/55/6 +f 35/56/6 38/57/6 34/45/6 +f 28/58/2 35/50/2 26/59/2 +f 25/60/1 33/54/1 27/61/1 +f 32/43/5 37/62/5 31/39/5 +f 29/40/4 39/63/4 30/38/4 +f 46/64/4 47/65/4 45/66/4 +f 47/65/2 54/67/2 45/66/2 +f 46/64/1 56/68/1 48/69/1 +f 42/70/6 50/71/6 41/72/6 +f 43/73/3 52/74/3 44/75/3 +f 56/68/4 51/76/4 52/77/4 +f 53/78/4 52/74/4 49/79/4 +f 54/67/4 49/80/4 50/81/4 +f 55/82/4 50/71/4 51/83/4 +f 44/84/2 51/76/2 42/85/2 +f 41/86/1 49/80/1 43/87/1 +f 48/69/6 53/78/6 47/65/6 +f 45/66/3 55/82/3 46/64/3 +f 62/88/5 63/89/5 61/90/5 +f 61/90/2 69/91/2 70/92/2 +f 62/88/1 72/93/1 64/94/1 +f 58/95/3 66/96/3 57/97/3 +f 59/98/6 68/99/6 60/100/6 +f 72/93/5 67/101/5 68/102/5 +f 69/103/5 68/99/5 65/104/5 +f 70/92/5 65/105/5 66/106/5 +f 71/107/5 66/96/5 67/108/5 +f 60/109/2 67/101/2 58/110/2 +f 57/111/1 65/105/1 59/112/1 +f 64/94/3 69/103/3 63/89/3 +f 61/90/6 71/107/6 62/88/6 +f 4/113/4 41/114/4 8/115/4 +f 44/116/4 4/113/4 3/117/4 +f 41/114/4 7/118/4 8/115/4 +f 43/119/4 3/117/4 7/118/4 +f 25/120/6 3/121/6 26/122/6 +f 25/120/6 5/123/6 7/124/6 +f 1/125/6 26/122/6 3/121/6 +f 1/125/6 27/126/6 28/127/6 +f 57/128/5 1/129/5 58/130/5 +f 2/131/5 58/130/5 1/129/5 +f 59/132/5 2/131/5 6/133/5 +f 57/128/5 6/133/5 5/134/5 +f 90/135/2 105/136/2 89/137/2 +f 89/137/2 120/138/2 104/139/2 +f 103/140/2 120/141/2 119/142/2 +f 103/140/2 118/143/2 102/144/2 +f 102/144/2 117/145/2 101/146/2 +f 101/146/2 116/147/2 100/148/2 +f 99/149/2 116/150/2 115/151/2 +f 98/152/2 115/153/2 114/154/2 +f 97/155/2 114/156/2 113/157/2 +f 96/158/2 113/159/2 112/160/2 +f 95/161/2 112/162/2 111/163/2 +f 95/161/2 110/164/2 94/165/2 +f 94/165/2 109/166/2 93/167/2 +f 93/168/2 108/169/2 92/170/2 +f 92/170/2 107/171/2 91/172/2 +f 91/172/2 106/173/2 90/135/2 +f 131/174/2 133/175/2 121/176/2 +f 156/177/2 173/178/2 172/179/2 +f 158/180/2 173/181/2 157/182/2 +f 159/183/2 174/184/2 158/180/2 +f 160/185/2 175/186/2 159/183/2 +f 161/187/2 176/188/2 160/185/2 +f 162/189/2 177/190/2 161/187/2 +f 163/191/2 178/192/2 162/189/2 +f 164/193/2 179/194/2 163/191/2 +f 165/195/2 180/196/2 164/193/2 +f 165/195/2 182/197/2 181/198/2 +f 166/199/2 183/200/2 182/197/2 +f 167/201/2 184/202/2 183/200/2 +f 168/203/2 169/204/2 184/202/2 +f 153/205/2 170/206/2 169/204/2 +f 154/207/2 171/208/2 170/206/2 +f 155/209/2 172/179/2 171/208/2 +f 220/210/2 237/211/2 236/212/2 +f 222/213/2 237/214/2 221/215/2 +f 223/216/2 238/217/2 222/213/2 +f 224/218/2 239/219/2 223/216/2 +f 225/220/2 240/221/2 224/218/2 +f 226/222/2 241/223/2 225/220/2 +f 227/224/2 242/225/2 226/222/2 +f 228/226/2 243/227/2 227/224/2 +f 229/228/2 244/229/2 228/226/2 +f 229/228/2 246/230/2 245/231/2 +f 230/232/2 247/233/2 246/230/2 +f 231/234/2 248/235/2 247/233/2 +f 232/236/2 233/237/2 248/235/2 +f 217/238/2 234/239/2 233/237/2 +f 218/240/2 235/241/2 234/239/2 +f 219/242/2 236/212/2 235/241/2 +f 3/1/1 4/8/1 2/2/1 +f 6/4/2 8/9/2 7/5/2 +f 11/7/3 12/243/3 4/8/3 +f 9/10/3 6/4/3 2/2/3 +f 9/10/3 11/7/3 8/9/3 +f 4/8/3 12/243/3 10/11/3 +f 14/12/3 16/17/3 15/13/3 +f 15/13/2 21/244/2 22/15/2 +f 14/12/1 23/245/1 24/16/1 +f 10/18/4 19/30/4 18/19/4 +f 11/21/5 17/26/5 20/22/5 +f 24/16/3 23/245/3 19/24/3 +f 17/26/3 21/36/3 24/27/3 +f 22/15/3 21/244/3 17/28/3 +f 19/30/3 23/37/3 22/31/3 +f 12/32/2 20/25/2 19/24/2 +f 9/34/1 18/29/1 17/28/1 +f 16/17/4 24/27/4 21/36/4 +f 13/14/5 22/31/5 23/37/5 +f 30/38/6 32/43/6 31/39/6 +f 31/39/2 37/246/2 38/41/2 +f 30/38/1 39/247/1 40/42/1 +f 26/44/5 35/56/5 34/45/5 +f 27/47/4 33/52/4 36/48/4 +f 40/42/6 39/247/6 35/50/6 +f 33/52/6 37/62/6 40/53/6 +f 38/41/6 37/246/6 33/54/6 +f 35/56/6 39/63/6 38/57/6 +f 28/58/2 36/51/2 35/50/2 +f 25/60/1 34/55/1 33/54/1 +f 32/43/5 40/53/5 37/62/5 +f 29/40/4 38/57/4 39/63/4 +f 46/64/4 48/69/4 47/65/4 +f 47/65/2 53/248/2 54/67/2 +f 46/64/1 55/249/1 56/68/1 +f 42/70/6 51/83/6 50/71/6 +f 43/73/3 49/79/3 52/74/3 +f 56/68/4 55/249/4 51/76/4 +f 53/78/4 56/250/4 52/74/4 +f 54/67/4 53/248/4 49/80/4 +f 55/82/4 54/251/4 50/71/4 +f 44/84/2 52/77/2 51/76/2 +f 41/86/1 50/81/1 49/80/1 +f 48/69/6 56/250/6 53/78/6 +f 45/66/3 54/251/3 55/82/3 +f 62/88/5 64/94/5 63/89/5 +f 61/90/2 63/89/2 69/91/2 +f 62/88/1 71/252/1 72/93/1 +f 58/95/3 67/108/3 66/96/3 +f 59/98/6 65/104/6 68/99/6 +f 72/93/5 71/252/5 67/101/5 +f 69/103/5 72/253/5 68/99/5 +f 70/92/5 69/91/5 65/105/5 +f 71/107/5 70/254/5 66/96/5 +f 60/109/2 68/102/2 67/101/2 +f 57/111/1 66/106/1 65/105/1 +f 64/94/3 72/253/3 69/103/3 +f 61/90/6 70/254/6 71/107/6 +f 4/113/4 42/255/4 41/114/4 +f 44/116/4 42/255/4 4/113/4 +f 41/114/4 43/119/4 7/118/4 +f 43/119/4 44/116/4 3/117/4 +f 25/120/6 7/124/6 3/121/6 +f 25/120/6 27/126/6 5/123/6 +f 1/125/6 28/127/6 26/122/6 +f 1/125/6 5/123/6 27/126/6 +f 57/128/5 5/134/5 1/129/5 +f 2/131/5 60/256/5 58/130/5 +f 59/132/5 60/256/5 2/131/5 +f 57/128/5 59/132/5 6/133/5 +f 90/135/2 106/257/2 105/136/2 +f 89/137/2 105/258/2 120/138/2 +f 103/140/2 104/139/2 120/141/2 +f 103/140/2 119/259/2 118/143/2 +f 102/144/2 118/260/2 117/145/2 +f 101/146/2 117/261/2 116/147/2 +f 99/149/2 100/148/2 116/150/2 +f 98/152/2 99/149/2 115/153/2 +f 97/155/2 98/152/2 114/156/2 +f 96/158/2 97/155/2 113/159/2 +f 95/161/2 96/158/2 112/162/2 +f 95/161/2 111/262/2 110/164/2 +f 94/165/2 110/263/2 109/166/2 +f 93/168/2 109/264/2 108/169/2 +f 92/170/2 108/265/2 107/171/2 +f 91/172/2 107/266/2 106/173/2 +f 121/176/2 122/267/2 123/268/2 +f 123/268/2 124/269/2 125/270/2 +f 125/270/2 126/271/2 127/272/2 +f 127/272/2 128/273/2 129/274/2 +f 129/274/2 130/275/2 131/174/2 +f 131/174/2 132/276/2 133/175/2 +f 133/175/2 134/277/2 121/176/2 +f 134/277/2 135/278/2 121/176/2 +f 135/278/2 136/279/2 121/176/2 +f 121/176/2 123/268/2 125/270/2 +f 125/270/2 127/272/2 121/176/2 +f 127/272/2 129/274/2 121/176/2 +f 129/274/2 131/174/2 121/176/2 +f 156/177/2 157/280/2 173/178/2 +f 158/180/2 174/184/2 173/181/2 +f 159/183/2 175/186/2 174/184/2 +f 160/185/2 176/188/2 175/186/2 +f 161/187/2 177/190/2 176/188/2 +f 162/189/2 178/192/2 177/190/2 +f 163/191/2 179/194/2 178/192/2 +f 164/193/2 180/196/2 179/194/2 +f 165/195/2 181/198/2 180/196/2 +f 165/195/2 166/199/2 182/197/2 +f 166/199/2 167/201/2 183/200/2 +f 167/201/2 168/203/2 184/202/2 +f 168/203/2 153/205/2 169/204/2 +f 153/205/2 154/207/2 170/206/2 +f 154/207/2 155/209/2 171/208/2 +f 155/209/2 156/177/2 172/179/2 +f 220/210/2 221/281/2 237/211/2 +f 222/213/2 238/217/2 237/214/2 +f 223/216/2 239/219/2 238/217/2 +f 224/218/2 240/221/2 239/219/2 +f 225/220/2 241/223/2 240/221/2 +f 226/222/2 242/225/2 241/223/2 +f 227/224/2 243/227/2 242/225/2 +f 228/226/2 244/229/2 243/227/2 +f 229/228/2 245/231/2 244/229/2 +f 229/228/2 230/232/2 246/230/2 +f 230/232/2 231/234/2 247/233/2 +f 231/234/2 232/236/2 248/235/2 +f 232/236/2 217/238/2 233/237/2 +f 217/238/2 218/240/2 234/239/2 +f 218/240/2 219/242/2 235/241/2 +f 219/242/2 220/210/2 236/212/2 +s 1 +f 79/282/7 94/165/8 78/283/8 +f 87/284/9 102/144/10 86/285/10 +f 80/286/11 95/161/7 79/282/7 +f 88/287/12 103/140/9 87/284/9 +f 81/288/5 96/158/11 80/286/11 +f 74/289/13 89/137/4 73/290/4 +f 73/290/4 104/139/12 88/287/12 +f 82/291/14 97/155/5 81/288/5 +f 75/292/15 90/135/13 74/289/13 +f 83/293/16 98/152/14 82/291/14 +f 76/294/17 91/172/15 75/292/15 +f 84/295/18 99/149/16 83/293/16 +f 77/296/6 92/170/17 76/294/17 +f 85/297/3 100/148/18 84/295/18 +f 78/283/8 93/167/6 77/298/6 +f 86/285/10 101/146/3 85/297/3 +f 115/153/15 130/299/13 114/154/13 +f 108/265/18 123/300/16 107/171/16 +f 116/150/17 131/301/15 115/151/15 +f 109/264/3 124/302/18 108/169/18 +f 117/261/6 132/303/17 116/147/17 +f 110/263/10 125/304/3 109/166/3 +f 118/260/8 133/305/6 117/145/6 +f 111/262/9 126/306/10 110/164/10 +f 119/259/7 134/307/8 118/143/8 +f 112/162/12 127/308/9 111/163/9 +f 120/141/11 135/309/7 119/142/7 +f 113/159/4 128/310/12 112/160/12 +f 106/257/14 121/311/5 105/136/5 +f 105/258/5 136/312/11 120/138/11 +f 114/156/13 129/313/4 113/157/4 +f 107/266/16 122/314/14 106/173/14 +f 139/315/19 76/294/20 75/292/19 +f 140/316/20 77/296/21 76/294/20 +f 141/317/21 78/283/22 77/298/21 +f 142/318/22 79/282/23 78/283/22 +f 143/319/23 80/286/24 79/282/23 +f 144/320/24 81/288/25 80/286/24 +f 145/321/25 82/291/26 81/288/25 +f 82/291/26 147/322/27 83/293/27 +f 147/322/27 84/295/28 83/293/27 +f 148/323/28 85/297/29 84/295/28 +f 85/297/29 150/324/30 86/285/30 +f 150/324/30 87/284/31 86/285/30 +f 87/284/31 152/325/32 88/287/32 +f 152/325/32 73/290/33 88/287/32 +f 137/326/33 74/289/34 73/290/33 +f 74/289/34 139/315/19 75/292/19 +f 210/327/14 163/191/16 162/189/14 +f 203/328/15 156/177/17 155/209/15 +f 211/329/16 164/193/18 163/191/16 +f 204/330/17 157/280/6 156/177/17 +f 212/331/18 165/195/3 164/193/18 +f 205/332/6 158/180/8 157/182/6 +f 213/333/3 166/199/10 165/195/3 +f 206/334/8 159/183/7 158/180/8 +f 214/335/10 167/201/9 166/199/10 +f 207/336/7 160/185/11 159/183/7 +f 215/337/9 168/203/12 167/201/9 +f 208/338/11 161/187/5 160/185/11 +f 201/339/4 154/207/13 153/205/4 +f 216/340/12 153/205/4 168/203/12 +f 209/341/5 162/189/14 161/187/5 +f 202/342/13 155/209/15 154/207/13 +f 189/343/35 204/330/36 188/344/36 +f 190/345/37 205/332/35 189/346/35 +f 191/347/38 206/334/37 190/345/37 +f 191/347/38 208/338/39 207/336/38 +f 192/348/39 209/341/40 208/338/39 +f 193/349/40 210/327/41 209/341/40 +f 194/350/41 211/329/42 210/327/41 +f 195/351/42 212/331/43 211/329/42 +f 197/352/44 212/331/43 196/353/43 +f 198/354/45 213/333/44 197/352/44 +f 199/355/46 214/335/45 198/354/45 +f 200/356/47 215/337/46 199/355/46 +f 185/357/48 216/340/47 200/356/47 +f 186/358/49 201/339/48 185/357/48 +f 187/359/50 202/342/49 186/358/49 +f 188/344/36 203/328/50 187/359/50 +f 274/360/14 227/224/16 226/222/14 +f 267/361/15 220/210/17 219/242/15 +f 275/362/16 228/226/18 227/224/16 +f 268/363/17 221/281/6 220/210/17 +f 276/364/18 229/228/3 228/226/18 +f 269/365/6 222/213/8 221/215/6 +f 277/366/3 230/232/10 229/228/3 +f 270/367/8 223/216/7 222/213/8 +f 278/368/10 231/234/9 230/232/10 +f 271/369/7 224/218/11 223/216/7 +f 279/370/9 232/236/12 231/234/9 +f 272/371/11 225/220/5 224/218/11 +f 265/372/4 218/240/13 217/238/4 +f 280/373/12 217/238/4 232/236/12 +f 273/374/5 226/222/14 225/220/5 +f 266/375/13 219/242/15 218/240/13 +f 253/376/35 268/363/36 252/377/36 +f 254/378/37 269/365/35 253/379/35 +f 254/378/37 271/369/38 270/367/37 +f 255/380/38 272/371/39 271/369/38 +f 256/381/39 273/374/40 272/371/39 +f 257/382/40 274/360/41 273/374/40 +f 258/383/41 275/362/42 274/360/41 +f 259/384/42 276/364/43 275/362/42 +f 261/385/44 276/364/43 260/386/43 +f 262/387/45 277/366/44 261/385/44 +f 263/388/46 278/368/45 262/387/45 +f 264/389/47 279/370/46 263/388/46 +f 249/390/48 280/373/47 264/389/47 +f 250/391/49 265/372/48 249/390/48 +f 251/392/50 266/375/49 250/391/49 +f 252/377/36 267/361/50 251/392/50 +f 79/282/7 95/161/7 94/165/8 +f 87/284/9 103/140/9 102/144/10 +f 80/286/11 96/158/11 95/161/7 +f 88/287/12 104/139/12 103/140/9 +f 81/288/5 97/155/5 96/158/11 +f 74/289/13 90/135/13 89/137/4 +f 73/290/4 89/137/4 104/139/12 +f 82/291/14 98/152/14 97/155/5 +f 75/292/15 91/172/15 90/135/13 +f 83/293/16 99/149/16 98/152/14 +f 76/294/17 92/170/17 91/172/15 +f 84/295/18 100/148/18 99/149/16 +f 77/296/6 93/168/6 92/170/17 +f 85/297/3 101/146/3 100/148/18 +f 78/283/8 94/165/8 93/167/6 +f 86/285/10 102/144/10 101/146/3 +f 115/153/15 131/393/15 130/299/13 +f 108/265/18 124/394/18 123/300/16 +f 116/150/17 132/395/17 131/301/15 +f 109/264/3 125/396/3 124/302/18 +f 117/261/6 133/397/6 132/303/17 +f 110/263/10 126/398/10 125/304/3 +f 118/260/8 134/399/8 133/305/6 +f 111/262/9 127/400/9 126/306/10 +f 119/259/7 135/401/7 134/307/8 +f 112/162/12 128/402/12 127/308/9 +f 120/141/11 136/403/11 135/309/7 +f 113/159/4 129/404/4 128/310/12 +f 106/257/14 122/405/14 121/311/5 +f 105/258/5 121/406/5 136/312/11 +f 114/156/13 130/407/13 129/313/4 +f 107/266/16 123/408/16 122/314/14 +f 139/315/19 140/316/20 76/294/20 +f 140/316/20 141/409/21 77/296/21 +f 141/317/21 142/318/22 78/283/22 +f 142/318/22 143/319/23 79/282/23 +f 143/319/23 144/320/24 80/286/24 +f 144/320/24 145/321/25 81/288/25 +f 145/321/25 146/410/26 82/291/26 +f 82/291/26 146/410/26 147/322/27 +f 147/322/27 148/323/28 84/295/28 +f 148/323/28 149/411/29 85/297/29 +f 85/297/29 149/411/29 150/324/30 +f 150/324/30 151/412/31 87/284/31 +f 87/284/31 151/412/31 152/325/32 +f 152/325/32 137/326/33 73/290/33 +f 137/326/33 138/413/34 74/289/34 +f 74/289/34 138/413/34 139/315/19 +f 210/327/14 211/329/16 163/191/16 +f 203/328/15 204/330/17 156/177/17 +f 211/329/16 212/331/18 164/193/18 +f 204/330/17 205/414/6 157/280/6 +f 212/331/18 213/333/3 165/195/3 +f 205/332/6 206/334/8 158/180/8 +f 213/333/3 214/335/10 166/199/10 +f 206/334/8 207/336/7 159/183/7 +f 214/335/10 215/337/9 167/201/9 +f 207/336/7 208/338/11 160/185/11 +f 215/337/9 216/340/12 168/203/12 +f 208/338/11 209/341/5 161/187/5 +f 201/339/4 202/342/13 154/207/13 +f 216/340/12 201/339/4 153/205/4 +f 209/341/5 210/327/14 162/189/14 +f 202/342/13 203/328/15 155/209/15 +f 189/343/35 205/414/35 204/330/36 +f 190/345/37 206/334/37 205/332/35 +f 191/347/38 207/336/38 206/334/37 +f 191/347/38 192/348/39 208/338/39 +f 192/348/39 193/349/40 209/341/40 +f 193/349/40 194/350/41 210/327/41 +f 194/350/41 195/351/42 211/329/42 +f 195/351/42 196/353/43 212/331/43 +f 197/352/44 213/333/44 212/331/43 +f 198/354/45 214/335/45 213/333/44 +f 199/355/46 215/337/46 214/335/45 +f 200/356/47 216/340/47 215/337/46 +f 185/357/48 201/339/48 216/340/47 +f 186/358/49 202/342/49 201/339/48 +f 187/359/50 203/328/50 202/342/49 +f 188/344/36 204/330/36 203/328/50 +f 274/360/14 275/362/16 227/224/16 +f 267/361/15 268/363/17 220/210/17 +f 275/362/16 276/364/18 228/226/18 +f 268/363/17 269/415/6 221/281/6 +f 276/364/18 277/366/3 229/228/3 +f 269/365/6 270/367/8 222/213/8 +f 277/366/3 278/368/10 230/232/10 +f 270/367/8 271/369/7 223/216/7 +f 278/368/10 279/370/9 231/234/9 +f 271/369/7 272/371/11 224/218/11 +f 279/370/9 280/373/12 232/236/12 +f 272/371/11 273/374/5 225/220/5 +f 265/372/4 266/375/13 218/240/13 +f 280/373/12 265/372/4 217/238/4 +f 273/374/5 274/360/14 226/222/14 +f 266/375/13 267/361/15 219/242/15 +f 253/376/35 269/415/35 268/363/36 +f 254/378/37 270/367/37 269/365/35 +f 254/378/37 255/380/38 271/369/38 +f 255/380/38 256/381/39 272/371/39 +f 256/381/39 257/382/40 273/374/40 +f 257/382/40 258/383/41 274/360/41 +f 258/383/41 259/384/42 275/362/42 +f 259/384/42 260/386/43 276/364/43 +f 261/385/44 277/366/44 276/364/43 +f 262/387/45 278/368/45 277/366/44 +f 263/388/46 279/370/46 278/368/45 +f 264/389/47 280/373/47 279/370/46 +f 249/390/48 265/372/48 280/373/47 +f 250/391/49 266/375/49 265/372/48 +f 251/392/50 267/361/50 266/375/49 +f 252/377/36 268/363/36 267/361/50 diff --git a/src/main/resources/assets/hbm/models/machines/condenser.obj b/src/main/resources/assets/hbm/models/machines/condenser.obj new file mode 100644 index 000000000..f2b846454 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/condenser.obj @@ -0,0 +1,5515 @@ +# Blender v2.79 (sub 0) OBJ File: 'condenser.blend' +# www.blender.org +o Fan1 +v -1.375000 1.500000 0.125000 +v -1.375000 1.608253 0.062500 +v -1.375000 1.608253 -0.062500 +v -1.375000 1.500000 -0.125000 +v -1.375000 1.391747 -0.062500 +v -1.375000 1.391747 0.062500 +v -1.500000 1.608253 0.062500 +v -1.500000 1.500000 0.125000 +v -1.500000 1.608253 -0.062500 +v -1.500000 1.500000 -0.125000 +v -1.500000 1.391747 -0.062500 +v -1.500000 1.391747 0.062500 +v -1.501628 1.937500 -0.176192 +v -1.458876 1.500000 -0.058731 +v -1.373371 1.937500 0.176192 +v -1.416123 1.500000 0.058731 +v -1.501628 1.128663 -0.290790 +v -1.458876 1.449138 0.029366 +v -1.373371 1.433837 -0.466982 +v -1.416123 1.550862 -0.029365 +v -1.501628 1.433837 0.466982 +v -1.458876 1.550862 0.029365 +v -1.373371 1.128663 0.290790 +v -1.416123 1.449138 -0.029365 +vt 0.908031 0.056886 +vt 0.915969 0.056886 +vt 0.919938 0.070312 +vt 0.912000 0.039062 +vt 0.904000 0.054688 +vt 0.904000 0.039062 +vt 0.944000 0.039062 +vt 0.936000 0.054688 +vt 0.936000 0.039062 +vt 0.928000 0.039062 +vt 0.920000 0.054688 +vt 0.920000 0.039062 +vt 0.912000 0.054688 +vt 0.952000 0.039062 +vt 0.944000 0.054688 +vt 0.928000 0.054688 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.920000 0.109375 +vt 0.936000 0.054688 +vt 0.944000 0.109375 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.915969 0.083739 +vt 0.908031 0.083739 +vt 0.904062 0.070313 +vt 0.952000 0.054688 +vt 0.936000 0.054688 +vt 0.928000 0.054688 +vt 0.936000 0.054688 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.0000 0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn -0.9397 0.0000 0.3420 +vn -0.9397 0.2962 -0.1710 +vn -0.9397 -0.2962 -0.1710 +s off +f 11/1/1 12/2/1 8/3/1 +f 6/4/2 11/5/2 5/6/2 +f 4/7/3 9/8/3 3/9/3 +f 2/10/4 8/11/4 1/12/4 +f 1/12/5 12/13/5 6/4/5 +f 5/14/6 10/15/6 4/7/6 +f 2/10/7 9/8/7 7/16/7 +f 14/17/8 15/18/8 13/19/8 +f 17/20/9 20/21/9 19/22/9 +f 22/23/10 23/24/10 21/25/10 +f 8/3/1 7/26/1 11/1/1 +f 7/26/1 9/27/1 11/1/1 +f 9/27/1 10/28/1 11/1/1 +f 6/4/2 12/13/2 11/5/2 +f 4/7/3 10/15/3 9/8/3 +f 2/10/4 7/16/4 8/11/4 +f 1/12/5 8/11/5 12/13/5 +f 5/14/6 11/29/6 10/15/6 +f 2/10/7 3/9/7 9/8/7 +f 14/17/8 16/30/8 15/18/8 +f 17/20/9 18/31/9 20/21/9 +f 22/23/10 24/32/10 23/24/10 +o Fan2 +v 1.375000 1.500000 -0.125000 +v 1.375000 1.608253 -0.062500 +v 1.375000 1.608253 0.062500 +v 1.375000 1.500000 0.125000 +v 1.375000 1.391747 0.062500 +v 1.375000 1.391747 -0.062500 +v 1.500000 1.608253 -0.062500 +v 1.500000 1.500000 -0.125000 +v 1.500000 1.608253 0.062500 +v 1.500000 1.500000 0.125000 +v 1.500000 1.391747 0.062500 +v 1.500000 1.391747 -0.062500 +v 1.501628 1.937500 0.176192 +v 1.458876 1.500000 0.058731 +v 1.373371 1.937500 -0.176192 +v 1.416123 1.500000 -0.058731 +v 1.501628 1.128663 0.290790 +v 1.458876 1.449138 -0.029366 +v 1.373371 1.433837 0.466982 +v 1.416123 1.550862 0.029365 +v 1.501628 1.433837 -0.466982 +v 1.458876 1.550862 -0.029365 +v 1.373371 1.128663 -0.290790 +v 1.416123 1.449138 0.029366 +vt 0.915969 0.056886 +vt 0.919938 0.070312 +vt 0.908031 0.083739 +vt 0.912000 0.039063 +vt 0.904000 0.054688 +vt 0.904000 0.039063 +vt 0.944000 0.039062 +vt 0.936000 0.054688 +vt 0.936000 0.039062 +vt 0.928000 0.039062 +vt 0.920000 0.054688 +vt 0.920000 0.039062 +vt 0.912000 0.054688 +vt 0.952000 0.039062 +vt 0.944000 0.054687 +vt 0.928000 0.054688 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.920000 0.109375 +vt 0.936000 0.054688 +vt 0.944000 0.109375 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.915969 0.083739 +vt 0.904062 0.070312 +vt 0.908031 0.056886 +vt 0.952000 0.054687 +vt 0.936000 0.054688 +vt 0.928000 0.054688 +vt 0.936000 0.054688 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 1.0000 0.0000 +vn 0.9397 0.0000 -0.3420 +vn 0.9397 0.2962 0.1710 +vn 0.9397 -0.2962 0.1710 +s off +f 36/33/11 32/34/11 33/35/11 +f 30/36/12 35/37/12 29/38/12 +f 28/39/13 33/40/13 27/41/13 +f 26/42/14 32/43/14 25/44/14 +f 25/44/15 36/45/15 30/36/15 +f 29/46/16 34/47/16 28/39/16 +f 27/41/17 31/48/17 26/42/17 +f 38/49/18 39/50/18 37/51/18 +f 41/52/19 44/53/19 43/54/19 +f 46/55/20 47/56/20 45/57/20 +f 32/34/11 31/58/11 33/35/11 +f 33/35/11 34/59/11 35/60/11 +f 35/60/11 36/33/11 33/35/11 +f 30/36/12 36/45/12 35/37/12 +f 28/39/13 34/47/13 33/40/13 +f 26/42/14 31/48/14 32/43/14 +f 25/44/15 32/43/15 36/45/15 +f 29/46/16 35/61/16 34/47/16 +f 27/41/17 33/40/17 31/48/17 +f 38/49/18 40/62/18 39/50/18 +f 41/52/19 42/63/19 44/53/19 +f 46/55/20 48/64/20 47/56/20 +o Condenser +v 1.500000 0.250000 -3.125000 +v 1.500000 0.250000 3.125000 +v 1.250000 0.250000 3.125000 +v 1.250000 0.250000 -3.125000 +v 1.250000 0.000000 -3.125000 +v 1.250000 0.000000 3.125000 +v 1.500000 0.000000 3.125000 +v 1.500000 0.000000 -3.125000 +v 1.500000 0.000000 -3.500000 +v 1.500000 0.000000 -3.125000 +v 1.125000 0.000000 -3.500000 +v 1.125000 0.000000 -3.125000 +v 1.500000 0.375000 -3.500000 +v 1.500000 0.375000 -3.125000 +v 1.125000 0.375000 -3.500000 +v 1.125000 0.375000 -3.125000 +v -1.125000 0.000000 -3.500000 +v -1.125000 0.000000 -3.125000 +v -1.500000 0.000000 -3.500000 +v -1.500000 0.000000 -3.125000 +v -1.125000 0.375000 -3.500000 +v -1.125000 0.375000 -3.125000 +v -1.500000 0.375000 -3.500000 +v -1.500000 0.375000 -3.125000 +v 1.500000 0.000000 3.125000 +v 1.500000 0.000000 3.500000 +v 1.125000 0.000000 3.125000 +v 1.125000 0.000000 3.500000 +v 1.500000 0.375000 3.125000 +v 1.500000 0.375000 3.500000 +v 1.125000 0.375000 3.125000 +v 1.125000 0.375000 3.500000 +v -1.125000 0.000000 3.125000 +v -1.125000 0.000000 3.500000 +v -1.500000 0.000000 3.125000 +v -1.500000 0.000000 3.500000 +v -1.125000 0.375000 3.125000 +v -1.125000 0.375000 3.500000 +v -1.500000 0.375000 3.125000 +v -1.500000 0.375000 3.500000 +v 1.500000 2.625000 -3.500000 +v 1.500000 2.625000 -3.125000 +v 1.125000 2.625000 -3.500000 +v 1.125000 2.625000 -3.125000 +v 1.500000 3.000000 -3.500000 +v 1.500000 3.000000 -3.125000 +v 1.125000 3.000000 -3.500000 +v 1.125000 3.000000 -3.125000 +v -1.125000 2.625000 -3.500000 +v -1.125000 2.625000 -3.125000 +v -1.500000 2.625000 -3.500000 +v -1.500000 2.625000 -3.125000 +v -1.125000 3.000000 -3.500000 +v -1.125000 3.000000 -3.125000 +v -1.500000 3.000000 -3.500000 +v -1.500000 3.000000 -3.125000 +v 1.500000 2.625000 3.125000 +v 1.500000 2.625000 3.500000 +v 1.125000 2.625000 3.125000 +v 1.125000 2.625000 3.500000 +v 1.500000 3.000000 3.125000 +v 1.500000 3.000000 3.500000 +v 1.125000 3.000000 3.125000 +v 1.125000 3.000000 3.500000 +v -1.125000 2.625000 3.125000 +v -1.125000 2.625000 3.500000 +v -1.500000 2.625000 3.125000 +v -1.500000 2.625000 3.500000 +v -1.125000 3.000000 3.125000 +v -1.125000 3.000000 3.500000 +v -1.500000 3.000000 3.125000 +v -1.500000 3.000000 3.500000 +v 1.500000 3.000000 -3.125000 +v 1.500000 3.000000 3.125000 +v 1.250000 3.000000 3.125000 +v 1.250000 3.000000 -3.125000 +v 1.250000 2.750000 -3.125000 +v 1.250000 2.750000 3.125000 +v 1.500000 2.750000 3.125000 +v 1.500000 2.750000 -3.125000 +v -1.250000 0.250000 -3.125000 +v -1.250000 0.250000 3.125000 +v -1.500000 0.250000 3.125000 +v -1.500000 0.250000 -3.125000 +v -1.500000 0.000000 -3.125000 +v -1.500000 0.000000 3.125000 +v -1.250000 0.000000 3.125000 +v -1.250000 0.000000 -3.125000 +v -1.250000 3.000000 -3.125000 +v -1.250000 3.000000 3.125000 +v -1.500000 3.000000 3.125000 +v -1.500000 3.000000 -3.125000 +v -1.500000 2.750000 -3.125000 +v -1.500000 2.750000 3.125000 +v -1.250000 2.750000 3.125000 +v -1.250000 2.750000 -3.125000 +v 1.125000 0.000000 3.500000 +v -1.125000 0.000000 3.500000 +v 1.125000 0.000000 3.250000 +v -1.125000 0.000000 3.250000 +v 1.125000 0.250000 3.500000 +v -1.125000 0.250000 3.500000 +v 1.125000 0.250000 3.250000 +v -1.125000 0.250000 3.250000 +v 1.125000 0.000000 -3.250000 +v -1.125000 0.000000 -3.250000 +v 1.125000 0.000000 -3.500000 +v -1.125000 0.000000 -3.500000 +v 1.125000 0.250000 -3.250000 +v -1.125000 0.250000 -3.250000 +v 1.125000 0.250000 -3.500000 +v -1.125000 0.250000 -3.500000 +v 1.125000 2.750000 3.500000 +v -1.125000 2.750000 3.500000 +v 1.125000 2.750000 3.250000 +v -1.125000 2.750000 3.250000 +v 1.125000 3.000000 3.500000 +v -1.125000 3.000000 3.500000 +v 1.125000 3.000000 3.250000 +v -1.125000 3.000000 3.250000 +v 1.125000 2.750000 -3.250000 +v -1.125000 2.750000 -3.250000 +v 1.125000 2.750000 -3.500000 +v -1.125000 2.750000 -3.500000 +v 1.125000 3.000000 -3.250000 +v -1.125000 3.000000 -3.250000 +v 1.125000 3.000000 -3.500000 +v -1.125000 3.000000 -3.500000 +v -1.500000 0.375000 3.500000 +v -1.500000 2.625000 3.500000 +v -1.500000 0.375000 3.250000 +v -1.500000 2.625000 3.250000 +v -1.250000 0.375000 3.500000 +v -1.250000 2.625000 3.500000 +v -1.250000 0.375000 3.250000 +v -1.250000 2.625000 3.250000 +v 1.250000 0.375000 3.500000 +v 1.250000 2.625000 3.500000 +v 1.250000 0.375000 3.250000 +v 1.250000 2.625000 3.250000 +v 1.500000 0.375000 3.500000 +v 1.500000 2.625000 3.500000 +v 1.500000 0.375000 3.250000 +v 1.500000 2.625000 3.250000 +v -1.500000 0.375000 -3.250000 +v -1.500000 2.625000 -3.250000 +v -1.500000 0.375000 -3.500000 +v -1.500000 2.625000 -3.500000 +v -1.250000 0.375000 -3.250000 +v -1.250000 2.625000 -3.250000 +v -1.250000 0.375000 -3.500000 +v -1.250000 2.625000 -3.500000 +v 1.250000 0.375000 -3.250000 +v 1.250000 2.625000 -3.250000 +v 1.250000 0.375000 -3.500000 +v 1.250000 2.625000 -3.500000 +v 1.500000 0.375000 -3.250000 +v 1.500000 2.625000 -3.250000 +v 1.500000 0.375000 -3.500000 +v 1.500000 2.625000 -3.500000 +v 0.000000 3.000000 2.500000 +v 0.000000 3.000000 2.750000 +v 0.574025 2.885819 2.500000 +v 0.574025 2.885819 2.750000 +v 1.060660 2.560660 2.500000 +v 1.060660 2.560660 2.750000 +v 1.385819 2.074025 2.500000 +v 1.385819 2.074025 2.750000 +v 1.500000 1.500000 2.500000 +v 1.500000 1.500000 2.750000 +v 1.385819 0.925975 2.500000 +v 1.385819 0.925975 2.750000 +v 1.060660 0.439340 2.500000 +v 1.060660 0.439340 2.750000 +v 0.574025 0.114181 2.500000 +v 0.574025 0.114181 2.750000 +v 0.000000 0.000000 2.500000 +v 0.000000 0.000000 2.750000 +v -0.574025 0.114181 2.500000 +v -0.574025 0.114181 2.750000 +v -1.060660 0.439340 2.500000 +v -1.060660 0.439340 2.750000 +v -1.385819 0.925975 2.500000 +v -1.385819 0.925975 2.750000 +v -1.500000 1.500000 2.500000 +v -1.500000 1.500000 2.750000 +v -1.385819 2.074025 2.500000 +v -1.385819 2.074025 2.750000 +v -1.060660 2.560660 2.500000 +v -1.060660 2.560660 2.750000 +v -0.574024 2.885820 2.500000 +v -0.574024 2.885820 2.750000 +v 1.374999 1.500001 -2.750000 +v 1.190784 1.500001 -3.093750 +v 0.000000 2.690785 3.093750 +v 0.000000 2.875000 2.750000 +v 0.687499 1.500000 -3.345392 +v -0.000000 2.690785 -3.093750 +v 1.270334 0.973811 -2.750000 +v 1.100142 1.044307 -3.093750 +v 0.263095 2.135167 3.345392 +v 0.455694 2.600142 3.093750 +v 0.526190 2.770334 2.750000 +v 0.574024 2.885820 -2.750000 +v 0.574024 2.885820 -2.500000 +v 0.635167 1.236906 -3.345392 +v 0.972271 0.527729 -2.750000 +v 0.486136 1.986136 3.345392 +v 0.842012 2.342012 3.093750 +v 0.972272 2.472272 2.750000 +v 1.060659 2.560660 -2.750000 +v 1.060659 2.560660 -2.500000 +v 0.842011 0.657989 -3.093750 +v 0.486135 1.013865 -3.345392 +v 0.635167 1.763095 3.345392 +v 1.100142 1.955694 3.093750 +v 1.270334 2.026190 2.750000 +v 1.385819 2.074025 -2.750000 +v 1.385819 2.074025 -2.500000 +v 0.526190 0.229666 -2.750000 +v 0.455694 0.399859 -3.093750 +v 0.687500 1.500000 3.345392 +v 1.190784 1.500000 3.093750 +v 1.375000 1.500000 2.750000 +v 1.500000 1.500000 -2.750000 +v 1.500000 1.500000 -2.500000 +v 0.263094 0.864833 -3.345392 +v 0.000000 0.125001 -2.750000 +v 0.635167 1.236905 3.345392 +v 1.100142 1.044307 3.093750 +v 1.270334 0.973810 2.750000 +v 1.385819 0.925975 -2.750000 +v 1.385819 0.925975 -2.500000 +v 0.000000 0.309216 -3.093750 +v -0.000000 0.812500 -3.345392 +v 0.486136 1.013864 3.345392 +v 0.842011 0.657988 3.093750 +v 0.972271 0.527729 2.750000 +v 1.060659 0.439340 -2.750000 +v 1.060659 0.439340 -2.500000 +v -0.526189 0.229666 -2.750000 +v -0.455693 0.399859 -3.093750 +v 0.263095 0.864833 3.345392 +v 0.455693 0.399859 3.093750 +v 0.526189 0.229666 2.750000 +v 0.574025 0.114181 -2.750000 +v 0.574025 0.114181 -2.500000 +v -0.263095 0.864833 -3.345392 +v -0.972271 0.527729 -2.750000 +v 0.000000 0.812500 3.345392 +v -0.000000 0.309216 3.093750 +v -0.000000 0.125001 2.750000 +v -0.000000 0.000000 -2.750000 +v -0.000000 0.000000 -2.500000 +v -0.842012 0.657988 -3.093750 +v -0.486136 1.013864 -3.345392 +v -0.263095 0.864833 3.345392 +v -0.455694 0.399859 3.093750 +v -0.526190 0.229666 2.750000 +v -0.574026 0.114181 -2.750000 +v -0.574026 0.114181 -2.500000 +v -1.270334 0.973810 -2.750000 +v -1.100142 1.044307 -3.093750 +v -0.486136 1.013865 3.345392 +v -0.842012 0.657989 3.093750 +v -0.972272 0.527729 2.750000 +v -1.060660 0.439340 -2.750000 +v -1.060660 0.439340 -2.500000 +v -0.635167 1.236905 -3.345392 +v -1.375000 1.500000 -2.750000 +v -0.635167 1.236906 3.345392 +v -1.100142 1.044307 3.093750 +v -1.270334 0.973811 2.750000 +v -1.385819 0.925975 -2.750000 +v -1.385819 0.925975 -2.500000 +v -1.190785 1.500000 -3.093750 +v -0.687500 1.500000 -3.345392 +v -0.687500 1.500000 3.345392 +v -1.190784 1.500001 3.093750 +v -1.375000 1.500001 2.750000 +v -1.500000 1.500000 -2.750000 +v -1.500000 1.500000 -2.500000 +v -1.270334 2.026190 -2.750000 +v -1.100142 1.955694 -3.093750 +v -0.635167 1.763095 3.345392 +v -1.100141 1.955694 3.093750 +v -1.270334 2.026190 2.750000 +v -1.385819 2.074025 -2.750000 +v -1.385819 2.074025 -2.500000 +v -0.635167 1.763095 -3.345392 +v -0.972272 2.472272 -2.750000 +v -0.486135 1.986136 3.345392 +v -0.842011 2.342012 3.093750 +v -0.972271 2.472272 2.750000 +v -1.060660 2.560660 -2.750000 +v -1.060660 2.560660 -2.500000 +v -0.842012 2.342012 -3.093750 +v -0.486136 1.986136 -3.345392 +v -0.263094 2.135167 3.345392 +v -0.455693 2.600142 3.093750 +v -0.526189 2.770334 2.750000 +v -0.574025 2.885819 -2.750000 +v -0.574025 2.885819 -2.500000 +v -0.526190 2.770334 -2.750000 +v 0.000000 1.500000 3.437500 +v 0.000000 2.187500 3.345392 +v -0.455694 2.600142 -3.093750 +v -0.263095 2.135167 -3.345392 +v -0.000000 3.000000 -2.750000 +v -0.000000 2.875000 -2.750000 +v 0.000000 3.000000 -2.500000 +v 0.635166 1.763095 -3.345392 +v 1.100141 1.955694 -3.093750 +v 1.270333 2.026190 -2.750000 +v 0.486135 1.986136 -3.345392 +v 0.842011 2.342012 -3.093750 +v 0.972271 2.472272 -2.750000 +v 0.263094 2.135167 -3.345392 +v 0.455692 2.600142 -3.093750 +v 0.526189 2.770334 -2.750000 +v -0.000000 1.500000 -3.437500 +v -0.000000 2.187500 -3.345392 +v 0.000000 2.875000 2.500000 +v 0.526190 2.770334 2.500000 +v 0.972272 2.472272 2.500000 +v 1.270334 2.026190 2.500000 +v 1.375000 1.500000 2.500000 +v 1.270334 0.973810 2.500000 +v 0.972271 0.527729 2.500000 +v 0.526189 0.229666 2.500000 +v -0.000000 0.125001 2.500000 +v -0.526190 0.229666 2.500000 +v -0.972272 0.527729 2.500000 +v -1.270334 0.973811 2.500000 +v -1.375000 1.500001 2.500000 +v -1.270334 2.026190 2.500000 +v -0.972271 2.472272 2.500000 +v -0.526189 2.770334 2.500000 +v 0.000000 2.875000 -2.500000 +v 0.526190 2.770334 -2.500000 +v 0.972272 2.472272 -2.500000 +v 1.270334 2.026190 -2.500000 +v 1.375000 1.500000 -2.500000 +v 1.270334 0.973810 -2.500000 +v 0.972271 0.527729 -2.500000 +v 0.526189 0.229666 -2.500000 +v -0.000000 0.125001 -2.500000 +v -0.526190 0.229666 -2.500000 +v -0.972272 0.527729 -2.500000 +v -1.270334 0.973811 -2.500000 +v -1.375000 1.500001 -2.500000 +v -1.270334 2.026190 -2.500000 +v -0.972271 2.472272 -2.500000 +v -0.526189 2.770334 -2.500000 +v 1.375000 2.250000 1.500000 +v 1.375000 0.750000 1.500000 +v 1.375000 2.250000 -1.500000 +v 1.375000 0.750000 -1.500000 +v 1.000000 2.250000 -1.500000 +v 1.000000 2.250000 1.500000 +v 1.000000 0.750000 1.500000 +v 1.000000 0.750000 -1.500000 +v 1.375000 1.500000 -0.625000 +v 1.375000 1.812500 -0.541266 +v 1.375000 2.041266 -0.312500 +v 1.375000 2.125000 0.000000 +v 1.375000 2.041266 0.312500 +v 1.375000 1.812500 0.541266 +v 1.375000 1.500000 0.625000 +v 1.375000 1.187500 0.541266 +v 1.375000 0.958734 0.312500 +v 1.375000 0.875000 0.000000 +v 1.375000 0.958734 -0.312500 +v 1.375000 1.187500 -0.541266 +v 1.375000 1.500000 -0.500000 +v 1.375000 1.750000 -0.433013 +v 1.375000 1.933013 -0.250000 +v 1.375000 2.000000 0.000000 +v 1.375000 1.933013 0.250000 +v 1.375000 1.750000 0.433013 +v 1.375000 1.500000 0.500000 +v 1.375000 1.250000 0.433013 +v 1.375000 1.066987 0.250000 +v 1.375000 1.000000 0.000000 +v 1.375000 1.066987 -0.250000 +v 1.375000 1.250000 -0.433013 +v 1.625000 1.812500 -0.541266 +v 1.625000 1.500000 -0.625000 +v 1.625000 2.041266 -0.312500 +v 1.625000 2.125000 0.000000 +v 1.625000 2.041266 0.312500 +v 1.625000 1.812500 0.541266 +v 1.625000 1.500000 0.625000 +v 1.625000 1.187500 0.541266 +v 1.625000 0.958734 0.312500 +v 1.625000 0.875000 0.000000 +v 1.625000 0.958734 -0.312500 +v 1.625000 1.187500 -0.541266 +v 1.625000 1.750000 -0.433013 +v 1.625000 1.500000 -0.500000 +v 1.625000 1.933013 -0.250000 +v 1.625000 2.000000 0.000000 +v 1.625000 1.933013 0.250000 +v 1.625000 1.750000 0.433013 +v 1.625000 1.500000 0.500000 +v 1.625000 1.250000 0.433013 +v 1.625000 1.066987 0.250000 +v 1.625000 1.000000 0.000000 +v 1.625000 1.066987 -0.250000 +v 1.625000 1.250000 -0.433013 +v 1.562500 1.406250 0.500000 +v 1.562500 1.343750 0.500000 +v 1.562500 1.406250 -0.500000 +v 1.562500 1.343750 -0.500000 +v 1.562500 1.656250 0.500000 +v 1.562500 1.593750 0.500000 +v 1.562500 1.656250 -0.500000 +v 1.562500 1.593750 -0.500000 +v 1.562500 1.906250 0.375000 +v 1.562500 1.843750 0.375000 +v 1.562500 1.906250 -0.375000 +v 1.562500 1.843750 -0.375000 +v 1.562500 1.166250 0.375000 +v 1.562500 1.103750 0.375000 +v 1.562500 1.166250 -0.375000 +v 1.562500 1.103750 -0.375000 +v 1.375000 2.000000 -0.750000 +v 1.375000 1.000000 -0.750000 +v 1.375000 2.000000 -1.250000 +v 1.375000 1.000000 -1.250000 +v 1.500000 2.000000 -1.250000 +v 1.500000 2.000000 -0.750000 +v 1.500000 1.000000 -0.750000 +v 1.500000 1.000000 -1.250000 +v 1.375000 2.000000 1.250000 +v 1.375000 1.000000 1.250000 +v 1.375000 2.000000 0.750000 +v 1.375000 1.000000 0.750000 +v 1.500000 2.000000 0.750000 +v 1.500000 2.000000 1.250000 +v 1.500000 1.000000 1.250000 +v 1.500000 1.000000 0.750000 +v 1.250000 0.000000 -2.375000 +v -1.250000 0.000000 -2.375000 +v 1.250000 0.125000 -2.375000 +v -1.250000 0.125000 -2.375000 +v 1.250000 0.000000 -2.125000 +v -1.250000 0.000000 -2.125000 +v 1.250000 0.125000 -2.125000 +v -1.250000 0.125000 -2.125000 +v 1.250000 0.000000 2.125000 +v -1.250000 0.000000 2.125000 +v 1.250000 0.125000 2.125000 +v -1.250000 0.125000 2.125000 +v 1.250000 0.000000 2.375000 +v -1.250000 0.000000 2.375000 +v 1.250000 0.125000 2.375000 +v -1.250000 0.125000 2.375000 +v 1.250000 2.875000 -2.375000 +v -1.250000 2.875000 -2.375000 +v 1.250000 3.000000 -2.375000 +v -1.250000 3.000000 -2.375000 +v 1.250000 2.875000 -2.125000 +v -1.250000 2.875000 -2.125000 +v 1.250000 3.000000 -2.125000 +v -1.250000 3.000000 -2.125000 +v 1.250000 2.875000 2.125000 +v -1.250000 2.875000 2.125000 +v 1.250000 3.000000 2.125000 +v -1.250000 3.000000 2.125000 +v 1.250000 2.875000 2.375000 +v -1.250000 2.875000 2.375000 +v 1.250000 3.000000 2.375000 +v -1.250000 3.000000 2.375000 +v -1.500000 0.250000 -2.375000 +v -1.500000 2.750000 -2.375000 +v -1.375000 0.250000 -2.375000 +v -1.375000 2.750000 -2.375000 +v -1.500000 0.250000 -2.125000 +v -1.500000 2.750000 -2.125000 +v -1.375000 0.250000 -2.125000 +v -1.375000 2.750000 -2.125000 +v -1.500000 0.250000 2.125000 +v -1.500000 2.750000 2.125000 +v -1.375000 0.250000 2.125000 +v -1.375000 2.750000 2.125000 +v -1.500000 0.250000 2.375000 +v -1.500000 2.750000 2.375000 +v -1.375000 0.250000 2.375000 +v -1.375000 2.750000 2.375000 +v 1.375000 0.250000 -2.375000 +v 1.375000 2.750000 -2.375000 +v 1.500000 0.250000 -2.375000 +v 1.500000 2.750000 -2.375000 +v 1.375000 0.250000 -2.125000 +v 1.375000 2.750000 -2.125000 +v 1.500000 0.250000 -2.125000 +v 1.500000 2.750000 -2.125000 +v 1.375000 0.250000 2.125000 +v 1.375000 2.750000 2.125000 +v 1.500000 0.250000 2.125000 +v 1.500000 2.750000 2.125000 +v 1.375000 0.250000 2.375000 +v 1.375000 2.750000 2.375000 +v 1.500000 0.250000 2.375000 +v 1.500000 2.750000 2.375000 +v -1.375000 2.250000 -1.500000 +v -1.375000 0.750000 -1.500000 +v -1.375000 2.250000 1.500000 +v -1.375000 0.750000 1.500000 +v -1.000000 2.250000 1.500000 +v -1.000000 2.250000 -1.500000 +v -1.000000 0.750000 -1.500000 +v -1.000000 0.750000 1.500000 +v -1.375000 1.500000 0.625000 +v -1.375000 1.812500 0.541266 +v -1.375000 2.041266 0.312500 +v -1.375000 2.125000 0.000000 +v -1.375000 2.041266 -0.312500 +v -1.375000 1.812500 -0.541266 +v -1.375000 1.500000 -0.625000 +v -1.375000 1.187500 -0.541266 +v -1.375000 0.958734 -0.312500 +v -1.375000 0.875000 -0.000000 +v -1.375000 0.958734 0.312500 +v -1.375000 1.187500 0.541266 +v -1.375000 1.500000 0.500000 +v -1.375000 1.750000 0.433013 +v -1.375000 1.933013 0.250000 +v -1.375000 2.000000 0.000000 +v -1.375000 1.933013 -0.250000 +v -1.375000 1.750000 -0.433013 +v -1.375000 1.500000 -0.500000 +v -1.375000 1.250000 -0.433013 +v -1.375000 1.066987 -0.250000 +v -1.375000 1.000000 -0.000000 +v -1.375000 1.066987 0.250000 +v -1.375000 1.250000 0.433013 +v -1.625000 1.812500 0.541266 +v -1.625000 1.500000 0.625000 +v -1.625000 2.041266 0.312500 +v -1.625000 2.125000 0.000000 +v -1.625000 2.041266 -0.312500 +v -1.625000 1.812500 -0.541266 +v -1.625000 1.500000 -0.625000 +v -1.625000 1.187500 -0.541266 +v -1.625000 0.958734 -0.312500 +v -1.625000 0.875000 -0.000000 +v -1.625000 0.958734 0.312500 +v -1.625000 1.187500 0.541266 +v -1.625000 1.750000 0.433013 +v -1.625000 1.500000 0.500000 +v -1.625000 1.933013 0.250000 +v -1.625000 2.000000 0.000000 +v -1.625000 1.933013 -0.250000 +v -1.625000 1.750000 -0.433013 +v -1.625000 1.500000 -0.500000 +v -1.625000 1.250000 -0.433013 +v -1.625000 1.066987 -0.250000 +v -1.625000 1.000000 -0.000000 +v -1.625000 1.066987 0.250000 +v -1.625000 1.250000 0.433013 +v -1.562500 1.406250 -0.500000 +v -1.562500 1.343750 -0.500000 +v -1.562500 1.406250 0.500000 +v -1.562500 1.343750 0.500000 +v -1.562500 1.656250 -0.500000 +v -1.562500 1.593750 -0.500000 +v -1.562500 1.656250 0.500000 +v -1.562500 1.593750 0.500000 +v -1.562500 1.906250 -0.375000 +v -1.562500 1.843750 -0.375000 +v -1.562500 1.906250 0.375000 +v -1.562500 1.843750 0.375000 +v -1.562500 1.166250 -0.375000 +v -1.562500 1.103750 -0.375000 +v -1.562500 1.166250 0.375000 +v -1.562500 1.103750 0.375000 +v -1.375000 2.000000 0.750000 +v -1.375000 1.000000 0.750000 +v -1.375000 2.000000 1.250000 +v -1.375000 1.000000 1.250000 +v -1.500000 2.000000 1.250000 +v -1.500000 2.000000 0.750000 +v -1.500000 1.000000 0.750000 +v -1.500000 1.000000 1.250000 +v -1.375000 2.000000 -1.250000 +v -1.375000 1.000000 -1.250000 +v -1.375000 2.000000 -0.750000 +v -1.375000 1.000000 -0.750000 +v -1.500000 2.000000 -0.750000 +v -1.500000 2.000000 -1.250000 +v -1.500000 1.000000 -1.250000 +v -1.500000 1.000000 -0.750000 +v 1.125000 2.250000 -0.125000 +v 1.036612 2.250000 -0.088388 +v 1.000000 2.250000 0.000000 +v 1.036612 2.250000 0.088388 +v 1.125000 2.250000 0.125000 +v 1.213388 2.250000 0.088388 +v 1.250000 2.250000 -0.000000 +v 1.213388 2.250000 -0.088388 +v 1.125000 2.750000 -0.125000 +v 1.036612 2.750000 -0.088388 +v 1.000000 2.750000 0.000000 +v 1.036612 2.750000 0.088388 +v 1.125000 2.750000 0.125000 +v 1.213388 2.750000 0.088388 +v 1.250000 2.750000 -0.000000 +v 1.213388 2.750000 -0.088388 +v 1.088388 2.838388 -0.125000 +v 1.025888 2.775888 -0.088388 +v 1.025888 2.775888 0.088388 +v 1.088388 2.838388 0.125000 +v 1.150888 2.900888 0.088388 +v 1.176777 2.926777 -0.000000 +v 1.150888 2.900888 -0.088388 +v 1.000000 2.875000 -0.125000 +v 1.000000 2.786612 -0.088388 +v 1.000000 2.786612 0.088388 +v 1.000000 2.875000 0.125000 +v 1.000000 2.963388 0.088388 +v 1.000000 3.000000 -0.000000 +v 1.000000 2.963388 -0.088388 +v -1.125000 2.250000 0.125000 +v -1.036612 2.250000 0.088388 +v -1.000000 2.250000 0.000000 +v -1.036612 2.250000 -0.088388 +v -1.125000 2.250000 -0.125000 +v -1.213388 2.250000 -0.088388 +v -1.250000 2.250000 0.000000 +v -1.213388 2.250000 0.088388 +v -1.125000 2.750000 0.125000 +v -1.036612 2.750000 0.088388 +v -1.000000 2.750000 0.000000 +v -1.036612 2.750000 -0.088388 +v -1.125000 2.750000 -0.125000 +v -1.213388 2.750000 -0.088388 +v -1.250000 2.750000 0.000000 +v -1.213388 2.750000 0.088388 +v -1.088388 2.838388 0.125000 +v -1.025888 2.775888 0.088388 +v -1.025888 2.775888 -0.088388 +v -1.088388 2.838388 -0.125000 +v -1.150888 2.900888 -0.088388 +v -1.176777 2.926777 0.000000 +v -1.150888 2.900888 0.088388 +v -1.000000 2.875000 0.125000 +v -1.000000 2.786612 0.088388 +v -1.000000 2.786612 -0.088388 +v -1.000000 2.875000 -0.125000 +v -1.000000 2.963388 -0.088388 +v -1.000000 3.000000 0.000000 +v -1.000000 2.963388 0.088388 +v -0.500000 3.125000 1.000000 +v 0.500000 3.125000 1.000000 +v -0.500000 3.125000 -1.000000 +v 0.500000 3.125000 -1.000000 +v -0.500000 2.750000 -1.000000 +v -0.500000 2.750000 1.000000 +v 0.500000 2.750000 1.000000 +v 0.500000 2.750000 -1.000000 +v 0.000000 1.750000 -3.500000 +v -0.176777 1.676777 -3.500000 +v -0.250000 1.500000 -3.500000 +v -0.176777 1.323223 -3.500000 +v 0.000000 1.250000 -3.500000 +v 0.176777 1.323223 -3.500000 +v 0.250000 1.500000 -3.500000 +v 0.176777 1.676777 -3.500000 +v -0.176777 1.676777 -3.375000 +v 0.000000 1.750000 -3.375000 +v -0.250000 1.500000 -3.375000 +v -0.176777 1.323223 -3.375000 +v 0.000000 1.250000 -3.375000 +v 0.176777 1.323223 -3.375000 +v 0.250000 1.500000 -3.375000 +v 0.176777 1.676777 -3.375000 +v 0.000000 1.750000 3.500000 +v 0.176777 1.676777 3.500000 +v 0.250000 1.500000 3.500000 +v 0.176777 1.323223 3.500000 +v 0.000000 1.250000 3.500000 +v -0.176776 1.323223 3.500000 +v -0.250000 1.500000 3.500000 +v -0.176776 1.676777 3.500000 +v 0.176777 1.676777 3.375000 +v 0.000000 1.750000 3.375000 +v 0.250000 1.500000 3.375000 +v 0.176777 1.323223 3.375000 +v 0.000000 1.250000 3.375000 +v -0.176776 1.323223 3.375000 +v -0.250000 1.500000 3.375000 +v -0.176776 1.676777 3.375000 +v -0.500000 -0.125000 -1.000000 +v 0.500000 -0.125000 -1.000000 +v -0.500000 -0.125000 1.000000 +v 0.500000 -0.125000 1.000000 +v -0.500000 0.250000 1.000000 +v -0.500000 0.250000 -1.000000 +v 0.500000 0.250000 -1.000000 +v 0.500000 0.250000 1.000000 +v 1.125000 2.250000 -0.375000 +v 1.036612 2.250000 -0.338388 +v 1.000000 2.250000 -0.250000 +v 1.036612 2.250000 -0.161612 +v 1.125000 2.250000 -0.125000 +v 1.213388 2.250000 -0.161612 +v 1.250000 2.250000 -0.250000 +v 1.213388 2.250000 -0.338388 +v 1.125000 2.750000 -0.375000 +v 1.036612 2.750000 -0.338388 +v 1.000000 2.750000 -0.250000 +v 1.036612 2.750000 -0.161612 +v 1.125000 2.750000 -0.125000 +v 1.213388 2.750000 -0.161612 +v 1.250000 2.750000 -0.250000 +v 1.213388 2.750000 -0.338388 +v 1.088388 2.838388 -0.375000 +v 1.025888 2.775888 -0.338388 +v 1.025888 2.775888 -0.161612 +v 1.088388 2.838388 -0.125000 +v 1.150888 2.900888 -0.161612 +v 1.176777 2.926777 -0.250000 +v 1.150888 2.900888 -0.338388 +v 1.000000 2.875000 -0.375000 +v 1.000000 2.786612 -0.338388 +v 1.000000 2.786612 -0.161612 +v 1.000000 2.875000 -0.125000 +v 1.000000 2.963388 -0.161612 +v 1.000000 3.000000 -0.250000 +v 1.000000 2.963388 -0.338388 +v -1.125000 2.250000 -0.125000 +v -1.036612 2.250000 -0.161612 +v -1.000000 2.250000 -0.250000 +v -1.036612 2.250000 -0.338388 +v -1.125000 2.250000 -0.375000 +v -1.213388 2.250000 -0.338388 +v -1.250000 2.250000 -0.250000 +v -1.213388 2.250000 -0.161612 +v -1.125000 2.750000 -0.125000 +v -1.036612 2.750000 -0.161612 +v -1.000000 2.750000 -0.250000 +v -1.036612 2.750000 -0.338388 +v -1.125000 2.750000 -0.375000 +v -1.213388 2.750000 -0.338388 +v -1.250000 2.750000 -0.250000 +v -1.213388 2.750000 -0.161612 +v -1.088388 2.838388 -0.125000 +v -1.025888 2.775888 -0.161612 +v -1.025888 2.775888 -0.338388 +v -1.088388 2.838388 -0.375000 +v -1.150888 2.900888 -0.338388 +v -1.176777 2.926777 -0.250000 +v -1.150888 2.900888 -0.161612 +v -1.000000 2.875000 -0.125000 +v -1.000000 2.786612 -0.161612 +v -1.000000 2.786612 -0.338388 +v -1.000000 2.875000 -0.375000 +v -1.000000 2.963388 -0.338388 +v -1.000000 3.000000 -0.250000 +v -1.000000 2.963388 -0.161612 +v 1.125000 2.250000 -0.625000 +v 1.036612 2.250000 -0.588388 +v 1.000000 2.250000 -0.500000 +v 1.036612 2.250000 -0.411612 +v 1.125000 2.250000 -0.375000 +v 1.213388 2.250000 -0.411612 +v 1.250000 2.250000 -0.500000 +v 1.213388 2.250000 -0.588388 +v 1.125000 2.750000 -0.625000 +v 1.036612 2.750000 -0.588388 +v 1.000000 2.750000 -0.500000 +v 1.036612 2.750000 -0.411612 +v 1.125000 2.750000 -0.375000 +v 1.213388 2.750000 -0.411612 +v 1.250000 2.750000 -0.500000 +v 1.213388 2.750000 -0.588388 +v 1.088388 2.838388 -0.625000 +v 1.025888 2.775888 -0.588388 +v 1.025888 2.775888 -0.411612 +v 1.088388 2.838388 -0.375000 +v 1.150888 2.900888 -0.411612 +v 1.176777 2.926777 -0.500000 +v 1.150888 2.900888 -0.588388 +v 1.000000 2.875000 -0.625000 +v 1.000000 2.786612 -0.588388 +v 1.000000 2.786612 -0.411612 +v 1.000000 2.875000 -0.375000 +v 1.000000 2.963388 -0.411612 +v 1.000000 3.000000 -0.500000 +v 1.000000 2.963388 -0.588388 +v -1.125000 2.250000 -0.375000 +v -1.036612 2.250000 -0.411612 +v -1.000000 2.250000 -0.500000 +v -1.036612 2.250000 -0.588388 +v -1.125000 2.250000 -0.625000 +v -1.213388 2.250000 -0.588388 +v -1.250000 2.250000 -0.500000 +v -1.213388 2.250000 -0.411612 +v -1.125000 2.750000 -0.375000 +v -1.036612 2.750000 -0.411612 +v -1.000000 2.750000 -0.500000 +v -1.036612 2.750000 -0.588388 +v -1.125000 2.750000 -0.625000 +v -1.213388 2.750000 -0.588388 +v -1.250000 2.750000 -0.500000 +v -1.213388 2.750000 -0.411612 +v -1.088388 2.838388 -0.375000 +v -1.025888 2.775888 -0.411612 +v -1.025888 2.775888 -0.588388 +v -1.088388 2.838388 -0.625000 +v -1.150888 2.900888 -0.588388 +v -1.176777 2.926777 -0.500000 +v -1.150888 2.900888 -0.411612 +v -1.000000 2.875000 -0.375000 +v -1.000000 2.786612 -0.411612 +v -1.000000 2.786612 -0.588388 +v -1.000000 2.875000 -0.625000 +v -1.000000 2.963388 -0.588388 +v -1.000000 3.000000 -0.500000 +v -1.000000 2.963388 -0.411612 +v 1.125000 2.250000 0.375000 +v 1.036612 2.250000 0.411612 +v 1.000000 2.250000 0.500000 +v 1.036612 2.250000 0.588388 +v 1.125000 2.250000 0.625000 +v 1.213388 2.250000 0.588388 +v 1.250000 2.250000 0.500000 +v 1.213388 2.250000 0.411612 +v 1.125000 2.750000 0.375000 +v 1.036612 2.750000 0.411612 +v 1.000000 2.750000 0.500000 +v 1.036612 2.750000 0.588388 +v 1.125000 2.750000 0.625000 +v 1.213388 2.750000 0.588388 +v 1.250000 2.750000 0.500000 +v 1.213388 2.750000 0.411612 +v 1.088388 2.838388 0.375000 +v 1.025888 2.775888 0.411612 +v 1.025888 2.775888 0.588388 +v 1.088388 2.838388 0.625000 +v 1.150888 2.900888 0.588388 +v 1.176777 2.926777 0.500000 +v 1.150888 2.900888 0.411612 +v 1.000000 2.875000 0.375000 +v 1.000000 2.786612 0.411612 +v 1.000000 2.786612 0.588388 +v 1.000000 2.875000 0.625000 +v 1.000000 2.963388 0.588388 +v 1.000000 3.000000 0.500000 +v 1.000000 2.963388 0.411612 +v -1.125000 2.250000 0.625000 +v -1.036612 2.250000 0.588388 +v -1.000000 2.250000 0.500000 +v -1.036612 2.250000 0.411612 +v -1.125000 2.250000 0.375000 +v -1.213388 2.250000 0.411612 +v -1.250000 2.250000 0.500000 +v -1.213388 2.250000 0.588388 +v -1.125000 2.750000 0.625000 +v -1.036612 2.750000 0.588388 +v -1.000000 2.750000 0.500000 +v -1.036612 2.750000 0.411612 +v -1.125000 2.750000 0.375000 +v -1.213388 2.750000 0.411612 +v -1.250000 2.750000 0.500000 +v -1.213388 2.750000 0.588388 +v -1.088388 2.838388 0.625000 +v -1.025888 2.775888 0.588388 +v -1.025888 2.775888 0.411612 +v -1.088388 2.838388 0.375000 +v -1.150888 2.900888 0.411612 +v -1.176777 2.926777 0.500000 +v -1.150888 2.900888 0.588388 +v -1.000000 2.875000 0.625000 +v -1.000000 2.786612 0.588388 +v -1.000000 2.786612 0.411612 +v -1.000000 2.875000 0.375000 +v -1.000000 2.963388 0.411612 +v -1.000000 3.000000 0.500000 +v -1.000000 2.963388 0.588388 +v 1.125000 2.250000 0.125000 +v 1.036612 2.250000 0.161612 +v 1.000000 2.250000 0.250000 +v 1.036612 2.250000 0.338388 +v 1.125000 2.250000 0.375000 +v 1.213388 2.250000 0.338388 +v 1.250000 2.250000 0.250000 +v 1.213388 2.250000 0.161612 +v 1.125000 2.750000 0.125000 +v 1.036612 2.750000 0.161612 +v 1.000000 2.750000 0.250000 +v 1.036612 2.750000 0.338388 +v 1.125000 2.750000 0.375000 +v 1.213388 2.750000 0.338388 +v 1.250000 2.750000 0.250000 +v 1.213388 2.750000 0.161612 +v 1.088388 2.838388 0.125000 +v 1.025888 2.775888 0.161612 +v 1.025888 2.775888 0.338388 +v 1.088388 2.838388 0.375000 +v 1.150888 2.900888 0.338388 +v 1.176777 2.926777 0.250000 +v 1.150888 2.900888 0.161612 +v 1.000000 2.875000 0.125000 +v 1.000000 2.786612 0.161612 +v 1.000000 2.786612 0.338388 +v 1.000000 2.875000 0.375000 +v 1.000000 2.963388 0.338388 +v 1.000000 3.000000 0.250000 +v 1.000000 2.963388 0.161612 +v -1.125000 2.250000 0.375000 +v -1.036612 2.250000 0.338388 +v -1.000000 2.250000 0.250000 +v -1.036612 2.250000 0.161612 +v -1.125000 2.250000 0.125000 +v -1.213388 2.250000 0.161612 +v -1.250000 2.250000 0.250000 +v -1.213388 2.250000 0.338388 +v -1.125000 2.750000 0.375000 +v -1.036612 2.750000 0.338388 +v -1.000000 2.750000 0.250000 +v -1.036612 2.750000 0.161612 +v -1.125000 2.750000 0.125000 +v -1.213388 2.750000 0.161612 +v -1.250000 2.750000 0.250000 +v -1.213388 2.750000 0.338388 +v -1.088388 2.838388 0.375000 +v -1.025888 2.775888 0.338388 +v -1.025888 2.775888 0.161612 +v -1.088388 2.838388 0.125000 +v -1.150888 2.900888 0.161612 +v -1.176777 2.926777 0.250000 +v -1.150888 2.900888 0.338388 +v -1.000000 2.875000 0.375000 +v -1.000000 2.786612 0.338388 +v -1.000000 2.786612 0.161612 +v -1.000000 2.875000 0.125000 +v -1.000000 2.963388 0.161612 +v -1.000000 3.000000 0.250000 +v -1.000000 2.963388 0.338388 +v 1.125000 0.750000 0.125000 +v 1.036612 0.750000 0.088388 +v 1.000000 0.750000 -0.000000 +v 1.036612 0.750000 -0.088388 +v 1.125000 0.750000 -0.125000 +v 1.213388 0.750000 -0.088388 +v 1.250000 0.750000 -0.000000 +v 1.213388 0.750000 0.088388 +v 1.125000 0.250000 0.125000 +v 1.036612 0.250000 0.088388 +v 1.000000 0.250000 -0.000000 +v 1.036612 0.250000 -0.088389 +v 1.125000 0.250000 -0.125000 +v 1.213388 0.250000 -0.088389 +v 1.250000 0.250000 -0.000000 +v 1.213388 0.250000 0.088388 +v 1.088388 0.161612 0.125000 +v 1.025888 0.224112 0.088388 +v 1.025888 0.224112 -0.088389 +v 1.088388 0.161612 -0.125000 +v 1.150888 0.099112 -0.088389 +v 1.176777 0.073223 -0.000000 +v 1.150888 0.099112 0.088388 +v 1.000000 0.125000 0.125000 +v 1.000000 0.213388 0.088388 +v 1.000000 0.213388 -0.088389 +v 1.000000 0.125000 -0.125000 +v 1.000000 0.036612 -0.088389 +v 1.000000 0.000000 -0.000000 +v 1.000000 0.036612 0.088388 +v -1.125000 0.750000 -0.125000 +v -1.036612 0.750000 -0.088388 +v -1.000000 0.750000 -0.000000 +v -1.036612 0.750000 0.088388 +v -1.125000 0.750000 0.125000 +v -1.213388 0.750000 0.088388 +v -1.250000 0.750000 -0.000000 +v -1.213388 0.750000 -0.088388 +v -1.125000 0.250000 -0.125000 +v -1.036612 0.250000 -0.088389 +v -1.000000 0.250000 -0.000000 +v -1.036612 0.250000 0.088388 +v -1.125000 0.250000 0.125000 +v -1.213388 0.250000 0.088388 +v -1.250000 0.250000 -0.000000 +v -1.213388 0.250000 -0.088389 +v -1.088388 0.161612 -0.125000 +v -1.025888 0.224112 -0.088389 +v -1.025888 0.224112 0.088388 +v -1.088388 0.161612 0.125000 +v -1.150888 0.099112 0.088388 +v -1.176777 0.073223 -0.000000 +v -1.150888 0.099112 -0.088389 +v -1.000000 0.125000 -0.125000 +v -1.000000 0.213388 -0.088389 +v -1.000000 0.213388 0.088388 +v -1.000000 0.125000 0.125000 +v -1.000000 0.036612 0.088388 +v -1.000000 0.000000 -0.000000 +v -1.000000 0.036612 -0.088389 +v 1.125000 0.750000 0.375000 +v 1.036612 0.750000 0.338388 +v 1.000000 0.750000 0.250000 +v 1.036612 0.750000 0.161611 +v 1.125000 0.750000 0.125000 +v 1.213388 0.750000 0.161612 +v 1.250000 0.750000 0.250000 +v 1.213388 0.750000 0.338388 +v 1.125000 0.250000 0.375000 +v 1.036612 0.250000 0.338388 +v 1.000000 0.250000 0.250000 +v 1.036612 0.250000 0.161611 +v 1.125000 0.250000 0.125000 +v 1.213388 0.250000 0.161611 +v 1.250000 0.250000 0.250000 +v 1.213388 0.250000 0.338388 +v 1.088388 0.161612 0.375000 +v 1.025888 0.224112 0.338388 +v 1.025888 0.224112 0.161611 +v 1.088388 0.161612 0.125000 +v 1.150888 0.099112 0.161611 +v 1.176777 0.073223 0.250000 +v 1.150888 0.099112 0.338388 +v 1.000000 0.125000 0.375000 +v 1.000000 0.213388 0.338388 +v 1.000000 0.213388 0.161611 +v 1.000000 0.125000 0.125000 +v 1.000000 0.036612 0.161611 +v 1.000000 0.000000 0.250000 +v 1.000000 0.036612 0.338388 +v -1.125000 0.750000 0.125000 +v -1.036612 0.750000 0.161611 +v -1.000000 0.750000 0.250000 +v -1.036612 0.750000 0.338388 +v -1.125000 0.750000 0.375000 +v -1.213388 0.750000 0.338388 +v -1.250000 0.750000 0.250000 +v -1.213388 0.750000 0.161611 +v -1.125000 0.250000 0.125000 +v -1.036612 0.250000 0.161611 +v -1.000000 0.250000 0.250000 +v -1.036612 0.250000 0.338388 +v -1.125000 0.250000 0.375000 +v -1.213388 0.250000 0.338388 +v -1.250000 0.250000 0.250000 +v -1.213388 0.250000 0.161611 +v -1.088388 0.161612 0.125000 +v -1.025888 0.224112 0.161611 +v -1.025888 0.224112 0.338388 +v -1.088388 0.161612 0.375000 +v -1.150888 0.099112 0.338388 +v -1.176777 0.073223 0.250000 +v -1.150888 0.099112 0.161611 +v -1.000000 0.125000 0.125000 +v -1.000000 0.213388 0.161611 +v -1.000000 0.213388 0.338388 +v -1.000000 0.125000 0.375000 +v -1.000000 0.036612 0.338388 +v -1.000000 0.000000 0.250000 +v -1.000000 0.036612 0.161611 +v 1.125000 0.750000 0.625000 +v 1.036612 0.750000 0.588388 +v 1.000000 0.750000 0.500000 +v 1.036612 0.750000 0.411612 +v 1.125000 0.750000 0.375000 +v 1.213388 0.750000 0.411612 +v 1.250000 0.750000 0.500000 +v 1.213388 0.750000 0.588388 +v 1.125000 0.250000 0.625000 +v 1.036612 0.250000 0.588388 +v 1.000000 0.250000 0.500000 +v 1.036612 0.250000 0.411611 +v 1.125000 0.250000 0.375000 +v 1.213388 0.250000 0.411611 +v 1.250000 0.250000 0.500000 +v 1.213388 0.250000 0.588388 +v 1.088388 0.161612 0.625000 +v 1.025888 0.224112 0.588388 +v 1.025888 0.224112 0.411611 +v 1.088388 0.161612 0.375000 +v 1.150888 0.099112 0.411611 +v 1.176777 0.073223 0.500000 +v 1.150888 0.099112 0.588388 +v 1.000000 0.125000 0.625000 +v 1.000000 0.213388 0.588388 +v 1.000000 0.213388 0.411611 +v 1.000000 0.125000 0.375000 +v 1.000000 0.036612 0.411611 +v 1.000000 0.000000 0.500000 +v 1.000000 0.036612 0.588388 +v -1.125000 0.750000 0.375000 +v -1.036612 0.750000 0.411612 +v -1.000000 0.750000 0.500000 +v -1.036612 0.750000 0.588388 +v -1.125000 0.750000 0.625000 +v -1.213388 0.750000 0.588388 +v -1.250000 0.750000 0.500000 +v -1.213388 0.750000 0.411612 +v -1.125000 0.250000 0.375000 +v -1.036612 0.250000 0.411611 +v -1.000000 0.250000 0.500000 +v -1.036612 0.250000 0.588388 +v -1.125000 0.250000 0.625000 +v -1.213388 0.250000 0.588388 +v -1.250000 0.250000 0.500000 +v -1.213388 0.250000 0.411611 +v -1.088388 0.161612 0.375000 +v -1.025888 0.224112 0.411611 +v -1.025888 0.224112 0.588388 +v -1.088388 0.161612 0.625000 +v -1.150888 0.099112 0.588388 +v -1.176777 0.073223 0.500000 +v -1.150888 0.099112 0.411611 +v -1.000000 0.125000 0.375000 +v -1.000000 0.213388 0.411611 +v -1.000000 0.213388 0.588388 +v -1.000000 0.125000 0.625000 +v -1.000000 0.036612 0.588388 +v -1.000000 0.000000 0.500000 +v -1.000000 0.036612 0.411611 +v 1.125000 0.750000 -0.375000 +v 1.036612 0.750000 -0.411612 +v 1.000000 0.750000 -0.500000 +v 1.036612 0.750000 -0.588389 +v 1.125000 0.750000 -0.625000 +v 1.213388 0.750000 -0.588389 +v 1.250000 0.750000 -0.500000 +v 1.213388 0.750000 -0.411612 +v 1.125000 0.250000 -0.375000 +v 1.036612 0.250000 -0.411612 +v 1.000000 0.250000 -0.500000 +v 1.036612 0.250000 -0.588389 +v 1.125000 0.250000 -0.625000 +v 1.213388 0.250000 -0.588389 +v 1.250000 0.250000 -0.500000 +v 1.213388 0.250000 -0.411612 +v 1.088388 0.161612 -0.375000 +v 1.025888 0.224112 -0.411612 +v 1.025888 0.224112 -0.588389 +v 1.088388 0.161612 -0.625000 +v 1.150888 0.099112 -0.588389 +v 1.176777 0.073223 -0.500000 +v 1.150888 0.099112 -0.411612 +v 1.000000 0.125000 -0.375000 +v 1.000000 0.213388 -0.411612 +v 1.000000 0.213388 -0.588389 +v 1.000000 0.125000 -0.625000 +v 1.000000 0.036612 -0.588389 +v 1.000000 0.000000 -0.500000 +v 1.000000 0.036612 -0.411612 +v -1.125000 0.750000 -0.625000 +v -1.036612 0.750000 -0.588389 +v -1.000000 0.750000 -0.500000 +v -1.036612 0.750000 -0.411612 +v -1.125000 0.750000 -0.375000 +v -1.213388 0.750000 -0.411612 +v -1.250000 0.750000 -0.500000 +v -1.213388 0.750000 -0.588389 +v -1.125000 0.250000 -0.625000 +v -1.036612 0.250000 -0.588389 +v -1.000000 0.250000 -0.500000 +v -1.036612 0.250000 -0.411612 +v -1.125000 0.250000 -0.375000 +v -1.213388 0.250000 -0.411612 +v -1.250000 0.250000 -0.500000 +v -1.213388 0.250000 -0.588389 +v -1.088388 0.161612 -0.625000 +v -1.025888 0.224112 -0.588389 +v -1.025888 0.224112 -0.411612 +v -1.088388 0.161612 -0.375000 +v -1.150888 0.099112 -0.411612 +v -1.176777 0.073223 -0.500000 +v -1.150888 0.099112 -0.588389 +v -1.000000 0.125000 -0.625000 +v -1.000000 0.213388 -0.588389 +v -1.000000 0.213388 -0.411612 +v -1.000000 0.125000 -0.375000 +v -1.000000 0.036612 -0.411612 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.036612 -0.588389 +v 1.125000 0.750000 -0.125000 +v 1.036612 0.750000 -0.161612 +v 1.000000 0.750000 -0.250000 +v 1.036612 0.750000 -0.338388 +v 1.125000 0.750000 -0.375000 +v 1.213388 0.750000 -0.338388 +v 1.250000 0.750000 -0.250000 +v 1.213388 0.750000 -0.161612 +v 1.125000 0.250000 -0.125000 +v 1.036612 0.250000 -0.161612 +v 1.000000 0.250000 -0.250000 +v 1.036612 0.250000 -0.338389 +v 1.125000 0.250000 -0.375000 +v 1.213388 0.250000 -0.338389 +v 1.250000 0.250000 -0.250000 +v 1.213388 0.250000 -0.161612 +v 1.088388 0.161612 -0.125000 +v 1.025888 0.224112 -0.161612 +v 1.025888 0.224112 -0.338389 +v 1.088388 0.161612 -0.375000 +v 1.150888 0.099112 -0.338389 +v 1.176777 0.073223 -0.250000 +v 1.150888 0.099112 -0.161612 +v 1.000000 0.125000 -0.125000 +v 1.000000 0.213388 -0.161612 +v 1.000000 0.213388 -0.338389 +v 1.000000 0.125000 -0.375000 +v 1.000000 0.036612 -0.338389 +v 1.000000 0.000000 -0.250000 +v 1.000000 0.036612 -0.161612 +v -1.125000 0.750000 -0.375000 +v -1.036612 0.750000 -0.338388 +v -1.000000 0.750000 -0.250000 +v -1.036612 0.750000 -0.161612 +v -1.125000 0.750000 -0.125000 +v -1.213388 0.750000 -0.161612 +v -1.250000 0.750000 -0.250000 +v -1.213388 0.750000 -0.338388 +v -1.125000 0.250000 -0.375000 +v -1.036612 0.250000 -0.338389 +v -1.000000 0.250000 -0.250000 +v -1.036612 0.250000 -0.161612 +v -1.125000 0.250000 -0.125000 +v -1.213388 0.250000 -0.161612 +v -1.250000 0.250000 -0.250000 +v -1.213388 0.250000 -0.338389 +v -1.088388 0.161612 -0.375000 +v -1.025888 0.224112 -0.338389 +v -1.025888 0.224112 -0.161612 +v -1.088388 0.161612 -0.125000 +v -1.150888 0.099112 -0.161612 +v -1.176777 0.073223 -0.250000 +v -1.150888 0.099112 -0.338389 +v -1.000000 0.125000 -0.375000 +v -1.000000 0.213388 -0.338389 +v -1.000000 0.213388 -0.161612 +v -1.000000 0.125000 -0.125000 +v -1.000000 0.036612 -0.161612 +v -1.000000 0.000000 -0.250000 +v -1.000000 0.036612 -0.338389 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.096000 0.500000 +vt 0.104000 0.437500 +vt 0.104000 0.500000 +vt 0.104000 0.562500 +vt 0.096000 0.625000 +vt 0.096000 0.562500 +vt 0.104000 0.625000 +vt 0.096000 0.687500 +vt 0.104000 0.687500 +vt 0.096000 0.750000 +vt 0.104000 0.750000 +vt 0.096000 0.812500 +vt 0.104000 0.812500 +vt 0.096000 0.875000 +vt 0.096000 0.937500 +vt 0.104000 0.875000 +vt 0.104000 0.937500 +vt 0.096000 1.000000 +vt 0.104000 1.000000 +vt 0.096000 0.062500 +vt 0.104000 0.000000 +vt 0.104000 0.062500 +vt 0.096000 0.125000 +vt 0.104000 0.125000 +vt 0.096000 0.187500 +vt 0.104000 0.187500 +vt 0.104000 0.250000 +vt 0.104000 0.312500 +vt 0.096000 0.250000 +vt 0.104000 0.375000 +vt 0.096000 0.312500 +vt 0.096000 0.375000 +vt 0.472000 0.500000 +vt 0.480000 0.562500 +vt 0.472000 0.562500 +vt 0.480000 0.437500 +vt 0.472000 0.437500 +vt 0.480000 0.375000 +vt 0.472000 0.375000 +vt 0.480000 0.312500 +vt 0.472000 0.312500 +vt 0.480000 0.250000 +vt 0.472000 0.250000 +vt 0.480000 0.187500 +vt 0.472000 0.187500 +vt 0.480000 0.125000 +vt 0.480000 0.062500 +vt 0.472000 0.125000 +vt 0.472000 0.062500 +vt 0.480000 0.000000 +vt 0.472000 0.000000 +vt 0.480000 0.937500 +vt 0.472000 1.000000 +vt 0.472000 0.937500 +vt 0.480000 0.875000 +vt 0.472000 0.875000 +vt 0.480000 0.812500 +vt 0.472000 0.812500 +vt 0.472000 0.750000 +vt 0.472000 0.687500 +vt 0.480000 0.750000 +vt 0.472000 0.625000 +vt 0.480000 0.687500 +vt 0.480000 0.625000 +vt 0.120000 0.750000 +vt 0.128000 0.812500 +vt 0.120000 0.812500 +vt 0.128000 0.875000 +vt 0.120000 0.875000 +vt 0.128000 0.937500 +vt 0.120000 0.937500 +vt 0.128000 1.000000 +vt 0.120000 1.000000 +vt 0.120000 -0.000000 +vt 0.128000 0.062500 +vt 0.120000 0.062500 +vt 0.128000 0.125000 +vt 0.120000 0.125000 +vt 0.128000 0.187500 +vt 0.120000 0.187500 +vt 0.120000 0.250000 +vt 0.128000 0.250000 +vt 0.120000 0.312500 +vt 0.128000 0.312500 +vt 0.120000 0.375000 +vt 0.128000 0.375000 +vt 0.120000 0.437500 +vt 0.128000 0.500000 +vt 0.120000 0.500000 +vt 0.120000 0.562500 +vt 0.128000 0.562500 +vt 0.128000 0.625000 +vt 0.120000 0.625000 +vt 0.128000 0.687500 +vt 0.120000 0.687500 +vt 0.128000 0.750000 +vt 0.456000 0.250000 +vt 0.448000 0.312500 +vt 0.448000 0.250000 +vt 0.456000 0.312500 +vt 0.448000 0.375000 +vt 0.456000 0.375000 +vt 0.448000 0.437500 +vt 0.448000 0.500000 +vt 0.456000 0.437500 +vt 0.456000 0.500000 +vt 0.448000 0.562500 +vt 0.456000 0.562500 +vt 0.448000 0.625000 +vt 0.456000 0.625000 +vt 0.448000 0.687500 +vt 0.456000 0.687500 +vt 0.448000 0.750000 +vt 0.456000 0.750000 +vt 0.448000 0.812500 +vt 0.456000 0.812500 +vt 0.448000 0.875000 +vt 0.448000 0.937500 +vt 0.456000 0.875000 +vt 0.456000 0.937500 +vt 0.456000 1.000000 +vt 0.456000 0.062500 +vt 0.448000 0.000000 +vt 0.456000 -0.000000 +vt 0.456000 0.125000 +vt 0.448000 0.062500 +vt 0.456000 0.187500 +vt 0.448000 0.125000 +vt 0.448000 0.187500 +vt 0.600000 0.156250 +vt 0.792000 0.343750 +vt 0.600000 0.343750 +vt 0.792000 0.109375 +vt 0.792000 0.156250 +vt 0.600000 0.390625 +vt 0.816000 0.343750 +vt 0.576000 0.156250 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039062 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039062 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039062 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039062 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.600000 0.156250 +vt 0.792000 0.343750 +vt 0.600000 0.343750 +vt 0.792000 0.109375 +vt 0.792000 0.156250 +vt 0.600000 0.390625 +vt 0.816000 0.343750 +vt 0.576000 0.156250 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039063 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039063 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039063 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039063 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.600000 0.437500 +vt 0.728000 0.562500 +vt 0.600000 0.562500 +vt 0.576000 0.562500 +vt 0.600000 0.390625 +vt 0.728000 0.437500 +vt 0.728000 0.609375 +vt 0.752000 0.437500 +vt 0.744002 0.078125 +vt 0.760000 0.046879 +vt 0.775998 0.078125 +vt 0.760000 0.046879 +vt 0.771312 0.056031 +vt 0.775998 0.078125 +vt 0.728000 0.562500 +vt 0.600000 0.437500 +vt 0.728000 0.437500 +vt 0.752000 0.437500 +vt 0.728000 0.609375 +vt 0.600000 0.562500 +vt 0.600000 0.390625 +vt 0.576000 0.562500 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.096000 0.437500 +vt 0.096000 -0.000000 +vt 0.480000 0.500000 +vt 0.480000 1.000000 +vt 0.128000 0.000000 +vt 0.128000 0.437500 +vt 0.448000 1.000000 +vt 0.600000 0.109375 +vt 0.792000 0.390625 +vt 0.816000 0.156250 +vt 0.576000 0.343750 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.900000 0.078125 +vt 0.968000 0.031250 +vt 0.968000 0.031250 +vt 0.960000 0.031250 +vt 0.960000 0.031250 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.600000 0.109375 +vt 0.792000 0.390625 +vt 0.816000 0.156250 +vt 0.576000 0.343750 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.968000 0.031250 +vt 0.968000 0.031250 +vt 0.960000 0.031250 +vt 0.960000 0.031250 +vt 0.576000 0.437500 +vt 0.728000 0.390625 +vt 0.600000 0.609375 +vt 0.752000 0.562500 +vt 0.771312 0.100219 +vt 0.760000 0.109371 +vt 0.748688 0.100219 +vt 0.748688 0.056031 +vt 0.771312 0.056031 +vt 0.771312 0.100219 +vt 0.760000 0.109371 +vt 0.748688 0.100219 +vt 0.744002 0.078125 +vt 0.748688 0.056031 +vt 0.752000 0.562500 +vt 0.600000 0.609375 +vt 0.728000 0.390625 +vt 0.576000 0.437500 +vt 0.072000 0.437500 +vt 0.040000 0.484375 +vt 0.000000 0.468750 +vt 0.040000 0.453125 +vt 0.504000 0.875000 +vt 0.536000 0.765625 +vt 0.576000 0.781250 +vt 0.536000 0.796875 +vt 0.072000 0.500000 +vt 0.504000 0.750000 +vt 0.504000 0.812500 +vt 0.536000 0.703125 +vt 0.576000 0.718750 +vt 0.536000 0.734375 +vt 0.040000 0.421875 +vt 0.072000 0.375000 +vt 0.504000 0.687500 +vt -0.000000 0.406250 +vt 0.040000 0.390625 +vt 0.536000 0.640625 +vt 0.576000 0.656250 +vt 0.536000 0.671875 +vt 0.040000 0.359375 +vt 0.072000 0.312500 +vt 0.504000 0.625000 +vt 0.000000 0.343750 +vt 0.040000 0.328125 +vt 0.040000 0.296875 +vt 0.072000 0.250000 +vt 0.536000 0.578125 +vt 0.576000 0.593750 +vt 0.536000 0.609375 +vt 0.000000 0.281250 +vt 0.040000 0.265625 +vt 0.504000 0.562500 +vt 0.040000 0.203125 +vt 0.072000 0.187500 +vt 0.040000 0.234375 +vt -0.000000 0.218750 +vt 0.536000 0.515625 +vt 0.504000 0.500000 +vt 0.576000 0.531250 +vt 0.536000 0.546875 +vt 0.072000 0.125000 +vt 0.040000 0.171875 +vt -0.000000 0.156250 +vt 0.040000 0.140625 +vt 0.040000 0.109375 +vt -0.000000 0.093750 +vt 0.040000 0.078125 +vt 0.072000 0.062500 +vt 0.072000 -0.000000 +vt 0.040000 0.046875 +vt 0.000000 0.031250 +vt 0.040000 0.015625 +vt 0.072000 1.000000 +vt 0.040000 0.984375 +vt 0.000000 0.968750 +vt 0.040000 0.953125 +vt 0.072000 0.937500 +vt 0.040000 0.921875 +vt -0.000000 0.906250 +vt 0.040000 0.890625 +vt 0.072000 0.875000 +vt 0.040000 0.859375 +vt 0.000000 0.843750 +vt 0.040000 0.828125 +vt 0.072000 0.812500 +vt 0.040000 0.796875 +vt 0.072000 0.750000 +vt -0.000000 0.781250 +vt 0.040000 0.765625 +vt 0.040000 0.703125 +vt 0.072000 0.687500 +vt 0.040000 0.734375 +vt 0.000000 0.718750 +vt 0.040000 0.671875 +vt 0.072000 0.625000 +vt -0.000000 0.656250 +vt 0.040000 0.640625 +vt 0.040000 0.578125 +vt 0.072000 0.562500 +vt 0.040000 0.609375 +vt -0.000000 0.593750 +vt 0.040000 0.546875 +vt 0.000000 0.531250 +vt 0.040000 0.515625 +vt 0.536000 0.828125 +vt 0.576000 0.843750 +vt 0.536000 0.859375 +vt 0.504000 0.937500 +vt 0.536000 0.890625 +vt 0.576000 0.906250 +vt 0.536000 0.921875 +vt 0.504000 1.000000 +vt 0.536000 0.953125 +vt 0.576000 0.968750 +vt 0.536000 0.984375 +vt 0.504000 -0.000000 +vt 0.536000 0.015625 +vt 0.576000 0.031250 +vt 0.536000 0.046875 +vt 0.504000 0.062500 +vt 0.536000 0.078125 +vt 0.576000 0.093750 +vt 0.536000 0.109375 +vt 0.504000 0.125000 +vt 0.536000 0.140625 +vt 0.576000 0.156250 +vt 0.536000 0.171875 +vt 0.504000 0.187500 +vt 0.536000 0.203125 +vt 0.504000 0.250000 +vt 0.576000 0.218750 +vt 0.536000 0.234375 +vt 0.536000 0.265625 +vt 0.504000 0.312500 +vt 0.576000 0.281250 +vt 0.536000 0.296875 +vt 0.536000 0.359375 +vt 0.504000 0.375000 +vt 0.536000 0.328125 +vt 0.576000 0.343750 +vt 0.536000 0.390625 +vt 0.504000 0.437500 +vt 0.576000 0.406250 +vt 0.536000 0.421875 +vt 0.536000 0.484375 +vt 0.536000 0.453125 +vt 0.576000 0.468750 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.780000 0.046875 +vt 0.792000 0.031250 +vt 0.792000 0.046875 +vt 0.804000 0.046875 +vt 0.804000 0.031250 +vt 0.828000 0.046875 +vt 0.816000 0.031250 +vt 0.828000 0.031250 +vt 0.744000 0.046875 +vt 0.756000 0.031250 +vt 0.756000 0.046875 +vt 0.768000 0.046875 +vt 0.780000 0.031250 +vt 0.816000 0.046875 +vt 0.840000 0.031250 +vt 0.840000 0.046875 +vt 0.768000 0.031250 +vt 0.780000 0.046875 +vt 0.792000 0.031250 +vt 0.792000 0.046875 +vt 0.804000 0.031250 +vt 0.804000 0.046875 +vt 0.828000 0.046875 +vt 0.816000 0.031250 +vt 0.828000 0.031250 +vt 0.744000 0.046875 +vt 0.756000 0.031250 +vt 0.756000 0.046875 +vt 0.768000 0.046875 +vt 0.780000 0.031250 +vt 0.816000 0.046875 +vt 0.840000 0.031250 +vt 0.840000 0.046875 +vt 0.768000 0.031250 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.896000 0.195312 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.928000 0.578125 +vt 0.920000 0.515625 +vt 0.928000 0.515625 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.578125 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.888000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.888000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.928000 0.578125 +vt 0.920000 0.515625 +vt 0.928000 0.515625 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.578125 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.744000 0.031250 +vt 0.744000 0.031250 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.0000 0.8814 0.4723 +vn 0.2738 0.6610 0.6987 +vn 0.3373 0.8143 0.4723 +vn -0.0000 0.3125 0.9499 +vn 0.1196 0.2888 0.9499 +vn -0.8143 -0.3373 -0.4723 +vn -0.5059 -0.5059 -0.6987 +vn -0.6233 -0.6233 -0.4723 +vn -0.3125 -0.0000 -0.9499 +vn -0.2888 -0.1196 -0.9499 +vn -0.0000 0.7155 0.6987 +vn -0.7155 -0.0000 -0.6987 +vn -0.8814 -0.0000 -0.4723 +vn -0.6610 -0.2738 -0.6987 +vn -0.2888 0.1196 -0.9499 +vn 0.5059 0.5059 0.6987 +vn -0.6610 0.2738 -0.6987 +vn -0.8143 0.3373 -0.4723 +vn 0.6233 0.6233 0.4723 +vn 0.2210 0.2210 0.9499 +vn -0.2210 0.2210 -0.9499 +vn 0.6610 0.2738 0.6987 +vn -0.5059 0.5059 -0.6987 +vn -0.6233 0.6233 -0.4723 +vn 0.8143 0.3373 0.4723 +vn 0.2888 0.1196 0.9499 +vn 0.7155 -0.0000 0.6987 +vn -0.1196 0.2888 -0.9499 +vn 0.8814 -0.0000 0.4723 +vn 0.3126 0.0000 0.9499 +vn -0.2738 0.6610 -0.6987 +vn -0.3373 0.8143 -0.4723 +vn 0.2888 -0.1196 0.9499 +vn 0.6610 -0.2738 0.6987 +vn 0.8143 -0.3373 0.4723 +vn 0.0000 0.3125 -0.9499 +vn 0.0000 0.7155 -0.6987 +vn -0.0000 0.8814 -0.4723 +vn 0.5059 -0.5059 0.6987 +vn 0.6233 -0.6233 0.4723 +vn 0.2210 -0.2210 0.9499 +vn 0.3373 -0.8143 0.4723 +vn 0.1196 -0.2888 0.9499 +vn 0.2738 -0.6610 0.6987 +vn -0.0000 -0.7155 0.6987 +vn -0.0000 -0.8814 0.4723 +vn -0.0000 -0.3125 0.9499 +vn -0.3373 -0.8143 0.4723 +vn -0.1196 -0.2888 0.9499 +vn -0.2738 -0.6610 0.6987 +vn -0.6233 -0.6233 0.4723 +vn -0.2210 -0.2210 0.9499 +vn -0.5059 -0.5059 0.6987 +vn -0.2888 -0.1196 0.9499 +vn -0.6610 -0.2738 0.6987 +vn -0.8143 -0.3373 0.4723 +vn -0.7155 0.0000 0.6987 +vn -0.8814 0.0000 0.4723 +vn -0.3125 0.0000 0.9499 +vn -0.2888 0.1196 0.9499 +vn -0.6610 0.2738 0.6987 +vn -0.8143 0.3373 0.4723 +vn -0.5059 0.5059 0.6987 +vn -0.6233 0.6233 0.4723 +vn -0.2210 0.2210 0.9499 +vn -0.1196 0.2888 0.9499 +vn -0.2738 0.6610 0.6987 +vn -0.3373 0.8143 0.4723 +vn -0.2210 -0.2210 -0.9499 +vn -0.2738 -0.6610 -0.6987 +vn -0.3373 -0.8143 -0.4723 +vn -0.1196 -0.2888 -0.9499 +vn -0.0000 -0.7155 -0.6987 +vn 0.0000 -0.8814 -0.4723 +vn -0.0000 -0.3125 -0.9499 +vn 0.3373 -0.8143 -0.4723 +vn 0.1196 -0.2888 -0.9499 +vn 0.2738 -0.6610 -0.6987 +vn 0.6233 -0.6233 -0.4723 +vn 0.2210 -0.2210 -0.9499 +vn 0.5059 -0.5059 -0.6987 +vn 0.2888 -0.1196 -0.9499 +vn 0.6610 -0.2738 -0.6987 +vn 0.8143 -0.3373 -0.4723 +vn 0.7155 0.0000 -0.6987 +vn 0.8814 0.0000 -0.4723 +vn 0.3125 0.0000 -0.9499 +vn 0.6610 0.2738 -0.6987 +vn 0.8143 0.3373 -0.4723 +vn 0.2888 0.1196 -0.9499 +vn 0.2210 0.2210 -0.9499 +vn 0.5059 0.5059 -0.6987 +vn 0.6233 0.6233 -0.4723 +vn 0.2738 0.6610 -0.6987 +vn 0.3373 0.8143 -0.4723 +vn 0.1196 0.2888 -0.9499 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.7071 0.0000 -0.7071 +vn 0.9824 0.1866 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0473 0.0196 0.9987 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 -0.6794 +vn 0.7194 0.1448 0.6794 +vn -0.6737 -0.1363 0.7263 +vn -0.6737 -0.1363 -0.7263 +vn -0.4617 -0.4617 -0.7574 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.5294 0.5294 0.6630 +vn -0.4617 -0.4617 0.7574 +vn 0.0671 0.0671 0.9955 +vn 0.1866 0.9824 0.0000 +vn 0.1448 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1448 0.7194 -0.6794 +vn -0.1363 -0.6737 0.7263 +vn -0.9824 0.1866 0.0000 +vn -0.0473 0.0196 -0.9987 +vn -0.0473 0.0196 0.9987 +vn -0.7194 0.1448 0.6794 +vn -0.7194 0.1448 -0.6794 +vn 0.6737 -0.1363 -0.7263 +vn 0.6737 -0.1363 0.7263 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5294 0.6630 +vn -0.5294 0.5294 -0.6630 +vn -0.0671 0.0671 -0.9955 +vn 0.4617 -0.4617 -0.7574 +vn -0.1866 0.9824 -0.0000 +vn -0.1448 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1448 0.7194 0.6794 +vn 0.1363 -0.6737 -0.7263 +vn 0.4617 -0.4617 0.7574 +vn 0.9824 -0.1866 0.0000 +vn 0.0473 -0.0196 -0.9987 +vn 0.0473 -0.0196 0.9987 +vn 0.7194 -0.1448 0.6794 +vn 0.7194 -0.1448 -0.6794 +vn -0.6737 0.1363 -0.7263 +vn -0.6737 0.1363 0.7263 +vn -0.4617 0.4617 0.7574 +vn 0.0671 -0.0671 0.9955 +vn 0.5294 -0.5294 0.6630 +vn 0.5294 -0.5294 -0.6630 +vn -0.4617 0.4617 -0.7574 +vn 0.0671 -0.0671 -0.9955 +vn 0.1866 -0.9824 -0.0000 +vn 0.1448 -0.7194 -0.6794 +vn 0.0196 -0.0473 -0.9987 +vn 0.0196 -0.0473 0.9987 +vn 0.1448 -0.7194 0.6794 +vn -0.1363 0.6737 -0.7263 +vn -0.1363 0.6737 0.7263 +vn -0.9824 -0.1866 0.0000 +vn -0.0473 -0.0196 0.9987 +vn 0.6737 0.1363 0.7263 +vn -0.0473 -0.0196 -0.9987 +vn -0.7194 -0.1448 -0.6794 +vn -0.7194 -0.1448 0.6794 +vn 0.6737 0.1363 -0.7263 +vn -0.0671 -0.0671 -0.9955 +vn -0.5294 -0.5294 -0.6630 +vn -0.5294 -0.5294 0.6630 +vn -0.0671 -0.0671 0.9955 +vn 0.4617 0.4617 0.7574 +vn -0.1866 -0.9824 0.0000 +vn -0.1448 -0.7194 0.6794 +vn -0.0196 -0.0473 0.9987 +vn 0.4617 0.4617 -0.7574 +vn -0.0196 -0.0473 -0.9987 +vn -0.1448 -0.7194 -0.6794 +vn 0.1363 0.6737 0.7263 +vn 0.1363 0.6737 -0.7263 +s off +f 61/65/21 58/66/21 57/67/21 +f 62/68/22 60/69/22 58/70/22 +f 64/71/23 59/72/23 60/73/23 +f 63/74/24 57/75/24 59/76/24 +f 63/74/25 62/77/25 61/78/25 +f 58/79/26 59/76/26 57/80/26 +f 69/81/21 66/82/21 65/83/21 +f 70/84/22 68/85/22 66/86/22 +f 72/87/23 67/88/23 68/89/23 +f 71/90/24 65/91/24 67/92/24 +f 71/90/25 70/93/25 69/94/25 +f 66/95/26 67/92/26 65/96/26 +f 77/97/21 74/98/21 73/99/21 +f 78/100/22 76/101/22 74/102/22 +f 80/103/23 75/104/23 76/105/23 +f 79/106/24 73/107/24 75/108/24 +f 79/106/25 78/109/25 77/110/25 +f 74/111/26 75/108/26 73/112/26 +f 85/113/21 82/114/21 81/115/21 +f 86/116/22 84/117/22 82/118/22 +f 88/119/23 83/120/23 84/121/23 +f 87/122/24 81/123/24 83/124/24 +f 87/122/25 86/125/25 85/126/25 +f 82/127/26 83/124/26 81/128/26 +f 93/129/21 90/130/21 89/131/21 +f 94/132/22 92/133/22 90/134/22 +f 96/135/23 91/136/23 92/137/23 +f 95/138/24 89/139/24 91/140/24 +f 95/138/25 94/141/25 93/142/25 +f 90/143/26 91/140/26 89/144/26 +f 101/145/21 98/146/21 97/147/21 +f 102/148/22 100/149/22 98/150/22 +f 104/151/23 99/152/23 100/153/23 +f 103/154/24 97/155/24 99/156/24 +f 103/154/25 102/157/25 101/158/25 +f 98/159/26 99/156/26 97/160/26 +f 109/161/21 106/162/21 105/163/21 +f 110/164/22 108/165/22 106/166/22 +f 112/167/23 107/168/23 108/169/23 +f 111/170/24 105/171/24 107/172/24 +f 111/170/25 110/173/25 109/174/25 +f 106/175/26 107/172/26 105/176/26 +f 117/177/21 114/178/21 113/179/21 +f 118/180/22 116/181/22 114/182/22 +f 120/183/23 115/184/23 116/185/23 +f 119/186/24 113/187/24 115/188/24 +f 119/186/25 118/189/25 117/190/25 +f 114/191/26 115/188/26 113/192/26 +f 54/193/26 56/194/26 55/195/26 +f 49/196/21 55/197/21 56/198/21 +f 51/199/23 53/200/23 54/201/23 +f 51/202/25 49/203/25 52/204/25 +f 126/205/26 128/206/26 127/207/26 +f 121/208/21 127/209/21 128/210/21 +f 123/211/23 125/212/23 126/213/23 +f 123/214/25 121/215/25 124/216/25 +f 134/217/26 136/218/26 135/219/26 +f 129/220/21 135/221/21 136/222/21 +f 131/223/23 133/224/23 134/225/23 +f 131/226/25 129/227/25 132/228/25 +f 142/229/26 144/230/26 143/231/26 +f 137/232/21 143/233/21 144/234/21 +f 139/235/23 141/236/23 142/237/23 +f 139/238/25 137/239/25 140/240/25 +f 146/241/26 147/242/26 145/243/26 +f 148/244/24 151/245/24 147/246/24 +f 145/247/22 150/248/22 146/249/22 +f 149/250/25 152/251/25 150/252/25 +f 154/253/26 155/254/26 153/255/26 +f 156/256/24 159/257/24 155/258/24 +f 153/259/22 158/260/22 154/261/22 +f 157/262/25 160/263/25 158/264/25 +f 162/265/26 163/266/26 161/267/26 +f 164/268/24 167/269/24 163/270/24 +f 161/271/22 166/272/22 162/273/22 +f 165/274/25 168/275/25 166/276/25 +f 170/277/26 171/278/26 169/279/26 +f 172/280/24 175/281/24 171/282/24 +f 169/283/22 174/284/22 170/285/22 +f 173/286/25 176/287/25 174/288/25 +f 178/289/23 179/290/23 177/291/23 +f 180/292/24 183/293/24 179/294/24 +f 177/295/22 182/296/22 178/297/22 +f 181/298/21 184/299/21 182/300/21 +f 186/301/23 187/302/23 185/303/23 +f 188/304/24 191/305/24 187/306/24 +f 185/307/22 190/308/22 186/309/22 +f 189/310/21 192/311/21 190/312/21 +f 194/313/23 195/314/23 193/315/23 +f 196/316/24 199/317/24 195/318/24 +f 193/319/22 198/320/22 194/321/22 +f 197/322/21 200/323/21 198/324/21 +f 202/325/23 203/326/23 201/327/23 +f 204/328/24 207/329/24 203/330/24 +f 201/331/22 206/332/22 202/333/22 +f 205/334/21 208/335/21 206/336/21 +f 244/337/22 212/338/22 210/339/22 +f 240/340/22 244/337/22 210/339/22 +f 240/340/22 342/341/22 349/342/22 +f 238/343/22 335/344/22 342/341/22 +f 236/345/22 328/346/22 335/344/22 +f 234/347/22 321/348/22 328/346/22 +f 232/349/22 314/350/22 321/348/22 +f 307/351/22 230/352/22 228/353/22 +f 300/354/22 228/353/22 226/355/22 +f 293/356/22 226/357/22 224/358/22 +f 286/359/22 224/358/22 222/360/22 +f 279/361/22 222/360/22 220/362/22 +f 218/363/22 279/361/22 220/362/22 +f 216/364/22 272/365/22 218/363/22 +f 214/366/22 265/367/22 216/364/22 +f 212/338/22 258/368/22 214/366/22 +f 357/369/24 352/370/24 350/371/24 +f 368/372/24 357/369/24 252/373/24 +f 252/373/24 365/374/24 368/372/24 +f 259/375/24 362/376/24 365/374/24 +f 266/377/24 241/378/24 362/376/24 +f 273/379/24 247/380/24 241/378/24 +f 280/381/24 255/382/24 247/380/24 +f 268/383/24 287/384/24 294/385/24 +f 276/386/24 294/385/24 301/387/24 +f 289/388/24 301/389/24 308/390/24 +f 297/391/24 308/390/24 315/392/24 +f 310/393/24 315/392/24 322/394/24 +f 329/395/24 310/393/24 322/394/24 +f 336/396/24 318/397/24 329/395/24 +f 343/398/24 331/399/24 336/396/24 +f 350/371/24 339/400/24 343/398/24 +f 233/401/24 382/402/24 231/403/24 +f 231/403/24 381/404/24 229/405/24 +f 229/405/24 380/406/24 227/407/24 +f 227/407/24 379/408/24 225/409/24 +f 225/410/24 378/411/24 223/412/24 +f 223/412/24 377/413/24 221/414/24 +f 221/414/24 376/415/24 219/416/24 +f 217/417/24 376/415/24 375/418/24 +f 375/418/24 215/419/24 217/417/24 +f 374/420/24 213/421/24 215/419/24 +f 373/422/24 211/423/24 213/421/24 +f 211/423/24 371/424/24 209/425/24 +f 239/426/24 371/424/24 386/427/24 +f 239/426/24 385/428/24 237/429/24 +f 237/429/24 384/430/24 235/431/24 +f 235/431/24 383/432/24 233/401/24 +f 274/433/22 390/434/22 391/435/22 +f 267/436/22 389/437/22 390/434/22 +f 260/438/22 388/439/22 389/437/22 +f 387/440/22 253/441/22 359/442/22 +f 402/443/22 359/442/22 351/444/22 +f 351/444/22 401/445/22 402/443/22 +f 344/446/22 400/447/22 401/445/22 +f 337/448/22 399/449/22 400/447/22 +f 330/450/22 398/451/22 399/449/22 +f 323/452/22 397/453/22 398/451/22 +f 396/454/22 316/455/22 309/456/22 +f 302/457/22 396/454/22 309/456/22 +f 295/458/22 395/459/22 302/460/22 +f 288/461/22 394/462/22 295/458/22 +f 281/463/22 393/464/22 288/461/22 +f 274/433/22 392/465/22 281/463/22 +f 404/466/21 405/467/21 403/468/21 +f 404/466/26 410/469/26 406/470/26 +f 405/467/25 408/471/25 403/468/25 +f 406/470/24 407/472/24 405/467/24 +f 403/468/22 409/473/22 404/466/22 +f 439/474/21 450/475/21 438/476/21 +f 438/476/21 449/477/21 437/478/21 +f 435/479/21 449/480/21 447/481/21 +f 435/479/21 448/482/21 436/483/21 +f 446/484/21 448/485/21 458/486/21 +f 446/484/21 457/487/21 445/488/21 +f 444/489/21 457/490/21 456/491/21 +f 444/489/21 455/492/21 443/493/21 +f 442/494/21 455/495/21 454/496/21 +f 442/494/21 453/497/21 441/498/21 +f 441/499/21 452/500/21 440/501/21 +f 440/501/21 451/502/21 439/503/21 +f 460/504/21 461/505/21 459/506/21 +f 464/507/21 465/508/21 463/509/21 +f 468/510/21 469/511/21 467/512/21 +f 472/513/21 473/514/21 471/515/21 +f 489/516/21 487/517/21 488/518/21 +f 481/519/21 479/520/21 480/521/21 +f 477/522/24 482/523/24 478/524/24 +f 476/525/22 480/521/22 475/526/22 +f 478/527/26 481/519/26 476/528/26 +f 475/529/25 479/520/25 477/530/25 +f 485/531/24 490/532/24 486/533/24 +f 484/534/22 488/518/22 483/535/22 +f 486/536/26 489/516/26 484/537/26 +f 483/538/25 487/517/25 485/539/25 +f 492/540/24 493/541/24 491/542/24 +f 494/543/25 497/544/25 493/541/25 +f 491/545/26 496/546/26 492/547/26 +f 495/548/22 498/549/22 496/546/22 +f 500/550/24 501/551/24 499/552/24 +f 502/553/25 505/554/25 501/551/25 +f 499/555/26 504/556/26 500/557/26 +f 503/558/22 506/559/22 504/556/22 +f 508/560/24 509/561/24 507/562/24 +f 510/563/25 513/564/25 509/561/25 +f 507/565/26 512/566/26 508/567/26 +f 511/568/22 514/569/22 512/566/22 +f 516/570/24 517/571/24 515/572/24 +f 518/573/25 521/574/25 517/571/25 +f 515/575/26 520/576/26 516/577/26 +f 519/578/22 522/579/22 520/576/22 +f 524/580/24 525/581/24 523/582/24 +f 526/583/21 529/584/21 525/581/21 +f 523/585/23 528/586/23 524/587/23 +f 527/588/22 530/589/22 528/586/22 +f 532/590/24 533/591/24 531/592/24 +f 534/593/21 537/594/21 533/591/21 +f 531/595/23 536/596/23 532/597/23 +f 535/598/22 538/599/22 536/596/22 +f 540/600/24 541/601/24 539/602/24 +f 542/603/21 545/604/21 541/601/21 +f 539/605/23 544/606/23 540/607/23 +f 543/608/22 546/609/22 544/606/22 +f 548/610/24 549/611/24 547/612/24 +f 550/613/21 553/614/21 549/611/21 +f 547/615/23 552/616/23 548/617/23 +f 551/618/22 554/619/22 552/616/22 +f 556/620/23 557/621/23 555/622/23 +f 556/620/26 562/623/26 558/624/26 +f 557/621/25 560/625/25 555/622/25 +f 558/624/22 559/626/22 557/621/22 +f 555/622/24 561/627/24 556/620/24 +f 591/628/23 602/629/23 590/630/23 +f 590/630/23 601/631/23 589/632/23 +f 587/633/23 601/634/23 599/635/23 +f 588/636/23 599/635/23 600/637/23 +f 598/638/23 600/639/23 610/640/23 +f 597/641/23 610/640/23 609/642/23 +f 596/643/23 609/644/23 608/645/23 +f 595/646/23 608/645/23 607/647/23 +f 595/648/23 606/649/23 594/650/23 +f 594/650/23 605/651/23 593/652/23 +f 592/653/23 605/654/23 604/655/23 +f 592/653/23 603/656/23 591/657/23 +f 612/658/23 613/659/23 611/660/23 +f 616/661/23 617/662/23 615/663/23 +f 620/664/23 621/665/23 619/666/23 +f 624/667/23 625/668/23 623/669/23 +f 641/670/23 639/671/23 640/672/23 +f 633/673/23 631/674/23 632/675/23 +f 629/676/22 634/677/22 630/678/22 +f 628/679/24 632/675/24 627/680/24 +f 630/681/26 633/673/26 628/682/26 +f 627/683/25 631/674/25 629/684/25 +f 637/685/22 642/686/22 638/687/22 +f 636/688/24 640/672/24 635/689/24 +f 638/690/26 641/670/26 636/691/26 +f 635/692/25 639/671/25 637/693/25 +f 704/694/25 705/695/25 703/696/25 +f 708/697/22 704/694/22 703/696/22 +f 709/698/21 706/699/21 704/694/21 +f 707/700/23 703/696/23 705/695/23 +f 710/701/24 705/695/24 706/699/24 +f 717/702/24 715/703/24 713/704/24 +f 731/705/22 730/706/22 729/707/22 +f 744/708/26 745/709/26 743/710/26 +f 748/711/24 744/708/24 743/710/24 +f 749/712/21 746/713/21 744/708/21 +f 747/714/23 743/710/23 745/709/23 +f 750/715/22 745/709/22 746/713/22 +f 61/65/21 62/716/21 58/66/21 +f 62/68/22 64/717/22 60/69/22 +f 64/71/23 63/718/23 59/72/23 +f 63/74/24 61/719/24 57/75/24 +f 63/74/25 64/717/25 62/77/25 +f 58/79/26 60/69/26 59/76/26 +f 69/81/21 70/720/21 66/82/21 +f 70/84/22 72/721/22 68/85/22 +f 72/87/23 71/722/23 67/88/23 +f 71/90/24 69/723/24 65/91/24 +f 71/90/25 72/721/25 70/93/25 +f 66/95/26 68/85/26 67/92/26 +f 77/97/21 78/724/21 74/98/21 +f 78/100/22 80/725/22 76/101/22 +f 80/103/23 79/726/23 75/104/23 +f 79/106/24 77/727/24 73/107/24 +f 79/106/25 80/725/25 78/109/25 +f 74/111/26 76/101/26 75/108/26 +f 85/113/21 86/728/21 82/114/21 +f 86/116/22 88/729/22 84/117/22 +f 88/119/23 87/730/23 83/120/23 +f 87/122/24 85/731/24 81/123/24 +f 87/122/25 88/729/25 86/125/25 +f 82/127/26 84/117/26 83/124/26 +f 93/129/21 94/732/21 90/130/21 +f 94/132/22 96/733/22 92/133/22 +f 96/135/23 95/734/23 91/136/23 +f 95/138/24 93/735/24 89/139/24 +f 95/138/25 96/733/25 94/141/25 +f 90/143/26 92/133/26 91/140/26 +f 101/145/21 102/736/21 98/146/21 +f 102/148/22 104/737/22 100/149/22 +f 104/151/23 103/738/23 99/152/23 +f 103/154/24 101/739/24 97/155/24 +f 103/154/25 104/737/25 102/157/25 +f 98/159/26 100/149/26 99/156/26 +f 109/161/21 110/740/21 106/162/21 +f 110/164/22 112/741/22 108/165/22 +f 112/167/23 111/742/23 107/168/23 +f 111/170/24 109/743/24 105/171/24 +f 111/170/25 112/741/25 110/173/25 +f 106/175/26 108/165/26 107/172/26 +f 117/177/21 118/744/21 114/178/21 +f 118/180/22 120/745/22 116/181/22 +f 120/183/23 119/746/23 115/184/23 +f 119/186/24 117/747/24 113/187/24 +f 119/186/25 120/745/25 118/189/25 +f 114/191/26 116/181/26 115/188/26 +f 54/193/26 53/748/26 56/194/26 +f 49/196/21 50/749/21 55/197/21 +f 51/199/23 52/750/23 53/200/23 +f 51/202/25 50/751/25 49/203/25 +f 126/205/26 125/752/26 128/206/26 +f 121/208/21 122/753/21 127/209/21 +f 123/211/23 124/754/23 125/212/23 +f 123/214/25 122/755/25 121/215/25 +f 134/217/26 133/756/26 136/218/26 +f 129/220/21 130/757/21 135/221/21 +f 131/223/23 132/758/23 133/224/23 +f 131/226/25 130/759/25 129/227/25 +f 142/229/26 141/760/26 144/230/26 +f 137/232/21 138/761/21 143/233/21 +f 139/235/23 140/762/23 141/236/23 +f 139/238/25 138/763/25 137/239/25 +f 146/241/26 148/764/26 147/242/26 +f 148/244/24 152/765/24 151/245/24 +f 145/247/22 149/766/22 150/248/22 +f 149/250/25 151/767/25 152/251/25 +f 154/253/26 156/768/26 155/254/26 +f 156/256/24 160/769/24 159/257/24 +f 153/259/22 157/770/22 158/260/22 +f 157/262/25 159/771/25 160/263/25 +f 162/265/26 164/772/26 163/266/26 +f 164/268/24 168/773/24 167/269/24 +f 161/271/22 165/774/22 166/272/22 +f 165/274/25 167/775/25 168/275/25 +f 170/277/26 172/776/26 171/278/26 +f 172/280/24 176/777/24 175/281/24 +f 169/283/22 173/778/22 174/284/22 +f 173/286/25 175/779/25 176/287/25 +f 178/289/23 180/780/23 179/290/23 +f 180/292/24 184/781/24 183/293/24 +f 177/295/22 181/782/22 182/296/22 +f 181/298/21 183/783/21 184/299/21 +f 186/301/23 188/784/23 187/302/23 +f 188/304/24 192/785/24 191/305/24 +f 185/307/22 189/786/22 190/308/22 +f 189/310/21 191/787/21 192/311/21 +f 194/313/23 196/788/23 195/314/23 +f 196/316/24 200/789/24 199/317/24 +f 193/319/22 197/790/22 198/320/22 +f 197/322/21 199/791/21 200/323/21 +f 202/325/23 204/792/23 203/326/23 +f 204/328/24 208/793/24 207/329/24 +f 201/331/22 205/794/22 206/332/22 +f 205/334/21 207/795/21 208/335/21 +f 244/337/22 251/796/22 212/338/22 +f 240/340/22 349/342/22 244/337/22 +f 240/340/22 238/343/22 342/341/22 +f 238/343/22 236/345/22 335/344/22 +f 236/345/22 234/347/22 328/346/22 +f 234/347/22 232/349/22 321/348/22 +f 232/349/22 230/352/22 314/350/22 +f 307/351/22 314/350/22 230/352/22 +f 300/354/22 307/351/22 228/353/22 +f 293/356/22 300/797/22 226/357/22 +f 286/359/22 293/356/22 224/358/22 +f 279/361/22 286/359/22 222/360/22 +f 218/363/22 272/365/22 279/361/22 +f 216/364/22 265/367/22 272/365/22 +f 214/366/22 258/368/22 265/367/22 +f 212/338/22 251/796/22 258/368/22 +f 357/369/24 358/798/24 352/370/24 +f 368/372/24 358/798/24 357/369/24 +f 252/373/24 259/375/24 365/374/24 +f 259/375/24 266/377/24 362/376/24 +f 266/377/24 273/379/24 241/378/24 +f 273/379/24 280/381/24 247/380/24 +f 280/381/24 287/384/24 255/382/24 +f 268/383/24 255/382/24 287/384/24 +f 276/386/24 268/383/24 294/385/24 +f 289/388/24 276/799/24 301/389/24 +f 297/391/24 289/388/24 308/390/24 +f 310/393/24 297/391/24 315/392/24 +f 329/395/24 318/397/24 310/393/24 +f 336/396/24 331/399/24 318/397/24 +f 343/398/24 339/400/24 331/399/24 +f 350/371/24 352/370/24 339/400/24 +f 233/401/24 383/432/24 382/402/24 +f 231/403/24 382/402/24 381/404/24 +f 229/405/24 381/404/24 380/406/24 +f 227/407/24 380/406/24 379/408/24 +f 225/410/24 379/800/24 378/411/24 +f 223/412/24 378/411/24 377/413/24 +f 221/414/24 377/413/24 376/415/24 +f 217/417/24 219/416/24 376/415/24 +f 375/418/24 374/420/24 215/419/24 +f 374/420/24 373/422/24 213/421/24 +f 373/422/24 372/801/24 211/423/24 +f 211/423/24 372/801/24 371/424/24 +f 239/426/24 209/425/24 371/424/24 +f 239/426/24 386/427/24 385/428/24 +f 237/429/24 385/428/24 384/430/24 +f 235/431/24 384/430/24 383/432/24 +f 274/433/22 267/436/22 390/434/22 +f 267/436/22 260/438/22 389/437/22 +f 260/438/22 253/441/22 388/439/22 +f 387/440/22 388/439/22 253/441/22 +f 402/443/22 387/440/22 359/442/22 +f 351/444/22 344/446/22 401/445/22 +f 344/446/22 337/448/22 400/447/22 +f 337/448/22 330/450/22 399/449/22 +f 330/450/22 323/452/22 398/451/22 +f 323/452/22 316/455/22 397/453/22 +f 396/454/22 397/453/22 316/455/22 +f 302/457/22 395/802/22 396/454/22 +f 295/458/22 394/462/22 395/459/22 +f 288/461/22 393/464/22 394/462/22 +f 281/463/22 392/465/22 393/464/22 +f 274/433/22 391/435/22 392/465/22 +f 404/466/21 406/470/21 405/467/21 +f 404/466/26 409/803/26 410/469/26 +f 405/467/25 407/804/25 408/471/25 +f 406/470/24 410/805/24 407/472/24 +f 403/468/22 408/806/22 409/473/22 +f 439/474/21 451/807/21 450/475/21 +f 438/476/21 450/475/21 449/477/21 +f 435/479/21 437/808/21 449/480/21 +f 435/479/21 447/481/21 448/482/21 +f 446/484/21 436/809/21 448/485/21 +f 446/484/21 458/486/21 457/487/21 +f 444/489/21 445/810/21 457/490/21 +f 444/489/21 456/491/21 455/492/21 +f 442/494/21 443/811/21 455/495/21 +f 442/494/21 454/496/21 453/497/21 +f 441/499/21 453/812/21 452/500/21 +f 440/501/21 452/500/21 451/502/21 +f 460/504/21 462/813/21 461/505/21 +f 464/507/21 466/814/21 465/508/21 +f 468/510/21 470/815/21 469/511/21 +f 472/513/21 474/816/21 473/514/21 +f 489/516/21 490/532/21 487/517/21 +f 481/519/21 482/523/21 479/520/21 +f 477/522/24 479/520/24 482/523/24 +f 476/525/22 481/519/22 480/521/22 +f 478/527/26 482/523/26 481/519/26 +f 475/529/25 480/521/25 479/520/25 +f 485/531/24 487/517/24 490/532/24 +f 484/534/22 489/516/22 488/518/22 +f 486/536/26 490/532/26 489/516/26 +f 483/538/25 488/518/25 487/517/25 +f 492/540/24 494/543/24 493/541/24 +f 494/543/25 498/817/25 497/544/25 +f 491/545/26 495/548/26 496/546/26 +f 495/548/22 497/818/22 498/549/22 +f 500/550/24 502/553/24 501/551/24 +f 502/553/25 506/819/25 505/554/25 +f 499/555/26 503/558/26 504/556/26 +f 503/558/22 505/820/22 506/559/22 +f 508/560/24 510/563/24 509/561/24 +f 510/563/25 514/821/25 513/564/25 +f 507/565/26 511/568/26 512/566/26 +f 511/568/22 513/822/22 514/569/22 +f 516/570/24 518/573/24 517/571/24 +f 518/573/25 522/823/25 521/574/25 +f 515/575/26 519/578/26 520/576/26 +f 519/578/22 521/824/22 522/579/22 +f 524/580/24 526/583/24 525/581/24 +f 526/583/21 530/825/21 529/584/21 +f 523/585/23 527/588/23 528/586/23 +f 527/588/22 529/826/22 530/589/22 +f 532/590/24 534/593/24 533/591/24 +f 534/593/21 538/827/21 537/594/21 +f 531/595/23 535/598/23 536/596/23 +f 535/598/22 537/828/22 538/599/22 +f 540/600/24 542/603/24 541/601/24 +f 542/603/21 546/829/21 545/604/21 +f 539/605/23 543/608/23 544/606/23 +f 543/608/22 545/830/22 546/609/22 +f 548/610/24 550/613/24 549/611/24 +f 550/613/21 554/831/21 553/614/21 +f 547/615/23 551/618/23 552/616/23 +f 551/618/22 553/832/22 554/619/22 +f 556/620/23 558/624/23 557/621/23 +f 556/620/26 561/833/26 562/623/26 +f 557/621/25 559/834/25 560/625/25 +f 558/624/22 562/835/22 559/626/22 +f 555/622/24 560/836/24 561/627/24 +f 591/628/23 603/837/23 602/629/23 +f 590/630/23 602/629/23 601/631/23 +f 587/633/23 589/838/23 601/634/23 +f 588/636/23 587/633/23 599/635/23 +f 598/638/23 588/839/23 600/639/23 +f 597/641/23 598/638/23 610/640/23 +f 596/643/23 597/840/23 609/644/23 +f 595/646/23 596/643/23 608/645/23 +f 595/648/23 607/841/23 606/649/23 +f 594/650/23 606/649/23 605/651/23 +f 592/653/23 593/842/23 605/654/23 +f 592/653/23 604/655/23 603/656/23 +f 612/658/23 614/843/23 613/659/23 +f 616/661/23 618/844/23 617/662/23 +f 620/664/23 622/845/23 621/665/23 +f 624/667/23 626/846/23 625/668/23 +f 641/670/23 642/686/23 639/671/23 +f 633/673/23 634/677/23 631/674/23 +f 629/676/22 631/674/22 634/677/22 +f 628/679/24 633/673/24 632/675/24 +f 630/681/26 634/677/26 633/673/26 +f 627/683/25 632/675/25 631/674/25 +f 637/685/22 639/671/22 642/686/22 +f 636/688/24 641/670/24 640/672/24 +f 638/690/26 642/686/26 641/670/26 +f 635/692/25 640/672/25 639/671/25 +f 704/694/25 706/699/25 705/695/25 +f 708/697/22 709/847/22 704/694/22 +f 709/698/21 710/848/21 706/699/21 +f 707/700/23 708/849/23 703/696/23 +f 710/701/24 707/850/24 705/695/24 +f 713/704/24 712/851/24 711/852/24 +f 711/852/24 718/853/24 717/702/24 +f 717/702/24 716/854/24 715/703/24 +f 715/703/24 714/855/24 713/704/24 +f 713/704/24 711/852/24 717/702/24 +f 729/707/22 728/856/22 727/857/22 +f 727/857/22 734/858/22 729/707/22 +f 734/858/22 733/859/22 729/707/22 +f 733/859/22 732/860/22 729/707/22 +f 732/860/22 731/705/22 729/707/22 +f 744/708/26 746/713/26 745/709/26 +f 748/711/24 749/861/24 744/708/24 +f 749/712/21 750/862/21 746/713/21 +f 747/714/23 748/863/23 743/710/23 +f 750/715/22 747/864/22 745/709/22 +s 1 +f 210/339/25 211/423/27 209/425/25 +f 212/338/27 213/421/28 211/423/27 +f 214/366/28 215/419/29 213/421/28 +f 216/364/29 217/417/21 215/419/29 +f 218/363/21 219/416/30 217/417/21 +f 220/362/30 221/414/31 219/416/30 +f 222/360/31 223/412/32 221/414/31 +f 224/358/32 225/410/26 223/412/32 +f 226/355/26 227/407/33 225/409/26 +f 228/353/33 229/405/34 227/407/33 +f 230/352/34 231/403/35 229/405/34 +f 232/349/35 233/401/23 231/403/35 +f 234/347/23 235/431/36 233/401/23 +f 236/345/36 237/429/37 235/431/36 +f 238/343/37 239/426/38 237/429/37 +f 240/340/38 209/425/25 239/426/38 +f 244/337/39 250/865/40 251/796/41 +f 354/866/42 353/867/22 249/868/43 +f 310/393/44 303/869/45 297/391/46 +f 325/870/47 369/871/24 317/872/48 +f 354/866/42 250/865/40 243/873/49 +f 324/874/50 310/393/44 318/397/51 +f 325/870/47 311/875/52 324/874/50 +f 338/876/53 369/877/24 325/878/47 +f 249/879/43 257/880/54 250/865/40 +f 332/881/55 318/397/51 331/399/56 +f 251/796/41 257/880/54 258/368/57 +f 249/879/43 353/882/22 256/883/58 +f 332/881/55 325/878/47 324/874/50 +f 346/884/59 369/885/24 338/886/53 +f 256/887/58 264/888/60 257/880/54 +f 345/889/61 331/399/56 339/400/62 +f 258/368/57 264/888/60 265/367/63 +f 256/887/58 353/890/22 263/891/64 +f 345/889/61 338/886/53 332/881/55 +f 263/892/64 271/893/65 264/888/60 +f 356/894/66 369/895/24 346/896/59 +f 265/367/63 271/893/65 272/365/67 +f 263/892/64 353/897/22 270/898/68 +f 355/899/69 339/400/62 352/370/70 +f 271/893/65 277/900/71 278/901/72 +f 356/894/66 345/889/61 355/899/69 +f 272/365/67 278/901/72 279/361/73 +f 270/902/68 353/903/22 277/900/71 +f 370/904/74 355/899/69 246/905/75 +f 370/904/74 369/906/24 356/907/66 +f 246/905/75 352/370/70 358/798/76 +f 279/361/73 285/908/77 286/359/78 +f 277/909/71 353/910/22 284/911/79 +f 252/373/27 359/442/25 253/441/27 +f 259/375/28 253/441/27 260/438/28 +f 278/901/72 284/911/79 285/908/77 +f 266/377/29 260/438/28 267/436/29 +f 285/908/77 293/356/80 286/359/78 +f 284/912/79 353/913/22 291/914/81 +f 273/379/21 267/436/29 274/433/21 +f 280/381/30 274/433/21 281/463/30 +f 284/912/79 292/915/82 285/908/77 +f 287/384/31 281/463/30 288/461/31 +f 293/356/80 299/916/83 300/797/84 +f 291/917/81 353/918/22 298/919/85 +f 294/385/32 288/461/31 295/458/32 +f 301/387/26 295/458/32 302/460/26 +f 291/917/81 299/916/83 292/915/82 +f 308/390/33 302/457/26 309/456/33 +f 299/920/83 307/351/86 300/354/84 +f 298/921/85 353/922/22 305/923/87 +f 315/392/34 309/456/33 316/455/34 +f 322/394/35 316/455/34 323/452/35 +f 298/921/85 306/924/88 299/920/83 +f 306/924/88 314/350/89 307/351/86 +f 305/925/87 353/926/22 312/927/90 +f 329/395/23 323/452/35 330/450/23 +f 336/396/36 330/450/23 337/448/36 +f 305/925/87 313/928/91 306/924/88 +f 343/398/37 337/448/36 344/446/37 +f 312/929/90 353/930/22 319/931/92 +f 350/371/38 344/446/37 351/444/38 +f 357/369/25 351/444/38 359/442/25 +f 312/929/90 320/932/93 313/928/91 +f 314/350/89 320/932/93 321/348/94 +f 319/933/92 327/934/95 320/932/93 +f 320/932/93 328/346/96 321/348/94 +f 319/933/92 353/935/22 326/936/97 +f 327/934/95 333/937/98 334/938/99 +f 327/934/95 335/344/100 328/346/96 +f 326/939/97 353/940/22 333/937/98 +f 333/941/98 341/942/101 334/938/99 +f 334/938/99 342/341/102 335/344/100 +f 333/941/98 353/943/22 340/944/103 +f 341/942/101 347/945/104 348/946/105 +f 341/942/101 349/342/106 342/341/102 +f 340/947/103 353/948/22 347/945/104 +f 347/949/104 243/873/49 348/946/105 +f 348/946/105 244/337/39 349/342/106 +f 347/949/104 353/950/22 354/951/42 +f 317/952/48 369/953/24 304/954/107 +f 317/952/48 303/869/45 311/875/52 +f 297/391/46 290/955/108 289/388/109 +f 304/956/107 369/957/24 296/958/110 +f 304/956/107 290/955/108 303/869/45 +f 289/388/109 282/959/111 276/799/112 +f 296/960/110 369/961/24 283/962/113 +f 290/955/108 283/962/113 282/959/111 +f 282/963/111 268/383/114 276/386/112 +f 283/964/113 369/965/24 275/966/115 +f 282/963/111 275/966/115 269/967/116 +f 269/967/116 255/382/117 268/383/114 +f 275/968/115 369/969/24 262/970/118 +f 269/967/116 262/970/118 261/971/119 +f 262/972/118 369/973/24 254/974/120 +f 261/971/119 254/974/120 248/975/121 +f 261/971/119 247/380/122 255/382/117 +f 254/976/120 242/977/123 248/975/121 +f 248/975/121 241/378/124 247/380/122 +f 254/976/120 369/978/24 245/979/125 +f 245/980/125 361/981/126 242/977/123 +f 242/977/123 362/376/127 241/378/124 +f 245/980/125 369/982/24 360/983/128 +f 361/981/126 363/984/129 364/985/130 +f 361/981/126 365/374/131 362/376/127 +f 360/986/128 369/987/24 363/984/129 +f 363/988/129 367/989/132 364/985/130 +f 364/985/130 368/372/133 365/374/131 +f 363/988/129 369/990/24 366/991/134 +f 367/989/132 370/992/74 246/905/75 +f 367/989/132 358/798/76 368/372/133 +f 366/993/134 369/994/24 370/992/74 +f 384/430/36 399/449/23 383/432/23 +f 377/413/31 392/465/30 376/415/30 +f 385/428/37 400/447/36 384/430/36 +f 378/411/32 393/464/31 377/413/31 +f 386/427/38 401/445/37 385/428/37 +f 379/800/26 394/462/32 378/411/32 +f 372/801/27 387/440/25 371/424/25 +f 371/424/25 402/443/38 386/427/38 +f 380/406/33 395/802/26 379/408/26 +f 373/422/28 388/439/27 372/801/27 +f 381/404/34 396/454/33 380/406/33 +f 374/420/29 389/437/28 373/422/28 +f 382/402/35 397/453/34 381/404/34 +f 375/418/21 390/434/29 374/420/29 +f 383/432/23 398/451/35 382/402/35 +f 376/415/30 391/435/21 375/418/21 +f 420/995/26 443/493/135 419/996/135 +f 434/997/136 448/485/22 423/998/22 +f 413/999/137 435/479/138 412/1000/138 +f 427/1001/139 452/500/140 428/1002/140 +f 421/1003/139 444/489/26 420/995/26 +f 414/1004/25 437/478/137 413/1005/137 +f 428/1002/140 453/812/24 429/1006/24 +f 422/1007/140 445/488/139 421/1008/139 +f 415/1009/141 438/476/25 414/1004/25 +f 429/1010/24 454/496/138 430/1011/138 +f 411/1012/24 446/484/140 422/1007/140 +f 416/1013/136 439/503/141 415/1014/141 +f 430/1011/138 455/495/137 431/1015/137 +f 423/1016/22 447/481/142 424/1017/142 +f 417/1018/22 440/501/136 416/1013/136 +f 431/1019/137 456/491/25 432/1020/25 +f 424/1017/142 449/480/135 425/1021/135 +f 418/1022/142 441/498/22 417/1023/22 +f 432/1020/25 457/490/141 433/1024/141 +f 425/1025/135 450/475/26 426/1026/26 +f 419/1027/135 442/494/142 418/1022/142 +f 433/1028/141 458/486/136 434/997/136 +f 412/1000/138 436/483/24 411/1029/24 +f 426/1026/26 451/807/139 427/1030/139 +f 572/1031/26 595/646/139 571/1032/139 +f 586/1033/138 600/639/24 575/1034/24 +f 565/1035/141 587/633/136 564/1036/136 +f 579/1037/135 604/655/142 580/1038/142 +f 573/1039/135 596/643/26 572/1031/26 +f 566/1040/25 589/632/141 565/1041/141 +f 580/1038/142 605/654/22 581/1042/22 +f 574/1043/142 597/641/135 573/1044/135 +f 567/1045/137 590/630/25 566/1040/25 +f 581/1046/22 606/649/136 582/1047/136 +f 563/1048/22 598/638/142 574/1043/142 +f 568/1049/138 591/657/137 567/1050/137 +f 582/1047/136 607/841/141 583/1051/141 +f 575/1052/24 599/635/140 576/1053/140 +f 569/1054/24 592/653/138 568/1049/138 +f 583/1055/141 608/645/25 584/1056/25 +f 576/1053/140 601/634/139 577/1057/139 +f 570/1058/140 593/652/24 569/1059/24 +f 584/1056/25 609/644/137 585/1060/137 +f 577/1061/139 602/629/26 578/1062/26 +f 571/1063/139 594/650/140 570/1058/140 +f 585/1064/137 610/640/138 586/1033/138 +f 564/1036/136 588/636/22 563/1065/22 +f 578/1062/26 603/837/135 579/1066/135 +f 650/1067/143 657/1068/144 649/1069/21 +f 648/1070/145 655/1071/146 647/1072/22 +f 646/1073/147 653/1074/34 645/1075/23 +f 644/1076/148 651/1077/149 643/1078/24 +f 643/1078/24 658/1079/150 650/1067/143 +f 649/1069/21 656/1080/151 648/1070/145 +f 647/1072/22 654/1081/152 646/1073/147 +f 645/1082/23 652/1083/153 644/1076/148 +f 651/1084/149 660/1085/154 659/1086/155 +f 658/1079/150 659/1086/155 665/1087/156 +f 656/1080/151 664/1088/28 663/1089/157 +f 655/1090/146 661/1091/158 654/1092/152 +f 658/1079/150 664/1088/28 657/1068/144 +f 656/1080/151 662/1093/159 655/1090/146 +f 665/1087/156 671/1094/160 664/1088/28 +f 662/1093/159 670/1095/161 669/1096/162 +f 659/1086/155 667/1097/163 666/1098/164 +f 659/1086/155 672/1099/165 665/1087/156 +f 664/1088/28 670/1095/161 663/1089/157 +f 662/1093/159 668/1100/166 661/1091/158 +f 654/1092/152 661/1091/158 653/1101/34 +f 661/1091/158 668/1100/166 653/1101/34 +f 652/1102/153 653/1103/34 660/1085/154 +f 660/1085/154 653/1103/34 667/1097/163 +f 680/1104/147 687/1105/167 679/1106/23 +f 678/1107/148 685/1108/168 677/1109/24 +f 676/1110/143 683/1111/31 675/1112/21 +f 674/1113/145 681/1114/169 673/1115/22 +f 673/1115/22 688/1116/170 680/1104/147 +f 679/1106/23 686/1117/171 678/1107/148 +f 677/1109/24 684/1118/172 676/1110/143 +f 675/1119/21 682/1120/173 674/1113/145 +f 682/1121/173 689/1122/174 681/1123/169 +f 688/1116/170 689/1122/174 695/1124/175 +f 686/1117/171 694/1125/37 693/1126/176 +f 684/1127/172 692/1128/177 691/1129/178 +f 688/1116/170 694/1125/37 687/1105/167 +f 685/1130/168 693/1126/176 692/1128/177 +f 695/1124/175 701/1131/179 694/1125/37 +f 692/1128/177 700/1132/180 699/1133/181 +f 689/1122/174 697/1134/182 696/1135/183 +f 689/1122/174 702/1136/184 695/1124/175 +f 693/1126/176 701/1131/179 700/1132/180 +f 691/1129/178 699/1133/181 698/1137/185 +f 684/1127/172 691/1129/178 683/1138/31 +f 691/1129/178 698/1137/185 683/1138/31 +f 682/1121/173 683/1139/31 690/1140/186 +f 690/1140/186 683/1139/31 697/1134/182 +f 702/1136/184 669/1141/162 670/1095/161 +f 671/1094/160 702/1136/184 670/1095/161 +f 700/1132/180 671/1094/160 672/1099/165 +f 699/1142/181 672/1099/165 666/1143/164 +f 698/1144/185 666/1143/164 667/1145/163 +f 653/1146/34 698/1144/185 667/1145/163 +f 653/1147/34 697/1148/182 683/1149/31 +f 696/1150/183 668/1151/166 669/1141/162 +f 712/1152/37 720/1153/25 711/1154/25 +f 718/1155/28 720/1153/25 726/1156/28 +f 716/1157/31 725/1158/21 724/1159/31 +f 715/1160/26 722/1161/34 714/1162/34 +f 713/1163/23 719/1164/37 712/1152/37 +f 717/1165/21 726/1156/28 725/1158/21 +f 716/1157/31 723/1166/26 715/1167/26 +f 714/1162/34 721/1168/23 713/1163/23 +f 728/1169/28 736/1170/25 727/1171/25 +f 727/1171/25 742/1172/37 734/1173/37 +f 732/1174/34 741/1175/23 740/1176/34 +f 731/1177/26 738/1178/31 730/1179/31 +f 729/1180/21 735/1181/28 728/1169/28 +f 733/1182/23 742/1172/37 741/1175/23 +f 732/1174/34 739/1183/26 731/1184/26 +f 730/1179/31 737/1185/21 729/1180/21 +f 758/1186/143 765/1187/144 757/1188/21 +f 756/1189/145 763/1190/146 755/1191/22 +f 754/1192/147 761/1193/34 753/1194/23 +f 752/1195/148 759/1196/149 751/1197/24 +f 751/1197/24 766/1198/150 758/1186/143 +f 757/1188/21 764/1199/151 756/1189/145 +f 755/1191/22 762/1200/152 754/1192/147 +f 753/1201/23 760/1202/153 752/1195/148 +f 759/1203/149 768/1204/154 767/1205/155 +f 766/1198/150 767/1205/155 773/1206/156 +f 764/1199/151 772/1207/28 771/1208/157 +f 763/1209/146 769/1210/158 762/1211/152 +f 766/1198/150 772/1207/28 765/1187/144 +f 764/1199/151 770/1212/159 763/1209/146 +f 773/1206/156 779/1213/160 772/1207/28 +f 770/1212/159 778/1214/161 777/1215/162 +f 767/1205/155 775/1216/163 774/1217/164 +f 767/1205/155 780/1218/165 773/1206/156 +f 771/1208/157 779/1213/160 778/1214/161 +f 770/1212/159 776/1219/166 769/1210/158 +f 762/1211/152 769/1210/158 761/1220/34 +f 769/1210/158 776/1219/166 761/1220/34 +f 760/1221/153 761/1222/34 768/1204/154 +f 768/1204/154 761/1222/34 775/1216/163 +f 788/1223/147 795/1224/167 787/1225/23 +f 786/1226/148 793/1227/168 785/1228/24 +f 784/1229/143 791/1230/31 783/1231/21 +f 782/1232/145 789/1233/169 781/1234/22 +f 781/1234/22 796/1235/170 788/1223/147 +f 787/1225/23 794/1236/171 786/1226/148 +f 785/1228/24 792/1237/172 784/1229/143 +f 783/1238/21 790/1239/173 782/1232/145 +f 790/1240/173 797/1241/174 789/1242/169 +f 789/1242/169 803/1243/175 796/1235/170 +f 794/1236/171 802/1244/37 801/1245/176 +f 792/1246/172 800/1247/177 799/1248/178 +f 796/1235/170 802/1244/37 795/1224/167 +f 793/1249/168 801/1245/176 800/1247/177 +f 803/1243/175 809/1250/179 802/1244/37 +f 800/1247/177 808/1251/180 807/1252/181 +f 797/1241/174 805/1253/182 804/1254/183 +f 797/1241/174 810/1255/184 803/1243/175 +f 801/1245/176 809/1250/179 808/1251/180 +f 800/1247/177 806/1256/185 799/1248/178 +f 792/1246/172 799/1248/178 791/1257/31 +f 799/1248/178 806/1256/185 791/1257/31 +f 790/1240/173 791/1258/31 798/1259/186 +f 798/1259/186 791/1258/31 805/1253/182 +f 810/1255/184 777/1260/162 778/1214/161 +f 779/1213/160 810/1255/184 778/1214/161 +f 808/1251/180 779/1213/160 780/1218/165 +f 807/1261/181 780/1218/165 774/1262/164 +f 806/1263/185 774/1262/164 775/1264/163 +f 761/1265/34 806/1263/185 775/1264/163 +f 761/1266/34 805/1267/182 791/1268/31 +f 804/1269/183 776/1270/166 777/1260/162 +f 818/1271/143 825/1272/144 817/1273/21 +f 816/1274/145 823/1275/146 815/1276/22 +f 814/1277/147 821/1278/34 813/1279/23 +f 812/1280/148 819/1281/149 811/1282/24 +f 811/1282/24 826/1283/150 818/1271/143 +f 817/1273/21 824/1284/151 816/1274/145 +f 815/1276/22 822/1285/152 814/1277/147 +f 813/1286/23 820/1287/153 812/1280/148 +f 819/1288/149 828/1289/154 827/1290/155 +f 826/1283/150 827/1290/155 833/1291/156 +f 824/1284/151 832/1292/28 831/1293/157 +f 823/1294/146 829/1295/158 822/1296/152 +f 825/1272/144 833/1291/156 832/1292/28 +f 824/1284/151 830/1297/159 823/1294/146 +f 833/1291/156 839/1298/160 832/1292/28 +f 830/1297/159 838/1299/161 837/1300/162 +f 828/1289/154 834/1301/164 827/1290/155 +f 827/1290/155 840/1302/165 833/1291/156 +f 831/1293/157 839/1298/160 838/1299/161 +f 829/1295/158 837/1300/162 836/1303/166 +f 822/1296/152 829/1295/158 821/1304/34 +f 829/1295/158 836/1303/166 821/1304/34 +f 820/1305/153 821/1306/34 828/1289/154 +f 828/1289/154 821/1306/34 835/1307/163 +f 848/1308/147 855/1309/167 847/1310/23 +f 846/1311/148 853/1312/168 845/1313/24 +f 844/1314/143 851/1315/31 843/1316/21 +f 842/1317/145 849/1318/169 841/1319/22 +f 841/1319/22 856/1320/170 848/1308/147 +f 847/1310/23 854/1321/171 846/1311/148 +f 845/1313/24 852/1322/172 844/1314/143 +f 843/1323/21 850/1324/173 842/1317/145 +f 850/1325/173 857/1326/174 849/1327/169 +f 849/1327/169 863/1328/175 856/1320/170 +f 854/1321/171 862/1329/37 861/1330/176 +f 852/1331/172 860/1332/177 859/1333/178 +f 856/1320/170 862/1329/37 855/1309/167 +f 853/1334/168 861/1330/176 860/1332/177 +f 863/1328/175 869/1335/179 862/1329/37 +f 860/1332/177 868/1336/180 867/1337/181 +f 858/1338/186 864/1339/183 857/1326/174 +f 857/1326/174 870/1340/184 863/1328/175 +f 861/1330/176 869/1335/179 868/1336/180 +f 859/1333/178 867/1337/181 866/1341/185 +f 852/1331/172 859/1333/178 851/1342/31 +f 859/1333/178 866/1341/185 851/1342/31 +f 850/1325/173 851/1343/31 858/1338/186 +f 858/1338/186 851/1343/31 865/1344/182 +f 870/1340/184 837/1345/162 838/1299/161 +f 839/1298/160 870/1340/184 838/1299/161 +f 868/1336/180 839/1298/160 840/1302/165 +f 867/1346/181 840/1302/165 834/1347/164 +f 866/1348/185 834/1347/164 835/1349/163 +f 851/1350/31 835/1349/163 821/1351/34 +f 821/1352/34 865/1353/182 851/1354/31 +f 864/1355/183 836/1356/166 837/1345/162 +f 878/1357/143 885/1358/144 877/1359/21 +f 876/1360/145 883/1361/146 875/1362/22 +f 874/1363/147 881/1364/34 873/1365/23 +f 872/1366/148 879/1367/149 871/1368/24 +f 871/1368/24 886/1369/150 878/1357/143 +f 877/1359/21 884/1370/151 876/1360/145 +f 875/1362/22 882/1371/152 874/1363/147 +f 873/1372/23 880/1373/153 872/1366/148 +f 879/1374/149 888/1375/154 887/1376/155 +f 886/1369/150 887/1376/155 893/1377/156 +f 885/1358/144 891/1378/157 884/1370/151 +f 883/1379/146 889/1380/158 882/1381/152 +f 886/1369/150 892/1382/28 885/1358/144 +f 884/1370/151 890/1383/159 883/1379/146 +f 893/1377/156 899/1384/160 892/1382/28 +f 890/1383/159 898/1385/161 897/1386/162 +f 888/1375/154 894/1387/164 887/1376/155 +f 887/1376/155 900/1388/165 893/1377/156 +f 891/1378/157 899/1384/160 898/1385/161 +f 889/1380/158 897/1386/162 896/1389/166 +f 882/1381/152 889/1380/158 881/1390/34 +f 889/1380/158 896/1389/166 881/1390/34 +f 880/1391/153 881/1392/34 888/1375/154 +f 888/1375/154 881/1392/34 895/1393/163 +f 908/1394/147 915/1395/167 907/1396/23 +f 906/1397/148 913/1398/168 905/1399/24 +f 904/1400/143 911/1401/31 903/1402/21 +f 902/1403/145 909/1404/169 901/1405/22 +f 901/1405/22 916/1406/170 908/1394/147 +f 907/1396/23 914/1407/171 906/1397/148 +f 905/1399/24 912/1408/172 904/1400/143 +f 903/1409/21 910/1410/173 902/1403/145 +f 910/1411/173 917/1412/174 909/1413/169 +f 909/1413/169 923/1414/175 916/1406/170 +f 914/1407/171 922/1415/37 921/1416/176 +f 912/1417/172 920/1418/177 919/1419/178 +f 916/1406/170 922/1415/37 915/1395/167 +f 913/1420/168 921/1416/176 920/1418/177 +f 923/1414/175 929/1421/179 922/1415/37 +f 920/1418/177 928/1422/180 927/1423/181 +f 918/1424/186 924/1425/183 917/1412/174 +f 917/1412/174 930/1426/184 923/1414/175 +f 921/1416/176 929/1421/179 928/1422/180 +f 920/1418/177 926/1427/185 919/1419/178 +f 912/1417/172 919/1419/178 911/1428/31 +f 919/1419/178 926/1427/185 911/1428/31 +f 910/1411/173 911/1429/31 918/1424/186 +f 918/1424/186 911/1429/31 925/1430/182 +f 930/1426/184 897/1431/162 898/1385/161 +f 899/1384/160 930/1426/184 898/1385/161 +f 928/1422/180 899/1384/160 900/1388/165 +f 927/1432/181 900/1388/165 894/1433/164 +f 926/1434/185 894/1433/164 895/1435/163 +f 881/1436/34 926/1434/185 895/1435/163 +f 896/1437/166 911/1438/31 881/1439/34 +f 924/1440/183 896/1437/166 897/1431/162 +f 938/1441/143 945/1442/144 937/1443/21 +f 936/1444/145 943/1445/146 935/1446/22 +f 934/1447/147 941/1448/34 933/1449/23 +f 932/1450/148 939/1451/149 931/1452/24 +f 931/1452/24 946/1453/150 938/1441/143 +f 937/1443/21 944/1454/151 936/1444/145 +f 935/1446/22 942/1455/152 934/1447/147 +f 933/1456/23 940/1457/153 932/1450/148 +f 939/1458/149 948/1459/154 947/1460/155 +f 946/1453/150 947/1460/155 953/1461/156 +f 944/1454/151 952/1462/28 951/1463/157 +f 943/1464/146 949/1465/158 942/1466/152 +f 946/1453/150 952/1462/28 945/1442/144 +f 944/1454/151 950/1467/159 943/1464/146 +f 953/1461/156 959/1468/160 952/1462/28 +f 950/1467/159 958/1469/161 957/1470/162 +f 947/1460/155 955/1471/163 954/1472/164 +f 947/1460/155 960/1473/165 953/1461/156 +f 951/1463/157 959/1468/160 958/1469/161 +f 950/1467/159 956/1474/166 949/1465/158 +f 942/1466/152 949/1465/158 941/1475/34 +f 949/1465/158 956/1474/166 941/1475/34 +f 940/1476/153 941/1477/34 948/1459/154 +f 948/1459/154 941/1477/34 955/1471/163 +f 968/1478/147 975/1479/167 967/1480/23 +f 966/1481/148 973/1482/168 965/1483/24 +f 964/1484/143 971/1485/31 963/1486/21 +f 962/1487/145 969/1488/169 961/1489/22 +f 961/1489/22 976/1490/170 968/1478/147 +f 967/1480/23 974/1491/171 966/1481/148 +f 965/1483/24 972/1492/172 964/1484/143 +f 963/1493/21 970/1494/173 962/1487/145 +f 970/1495/173 977/1496/174 969/1497/169 +f 969/1497/169 983/1498/175 976/1490/170 +f 974/1491/171 982/1499/37 981/1500/176 +f 972/1501/172 980/1502/177 979/1503/178 +f 976/1490/170 982/1499/37 975/1479/167 +f 973/1504/168 981/1500/176 980/1502/177 +f 983/1498/175 989/1505/179 982/1499/37 +f 980/1502/177 988/1506/180 987/1507/181 +f 977/1496/174 985/1508/182 984/1509/183 +f 977/1496/174 990/1510/184 983/1498/175 +f 981/1500/176 989/1505/179 988/1506/180 +f 980/1502/177 986/1511/185 979/1503/178 +f 972/1501/172 979/1503/178 971/1512/31 +f 979/1503/178 986/1511/185 971/1512/31 +f 970/1495/173 971/1513/31 978/1514/186 +f 978/1514/186 971/1513/31 985/1508/182 +f 990/1510/184 957/1515/162 958/1469/161 +f 959/1468/160 990/1510/184 958/1469/161 +f 988/1506/180 959/1468/160 960/1473/165 +f 987/1516/181 960/1473/165 954/1517/164 +f 986/1518/185 954/1517/164 955/1519/163 +f 971/1520/31 955/1519/163 941/1521/34 +f 941/1522/34 985/1523/182 971/1524/31 +f 984/1525/183 956/1526/166 957/1515/162 +f 998/1527/145 1005/1528/187 997/1529/21 +f 996/1530/143 1003/1531/188 995/1532/24 +f 994/1533/148 1001/1534/37 993/1535/23 +f 992/1536/147 999/1537/189 991/1538/22 +f 991/1538/22 1006/1539/190 998/1527/145 +f 997/1529/21 1004/1540/191 996/1530/143 +f 995/1532/24 1002/1541/192 994/1533/148 +f 993/1542/23 1000/1543/193 992/1536/147 +f 999/1544/189 1008/1545/194 1007/1546/195 +f 1006/1539/190 1007/1546/195 1013/1547/196 +f 1004/1540/191 1012/1548/31 1011/1549/197 +f 1003/1550/188 1009/1551/198 1002/1552/192 +f 1006/1539/190 1012/1548/31 1005/1528/187 +f 1004/1540/191 1010/1553/199 1003/1550/188 +f 1013/1547/196 1019/1554/200 1012/1548/31 +f 1010/1553/199 1018/1555/201 1017/1556/202 +f 1008/1545/194 1014/1557/203 1007/1546/195 +f 1007/1546/195 1020/1558/204 1013/1547/196 +f 1011/1549/197 1019/1554/200 1018/1555/201 +f 1009/1551/198 1017/1556/202 1016/1559/205 +f 1002/1552/192 1009/1551/198 1001/1560/37 +f 1009/1551/198 1016/1559/205 1001/1560/37 +f 1000/1561/193 1001/1562/37 1008/1545/194 +f 1008/1545/194 1001/1562/37 1015/1563/206 +f 1028/1564/148 1035/1565/207 1027/1566/23 +f 1026/1567/147 1033/1568/208 1025/1569/22 +f 1023/1570/21 1032/1571/209 1031/1572/28 +f 1022/1573/143 1029/1574/210 1021/1575/24 +f 1021/1575/24 1036/1576/211 1028/1564/148 +f 1027/1566/23 1034/1577/212 1026/1567/147 +f 1025/1569/22 1032/1571/209 1024/1578/145 +f 1023/1579/21 1030/1580/213 1022/1573/143 +f 1030/1581/213 1037/1582/214 1029/1583/210 +f 1029/1583/210 1043/1584/215 1036/1576/211 +f 1034/1577/212 1042/1585/34 1041/1586/216 +f 1032/1587/209 1040/1588/217 1039/1589/218 +f 1036/1576/211 1042/1585/34 1035/1565/207 +f 1033/1590/208 1041/1586/216 1040/1588/217 +f 1043/1584/215 1049/1591/219 1042/1585/34 +f 1040/1588/217 1048/1592/220 1047/1593/221 +f 1038/1594/222 1044/1595/223 1037/1582/214 +f 1037/1582/214 1050/1596/224 1043/1584/215 +f 1041/1586/216 1049/1591/219 1048/1592/220 +f 1039/1589/218 1047/1593/221 1046/1597/225 +f 1032/1587/209 1039/1589/218 1031/1598/28 +f 1039/1589/218 1046/1597/225 1031/1598/28 +f 1030/1581/213 1031/1599/28 1038/1594/222 +f 1038/1594/222 1031/1599/28 1045/1600/226 +f 1050/1596/224 1017/1601/202 1018/1555/201 +f 1049/1591/219 1018/1555/201 1019/1554/200 +f 1048/1592/220 1019/1554/200 1020/1558/204 +f 1047/1602/221 1020/1558/204 1014/1603/203 +f 1046/1604/225 1014/1603/203 1015/1605/206 +f 1001/1606/37 1046/1604/225 1015/1605/206 +f 1016/1607/205 1031/1608/28 1001/1609/37 +f 1044/1610/223 1016/1607/205 1017/1601/202 +f 1058/1611/145 1065/1612/187 1057/1613/21 +f 1056/1614/143 1063/1615/188 1055/1616/24 +f 1054/1617/148 1061/1618/37 1053/1619/23 +f 1052/1620/147 1059/1621/189 1051/1622/22 +f 1051/1622/22 1066/1623/190 1058/1611/145 +f 1057/1613/21 1064/1624/191 1056/1614/143 +f 1055/1616/24 1062/1625/192 1054/1617/148 +f 1053/1626/23 1060/1627/193 1052/1620/147 +f 1059/1628/189 1068/1629/194 1067/1630/195 +f 1066/1623/190 1067/1630/195 1073/1631/196 +f 1064/1624/191 1072/1632/31 1071/1633/197 +f 1063/1634/188 1069/1635/198 1062/1636/192 +f 1066/1623/190 1072/1632/31 1065/1612/187 +f 1064/1624/191 1070/1637/199 1063/1634/188 +f 1073/1631/196 1079/1638/200 1072/1632/31 +f 1071/1633/197 1077/1639/202 1070/1637/199 +f 1068/1629/194 1074/1640/203 1067/1630/195 +f 1067/1630/195 1080/1641/204 1073/1631/196 +f 1071/1633/197 1079/1638/200 1078/1642/201 +f 1069/1635/198 1077/1639/202 1076/1643/205 +f 1062/1636/192 1069/1635/198 1061/1644/37 +f 1069/1635/198 1076/1643/205 1061/1644/37 +f 1060/1645/193 1061/1646/37 1068/1629/194 +f 1068/1629/194 1061/1646/37 1075/1647/206 +f 1088/1648/148 1095/1649/207 1087/1650/23 +f 1086/1651/147 1093/1652/208 1085/1653/22 +f 1084/1654/145 1091/1655/28 1083/1656/21 +f 1082/1657/143 1089/1658/210 1081/1659/24 +f 1081/1659/24 1096/1660/211 1088/1648/148 +f 1087/1650/23 1094/1661/212 1086/1651/147 +f 1085/1653/22 1092/1662/209 1084/1654/145 +f 1083/1663/21 1090/1664/213 1082/1657/143 +f 1090/1665/213 1097/1666/214 1089/1667/210 +f 1089/1667/210 1103/1668/215 1096/1660/211 +f 1094/1661/212 1102/1669/34 1101/1670/216 +f 1092/1671/209 1100/1672/217 1099/1673/218 +f 1096/1660/211 1102/1669/34 1095/1649/207 +f 1093/1674/208 1101/1670/216 1100/1672/217 +f 1103/1668/215 1109/1675/219 1102/1669/34 +f 1100/1672/217 1108/1676/220 1107/1677/221 +f 1098/1678/222 1104/1679/223 1097/1666/214 +f 1103/1668/215 1104/1679/223 1110/1680/224 +f 1101/1670/216 1109/1675/219 1108/1676/220 +f 1100/1672/217 1106/1681/225 1099/1673/218 +f 1092/1671/209 1099/1673/218 1091/1682/28 +f 1099/1673/218 1106/1681/225 1091/1682/28 +f 1090/1665/213 1091/1683/28 1098/1678/222 +f 1098/1678/222 1091/1683/28 1105/1684/226 +f 1110/1680/224 1077/1685/202 1078/1642/201 +f 1079/1638/200 1110/1680/224 1078/1642/201 +f 1108/1676/220 1079/1638/200 1080/1641/204 +f 1107/1686/221 1080/1641/204 1074/1687/203 +f 1106/1688/225 1074/1687/203 1075/1689/206 +f 1061/1690/37 1106/1688/225 1075/1689/206 +f 1061/1691/37 1105/1692/226 1091/1693/28 +f 1104/1694/223 1076/1695/205 1077/1685/202 +f 1118/1696/145 1125/1697/187 1117/1698/21 +f 1116/1699/143 1123/1700/188 1115/1701/24 +f 1114/1702/148 1121/1703/37 1113/1704/23 +f 1112/1705/147 1119/1706/189 1111/1707/22 +f 1111/1707/22 1126/1708/190 1118/1696/145 +f 1117/1698/21 1124/1709/191 1116/1699/143 +f 1115/1701/24 1122/1710/192 1114/1702/148 +f 1113/1711/23 1120/1712/193 1112/1705/147 +f 1119/1713/189 1128/1714/194 1127/1715/195 +f 1126/1708/190 1127/1715/195 1133/1716/196 +f 1124/1709/191 1132/1717/31 1131/1718/197 +f 1123/1719/188 1129/1720/198 1122/1721/192 +f 1126/1708/190 1132/1717/31 1125/1697/187 +f 1124/1709/191 1130/1722/199 1123/1719/188 +f 1133/1716/196 1139/1723/200 1132/1717/31 +f 1131/1718/197 1137/1724/202 1130/1722/199 +f 1128/1714/194 1134/1725/203 1127/1715/195 +f 1127/1715/195 1140/1726/204 1133/1716/196 +f 1131/1718/197 1139/1723/200 1138/1727/201 +f 1129/1720/198 1137/1724/202 1136/1728/205 +f 1122/1721/192 1129/1720/198 1121/1729/37 +f 1129/1720/198 1136/1728/205 1121/1729/37 +f 1120/1730/193 1121/1731/37 1128/1714/194 +f 1128/1714/194 1121/1731/37 1135/1732/206 +f 1148/1733/148 1155/1734/207 1147/1735/23 +f 1146/1736/147 1153/1737/208 1145/1738/22 +f 1144/1739/145 1151/1740/28 1143/1741/21 +f 1142/1742/143 1149/1743/210 1141/1744/24 +f 1141/1744/24 1156/1745/211 1148/1733/148 +f 1147/1735/23 1154/1746/212 1146/1736/147 +f 1145/1738/22 1152/1747/209 1144/1739/145 +f 1143/1748/21 1150/1749/213 1142/1742/143 +f 1150/1750/213 1157/1751/214 1149/1752/210 +f 1149/1752/210 1163/1753/215 1156/1745/211 +f 1154/1746/212 1162/1754/34 1161/1755/216 +f 1152/1756/209 1160/1757/217 1159/1758/218 +f 1156/1745/211 1162/1754/34 1155/1734/207 +f 1153/1759/208 1161/1755/216 1160/1757/217 +f 1163/1753/215 1169/1760/219 1162/1754/34 +f 1160/1757/217 1168/1761/220 1167/1762/221 +f 1158/1763/222 1164/1764/223 1157/1751/214 +f 1157/1751/214 1170/1765/224 1163/1753/215 +f 1161/1755/216 1169/1760/219 1168/1761/220 +f 1159/1758/218 1167/1762/221 1166/1766/225 +f 1152/1756/209 1159/1758/218 1151/1767/28 +f 1159/1758/218 1166/1766/225 1151/1767/28 +f 1150/1750/213 1151/1768/28 1158/1763/222 +f 1158/1763/222 1151/1768/28 1165/1769/226 +f 1170/1765/224 1137/1770/202 1138/1727/201 +f 1169/1760/219 1138/1727/201 1139/1723/200 +f 1168/1761/220 1139/1723/200 1140/1726/204 +f 1167/1771/221 1140/1726/204 1134/1772/203 +f 1166/1773/225 1134/1772/203 1135/1774/206 +f 1151/1775/28 1135/1774/206 1121/1776/37 +f 1121/1777/37 1165/1778/226 1151/1779/28 +f 1164/1780/223 1136/1781/205 1137/1770/202 +f 1178/1782/145 1185/1783/187 1177/1784/21 +f 1176/1785/143 1183/1786/188 1175/1787/24 +f 1174/1788/148 1181/1789/37 1173/1790/23 +f 1172/1791/147 1179/1792/189 1171/1793/22 +f 1171/1793/22 1186/1794/190 1178/1782/145 +f 1177/1784/21 1184/1795/191 1176/1785/143 +f 1175/1787/24 1182/1796/192 1174/1788/148 +f 1173/1797/23 1180/1798/193 1172/1791/147 +f 1179/1799/189 1188/1800/194 1187/1801/195 +f 1186/1794/190 1187/1801/195 1193/1802/196 +f 1184/1795/191 1192/1803/31 1191/1804/197 +f 1183/1805/188 1189/1806/198 1182/1807/192 +f 1186/1794/190 1192/1803/31 1185/1783/187 +f 1184/1795/191 1190/1808/199 1183/1805/188 +f 1193/1802/196 1199/1809/200 1192/1803/31 +f 1190/1808/199 1198/1810/201 1197/1811/202 +f 1188/1800/194 1194/1812/203 1187/1801/195 +f 1187/1801/195 1200/1813/204 1193/1802/196 +f 1191/1804/197 1199/1809/200 1198/1810/201 +f 1189/1806/198 1197/1811/202 1196/1814/205 +f 1182/1807/192 1189/1806/198 1181/1815/37 +f 1189/1806/198 1196/1814/205 1181/1815/37 +f 1180/1816/193 1181/1817/37 1188/1800/194 +f 1188/1800/194 1181/1817/37 1195/1818/206 +f 1208/1819/148 1215/1820/207 1207/1821/23 +f 1206/1822/147 1213/1823/208 1205/1824/22 +f 1203/1825/21 1212/1826/209 1211/1827/28 +f 1202/1828/143 1209/1829/210 1201/1830/24 +f 1201/1830/24 1216/1831/211 1208/1819/148 +f 1207/1821/23 1214/1832/212 1206/1822/147 +f 1204/1833/145 1213/1823/208 1212/1826/209 +f 1203/1834/21 1210/1835/213 1202/1828/143 +f 1210/1836/213 1217/1837/214 1209/1838/210 +f 1209/1838/210 1223/1839/215 1216/1831/211 +f 1214/1832/212 1222/1840/34 1221/1841/216 +f 1212/1842/209 1220/1843/217 1219/1844/218 +f 1216/1831/211 1222/1840/34 1215/1820/207 +f 1213/1845/208 1221/1841/216 1220/1843/217 +f 1223/1839/215 1229/1846/219 1222/1840/34 +f 1220/1843/217 1228/1847/220 1227/1848/221 +f 1217/1837/214 1225/1849/226 1224/1850/223 +f 1217/1837/214 1230/1851/224 1223/1839/215 +f 1221/1841/216 1229/1846/219 1228/1847/220 +f 1220/1843/217 1226/1852/225 1219/1844/218 +f 1212/1842/209 1219/1844/218 1211/1853/28 +f 1219/1844/218 1226/1852/225 1211/1853/28 +f 1210/1836/213 1211/1854/28 1218/1855/222 +f 1218/1855/222 1211/1854/28 1225/1849/226 +f 1230/1851/224 1197/1856/202 1198/1810/201 +f 1199/1809/200 1230/1851/224 1198/1810/201 +f 1228/1847/220 1199/1809/200 1200/1813/204 +f 1227/1857/221 1200/1813/204 1194/1858/203 +f 1226/1859/225 1194/1858/203 1195/1860/206 +f 1181/1861/37 1226/1859/225 1195/1860/206 +f 1196/1862/205 1211/1863/28 1181/1864/37 +f 1224/1865/223 1196/1862/205 1197/1856/202 +f 1238/1866/145 1245/1867/187 1237/1868/21 +f 1236/1869/143 1243/1870/188 1235/1871/24 +f 1234/1872/148 1241/1873/37 1233/1874/23 +f 1232/1875/147 1239/1876/189 1231/1877/22 +f 1231/1877/22 1246/1878/190 1238/1866/145 +f 1237/1868/21 1244/1879/191 1236/1869/143 +f 1235/1871/24 1242/1880/192 1234/1872/148 +f 1233/1881/23 1240/1882/193 1232/1875/147 +f 1239/1883/189 1248/1884/194 1247/1885/195 +f 1246/1878/190 1247/1885/195 1253/1886/196 +f 1244/1879/191 1252/1887/31 1251/1888/197 +f 1243/1889/188 1249/1890/198 1242/1891/192 +f 1246/1878/190 1252/1887/31 1245/1867/187 +f 1244/1879/191 1250/1892/199 1243/1889/188 +f 1253/1886/196 1259/1893/200 1252/1887/31 +f 1250/1892/199 1258/1894/201 1257/1895/202 +f 1248/1884/194 1254/1896/203 1247/1885/195 +f 1247/1885/195 1260/1897/204 1253/1886/196 +f 1251/1888/197 1259/1893/200 1258/1894/201 +f 1249/1890/198 1257/1895/202 1256/1898/205 +f 1242/1891/192 1249/1890/198 1241/1899/37 +f 1249/1890/198 1256/1898/205 1241/1899/37 +f 1240/1900/193 1241/1901/37 1248/1884/194 +f 1248/1884/194 1241/1901/37 1255/1902/206 +f 1268/1903/148 1275/1904/207 1267/1905/23 +f 1266/1906/147 1273/1907/208 1265/1908/22 +f 1264/1909/145 1271/1910/28 1263/1911/21 +f 1262/1912/143 1269/1913/210 1261/1914/24 +f 1261/1914/24 1276/1915/211 1268/1903/148 +f 1267/1905/23 1274/1916/212 1266/1906/147 +f 1265/1908/22 1272/1917/209 1264/1909/145 +f 1263/1918/21 1270/1919/213 1262/1912/143 +f 1270/1920/213 1277/1921/214 1269/1922/210 +f 1269/1922/210 1283/1923/215 1276/1915/211 +f 1274/1916/212 1282/1924/34 1281/1925/216 +f 1272/1926/209 1280/1927/217 1279/1928/218 +f 1276/1915/211 1282/1924/34 1275/1904/207 +f 1273/1929/208 1281/1925/216 1280/1927/217 +f 1283/1923/215 1289/1930/219 1282/1924/34 +f 1280/1927/217 1288/1931/220 1287/1932/221 +f 1278/1933/222 1284/1934/223 1277/1921/214 +f 1277/1921/214 1290/1935/224 1283/1923/215 +f 1281/1925/216 1289/1930/219 1288/1931/220 +f 1280/1927/217 1286/1936/225 1279/1928/218 +f 1272/1926/209 1279/1928/218 1271/1937/28 +f 1279/1928/218 1286/1936/225 1271/1937/28 +f 1270/1920/213 1271/1938/28 1278/1933/222 +f 1278/1933/222 1271/1938/28 1285/1939/226 +f 1290/1935/224 1257/1940/202 1258/1894/201 +f 1289/1930/219 1258/1894/201 1259/1893/200 +f 1288/1931/220 1259/1893/200 1260/1897/204 +f 1287/1941/221 1260/1897/204 1254/1942/203 +f 1286/1943/225 1254/1942/203 1255/1944/206 +f 1241/1945/37 1286/1943/225 1255/1944/206 +f 1241/1946/37 1285/1947/226 1271/1948/28 +f 1284/1949/223 1256/1950/205 1257/1940/202 +f 210/339/25 212/338/27 211/423/27 +f 212/338/27 214/366/28 213/421/28 +f 214/366/28 216/364/29 215/419/29 +f 216/364/29 218/363/21 217/417/21 +f 218/363/21 220/362/30 219/416/30 +f 220/362/30 222/360/31 221/414/31 +f 222/360/31 224/358/32 223/412/32 +f 224/358/32 226/357/26 225/410/26 +f 226/355/26 228/353/33 227/407/33 +f 228/353/33 230/352/34 229/405/34 +f 230/352/34 232/349/35 231/403/35 +f 232/349/35 234/347/23 233/401/23 +f 234/347/23 236/345/36 235/431/36 +f 236/345/36 238/343/37 237/429/37 +f 238/343/37 240/340/38 239/426/38 +f 240/340/38 210/339/25 209/425/25 +f 244/337/39 243/873/49 250/865/40 +f 310/393/44 311/875/52 303/869/45 +f 354/866/42 249/868/43 250/865/40 +f 324/874/50 311/875/52 310/393/44 +f 325/870/47 317/872/48 311/875/52 +f 249/879/43 256/883/58 257/880/54 +f 332/881/55 324/874/50 318/397/51 +f 251/796/41 250/865/40 257/880/54 +f 332/881/55 338/876/53 325/878/47 +f 256/887/58 263/891/64 264/888/60 +f 345/889/61 332/881/55 331/399/56 +f 258/368/57 257/880/54 264/888/60 +f 345/889/61 346/884/59 338/886/53 +f 263/892/64 270/898/68 271/893/65 +f 265/367/63 264/888/60 271/893/65 +f 355/899/69 345/889/61 339/400/62 +f 271/893/65 270/902/68 277/900/71 +f 356/894/66 346/896/59 345/889/61 +f 272/365/67 271/893/65 278/901/72 +f 370/904/74 356/907/66 355/899/69 +f 246/905/75 355/899/69 352/370/70 +f 279/361/73 278/901/72 285/908/77 +f 252/373/27 357/369/25 359/442/25 +f 259/375/28 252/373/27 253/441/27 +f 278/901/72 277/909/71 284/911/79 +f 266/377/29 259/375/28 260/438/28 +f 285/908/77 292/915/82 293/356/80 +f 273/379/21 266/377/29 267/436/29 +f 280/381/30 273/379/21 274/433/21 +f 284/912/79 291/914/81 292/915/82 +f 287/384/31 280/381/30 281/463/30 +f 293/356/80 292/915/82 299/916/83 +f 294/385/32 287/384/31 288/461/31 +f 301/387/26 294/385/32 295/458/32 +f 291/917/81 298/919/85 299/916/83 +f 308/390/33 301/389/26 302/457/26 +f 299/920/83 306/924/88 307/351/86 +f 315/392/34 308/390/33 309/456/33 +f 322/394/35 315/392/34 316/455/34 +f 298/921/85 305/923/87 306/924/88 +f 306/924/88 313/928/91 314/350/89 +f 329/395/23 322/394/35 323/452/35 +f 336/396/36 329/395/23 330/450/23 +f 305/925/87 312/927/90 313/928/91 +f 343/398/37 336/396/36 337/448/36 +f 350/371/38 343/398/37 344/446/37 +f 357/369/25 350/371/38 351/444/38 +f 312/929/90 319/931/92 320/932/93 +f 314/350/89 313/928/91 320/932/93 +f 319/933/92 326/936/97 327/934/95 +f 320/932/93 327/934/95 328/346/96 +f 327/934/95 326/939/97 333/937/98 +f 327/934/95 334/938/99 335/344/100 +f 333/941/98 340/944/103 341/942/101 +f 334/938/99 341/942/101 342/341/102 +f 341/942/101 340/947/103 347/945/104 +f 341/942/101 348/946/105 349/342/106 +f 347/949/104 354/951/42 243/873/49 +f 348/946/105 243/873/49 244/337/39 +f 317/952/48 304/954/107 303/869/45 +f 297/391/46 303/869/45 290/955/108 +f 304/956/107 296/958/110 290/955/108 +f 289/388/109 290/955/108 282/959/111 +f 290/955/108 296/960/110 283/962/113 +f 282/963/111 269/967/116 268/383/114 +f 282/963/111 283/964/113 275/966/115 +f 269/967/116 261/971/119 255/382/117 +f 269/967/116 275/968/115 262/970/118 +f 261/971/119 262/972/118 254/974/120 +f 261/971/119 248/975/121 247/380/122 +f 254/976/120 245/979/125 242/977/123 +f 248/975/121 242/977/123 241/378/124 +f 245/980/125 360/983/128 361/981/126 +f 242/977/123 361/981/126 362/376/127 +f 361/981/126 360/986/128 363/984/129 +f 361/981/126 364/985/130 365/374/131 +f 363/988/129 366/991/134 367/989/132 +f 364/985/130 367/989/132 368/372/133 +f 367/989/132 366/993/134 370/992/74 +f 367/989/132 246/905/75 358/798/76 +f 384/430/36 400/447/36 399/449/23 +f 377/413/31 393/464/31 392/465/30 +f 385/428/37 401/445/37 400/447/36 +f 378/411/32 394/462/32 393/464/31 +f 386/427/38 402/443/38 401/445/37 +f 379/800/26 395/459/26 394/462/32 +f 372/801/27 388/439/27 387/440/25 +f 371/424/25 387/440/25 402/443/38 +f 380/406/33 396/454/33 395/802/26 +f 373/422/28 389/437/28 388/439/27 +f 381/404/34 397/453/34 396/454/33 +f 374/420/29 390/434/29 389/437/28 +f 382/402/35 398/451/35 397/453/34 +f 375/418/21 391/435/21 390/434/29 +f 383/432/23 399/449/23 398/451/35 +f 376/415/30 392/465/30 391/435/21 +f 420/995/26 444/489/26 443/493/135 +f 434/997/136 458/486/136 448/485/22 +f 413/999/137 437/808/137 435/479/138 +f 427/1001/139 451/502/139 452/500/140 +f 421/1003/139 445/810/139 444/489/26 +f 414/1004/25 438/476/25 437/478/137 +f 428/1002/140 452/500/140 453/812/24 +f 422/1007/140 446/484/140 445/488/139 +f 415/1009/141 439/474/141 438/476/25 +f 429/1010/24 453/497/24 454/496/138 +f 411/1012/24 436/809/24 446/484/140 +f 416/1013/136 440/501/136 439/503/141 +f 430/1011/138 454/496/138 455/495/137 +f 423/1016/22 448/482/22 447/481/142 +f 417/1018/22 441/499/22 440/501/136 +f 431/1019/137 455/492/137 456/491/25 +f 424/1017/142 447/481/142 449/480/135 +f 418/1022/142 442/494/142 441/498/22 +f 432/1020/25 456/491/25 457/490/141 +f 425/1025/135 449/477/135 450/475/26 +f 419/1027/135 443/811/135 442/494/142 +f 433/1028/141 457/487/141 458/486/136 +f 412/1000/138 435/479/138 436/483/24 +f 426/1026/26 450/475/26 451/807/139 +f 572/1031/26 596/643/26 595/646/139 +f 586/1033/138 610/640/138 600/639/24 +f 565/1035/141 589/838/141 587/633/136 +f 579/1037/135 603/656/135 604/655/142 +f 573/1039/135 597/840/135 596/643/26 +f 566/1040/25 590/630/25 589/632/141 +f 580/1038/142 604/655/142 605/654/22 +f 574/1043/142 598/638/142 597/641/135 +f 567/1045/137 591/628/137 590/630/25 +f 581/1046/22 605/651/22 606/649/136 +f 563/1048/22 588/839/22 598/638/142 +f 568/1049/138 592/653/138 591/657/137 +f 582/1047/136 606/649/136 607/841/141 +f 575/1052/24 600/637/24 599/635/140 +f 569/1054/24 593/842/24 592/653/138 +f 583/1055/141 607/647/141 608/645/25 +f 576/1053/140 599/635/140 601/634/139 +f 570/1058/140 594/650/140 593/652/24 +f 584/1056/25 608/645/25 609/644/137 +f 577/1061/139 601/631/139 602/629/26 +f 571/1063/139 595/648/139 594/650/140 +f 585/1064/137 609/642/137 610/640/138 +f 564/1036/136 587/633/136 588/636/22 +f 578/1062/26 602/629/26 603/837/135 +f 650/1067/143 658/1079/150 657/1068/144 +f 648/1070/145 656/1080/151 655/1071/146 +f 646/1073/147 654/1081/152 653/1074/34 +f 644/1076/148 652/1083/153 651/1077/149 +f 643/1078/24 651/1077/149 658/1079/150 +f 649/1069/21 657/1068/144 656/1080/151 +f 647/1072/22 655/1071/146 654/1081/152 +f 645/1082/23 653/1951/34 652/1083/153 +f 651/1084/149 652/1102/153 660/1085/154 +f 658/1079/150 651/1084/149 659/1086/155 +f 656/1080/151 657/1068/144 664/1088/28 +f 655/1090/146 662/1093/159 661/1091/158 +f 658/1079/150 665/1087/156 664/1088/28 +f 656/1080/151 663/1089/157 662/1093/159 +f 665/1087/156 672/1099/165 671/1094/160 +f 662/1093/159 663/1089/157 670/1095/161 +f 659/1086/155 660/1085/154 667/1097/163 +f 659/1086/155 666/1098/164 672/1099/165 +f 664/1088/28 671/1094/160 670/1095/161 +f 662/1093/159 669/1096/162 668/1100/166 +f 680/1104/147 688/1116/170 687/1105/167 +f 678/1107/148 686/1117/171 685/1108/168 +f 676/1110/143 684/1118/172 683/1111/31 +f 674/1113/145 682/1120/173 681/1114/169 +f 673/1115/22 681/1114/169 688/1116/170 +f 679/1106/23 687/1105/167 686/1117/171 +f 677/1109/24 685/1108/168 684/1118/172 +f 675/1119/21 683/1952/31 682/1120/173 +f 682/1121/173 690/1140/186 689/1122/174 +f 688/1116/170 681/1123/169 689/1122/174 +f 686/1117/171 687/1105/167 694/1125/37 +f 684/1127/172 685/1130/168 692/1128/177 +f 688/1116/170 695/1124/175 694/1125/37 +f 685/1130/168 686/1117/171 693/1126/176 +f 695/1124/175 702/1136/184 701/1131/179 +f 692/1128/177 693/1126/176 700/1132/180 +f 689/1122/174 690/1140/186 697/1134/182 +f 689/1122/174 696/1135/183 702/1136/184 +f 693/1126/176 694/1125/37 701/1131/179 +f 691/1129/178 692/1128/177 699/1133/181 +f 702/1136/184 696/1150/183 669/1141/162 +f 671/1094/160 701/1131/179 702/1136/184 +f 700/1132/180 701/1131/179 671/1094/160 +f 699/1142/181 700/1132/180 672/1099/165 +f 698/1144/185 699/1142/181 666/1143/164 +f 653/1146/34 683/1953/31 698/1144/185 +f 653/1147/34 668/1151/166 697/1148/182 +f 696/1150/183 697/1148/182 668/1151/166 +f 712/1152/37 719/1164/37 720/1153/25 +f 718/1155/28 711/1154/25 720/1153/25 +f 716/1157/31 717/1165/21 725/1158/21 +f 715/1160/26 723/1954/26 722/1161/34 +f 713/1163/23 721/1168/23 719/1164/37 +f 717/1165/21 718/1155/28 726/1156/28 +f 716/1157/31 724/1159/31 723/1166/26 +f 714/1162/34 722/1161/34 721/1168/23 +f 728/1169/28 735/1181/28 736/1170/25 +f 727/1171/25 736/1170/25 742/1172/37 +f 732/1174/34 733/1182/23 741/1175/23 +f 731/1177/26 739/1955/26 738/1178/31 +f 729/1180/21 737/1185/21 735/1181/28 +f 733/1182/23 734/1173/37 742/1172/37 +f 732/1174/34 740/1176/34 739/1183/26 +f 730/1179/31 738/1178/31 737/1185/21 +f 758/1186/143 766/1198/150 765/1187/144 +f 756/1189/145 764/1199/151 763/1190/146 +f 754/1192/147 762/1200/152 761/1193/34 +f 752/1195/148 760/1202/153 759/1196/149 +f 751/1197/24 759/1196/149 766/1198/150 +f 757/1188/21 765/1187/144 764/1199/151 +f 755/1191/22 763/1190/146 762/1200/152 +f 753/1201/23 761/1956/34 760/1202/153 +f 759/1203/149 760/1221/153 768/1204/154 +f 766/1198/150 759/1203/149 767/1205/155 +f 764/1199/151 765/1187/144 772/1207/28 +f 763/1209/146 770/1212/159 769/1210/158 +f 766/1198/150 773/1206/156 772/1207/28 +f 764/1199/151 771/1208/157 770/1212/159 +f 773/1206/156 780/1218/165 779/1213/160 +f 770/1212/159 771/1208/157 778/1214/161 +f 767/1205/155 768/1204/154 775/1216/163 +f 767/1205/155 774/1217/164 780/1218/165 +f 771/1208/157 772/1207/28 779/1213/160 +f 770/1212/159 777/1215/162 776/1219/166 +f 788/1223/147 796/1235/170 795/1224/167 +f 786/1226/148 794/1236/171 793/1227/168 +f 784/1229/143 792/1237/172 791/1230/31 +f 782/1232/145 790/1239/173 789/1233/169 +f 781/1234/22 789/1233/169 796/1235/170 +f 787/1225/23 795/1224/167 794/1236/171 +f 785/1228/24 793/1227/168 792/1237/172 +f 783/1238/21 791/1957/31 790/1239/173 +f 790/1240/173 798/1259/186 797/1241/174 +f 789/1242/169 797/1241/174 803/1243/175 +f 794/1236/171 795/1224/167 802/1244/37 +f 792/1246/172 793/1249/168 800/1247/177 +f 796/1235/170 803/1243/175 802/1244/37 +f 793/1249/168 794/1236/171 801/1245/176 +f 803/1243/175 810/1255/184 809/1250/179 +f 800/1247/177 801/1245/176 808/1251/180 +f 797/1241/174 798/1259/186 805/1253/182 +f 797/1241/174 804/1254/183 810/1255/184 +f 801/1245/176 802/1244/37 809/1250/179 +f 800/1247/177 807/1252/181 806/1256/185 +f 810/1255/184 804/1269/183 777/1260/162 +f 779/1213/160 809/1250/179 810/1255/184 +f 808/1251/180 809/1250/179 779/1213/160 +f 807/1261/181 808/1251/180 780/1218/165 +f 806/1263/185 807/1261/181 774/1262/164 +f 761/1265/34 791/1958/31 806/1263/185 +f 761/1266/34 776/1270/166 805/1267/182 +f 804/1269/183 805/1267/182 776/1270/166 +f 818/1271/143 826/1283/150 825/1272/144 +f 816/1274/145 824/1284/151 823/1275/146 +f 814/1277/147 822/1285/152 821/1278/34 +f 812/1280/148 820/1287/153 819/1281/149 +f 811/1282/24 819/1281/149 826/1283/150 +f 817/1273/21 825/1272/144 824/1284/151 +f 815/1276/22 823/1275/146 822/1285/152 +f 813/1286/23 821/1959/34 820/1287/153 +f 819/1288/149 820/1305/153 828/1289/154 +f 826/1283/150 819/1288/149 827/1290/155 +f 824/1284/151 825/1272/144 832/1292/28 +f 823/1294/146 830/1297/159 829/1295/158 +f 825/1272/144 826/1283/150 833/1291/156 +f 824/1284/151 831/1293/157 830/1297/159 +f 833/1291/156 840/1302/165 839/1298/160 +f 830/1297/159 831/1293/157 838/1299/161 +f 828/1289/154 835/1307/163 834/1301/164 +f 827/1290/155 834/1301/164 840/1302/165 +f 831/1293/157 832/1292/28 839/1298/160 +f 829/1295/158 830/1297/159 837/1300/162 +f 848/1308/147 856/1320/170 855/1309/167 +f 846/1311/148 854/1321/171 853/1312/168 +f 844/1314/143 852/1322/172 851/1315/31 +f 842/1317/145 850/1324/173 849/1318/169 +f 841/1319/22 849/1318/169 856/1320/170 +f 847/1310/23 855/1309/167 854/1321/171 +f 845/1313/24 853/1312/168 852/1322/172 +f 843/1323/21 851/1960/31 850/1324/173 +f 850/1325/173 858/1338/186 857/1326/174 +f 849/1327/169 857/1326/174 863/1328/175 +f 854/1321/171 855/1309/167 862/1329/37 +f 852/1331/172 853/1334/168 860/1332/177 +f 856/1320/170 863/1328/175 862/1329/37 +f 853/1334/168 854/1321/171 861/1330/176 +f 863/1328/175 870/1340/184 869/1335/179 +f 860/1332/177 861/1330/176 868/1336/180 +f 858/1338/186 865/1344/182 864/1339/183 +f 857/1326/174 864/1339/183 870/1340/184 +f 861/1330/176 862/1329/37 869/1335/179 +f 859/1333/178 860/1332/177 867/1337/181 +f 870/1340/184 864/1355/183 837/1345/162 +f 839/1298/160 869/1335/179 870/1340/184 +f 868/1336/180 869/1335/179 839/1298/160 +f 867/1346/181 868/1336/180 840/1302/165 +f 866/1348/185 867/1346/181 834/1347/164 +f 851/1350/31 866/1348/185 835/1349/163 +f 821/1352/34 836/1356/166 865/1353/182 +f 864/1355/183 865/1353/182 836/1356/166 +f 878/1357/143 886/1369/150 885/1358/144 +f 876/1360/145 884/1370/151 883/1361/146 +f 874/1363/147 882/1371/152 881/1364/34 +f 872/1366/148 880/1373/153 879/1367/149 +f 871/1368/24 879/1367/149 886/1369/150 +f 877/1359/21 885/1358/144 884/1370/151 +f 875/1362/22 883/1361/146 882/1371/152 +f 873/1372/23 881/1961/34 880/1373/153 +f 879/1374/149 880/1391/153 888/1375/154 +f 886/1369/150 879/1374/149 887/1376/155 +f 885/1358/144 892/1382/28 891/1378/157 +f 883/1379/146 890/1383/159 889/1380/158 +f 886/1369/150 893/1377/156 892/1382/28 +f 884/1370/151 891/1378/157 890/1383/159 +f 893/1377/156 900/1388/165 899/1384/160 +f 890/1383/159 891/1378/157 898/1385/161 +f 888/1375/154 895/1393/163 894/1387/164 +f 887/1376/155 894/1387/164 900/1388/165 +f 891/1378/157 892/1382/28 899/1384/160 +f 889/1380/158 890/1383/159 897/1386/162 +f 908/1394/147 916/1406/170 915/1395/167 +f 906/1397/148 914/1407/171 913/1398/168 +f 904/1400/143 912/1408/172 911/1401/31 +f 902/1403/145 910/1410/173 909/1404/169 +f 901/1405/22 909/1404/169 916/1406/170 +f 907/1396/23 915/1395/167 914/1407/171 +f 905/1399/24 913/1398/168 912/1408/172 +f 903/1409/21 911/1962/31 910/1410/173 +f 910/1411/173 918/1424/186 917/1412/174 +f 909/1413/169 917/1412/174 923/1414/175 +f 914/1407/171 915/1395/167 922/1415/37 +f 912/1417/172 913/1420/168 920/1418/177 +f 916/1406/170 923/1414/175 922/1415/37 +f 913/1420/168 914/1407/171 921/1416/176 +f 923/1414/175 930/1426/184 929/1421/179 +f 920/1418/177 921/1416/176 928/1422/180 +f 918/1424/186 925/1430/182 924/1425/183 +f 917/1412/174 924/1425/183 930/1426/184 +f 921/1416/176 922/1415/37 929/1421/179 +f 920/1418/177 927/1423/181 926/1427/185 +f 930/1426/184 924/1440/183 897/1431/162 +f 899/1384/160 929/1421/179 930/1426/184 +f 928/1422/180 929/1421/179 899/1384/160 +f 927/1432/181 928/1422/180 900/1388/165 +f 926/1434/185 927/1432/181 894/1433/164 +f 881/1436/34 911/1963/31 926/1434/185 +f 896/1437/166 925/1964/182 911/1438/31 +f 924/1440/183 925/1964/182 896/1437/166 +f 938/1441/143 946/1453/150 945/1442/144 +f 936/1444/145 944/1454/151 943/1445/146 +f 934/1447/147 942/1455/152 941/1448/34 +f 932/1450/148 940/1457/153 939/1451/149 +f 931/1452/24 939/1451/149 946/1453/150 +f 937/1443/21 945/1442/144 944/1454/151 +f 935/1446/22 943/1445/146 942/1455/152 +f 933/1456/23 941/1965/34 940/1457/153 +f 939/1458/149 940/1476/153 948/1459/154 +f 946/1453/150 939/1458/149 947/1460/155 +f 944/1454/151 945/1442/144 952/1462/28 +f 943/1464/146 950/1467/159 949/1465/158 +f 946/1453/150 953/1461/156 952/1462/28 +f 944/1454/151 951/1463/157 950/1467/159 +f 953/1461/156 960/1473/165 959/1468/160 +f 950/1467/159 951/1463/157 958/1469/161 +f 947/1460/155 948/1459/154 955/1471/163 +f 947/1460/155 954/1472/164 960/1473/165 +f 951/1463/157 952/1462/28 959/1468/160 +f 950/1467/159 957/1470/162 956/1474/166 +f 968/1478/147 976/1490/170 975/1479/167 +f 966/1481/148 974/1491/171 973/1482/168 +f 964/1484/143 972/1492/172 971/1485/31 +f 962/1487/145 970/1494/173 969/1488/169 +f 961/1489/22 969/1488/169 976/1490/170 +f 967/1480/23 975/1479/167 974/1491/171 +f 965/1483/24 973/1482/168 972/1492/172 +f 963/1493/21 971/1966/31 970/1494/173 +f 970/1495/173 978/1514/186 977/1496/174 +f 969/1497/169 977/1496/174 983/1498/175 +f 974/1491/171 975/1479/167 982/1499/37 +f 972/1501/172 973/1504/168 980/1502/177 +f 976/1490/170 983/1498/175 982/1499/37 +f 973/1504/168 974/1491/171 981/1500/176 +f 983/1498/175 990/1510/184 989/1505/179 +f 980/1502/177 981/1500/176 988/1506/180 +f 977/1496/174 978/1514/186 985/1508/182 +f 977/1496/174 984/1509/183 990/1510/184 +f 981/1500/176 982/1499/37 989/1505/179 +f 980/1502/177 987/1507/181 986/1511/185 +f 990/1510/184 984/1525/183 957/1515/162 +f 959/1468/160 989/1505/179 990/1510/184 +f 988/1506/180 989/1505/179 959/1468/160 +f 987/1516/181 988/1506/180 960/1473/165 +f 986/1518/185 987/1516/181 954/1517/164 +f 971/1520/31 986/1518/185 955/1519/163 +f 941/1522/34 956/1526/166 985/1523/182 +f 984/1525/183 985/1523/182 956/1526/166 +f 998/1527/145 1006/1539/190 1005/1528/187 +f 996/1530/143 1004/1540/191 1003/1531/188 +f 994/1533/148 1002/1541/192 1001/1534/37 +f 992/1536/147 1000/1543/193 999/1537/189 +f 991/1538/22 999/1537/189 1006/1539/190 +f 997/1529/21 1005/1528/187 1004/1540/191 +f 995/1532/24 1003/1531/188 1002/1541/192 +f 993/1542/23 1001/1967/37 1000/1543/193 +f 999/1544/189 1000/1561/193 1008/1545/194 +f 1006/1539/190 999/1544/189 1007/1546/195 +f 1004/1540/191 1005/1528/187 1012/1548/31 +f 1003/1550/188 1010/1553/199 1009/1551/198 +f 1006/1539/190 1013/1547/196 1012/1548/31 +f 1004/1540/191 1011/1549/197 1010/1553/199 +f 1013/1547/196 1020/1558/204 1019/1554/200 +f 1010/1553/199 1011/1549/197 1018/1555/201 +f 1008/1545/194 1015/1563/206 1014/1557/203 +f 1007/1546/195 1014/1557/203 1020/1558/204 +f 1011/1549/197 1012/1548/31 1019/1554/200 +f 1009/1551/198 1010/1553/199 1017/1556/202 +f 1028/1564/148 1036/1576/211 1035/1565/207 +f 1026/1567/147 1034/1577/212 1033/1568/208 +f 1023/1570/21 1024/1578/145 1032/1571/209 +f 1022/1573/143 1030/1580/213 1029/1574/210 +f 1021/1575/24 1029/1574/210 1036/1576/211 +f 1027/1566/23 1035/1565/207 1034/1577/212 +f 1025/1569/22 1033/1568/208 1032/1571/209 +f 1023/1579/21 1031/1968/28 1030/1580/213 +f 1030/1581/213 1038/1594/222 1037/1582/214 +f 1029/1583/210 1037/1582/214 1043/1584/215 +f 1034/1577/212 1035/1565/207 1042/1585/34 +f 1032/1587/209 1033/1590/208 1040/1588/217 +f 1036/1576/211 1043/1584/215 1042/1585/34 +f 1033/1590/208 1034/1577/212 1041/1586/216 +f 1043/1584/215 1050/1596/224 1049/1591/219 +f 1040/1588/217 1041/1586/216 1048/1592/220 +f 1038/1594/222 1045/1600/226 1044/1595/223 +f 1037/1582/214 1044/1595/223 1050/1596/224 +f 1041/1586/216 1042/1585/34 1049/1591/219 +f 1039/1589/218 1040/1588/217 1047/1593/221 +f 1050/1596/224 1044/1610/223 1017/1601/202 +f 1049/1591/219 1050/1596/224 1018/1555/201 +f 1048/1592/220 1049/1591/219 1019/1554/200 +f 1047/1602/221 1048/1592/220 1020/1558/204 +f 1046/1604/225 1047/1602/221 1014/1603/203 +f 1001/1606/37 1031/1969/28 1046/1604/225 +f 1016/1607/205 1045/1970/226 1031/1608/28 +f 1044/1610/223 1045/1970/226 1016/1607/205 +f 1058/1611/145 1066/1623/190 1065/1612/187 +f 1056/1614/143 1064/1624/191 1063/1615/188 +f 1054/1617/148 1062/1625/192 1061/1618/37 +f 1052/1620/147 1060/1627/193 1059/1621/189 +f 1051/1622/22 1059/1621/189 1066/1623/190 +f 1057/1613/21 1065/1612/187 1064/1624/191 +f 1055/1616/24 1063/1615/188 1062/1625/192 +f 1053/1626/23 1061/1971/37 1060/1627/193 +f 1059/1628/189 1060/1645/193 1068/1629/194 +f 1066/1623/190 1059/1628/189 1067/1630/195 +f 1064/1624/191 1065/1612/187 1072/1632/31 +f 1063/1634/188 1070/1637/199 1069/1635/198 +f 1066/1623/190 1073/1631/196 1072/1632/31 +f 1064/1624/191 1071/1633/197 1070/1637/199 +f 1073/1631/196 1080/1641/204 1079/1638/200 +f 1071/1633/197 1078/1642/201 1077/1639/202 +f 1068/1629/194 1075/1647/206 1074/1640/203 +f 1067/1630/195 1074/1640/203 1080/1641/204 +f 1071/1633/197 1072/1632/31 1079/1638/200 +f 1069/1635/198 1070/1637/199 1077/1639/202 +f 1088/1648/148 1096/1660/211 1095/1649/207 +f 1086/1651/147 1094/1661/212 1093/1652/208 +f 1084/1654/145 1092/1662/209 1091/1655/28 +f 1082/1657/143 1090/1664/213 1089/1658/210 +f 1081/1659/24 1089/1658/210 1096/1660/211 +f 1087/1650/23 1095/1649/207 1094/1661/212 +f 1085/1653/22 1093/1652/208 1092/1662/209 +f 1083/1663/21 1091/1972/28 1090/1664/213 +f 1090/1665/213 1098/1678/222 1097/1666/214 +f 1089/1667/210 1097/1666/214 1103/1668/215 +f 1094/1661/212 1095/1649/207 1102/1669/34 +f 1092/1671/209 1093/1674/208 1100/1672/217 +f 1096/1660/211 1103/1668/215 1102/1669/34 +f 1093/1674/208 1094/1661/212 1101/1670/216 +f 1103/1668/215 1110/1680/224 1109/1675/219 +f 1100/1672/217 1101/1670/216 1108/1676/220 +f 1098/1678/222 1105/1684/226 1104/1679/223 +f 1103/1668/215 1097/1666/214 1104/1679/223 +f 1101/1670/216 1102/1669/34 1109/1675/219 +f 1100/1672/217 1107/1677/221 1106/1681/225 +f 1110/1680/224 1104/1694/223 1077/1685/202 +f 1079/1638/200 1109/1675/219 1110/1680/224 +f 1108/1676/220 1109/1675/219 1079/1638/200 +f 1107/1686/221 1108/1676/220 1080/1641/204 +f 1106/1688/225 1107/1686/221 1074/1687/203 +f 1061/1690/37 1091/1973/28 1106/1688/225 +f 1061/1691/37 1076/1695/205 1105/1692/226 +f 1104/1694/223 1105/1692/226 1076/1695/205 +f 1118/1696/145 1126/1708/190 1125/1697/187 +f 1116/1699/143 1124/1709/191 1123/1700/188 +f 1114/1702/148 1122/1710/192 1121/1703/37 +f 1112/1705/147 1120/1712/193 1119/1706/189 +f 1111/1707/22 1119/1706/189 1126/1708/190 +f 1117/1698/21 1125/1697/187 1124/1709/191 +f 1115/1701/24 1123/1700/188 1122/1710/192 +f 1113/1711/23 1121/1974/37 1120/1712/193 +f 1119/1713/189 1120/1730/193 1128/1714/194 +f 1126/1708/190 1119/1713/189 1127/1715/195 +f 1124/1709/191 1125/1697/187 1132/1717/31 +f 1123/1719/188 1130/1722/199 1129/1720/198 +f 1126/1708/190 1133/1716/196 1132/1717/31 +f 1124/1709/191 1131/1718/197 1130/1722/199 +f 1133/1716/196 1140/1726/204 1139/1723/200 +f 1131/1718/197 1138/1727/201 1137/1724/202 +f 1128/1714/194 1135/1732/206 1134/1725/203 +f 1127/1715/195 1134/1725/203 1140/1726/204 +f 1131/1718/197 1132/1717/31 1139/1723/200 +f 1129/1720/198 1130/1722/199 1137/1724/202 +f 1148/1733/148 1156/1745/211 1155/1734/207 +f 1146/1736/147 1154/1746/212 1153/1737/208 +f 1144/1739/145 1152/1747/209 1151/1740/28 +f 1142/1742/143 1150/1749/213 1149/1743/210 +f 1141/1744/24 1149/1743/210 1156/1745/211 +f 1147/1735/23 1155/1734/207 1154/1746/212 +f 1145/1738/22 1153/1737/208 1152/1747/209 +f 1143/1748/21 1151/1975/28 1150/1749/213 +f 1150/1750/213 1158/1763/222 1157/1751/214 +f 1149/1752/210 1157/1751/214 1163/1753/215 +f 1154/1746/212 1155/1734/207 1162/1754/34 +f 1152/1756/209 1153/1759/208 1160/1757/217 +f 1156/1745/211 1163/1753/215 1162/1754/34 +f 1153/1759/208 1154/1746/212 1161/1755/216 +f 1163/1753/215 1170/1765/224 1169/1760/219 +f 1160/1757/217 1161/1755/216 1168/1761/220 +f 1158/1763/222 1165/1769/226 1164/1764/223 +f 1157/1751/214 1164/1764/223 1170/1765/224 +f 1161/1755/216 1162/1754/34 1169/1760/219 +f 1159/1758/218 1160/1757/217 1167/1762/221 +f 1170/1765/224 1164/1780/223 1137/1770/202 +f 1169/1760/219 1170/1765/224 1138/1727/201 +f 1168/1761/220 1169/1760/219 1139/1723/200 +f 1167/1771/221 1168/1761/220 1140/1726/204 +f 1166/1773/225 1167/1771/221 1134/1772/203 +f 1151/1775/28 1166/1773/225 1135/1774/206 +f 1121/1777/37 1136/1781/205 1165/1778/226 +f 1164/1780/223 1165/1778/226 1136/1781/205 +f 1178/1782/145 1186/1794/190 1185/1783/187 +f 1176/1785/143 1184/1795/191 1183/1786/188 +f 1174/1788/148 1182/1796/192 1181/1789/37 +f 1172/1791/147 1180/1798/193 1179/1792/189 +f 1171/1793/22 1179/1792/189 1186/1794/190 +f 1177/1784/21 1185/1783/187 1184/1795/191 +f 1175/1787/24 1183/1786/188 1182/1796/192 +f 1173/1797/23 1181/1976/37 1180/1798/193 +f 1179/1799/189 1180/1816/193 1188/1800/194 +f 1186/1794/190 1179/1799/189 1187/1801/195 +f 1184/1795/191 1185/1783/187 1192/1803/31 +f 1183/1805/188 1190/1808/199 1189/1806/198 +f 1186/1794/190 1193/1802/196 1192/1803/31 +f 1184/1795/191 1191/1804/197 1190/1808/199 +f 1193/1802/196 1200/1813/204 1199/1809/200 +f 1190/1808/199 1191/1804/197 1198/1810/201 +f 1188/1800/194 1195/1818/206 1194/1812/203 +f 1187/1801/195 1194/1812/203 1200/1813/204 +f 1191/1804/197 1192/1803/31 1199/1809/200 +f 1189/1806/198 1190/1808/199 1197/1811/202 +f 1208/1819/148 1216/1831/211 1215/1820/207 +f 1206/1822/147 1214/1832/212 1213/1823/208 +f 1203/1825/21 1204/1833/145 1212/1826/209 +f 1202/1828/143 1210/1835/213 1209/1829/210 +f 1201/1830/24 1209/1829/210 1216/1831/211 +f 1207/1821/23 1215/1820/207 1214/1832/212 +f 1204/1833/145 1205/1824/22 1213/1823/208 +f 1203/1834/21 1211/1977/28 1210/1835/213 +f 1210/1836/213 1218/1855/222 1217/1837/214 +f 1209/1838/210 1217/1837/214 1223/1839/215 +f 1214/1832/212 1215/1820/207 1222/1840/34 +f 1212/1842/209 1213/1845/208 1220/1843/217 +f 1216/1831/211 1223/1839/215 1222/1840/34 +f 1213/1845/208 1214/1832/212 1221/1841/216 +f 1223/1839/215 1230/1851/224 1229/1846/219 +f 1220/1843/217 1221/1841/216 1228/1847/220 +f 1217/1837/214 1218/1855/222 1225/1849/226 +f 1217/1837/214 1224/1850/223 1230/1851/224 +f 1221/1841/216 1222/1840/34 1229/1846/219 +f 1220/1843/217 1227/1848/221 1226/1852/225 +f 1230/1851/224 1224/1865/223 1197/1856/202 +f 1199/1809/200 1229/1846/219 1230/1851/224 +f 1228/1847/220 1229/1846/219 1199/1809/200 +f 1227/1857/221 1228/1847/220 1200/1813/204 +f 1226/1859/225 1227/1857/221 1194/1858/203 +f 1181/1861/37 1211/1978/28 1226/1859/225 +f 1196/1862/205 1225/1979/226 1211/1863/28 +f 1224/1865/223 1225/1979/226 1196/1862/205 +f 1238/1866/145 1246/1878/190 1245/1867/187 +f 1236/1869/143 1244/1879/191 1243/1870/188 +f 1234/1872/148 1242/1880/192 1241/1873/37 +f 1232/1875/147 1240/1882/193 1239/1876/189 +f 1231/1877/22 1239/1876/189 1246/1878/190 +f 1237/1868/21 1245/1867/187 1244/1879/191 +f 1235/1871/24 1243/1870/188 1242/1880/192 +f 1233/1881/23 1241/1980/37 1240/1882/193 +f 1239/1883/189 1240/1900/193 1248/1884/194 +f 1246/1878/190 1239/1883/189 1247/1885/195 +f 1244/1879/191 1245/1867/187 1252/1887/31 +f 1243/1889/188 1250/1892/199 1249/1890/198 +f 1246/1878/190 1253/1886/196 1252/1887/31 +f 1244/1879/191 1251/1888/197 1250/1892/199 +f 1253/1886/196 1260/1897/204 1259/1893/200 +f 1250/1892/199 1251/1888/197 1258/1894/201 +f 1248/1884/194 1255/1902/206 1254/1896/203 +f 1247/1885/195 1254/1896/203 1260/1897/204 +f 1251/1888/197 1252/1887/31 1259/1893/200 +f 1249/1890/198 1250/1892/199 1257/1895/202 +f 1268/1903/148 1276/1915/211 1275/1904/207 +f 1266/1906/147 1274/1916/212 1273/1907/208 +f 1264/1909/145 1272/1917/209 1271/1910/28 +f 1262/1912/143 1270/1919/213 1269/1913/210 +f 1261/1914/24 1269/1913/210 1276/1915/211 +f 1267/1905/23 1275/1904/207 1274/1916/212 +f 1265/1908/22 1273/1907/208 1272/1917/209 +f 1263/1918/21 1271/1981/28 1270/1919/213 +f 1270/1920/213 1278/1933/222 1277/1921/214 +f 1269/1922/210 1277/1921/214 1283/1923/215 +f 1274/1916/212 1275/1904/207 1282/1924/34 +f 1272/1926/209 1273/1929/208 1280/1927/217 +f 1276/1915/211 1283/1923/215 1282/1924/34 +f 1273/1929/208 1274/1916/212 1281/1925/216 +f 1283/1923/215 1290/1935/224 1289/1930/219 +f 1280/1927/217 1281/1925/216 1288/1931/220 +f 1278/1933/222 1285/1939/226 1284/1934/223 +f 1277/1921/214 1284/1934/223 1290/1935/224 +f 1281/1925/216 1282/1924/34 1289/1930/219 +f 1280/1927/217 1287/1932/221 1286/1936/225 +f 1290/1935/224 1284/1949/223 1257/1940/202 +f 1289/1930/219 1290/1935/224 1258/1894/201 +f 1288/1931/220 1289/1930/219 1259/1893/200 +f 1287/1941/221 1288/1931/220 1260/1897/204 +f 1286/1943/225 1287/1941/221 1254/1942/203 +f 1241/1945/37 1271/1982/28 1286/1943/225 +f 1241/1946/37 1256/1950/205 1285/1947/226 +f 1284/1949/223 1285/1947/226 1256/1950/205 diff --git a/src/main/resources/assets/hbm/models/machines/conveyor_press.obj b/src/main/resources/assets/hbm/models/machines/conveyor_press.obj new file mode 100644 index 000000000..0fca31982 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/conveyor_press.obj @@ -0,0 +1,1042 @@ +# Blender v2.79 (sub 0) OBJ File: 'conveyor_press.blend' +# www.blender.org +o Belt +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v 0.500000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +vt -0.000000 0.953125 +vt 1.000000 0.937500 +vt 1.000000 0.953125 +vt 1.000000 0.937500 +vt 0.000000 0.953125 +vt 0.000000 0.937500 +vt 0.000000 1.000000 +vt 1.000000 0.937500 +vt 1.000000 1.000000 +vt -0.000000 0.937500 +vt 1.000000 0.953125 +vt 0.000000 0.937500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 7/2/1 4/3/1 +f 3/4/2 6/5/2 1/6/2 +f 8/7/3 5/8/3 7/9/3 +f 2/1/1 8/10/1 7/2/1 +f 3/4/2 5/11/2 6/5/2 +f 8/7/3 6/12/3 5/8/3 +o Piston +v -0.250000 2.125000 -0.250000 +v -0.250000 2.125000 0.250000 +v 0.250000 2.125000 0.250000 +v 0.250000 2.125000 -0.250000 +v -0.250000 2.000000 -0.250000 +v -0.250000 2.000000 0.250000 +v 0.250000 2.000000 0.250000 +v 0.250000 2.000000 -0.250000 +v -0.187500 2.125000 0.187500 +v 0.187500 2.125000 0.187500 +v -0.187500 2.125000 -0.187500 +v 0.187500 2.125000 -0.187500 +v -0.187500 2.875000 0.187500 +v 0.187500 2.875000 0.187500 +v -0.187500 2.875000 -0.187500 +v 0.187500 2.875000 -0.187500 +vt 0.553571 0.528846 +vt 0.428571 0.519231 +vt 0.571429 0.519231 +vt 0.571429 0.423077 +vt 0.428571 0.500000 +vt 0.428571 0.423077 +vt 0.571429 0.500000 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.428571 0.500000 +vt 0.428571 0.500000 +vt 0.428571 0.500000 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 20/13/4 11/14/4 12/15/4 +f 13/16/5 15/17/5 14/18/5 +f 11/14/6 16/19/6 12/15/6 +f 9/20/7 14/21/7 10/22/7 +f 12/23/8 13/24/8 9/25/8 +f 10/26/9 15/27/9 11/28/9 +f 23/29/8 20/30/8 19/31/8 +f 22/32/9 17/33/9 18/34/9 +f 24/35/6 18/36/6 20/13/6 +f 21/37/7 19/38/7 17/39/7 +f 19/31/4 12/23/4 9/25/4 +f 17/39/4 9/20/4 10/22/4 +f 18/34/4 10/26/4 11/28/4 +f 20/13/4 18/36/4 11/14/4 +f 13/16/5 16/19/5 15/17/5 +f 11/14/6 15/17/6 16/19/6 +f 9/20/7 13/40/7 14/21/7 +f 12/23/8 16/41/8 13/24/8 +f 10/26/9 14/42/9 15/27/9 +f 23/29/8 24/43/8 20/30/8 +f 22/32/9 21/44/9 17/33/9 +f 24/35/6 22/45/6 18/36/6 +f 21/37/7 23/46/7 19/38/7 +f 19/31/4 20/30/4 12/23/4 +f 17/39/4 19/38/4 9/20/4 +f 18/34/4 17/33/4 10/26/4 +o Press +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.000000 0.375000 +v -0.500000 0.875000 0.375000 +v 0.500000 0.000000 0.375000 +v 0.500000 0.875000 0.375000 +v -0.500000 0.000000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.000000 -0.375000 +v 0.500000 0.875000 -0.375000 +v 0.375000 0.000000 0.500000 +v 0.375000 0.875000 0.500000 +v 0.375000 0.000000 -0.500000 +v 0.375000 0.875000 -0.500000 +v -0.375000 0.000000 0.500000 +v -0.375000 0.875000 0.500000 +v -0.375000 0.000000 -0.500000 +v -0.375000 0.875000 -0.500000 +v -0.437500 0.000000 0.375000 +v -0.437500 0.875000 0.375000 +v -0.437500 0.875000 -0.375000 +v -0.437500 0.000000 -0.375000 +v 0.375000 0.000000 0.437500 +v -0.375000 0.000000 0.437500 +v -0.375000 0.875000 0.437500 +v 0.375000 0.875000 0.437500 +v 0.437500 0.000000 0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.875000 -0.375000 +v 0.437500 0.000000 -0.375000 +v 0.375000 0.000000 -0.437500 +v -0.375000 0.000000 -0.437500 +v -0.375000 0.875000 -0.437500 +v 0.375000 0.875000 -0.437500 +v 0.500000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v 0.500000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +v -0.375000 2.000000 0.375000 +v 0.375000 2.000000 0.375000 +v -0.375000 2.000000 -0.375000 +v 0.375000 2.000000 -0.375000 +v -0.375000 3.000000 -0.375000 +v -0.375000 3.000000 0.375000 +v 0.375000 3.000000 0.375000 +v 0.375000 3.000000 -0.375000 +v -0.250000 2.000000 0.250000 +v 0.250000 2.000000 0.250000 +v -0.250000 2.000000 -0.250000 +v 0.250000 2.000000 -0.250000 +v -0.250000 2.125000 -0.250000 +v -0.250000 2.125000 0.250000 +v 0.250000 2.125000 0.250000 +v 0.250000 2.125000 -0.250000 +v 0.625000 0.000000 0.500000 +v 0.625000 0.000000 0.375000 +v 0.750000 0.000000 0.500000 +v 0.750000 0.000000 0.375000 +v 0.625000 2.250000 0.500000 +v 0.625000 2.250000 0.375000 +v 0.750000 2.250000 0.500000 +v 0.750000 2.250000 0.375000 +v -0.750000 0.000000 0.500000 +v -0.750000 0.000000 0.375000 +v -0.625000 0.000000 0.500000 +v -0.625000 0.000000 0.375000 +v -0.750000 2.250000 0.500000 +v -0.750000 2.250000 0.375000 +v -0.625000 2.250000 0.500000 +v -0.625000 2.250000 0.375000 +v -0.500000 2.500000 0.375000 +v 0.500000 2.500000 0.375000 +v -0.500000 2.375000 0.375000 +v 0.500000 2.375000 0.375000 +v -0.500000 2.500000 0.500000 +v 0.500000 2.500000 0.500000 +v -0.500000 2.375000 0.500000 +v 0.500000 2.375000 0.500000 +v 0.625000 0.000000 -0.375000 +v 0.625000 0.000000 -0.500000 +v 0.750000 0.000000 -0.375000 +v 0.750000 0.000000 -0.500000 +v 0.625000 2.250000 -0.375000 +v 0.625000 2.250000 -0.500000 +v 0.750000 2.250000 -0.375000 +v 0.750000 2.250000 -0.500000 +v -0.750000 0.000000 -0.375000 +v -0.750000 0.000000 -0.500000 +v -0.625000 0.000000 -0.375000 +v -0.625000 0.000000 -0.500000 +v -0.750000 2.250000 -0.375000 +v -0.750000 2.250000 -0.500000 +v -0.625000 2.250000 -0.375000 +v -0.625000 2.250000 -0.500000 +v -0.500000 2.500000 -0.500000 +v 0.500000 2.500000 -0.500000 +v -0.500000 2.375000 -0.500000 +v 0.500000 2.375000 -0.500000 +v -0.500000 2.500000 -0.375000 +v 0.500000 2.500000 -0.375000 +v -0.500000 2.375000 -0.375000 +v 0.500000 2.375000 -0.375000 +v -0.250000 2.500000 0.375000 +v 0.250000 2.500000 0.375000 +v -0.250000 2.750000 0.375000 +v 0.250000 2.750000 0.375000 +v -0.250000 2.750000 0.437500 +v -0.250000 2.500000 0.437500 +v 0.250000 2.500000 0.437500 +v 0.250000 2.750000 0.437500 +v -0.250000 2.500000 -0.437500 +v 0.250000 2.500000 -0.437500 +v -0.250000 2.750000 -0.437500 +v 0.250000 2.750000 -0.437500 +v -0.250000 2.750000 -0.375000 +v -0.250000 2.500000 -0.375000 +v 0.250000 2.500000 -0.375000 +v 0.250000 2.750000 -0.375000 +v 0.500000 0.687500 0.187500 +v 0.500000 0.312500 0.187500 +v 0.500000 0.687500 -0.187500 +v 0.500000 0.312500 -0.187500 +v 0.437500 0.687500 -0.187500 +v 0.437500 0.687500 0.187500 +v 0.437500 0.312500 0.187500 +v 0.437500 0.312500 -0.187500 +v -0.500000 0.687500 -0.187500 +v -0.500000 0.312500 -0.187500 +v -0.500000 0.687500 0.187500 +v -0.500000 0.312500 0.187500 +v -0.437500 0.687500 0.187500 +v -0.437500 0.687500 -0.187500 +v -0.437500 0.312500 -0.187500 +v -0.437500 0.312500 0.187500 +v 0.187500 0.687500 -0.500000 +v 0.187500 0.312500 -0.500000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v -0.187500 0.687500 -0.437500 +v 0.187500 0.687500 -0.437500 +v 0.187500 0.312500 -0.437500 +v -0.187500 0.312500 -0.437500 +v -0.187500 0.687500 0.500000 +v -0.187500 0.312500 0.500000 +v 0.187500 0.687500 0.500000 +v 0.187500 0.312500 0.500000 +v 0.187500 0.687500 0.437500 +v -0.187500 0.687500 0.437500 +v -0.187500 0.312500 0.437500 +v 0.187500 0.312500 0.437500 +v 0.500000 0.093750 0.468750 +v 0.500000 0.031250 0.468750 +v 0.500000 0.093750 0.406250 +v 0.500000 0.031250 0.406250 +v 0.625000 0.093750 0.468750 +v 0.625000 0.031250 0.468750 +v 0.625000 0.093750 0.406250 +v 0.625000 0.031250 0.406250 +v 0.500000 0.968750 0.468750 +v 0.500000 0.906250 0.468750 +v 0.500000 0.968750 0.406250 +v 0.500000 0.906250 0.406250 +v 0.625000 0.968750 0.468750 +v 0.625000 0.906250 0.468750 +v 0.625000 0.968750 0.406250 +v 0.625000 0.906250 0.406250 +v 0.500000 0.093750 -0.406250 +v 0.500000 0.031250 -0.406250 +v 0.500000 0.093750 -0.468750 +v 0.500000 0.031250 -0.468750 +v 0.625000 0.093750 -0.406250 +v 0.625000 0.031250 -0.406250 +v 0.625000 0.093750 -0.468750 +v 0.625000 0.031250 -0.468750 +v 0.500000 0.968750 -0.406250 +v 0.500000 0.906250 -0.406250 +v 0.500000 0.968750 -0.468750 +v 0.500000 0.906250 -0.468750 +v 0.625000 0.968750 -0.406250 +v 0.625000 0.906250 -0.406250 +v 0.625000 0.968750 -0.468750 +v 0.625000 0.906250 -0.468750 +v -0.625000 0.093750 0.468750 +v -0.625000 0.031250 0.468750 +v -0.625000 0.093750 0.406250 +v -0.625000 0.031250 0.406250 +v -0.500000 0.093750 0.468750 +v -0.500000 0.031250 0.468750 +v -0.500000 0.093750 0.406250 +v -0.500000 0.031250 0.406250 +v -0.625000 0.968750 0.468750 +v -0.625000 0.906250 0.468750 +v -0.625000 0.968750 0.406250 +v -0.625000 0.906250 0.406250 +v -0.500000 0.968750 0.468750 +v -0.500000 0.906250 0.468750 +v -0.500000 0.968750 0.406250 +v -0.500000 0.906250 0.406250 +v -0.625000 0.093750 -0.406250 +v -0.625000 0.031250 -0.406250 +v -0.625000 0.093750 -0.468750 +v -0.625000 0.031250 -0.468750 +v -0.500000 0.093750 -0.406250 +v -0.500000 0.031250 -0.406250 +v -0.500000 0.093750 -0.468750 +v -0.500000 0.031250 -0.468750 +v -0.625000 0.968750 -0.406250 +v -0.625000 0.906250 -0.406250 +v -0.625000 0.968750 -0.468750 +v -0.625000 0.906250 -0.468750 +v -0.500000 0.968750 -0.406250 +v -0.500000 0.906250 -0.406250 +v -0.500000 0.968750 -0.468750 +v -0.500000 0.906250 -0.468750 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.535714 0.134615 +vt 0.571429 -0.000000 +vt 0.571429 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.571429 0.153846 +vt 0.571429 0.153846 +vt 0.571429 0.153846 +vt 0.714286 0.230769 +vt 0.428571 0.269231 +vt 0.428571 0.230769 +vt 0.803571 0.134615 +vt 0.589286 0.000000 +vt 0.803571 0.000000 +vt 0.821429 0.000000 +vt 0.821429 0.134615 +vt 0.589286 0.134615 +vt 0.803571 0.144231 +vt 0.589286 0.144231 +vt 0.571429 0.134615 +vt 0.571429 0.000000 +vt 0.714286 0.230769 +vt 0.428571 0.269231 +vt 0.428571 0.230769 +vt 0.803571 0.134615 +vt 0.589286 0.000000 +vt 0.803571 0.000000 +vt 0.571429 0.000000 +vt 0.589286 0.134615 +vt 0.571429 0.134615 +vt 0.589286 0.144231 +vt 0.803571 0.144231 +vt 0.821429 0.134615 +vt 0.821429 0.000000 +vt 0.803571 0.000000 +vt 0.589286 0.134615 +vt 0.589286 0.000000 +vt 0.571429 0.000000 +vt 0.571429 0.134615 +vt 0.589286 0.144231 +vt 0.803571 0.134615 +vt 0.803571 0.144231 +vt 0.821429 0.134615 +vt 0.821429 0.000000 +vt 0.803571 0.000000 +vt 0.589286 0.134615 +vt 0.589286 0.000000 +vt 0.017857 0.019231 +vt 0.250000 0.009615 +vt 0.267857 0.019231 +vt 0.803571 0.134615 +vt 0.821429 0.000000 +vt 0.821429 0.134615 +vt 0.803571 0.144231 +vt 0.589286 0.144231 +vt 0.571429 0.134615 +vt 0.571429 0.000000 +vt 0.214286 0.153846 +vt 0.250000 0.250000 +vt 0.214286 0.269231 +vt 0.214286 0.423077 +vt 0.428571 0.538462 +vt 0.214286 0.538462 +vt 0.428571 0.269231 +vt 0.857143 0.269231 +vt 0.642857 0.423077 +vt 0.642857 0.269231 +vt 0.428571 0.423077 +vt 0.000000 0.423077 +vt 0.000000 0.269231 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.392857 0.250000 +vt 0.392857 0.173077 +vt 0.428571 0.153846 +vt 0.250000 0.173077 +vt 0.392857 0.173077 +vt 0.250000 0.250000 +vt 0.250000 0.173077 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.928571 0.019231 +vt 0.892857 0.000000 +vt 0.928571 0.000000 +vt 0.928571 0.634615 +vt 0.964286 0.586538 +vt 0.964286 0.625000 +vt 0.892857 0.019231 +vt 0.857143 0.365385 +vt 0.857143 0.019231 +vt 0.892857 0.365385 +vt 0.964286 0.019231 +vt 0.928571 0.365385 +vt 1.000000 0.019231 +vt 0.964286 0.365385 +vt 1.000000 0.586538 +vt 1.000000 0.625000 +vt 0.928571 1.000000 +vt 0.892857 0.980769 +vt 0.928571 0.980769 +vt 0.892857 0.423077 +vt 0.857143 0.375000 +vt 0.857143 0.980769 +vt 0.892857 0.634615 +vt 0.964286 0.980769 +vt 1.000000 0.634615 +vt 1.000000 0.980769 +vt 0.964286 0.634615 +vt 0.964286 0.423077 +vt 0.928571 0.576923 +vt 0.928571 0.423077 +vt 0.892857 0.576923 +vt 0.857143 0.423077 +vt 0.964286 0.375000 +vt 1.000000 0.576923 +vt 0.964286 0.576923 +vt 1.000000 0.625000 +vt 0.964286 0.586538 +vt 1.000000 0.586538 +vt 0.857143 0.586538 +vt 0.857143 0.625000 +vt 0.928571 0.019231 +vt 0.892857 0.000000 +vt 0.928571 0.000000 +vt 0.928571 0.634615 +vt 0.964286 0.586538 +vt 0.964286 0.625000 +vt 0.892857 0.019231 +vt 0.857143 0.365385 +vt 0.857143 0.019231 +vt 0.892857 0.365385 +vt 0.964286 0.019231 +vt 0.928571 0.365385 +vt 1.000000 0.019231 +vt 0.964286 0.365385 +vt 1.000000 0.586538 +vt 1.000000 0.625000 +vt 0.928571 1.000000 +vt 0.892857 0.980769 +vt 0.928571 0.980769 +vt 0.892857 0.423077 +vt 0.857143 0.375000 +vt 0.857143 0.980769 +vt 0.892857 0.634615 +vt 0.964286 0.980769 +vt 1.000000 0.634615 +vt 1.000000 0.980769 +vt 0.964286 0.634615 +vt 0.964286 0.423077 +vt 0.928571 0.576923 +vt 0.928571 0.423077 +vt 0.892857 0.576923 +vt 0.857143 0.423077 +vt 0.964286 0.375000 +vt 1.000000 0.576923 +vt 0.964286 0.576923 +vt 1.000000 0.413462 +vt 1.000000 0.375000 +vt 0.857143 0.586538 +vt 0.857143 0.625000 +vt 0.446429 0.192308 +vt 0.428571 0.153846 +vt 0.446429 0.153846 +vt 0.589286 0.153846 +vt 0.446429 0.192308 +vt 0.446429 0.153846 +vt 0.446429 0.201923 +vt 0.589286 0.192308 +vt 0.589286 0.201923 +vt 0.589286 0.192308 +vt 0.446429 0.201923 +vt 0.607143 0.192308 +vt 0.607143 0.153846 +vt 0.428571 0.153846 +vt 0.428571 0.192308 +vt 0.589286 0.153846 +vt 0.607143 0.192308 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.321429 -0.000000 +vt 0.321429 -0.000000 +vt 0.321429 -0.000000 +vt 0.535714 -0.000000 +vt 0.321429 -0.000000 +vt 0.714286 0.269231 +vt 0.714286 0.269231 +vt 0.035714 0.153846 +vt 0.000000 0.153846 +vt 0.035714 0.144231 +vt 0.000000 0.134615 +vt 0.017857 0.134615 +vt 0.000000 0.019231 +vt 0.000000 0.000000 +vt 0.250000 0.144231 +vt 0.285714 0.153846 +vt 0.250000 0.153846 +vt 0.035714 0.009615 +vt 0.035714 0.000000 +vt 0.267857 0.134615 +vt 0.285714 0.134615 +vt 0.285714 0.019231 +vt 0.250000 0.000000 +vt 0.857143 0.423077 +vt 0.142857 0.269231 +vt 0.392857 0.250000 +vt 0.142857 0.269231 +vt 0.142857 0.269231 +vt 0.142857 0.269231 +vt 1.000000 0.365385 +vt 0.892857 1.000000 +vt 0.857143 0.413462 +vt 0.857143 0.634615 +vt 0.857143 0.576923 +vt 0.964286 0.413462 +vt 1.000000 0.423077 +vt 0.964286 0.625000 +vt 1.000000 0.365385 +vt 0.892857 1.000000 +vt 0.857143 0.413462 +vt 0.857143 0.634615 +vt 0.857143 0.576923 +vt 0.964286 0.413462 +vt 1.000000 0.423077 +vt 0.428571 0.192308 +vt 0.589286 0.201923 +vt 0.607143 0.153846 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 25/47/10 46/48/10 26/49/10 +f 27/50/11 38/51/11 28/52/11 +f 27/53/12 48/54/12 47/55/12 +f 31/56/12 44/57/12 32/58/12 +f 34/59/11 25/60/11 26/61/11 +f 29/62/10 42/63/10 41/64/10 +f 29/65/13 36/66/13 30/67/13 +f 31/68/13 40/69/13 39/70/13 +f 30/67/13 40/69/13 32/71/13 +f 26/49/10 42/63/10 30/72/10 +f 28/73/12 44/57/12 48/54/12 +f 28/52/11 34/59/11 26/61/11 +f 26/74/11 68/75/11 28/76/11 +f 50/77/11 52/78/11 49/79/11 +f 50/77/12 33/80/12 34/81/12 +f 51/82/14 34/83/14 38/84/14 +f 52/78/10 38/85/10 37/86/10 +f 32/87/13 65/88/13 30/89/13 +f 56/90/10 54/91/10 53/92/10 +f 45/93/13 55/94/13 46/95/13 +f 46/96/14 56/90/14 42/97/14 +f 42/98/11 53/92/11 41/99/11 +f 60/100/13 58/101/13 57/102/13 +f 35/103/12 58/101/12 36/104/12 +f 36/105/14 59/106/14 40/107/14 +f 40/108/10 60/100/10 39/109/10 +f 62/110/12 64/111/12 61/112/12 +f 61/113/14 57/114/14 53/115/14 +f 63/116/13 47/117/13 48/118/13 +f 64/111/14 48/119/14 44/120/14 +f 61/112/11 44/121/11 43/122/11 +f 69/123/14 78/124/14 70/125/14 +f 75/126/15 73/127/15 74/128/15 +f 72/129/13 75/126/13 70/125/13 +f 69/130/11 73/131/11 71/132/11 +f 71/132/12 76/133/12 72/129/12 +f 70/125/10 74/134/10 69/135/10 +f 80/136/10 81/137/10 79/138/10 +f 70/125/14 80/139/14 72/129/14 +f 72/129/14 79/140/14 71/141/14 +f 71/141/14 77/142/14 69/123/14 +f 81/143/14 83/144/14 82/145/14 +f 77/146/12 83/147/12 78/148/12 +f 78/149/11 84/150/11 80/151/11 +f 79/152/13 82/153/13 77/154/13 +f 88/155/14 85/156/14 86/157/14 +f 98/158/12 103/159/12 100/160/12 +f 87/161/10 89/162/10 85/163/10 +f 88/155/13 91/164/13 87/161/13 +f 86/165/12 92/166/12 88/155/12 +f 85/167/11 90/168/11 86/165/11 +f 100/160/16 107/169/16 99/170/16 +f 96/171/14 93/172/14 94/173/14 +f 106/174/10 89/175/10 91/164/10 +f 95/176/10 97/177/10 93/172/10 +f 96/178/13 99/179/13 95/180/13 +f 94/173/12 100/181/12 96/178/12 +f 93/172/11 98/158/11 94/173/11 +f 92/166/17 106/174/17 91/164/17 +f 104/182/12 101/183/12 102/184/12 +f 105/185/10 108/186/10 106/174/10 +f 90/187/12 102/184/12 92/166/12 +f 104/182/14 107/188/14 103/189/14 +f 108/190/18 90/191/18 89/192/18 +f 101/183/15 106/174/15 102/184/15 +f 97/177/19 101/183/19 98/158/19 +f 107/193/10 97/177/10 99/194/10 +f 112/195/14 109/196/14 110/197/14 +f 122/198/12 127/199/12 124/200/12 +f 111/201/10 113/202/10 109/203/10 +f 112/195/13 115/204/13 111/201/13 +f 110/205/12 116/206/12 112/195/12 +f 109/207/11 114/208/11 110/205/11 +f 124/200/16 131/209/16 123/210/16 +f 120/211/14 117/212/14 118/213/14 +f 130/214/10 113/215/10 115/204/10 +f 119/216/10 121/217/10 117/212/10 +f 120/218/13 123/219/13 119/220/13 +f 118/213/12 124/221/12 120/218/12 +f 117/212/11 122/198/11 118/213/11 +f 116/206/17 130/214/17 115/204/17 +f 128/222/12 125/223/12 126/224/12 +f 129/225/10 132/226/10 130/214/10 +f 114/227/12 126/224/12 116/206/12 +f 128/222/14 131/228/14 127/229/14 +f 132/230/18 114/227/18 113/231/18 +f 125/223/15 130/214/15 126/224/15 +f 121/217/19 125/223/19 122/198/19 +f 131/232/10 121/217/10 123/233/10 +f 144/234/13 147/235/13 142/236/13 +f 139/237/10 137/238/10 138/239/10 +f 135/240/15 140/241/15 136/242/15 +f 143/243/15 148/244/15 144/234/15 +f 136/245/13 139/237/13 134/246/13 +f 133/247/11 137/238/11 135/248/11 +f 141/249/11 145/250/11 143/243/11 +f 144/234/12 141/249/12 143/243/12 +f 150/251/13 151/252/13 149/253/13 +f 158/254/11 159/255/11 157/256/11 +f 152/257/12 153/258/12 151/252/12 +f 149/253/10 155/259/10 150/251/10 +f 150/251/14 156/260/14 152/257/14 +f 151/252/15 154/261/15 149/253/15 +f 160/262/10 161/263/10 159/255/10 +f 157/256/12 163/264/12 158/254/12 +f 158/254/14 164/265/14 160/262/14 +f 159/255/15 162/266/15 157/256/15 +f 166/267/12 167/268/12 165/269/12 +f 174/270/10 175/271/10 173/272/10 +f 168/273/11 169/274/11 167/268/11 +f 165/269/13 171/275/13 166/267/13 +f 166/267/14 172/276/14 168/273/14 +f 167/268/15 170/277/15 165/269/15 +f 176/278/13 177/279/13 175/271/13 +f 173/272/11 179/280/11 174/270/11 +f 174/270/14 180/281/14 176/278/14 +f 175/271/15 178/282/15 173/272/15 +f 187/283/12 184/284/12 183/285/12 +f 186/286/10 181/287/10 182/288/10 +f 188/289/14 182/288/14 184/290/14 +f 185/291/15 183/285/15 181/287/15 +f 195/292/12 192/293/12 191/294/12 +f 194/295/10 189/296/10 190/297/10 +f 196/298/14 190/297/14 192/299/14 +f 193/300/15 191/294/15 189/296/15 +f 203/301/12 200/302/12 199/303/12 +f 202/304/10 197/305/10 198/306/10 +f 204/307/14 198/306/14 200/308/14 +f 201/309/15 199/303/15 197/305/15 +f 211/310/12 208/311/12 207/312/12 +f 210/313/10 205/314/10 206/315/10 +f 212/316/14 206/315/14 208/317/14 +f 209/318/15 207/312/15 205/314/15 +f 219/319/12 216/320/12 215/321/12 +f 218/322/10 213/323/10 214/324/10 +f 220/325/14 214/324/14 216/326/14 +f 217/327/15 215/321/15 213/323/15 +f 227/328/12 224/329/12 223/330/12 +f 226/331/10 221/332/10 222/333/10 +f 228/334/14 222/333/14 224/335/14 +f 225/336/15 223/330/15 221/332/15 +f 235/337/12 232/338/12 231/339/12 +f 234/340/10 229/341/10 230/342/10 +f 236/343/14 230/342/14 232/344/14 +f 233/345/15 231/339/15 229/341/15 +f 243/346/12 240/347/12 239/348/12 +f 242/349/10 237/350/10 238/351/10 +f 244/352/14 238/351/14 240/353/14 +f 241/354/15 239/348/15 237/350/15 +f 25/47/10 45/355/10 46/48/10 +f 27/50/11 37/356/11 38/51/11 +f 27/53/12 28/73/12 48/54/12 +f 31/56/12 43/357/12 44/57/12 +f 34/59/11 33/358/11 25/60/11 +f 29/62/10 30/72/10 42/63/10 +f 29/65/13 35/359/13 36/66/13 +f 31/68/13 32/71/13 40/69/13 +f 30/67/13 36/66/13 40/69/13 +f 26/49/10 46/48/10 42/63/10 +f 28/73/12 32/58/12 44/57/12 +f 28/52/11 38/51/11 34/59/11 +f 26/74/11 66/360/11 68/75/11 +f 50/77/11 51/82/11 52/78/11 +f 50/77/12 49/79/12 33/80/12 +f 51/82/14 50/77/14 34/83/14 +f 52/78/10 51/82/10 38/85/10 +f 32/87/13 67/361/13 65/88/13 +f 56/90/10 55/94/10 54/91/10 +f 45/93/13 54/91/13 55/94/13 +f 46/96/14 55/94/14 56/90/14 +f 42/98/11 56/90/11 53/92/11 +f 60/100/13 59/106/13 58/101/13 +f 35/103/12 57/102/12 58/101/12 +f 36/105/14 58/101/14 59/106/14 +f 40/108/10 59/106/10 60/100/10 +f 62/110/12 63/116/12 64/111/12 +f 37/362/14 27/363/14 52/364/14 +f 27/363/14 47/365/14 62/366/14 +f 27/363/14 62/366/14 52/364/14 +f 61/113/14 43/367/14 31/368/14 +f 52/364/14 62/366/14 49/369/14 +f 62/366/14 61/113/14 49/369/14 +f 25/370/14 33/371/14 49/369/14 +f 61/113/14 31/368/14 60/372/14 +f 31/368/14 39/373/14 60/372/14 +f 25/370/14 49/369/14 54/374/14 +f 49/369/14 61/113/14 54/374/14 +f 54/374/14 45/375/14 25/370/14 +f 29/65/14 41/376/14 53/115/14 +f 35/377/14 29/65/14 57/114/14 +f 29/65/14 53/115/14 57/114/14 +f 53/115/14 54/374/14 61/113/14 +f 61/113/14 60/372/14 57/114/14 +f 63/116/13 62/110/13 47/117/13 +f 64/111/14 63/116/14 48/119/14 +f 61/112/11 64/111/11 44/121/11 +f 69/123/14 77/142/14 78/124/14 +f 75/126/15 76/133/15 73/127/15 +f 72/129/13 76/133/13 75/126/13 +f 69/130/11 74/378/11 73/131/11 +f 71/132/12 73/131/12 76/133/12 +f 70/125/10 75/126/10 74/134/10 +f 80/136/10 84/379/10 81/137/10 +f 70/125/14 78/124/14 80/139/14 +f 72/129/14 80/139/14 79/140/14 +f 71/141/14 79/140/14 77/142/14 +f 81/143/14 84/380/14 83/144/14 +f 77/146/12 82/381/12 83/147/12 +f 78/149/11 83/382/11 84/150/11 +f 79/152/13 81/383/13 82/153/13 +f 88/155/14 87/161/14 85/156/14 +f 98/158/12 101/183/12 103/159/12 +f 87/161/10 91/164/10 89/162/10 +f 88/155/13 92/166/13 91/164/13 +f 86/165/12 90/168/12 92/166/12 +f 85/167/11 89/384/11 90/168/11 +f 100/160/16 103/159/16 107/169/16 +f 96/171/14 95/385/14 93/172/14 +f 106/174/10 108/386/10 89/175/10 +f 95/176/10 99/387/10 97/177/10 +f 96/178/13 100/181/13 99/179/13 +f 94/173/12 98/158/12 100/181/12 +f 93/172/11 97/177/11 98/158/11 +f 92/166/17 102/184/17 106/174/17 +f 104/182/12 103/189/12 101/183/12 +f 105/185/10 107/388/10 108/186/10 +f 90/187/12 104/389/12 102/184/12 +f 104/182/14 108/390/14 107/188/14 +f 108/190/18 104/391/18 90/191/18 +f 101/183/15 105/185/15 106/174/15 +f 97/177/19 105/185/19 101/183/19 +f 107/193/10 105/185/10 97/177/10 +f 112/195/14 111/201/14 109/196/14 +f 122/198/12 125/223/12 127/199/12 +f 111/201/10 115/204/10 113/202/10 +f 112/195/13 116/206/13 115/204/13 +f 110/205/12 114/208/12 116/206/12 +f 109/207/11 113/392/11 114/208/11 +f 124/200/16 127/199/16 131/209/16 +f 120/211/14 119/393/14 117/212/14 +f 130/214/10 132/394/10 113/215/10 +f 119/216/10 123/395/10 121/217/10 +f 120/218/13 124/221/13 123/219/13 +f 118/213/12 122/198/12 124/221/12 +f 117/212/11 121/217/11 122/198/11 +f 116/206/17 126/224/17 130/214/17 +f 128/222/12 127/229/12 125/223/12 +f 129/225/10 131/396/10 132/226/10 +f 114/227/12 128/397/12 126/224/12 +f 128/222/14 132/398/14 131/228/14 +f 132/230/18 128/397/18 114/227/18 +f 125/223/15 129/225/15 130/214/15 +f 121/217/19 129/225/19 125/223/19 +f 131/232/10 129/225/10 121/217/10 +f 144/234/13 148/399/13 147/235/13 +f 139/237/10 140/241/10 137/238/10 +f 135/240/15 137/238/15 140/241/15 +f 143/243/15 145/400/15 148/244/15 +f 136/245/13 140/241/13 139/237/13 +f 133/247/11 138/239/11 137/238/11 +f 141/249/11 146/401/11 145/250/11 +f 144/234/12 142/236/12 141/249/12 +f 150/251/13 152/257/13 151/252/13 +f 158/254/11 160/262/11 159/255/11 +f 152/257/12 156/402/12 153/258/12 +f 149/253/10 154/403/10 155/259/10 +f 150/251/14 155/404/14 156/260/14 +f 151/252/15 153/405/15 154/261/15 +f 160/262/10 164/406/10 161/263/10 +f 157/256/12 162/407/12 163/264/12 +f 158/254/14 163/408/14 164/265/14 +f 159/255/15 161/409/15 162/266/15 +f 166/267/12 168/273/12 167/268/12 +f 174/270/10 176/278/10 175/271/10 +f 168/273/11 172/410/11 169/274/11 +f 165/269/13 170/411/13 171/275/13 +f 166/267/14 171/412/14 172/276/14 +f 167/268/15 169/413/15 170/277/15 +f 176/278/13 180/414/13 177/279/13 +f 173/272/11 178/415/11 179/280/11 +f 174/270/14 179/416/14 180/281/14 +f 175/271/15 177/417/15 178/282/15 +f 187/283/12 188/418/12 184/284/12 +f 186/286/10 185/291/10 181/287/10 +f 188/289/14 186/286/14 182/288/14 +f 185/291/15 187/283/15 183/285/15 +f 195/292/12 196/419/12 192/293/12 +f 194/295/10 193/300/10 189/296/10 +f 196/298/14 194/295/14 190/297/14 +f 193/300/15 195/292/15 191/294/15 +f 203/301/12 204/420/12 200/302/12 +f 202/304/10 201/309/10 197/305/10 +f 204/307/14 202/304/14 198/306/14 +f 201/309/15 203/301/15 199/303/15 +f 211/310/12 212/421/12 208/311/12 +f 210/313/10 209/318/10 205/314/10 +f 212/316/14 210/313/14 206/315/14 +f 209/318/15 211/310/15 207/312/15 +f 219/319/12 220/422/12 216/320/12 +f 218/322/10 217/327/10 213/323/10 +f 220/325/14 218/322/14 214/324/14 +f 217/327/15 219/319/15 215/321/15 +f 227/328/12 228/423/12 224/329/12 +f 226/331/10 225/336/10 221/332/10 +f 228/334/14 226/331/14 222/333/14 +f 225/336/15 227/328/15 223/330/15 +f 235/337/12 236/424/12 232/338/12 +f 234/340/10 233/345/10 229/341/10 +f 236/343/14 234/340/14 230/342/14 +f 233/345/15 235/337/15 231/339/15 +f 243/346/12 244/425/12 240/347/12 +f 242/349/10 241/354/10 237/350/10 +f 244/352/14 242/349/14 238/351/14 +f 241/354/15 243/346/15 239/348/15 diff --git a/src/main/resources/assets/hbm/models/machines/drone.obj b/src/main/resources/assets/hbm/models/machines/drone.obj new file mode 100644 index 000000000..93a950fbf --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/drone.obj @@ -0,0 +1,1707 @@ +# Blender v2.79 (sub 0) OBJ File: 'drone.blend' +# www.blender.org +o Crate +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.242424 0.210526 +vt 0.000000 0.421053 +vt 0.000000 0.210526 +vt -0.000000 0.210526 +vt 0.242424 0.421053 +vt -0.000000 0.421053 +vt 0.242424 0.000000 +vt -0.000000 0.000000 +vt 0.242424 0.000000 +vt 0.000000 0.210526 +vt 0.000000 0.000000 +vt 0.242424 0.000000 +vt -0.000000 0.210526 +vt -0.000000 0.000000 +vt 0.242424 0.000000 +vt 0.000000 0.210526 +vt 0.000000 0.000000 +vt 0.242424 0.421053 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 4/7/3 6/4/3 2/8/3 +f 1/9/4 7/10/4 3/11/4 +f 3/12/5 8/13/5 4/14/5 +f 2/15/6 5/16/6 1/17/6 +f 3/1/1 4/18/1 2/2/1 +f 6/4/2 8/19/2 7/5/2 +f 4/7/3 8/19/3 6/4/3 +f 1/9/4 5/20/4 7/10/4 +f 3/12/5 7/21/5 8/13/5 +f 2/15/6 6/22/6 5/16/6 +o Barrel +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.484848 0.210526 +vt 0.242424 0.421053 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.484848 0.421053 +vt 0.242424 0.421053 +vt 0.484848 -0.000000 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 0.421053 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 11/23/7 10/24/7 9/25/7 +f 14/26/8 15/27/8 13/28/8 +f 12/29/9 14/26/9 10/30/9 +f 9/31/10 15/32/10 11/33/10 +f 11/34/11 16/35/11 12/36/11 +f 10/37/12 13/38/12 9/39/12 +f 11/23/7 12/40/7 10/24/7 +f 14/26/8 16/41/8 15/27/8 +f 12/29/9 16/41/9 14/26/9 +f 9/31/10 13/42/10 15/32/10 +f 11/34/11 15/43/11 16/35/11 +f 10/37/12 14/44/12 13/38/12 +o Drone +v -0.088388 0.875000 1.036612 +v 0.000000 0.875000 1.000000 +v 0.088388 0.875000 1.036612 +v 0.125000 0.875000 1.125000 +v 0.088388 0.875000 1.213388 +v 0.000000 0.875000 1.250000 +v -0.125000 0.875000 1.125000 +v -0.088388 0.875000 1.213388 +v -0.031250 2.375000 0.031250 +v 0.031250 2.375000 0.031250 +v -0.031250 2.375000 -0.031250 +v 0.031250 2.375000 -0.031250 +v 0.031250 1.875000 -0.031250 +v -0.031250 1.875000 -0.031250 +v 0.031250 1.875000 0.031250 +v -0.031250 1.875000 0.031250 +v 0.375000 1.875000 -0.375000 +v 0.375000 1.875000 0.375000 +v -0.375000 1.875000 0.375000 +v -0.375000 1.875000 -0.375000 +v -0.500000 1.750000 0.500000 +v 0.500000 1.750000 0.500000 +v -0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -0.500000 +v 0.500000 1.625000 -0.500000 +v -0.500000 1.625000 -0.500000 +v 0.500000 1.625000 0.500000 +v -0.500000 1.625000 0.500000 +v -0.500000 0.625000 0.500000 +v -0.500000 0.375000 0.500000 +v -0.250000 0.625000 0.500000 +v -0.250000 0.375000 0.500000 +v -0.500000 0.625000 0.250000 +v -0.500000 0.375000 0.250000 +v -0.250000 0.625000 0.625000 +v -0.250000 0.375000 0.625000 +v -0.625000 0.625000 0.250000 +v -0.625000 0.375000 0.250000 +v -0.625000 0.625000 0.625000 +v -0.625000 0.375000 0.625000 +v -0.625000 0.625000 0.500000 +v -0.625000 0.625000 0.625000 +v -0.500000 0.625000 0.500000 +v -0.500000 0.625000 0.625000 +v -0.625000 1.375000 0.500000 +v -0.625000 1.375000 0.625000 +v -0.500000 1.375000 0.500000 +v -0.500000 1.375000 0.625000 +v -0.625000 1.375000 0.625000 +v 0.625000 1.375000 0.625000 +v -0.625000 1.375000 -0.625000 +v 0.625000 1.375000 -0.625000 +v -0.625000 1.625000 -0.625000 +v -0.625000 1.625000 0.625000 +v 0.625000 1.625000 0.625000 +v 0.625000 1.625000 -0.625000 +v 0.500000 1.125000 -1.125000 +v -0.500000 1.125000 -1.125000 +v -0.500000 1.375000 -1.125000 +v 0.500000 1.375000 -1.125000 +v -0.500000 1.125000 1.125000 +v 0.500000 1.125000 1.125000 +v 0.500000 1.375000 1.125000 +v -0.500000 1.375000 1.125000 +v 1.125000 1.125000 0.500000 +v 1.125000 1.125000 -0.500000 +v 1.125000 1.375000 -0.500000 +v 1.125000 1.375000 0.500000 +v -1.125000 1.125000 -0.500000 +v -1.125000 1.125000 0.500000 +v -1.125000 1.375000 0.500000 +v -1.125000 1.375000 -0.500000 +v -0.088388 0.750000 1.036612 +v -0.125000 0.750000 1.125000 +v -0.250000 1.250000 1.125000 +v -0.250000 1.625000 1.125000 +v -0.176777 1.250000 0.948223 +v -0.176777 1.625000 0.948223 +v 0.000000 1.250000 0.875000 +v 0.000000 1.625000 0.875000 +v 0.176777 1.250000 0.948223 +v 0.176777 1.625000 0.948223 +v 0.250000 1.250000 1.125000 +v 0.250000 1.625000 1.125000 +v 0.176777 1.250000 1.301776 +v 0.176777 1.625000 1.301776 +v 0.000000 1.250000 1.375000 +v 0.000000 1.625000 1.375000 +v -0.176777 1.250000 1.301776 +v -0.176777 1.625000 1.301776 +v 0.000000 0.750000 1.000000 +v 0.088388 0.750000 1.036612 +v 0.125000 0.750000 1.125000 +v 0.088388 0.750000 1.213388 +v 0.000000 0.750000 1.250000 +v -0.088388 0.750000 1.213388 +v -0.132583 1.750000 0.992417 +v -0.187500 1.750000 1.125000 +v 0.000000 1.750000 0.937500 +v 0.132582 1.750000 0.992418 +v 0.187500 1.750000 1.125000 +v 0.132583 1.750000 1.257582 +v 0.000000 1.750000 1.312500 +v -0.132583 1.750000 1.257582 +v -0.132583 1.625000 0.992417 +v -0.187500 1.625000 1.125000 +v 0.000000 1.625000 0.937500 +v 0.132582 1.625000 0.992418 +v 0.187500 1.625000 1.125000 +v 0.132583 1.625000 1.257582 +v 0.000000 1.625000 1.312500 +v -0.132583 1.625000 1.257582 +v -0.250000 1.125000 1.375000 +v 0.250000 1.125000 1.375000 +v 0.250000 1.375000 1.375000 +v -0.250000 1.375000 1.375000 +v -0.500000 1.125000 1.125000 +v 0.500000 1.125000 1.125000 +v 0.500000 1.375000 1.125000 +v -0.500000 1.375000 1.125000 +v 0.088388 0.875000 -1.036612 +v -0.000000 0.875000 -1.000000 +v -0.088388 0.875000 -1.036612 +v -0.125000 0.875000 -1.125000 +v -0.088388 0.875000 -1.213388 +v -0.000000 0.875000 -1.250000 +v 0.125000 0.875000 -1.125000 +v 0.088388 0.875000 -1.213388 +v 0.088388 0.750000 -1.036612 +v 0.125000 0.750000 -1.125000 +v 0.250000 1.250000 -1.125000 +v 0.250000 1.625000 -1.125000 +v 0.176777 1.250000 -0.948223 +v 0.176777 1.625000 -0.948223 +v -0.000000 1.250000 -0.875000 +v -0.000000 1.625000 -0.875000 +v -0.176777 1.250000 -0.948223 +v -0.176777 1.625000 -0.948223 +v -0.250000 1.250000 -1.125000 +v -0.250000 1.625000 -1.125000 +v -0.176777 1.250000 -1.301776 +v -0.176777 1.625000 -1.301776 +v -0.000000 1.250000 -1.375000 +v -0.000000 1.625000 -1.375000 +v 0.176777 1.250000 -1.301776 +v 0.176777 1.625000 -1.301776 +v -0.000000 0.750000 -1.000000 +v -0.088388 0.750000 -1.036612 +v -0.125000 0.750000 -1.125000 +v -0.088388 0.750000 -1.213388 +v -0.000000 0.750000 -1.250000 +v 0.088388 0.750000 -1.213388 +v 0.132583 1.750000 -0.992417 +v 0.187500 1.750000 -1.125000 +v -0.000000 1.750000 -0.937500 +v -0.132583 1.750000 -0.992418 +v -0.187500 1.750000 -1.125000 +v -0.132583 1.750000 -1.257582 +v -0.000000 1.750000 -1.312500 +v 0.132583 1.750000 -1.257582 +v 0.132583 1.625000 -0.992417 +v 0.187500 1.625000 -1.125000 +v -0.000000 1.625000 -0.937500 +v -0.132583 1.625000 -0.992418 +v -0.187500 1.625000 -1.125000 +v -0.132583 1.625000 -1.257582 +v -0.000000 1.625000 -1.312500 +v 0.132583 1.625000 -1.257582 +v 0.250000 1.125000 -1.375000 +v -0.250000 1.125000 -1.375000 +v -0.250000 1.375000 -1.375000 +v 0.250000 1.375000 -1.375000 +v 0.500000 1.125000 -1.125000 +v -0.500000 1.125000 -1.125000 +v -0.500000 1.375000 -1.125000 +v 0.500000 1.375000 -1.125000 +v 1.036612 0.875000 0.088388 +v 1.000000 0.875000 0.000000 +v 1.036612 0.875000 -0.088388 +v 1.125000 0.875000 -0.125000 +v 1.213388 0.875000 -0.088388 +v 1.250000 0.875000 0.000000 +v 1.125000 0.875000 0.125000 +v 1.213388 0.875000 0.088388 +v 1.036612 0.750000 0.088388 +v 1.125000 0.750000 0.125000 +v 1.125000 1.250000 0.250000 +v 1.125000 1.625000 0.250000 +v 0.948223 1.250000 0.176777 +v 0.948223 1.625000 0.176777 +v 0.875000 1.250000 -0.000000 +v 0.875000 1.625000 -0.000000 +v 0.948223 1.250000 -0.176777 +v 0.948223 1.625000 -0.176777 +v 1.125000 1.250000 -0.250000 +v 1.125000 1.625000 -0.250000 +v 1.301776 1.250000 -0.176777 +v 1.301776 1.625000 -0.176777 +v 1.375000 1.250000 -0.000000 +v 1.375000 1.625000 -0.000000 +v 1.301776 1.250000 0.176777 +v 1.301776 1.625000 0.176777 +v 1.000000 0.750000 0.000000 +v 1.036612 0.750000 -0.088388 +v 1.125000 0.750000 -0.125000 +v 1.213388 0.750000 -0.088388 +v 1.250000 0.750000 0.000000 +v 1.213388 0.750000 0.088388 +v 0.992417 1.750000 0.132583 +v 1.125000 1.750000 0.187500 +v 0.937500 1.750000 -0.000000 +v 0.992418 1.750000 -0.132582 +v 1.125000 1.750000 -0.187500 +v 1.257582 1.750000 -0.132583 +v 1.312500 1.750000 0.000000 +v 1.257582 1.750000 0.132583 +v 0.992417 1.625000 0.132583 +v 1.125000 1.625000 0.187500 +v 0.937500 1.625000 -0.000000 +v 0.992418 1.625000 -0.132582 +v 1.125000 1.625000 -0.187500 +v 1.257582 1.625000 -0.132583 +v 1.312500 1.625000 0.000000 +v 1.257582 1.625000 0.132583 +v 1.375000 1.125000 0.250000 +v 1.375000 1.125000 -0.250000 +v 1.375000 1.375000 -0.250000 +v 1.375000 1.375000 0.250000 +v 1.125000 1.125000 0.500000 +v 1.125000 1.125000 -0.500000 +v 1.125000 1.375000 -0.500000 +v 1.125000 1.375000 0.500000 +v -1.036612 0.875000 -0.088388 +v -1.000000 0.875000 0.000000 +v -1.036612 0.875000 0.088388 +v -1.125000 0.875000 0.125000 +v -1.213388 0.875000 0.088388 +v -1.250000 0.875000 0.000000 +v -1.125000 0.875000 -0.125000 +v -1.213388 0.875000 -0.088388 +v -1.036612 0.750000 -0.088388 +v -1.125000 0.750000 -0.125000 +v -1.125000 1.250000 -0.250000 +v -1.125000 1.625000 -0.250000 +v -0.948223 1.250000 -0.176777 +v -0.948223 1.625000 -0.176777 +v -0.875000 1.250000 0.000000 +v -0.875000 1.625000 0.000000 +v -0.948223 1.250000 0.176777 +v -0.948223 1.625000 0.176777 +v -1.125000 1.250000 0.250000 +v -1.125000 1.625000 0.250000 +v -1.301776 1.250000 0.176777 +v -1.301776 1.625000 0.176777 +v -1.375000 1.250000 0.000000 +v -1.375000 1.625000 0.000000 +v -1.301776 1.250000 -0.176776 +v -1.301776 1.625000 -0.176776 +v -1.000000 0.750000 0.000000 +v -1.036612 0.750000 0.088388 +v -1.125000 0.750000 0.125000 +v -1.213388 0.750000 0.088388 +v -1.250000 0.750000 0.000000 +v -1.213388 0.750000 -0.088388 +v -0.992417 1.750000 -0.132583 +v -1.125000 1.750000 -0.187500 +v -0.937500 1.750000 0.000000 +v -0.992418 1.750000 0.132583 +v -1.125000 1.750000 0.187500 +v -1.257582 1.750000 0.132583 +v -1.312500 1.750000 0.000000 +v -1.257582 1.750000 -0.132582 +v -0.992417 1.625000 -0.132583 +v -1.125000 1.625000 -0.187500 +v -0.937500 1.625000 0.000000 +v -0.992418 1.625000 0.132583 +v -1.125000 1.625000 0.187500 +v -1.257582 1.625000 0.132583 +v -1.312500 1.625000 0.000000 +v -1.257582 1.625000 -0.132582 +v -1.375000 1.125000 -0.250000 +v -1.375000 1.125000 0.250000 +v -1.375000 1.375000 0.250000 +v -1.375000 1.375000 -0.250000 +v -1.125000 1.125000 -0.500000 +v -1.125000 1.125000 0.500000 +v -1.125000 1.375000 0.500000 +v -1.125000 1.375000 -0.500000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.375000 -0.500000 +v 0.250000 0.625000 -0.500000 +v 0.250000 0.375000 -0.500000 +v 0.500000 0.625000 -0.250000 +v 0.500000 0.375000 -0.250000 +v 0.250000 0.625000 -0.625000 +v 0.250000 0.375000 -0.625000 +v 0.625000 0.625000 -0.250000 +v 0.625000 0.375000 -0.250000 +v 0.625000 0.625000 -0.625000 +v 0.625000 0.375000 -0.625000 +v 0.625000 0.625000 -0.500000 +v 0.625000 0.625000 -0.625000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.625000 -0.625000 +v 0.625000 1.375000 -0.500000 +v 0.625000 1.375000 -0.625000 +v 0.500000 1.375000 -0.500000 +v 0.500000 1.375000 -0.625000 +v 0.500000 0.625000 0.500000 +v 0.500000 0.375000 0.500000 +v 0.500000 0.625000 0.250000 +v 0.500000 0.375000 0.250000 +v 0.250000 0.625000 0.500000 +v 0.250000 0.375000 0.500000 +v 0.625000 0.625000 0.250000 +v 0.625000 0.375000 0.250000 +v 0.250000 0.625000 0.625000 +v 0.250000 0.375000 0.625000 +v 0.625000 0.625000 0.625000 +v 0.625000 0.375000 0.625000 +v 0.500000 0.625000 0.625000 +v 0.625000 0.625000 0.625000 +v 0.500000 0.625000 0.500000 +v 0.625000 0.625000 0.500000 +v 0.500000 1.375000 0.625000 +v 0.625000 1.375000 0.625000 +v 0.500000 1.375000 0.500000 +v 0.625000 1.375000 0.500000 +v -0.500000 0.625000 -0.500000 +v -0.500000 0.375000 -0.500000 +v -0.500000 0.625000 -0.250000 +v -0.500000 0.375000 -0.250000 +v -0.250000 0.625000 -0.500000 +v -0.250000 0.375000 -0.500000 +v -0.625000 0.625000 -0.250000 +v -0.625000 0.375000 -0.250000 +v -0.250000 0.625000 -0.625000 +v -0.250000 0.375000 -0.625000 +v -0.625000 0.625000 -0.625000 +v -0.625000 0.375000 -0.625000 +v -0.500000 0.625000 -0.625000 +v -0.625000 0.625000 -0.625000 +v -0.500000 0.625000 -0.500000 +v -0.625000 0.625000 -0.500000 +v -0.500000 1.375000 -0.625000 +v -0.625000 1.375000 -0.625000 +v -0.500000 1.375000 -0.500000 +v -0.625000 1.375000 -0.500000 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.727273 0.934211 +vt 0.742424 0.921053 +vt 0.742424 0.934211 +vt 0.757576 0.921053 +vt 0.742424 0.815789 +vt 0.757576 0.815789 +vt 0.727273 0.921053 +vt 0.712121 0.815789 +vt 0.727273 0.815789 +vt 0.772727 0.921053 +vt 0.772727 0.815789 +vt 0.954545 0.552632 +vt 0.742424 0.592105 +vt 0.712121 0.552632 +vt 0.696970 0.565789 +vt 0.742424 0.750000 +vt 0.696970 0.776316 +vt 0.969697 0.776316 +vt 0.924242 0.592105 +vt 0.969697 0.565789 +vt 0.924242 0.750000 +vt 1.000000 0.776316 +vt 1.000000 0.565789 +vt 0.666667 0.565789 +vt 0.666667 0.776316 +vt 0.954545 0.526316 +vt 0.712121 0.526316 +vt 0.712121 0.815789 +vt 0.954545 0.789474 +vt 0.954545 0.815789 +vt 0.712121 0.789474 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.484848 0.578947 +vt 0.181818 0.842105 +vt 0.181818 0.578947 +vt 0.181818 0.578947 +vt 0.484848 0.842105 +vt 0.181818 0.842105 +vt 0.666667 0.815789 +vt 0.606061 0.605263 +vt 0.666667 0.605263 +vt 0.606061 0.815789 +vt 0.484848 0.842105 +vt 0.606061 0.815789 +vt 0.666667 0.921053 +vt 0.606061 0.921053 +vt 0.484848 0.578947 +vt 0.666667 0.500000 +vt 0.606061 0.500000 +vt 0.000000 0.605263 +vt 0.060606 0.815789 +vt 0.000000 0.815789 +vt 0.060606 0.605263 +vt 0.060606 0.605263 +vt 0.000000 0.500000 +vt 0.060606 0.500000 +vt 0.000000 0.921053 +vt 0.060606 0.921053 +vt 0.454545 0.421053 +vt 0.212121 0.473684 +vt 0.212121 0.421053 +vt 0.212121 0.947368 +vt 0.454545 0.473684 +vt 0.575758 0.421053 +vt 0.575758 0.473684 +vt 0.090909 0.421053 +vt 0.090909 0.473684 +vt 0.212121 1.000000 +vt 0.454545 0.947368 +vt 0.454545 1.000000 +vt 0.454545 0.473684 +vt 0.212121 0.947368 +vt 0.090909 1.000000 +vt 0.090909 0.947368 +vt 0.575758 1.000000 +vt 0.575758 0.947368 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.712121 0.921053 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.606061 0.605263 +vt 0.060606 0.815789 +vt 0.454545 0.947368 +vt 0.212121 0.473684 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.833333 0.421053 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.742424 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.969697 0.447368 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.833333 0.421053 +vt 0.803030 0.447368 +vt 0.787879 0.421053 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.787879 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.742424 0.342105 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.833333 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.878788 0.421053 +vt 0.848485 0.447368 +vt 0.833333 0.421053 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.742424 0.342105 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.878788 0.447368 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.833333 0.421053 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.742424 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.8944 0.4472 +vn -0.9701 0.0000 -0.2425 +vn 0.0000 0.8944 -0.4472 +vn 0.9701 0.0000 -0.2425 +vn 0.0000 -0.8944 -0.4472 +vn 0.9701 0.0000 0.2425 +vn 0.0000 0.8944 0.4472 +vn -0.9701 0.0000 0.2425 +vn -0.4472 -0.8944 0.0000 +vn 0.2425 0.0000 -0.9701 +vn 0.4472 0.8944 0.0000 +vn 0.2425 0.0000 0.9701 +vn 0.4472 -0.8944 0.0000 +vn -0.2425 0.0000 0.9701 +vn -0.4472 0.8944 0.0000 +vn -0.2425 0.0000 -0.9701 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.4472 0.8944 +vn 0.6325 0.4472 0.6325 +vn -0.0000 -0.2425 0.9701 +vn 0.6860 -0.2425 0.6860 +vn -0.6325 0.4472 -0.6325 +vn -0.8944 0.4472 0.0000 +vn 0.0000 -0.2425 -0.9701 +vn -0.6860 -0.2425 -0.6860 +vn 0.8944 0.4472 0.0000 +vn -0.9701 -0.2425 0.0000 +vn -0.6325 0.4472 0.6325 +vn 0.9701 -0.2425 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.6860 -0.2425 -0.6860 +vn -0.6860 -0.2425 0.6860 +vn 0.0000 0.4472 -0.8944 +s off +f 22/45/13 24/46/13 19/47/13 +f 25/48/14 28/49/14 27/50/14 +f 27/51/15 29/52/15 30/53/15 +f 26/54/16 32/55/16 31/56/16 +f 28/49/17 31/56/17 29/52/17 +f 25/57/18 30/53/18 32/58/18 +f 40/59/19 34/60/19 38/61/19 +f 38/62/20 35/63/20 37/64/20 +f 39/65/21 33/66/21 40/67/21 +f 34/60/14 36/68/14 35/63/14 +f 42/69/15 40/67/15 41/70/15 +f 43/71/16 37/64/16 44/72/16 +f 41/73/17 38/61/17 43/74/17 +f 44/75/18 39/76/18 42/77/18 +f 37/78/22 36/68/22 39/76/22 +f 47/79/15 46/80/15 45/81/15 +f 50/82/17 45/83/17 46/84/17 +f 51/85/17 48/86/17 47/79/17 +f 54/87/15 49/88/15 50/82/15 +f 56/89/18 53/90/18 54/87/18 +f 51/85/16 56/89/16 52/91/16 +f 45/92/14 53/90/14 55/93/14 +f 45/92/14 51/94/14 47/95/14 +f 46/96/13 54/87/13 50/97/13 +f 46/96/13 52/98/13 56/89/13 +f 63/99/17 60/100/17 59/101/17 +f 62/102/18 57/103/18 58/104/18 +f 64/105/16 58/104/16 60/100/16 +f 61/106/15 59/107/15 57/103/15 +f 67/108/13 66/109/13 65/110/13 +f 71/111/14 69/112/14 70/113/14 +f 74/114/15 76/115/15 73/116/15 +f 67/108/23 73/117/23 68/118/23 +f 75/119/24 67/120/24 69/121/24 +f 76/115/25 69/112/25 72/122/25 +f 68/123/26 76/115/26 72/124/26 +f 78/125/16 80/126/16 77/127/16 +f 66/109/27 77/128/27 65/110/27 +f 79/129/28 66/130/28 71/131/28 +f 80/126/29 71/111/29 70/113/29 +f 65/132/30 80/126/30 70/133/30 +f 82/134/17 84/135/17 81/136/17 +f 68/118/31 81/137/31 66/109/31 +f 83/138/32 68/139/32 72/140/32 +f 84/135/33 72/122/33 71/111/33 +f 66/141/34 84/135/34 71/142/34 +f 86/143/18 88/144/18 85/145/18 +f 65/110/35 85/146/35 67/108/35 +f 87/147/36 65/148/36 70/149/36 +f 88/144/37 70/113/37 69/112/37 +f 67/150/38 88/144/38 69/151/38 +f 123/152/14 122/153/14 127/154/14 +f 130/155/16 132/156/16 129/157/16 +f 132/156/39 133/158/39 129/157/39 +f 130/155/40 135/159/40 131/160/40 +f 142/161/13 144/162/13 139/163/13 +f 179/164/14 178/165/14 183/166/14 +f 186/167/15 188/168/15 185/169/15 +f 188/168/41 189/170/41 185/169/41 +f 186/167/42 191/171/42 187/172/42 +f 198/173/13 200/174/13 195/175/13 +f 235/176/14 234/177/14 239/178/14 +f 242/179/17 244/180/17 241/181/17 +f 244/180/40 245/182/40 241/181/40 +f 242/179/41 247/183/41 243/184/41 +f 254/185/13 256/186/13 251/187/13 +f 291/188/14 290/189/14 295/190/14 +f 298/191/18 300/192/18 297/193/18 +f 300/192/42 301/194/42 297/193/42 +f 298/191/39 303/195/39 299/196/39 +f 307/197/16 306/198/16 305/199/16 +f 310/200/18 305/201/18 306/202/18 +f 311/203/18 308/204/18 307/197/18 +f 314/205/16 309/206/16 310/200/16 +f 316/207/17 313/208/17 314/205/17 +f 311/203/15 316/207/15 312/209/15 +f 305/210/14 313/208/14 315/211/14 +f 305/210/14 311/212/14 307/213/14 +f 306/214/13 314/205/13 310/215/13 +f 306/214/13 312/216/13 316/207/13 +f 323/217/18 320/218/18 319/219/18 +f 322/220/17 317/221/17 318/222/17 +f 324/223/15 318/222/15 320/218/15 +f 321/224/16 319/225/16 317/221/16 +f 327/226/18 326/227/18 325/228/18 +f 330/229/15 325/230/15 326/231/15 +f 331/232/15 328/233/15 327/226/15 +f 334/234/18 329/235/18 330/229/18 +f 336/236/16 333/237/16 334/234/16 +f 331/232/17 336/236/17 332/238/17 +f 325/239/14 333/237/14 335/240/14 +f 325/239/14 331/241/14 327/242/14 +f 326/243/13 334/234/13 330/244/13 +f 326/243/13 332/245/13 336/236/13 +f 343/246/15 340/247/15 339/248/15 +f 342/249/16 337/250/16 338/251/16 +f 344/252/17 338/251/17 340/247/17 +f 341/253/18 339/254/18 337/250/18 +f 347/255/17 346/256/17 345/257/17 +f 350/258/16 345/259/16 346/260/16 +f 351/261/16 348/262/16 347/255/16 +f 354/263/17 349/264/17 350/258/17 +f 356/265/15 353/266/15 354/263/15 +f 351/261/18 356/265/18 352/267/18 +f 345/268/14 353/266/14 355/269/14 +f 345/268/14 351/270/14 347/271/14 +f 346/272/13 354/263/13 350/273/13 +f 346/272/13 352/274/13 356/265/13 +f 363/275/16 360/276/16 359/277/16 +f 362/278/15 357/279/15 358/280/15 +f 364/281/18 358/280/18 360/276/18 +f 361/282/17 359/283/17 357/279/17 +f 24/46/13 23/284/13 19/47/13 +f 23/284/13 17/285/13 19/47/13 +f 17/285/13 18/286/13 19/47/13 +f 19/47/13 20/287/13 21/288/13 +f 21/288/13 22/45/13 19/47/13 +f 25/48/14 26/54/14 28/49/14 +f 27/51/15 28/49/15 29/52/15 +f 26/54/16 25/289/16 32/55/16 +f 28/49/17 26/54/17 31/56/17 +f 25/57/18 27/51/18 30/53/18 +f 40/59/19 33/66/19 34/60/19 +f 38/62/20 34/60/20 35/63/20 +f 39/65/21 36/68/21 33/66/21 +f 34/60/14 33/66/14 36/68/14 +f 42/69/15 39/65/15 40/67/15 +f 43/71/16 38/62/16 37/64/16 +f 41/73/17 40/59/17 38/61/17 +f 44/75/18 37/78/18 39/76/18 +f 37/78/22 35/63/22 36/68/22 +f 47/79/15 48/86/15 46/80/15 +f 50/82/17 49/88/17 45/83/17 +f 51/85/17 52/91/17 48/86/17 +f 54/87/15 53/90/15 49/88/15 +f 56/89/18 55/93/18 53/90/18 +f 51/85/16 55/93/16 56/89/16 +f 45/92/14 49/290/14 53/90/14 +f 45/92/14 55/93/14 51/94/14 +f 46/96/13 56/89/13 54/87/13 +f 46/96/13 48/291/13 52/98/13 +f 63/99/17 64/105/17 60/100/17 +f 62/102/18 61/106/18 57/103/18 +f 64/105/16 62/102/16 58/104/16 +f 61/106/15 63/292/15 59/107/15 +f 67/108/13 68/118/13 66/109/13 +f 71/111/14 72/122/14 69/112/14 +f 74/114/15 75/119/15 76/115/15 +f 67/108/23 74/293/23 73/117/23 +f 75/119/24 74/114/24 67/120/24 +f 76/115/25 75/119/25 69/112/25 +f 68/123/26 73/116/26 76/115/26 +f 78/125/16 79/129/16 80/126/16 +f 66/109/27 78/294/27 77/128/27 +f 79/129/28 78/125/28 66/130/28 +f 80/126/29 79/129/29 71/111/29 +f 65/132/30 77/127/30 80/126/30 +f 82/134/17 83/138/17 84/135/17 +f 68/118/31 82/295/31 81/137/31 +f 83/138/32 82/134/32 68/139/32 +f 84/135/33 83/138/33 72/122/33 +f 66/141/34 81/136/34 84/135/34 +f 86/143/18 87/147/18 88/144/18 +f 65/110/35 86/296/35 85/146/35 +f 87/147/36 86/143/36 65/148/36 +f 88/144/37 87/147/37 70/113/37 +f 67/150/38 85/145/38 88/144/38 +f 123/152/14 121/297/14 122/153/14 +f 122/153/14 128/298/14 127/154/14 +f 127/154/14 126/299/14 125/300/14 +f 125/300/14 124/301/14 127/154/14 +f 124/301/14 123/152/14 127/154/14 +f 130/155/16 131/160/16 132/156/16 +f 132/156/39 136/302/39 133/158/39 +f 130/155/40 134/303/40 135/159/40 +f 144/162/13 143/304/13 139/163/13 +f 143/304/13 137/305/13 139/163/13 +f 137/305/13 138/306/13 139/163/13 +f 139/163/13 140/307/13 141/308/13 +f 141/308/13 142/161/13 139/163/13 +f 179/164/14 177/309/14 178/165/14 +f 178/165/14 184/310/14 183/166/14 +f 183/166/14 182/311/14 181/312/14 +f 181/312/14 180/313/14 183/166/14 +f 180/313/14 179/164/14 183/166/14 +f 186/167/15 187/172/15 188/168/15 +f 188/168/41 192/314/41 189/170/41 +f 186/167/42 190/315/42 191/171/42 +f 200/174/13 199/316/13 195/175/13 +f 199/316/13 193/317/13 195/175/13 +f 193/317/13 194/318/13 195/175/13 +f 195/175/13 196/319/13 197/320/13 +f 197/320/13 198/173/13 195/175/13 +f 235/176/14 233/321/14 234/177/14 +f 234/177/14 240/322/14 239/178/14 +f 239/178/14 238/323/14 237/324/14 +f 237/324/14 236/325/14 239/178/14 +f 236/325/14 235/176/14 239/178/14 +f 242/179/17 243/184/17 244/180/17 +f 244/180/40 248/326/40 245/182/40 +f 242/179/41 246/327/41 247/183/41 +f 256/186/13 255/328/13 251/187/13 +f 255/328/13 249/329/13 251/187/13 +f 249/329/13 250/330/13 251/187/13 +f 251/187/13 252/331/13 253/332/13 +f 253/332/13 254/185/13 251/187/13 +f 291/188/14 289/333/14 290/189/14 +f 290/189/14 296/334/14 295/190/14 +f 295/190/14 294/335/14 293/336/14 +f 293/336/14 292/337/14 295/190/14 +f 292/337/14 291/188/14 295/190/14 +f 298/191/18 299/196/18 300/192/18 +f 300/192/42 304/338/42 301/194/42 +f 298/191/39 302/339/39 303/195/39 +f 307/197/16 308/204/16 306/198/16 +f 310/200/18 309/206/18 305/201/18 +f 311/203/18 312/209/18 308/204/18 +f 314/205/16 313/208/16 309/206/16 +f 316/207/17 315/211/17 313/208/17 +f 311/203/15 315/211/15 316/207/15 +f 305/210/14 309/340/14 313/208/14 +f 305/210/14 315/211/14 311/212/14 +f 306/214/13 316/207/13 314/205/13 +f 306/214/13 308/341/13 312/216/13 +f 323/217/18 324/223/18 320/218/18 +f 322/220/17 321/224/17 317/221/17 +f 324/223/15 322/220/15 318/222/15 +f 321/224/16 323/342/16 319/225/16 +f 327/226/18 328/233/18 326/227/18 +f 330/229/15 329/235/15 325/230/15 +f 331/232/15 332/238/15 328/233/15 +f 334/234/18 333/237/18 329/235/18 +f 336/236/16 335/240/16 333/237/16 +f 331/232/17 335/240/17 336/236/17 +f 325/239/14 329/343/14 333/237/14 +f 325/239/14 335/240/14 331/241/14 +f 326/243/13 336/236/13 334/234/13 +f 326/243/13 328/344/13 332/245/13 +f 343/246/15 344/252/15 340/247/15 +f 342/249/16 341/253/16 337/250/16 +f 344/252/17 342/249/17 338/251/17 +f 341/253/18 343/345/18 339/254/18 +f 347/255/17 348/262/17 346/256/17 +f 350/258/16 349/264/16 345/259/16 +f 351/261/16 352/267/16 348/262/16 +f 354/263/17 353/266/17 349/264/17 +f 356/265/15 355/269/15 353/266/15 +f 351/261/18 355/269/18 356/265/18 +f 345/268/14 349/346/14 353/266/14 +f 345/268/14 355/269/14 351/270/14 +f 346/272/13 356/265/13 354/263/13 +f 346/272/13 348/347/13 352/274/13 +f 363/275/16 364/281/16 360/276/16 +f 362/278/15 361/282/15 357/279/15 +f 364/281/18 362/278/18 358/280/18 +f 361/282/17 363/348/17 359/283/17 +s 1 +f 108/349/39 18/350/16 107/351/16 +f 111/352/15 21/353/42 110/354/42 +f 89/355/40 23/356/17 90/357/17 +f 109/358/18 19/359/39 108/360/39 +f 112/361/41 22/362/15 111/363/15 +f 107/364/16 17/365/40 89/366/40 +f 90/367/17 24/368/41 112/369/41 +f 110/370/42 20/371/18 109/372/18 +f 104/373/43 118/374/44 119/375/43 +f 103/376/45 110/354/46 101/377/46 +f 92/378/18 93/379/42 91/380/18 +f 94/381/47 114/382/48 113/383/47 +f 95/384/49 89/366/50 93/379/50 +f 94/381/42 95/384/15 93/379/42 +f 102/385/44 117/386/51 118/387/44 +f 91/380/52 89/355/50 90/357/52 +f 96/388/15 97/389/41 95/390/15 +f 106/391/53 114/392/48 92/378/48 +f 101/377/46 109/372/54 99/393/54 +f 98/394/41 99/393/17 97/389/41 +f 98/394/55 117/395/51 100/396/51 +f 99/393/54 108/360/56 97/389/56 +f 100/396/17 101/377/40 99/393/17 +f 120/397/41 122/398/17 114/392/17 +f 105/399/57 111/363/45 103/376/45 +f 102/385/40 103/376/16 101/377/40 +f 106/391/53 119/400/43 120/401/53 +f 104/373/16 105/399/39 103/376/16 +f 96/402/58 113/403/47 115/404/58 +f 91/380/52 112/369/57 105/399/57 +f 106/391/39 91/380/18 105/399/39 +f 95/390/49 108/349/56 107/351/49 +f 96/388/58 116/405/55 98/394/55 +f 118/374/42 127/406/15 119/375/15 +f 116/407/39 125/408/18 117/395/18 +f 113/403/40 123/409/16 115/404/16 +f 119/400/15 128/410/41 120/401/41 +f 117/386/18 126/411/42 118/387/42 +f 115/412/16 124/413/39 116/405/39 +f 114/382/17 121/414/40 113/383/40 +f 164/415/41 138/416/15 163/417/15 +f 167/418/16 141/419/40 166/420/40 +f 145/421/42 143/422/18 146/423/18 +f 165/424/17 139/425/41 164/426/41 +f 168/427/39 142/428/16 167/429/16 +f 163/430/15 137/431/42 145/432/42 +f 146/433/18 144/434/39 168/435/39 +f 166/436/40 140/437/17 165/438/17 +f 158/439/47 175/440/58 160/441/58 +f 157/442/50 167/418/49 166/420/50 +f 148/443/17 149/444/40 147/445/17 +f 150/446/44 170/447/51 169/448/44 +f 151/449/45 145/432/46 149/444/46 +f 150/446/40 151/449/16 149/444/40 +f 158/439/47 173/450/48 174/451/47 +f 147/445/54 145/421/46 146/423/54 +f 152/452/16 153/453/39 151/454/16 +f 162/455/55 170/456/51 148/443/51 +f 157/442/50 165/438/52 155/457/52 +f 154/458/39 155/457/18 153/453/39 +f 154/458/53 173/459/48 156/460/48 +f 155/457/52 164/426/57 153/453/57 +f 156/460/18 157/442/42 155/457/18 +f 176/461/39 178/462/18 170/456/18 +f 159/463/49 168/427/56 167/429/49 +f 158/439/42 159/463/15 157/442/42 +f 162/455/55 175/464/58 176/465/55 +f 160/441/15 161/466/41 159/463/15 +f 152/467/43 169/468/44 171/469/43 +f 147/445/54 168/435/56 161/466/56 +f 162/455/41 147/445/17 161/466/41 +f 153/453/57 163/417/45 151/454/45 +f 154/458/53 171/470/43 172/471/53 +f 174/472/40 183/473/16 175/440/16 +f 172/474/41 181/475/17 173/459/17 +f 169/468/42 179/476/15 171/469/15 +f 175/464/16 184/477/39 176/465/39 +f 173/450/17 182/478/40 174/451/40 +f 171/470/15 180/479/41 172/471/41 +f 170/447/18 177/480/42 169/448/42 +f 220/481/40 194/482/17 219/483/17 +f 223/484/18 197/485/39 222/486/39 +f 201/487/41 199/488/15 202/489/15 +f 221/490/16 195/491/40 220/492/40 +f 224/493/42 198/494/18 223/495/18 +f 219/496/17 193/497/41 201/498/41 +f 202/499/15 200/500/42 224/501/42 +f 222/502/39 196/503/16 221/504/16 +f 216/505/51 230/506/55 231/507/51 +f 215/508/54 222/486/56 213/509/56 +f 204/510/16 205/511/39 203/512/16 +f 206/513/53 226/514/43 225/515/53 +f 205/511/57 219/496/52 201/498/57 +f 206/513/39 207/516/18 205/511/39 +f 212/517/58 230/518/55 214/519/55 +f 205/511/57 202/489/45 203/512/45 +f 208/520/18 209/521/42 207/522/18 +f 218/523/44 226/524/43 204/510/43 +f 213/509/56 221/504/49 211/525/49 +f 210/526/42 211/525/15 209/521/42 +f 210/526/47 229/527/58 212/517/58 +f 209/521/50 221/490/49 220/492/50 +f 212/517/15 213/509/41 211/525/15 +f 232/528/42 234/529/15 226/524/15 +f 215/508/54 224/493/46 223/495/54 +f 214/519/41 215/508/17 213/509/41 +f 218/523/44 231/530/51 232/531/44 +f 216/505/17 217/532/40 215/508/17 +f 208/533/48 225/534/53 227/535/48 +f 203/512/45 224/501/46 217/532/46 +f 218/523/40 203/512/16 217/532/40 +f 209/521/50 219/483/52 207/522/52 +f 210/526/47 227/536/48 228/537/47 +f 230/506/39 239/538/18 231/507/18 +f 228/539/40 237/540/16 229/527/16 +f 225/534/41 235/541/17 227/535/17 +f 231/530/18 240/542/42 232/531/42 +f 229/543/16 238/544/39 230/518/39 +f 227/536/17 236/545/40 228/537/40 +f 226/514/15 233/546/41 225/515/41 +f 276/547/42 250/548/18 275/549/18 +f 279/550/17 253/551/41 278/552/41 +f 257/553/39 255/554/16 258/555/16 +f 277/556/15 251/557/42 276/558/42 +f 280/559/40 254/560/17 279/561/17 +f 275/562/18 249/563/39 257/564/39 +f 258/565/16 256/566/40 280/567/40 +f 278/568/41 252/569/15 277/570/15 +f 272/571/48 286/572/53 287/573/48 +f 271/574/52 278/552/57 269/575/57 +f 260/576/15 261/577/41 259/578/15 +f 262/579/55 282/580/58 281/581/55 +f 263/582/54 257/564/56 261/577/56 +f 262/579/41 263/582/17 261/577/41 +f 270/583/53 285/584/43 286/585/53 +f 261/577/56 258/555/49 259/578/49 +f 264/586/17 265/587/40 263/588/17 +f 274/589/47 282/590/58 260/576/58 +f 269/575/57 277/570/45 267/591/45 +f 266/592/40 267/591/16 265/587/40 +f 266/592/44 285/593/43 268/594/43 +f 267/591/45 276/558/46 265/587/46 +f 268/594/16 269/575/39 267/591/16 +f 288/595/40 290/596/16 282/590/16 +f 273/597/50 279/561/52 271/574/52 +f 270/583/39 271/574/18 269/575/39 +f 274/589/47 287/598/48 288/599/47 +f 272/571/18 273/597/42 271/574/18 +f 264/600/51 281/601/55 283/602/51 +f 259/578/49 280/567/50 273/597/50 +f 274/589/42 259/578/15 273/597/42 +f 265/587/46 275/549/54 263/588/54 +f 266/592/44 283/603/51 284/604/44 +f 286/572/41 295/605/17 287/573/17 +f 284/606/42 293/607/15 285/593/15 +f 281/601/39 291/608/18 283/602/18 +f 287/598/17 296/609/40 288/599/40 +f 285/584/15 294/610/41 286/585/41 +f 283/603/18 292/611/42 284/604/42 +f 282/580/16 289/612/39 281/581/39 +f 108/349/39 19/613/39 18/350/16 +f 111/352/15 22/614/15 21/353/42 +f 89/355/40 17/615/40 23/356/17 +f 109/358/18 20/616/18 19/359/39 +f 112/361/41 24/617/41 22/362/15 +f 107/364/16 18/618/16 17/365/40 +f 90/367/17 23/619/17 24/368/41 +f 110/370/42 21/620/42 20/371/18 +f 104/373/43 102/385/44 118/374/44 +f 103/376/45 111/352/45 110/354/46 +f 92/378/18 94/381/42 93/379/42 +f 94/381/47 92/378/48 114/382/48 +f 95/384/49 107/364/49 89/366/50 +f 94/381/42 96/402/15 95/384/15 +f 102/385/44 100/396/51 117/386/51 +f 91/380/52 93/379/50 89/355/50 +f 96/388/15 98/394/41 97/389/41 +f 106/391/53 120/397/53 114/392/48 +f 101/377/46 110/370/46 109/372/54 +f 98/394/41 100/396/17 99/393/17 +f 98/394/55 116/407/55 117/395/51 +f 99/393/54 109/358/54 108/360/56 +f 100/396/17 102/385/40 101/377/40 +f 120/397/41 128/621/41 122/398/17 +f 105/399/57 112/361/57 111/363/45 +f 102/385/40 104/373/16 103/376/16 +f 106/391/53 104/373/43 119/400/43 +f 104/373/16 106/391/39 105/399/39 +f 96/402/58 94/381/47 113/403/47 +f 91/380/52 90/367/52 112/369/57 +f 106/391/39 92/378/18 91/380/18 +f 95/390/49 97/389/56 108/349/56 +f 96/388/58 115/412/58 116/405/55 +f 118/374/42 126/622/42 127/406/15 +f 116/407/39 124/623/39 125/408/18 +f 113/403/40 121/624/40 123/409/16 +f 119/400/15 127/625/15 128/410/41 +f 117/386/18 125/626/18 126/411/42 +f 115/412/16 123/627/16 124/413/39 +f 114/382/17 122/628/17 121/414/40 +f 164/415/41 139/629/41 138/416/15 +f 167/418/16 142/630/16 141/419/40 +f 145/421/42 137/631/42 143/422/18 +f 165/424/17 140/632/17 139/425/41 +f 168/427/39 144/633/39 142/428/16 +f 163/430/15 138/634/15 137/431/42 +f 146/433/18 143/635/18 144/434/39 +f 166/436/40 141/636/40 140/437/17 +f 158/439/47 174/472/47 175/440/58 +f 157/442/50 159/463/49 167/418/49 +f 148/443/17 150/446/40 149/444/40 +f 150/446/44 148/443/51 170/447/51 +f 151/449/45 163/430/45 145/432/46 +f 150/446/40 152/467/16 151/449/16 +f 158/439/47 156/460/48 173/450/48 +f 147/445/54 149/444/46 145/421/46 +f 152/452/16 154/458/39 153/453/39 +f 162/455/55 176/461/55 170/456/51 +f 157/442/50 166/436/50 165/438/52 +f 154/458/39 156/460/18 155/457/18 +f 154/458/53 172/474/53 173/459/48 +f 155/457/52 165/424/52 164/426/57 +f 156/460/18 158/439/42 157/442/42 +f 176/461/39 184/637/39 178/462/18 +f 159/463/49 161/466/56 168/427/56 +f 158/439/42 160/441/15 159/463/15 +f 162/455/55 160/441/58 175/464/58 +f 160/441/15 162/455/41 161/466/41 +f 152/467/43 150/446/44 169/468/44 +f 147/445/54 146/433/54 168/435/56 +f 162/455/41 148/443/17 147/445/17 +f 153/453/57 164/415/57 163/417/45 +f 154/458/53 152/452/43 171/470/43 +f 174/472/40 182/638/40 183/473/16 +f 172/474/41 180/639/41 181/475/17 +f 169/468/42 177/640/42 179/476/15 +f 175/464/16 183/641/16 184/477/39 +f 173/450/17 181/642/17 182/478/40 +f 171/470/15 179/643/15 180/479/41 +f 170/447/18 178/644/18 177/480/42 +f 220/481/40 195/645/40 194/482/17 +f 223/484/18 198/646/18 197/485/39 +f 201/487/41 193/647/41 199/488/15 +f 221/490/16 196/648/16 195/491/40 +f 224/493/42 200/649/42 198/494/18 +f 219/496/17 194/650/17 193/497/41 +f 202/499/15 199/651/15 200/500/42 +f 222/502/39 197/652/39 196/503/16 +f 216/505/51 214/519/55 230/506/55 +f 215/508/54 223/484/54 222/486/56 +f 204/510/16 206/513/39 205/511/39 +f 206/513/53 204/510/43 226/514/43 +f 205/511/57 207/516/52 219/496/52 +f 206/513/39 208/533/18 207/516/18 +f 212/517/58 229/543/58 230/518/55 +f 205/511/57 201/487/57 202/489/45 +f 208/520/18 210/526/42 209/521/42 +f 218/523/44 232/528/44 226/524/43 +f 213/509/56 222/502/56 221/504/49 +f 210/526/42 212/517/15 211/525/15 +f 210/526/47 228/539/47 229/527/58 +f 209/521/50 211/525/49 221/490/49 +f 212/517/15 214/519/41 213/509/41 +f 232/528/42 240/653/42 234/529/15 +f 215/508/54 217/532/46 224/493/46 +f 214/519/41 216/505/17 215/508/17 +f 218/523/44 216/505/51 231/530/51 +f 216/505/17 218/523/40 217/532/40 +f 208/533/48 206/513/53 225/534/53 +f 203/512/45 202/499/45 224/501/46 +f 218/523/40 204/510/16 203/512/16 +f 209/521/50 220/481/50 219/483/52 +f 210/526/47 208/520/48 227/536/48 +f 230/506/39 238/654/39 239/538/18 +f 228/539/40 236/655/40 237/540/16 +f 225/534/41 233/656/41 235/541/17 +f 231/530/18 239/657/18 240/542/42 +f 229/543/16 237/658/16 238/544/39 +f 227/536/17 235/659/17 236/545/40 +f 226/514/15 234/660/15 233/546/41 +f 276/547/42 251/661/42 250/548/18 +f 279/550/17 254/662/17 253/551/41 +f 257/553/39 249/663/39 255/554/16 +f 277/556/15 252/664/15 251/557/42 +f 280/559/40 256/665/40 254/560/17 +f 275/562/18 250/666/18 249/563/39 +f 258/565/16 255/667/16 256/566/40 +f 278/568/41 253/668/41 252/569/15 +f 272/571/48 270/583/53 286/572/53 +f 271/574/52 279/550/52 278/552/57 +f 260/576/15 262/579/41 261/577/41 +f 262/579/55 260/576/58 282/580/58 +f 263/582/54 275/562/54 257/564/56 +f 262/579/41 264/600/17 263/582/17 +f 270/583/53 268/594/43 285/584/43 +f 261/577/56 257/553/56 258/555/49 +f 264/586/17 266/592/40 265/587/40 +f 274/589/47 288/595/47 282/590/58 +f 269/575/57 278/568/57 277/570/45 +f 266/592/40 268/594/16 267/591/16 +f 266/592/44 284/606/44 285/593/43 +f 267/591/45 277/556/45 276/558/46 +f 268/594/16 270/583/39 269/575/39 +f 288/595/40 296/669/40 290/596/16 +f 273/597/50 280/559/50 279/561/52 +f 270/583/39 272/571/18 271/574/18 +f 274/589/47 272/571/48 287/598/48 +f 272/571/18 274/589/42 273/597/42 +f 264/600/51 262/579/55 281/601/55 +f 259/578/49 258/565/49 280/567/50 +f 274/589/42 260/576/15 259/578/15 +f 265/587/46 276/547/46 275/549/54 +f 266/592/44 264/586/51 283/603/51 +f 286/572/41 294/670/41 295/605/17 +f 284/606/42 292/671/42 293/607/15 +f 281/601/39 289/672/39 291/608/18 +f 287/598/17 295/673/17 296/609/40 +f 285/584/15 293/674/15 294/610/41 +f 283/603/18 291/675/18 292/611/42 +f 282/580/16 290/676/16 289/612/39 diff --git a/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj new file mode 100644 index 000000000..ac6d44aa7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj @@ -0,0 +1,4253 @@ +# Blender v2.79 (sub 0) OBJ File: 'exposure_chamber.blend' +# www.blender.org +o Magnets +v 1.961571 0.500000 0.292636 +v 1.961571 0.500000 -0.292635 +v 1.225981 0.500000 0.243863 +v 1.225982 0.500000 -0.243863 +v 1.961571 1.250000 0.292636 +v 1.225981 1.250000 0.243863 +v 1.961571 1.250000 -0.292635 +v 1.225982 1.250000 -0.243863 +v 1.225982 4.500000 -0.243863 +v 1.961571 4.500000 -0.292635 +v 1.225981 4.500000 0.243863 +v 1.961571 4.500000 0.292636 +v 1.225982 3.750000 -0.243863 +v 1.225981 3.750000 0.243863 +v 1.961571 3.750000 -0.292635 +v 1.961571 3.750000 0.292636 +v -1.961571 0.500000 -0.292636 +v -1.961571 0.500000 0.292636 +v -1.225981 0.500000 -0.243863 +v -1.225983 0.500000 0.243863 +v -1.961571 1.250000 -0.292636 +v -1.225981 1.250000 -0.243863 +v -1.961571 1.250000 0.292636 +v -1.225983 1.250000 0.243863 +v -1.225983 4.500000 0.243863 +v -1.961571 4.500000 0.292636 +v -1.225981 4.500000 -0.243863 +v -1.961571 4.500000 -0.292636 +v -1.225983 3.750000 0.243863 +v -1.225981 3.750000 -0.243863 +v -1.961571 3.750000 0.292636 +v -1.961571 3.750000 -0.292636 +v 0.292635 0.500000 -1.961571 +v -0.292636 0.500000 -1.961571 +v 0.243863 0.500000 -1.225981 +v -0.243863 0.500000 -1.225982 +v 0.292635 1.250000 -1.961571 +v 0.243863 1.250000 -1.225981 +v -0.292636 1.250000 -1.961571 +v -0.243863 1.250000 -1.225982 +v -0.243863 4.500000 -1.225982 +v -0.292636 4.500000 -1.961571 +v 0.243863 4.500000 -1.225981 +v 0.292635 4.500000 -1.961571 +v -0.243863 3.750000 -1.225982 +v 0.243863 3.750000 -1.225981 +v -0.292636 3.750000 -1.961571 +v 0.292635 3.750000 -1.961571 +v -0.292636 0.500000 1.961571 +v 0.292635 0.500000 1.961571 +v -0.243863 0.500000 1.225981 +v 0.243863 0.500000 1.225982 +v -0.292636 1.250000 1.961571 +v -0.243863 1.250000 1.225981 +v 0.292635 1.250000 1.961571 +v 0.243863 1.250000 1.225982 +v 0.243863 4.500000 1.225982 +v 0.292635 4.500000 1.961571 +v -0.243863 4.500000 1.225981 +v -0.292636 4.500000 1.961571 +v 0.243863 3.750000 1.225982 +v -0.243863 3.750000 1.225981 +v 0.292635 3.750000 1.961571 +v -0.292636 3.750000 1.961571 +v 1.593965 0.500000 -1.180115 +v 1.180116 0.500000 -1.593965 +v 1.039336 0.500000 -0.694462 +v 0.694463 0.500000 -1.039337 +v 1.593965 1.250000 -1.180115 +v 1.039336 1.250000 -0.694462 +v 1.180116 1.250000 -1.593965 +v 0.694463 1.250000 -1.039337 +v 0.694463 4.500000 -1.039337 +v 1.180116 4.500000 -1.593965 +v 1.039336 4.500000 -0.694462 +v 1.593965 4.500000 -1.180115 +v 0.694463 3.750000 -1.039337 +v 1.039336 3.750000 -0.694462 +v 1.180116 3.750000 -1.593965 +v 1.593965 3.750000 -1.180115 +v -1.593966 0.500000 1.180115 +v -1.180116 0.500000 1.593965 +v -1.039337 0.500000 0.694462 +v -0.694464 0.500000 1.039337 +v -1.593966 1.250000 1.180115 +v -1.039337 1.250000 0.694462 +v -1.180116 1.250000 1.593965 +v -0.694464 1.250000 1.039337 +v -0.694464 4.500000 1.039337 +v -1.180116 4.500000 1.593965 +v -1.039337 4.500000 0.694462 +v -1.593966 4.500000 1.180115 +v -0.694464 3.750000 1.039337 +v -1.039337 3.750000 0.694462 +v -1.180116 3.750000 1.593965 +v -1.593966 3.750000 1.180115 +v -1.180116 0.500000 -1.593965 +v -1.593966 0.500000 -1.180115 +v -0.694463 0.500000 -1.039337 +v -1.039337 0.500000 -0.694463 +v -1.180116 1.250000 -1.593965 +v -0.694463 1.250000 -1.039337 +v -1.593966 1.250000 -1.180115 +v -1.039337 1.250000 -0.694463 +v -1.039337 4.500000 -0.694463 +v -1.593966 4.500000 -1.180115 +v -0.694463 4.500000 -1.039337 +v -1.180116 4.500000 -1.593965 +v -1.039337 3.750000 -0.694463 +v -0.694463 3.750000 -1.039337 +v -1.593966 3.750000 -1.180115 +v -1.180116 3.750000 -1.593965 +v 1.180115 0.500000 1.593965 +v 1.593965 0.500000 1.180115 +v 0.694462 0.500000 1.039337 +v 1.039337 0.500000 0.694463 +v 1.180115 1.250000 1.593965 +v 0.694462 1.250000 1.039337 +v 1.593965 1.250000 1.180115 +v 1.039337 1.250000 0.694463 +v 1.039337 4.500000 0.694463 +v 1.593965 4.500000 1.180115 +v 0.694462 4.500000 1.039337 +v 1.180115 4.500000 1.593965 +v 1.039337 3.750000 0.694463 +v 0.694462 3.750000 1.039337 +v 1.593965 3.750000 1.180115 +v 1.180115 3.750000 1.593965 +v 1.021021 0.500000 -1.700268 +v 0.480301 0.500000 -1.924242 +v 0.694463 0.500000 -1.039336 +v 0.243863 0.500000 -1.225982 +v 1.021021 1.250000 -1.700268 +v 0.694463 1.250000 -1.039336 +v 0.480301 1.250000 -1.924242 +v 0.243863 1.250000 -1.225982 +v 0.243863 4.500000 -1.225982 +v 0.480301 4.500000 -1.924242 +v 0.694463 4.500000 -1.039336 +v 1.021021 4.500000 -1.700268 +v 0.243863 3.750000 -1.225982 +v 0.694463 3.750000 -1.039336 +v 0.480301 3.750000 -1.924242 +v 1.021021 3.750000 -1.700268 +v -1.021021 0.500000 1.700269 +v -0.480301 0.500000 1.924242 +v -0.694463 0.500000 1.039336 +v -0.243863 0.500000 1.225982 +v -1.021021 1.250000 1.700269 +v -0.694463 1.250000 1.039336 +v -0.480301 1.250000 1.924242 +v -0.243863 1.250000 1.225982 +v -0.243863 4.500000 1.225982 +v -0.480301 4.500000 1.924242 +v -0.694463 4.500000 1.039336 +v -1.021021 4.500000 1.700269 +v -0.243863 3.750000 1.225982 +v -0.694463 3.750000 1.039336 +v -0.480301 3.750000 1.924242 +v -1.021021 3.750000 1.700269 +v -1.700269 0.500000 -1.021021 +v -1.924242 0.500000 -0.480300 +v -1.039337 0.500000 -0.694463 +v -1.225983 0.500000 -0.243863 +v -1.700269 1.250000 -1.021021 +v -1.039337 1.250000 -0.694463 +v -1.924242 1.250000 -0.480300 +v -1.225983 1.250000 -0.243863 +v -1.225983 4.500000 -0.243863 +v -1.924242 4.500000 -0.480300 +v -1.039337 4.500000 -0.694463 +v -1.700269 4.500000 -1.021021 +v -1.225983 3.750000 -0.243863 +v -1.039337 3.750000 -0.694463 +v -1.924242 3.750000 -0.480300 +v -1.700269 3.750000 -1.021021 +v 1.700268 0.500000 1.021021 +v 1.924242 0.500000 0.480300 +v 1.039336 0.500000 0.694463 +v 1.225982 0.500000 0.243863 +v 1.700268 1.250000 1.021021 +v 1.039336 1.250000 0.694463 +v 1.924242 1.250000 0.480300 +v 1.225982 1.250000 0.243863 +v 1.225982 4.500000 0.243863 +v 1.924242 4.500000 0.480300 +v 1.039336 4.500000 0.694463 +v 1.700268 4.500000 1.021021 +v 1.225982 3.750000 0.243863 +v 1.039336 3.750000 0.694463 +v 1.924242 3.750000 0.480300 +v 1.700268 3.750000 1.021021 +v -0.480301 0.500000 -1.924242 +v -1.021021 0.500000 -1.700269 +v -0.243863 0.500000 -1.225981 +v -0.694464 0.500000 -1.039337 +v -0.480301 1.250000 -1.924242 +v -0.243863 1.250000 -1.225981 +v -1.021021 1.250000 -1.700269 +v -0.694464 1.250000 -1.039337 +v -0.694464 4.500000 -1.039337 +v -1.021021 4.500000 -1.700269 +v -0.243863 4.500000 -1.225981 +v -0.480301 4.500000 -1.924242 +v -0.694464 3.750000 -1.039337 +v -0.243863 3.750000 -1.225981 +v -1.021021 3.750000 -1.700269 +v -0.480301 3.750000 -1.924242 +v 0.480300 0.500000 1.924242 +v 1.021021 0.500000 1.700268 +v 0.243862 0.500000 1.225981 +v 0.694463 0.500000 1.039337 +v 0.480300 1.250000 1.924242 +v 0.243862 1.250000 1.225981 +v 1.021021 1.250000 1.700268 +v 0.694463 1.250000 1.039337 +v 0.694463 4.500000 1.039337 +v 1.021021 4.500000 1.700268 +v 0.243862 4.500000 1.225981 +v 0.480300 4.500000 1.924242 +v 0.694463 3.750000 1.039337 +v 0.243862 3.750000 1.225981 +v 1.021021 3.750000 1.700268 +v 0.480300 3.750000 1.924242 +v -1.924242 0.500000 0.480301 +v -1.700269 0.500000 1.021021 +v -1.225981 0.500000 0.243863 +v -1.039337 0.500000 0.694463 +v -1.924242 1.250000 0.480301 +v -1.225981 1.250000 0.243863 +v -1.700269 1.250000 1.021021 +v -1.039337 1.250000 0.694463 +v -1.039337 4.500000 0.694463 +v -1.700269 4.500000 1.021021 +v -1.225981 4.500000 0.243863 +v -1.924242 4.500000 0.480301 +v -1.039337 3.750000 0.694463 +v -1.225981 3.750000 0.243863 +v -1.700269 3.750000 1.021021 +v -1.924242 3.750000 0.480301 +v 1.924242 0.500000 -0.480301 +v 1.700268 0.500000 -1.021021 +v 1.225981 0.500000 -0.243863 +v 1.039337 0.500000 -0.694463 +v 1.924242 1.250000 -0.480301 +v 1.225981 1.250000 -0.243863 +v 1.700268 1.250000 -1.021021 +v 1.039337 1.250000 -0.694463 +v 1.039337 4.500000 -0.694463 +v 1.700268 4.500000 -1.021021 +v 1.225981 4.500000 -0.243863 +v 1.924242 4.500000 -0.480301 +v 1.039337 3.750000 -0.694463 +v 1.225981 3.750000 -0.243863 +v 1.700268 3.750000 -1.021021 +v 1.924242 3.750000 -0.480301 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vn 0.0000 1.0000 0.0000 +vn -0.0662 0.0000 0.9978 +vn -0.0662 0.0000 -0.9978 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0662 0.0000 -0.9978 +vn 0.0662 0.0000 0.9978 +vn -1.0000 0.0000 0.0000 +vn 0.9978 0.0000 0.0662 +vn -0.9978 0.0000 0.0662 +vn 0.0000 0.0000 -1.0000 +vn -0.9978 0.0000 -0.0662 +vn 0.9978 0.0000 -0.0662 +vn 0.0000 0.0000 1.0000 +vn 0.6588 0.0000 0.7523 +vn -0.7523 0.0000 -0.6588 +vn 0.7071 0.0000 -0.7071 +vn -0.6588 0.0000 -0.7523 +vn 0.7523 0.0000 0.6588 +vn -0.7071 0.0000 0.7071 +vn 0.7523 0.0000 -0.6588 +vn -0.6588 0.0000 0.7523 +vn -0.7071 0.0000 -0.7071 +vn -0.7523 0.0000 0.6588 +vn 0.6588 0.0000 -0.7523 +vn 0.7071 0.0000 0.7071 +vn 0.8965 0.0000 0.4430 +vn -0.9472 0.0000 -0.3207 +vn 0.3827 0.0000 -0.9239 +vn -0.8965 0.0000 -0.4430 +vn 0.9472 0.0000 0.3207 +vn -0.3827 0.0000 0.9239 +vn 0.4430 0.0000 -0.8965 +vn -0.3207 0.0000 0.9472 +vn -0.9239 0.0000 -0.3827 +vn -0.4430 0.0000 0.8965 +vn 0.3207 0.0000 -0.9472 +vn 0.9239 0.0000 0.3827 +vn 0.9472 0.0000 -0.3207 +vn -0.8965 0.0000 0.4430 +vn -0.3827 0.0000 -0.9239 +vn -0.9472 0.0000 0.3207 +vn 0.8965 0.0000 -0.4430 +vn 0.3827 0.0000 0.9239 +vn -0.3207 0.0000 -0.9472 +vn 0.4430 0.0000 0.8965 +vn -0.9239 0.0000 0.3827 +vn 0.3207 0.0000 0.9472 +vn -0.4430 0.0000 -0.8965 +vn 0.9239 0.0000 -0.3827 +s off +f 5/1/1 8/2/1 6/3/1 +f 1/4/2 6/5/2 3/6/2 +f 4/7/3 7/8/3 2/9/3 +f 2/9/4 5/1/4 1/4/4 +f 15/10/4 12/11/4 16/12/4 +f 13/13/3 10/14/3 15/10/3 +f 16/12/2 11/15/2 14/16/2 +f 16/12/5 13/17/5 15/10/5 +f 21/18/1 24/19/1 22/20/1 +f 17/21/6 22/22/6 19/23/6 +f 20/24/7 23/25/7 18/26/7 +f 18/26/8 21/18/8 17/21/8 +f 31/27/8 28/28/8 32/29/8 +f 29/30/7 26/31/7 31/27/7 +f 32/29/6 27/32/6 30/33/6 +f 32/29/5 29/34/5 31/27/5 +f 37/35/1 40/36/1 38/37/1 +f 33/38/9 38/39/9 35/40/9 +f 36/41/10 39/42/10 34/43/10 +f 34/43/11 37/35/11 33/38/11 +f 47/44/11 44/45/11 48/46/11 +f 45/47/10 42/48/10 47/44/10 +f 48/46/9 43/49/9 46/50/9 +f 48/46/5 45/51/5 47/44/5 +f 53/52/1 56/53/1 54/54/1 +f 49/55/12 54/56/12 51/57/12 +f 52/58/13 55/59/13 50/60/13 +f 50/60/14 53/52/14 49/55/14 +f 63/61/14 60/62/14 64/63/14 +f 61/64/13 58/65/13 63/61/13 +f 64/63/12 59/66/12 62/67/12 +f 64/63/5 61/68/5 63/61/5 +f 69/69/1 72/70/1 70/71/1 +f 65/72/15 70/73/15 67/74/15 +f 68/75/16 71/76/16 66/77/16 +f 66/77/17 69/69/17 65/72/17 +f 79/78/17 76/79/17 80/80/17 +f 77/81/16 74/82/16 79/78/16 +f 80/80/15 75/83/15 78/84/15 +f 80/80/5 77/85/5 79/78/5 +f 85/86/1 88/87/1 86/88/1 +f 81/89/18 86/90/18 83/91/18 +f 84/92/19 87/93/19 82/94/19 +f 82/94/20 85/86/20 81/89/20 +f 95/95/20 92/96/20 96/97/20 +f 93/98/19 90/99/19 95/95/19 +f 96/97/18 91/100/18 94/101/18 +f 96/97/5 93/102/5 95/95/5 +f 101/103/1 104/104/1 102/105/1 +f 97/106/21 102/107/21 99/108/21 +f 100/109/22 103/110/22 98/111/22 +f 98/111/23 101/103/23 97/106/23 +f 111/112/23 108/113/23 112/114/23 +f 109/115/22 106/116/22 111/112/22 +f 112/114/21 107/117/21 110/118/21 +f 112/114/5 109/119/5 111/112/5 +f 117/120/1 120/121/1 118/122/1 +f 113/123/24 118/124/24 115/125/24 +f 116/126/25 119/127/25 114/128/25 +f 114/128/26 117/120/26 113/123/26 +f 127/129/26 124/130/26 128/131/26 +f 125/132/25 122/133/25 127/129/25 +f 128/131/24 123/134/24 126/135/24 +f 128/131/5 125/136/5 127/129/5 +f 133/137/1 136/138/1 134/139/1 +f 129/140/27 134/141/27 131/142/27 +f 132/143/28 135/144/28 130/145/28 +f 130/145/29 133/137/29 129/140/29 +f 143/146/29 140/147/29 144/148/29 +f 141/149/28 138/150/28 143/146/28 +f 144/148/27 139/151/27 142/152/27 +f 144/148/5 141/153/5 143/146/5 +f 149/154/1 152/155/1 150/156/1 +f 145/157/30 150/158/30 147/159/30 +f 148/160/31 151/161/31 146/162/31 +f 146/162/32 149/154/32 145/157/32 +f 159/163/32 156/164/32 160/165/32 +f 157/166/31 154/167/31 159/163/31 +f 160/165/30 155/168/30 158/169/30 +f 160/165/5 157/170/5 159/163/5 +f 165/171/1 168/172/1 166/173/1 +f 161/174/33 166/175/33 163/176/33 +f 164/177/34 167/178/34 162/179/34 +f 162/179/35 165/171/35 161/174/35 +f 175/180/35 172/181/35 176/182/35 +f 173/183/34 170/184/34 175/180/34 +f 176/182/33 171/185/33 174/186/33 +f 176/182/5 173/187/5 175/180/5 +f 181/188/1 184/189/1 182/190/1 +f 177/191/36 182/192/36 179/193/36 +f 180/194/37 183/195/37 178/196/37 +f 178/196/38 181/188/38 177/191/38 +f 191/197/38 188/198/38 192/199/38 +f 189/200/37 186/201/37 191/197/37 +f 192/199/36 187/202/36 190/203/36 +f 192/199/5 189/204/5 191/197/5 +f 197/205/1 200/206/1 198/207/1 +f 193/208/39 198/209/39 195/210/39 +f 196/211/40 199/212/40 194/213/40 +f 194/213/41 197/205/41 193/208/41 +f 207/214/41 204/215/41 208/216/41 +f 205/217/40 202/218/40 207/214/40 +f 208/216/39 203/219/39 206/220/39 +f 208/216/5 205/221/5 207/214/5 +f 213/222/1 216/223/1 214/224/1 +f 209/225/42 214/226/42 211/227/42 +f 212/228/43 215/229/43 210/230/43 +f 210/230/44 213/222/44 209/225/44 +f 223/231/44 220/232/44 224/233/44 +f 221/234/43 218/235/43 223/231/43 +f 224/233/42 219/236/42 222/237/42 +f 224/233/5 221/238/5 223/231/5 +f 229/239/1 232/240/1 230/241/1 +f 225/242/45 230/243/45 227/244/45 +f 228/245/46 231/246/46 226/247/46 +f 226/247/47 229/239/47 225/242/47 +f 239/248/47 236/249/47 240/250/47 +f 237/251/46 234/252/46 239/248/46 +f 240/250/45 235/253/45 238/254/45 +f 240/250/5 237/255/5 239/248/5 +f 245/256/1 248/257/1 246/258/1 +f 241/259/48 246/260/48 243/261/48 +f 244/262/49 247/263/49 242/264/49 +f 242/264/50 245/256/50 241/259/50 +f 255/265/50 252/266/50 256/267/50 +f 253/268/49 250/269/49 255/265/49 +f 256/267/48 251/270/48 254/271/48 +f 256/267/5 253/272/5 255/265/5 +f 5/1/1 7/8/1 8/2/1 +f 1/4/2 5/1/2 6/5/2 +f 4/7/3 8/273/3 7/8/3 +f 2/9/4 7/8/4 5/1/4 +f 15/10/4 10/14/4 12/11/4 +f 13/13/3 9/274/3 10/14/3 +f 16/12/2 12/11/2 11/15/2 +f 16/12/5 14/275/5 13/17/5 +f 21/18/1 23/25/1 24/19/1 +f 17/21/6 21/18/6 22/22/6 +f 20/24/7 24/276/7 23/25/7 +f 18/26/8 23/25/8 21/18/8 +f 31/27/8 26/31/8 28/28/8 +f 29/30/7 25/277/7 26/31/7 +f 32/29/6 28/28/6 27/32/6 +f 32/29/5 30/278/5 29/34/5 +f 37/35/1 39/42/1 40/36/1 +f 33/38/9 37/35/9 38/39/9 +f 36/41/10 40/279/10 39/42/10 +f 34/43/11 39/42/11 37/35/11 +f 47/44/11 42/48/11 44/45/11 +f 45/47/10 41/280/10 42/48/10 +f 48/46/9 44/45/9 43/49/9 +f 48/46/5 46/281/5 45/51/5 +f 53/52/1 55/59/1 56/53/1 +f 49/55/12 53/52/12 54/56/12 +f 52/58/13 56/282/13 55/59/13 +f 50/60/14 55/59/14 53/52/14 +f 63/61/14 58/65/14 60/62/14 +f 61/64/13 57/283/13 58/65/13 +f 64/63/12 60/62/12 59/66/12 +f 64/63/5 62/284/5 61/68/5 +f 69/69/1 71/76/1 72/70/1 +f 65/72/15 69/69/15 70/73/15 +f 68/75/16 72/285/16 71/76/16 +f 66/77/17 71/76/17 69/69/17 +f 79/78/17 74/82/17 76/79/17 +f 77/81/16 73/286/16 74/82/16 +f 80/80/15 76/79/15 75/83/15 +f 80/80/5 78/287/5 77/85/5 +f 85/86/1 87/93/1 88/87/1 +f 81/89/18 85/86/18 86/90/18 +f 84/92/19 88/288/19 87/93/19 +f 82/94/20 87/93/20 85/86/20 +f 95/95/20 90/99/20 92/96/20 +f 93/98/19 89/289/19 90/99/19 +f 96/97/18 92/96/18 91/100/18 +f 96/97/5 94/290/5 93/102/5 +f 101/103/1 103/110/1 104/104/1 +f 97/106/21 101/103/21 102/107/21 +f 100/109/22 104/291/22 103/110/22 +f 98/111/23 103/110/23 101/103/23 +f 111/112/23 106/116/23 108/113/23 +f 109/115/22 105/292/22 106/116/22 +f 112/114/21 108/113/21 107/117/21 +f 112/114/5 110/293/5 109/119/5 +f 117/120/1 119/127/1 120/121/1 +f 113/123/24 117/120/24 118/124/24 +f 116/126/25 120/294/25 119/127/25 +f 114/128/26 119/127/26 117/120/26 +f 127/129/26 122/133/26 124/130/26 +f 125/132/25 121/295/25 122/133/25 +f 128/131/24 124/130/24 123/134/24 +f 128/131/5 126/296/5 125/136/5 +f 133/137/1 135/144/1 136/138/1 +f 129/140/27 133/137/27 134/141/27 +f 132/143/28 136/297/28 135/144/28 +f 130/145/29 135/144/29 133/137/29 +f 143/146/29 138/150/29 140/147/29 +f 141/149/28 137/298/28 138/150/28 +f 144/148/27 140/147/27 139/151/27 +f 144/148/5 142/299/5 141/153/5 +f 149/154/1 151/161/1 152/155/1 +f 145/157/30 149/154/30 150/158/30 +f 148/160/31 152/300/31 151/161/31 +f 146/162/32 151/161/32 149/154/32 +f 159/163/32 154/167/32 156/164/32 +f 157/166/31 153/301/31 154/167/31 +f 160/165/30 156/164/30 155/168/30 +f 160/165/5 158/302/5 157/170/5 +f 165/171/1 167/178/1 168/172/1 +f 161/174/33 165/171/33 166/175/33 +f 164/177/34 168/303/34 167/178/34 +f 162/179/35 167/178/35 165/171/35 +f 175/180/35 170/184/35 172/181/35 +f 173/183/34 169/304/34 170/184/34 +f 176/182/33 172/181/33 171/185/33 +f 176/182/5 174/305/5 173/187/5 +f 181/188/1 183/195/1 184/189/1 +f 177/191/36 181/188/36 182/192/36 +f 180/194/37 184/306/37 183/195/37 +f 178/196/38 183/195/38 181/188/38 +f 191/197/38 186/201/38 188/198/38 +f 189/200/37 185/307/37 186/201/37 +f 192/199/36 188/198/36 187/202/36 +f 192/199/5 190/308/5 189/204/5 +f 197/205/1 199/212/1 200/206/1 +f 193/208/39 197/205/39 198/209/39 +f 196/211/40 200/309/40 199/212/40 +f 194/213/41 199/212/41 197/205/41 +f 207/214/41 202/218/41 204/215/41 +f 205/217/40 201/310/40 202/218/40 +f 208/216/39 204/215/39 203/219/39 +f 208/216/5 206/311/5 205/221/5 +f 213/222/1 215/229/1 216/223/1 +f 209/225/42 213/222/42 214/226/42 +f 212/228/43 216/312/43 215/229/43 +f 210/230/44 215/229/44 213/222/44 +f 223/231/44 218/235/44 220/232/44 +f 221/234/43 217/313/43 218/235/43 +f 224/233/42 220/232/42 219/236/42 +f 224/233/5 222/314/5 221/238/5 +f 229/239/1 231/246/1 232/240/1 +f 225/242/45 229/239/45 230/243/45 +f 228/245/46 232/315/46 231/246/46 +f 226/247/47 231/246/47 229/239/47 +f 239/248/47 234/252/47 236/249/47 +f 237/251/46 233/316/46 234/252/46 +f 240/250/45 236/249/45 235/253/45 +f 240/250/5 238/317/5 237/255/5 +f 245/256/1 247/263/1 248/257/1 +f 241/259/48 245/256/48 246/260/48 +f 244/262/49 248/318/49 247/263/49 +f 242/264/50 247/263/50 245/256/50 +f 255/265/50 250/269/50 252/266/50 +f 253/268/49 249/319/49 250/269/49 +f 256/267/48 252/266/48 251/270/48 +f 256/267/5 254/320/5 253/272/5 +o Core +v 0.000000 2.250000 -0.000000 +v 0.180900 2.388196 0.131430 +v -0.069097 2.388196 0.212660 +v -0.223606 2.388196 -0.000000 +v -0.069097 2.388196 -0.212660 +v 0.180900 2.388196 -0.131430 +v 0.069096 2.611804 0.212660 +v -0.180901 2.611804 0.131430 +v -0.180901 2.611804 -0.131430 +v 0.069096 2.611804 -0.212660 +v 0.223606 2.611804 -0.000000 +v 0.000000 2.750000 -0.000000 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vn 0.1876 -0.7947 0.5774 +vn 0.6071 -0.7947 0.0000 +vn -0.4911 -0.7947 0.3568 +vn -0.4911 -0.7947 -0.3568 +vn 0.1876 -0.7947 -0.5774 +vn 0.9822 -0.1876 0.0000 +vn 0.3035 -0.1876 0.9342 +vn -0.7946 -0.1876 0.5774 +vn -0.7946 -0.1876 -0.5774 +vn 0.3035 -0.1876 -0.9342 +vn 0.7946 0.1876 0.5774 +vn -0.3035 0.1876 0.9342 +vn -0.9822 0.1876 0.0000 +vn -0.3035 0.1876 -0.9342 +vn 0.7946 0.1876 -0.5774 +vn 0.4911 0.7947 0.3568 +vn -0.1876 0.7947 0.5774 +vn -0.6071 0.7947 0.0000 +vn -0.1876 0.7947 -0.5774 +vn 0.4911 0.7947 -0.3568 +s off +f 257/321/51 258/322/51 259/323/51 +f 258/322/52 257/324/52 262/325/52 +f 257/321/53 259/326/53 260/327/53 +f 257/324/54 260/328/54 261/329/54 +f 257/324/55 261/330/55 262/331/55 +f 258/322/56 262/332/56 267/333/56 +f 259/326/57 258/334/57 263/335/57 +f 260/328/58 259/326/58 264/336/58 +f 261/329/59 260/327/59 265/337/59 +f 262/325/60 261/329/60 266/338/60 +f 258/334/61 267/333/61 263/339/61 +f 259/323/62 263/335/62 264/340/62 +f 260/328/63 264/340/63 265/341/63 +f 261/330/64 265/342/64 266/338/64 +f 262/325/65 266/343/65 267/344/65 +f 263/339/66 267/344/66 268/345/66 +f 264/346/67 263/339/67 268/347/67 +f 265/337/68 264/340/68 268/347/68 +f 266/343/69 265/341/69 268/345/69 +f 267/333/70 266/343/70 268/347/70 +o Chamber +v 0.000000 0.000000 -2.500000 +v -0.956709 0.000000 -2.309699 +v -1.767767 0.000000 -1.767767 +v -2.309699 0.000000 -0.956709 +v -2.500000 0.000000 0.000000 +v -2.309699 0.000000 0.956709 +v -1.767767 0.000000 1.767767 +v -0.956709 0.000000 2.309699 +v 0.000000 0.000000 2.500000 +v 0.956708 0.000000 2.309699 +v 1.767767 0.000000 1.767768 +v 2.309699 0.000000 0.956709 +v 2.500000 0.000000 -0.000000 +v 2.309698 0.000000 -0.956709 +v 1.767766 0.000000 -1.767768 +v 0.956707 0.000000 -2.309699 +v 0.000000 0.500000 -2.500000 +v -0.956709 0.500000 -2.309699 +v -1.767767 0.500000 -1.767767 +v -2.309699 0.500000 -0.956709 +v -2.500000 0.500000 0.000000 +v -2.309699 0.500000 0.956709 +v -1.767767 0.500000 1.767767 +v -0.956709 0.500000 2.309699 +v 0.000000 0.500000 2.500000 +v 0.956708 0.500000 2.309699 +v 1.767767 0.500000 1.767768 +v 2.309699 0.500000 0.956709 +v 2.500000 0.500000 -0.000000 +v 2.309698 0.500000 -0.956709 +v 1.767766 0.500000 -1.767768 +v 0.956707 0.500000 -2.309699 +v 0.000000 0.500000 -2.250000 +v -0.861038 0.500000 -2.078729 +v -1.590990 0.500000 -1.590990 +v -2.078729 0.500000 -0.861038 +v -2.250000 0.500000 0.000000 +v -2.078729 0.500000 0.861038 +v -1.590990 0.500000 1.590990 +v -0.861038 0.500000 2.078729 +v -0.000001 0.500000 2.250000 +v 0.861037 0.500000 2.078729 +v 1.590990 0.500000 1.590991 +v 2.078729 0.500000 0.861038 +v 2.250000 0.500000 0.000000 +v 2.078729 0.500000 -0.861038 +v 1.590990 0.500000 -1.590991 +v 0.861036 0.500000 -2.078730 +v 0.000000 4.500000 -2.250000 +v -0.861038 4.500000 -2.078729 +v -1.590990 4.500000 -1.590990 +v -2.078729 4.500000 -0.861038 +v -2.250000 4.500000 0.000000 +v -2.078729 4.500000 0.861038 +v -1.590990 4.500000 1.590990 +v -0.861038 4.500000 2.078729 +v -0.000001 4.500000 2.250000 +v 0.861037 4.500000 2.078729 +v 1.590990 4.500000 1.590991 +v 2.078729 4.500000 0.861038 +v 2.250000 4.500000 0.000000 +v 2.078729 4.500000 -0.861038 +v 1.590990 4.500000 -1.590991 +v 0.861036 4.500000 -2.078730 +v 1.767767 0.375000 1.944544 +v 1.944544 0.375000 1.767767 +v 1.767767 4.625000 1.944544 +v 1.944544 4.625000 1.767767 +v 1.944544 4.625000 2.121320 +v 1.944544 0.375000 2.121320 +v 2.121320 0.375000 1.944544 +v 2.121320 4.625000 1.944544 +v 1.944544 4.875000 1.767767 +v 1.767767 4.875000 1.944544 +v 1.767767 0.125000 1.944544 +v 1.944544 0.125000 1.767767 +v 1.590990 0.375000 1.767767 +v 1.767767 0.375000 1.590990 +v 1.767767 4.625000 1.590990 +v 1.590990 4.625000 1.767767 +v 1.767767 4.875000 1.590990 +v 1.590990 4.875000 1.767767 +v 1.590990 0.125000 1.767767 +v 1.767767 0.125000 1.590990 +v 1.944544 0.375000 -1.767767 +v 1.767767 0.375000 -1.944544 +v 1.944544 4.625000 -1.767767 +v 1.767767 4.625000 -1.944544 +v 2.121321 4.625000 -1.944544 +v 2.121321 0.375000 -1.944544 +v 1.944544 0.375000 -2.121320 +v 1.944544 4.625000 -2.121320 +v 1.767767 4.875000 -1.944544 +v 1.944544 4.875000 -1.767767 +v 1.944544 0.125000 -1.767767 +v 1.767767 0.125000 -1.944544 +v 1.767767 0.375000 -1.590990 +v 1.590990 0.375000 -1.767767 +v 1.590990 4.625000 -1.767767 +v 1.767767 4.625000 -1.590990 +v 1.590990 4.875000 -1.767767 +v 1.767767 4.875000 -1.590990 +v 1.767767 0.125000 -1.590990 +v 1.590990 0.125000 -1.767767 +v -1.767767 0.375000 -1.944544 +v -1.944544 0.375000 -1.767767 +v -1.767767 4.625000 -1.944544 +v -1.944544 4.625000 -1.767767 +v -1.944544 4.625000 -2.121320 +v -1.944544 0.375000 -2.121320 +v -2.121321 0.375000 -1.944544 +v -2.121321 4.625000 -1.944544 +v -1.944544 4.875000 -1.767767 +v -1.767767 4.875000 -1.944544 +v -1.767767 0.125000 -1.944544 +v -1.944544 0.125000 -1.767767 +v -1.590990 0.375000 -1.767767 +v -1.767767 0.375000 -1.590990 +v -1.767767 4.625000 -1.590990 +v -1.590990 4.625000 -1.767767 +v -1.767767 4.875000 -1.590990 +v -1.590990 4.875000 -1.767767 +v -1.590990 0.125000 -1.767767 +v -1.767767 0.125000 -1.590990 +v -1.944544 0.375000 1.767767 +v -1.767767 0.375000 1.944544 +v -1.944544 4.625000 1.767767 +v -1.767767 4.625000 1.944544 +v -2.121320 4.625000 1.944544 +v -2.121320 0.375000 1.944544 +v -1.944544 0.375000 2.121320 +v -1.944544 4.625000 2.121320 +v -1.767767 4.875000 1.944544 +v -1.944544 4.875000 1.767767 +v -1.944544 0.125000 1.767767 +v -1.767767 0.125000 1.944544 +v -1.767767 0.375000 1.590990 +v -1.590990 0.375000 1.767767 +v -1.590990 4.625000 1.767767 +v -1.767767 4.625000 1.590990 +v -1.590990 4.875000 1.767767 +v -1.767767 4.875000 1.590990 +v -1.767767 0.125000 1.590990 +v -1.590990 0.125000 1.767767 +v 0.000000 0.500000 -1.500000 +v -0.574025 0.500000 -1.385819 +v -1.060660 0.500000 -1.060660 +v -1.385819 0.500000 -0.574025 +v -1.500000 0.500000 0.000000 +v -1.385819 0.500000 0.574025 +v -1.060660 0.500000 1.060660 +v -0.574025 0.500000 1.385819 +v 0.000000 0.500000 1.500000 +v 0.574024 0.500000 1.385819 +v 1.060659 0.500000 1.060660 +v 1.385819 0.500000 0.574025 +v 1.500000 0.500000 -0.000000 +v 1.385819 0.500000 -0.574025 +v 1.060659 0.500000 -1.060660 +v 0.574024 0.500000 -1.385820 +v 0.000000 1.500000 -1.500000 +v -0.574025 1.500000 -1.385819 +v -1.060660 1.500000 -1.060660 +v -1.385819 1.500000 -0.574025 +v -1.500000 1.500000 0.000000 +v -1.385819 1.500000 0.574025 +v -1.060660 1.500000 1.060660 +v -0.574025 1.500000 1.385819 +v 0.000000 1.500000 1.500000 +v 0.574024 1.500000 1.385819 +v 1.060659 1.500000 1.060660 +v 1.385819 1.500000 0.574025 +v 1.500000 1.500000 -0.000000 +v 1.385819 1.500000 -0.574025 +v 1.060659 1.500000 -1.060660 +v 0.574024 1.500000 -1.385820 +v 0.000000 3.500000 -1.500000 +v -0.574025 3.500000 -1.385819 +v -1.060660 3.500000 -1.060660 +v -1.385819 3.500000 -0.574025 +v -1.500000 3.500000 0.000000 +v -1.385819 3.500000 0.574025 +v -1.060660 3.500000 1.060660 +v -0.574025 3.500000 1.385819 +v 0.000000 3.500000 1.500000 +v 0.574024 3.500000 1.385819 +v 1.060659 3.500000 1.060660 +v 1.385819 3.500000 0.574025 +v 1.500000 3.500000 -0.000000 +v 1.385819 3.500000 -0.574025 +v 1.060659 3.500000 -1.060660 +v 0.574024 3.500000 -1.385820 +v 0.000000 4.500000 -1.500000 +v -0.574025 4.500000 -1.385819 +v -1.060660 4.500000 -1.060660 +v -1.385819 4.500000 -0.574025 +v -1.500000 4.500000 0.000000 +v -1.385819 4.500000 0.574025 +v -1.060660 4.500000 1.060660 +v -0.574025 4.500000 1.385819 +v 0.000000 4.500000 1.500000 +v 0.574024 4.500000 1.385819 +v 1.060659 4.500000 1.060660 +v 1.385819 4.500000 0.574025 +v 1.500000 4.500000 -0.000000 +v 1.385819 4.500000 -0.574025 +v 1.060659 4.500000 -1.060660 +v 0.574024 4.500000 -1.385820 +v 0.000000 1.500000 -1.000000 +v -0.382684 1.500000 -0.923880 +v -0.707107 1.500000 -0.707107 +v -0.923880 1.500000 -0.382683 +v -1.000000 1.500000 0.000000 +v -0.923880 1.500000 0.382683 +v -0.707107 1.500000 0.707107 +v -0.382684 1.500000 0.923880 +v 0.000000 1.500000 1.000000 +v 0.382683 1.500000 0.923880 +v 0.707107 1.500000 0.707107 +v 0.923880 1.500000 0.382684 +v 1.000000 1.500000 -0.000000 +v 0.923880 1.500000 -0.382684 +v 0.707107 1.500000 -0.707107 +v 0.382683 1.500000 -0.923880 +v 0.000000 1.750000 -1.000000 +v -0.382684 1.750000 -0.923880 +v -0.707107 1.750000 -0.707107 +v -0.923880 1.750000 -0.382683 +v -1.000000 1.750000 0.000000 +v -0.923880 1.750000 0.382683 +v -0.707107 1.750000 0.707107 +v -0.382684 1.750000 0.923880 +v 0.000000 1.750000 1.000000 +v 0.382683 1.750000 0.923880 +v 0.707107 1.750000 0.707107 +v 0.923880 1.750000 0.382684 +v 1.000000 1.750000 -0.000000 +v 0.923880 1.750000 -0.382684 +v 0.707107 1.750000 -0.707107 +v 0.382683 1.750000 -0.923880 +v 0.000000 3.250000 -1.000000 +v -0.382684 3.250000 -0.923880 +v -0.707107 3.250000 -0.707107 +v -0.923880 3.250000 -0.382683 +v -1.000000 3.250000 0.000000 +v -0.923880 3.250000 0.382683 +v -0.707107 3.250000 0.707107 +v -0.382684 3.250000 0.923880 +v 0.000000 3.250000 1.000000 +v 0.382683 3.250000 0.923880 +v 0.707107 3.250000 0.707107 +v 0.923880 3.250000 0.382684 +v 1.000000 3.250000 -0.000000 +v 0.923880 3.250000 -0.382684 +v 0.707107 3.250000 -0.707107 +v 0.382683 3.250000 -0.923880 +v 0.000000 3.500000 -1.000000 +v -0.382684 3.500000 -0.923880 +v -0.707107 3.500000 -0.707107 +v -0.923880 3.500000 -0.382683 +v -1.000000 3.500000 0.000000 +v -0.923880 3.500000 0.382683 +v -0.707107 3.500000 0.707107 +v -0.382684 3.500000 0.923880 +v 0.000000 3.500000 1.000000 +v 0.382683 3.500000 0.923880 +v 0.707107 3.500000 0.707107 +v 0.923880 3.500000 0.382684 +v 1.000000 3.500000 -0.000000 +v 0.923880 3.500000 -0.382684 +v 0.707107 3.500000 -0.707107 +v 0.382683 3.500000 -0.923880 +v 0.972271 1.500000 0.972272 +v 0.795495 1.500000 0.795495 +v 0.795495 1.500000 -0.795495 +v 0.795495 2.000000 0.795495 +v 0.972271 1.500000 -0.972272 +v 0.795495 3.000000 0.795495 +v 0.972271 3.500000 0.972272 +v 0.795495 3.500000 0.795495 +v 0.265164 2.000000 0.265165 +v 0.265164 3.000000 0.265165 +v 0.795495 2.000000 -0.795495 +v 0.795495 3.000000 -0.795495 +v 0.972271 3.500000 -0.972272 +v 0.795495 3.500000 -0.795495 +v 0.265164 2.000000 -0.265165 +v 0.265164 3.000000 -0.265165 +v -0.972272 1.500000 -0.972272 +v -0.795495 1.500000 -0.795495 +v -0.795495 1.500000 0.795495 +v -0.795495 2.000000 -0.795495 +v -0.972272 1.500000 0.972272 +v -0.795495 3.000000 -0.795495 +v -0.972272 3.500000 -0.972272 +v -0.795495 3.500000 -0.795495 +v -0.265165 2.000000 -0.265165 +v -0.265165 3.000000 -0.265165 +v -0.795495 2.000000 0.795495 +v -0.795495 3.000000 0.795495 +v -0.972272 3.500000 0.972272 +v -0.795495 3.500000 0.795495 +v -0.265165 2.000000 0.265165 +v -0.265165 3.000000 0.265165 +v 0.000000 3.000000 -1.000000 +v -0.353554 2.853553 -1.000000 +v -0.500000 2.500000 -1.000000 +v -0.353554 2.146447 -1.000000 +v 0.000000 2.000000 -1.000000 +v 0.353553 2.146447 -1.000000 +v 0.500000 2.500000 -1.000000 +v 0.353553 2.853553 -1.000000 +v 0.000000 3.000000 -6.500000 +v -0.353554 2.853553 -6.500000 +v -0.500000 2.500000 -6.500000 +v -0.353554 2.146447 -6.500000 +v 0.000000 2.000000 -6.500000 +v 0.353553 2.146447 -6.500000 +v 0.500000 2.500000 -6.500000 +v 0.353553 2.853553 -6.500000 +v 0.000000 2.875000 -1.000000 +v -0.265165 2.765165 -1.000000 +v -0.375000 2.500000 -1.000000 +v -0.265165 2.234835 -1.000000 +v 0.000000 2.125000 -1.000000 +v 0.265164 2.234835 -1.000000 +v 0.375000 2.500000 -1.000000 +v 0.265164 2.765165 -1.000000 +v -0.265165 2.765165 -0.500000 +v 0.000000 2.875000 -0.500000 +v -0.375000 2.500000 -0.500000 +v -0.265165 2.234835 -0.500000 +v 0.000000 2.125000 -0.500000 +v 0.265164 2.234835 -0.500000 +v 0.375000 2.500000 -0.500000 +v 0.265164 2.765165 -0.500000 +v -1.000000 0.000000 -6.500000 +v 1.000000 0.000000 -6.500000 +v -1.000000 0.000000 -8.500000 +v 1.000000 0.000000 -8.500000 +v -1.000000 2.500000 -8.500000 +v -1.000000 3.500000 -6.500000 +v 1.000000 3.500000 -6.500000 +v 1.000000 2.500000 -8.500000 +v -0.250000 0.000000 -3.250000 +v 0.250000 0.000000 -3.250000 +v -0.250000 0.000000 -3.750000 +v 0.250000 0.000000 -3.750000 +v -0.250000 0.125000 -3.750000 +v -0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.750000 +v -0.125000 0.125000 -3.625000 +v -0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.625000 +v -0.125000 1.750000 -3.625000 +v -0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.625000 +v -0.750000 2.500000 -6.750000 +v 0.750000 2.500000 -6.750000 +v -0.750000 2.500000 -8.250000 +v 0.750000 2.500000 -8.250000 +v -0.750000 3.500000 -8.250000 +v -0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -8.250000 +v 1.000000 0.000000 -6.500000 +v 1.500000 0.000000 -6.500000 +v 1.000000 0.000000 -8.500000 +v 1.500000 0.000000 -8.500000 +v 1.000000 1.500000 -8.500000 +v 1.000000 1.500000 -6.500000 +v 1.500000 1.000000 -6.500000 +v 1.500000 1.000000 -8.500000 +v -1.500000 0.000000 -6.500000 +v -1.000000 0.000000 -6.500000 +v -1.500000 0.000000 -8.500000 +v -1.000000 0.000000 -8.500000 +v -1.500000 1.000000 -8.500000 +v -1.500000 1.000000 -6.500000 +v -1.000000 1.500000 -6.500000 +v -1.000000 1.500000 -8.500000 +v 0.353553 2.853553 -2.375000 +v 0.500000 2.500000 -2.375000 +v 0.353553 2.146447 -2.375000 +v 0.000000 2.000000 -2.375000 +v -0.353554 2.146447 -2.375000 +v -0.500000 2.500000 -2.375000 +v -0.353554 2.853553 -2.375000 +v 0.000000 3.000000 -2.375000 +v 0.530330 3.030330 -2.125000 +v 0.750000 2.500000 -2.125000 +v 0.530330 1.969670 -2.125000 +v 0.000000 1.750000 -2.125000 +v -0.530331 1.969670 -2.125000 +v -0.750000 2.500000 -2.125000 +v -0.530331 3.030330 -2.125000 +v 0.000000 3.250000 -2.125000 +v 0.707107 3.207107 -2.375000 +v 1.000000 2.500000 -2.375000 +v 0.707107 1.792893 -2.375000 +v 0.000000 1.500000 -2.375000 +v -0.707107 1.792893 -2.375000 +v -1.000000 2.500000 -2.375000 +v -0.707107 3.207107 -2.375000 +v 0.000000 3.500000 -2.375000 +v 0.000000 3.500000 -2.625000 +v -0.707107 3.207107 -2.625000 +v -1.000000 2.500000 -2.625000 +v -0.707107 1.792893 -2.625000 +v 0.000000 1.500000 -2.625000 +v 0.707107 1.792893 -2.625000 +v 1.000000 2.500000 -2.625000 +v 0.707107 3.207107 -2.625000 +v 0.353553 2.853553 -2.625000 +v 0.500000 2.500000 -2.625000 +v 0.353553 2.146447 -2.625000 +v 0.000000 2.000000 -2.625000 +v -0.353554 2.146447 -2.625000 +v -0.500000 2.500000 -2.625000 +v -0.353554 2.853553 -2.625000 +v 0.000000 3.000000 -2.625000 +v 0.530330 3.030330 -2.875000 +v 0.750000 2.500000 -2.875000 +v 0.530330 1.969670 -2.875000 +v 0.000000 1.750000 -2.875000 +v -0.530331 1.969670 -2.875000 +v -0.750000 2.500000 -2.875000 +v -0.530331 3.030330 -2.875000 +v 0.000000 3.250000 -2.875000 +v -0.062500 3.750000 -2.562500 +v 0.062500 3.750000 -2.562500 +v -0.062500 3.750000 -7.437500 +v 0.062500 3.750000 -7.437500 +v -0.062500 3.625000 -7.437500 +v -0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -7.437500 +v 0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -3.562500 +v -0.062500 3.625000 -3.562500 +v 0.062500 3.625000 -7.562500 +v -0.062500 3.625000 -7.562500 +v -0.062500 3.437500 -2.562500 +v 0.062500 3.437500 -2.562500 +v 0.062500 3.500000 -7.437500 +v -0.062500 3.500000 -7.437500 +v -0.062500 3.437500 -2.437500 +v 0.062500 3.437500 -2.437500 +v 0.062500 3.500000 -7.562500 +v -0.062500 3.500000 -7.562500 +v -0.062500 3.437500 -3.562500 +v 0.062500 3.437500 -3.562500 +v -0.062500 3.437500 -3.437500 +v 0.062500 3.437500 -3.437500 +v 0.062500 3.625000 -4.437500 +v -0.062500 3.625000 -4.437500 +v 0.062500 3.625000 -4.562500 +v -0.062500 3.625000 -4.562500 +v -0.062500 3.437500 -4.562500 +v 0.062500 3.437500 -4.562500 +v -0.062500 3.437500 -4.437500 +v 0.062500 3.437500 -4.437500 +v 0.062500 3.625000 -5.437500 +v -0.062500 3.625000 -5.437500 +v 0.062500 3.625000 -5.562500 +v -0.062500 3.625000 -5.562500 +v -0.062500 3.437500 -5.562500 +v 0.062500 3.437500 -5.562500 +v -0.062500 3.437500 -5.437500 +v 0.062500 3.437500 -5.437500 +v 0.353553 2.853553 -3.375000 +v 0.500000 2.500000 -3.375000 +v 0.353553 2.146447 -3.375000 +v 0.000000 2.000000 -3.375000 +v -0.353554 2.146447 -3.375000 +v -0.500000 2.500000 -3.375000 +v -0.353554 2.853553 -3.375000 +v 0.000000 3.000000 -3.375000 +v 0.530330 3.030330 -3.125000 +v 0.750000 2.500000 -3.125000 +v 0.530330 1.969670 -3.125000 +v 0.000000 1.750000 -3.125000 +v -0.530331 1.969670 -3.125000 +v -0.750000 2.500000 -3.125000 +v -0.530331 3.030330 -3.125000 +v 0.000000 3.250000 -3.125000 +v 0.707107 3.207107 -3.375000 +v 1.000000 2.500000 -3.375000 +v 0.707107 1.792893 -3.375000 +v 0.000000 1.500000 -3.375000 +v -0.707107 1.792893 -3.375000 +v -1.000000 2.500000 -3.375000 +v -0.707107 3.207107 -3.375000 +v 0.000000 3.500000 -3.375000 +v 0.000000 3.500000 -3.625000 +v -0.707107 3.207107 -3.625000 +v -1.000000 2.500000 -3.625000 +v -0.707107 1.792893 -3.625000 +v 0.000000 1.500000 -3.625000 +v 0.707107 1.792893 -3.625000 +v 1.000000 2.500000 -3.625000 +v 0.707107 3.207107 -3.625000 +v 0.353553 2.853553 -3.625000 +v 0.500000 2.500000 -3.625000 +v 0.353553 2.146447 -3.625000 +v 0.000000 2.000000 -3.625000 +v -0.353554 2.146447 -3.625000 +v -0.500000 2.500000 -3.625000 +v -0.353554 2.853553 -3.625000 +v 0.000000 3.000000 -3.625000 +v 0.530330 3.030330 -3.875000 +v 0.750000 2.500000 -3.875000 +v 0.530330 1.969670 -3.875000 +v 0.000000 1.750000 -3.875000 +v -0.530331 1.969670 -3.875000 +v -0.750000 2.500000 -3.875000 +v -0.530331 3.030330 -3.875000 +v 0.000000 3.250000 -3.875000 +v 0.353553 2.853553 -4.375000 +v 0.500000 2.500000 -4.375000 +v 0.353553 2.146447 -4.375000 +v 0.000000 2.000000 -4.375000 +v -0.353554 2.146447 -4.375000 +v -0.500000 2.500000 -4.375000 +v -0.353554 2.853553 -4.375000 +v 0.000000 3.000000 -4.375000 +v 0.530330 3.030330 -4.125000 +v 0.750000 2.500000 -4.125000 +v 0.530330 1.969670 -4.125000 +v 0.000000 1.750000 -4.125000 +v -0.530331 1.969670 -4.125000 +v -0.750000 2.500000 -4.125000 +v -0.530331 3.030330 -4.125000 +v 0.000000 3.250000 -4.125000 +v 0.707107 3.207107 -4.375000 +v 1.000000 2.500000 -4.375000 +v 0.707107 1.792893 -4.375000 +v 0.000000 1.500000 -4.375000 +v -0.707107 1.792893 -4.375000 +v -1.000000 2.500000 -4.375000 +v -0.707107 3.207107 -4.375000 +v 0.000000 3.500000 -4.375000 +v 0.000000 3.500000 -4.625000 +v -0.707107 3.207107 -4.625000 +v -1.000000 2.500000 -4.625000 +v -0.707107 1.792893 -4.625000 +v 0.000000 1.500000 -4.625000 +v 0.707107 1.792893 -4.625000 +v 1.000000 2.500000 -4.625000 +v 0.707107 3.207107 -4.625000 +v 0.353553 2.853553 -4.625000 +v 0.500000 2.500000 -4.625000 +v 0.353553 2.146447 -4.625000 +v 0.000000 2.000000 -4.625000 +v -0.353554 2.146447 -4.625000 +v -0.500000 2.500000 -4.625000 +v -0.353554 2.853553 -4.625000 +v 0.000000 3.000000 -4.625000 +v 0.530330 3.030330 -4.875000 +v 0.750000 2.500000 -4.875000 +v 0.530330 1.969670 -4.875000 +v 0.000000 1.750000 -4.875000 +v -0.530331 1.969670 -4.875000 +v -0.750000 2.500000 -4.875000 +v -0.530331 3.030330 -4.875000 +v 0.000000 3.250000 -4.875000 +v 0.353553 2.853553 -5.375000 +v 0.500000 2.500000 -5.375000 +v 0.353553 2.146447 -5.375000 +v 0.000000 2.000000 -5.375000 +v -0.353554 2.146447 -5.375000 +v -0.500000 2.500000 -5.375000 +v -0.353554 2.853553 -5.375000 +v 0.000000 3.000000 -5.375000 +v 0.530330 3.030330 -5.125000 +v 0.750000 2.500000 -5.125000 +v 0.530330 1.969670 -5.125000 +v 0.000000 1.750000 -5.125000 +v -0.530331 1.969670 -5.125000 +v -0.750000 2.500000 -5.125000 +v -0.530331 3.030330 -5.125000 +v 0.000000 3.250000 -5.125000 +v 0.707107 3.207107 -5.375000 +v 1.000000 2.500000 -5.375000 +v 0.707107 1.792893 -5.375000 +v 0.000000 1.500000 -5.375000 +v -0.707107 1.792893 -5.375000 +v -1.000000 2.500000 -5.375000 +v -0.707107 3.207107 -5.375000 +v 0.000000 3.500000 -5.375000 +v 0.000000 3.500000 -5.625000 +v -0.707107 3.207107 -5.625000 +v -1.000000 2.500000 -5.625000 +v -0.707107 1.792893 -5.625000 +v 0.000000 1.500000 -5.625000 +v 0.707107 1.792893 -5.625000 +v 1.000000 2.500000 -5.625000 +v 0.707107 3.207107 -5.625000 +v 0.353553 2.853553 -5.625000 +v 0.500000 2.500000 -5.625000 +v 0.353553 2.146447 -5.625000 +v 0.000000 2.000000 -5.625000 +v -0.353554 2.146447 -5.625000 +v -0.500000 2.500000 -5.625000 +v -0.353554 2.853553 -5.625000 +v 0.000000 3.000000 -5.625000 +v 0.530330 3.030330 -5.875000 +v 0.750000 2.500000 -5.875000 +v 0.530330 1.969670 -5.875000 +v 0.000000 1.750000 -5.875000 +v -0.530331 1.969670 -5.875000 +v -0.750000 2.500000 -5.875000 +v -0.530331 3.030330 -5.875000 +v 0.000000 3.250000 -5.875000 +v 0.353553 2.853553 -6.375000 +v 0.500000 2.500000 -6.375000 +v 0.353553 2.146447 -6.375000 +v 0.000000 2.000000 -6.375000 +v -0.353554 2.146447 -6.375000 +v -0.500000 2.500000 -6.375000 +v -0.353554 2.853553 -6.375000 +v 0.000000 3.000000 -6.375000 +v 0.530330 3.030330 -6.125000 +v 0.750000 2.500000 -6.125000 +v 0.530330 1.969670 -6.125000 +v 0.000000 1.750000 -6.125000 +v -0.530331 1.969670 -6.125000 +v -0.750000 2.500000 -6.125000 +v -0.530331 3.030330 -6.125000 +v 0.000000 3.250000 -6.125000 +v 0.707107 3.207107 -6.375000 +v 1.000000 2.500000 -6.375000 +v 0.707107 1.792893 -6.375000 +v 0.000000 1.500000 -6.375000 +v -0.707107 1.792893 -6.375000 +v -1.000000 2.500000 -6.375000 +v -0.707107 3.207107 -6.375000 +v 0.000000 3.500000 -6.375000 +v 0.000000 3.500000 -6.500000 +v -0.707107 3.207107 -6.500000 +v -1.000000 2.500000 -6.500000 +v -0.707107 1.792893 -6.500000 +v 0.000000 1.500000 -6.500000 +v 0.707107 1.792893 -6.500000 +v 1.000000 2.500000 -6.500000 +v 0.707107 3.207107 -6.500000 +v -0.250000 0.000000 -5.250000 +v 0.250000 0.000000 -5.250000 +v -0.250000 0.000000 -5.750000 +v 0.250000 0.000000 -5.750000 +v -0.250000 0.125000 -5.750000 +v -0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.750000 +v -0.125000 0.125000 -5.625000 +v -0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.625000 +v -0.125000 1.750000 -5.625000 +v -0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.625000 +v 0.000000 4.500000 -2.500000 +v -0.956709 4.500000 -2.309699 +v -1.767767 4.500000 -1.767767 +v -2.309699 4.500000 -0.956709 +v -2.500000 4.500000 0.000000 +v -2.309699 4.500000 0.956709 +v -1.767767 4.500000 1.767767 +v -0.956709 4.500000 2.309699 +v 0.000000 4.500000 2.500000 +v 0.956708 4.500000 2.309699 +v 1.767767 4.500000 1.767768 +v 2.309699 4.500000 0.956709 +v 2.500000 4.500000 -0.000000 +v 2.309698 4.500000 -0.956709 +v 1.767766 4.500000 -1.767768 +v 0.956707 4.500000 -2.309699 +v 0.000000 5.000000 -2.500000 +v -0.956709 5.000000 -2.309699 +v -1.767767 5.000000 -1.767767 +v -2.309699 5.000000 -0.956709 +v -2.500000 5.000000 0.000000 +v -2.309699 5.000000 0.956709 +v -1.767767 5.000000 1.767767 +v -0.956709 5.000000 2.309699 +v 0.000000 5.000000 2.500000 +v 0.956708 5.000000 2.309699 +v 1.767767 5.000000 1.767768 +v 2.309699 5.000000 0.956709 +v 2.500000 5.000000 -0.000000 +v 2.309698 5.000000 -0.956709 +v 1.767766 5.000000 -1.767768 +v 0.956707 5.000000 -2.309699 +v 1.250000 2.562500 -2.562500 +v 1.250000 2.437500 -2.562500 +v 1.250000 2.562500 -7.437500 +v 1.250000 2.437500 -7.437500 +v 1.125000 2.562500 -7.437500 +v 1.125000 2.562500 -2.562500 +v 1.125000 2.437500 -2.562500 +v 1.125000 2.437500 -7.437500 +v 1.125000 2.437500 -3.437500 +v 1.125000 2.562500 -3.437500 +v 1.125000 2.562500 -2.437500 +v 1.125000 2.437500 -2.437500 +v 1.125000 2.437500 -3.562500 +v 1.125000 2.562500 -3.562500 +v 1.125000 2.437500 -7.562500 +v 1.125000 2.562500 -7.562500 +v 0.937500 2.562500 -2.562500 +v 0.937500 2.437500 -2.562500 +v 1.000000 2.437500 -7.437500 +v 1.000000 2.562500 -7.437500 +v 0.937500 2.562500 -2.437500 +v 0.937500 2.437500 -2.437500 +v 1.000000 2.437500 -7.562500 +v 1.000000 2.562500 -7.562500 +v 0.937500 2.562500 -3.562500 +v 0.937500 2.437500 -3.562500 +v 0.937500 2.562500 -3.437500 +v 0.937500 2.437500 -3.437500 +v 1.125000 2.437500 -4.437500 +v 1.125000 2.562500 -4.437500 +v 1.125000 2.437500 -4.562500 +v 1.125000 2.562500 -4.562500 +v 0.937500 2.562500 -4.562500 +v 0.937500 2.437500 -4.562500 +v 0.937500 2.562500 -4.437500 +v 0.937500 2.437500 -4.437500 +v 1.125000 2.437500 -5.437500 +v 1.125000 2.562500 -5.437500 +v 1.125000 2.437500 -5.562500 +v 1.125000 2.562500 -5.562500 +v 0.937500 2.562500 -5.562500 +v 0.937500 2.437500 -5.562500 +v 0.937500 2.562500 -5.437500 +v 0.937500 2.437500 -5.437500 +v -1.250000 2.437500 -2.562500 +v -1.250000 2.562500 -2.562500 +v -1.250000 2.437500 -7.437500 +v -1.250000 2.562500 -7.437500 +v -1.125000 2.437500 -7.437500 +v -1.125000 2.437500 -2.562500 +v -1.125000 2.562500 -2.562500 +v -1.125000 2.562500 -7.437500 +v -1.125000 2.562500 -3.437500 +v -1.125000 2.437500 -3.437500 +v -1.125000 2.437500 -2.437500 +v -1.125000 2.562500 -2.437500 +v -1.125000 2.562500 -3.562500 +v -1.125000 2.437500 -3.562500 +v -1.125000 2.562500 -7.562500 +v -1.125000 2.437500 -7.562500 +v -0.937500 2.437500 -2.562500 +v -0.937500 2.562500 -2.562500 +v -1.000000 2.562500 -7.437500 +v -1.000000 2.437500 -7.437500 +v -0.937500 2.437500 -2.437500 +v -0.937500 2.562500 -2.437500 +v -1.000000 2.562500 -7.562500 +v -1.000000 2.437500 -7.562500 +v -0.937500 2.437500 -3.562500 +v -0.937500 2.562500 -3.562500 +v -0.937500 2.437500 -3.437500 +v -0.937500 2.562500 -3.437500 +v -1.125000 2.562500 -4.437500 +v -1.125000 2.437500 -4.437500 +v -1.125000 2.562500 -4.562500 +v -1.125000 2.437500 -4.562500 +v -0.937500 2.437500 -4.562500 +v -0.937500 2.562500 -4.562500 +v -0.937500 2.437500 -4.437500 +v -0.937500 2.562500 -4.437500 +v -1.125000 2.562500 -5.437500 +v -1.125000 2.437500 -5.437500 +v -1.125000 2.562500 -5.562500 +v -1.125000 2.437500 -5.562500 +v -0.937500 2.437500 -5.562500 +v -0.937500 2.562500 -5.562500 +v -0.937500 2.437500 -5.437500 +v -0.937500 2.562500 -5.437500 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.512821 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.387590 0.487157 +vt 0.387590 0.635650 +vt 0.279077 0.635650 +vt 0.410064 0.561404 +vt 0.333333 0.666404 +vt 0.256603 0.561404 +vt 0.410509 0.543860 +vt 0.461538 0.474030 +vt 0.512568 0.543860 +vt 0.425455 0.593237 +vt 0.425455 0.494482 +vt 0.497622 0.494482 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.032051 0.868421 +vt 0.025641 0.846491 +vt 0.032051 0.842105 +vt 0.032051 0.815789 +vt 0.025641 0.837719 +vt 0.025641 0.820175 +vt 0.032051 0.763158 +vt 0.025641 0.785088 +vt 0.025641 0.767544 +vt 0.032051 0.947368 +vt 0.025641 0.925439 +vt 0.032051 0.921053 +vt 0.032051 0.894737 +vt 0.025641 0.872807 +vt 0.025641 0.793860 +vt 0.032051 0.789474 +vt 0.025641 0.741228 +vt 0.032051 0.736842 +vt 0.025641 0.916667 +vt 0.025641 0.899123 +vt 0.333333 0.789452 +vt 0.314118 0.763158 +vt 0.333333 0.736863 +vt 0.717949 0.614035 +vt 0.615385 0.473684 +vt 0.717949 0.473684 +vt 0.615385 0.929825 +vt 0.717949 0.789474 +vt 0.717949 0.929825 +vt 0.512821 0.614035 +vt 0.615385 0.789474 +vt 0.512821 0.859649 +vt 0.820513 0.614035 +vt 0.615385 0.614035 +vt 0.410256 0.859649 +vt 0.410256 0.614035 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.871795 0.877193 +vt 0.948718 0.771930 +vt 0.948718 0.877193 +vt 0.948718 0.701754 +vt 0.871795 0.771930 +vt 0.871795 0.701754 +vt 0.871795 0.947368 +vt 0.948718 0.947368 +vt 0.820513 0.771930 +vt 0.820513 0.877193 +vt 1.000000 0.877193 +vt 1.000000 0.771930 +vt 0.442308 0.859649 +vt 0.339744 0.894737 +vt 0.339744 0.859649 +vt 0.339744 0.964912 +vt 0.442308 1.000000 +vt 0.339744 1.000000 +vt 0.442308 0.894737 +vt 0.467949 0.894737 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.339744 0.894737 +vt 0.442308 0.859649 +vt 0.442308 0.894737 +vt 0.442308 1.000000 +vt 0.339744 0.964912 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.467949 0.894737 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.404223 0.521222 +vt 0.410064 0.561404 +vt 0.404223 0.601585 +vt 0.362697 0.658411 +vt 0.333333 0.666404 +vt 0.303970 0.658411 +vt 0.262443 0.601585 +vt 0.256603 0.561404 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456403 +vt 0.362697 0.464396 +vt 0.404223 0.601585 +vt 0.387590 0.635650 +vt 0.362697 0.658411 +vt 0.303970 0.658411 +vt 0.279077 0.635650 +vt 0.262443 0.601585 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456404 +vt 0.362697 0.464396 +vt 0.387590 0.487158 +vt 0.404223 0.521222 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.425455 0.593237 +vt 0.414393 0.570582 +vt 0.414393 0.517137 +vt 0.425455 0.494482 +vt 0.442010 0.479345 +vt 0.481067 0.479345 +vt 0.497622 0.494482 +vt 0.508684 0.517137 +vt 0.508684 0.517137 +vt 0.512568 0.543860 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.414393 0.570583 +vt 0.410509 0.543860 +vt 0.414393 0.517137 +vt 0.442010 0.479345 +vt 0.461538 0.474030 +vt 0.481067 0.479345 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.025641 0.864035 +vt 0.025641 0.942982 +vt 0.025641 0.890351 +vt 0.025641 0.811404 +vt 0.025641 0.758772 +vt 0.319746 0.781751 +vt 0.319746 0.744565 +vt 0.346920 0.744565 +vt 0.352549 0.763158 +vt 0.346921 0.781751 +vt 0.820513 0.859649 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.467949 1.000000 +vt 0.339744 0.859649 +vt 0.339744 1.000000 +vt 0.467949 1.000000 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.705128 0.000000 +vt 0.660256 0.280702 +vt 0.660256 0.000000 +vt 0.391026 0.000000 +vt 0.346154 0.280702 +vt 0.346154 0.000000 +vt 0.750000 0.000000 +vt 0.705128 0.280702 +vt 0.435897 0.000000 +vt 0.391026 0.280702 +vt 0.839744 -0.000000 +vt 0.794872 0.280702 +vt 0.794872 0.000000 +vt 0.750000 0.280702 +vt 0.480769 0.000000 +vt 0.435897 0.280702 +vt 0.884615 -0.000000 +vt 0.839744 0.280702 +vt 0.525641 0.000000 +vt 0.480769 0.280702 +vt 0.929487 -0.000000 +vt 0.884615 0.280702 +vt 0.570513 0.000000 +vt 0.525641 0.280702 +vt 0.974359 -0.000000 +vt 0.929487 0.280702 +vt 0.615385 0.000000 +vt 0.570513 0.280702 +vt 0.301282 0.000000 +vt 0.256410 0.280702 +vt 0.256410 0.000000 +vt 0.615385 0.280702 +vt 0.301282 0.280702 +vt 0.544872 0.385965 +vt 0.516026 0.456140 +vt 0.516026 0.385965 +vt 0.342949 0.385965 +vt 0.314103 0.456140 +vt 0.314103 0.385965 +vt 0.573718 0.385965 +vt 0.544872 0.456140 +vt 0.371795 0.385965 +vt 0.342949 0.456140 +vt 0.631410 0.385965 +vt 0.602564 0.456140 +vt 0.602564 0.385965 +vt 0.573718 0.456140 +vt 0.400641 0.385965 +vt 0.371795 0.456140 +vt 0.660256 0.385965 +vt 0.631410 0.456140 +vt 0.429487 0.385965 +vt 0.400641 0.456140 +vt 0.689103 0.385965 +vt 0.660256 0.456140 +vt 0.458333 0.385965 +vt 0.429487 0.456140 +vt 0.717949 0.385965 +vt 0.689103 0.456140 +vt 0.487179 0.385965 +vt 0.458333 0.456140 +vt 0.285256 0.385965 +vt 0.256410 0.456140 +vt 0.256410 0.385965 +vt 0.487179 0.456140 +vt 0.285256 0.456140 +vt 0.429487 0.456140 +vt 0.458333 0.385965 +vt 0.458333 0.456140 +vt 0.631410 0.456140 +vt 0.660256 0.385965 +vt 0.660256 0.456140 +vt 0.400641 0.456140 +vt 0.429487 0.385965 +vt 0.602564 0.456140 +vt 0.631410 0.385965 +vt 0.342949 0.456140 +vt 0.371795 0.385965 +vt 0.371795 0.456140 +vt 0.400641 0.385965 +vt 0.573718 0.456140 +vt 0.602564 0.385965 +vt 0.314103 0.456140 +vt 0.342949 0.385965 +vt 0.544872 0.456140 +vt 0.573718 0.385965 +vt 0.285256 0.456140 +vt 0.314103 0.385965 +vt 0.516026 0.456140 +vt 0.544872 0.385965 +vt 0.256410 0.456140 +vt 0.285256 0.385965 +vt 0.487179 0.456140 +vt 0.516026 0.385965 +vt 0.689103 0.456140 +vt 0.717949 0.385965 +vt 0.717949 0.456140 +vt 0.487179 0.385965 +vt 0.689103 0.385965 +vt 0.544872 0.456140 +vt 0.525641 0.473684 +vt 0.525641 0.456140 +vt 0.717949 0.456140 +vt 0.698718 0.473684 +vt 0.698718 0.456140 +vt 0.564103 0.456140 +vt 0.544872 0.473684 +vt 0.429487 0.456140 +vt 0.410256 0.473684 +vt 0.410256 0.456140 +vt 0.583333 0.456140 +vt 0.564103 0.473684 +vt 0.448718 0.456140 +vt 0.429487 0.473684 +vt 0.602564 0.456140 +vt 0.583333 0.473684 +vt 0.467949 0.456140 +vt 0.448718 0.473684 +vt 0.621795 0.456140 +vt 0.602564 0.473684 +vt 0.487179 0.456140 +vt 0.467949 0.473684 +vt 0.660256 0.456140 +vt 0.641026 0.473684 +vt 0.641026 0.456140 +vt 0.621795 0.473684 +vt 0.506410 0.456140 +vt 0.487179 0.473684 +vt 0.679487 0.456140 +vt 0.660256 0.473684 +vt 0.506410 0.473684 +vt 0.679487 0.473684 +vt 0.583333 0.473684 +vt 0.602564 0.456140 +vt 0.602564 0.473684 +vt 0.410256 0.473684 +vt 0.429487 0.456140 +vt 0.429487 0.473684 +vt 0.564103 0.473684 +vt 0.583333 0.456140 +vt 0.698718 0.473684 +vt 0.717949 0.456140 +vt 0.717949 0.473684 +vt 0.544872 0.473684 +vt 0.564103 0.456140 +vt 0.679487 0.473684 +vt 0.698718 0.456140 +vt 0.525641 0.473684 +vt 0.544872 0.456140 +vt 0.660256 0.473684 +vt 0.679487 0.456140 +vt 0.506410 0.473684 +vt 0.525641 0.456140 +vt 0.641026 0.473684 +vt 0.660256 0.456140 +vt 0.467949 0.473684 +vt 0.487179 0.456140 +vt 0.487179 0.473684 +vt 0.506410 0.456140 +vt 0.621795 0.473684 +vt 0.641026 0.456140 +vt 0.448718 0.473684 +vt 0.467949 0.456140 +vt 0.621795 0.456140 +vt 0.448718 0.456140 +vt 0.314103 0.842105 +vt 0.314103 0.815789 +vt 0.314103 0.763158 +vt 0.314103 0.921053 +vt 0.314103 0.868421 +vt 0.314103 0.789474 +vt 0.314103 0.736842 +vt 0.314103 0.894737 +vt 0.000000 0.820175 +vt 0.000000 0.767544 +vt 0.000000 0.925439 +vt 0.000000 0.872807 +vt 0.000000 0.793860 +vt -0.000000 0.741228 +vt 0.000000 0.899123 +vt 0.000000 0.846491 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.324561 +vt 0.942308 0.701754 +vt 0.923077 0.640351 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.482456 +vt 0.903846 0.451754 +vt 0.923077 0.447368 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.324561 +vt 0.903846 0.293860 +vt 0.923077 0.289474 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.993590 0.504386 +vt 0.974359 0.535088 +vt 0.974359 0.500000 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.640351 +vt 0.903846 0.609649 +vt 0.923077 0.605263 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.923077 0.482456 +vt 0.948718 0.543860 +vt 0.942308 0.491228 +vt 0.948718 0.491228 +vt 0.948718 0.596491 +vt 0.942308 0.543860 +vt 0.948718 0.649123 +vt 0.942308 0.596491 +vt 0.948718 0.701754 +vt 0.942308 0.649123 +vt 0.948718 0.333333 +vt 0.942308 0.280702 +vt 0.948718 0.280702 +vt 0.948718 0.385965 +vt 0.942308 0.333333 +vt 0.948718 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.640351 +vt 0.923077 0.482456 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.820513 0.385965 +vt 0.974359 0.280702 +vt 0.717949 0.456140 +vt 0.256410 0.385965 +vt 0.717949 0.473684 +vt 0.410256 0.456140 +vt 0.314103 0.947368 +vt 0.000000 0.837719 +vt 0.000000 0.785088 +vt 0.000000 0.942982 +vt 0.000000 0.890351 +vt 0.000000 0.811404 +vt 0.000000 0.758772 +vt 0.000000 0.916667 +vt 0.000000 0.864035 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.903846 0.425439 +vt 0.923077 0.482456 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.903846 0.478070 +vt 0.923077 0.535088 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.903846 0.320175 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.530702 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.635965 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.923077 0.324561 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.820513 0.385965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.5000 -0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.8944 -0.4472 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.5000 -0.5000 -0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.5000 0.5000 0.7071 +vn -0.5000 0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -0.0000 -0.7071 0.7071 +s off +f 283/348/71 279/349/71 275/350/71 +f 293/351/72 297/352/72 285/353/72 +f 335/354/73 334/355/73 333/356/73 +f 339/357/74 337/358/74 338/359/74 +f 336/360/75 339/357/75 334/355/75 +f 333/361/76 337/358/76 335/362/76 +f 340/363/75 336/360/75 341/364/75 +f 334/355/75 339/357/75 344/365/75 +f 339/357/77 343/366/77 344/367/77 +f 335/362/76 337/358/76 342/368/76 +f 343/366/71 352/369/71 344/367/71 +f 342/370/76 348/371/76 335/372/76 +f 338/359/76 333/361/76 343/373/76 +f 359/374/75 357/375/75 358/376/75 +f 355/377/76 354/378/76 353/379/76 +f 333/380/76 351/381/76 343/366/76 +f 336/382/75 349/383/75 341/384/75 +f 344/367/75 346/385/75 334/386/75 +f 335/387/71 347/388/71 336/382/71 +f 333/389/72 346/385/72 345/390/72 +f 342/370/72 349/383/72 350/391/72 +f 340/363/78 342/370/78 337/358/78 +f 356/392/73 359/374/73 354/378/73 +f 353/393/74 357/375/74 355/394/74 +f 360/395/73 356/392/73 361/396/73 +f 354/378/73 359/374/73 364/397/73 +f 359/374/79 363/398/79 364/399/79 +f 355/394/74 357/375/74 362/400/74 +f 364/399/71 371/401/71 372/402/71 +f 362/403/74 368/404/74 355/405/74 +f 358/376/74 353/393/74 363/406/74 +f 353/407/74 371/401/74 363/398/74 +f 356/408/73 369/409/73 361/410/73 +f 364/399/73 366/411/73 354/412/73 +f 356/408/71 368/413/71 367/414/71 +f 354/412/72 365/415/72 353/416/72 +f 361/410/72 370/417/72 362/403/72 +f 360/395/80 362/403/80 357/375/80 +f 375/418/74 374/419/74 373/420/74 +f 379/421/73 377/422/73 378/423/73 +f 376/424/76 379/421/76 374/419/76 +f 373/425/75 377/422/75 375/426/75 +f 380/427/76 376/424/76 381/428/76 +f 374/419/76 379/421/76 384/429/76 +f 378/423/81 384/430/81 379/421/81 +f 375/426/75 377/422/75 382/431/75 +f 383/432/71 392/433/71 384/430/71 +f 382/434/75 388/435/75 375/436/75 +f 378/423/75 373/425/75 383/437/75 +f 399/438/76 397/439/76 398/440/76 +f 395/441/75 394/442/75 393/443/75 +f 373/444/75 391/445/75 383/432/75 +f 376/446/76 389/447/76 381/448/76 +f 384/430/76 386/449/76 374/450/76 +f 375/451/71 387/452/71 376/446/71 +f 373/453/72 386/449/72 385/454/72 +f 382/434/72 389/447/72 390/455/72 +f 377/422/82 381/448/82 382/434/82 +f 396/456/74 399/438/74 394/442/74 +f 393/457/73 397/439/73 395/458/73 +f 400/459/74 396/456/74 401/460/74 +f 394/442/74 399/438/74 404/461/74 +f 398/440/83 404/462/83 399/438/83 +f 395/458/73 397/439/73 402/463/73 +f 404/462/71 411/464/71 412/465/71 +f 402/466/73 408/467/73 395/468/73 +f 398/440/73 393/457/73 403/469/73 +f 393/470/73 411/464/73 403/471/73 +f 396/472/74 409/473/74 401/474/74 +f 404/462/74 406/475/74 394/476/74 +f 396/472/71 408/477/71 407/478/71 +f 394/476/72 405/479/72 393/480/72 +f 401/474/72 410/481/72 402/466/72 +f 400/459/84 402/466/84 397/439/84 +f 447/482/71 459/483/71 455/484/71 +f 429/485/72 433/486/72 437/487/72 +f 501/488/72 505/489/72 493/490/72 +f 519/491/71 515/492/71 511/493/71 +f 553/494/73 552/495/73 554/496/73 +f 544/497/75 550/498/75 546/499/75 +f 551/500/73 556/501/73 552/495/73 +f 551/500/73 545/502/73 543/503/73 +f 547/504/75 546/499/75 548/505/75 +f 544/497/75 541/506/75 542/507/75 +f 569/508/74 568/509/74 570/510/74 +f 560/511/76 566/512/76 562/513/76 +f 567/514/74 572/515/74 568/509/74 +f 567/514/74 561/516/74 559/517/74 +f 563/518/76 562/513/76 564/519/76 +f 560/511/76 557/520/76 558/521/76 +f 574/522/85 589/523/85 573/524/85 +f 580/525/85 589/526/85 596/527/85 +f 578/528/85 595/529/85 594/530/85 +f 577/531/85 592/532/85 576/533/85 +f 575/534/85 590/535/85 574/522/85 +f 580/525/85 595/536/85 579/537/85 +f 578/528/85 593/538/85 577/539/85 +f 575/534/85 592/540/85 591/541/85 +f 598/542/85 599/543/85 601/544/85 +f 607/545/71 606/546/71 605/547/71 +f 611/548/86 609/549/86 610/550/86 +f 606/551/87 612/552/87 611/553/87 +f 605/554/88 609/549/88 607/545/88 +f 607/545/89 612/552/89 608/555/89 +f 606/551/85 610/556/85 605/557/85 +f 615/558/71 614/559/71 613/560/71 +f 620/561/72 623/562/72 619/563/72 +f 616/564/87 619/563/87 614/559/87 +f 613/565/88 617/566/88 615/567/88 +f 615/568/89 620/569/89 616/570/89 +f 614/571/85 618/572/85 613/573/85 +f 621/574/89 628/575/89 624/576/89 +f 618/577/72 621/578/72 617/566/72 +f 617/579/72 624/576/72 620/569/72 +f 619/580/72 622/581/72 618/572/72 +f 623/582/85 626/583/85 622/581/85 +f 624/584/87 627/585/87 623/562/87 +f 622/586/88 625/587/88 621/578/88 +f 635/588/72 633/589/72 634/590/72 +f 631/591/89 636/592/89 632/593/89 +f 630/594/85 634/590/85 629/595/85 +f 632/596/87 635/588/87 630/597/87 +f 629/598/88 633/589/88 631/599/88 +f 639/600/71 638/601/71 637/602/71 +f 643/603/90 641/604/90 642/605/90 +f 640/606/87 643/603/87 638/601/87 +f 639/607/89 644/608/89 640/606/89 +f 637/609/85 643/603/85 642/610/85 +f 647/611/71 646/612/71 645/613/71 +f 651/614/91 649/615/91 650/616/91 +f 648/617/89 649/615/89 652/618/89 +f 646/619/85 650/616/85 645/613/85 +f 645/613/88 649/615/88 647/611/88 +f 702/620/72 703/621/72 701/622/72 +f 705/623/71 707/624/71 706/625/71 +f 705/626/88 703/621/88 716/627/88 +f 707/628/89 717/629/89 706/630/89 +f 702/620/87 708/631/87 704/632/87 +f 703/621/88 706/633/88 701/622/88 +f 704/632/92 716/634/92 703/621/92 +f 714/635/88 727/636/88 710/637/88 +f 701/622/88 706/633/88 711/638/88 +f 707/624/87 702/620/87 712/639/87 +f 713/640/89 725/641/89 714/642/89 +f 705/643/85 719/644/85 708/645/85 +f 709/646/87 726/647/87 713/640/87 +f 704/632/87 708/631/87 715/648/87 +f 701/622/93 712/649/93 702/620/93 +f 712/649/87 718/650/87 707/628/87 +f 716/634/88 720/651/88 705/652/88 +f 715/653/89 724/654/89 716/634/89 +f 706/655/88 721/656/88 711/657/88 +f 708/645/87 723/658/87 715/653/87 +f 711/657/85 722/659/85 712/649/85 +f 710/637/85 728/660/85 709/646/85 +f 732/661/88 735/662/88 730/663/88 +f 731/664/89 733/665/89 732/666/89 +f 729/667/87 734/668/87 731/664/87 +f 730/663/85 736/669/85 729/667/85 +f 740/670/88 743/671/88 738/672/88 +f 739/673/89 741/674/89 740/675/89 +f 737/676/87 742/677/87 739/673/87 +f 738/672/85 744/678/85 737/676/85 +f 923/679/71 922/680/71 921/681/71 +f 928/682/72 931/683/72 927/684/72 +f 924/685/87 927/684/87 922/680/87 +f 921/686/88 925/687/88 923/688/88 +f 923/689/89 928/690/89 924/691/89 +f 922/692/85 926/693/85 921/694/85 +f 929/695/89 936/696/89 932/697/89 +f 926/698/72 929/699/72 925/687/72 +f 925/700/72 932/697/72 928/690/72 +f 927/701/72 930/702/72 926/693/72 +f 931/703/85 934/704/85 930/702/85 +f 932/705/87 935/706/87 931/683/87 +f 930/707/88 933/708/88 929/699/88 +f 951/709/71 947/710/71 943/711/71 +f 961/712/72 965/713/72 953/714/72 +f 970/715/87 971/716/87 969/717/87 +f 973/718/88 975/719/88 974/720/88 +f 973/721/72 971/716/72 984/722/72 +f 975/723/89 985/724/89 974/725/89 +f 970/715/71 976/726/71 972/727/71 +f 971/716/72 974/728/72 969/717/72 +f 972/727/75 984/729/75 971/716/75 +f 982/730/72 995/731/72 978/732/72 +f 969/717/72 974/728/72 979/733/72 +f 975/719/71 970/715/71 980/734/71 +f 981/735/89 993/736/89 982/737/89 +f 973/738/85 987/739/85 976/740/85 +f 977/741/71 994/742/71 981/735/71 +f 972/727/71 976/726/71 983/743/71 +f 969/717/74 980/744/74 970/715/74 +f 980/744/71 986/745/71 975/723/71 +f 984/729/72 988/746/72 973/747/72 +f 983/748/89 992/749/89 984/729/89 +f 974/750/72 989/751/72 979/752/72 +f 976/740/71 991/753/71 983/748/71 +f 979/752/85 990/754/85 980/744/85 +f 978/732/85 996/755/85 977/741/85 +f 1000/756/72 1003/757/72 998/758/72 +f 999/759/89 1001/760/89 1000/761/89 +f 997/762/71 1002/763/71 999/759/71 +f 998/758/85 1004/764/85 997/762/85 +f 1008/765/72 1011/766/72 1006/767/72 +f 1007/768/89 1009/769/89 1008/770/89 +f 1005/771/71 1010/772/71 1007/768/71 +f 1006/767/85 1012/773/85 1005/771/85 +f 1014/774/88 1015/775/88 1013/776/88 +f 1017/777/87 1019/778/87 1018/779/87 +f 1017/780/71 1015/775/71 1028/781/71 +f 1019/782/89 1029/783/89 1018/784/89 +f 1014/774/72 1020/785/72 1016/786/72 +f 1015/775/71 1018/787/71 1013/776/71 +f 1016/786/73 1028/788/73 1015/775/73 +f 1026/789/71 1039/790/71 1022/791/71 +f 1013/776/71 1018/787/71 1023/792/71 +f 1019/778/72 1014/774/72 1024/793/72 +f 1025/794/89 1037/795/89 1026/796/89 +f 1017/797/85 1031/798/85 1020/799/85 +f 1021/800/72 1038/801/72 1025/794/72 +f 1016/786/72 1020/785/72 1027/802/72 +f 1013/776/76 1024/803/76 1014/774/76 +f 1024/803/72 1030/804/72 1019/782/72 +f 1028/788/71 1032/805/71 1017/806/71 +f 1027/807/89 1036/808/89 1028/788/89 +f 1018/809/71 1033/810/71 1023/811/71 +f 1020/799/72 1035/812/72 1027/807/72 +f 1023/811/85 1034/813/85 1024/803/85 +f 1022/791/85 1040/814/85 1021/800/85 +f 1044/815/71 1047/816/71 1042/817/71 +f 1043/818/89 1045/819/89 1044/820/89 +f 1041/821/72 1046/822/72 1043/818/72 +f 1042/817/85 1048/823/85 1041/821/85 +f 1052/824/71 1055/825/71 1050/826/71 +f 1051/827/89 1053/828/89 1052/829/89 +f 1049/830/72 1054/831/72 1051/827/72 +f 1050/826/85 1056/832/85 1049/830/85 +f 271/833/71 270/834/71 269/835/71 +f 269/835/71 284/836/71 271/833/71 +f 284/836/71 283/348/71 271/833/71 +f 283/348/71 282/837/71 279/349/71 +f 282/837/71 281/838/71 279/349/71 +f 281/838/71 280/839/71 279/349/71 +f 279/349/71 278/840/71 275/350/71 +f 278/840/71 277/841/71 275/350/71 +f 277/841/71 276/842/71 275/350/71 +f 275/350/71 274/843/71 273/844/71 +f 273/844/71 272/845/71 271/833/71 +f 275/350/71 273/844/71 271/833/71 +f 271/833/71 283/348/71 275/350/71 +f 285/353/72 286/846/72 287/847/72 +f 287/847/72 288/848/72 289/849/72 +f 289/849/72 290/850/72 291/851/72 +f 291/851/72 292/852/72 293/351/72 +f 293/351/72 294/853/72 297/352/72 +f 294/853/72 295/854/72 297/352/72 +f 295/854/72 296/855/72 297/352/72 +f 297/352/72 298/856/72 285/353/72 +f 298/856/72 299/857/72 285/353/72 +f 299/857/72 300/858/72 285/353/72 +f 285/353/72 287/847/72 289/849/72 +f 289/849/72 291/851/72 293/351/72 +f 285/353/72 289/849/72 293/351/72 +f 335/354/73 336/360/73 334/355/73 +f 339/357/74 340/363/74 337/358/74 +f 336/360/75 340/363/75 339/357/75 +f 333/361/76 338/359/76 337/358/76 +f 339/357/77 338/359/77 343/366/77 +f 343/366/71 351/381/71 352/369/71 +f 342/370/76 350/391/76 348/371/76 +f 359/374/75 360/395/75 357/375/75 +f 355/377/76 356/392/76 354/378/76 +f 333/380/76 345/859/76 351/381/76 +f 336/382/75 347/388/75 349/383/75 +f 344/367/75 352/369/75 346/385/75 +f 335/387/71 348/860/71 347/388/71 +f 333/389/72 334/386/72 346/385/72 +f 342/370/72 341/384/72 349/383/72 +f 340/363/78 341/384/78 342/370/78 +f 356/392/73 360/395/73 359/374/73 +f 353/393/74 358/376/74 357/375/74 +f 359/374/79 358/376/79 363/398/79 +f 364/399/71 363/398/71 371/401/71 +f 362/403/74 370/417/74 368/404/74 +f 353/407/74 365/861/74 371/401/74 +f 356/408/73 367/414/73 369/409/73 +f 364/399/73 372/402/73 366/411/73 +f 356/408/71 355/862/71 368/413/71 +f 354/412/72 366/411/72 365/415/72 +f 361/410/72 369/409/72 370/417/72 +f 360/395/80 361/410/80 362/403/80 +f 375/418/74 376/424/74 374/419/74 +f 379/421/73 380/427/73 377/422/73 +f 376/424/76 380/427/76 379/421/76 +f 373/425/75 378/423/75 377/422/75 +f 378/423/81 383/432/81 384/430/81 +f 383/432/71 391/445/71 392/433/71 +f 382/434/75 390/455/75 388/435/75 +f 399/438/76 400/459/76 397/439/76 +f 395/441/75 396/456/75 394/442/75 +f 373/444/75 385/863/75 391/445/75 +f 376/446/76 387/452/76 389/447/76 +f 384/430/76 392/433/76 386/449/76 +f 375/451/71 388/864/71 387/452/71 +f 373/453/72 374/450/72 386/449/72 +f 382/434/72 381/448/72 389/447/72 +f 377/422/82 380/427/82 381/448/82 +f 396/456/74 400/459/74 399/438/74 +f 393/457/73 398/440/73 397/439/73 +f 398/440/83 403/471/83 404/462/83 +f 404/462/71 403/471/71 411/464/71 +f 402/466/73 410/481/73 408/467/73 +f 393/470/73 405/865/73 411/464/73 +f 396/472/74 407/478/74 409/473/74 +f 404/462/74 412/465/74 406/475/74 +f 396/472/71 395/866/71 408/477/71 +f 394/476/72 406/475/72 405/479/72 +f 401/474/72 409/473/72 410/481/72 +f 400/459/84 401/474/84 402/466/84 +f 447/482/71 446/867/71 459/483/71 +f 446/867/71 445/868/71 459/483/71 +f 445/868/71 460/869/71 459/483/71 +f 459/483/71 458/870/71 457/871/71 +f 457/871/71 456/872/71 455/484/71 +f 455/484/71 454/873/71 453/874/71 +f 453/874/71 452/875/71 455/484/71 +f 452/875/71 451/876/71 455/484/71 +f 451/876/71 450/877/71 449/878/71 +f 449/878/71 448/879/71 447/482/71 +f 459/483/71 457/871/71 455/484/71 +f 451/876/71 449/878/71 455/484/71 +f 449/878/71 447/482/71 455/484/71 +f 429/485/72 430/880/72 433/486/72 +f 430/880/72 431/881/72 433/486/72 +f 431/881/72 432/882/72 433/486/72 +f 433/486/72 434/883/72 435/884/72 +f 435/884/72 436/885/72 433/486/72 +f 436/885/72 437/487/72 433/486/72 +f 437/487/72 438/886/72 439/887/72 +f 439/887/72 440/888/72 441/889/72 +f 441/889/72 442/890/72 443/891/72 +f 443/891/72 444/892/72 429/485/72 +f 437/487/72 439/887/72 429/485/72 +f 439/887/72 441/889/72 429/485/72 +f 441/889/72 443/891/72 429/485/72 +f 493/490/72 494/893/72 495/894/72 +f 495/894/72 496/895/72 497/896/72 +f 497/896/72 498/897/72 499/898/72 +f 499/898/72 500/899/72 501/488/72 +f 501/488/72 502/900/72 505/489/72 +f 502/900/72 503/901/72 505/489/72 +f 503/901/72 504/902/72 505/489/72 +f 505/489/72 506/903/72 507/904/72 +f 507/904/72 508/905/72 505/489/72 +f 508/905/72 493/490/72 505/489/72 +f 493/490/72 495/894/72 497/896/72 +f 497/896/72 499/898/72 493/490/72 +f 499/898/72 501/488/72 493/490/72 +f 511/493/71 510/906/71 509/907/71 +f 509/907/71 524/908/71 511/493/71 +f 524/908/71 523/909/71 511/493/71 +f 523/909/71 522/910/71 521/911/71 +f 521/911/71 520/912/71 519/491/71 +f 519/491/71 518/913/71 515/492/71 +f 518/913/71 517/914/71 515/492/71 +f 517/914/71 516/915/71 515/492/71 +f 515/492/71 514/916/71 513/917/71 +f 513/917/71 512/918/71 511/493/71 +f 523/909/71 521/911/71 511/493/71 +f 521/911/71 519/491/71 511/493/71 +f 515/492/71 513/917/71 511/493/71 +f 547/504/75 541/506/75 544/497/75 +f 544/497/75 549/919/75 550/498/75 +f 546/499/75 547/504/75 544/497/75 +f 553/494/73 545/502/73 551/500/73 +f 551/500/73 555/920/73 556/501/73 +f 552/495/73 553/494/73 551/500/73 +f 563/518/76 557/520/76 560/511/76 +f 560/511/76 565/921/76 566/512/76 +f 562/513/76 563/518/76 560/511/76 +f 569/508/74 561/516/74 567/514/74 +f 567/514/74 571/922/74 572/515/74 +f 568/509/74 569/508/74 567/514/74 +f 574/522/85 590/923/85 589/523/85 +f 580/525/85 573/524/85 589/526/85 +f 578/528/85 579/537/85 595/529/85 +f 577/531/85 593/924/85 592/532/85 +f 575/534/85 591/925/85 590/535/85 +f 580/525/85 596/926/85 595/536/85 +f 578/528/85 594/927/85 593/538/85 +f 575/534/85 576/533/85 592/540/85 +f 598/542/85 597/928/85 599/543/85 +f 599/543/85 600/929/85 601/544/85 +f 601/544/85 602/930/85 603/931/85 +f 603/931/85 604/932/85 601/544/85 +f 604/932/85 598/542/85 601/544/85 +f 607/545/71 608/555/71 606/546/71 +f 611/548/86 612/552/86 609/549/86 +f 606/551/87 608/555/87 612/552/87 +f 605/554/88 610/933/88 609/549/88 +f 607/545/89 609/549/89 612/552/89 +f 606/551/85 611/553/85 610/556/85 +f 615/558/71 616/564/71 614/559/71 +f 620/561/72 624/584/72 623/562/72 +f 616/564/87 620/561/87 619/563/87 +f 613/565/88 618/577/88 617/566/88 +f 615/568/89 617/579/89 620/569/89 +f 614/571/85 619/580/85 618/572/85 +f 621/574/89 625/934/89 628/575/89 +f 618/577/72 622/586/72 621/578/72 +f 617/579/72 621/574/72 624/576/72 +f 619/580/72 623/582/72 622/581/72 +f 623/582/85 627/935/85 626/583/85 +f 624/584/87 628/936/87 627/585/87 +f 622/586/88 626/937/88 625/587/88 +f 635/588/72 636/592/72 633/589/72 +f 631/591/89 633/589/89 636/592/89 +f 630/594/85 635/588/85 634/590/85 +f 632/596/87 636/592/87 635/588/87 +f 629/598/88 634/590/88 633/589/88 +f 639/600/71 640/606/71 638/601/71 +f 643/603/90 644/608/90 641/604/90 +f 640/606/87 644/608/87 643/603/87 +f 639/607/89 641/938/89 644/608/89 +f 637/609/85 638/601/85 643/603/85 +f 647/611/71 648/939/71 646/612/71 +f 651/614/91 652/940/91 649/615/91 +f 648/617/89 647/611/89 649/615/89 +f 646/619/85 651/941/85 650/616/85 +f 645/613/88 650/616/88 649/615/88 +f 702/620/72 704/632/72 703/621/72 +f 705/623/71 708/631/71 707/624/71 +f 707/628/89 718/650/89 717/629/89 +f 702/620/87 707/624/87 708/631/87 +f 703/621/88 705/626/88 706/633/88 +f 704/632/92 715/653/92 716/634/92 +f 714/635/88 725/942/88 727/636/88 +f 713/640/89 726/647/89 725/641/89 +f 705/643/85 720/943/85 719/644/85 +f 709/646/87 728/660/87 726/647/87 +f 701/622/93 711/657/93 712/649/93 +f 712/649/87 722/659/87 718/650/87 +f 716/634/88 724/654/88 720/651/88 +f 715/653/89 723/658/89 724/654/89 +f 706/655/88 717/944/88 721/656/88 +f 708/645/87 719/644/87 723/658/87 +f 711/657/85 721/656/85 722/659/85 +f 710/637/85 727/636/85 728/660/85 +f 732/661/88 733/945/88 735/662/88 +f 731/664/89 734/668/89 733/665/89 +f 729/667/87 736/669/87 734/668/87 +f 730/663/85 735/662/85 736/669/85 +f 740/670/88 741/946/88 743/671/88 +f 739/673/89 742/677/89 741/674/89 +f 737/676/87 744/678/87 742/677/87 +f 738/672/85 743/671/85 744/678/85 +f 923/679/71 924/685/71 922/680/71 +f 928/682/72 932/705/72 931/683/72 +f 924/685/87 928/682/87 927/684/87 +f 921/686/88 926/698/88 925/687/88 +f 923/689/89 925/700/89 928/690/89 +f 922/692/85 927/701/85 926/693/85 +f 929/695/89 933/947/89 936/696/89 +f 926/698/72 930/707/72 929/699/72 +f 925/700/72 929/695/72 932/697/72 +f 927/701/72 931/703/72 930/702/72 +f 931/703/85 935/948/85 934/704/85 +f 932/705/87 936/949/87 935/706/87 +f 930/707/88 934/950/88 933/708/88 +f 939/951/71 938/952/71 937/953/71 +f 937/953/71 952/954/71 939/951/71 +f 952/954/71 951/709/71 939/951/71 +f 951/709/71 950/955/71 947/710/71 +f 950/955/71 949/956/71 947/710/71 +f 949/956/71 948/957/71 947/710/71 +f 947/710/71 946/958/71 943/711/71 +f 946/958/71 945/959/71 943/711/71 +f 945/959/71 944/960/71 943/711/71 +f 943/711/71 942/961/71 941/962/71 +f 941/962/71 940/963/71 939/951/71 +f 943/711/71 941/962/71 939/951/71 +f 939/951/71 951/709/71 943/711/71 +f 953/714/72 954/964/72 955/965/72 +f 955/965/72 956/966/72 957/967/72 +f 957/967/72 958/968/72 959/969/72 +f 959/969/72 960/970/72 961/712/72 +f 961/712/72 962/971/72 965/713/72 +f 962/971/72 963/972/72 965/713/72 +f 963/972/72 964/973/72 965/713/72 +f 965/713/72 966/974/72 953/714/72 +f 966/974/72 967/975/72 953/714/72 +f 967/975/72 968/976/72 953/714/72 +f 953/714/72 955/965/72 957/967/72 +f 957/967/72 959/969/72 961/712/72 +f 953/714/72 957/967/72 961/712/72 +f 970/715/87 972/727/87 971/716/87 +f 973/718/88 976/726/88 975/719/88 +f 975/723/89 986/745/89 985/724/89 +f 970/715/71 975/719/71 976/726/71 +f 971/716/72 973/721/72 974/728/72 +f 972/727/75 983/748/75 984/729/75 +f 982/730/72 993/977/72 995/731/72 +f 981/735/89 994/742/89 993/736/89 +f 973/738/85 988/978/85 987/739/85 +f 977/741/71 996/755/71 994/742/71 +f 969/717/74 979/752/74 980/744/74 +f 980/744/71 990/754/71 986/745/71 +f 984/729/72 992/749/72 988/746/72 +f 983/748/89 991/753/89 992/749/89 +f 974/750/72 985/979/72 989/751/72 +f 976/740/71 987/739/71 991/753/71 +f 979/752/85 989/751/85 990/754/85 +f 978/732/85 995/731/85 996/755/85 +f 1000/756/72 1001/980/72 1003/757/72 +f 999/759/89 1002/763/89 1001/760/89 +f 997/762/71 1004/764/71 1002/763/71 +f 998/758/85 1003/757/85 1004/764/85 +f 1008/765/72 1009/981/72 1011/766/72 +f 1007/768/89 1010/772/89 1009/769/89 +f 1005/771/71 1012/773/71 1010/772/71 +f 1006/767/85 1011/766/85 1012/773/85 +f 1014/774/88 1016/786/88 1015/775/88 +f 1017/777/87 1020/785/87 1019/778/87 +f 1019/782/89 1030/804/89 1029/783/89 +f 1014/774/72 1019/778/72 1020/785/72 +f 1015/775/71 1017/780/71 1018/787/71 +f 1016/786/73 1027/807/73 1028/788/73 +f 1026/789/71 1037/982/71 1039/790/71 +f 1025/794/89 1038/801/89 1037/795/89 +f 1017/797/85 1032/983/85 1031/798/85 +f 1021/800/72 1040/814/72 1038/801/72 +f 1013/776/76 1023/811/76 1024/803/76 +f 1024/803/72 1034/813/72 1030/804/72 +f 1028/788/71 1036/808/71 1032/805/71 +f 1027/807/89 1035/812/89 1036/808/89 +f 1018/809/71 1029/984/71 1033/810/71 +f 1020/799/72 1031/798/72 1035/812/72 +f 1023/811/85 1033/810/85 1034/813/85 +f 1022/791/85 1039/790/85 1040/814/85 +f 1044/815/71 1045/985/71 1047/816/71 +f 1043/818/89 1046/822/89 1045/819/89 +f 1041/821/72 1048/823/72 1046/822/72 +f 1042/817/85 1047/816/85 1048/823/85 +f 1052/824/71 1053/986/71 1055/825/71 +f 1051/827/89 1054/831/89 1053/828/89 +f 1049/830/72 1056/832/72 1054/831/72 +f 1050/826/85 1055/825/85 1056/832/85 +s 1 +f 283/987/75 298/988/94 282/989/94 +f 276/990/95 291/991/76 275/992/76 +f 284/993/96 299/994/75 283/987/75 +f 277/995/85 292/996/95 276/990/95 +f 270/997/97 285/998/89 269/999/89 +f 269/999/89 300/1000/96 284/993/96 +f 278/1001/98 293/1002/85 277/995/85 +f 271/1003/73 286/1004/97 270/997/97 +f 279/1005/74 294/1006/98 278/1001/98 +f 272/1007/99 287/1008/73 271/1003/73 +f 280/1009/100 295/1010/74 279/1005/74 +f 273/1011/88 288/1012/99 272/1007/99 +f 281/1013/87 296/1014/100 280/1009/100 +f 274/1015/101 289/1016/88 273/1017/88 +f 282/989/94 297/1018/87 281/1013/87 +f 275/992/76 290/1019/101 274/1015/101 +f 315/1020/75 330/1021/94 314/1022/94 +f 308/1023/95 323/1024/76 307/1025/76 +f 316/1026/96 331/1027/75 315/1020/75 +f 309/1028/85 324/1029/95 308/1023/95 +f 302/1030/97 317/1031/89 301/1032/89 +f 301/1032/89 332/1033/96 316/1026/96 +f 310/1034/98 325/1035/85 309/1028/85 +f 303/1036/73 318/1037/97 302/1030/97 +f 311/1038/74 326/1039/98 310/1034/98 +f 304/1040/99 319/1041/73 303/1036/73 +f 312/1042/100 327/1043/74 311/1038/74 +f 305/1044/88 320/1045/99 304/1040/99 +f 313/1046/87 328/1047/100 312/1042/100 +f 306/1048/101 321/1049/88 305/1050/88 +f 314/1022/94 329/1051/87 313/1046/87 +f 307/1025/76 322/1052/101 306/1048/101 +f 427/1053/75 442/1054/94 426/1055/94 +f 420/1056/95 435/1057/76 419/1058/76 +f 428/1059/96 443/1060/75 427/1053/75 +f 421/1061/85 436/1062/95 420/1056/95 +f 414/1063/97 429/1064/89 413/1065/89 +f 413/1065/89 444/1066/96 428/1059/96 +f 422/1067/98 437/1068/85 421/1061/85 +f 415/1069/73 430/1070/97 414/1063/97 +f 423/1071/74 438/1072/98 422/1067/98 +f 416/1073/99 431/1074/73 415/1069/73 +f 424/1075/100 439/1076/74 423/1071/74 +f 417/1077/88 432/1078/99 416/1073/99 +f 425/1079/87 440/1080/100 424/1075/100 +f 418/1081/101 433/1082/88 417/1083/88 +f 426/1055/94 441/1084/87 425/1079/87 +f 419/1058/76 434/1085/101 418/1081/101 +f 459/1086/75 474/1087/94 458/1088/94 +f 452/1089/95 467/1090/76 451/1091/76 +f 460/1092/96 475/1093/75 459/1086/75 +f 453/1094/85 468/1095/95 452/1089/95 +f 446/1096/97 461/1097/89 445/1098/89 +f 445/1098/89 476/1099/96 460/1092/96 +f 454/1100/98 469/1101/85 453/1094/85 +f 447/1102/73 462/1103/97 446/1096/97 +f 455/1104/74 470/1105/98 454/1100/98 +f 448/1106/99 463/1107/73 447/1102/73 +f 456/1108/100 471/1109/74 455/1104/74 +f 449/1110/88 464/1111/99 448/1106/99 +f 457/1112/87 472/1113/100 456/1108/100 +f 450/1114/101 465/1115/88 449/1116/88 +f 458/1088/94 473/1117/87 457/1112/87 +f 451/1091/76 466/1118/101 450/1114/101 +f 488/1119/100 503/1120/74 487/1121/74 +f 481/1122/88 496/1123/99 480/1124/99 +f 489/1125/87 504/1126/100 488/1119/100 +f 482/1127/101 497/1128/88 481/1129/88 +f 490/1130/94 505/1131/87 489/1125/87 +f 483/1132/76 498/1133/101 482/1127/101 +f 491/1134/75 506/1135/94 490/1130/94 +f 484/1136/95 499/1137/76 483/1132/76 +f 492/1138/96 507/1139/75 491/1134/75 +f 485/1140/85 500/1141/95 484/1136/95 +f 478/1142/97 493/1143/89 477/1144/89 +f 477/1144/89 508/1145/96 492/1138/96 +f 486/1146/98 501/1147/85 485/1140/85 +f 479/1148/73 494/1149/97 478/1142/97 +f 487/1121/74 502/1150/98 486/1146/98 +f 480/1124/99 495/1151/73 479/1148/73 +f 520/1152/100 535/1153/74 519/1154/74 +f 513/1155/88 528/1156/99 512/1157/99 +f 521/1158/87 536/1159/100 520/1152/100 +f 514/1160/101 529/1161/88 513/1162/88 +f 522/1163/94 537/1164/87 521/1158/87 +f 515/1165/76 530/1166/101 514/1160/101 +f 523/1167/75 538/1168/94 522/1163/94 +f 516/1169/95 531/1170/76 515/1165/76 +f 524/1171/96 539/1172/75 523/1167/75 +f 517/1173/85 532/1174/95 516/1169/95 +f 510/1175/97 525/1176/89 509/1177/89 +f 509/1177/89 540/1178/96 524/1171/96 +f 518/1179/98 533/1180/85 517/1173/85 +f 511/1181/73 526/1182/97 510/1175/97 +f 519/1154/74 534/1183/98 518/1179/98 +f 512/1157/99 527/1184/73 511/1181/73 +f 581/1185/72 574/522/91 573/524/72 +f 588/1186/90 573/524/72 580/525/90 +f 586/1187/102 579/537/87 578/528/102 +f 584/1188/103 577/531/71 576/533/103 +f 582/1189/91 575/534/88 574/522/91 +f 587/1190/87 580/525/90 579/537/87 +f 585/1191/71 578/528/102 577/539/71 +f 583/1192/88 576/533/103 575/534/88 +f 589/526/72 604/1193/90 596/527/90 +f 595/529/87 602/1194/102 594/530/102 +f 593/924/71 600/1195/103 592/532/103 +f 591/925/88 597/1196/91 590/535/91 +f 596/926/90 603/1197/87 595/536/87 +f 594/927/102 601/1198/71 593/538/71 +f 592/540/103 599/1199/88 591/541/88 +f 590/923/91 598/1200/72 589/523/72 +f 685/1201/104 700/1202/105 693/1203/104 +f 686/1204/73 693/1205/104 694/1206/73 +f 695/1207/106 686/1208/73 694/1209/73 +f 688/1210/92 695/1211/106 696/1212/92 +f 689/1213/107 696/1214/92 697/1215/107 +f 698/1216/75 689/1217/107 697/1218/107 +f 691/1219/108 698/1220/75 699/1221/108 +f 700/1222/105 691/1223/108 699/1224/108 +f 678/1225/91 676/1226/72 677/1227/72 +f 679/1228/88 675/1229/91 678/1225/91 +f 680/1230/103 674/1231/88 679/1228/88 +f 681/1232/71 673/1233/103 680/1230/103 +f 682/1234/102 672/1235/71 681/1236/71 +f 683/1237/87 671/1238/102 682/1234/102 +f 684/1239/90 670/1240/87 683/1237/87 +f 677/1227/72 669/1241/90 684/1239/90 +f 666/1242/74 659/1243/109 667/1244/109 +f 666/1245/74 657/1246/110 658/1247/74 +f 664/1248/93 657/1249/110 665/1250/110 +f 664/1251/93 655/1252/111 656/1253/93 +f 663/1254/111 654/1255/76 655/1256/111 +f 661/1257/112 654/1258/76 662/1259/76 +f 661/1260/112 660/1261/113 653/1262/112 +f 668/1263/113 659/1264/109 660/1265/113 +f 671/1238/109 662/1266/74 663/1254/109 +f 672/1235/113 663/1267/109 664/1251/113 +f 672/1268/113 665/1250/112 673/1233/112 +f 674/1231/76 665/1269/112 666/1245/76 +f 674/1231/76 667/1244/111 675/1229/111 +f 675/1229/111 668/1263/93 676/1226/93 +f 676/1226/93 661/1260/110 669/1241/110 +f 669/1241/110 662/1259/74 670/1240/74 +f 694/1206/75 684/1239/107 683/1237/75 +f 693/1203/107 677/1227/92 684/1239/107 +f 700/1222/92 678/1225/106 677/1227/92 +f 699/1221/106 679/1228/73 678/1225/106 +f 679/1228/73 697/1218/104 680/1230/104 +f 680/1230/104 696/1214/105 681/1232/105 +f 696/1212/105 682/1234/108 681/1236/105 +f 682/1234/108 694/1209/75 683/1237/75 +f 785/1270/104 784/1271/105 792/1272/105 +f 778/1273/73 785/1274/104 786/1275/73 +f 787/1276/106 778/1277/73 786/1278/73 +f 788/1279/92 779/1280/106 787/1281/106 +f 781/1282/107 788/1283/92 789/1284/107 +f 790/1285/75 781/1286/107 789/1287/107 +f 783/1288/108 790/1289/75 791/1290/108 +f 792/1291/105 783/1292/108 791/1293/108 +f 770/1294/91 768/1295/72 769/1296/72 +f 771/1297/88 767/1298/91 770/1294/91 +f 772/1299/103 766/1300/88 771/1297/88 +f 773/1301/71 765/1302/103 772/1299/103 +f 774/1303/102 764/1304/71 773/1305/71 +f 775/1306/87 763/1307/102 774/1303/102 +f 776/1308/90 762/1309/87 775/1306/87 +f 769/1296/72 761/1310/90 776/1308/90 +f 758/1311/74 751/1312/109 759/1313/109 +f 758/1314/74 749/1315/110 750/1316/74 +f 756/1317/93 749/1318/110 757/1319/110 +f 756/1320/93 747/1321/111 748/1322/93 +f 755/1323/111 746/1324/76 747/1325/111 +f 753/1326/112 746/1327/76 754/1328/76 +f 760/1329/113 745/1330/112 753/1331/112 +f 760/1332/113 751/1333/109 752/1334/113 +f 762/1309/74 755/1323/109 763/1307/109 +f 764/1304/113 755/1335/109 756/1320/113 +f 765/1302/112 756/1317/113 757/1319/112 +f 765/1302/112 758/1314/76 766/1300/76 +f 766/1300/76 759/1313/111 767/1298/111 +f 767/1298/111 760/1332/93 768/1295/93 +f 768/1295/93 753/1331/110 761/1310/110 +f 761/1310/110 754/1328/74 762/1309/74 +f 786/1275/75 776/1308/107 775/1306/75 +f 785/1270/107 769/1296/92 776/1308/107 +f 792/1291/92 770/1294/106 769/1296/92 +f 791/1290/106 771/1297/73 770/1294/106 +f 771/1297/73 789/1287/104 772/1299/104 +f 772/1299/104 788/1283/105 773/1301/105 +f 773/1305/105 787/1281/108 774/1303/108 +f 774/1303/108 786/1278/75 775/1306/75 +f 825/1336/104 840/1337/105 833/1338/104 +f 826/1339/73 833/1340/104 834/1341/73 +f 835/1342/106 826/1343/73 834/1344/73 +f 828/1345/92 835/1346/106 836/1347/92 +f 829/1348/107 836/1349/92 837/1350/107 +f 838/1351/75 829/1352/107 837/1353/107 +f 831/1354/108 838/1355/75 839/1356/108 +f 840/1357/105 831/1358/108 839/1359/108 +f 818/1360/91 816/1361/72 817/1362/72 +f 819/1363/88 815/1364/91 818/1360/91 +f 820/1365/103 814/1366/88 819/1363/88 +f 821/1367/71 813/1368/103 820/1365/103 +f 822/1369/102 812/1370/71 821/1371/71 +f 823/1372/87 811/1373/102 822/1369/102 +f 824/1374/90 810/1375/87 823/1372/87 +f 817/1362/72 809/1376/90 824/1374/90 +f 806/1377/74 799/1378/109 807/1379/109 +f 806/1380/74 797/1381/110 798/1382/74 +f 804/1383/93 797/1384/110 805/1385/110 +f 803/1386/111 796/1387/93 804/1388/93 +f 803/1389/111 794/1390/76 795/1391/111 +f 801/1392/112 794/1393/76 802/1394/76 +f 801/1395/112 800/1396/113 793/1397/112 +f 808/1398/113 799/1399/109 800/1400/113 +f 811/1373/109 802/1401/74 803/1389/109 +f 811/1373/109 804/1388/113 812/1370/113 +f 813/1368/112 804/1383/113 805/1385/112 +f 813/1368/112 806/1380/76 814/1366/76 +f 814/1366/76 807/1379/111 815/1364/111 +f 815/1364/111 808/1398/93 816/1361/93 +f 809/1376/110 808/1402/93 801/1395/110 +f 809/1376/110 802/1394/74 810/1375/74 +f 834/1341/75 824/1374/107 823/1372/75 +f 833/1338/107 817/1362/92 824/1374/107 +f 840/1357/92 818/1360/106 817/1362/92 +f 839/1356/106 819/1363/73 818/1360/106 +f 819/1363/73 837/1353/104 820/1365/104 +f 820/1365/104 836/1349/105 821/1367/105 +f 836/1347/105 822/1369/108 821/1371/105 +f 822/1369/108 834/1344/75 823/1372/75 +f 881/1403/104 880/1404/105 888/1405/105 +f 874/1406/73 881/1407/104 882/1408/73 +f 883/1409/106 874/1410/73 882/1411/73 +f 884/1412/92 875/1413/106 883/1414/106 +f 877/1415/107 884/1416/92 885/1417/107 +f 886/1418/75 877/1419/107 885/1420/107 +f 879/1421/108 886/1422/75 887/1423/108 +f 880/1424/105 887/1425/108 888/1426/105 +f 866/1427/91 864/1428/72 865/1429/72 +f 867/1430/88 863/1431/91 866/1427/91 +f 868/1432/103 862/1433/88 867/1430/88 +f 869/1434/71 861/1435/103 868/1432/103 +f 870/1436/102 860/1437/71 869/1438/71 +f 871/1439/87 859/1440/102 870/1436/102 +f 872/1441/90 858/1442/87 871/1439/87 +f 865/1429/72 857/1443/90 872/1441/90 +f 854/1444/74 847/1445/109 855/1446/109 +f 853/1447/110 846/1448/74 854/1449/74 +f 852/1450/93 845/1451/110 853/1452/110 +f 852/1453/93 843/1454/111 844/1455/93 +f 851/1456/111 842/1457/76 843/1458/111 +f 849/1459/112 842/1460/76 850/1461/76 +f 849/1462/112 848/1463/113 841/1464/112 +f 856/1465/113 847/1466/109 848/1467/113 +f 858/1442/74 851/1456/109 859/1440/109 +f 860/1437/113 851/1468/109 852/1453/113 +f 861/1435/112 852/1450/113 853/1452/112 +f 861/1435/112 854/1449/76 862/1433/76 +f 862/1433/76 855/1446/111 863/1431/111 +f 863/1431/111 856/1465/93 864/1428/93 +f 857/1443/110 856/1469/93 849/1462/110 +f 857/1443/110 850/1461/74 858/1442/74 +f 882/1408/75 872/1441/107 871/1439/75 +f 881/1403/107 865/1429/92 872/1441/107 +f 888/1426/92 866/1427/106 865/1429/92 +f 887/1423/106 867/1430/73 866/1427/106 +f 867/1430/73 885/1420/104 868/1432/104 +f 868/1432/104 884/1416/105 869/1434/105 +f 884/1412/105 870/1436/108 869/1438/105 +f 870/1436/108 882/1411/75 871/1439/75 +f 914/1470/91 912/1471/72 913/1472/72 +f 915/1473/88 911/1474/91 914/1470/91 +f 916/1475/103 910/1476/88 915/1473/88 +f 917/1477/71 909/1478/103 916/1475/103 +f 918/1479/102 908/1480/71 917/1481/71 +f 919/1482/87 907/1483/102 918/1479/102 +f 920/1484/90 906/1485/87 919/1482/87 +f 913/1472/72 905/1486/90 920/1484/90 +f 902/1487/74 895/1488/109 903/1489/109 +f 902/1490/74 893/1491/110 894/1492/74 +f 900/1493/93 893/1494/110 901/1495/110 +f 900/1496/93 891/1497/111 892/1498/93 +f 899/1499/111 890/1500/76 891/1501/111 +f 897/1502/112 890/1503/76 898/1504/76 +f 897/1505/112 896/1506/113 889/1507/112 +f 904/1508/113 895/1509/109 896/1510/113 +f 907/1483/109 898/1511/74 899/1499/109 +f 907/1483/109 900/1496/113 908/1480/113 +f 909/1478/112 900/1493/113 901/1495/112 +f 910/1476/76 901/1512/112 902/1490/76 +f 911/1474/111 902/1487/76 903/1489/111 +f 911/1474/111 904/1508/93 912/1471/93 +f 905/1486/110 904/1513/93 897/1505/110 +f 905/1486/110 898/1504/74 906/1485/74 +f 951/1514/75 966/1515/94 950/1516/94 +f 944/1517/95 959/1518/76 943/1519/76 +f 952/1520/96 967/1521/75 951/1514/75 +f 945/1522/85 960/1523/95 944/1517/95 +f 938/1524/97 953/1525/89 937/1526/89 +f 937/1526/89 968/1527/96 952/1520/96 +f 946/1528/98 961/1529/85 945/1522/85 +f 939/1530/73 954/1531/97 938/1524/97 +f 947/1532/74 962/1533/98 946/1528/98 +f 940/1534/99 955/1535/73 939/1530/73 +f 948/1536/100 963/1537/74 947/1532/74 +f 941/1538/88 956/1539/99 940/1534/99 +f 949/1540/87 964/1541/100 948/1536/100 +f 942/1542/101 957/1543/88 941/1544/88 +f 950/1516/94 965/1545/87 949/1540/87 +f 943/1519/76 958/1546/101 942/1542/101 +f 283/987/75 299/994/75 298/988/94 +f 276/990/95 292/996/95 291/991/76 +f 284/993/96 300/1000/96 299/994/75 +f 277/995/85 293/1002/85 292/996/95 +f 270/997/97 286/1004/97 285/998/89 +f 269/999/89 285/998/89 300/1000/96 +f 278/1001/98 294/1006/98 293/1002/85 +f 271/1003/73 287/1008/73 286/1004/97 +f 279/1005/74 295/1010/74 294/1006/98 +f 272/1007/99 288/1012/99 287/1008/73 +f 280/1009/100 296/1014/100 295/1010/74 +f 273/1011/88 289/1547/88 288/1012/99 +f 281/1013/87 297/1018/87 296/1014/100 +f 274/1015/101 290/1019/101 289/1016/88 +f 282/989/94 298/988/94 297/1018/87 +f 275/992/76 291/991/76 290/1019/101 +f 315/1020/75 331/1027/75 330/1021/94 +f 308/1023/95 324/1029/95 323/1024/76 +f 316/1026/96 332/1033/96 331/1027/75 +f 309/1028/85 325/1035/85 324/1029/95 +f 302/1030/97 318/1037/97 317/1031/89 +f 301/1032/89 317/1031/89 332/1033/96 +f 310/1034/98 326/1039/98 325/1035/85 +f 303/1036/73 319/1041/73 318/1037/97 +f 311/1038/74 327/1043/74 326/1039/98 +f 304/1040/99 320/1045/99 319/1041/73 +f 312/1042/100 328/1047/100 327/1043/74 +f 305/1044/88 321/1548/88 320/1045/99 +f 313/1046/87 329/1051/87 328/1047/100 +f 306/1048/101 322/1052/101 321/1049/88 +f 314/1022/94 330/1021/94 329/1051/87 +f 307/1025/76 323/1024/76 322/1052/101 +f 427/1053/75 443/1060/75 442/1054/94 +f 420/1056/95 436/1062/95 435/1057/76 +f 428/1059/96 444/1066/96 443/1060/75 +f 421/1061/85 437/1068/85 436/1062/95 +f 414/1063/97 430/1070/97 429/1064/89 +f 413/1065/89 429/1064/89 444/1066/96 +f 422/1067/98 438/1072/98 437/1068/85 +f 415/1069/73 431/1074/73 430/1070/97 +f 423/1071/74 439/1076/74 438/1072/98 +f 416/1073/99 432/1078/99 431/1074/73 +f 424/1075/100 440/1080/100 439/1076/74 +f 417/1077/88 433/1549/88 432/1078/99 +f 425/1079/87 441/1084/87 440/1080/100 +f 418/1081/101 434/1085/101 433/1082/88 +f 426/1055/94 442/1054/94 441/1084/87 +f 419/1058/76 435/1057/76 434/1085/101 +f 459/1086/75 475/1093/75 474/1087/94 +f 452/1089/95 468/1095/95 467/1090/76 +f 460/1092/96 476/1099/96 475/1093/75 +f 453/1094/85 469/1101/85 468/1095/95 +f 446/1096/97 462/1103/97 461/1097/89 +f 445/1098/89 461/1097/89 476/1099/96 +f 454/1100/98 470/1105/98 469/1101/85 +f 447/1102/73 463/1107/73 462/1103/97 +f 455/1104/74 471/1109/74 470/1105/98 +f 448/1106/99 464/1111/99 463/1107/73 +f 456/1108/100 472/1113/100 471/1109/74 +f 449/1110/88 465/1550/88 464/1111/99 +f 457/1112/87 473/1117/87 472/1113/100 +f 450/1114/101 466/1118/101 465/1115/88 +f 458/1088/94 474/1087/94 473/1117/87 +f 451/1091/76 467/1090/76 466/1118/101 +f 488/1119/100 504/1126/100 503/1120/74 +f 481/1122/88 497/1551/88 496/1123/99 +f 489/1125/87 505/1131/87 504/1126/100 +f 482/1127/101 498/1133/101 497/1128/88 +f 490/1130/94 506/1135/94 505/1131/87 +f 483/1132/76 499/1137/76 498/1133/101 +f 491/1134/75 507/1139/75 506/1135/94 +f 484/1136/95 500/1141/95 499/1137/76 +f 492/1138/96 508/1145/96 507/1139/75 +f 485/1140/85 501/1147/85 500/1141/95 +f 478/1142/97 494/1149/97 493/1143/89 +f 477/1144/89 493/1143/89 508/1145/96 +f 486/1146/98 502/1150/98 501/1147/85 +f 479/1148/73 495/1151/73 494/1149/97 +f 487/1121/74 503/1120/74 502/1150/98 +f 480/1124/99 496/1123/99 495/1151/73 +f 520/1152/100 536/1159/100 535/1153/74 +f 513/1155/88 529/1552/88 528/1156/99 +f 521/1158/87 537/1164/87 536/1159/100 +f 514/1160/101 530/1166/101 529/1161/88 +f 522/1163/94 538/1168/94 537/1164/87 +f 515/1165/76 531/1170/76 530/1166/101 +f 523/1167/75 539/1172/75 538/1168/94 +f 516/1169/95 532/1174/95 531/1170/76 +f 524/1171/96 540/1178/96 539/1172/75 +f 517/1173/85 533/1180/85 532/1174/95 +f 510/1175/97 526/1182/97 525/1176/89 +f 509/1177/89 525/1176/89 540/1178/96 +f 518/1179/98 534/1183/98 533/1180/85 +f 511/1181/73 527/1184/73 526/1182/97 +f 519/1154/74 535/1153/74 534/1183/98 +f 512/1157/99 528/1156/99 527/1184/73 +f 581/1185/72 582/1189/91 574/522/91 +f 588/1186/90 581/1185/72 573/524/72 +f 586/1187/102 587/1190/87 579/537/87 +f 584/1188/103 585/1553/71 577/531/71 +f 582/1189/91 583/1192/88 575/534/88 +f 587/1190/87 588/1186/90 580/525/90 +f 585/1191/71 586/1187/102 578/528/102 +f 583/1192/88 584/1188/103 576/533/103 +f 589/526/72 598/1554/72 604/1193/90 +f 595/529/87 603/1555/87 602/1194/102 +f 593/924/71 601/1556/71 600/1195/103 +f 591/925/88 599/1557/88 597/1196/91 +f 596/926/90 604/1558/90 603/1197/87 +f 594/927/102 602/1559/102 601/1198/71 +f 592/540/103 600/1560/103 599/1199/88 +f 590/923/91 597/1561/91 598/1200/72 +f 685/1201/104 692/1562/105 700/1202/105 +f 686/1204/73 685/1563/104 693/1205/104 +f 695/1207/106 687/1564/106 686/1208/73 +f 688/1210/92 687/1565/106 695/1211/106 +f 689/1213/107 688/1566/92 696/1214/92 +f 698/1216/75 690/1567/75 689/1217/107 +f 691/1219/108 690/1568/75 698/1220/75 +f 700/1222/105 692/1569/105 691/1223/108 +f 678/1225/91 675/1229/91 676/1226/72 +f 679/1228/88 674/1231/88 675/1229/91 +f 680/1230/103 673/1233/103 674/1231/88 +f 681/1232/71 672/1268/71 673/1233/103 +f 682/1234/102 671/1238/102 672/1235/71 +f 683/1237/87 670/1240/87 671/1238/102 +f 684/1239/90 669/1241/90 670/1240/87 +f 677/1227/72 676/1226/72 669/1241/90 +f 666/1242/74 658/1570/74 659/1243/109 +f 666/1245/74 665/1269/110 657/1246/110 +f 664/1248/93 656/1571/93 657/1249/110 +f 664/1251/93 663/1267/111 655/1252/111 +f 663/1254/111 662/1266/76 654/1255/76 +f 661/1257/112 653/1572/112 654/1258/76 +f 661/1260/112 668/1573/113 660/1261/113 +f 668/1263/113 667/1574/109 659/1264/109 +f 671/1238/109 670/1240/74 662/1266/74 +f 672/1235/113 671/1238/109 663/1267/109 +f 672/1268/113 664/1248/113 665/1250/112 +f 674/1231/76 673/1233/112 665/1269/112 +f 674/1231/76 666/1242/76 667/1244/111 +f 675/1229/111 667/1574/111 668/1263/93 +f 676/1226/93 668/1573/93 661/1260/110 +f 669/1241/110 661/1257/110 662/1259/74 +f 694/1206/75 693/1205/107 684/1239/107 +f 693/1203/107 700/1202/92 677/1227/92 +f 700/1222/92 699/1224/106 678/1225/106 +f 699/1221/106 698/1220/73 679/1228/73 +f 679/1228/73 698/1216/73 697/1218/104 +f 680/1230/104 697/1215/104 696/1214/105 +f 696/1212/105 695/1211/108 682/1234/108 +f 682/1234/108 695/1207/108 694/1209/75 +f 785/1270/104 777/1575/104 784/1271/105 +f 778/1273/73 777/1576/104 785/1274/104 +f 787/1276/106 779/1577/106 778/1277/73 +f 788/1279/92 780/1578/92 779/1280/106 +f 781/1282/107 780/1579/92 788/1283/92 +f 790/1285/75 782/1580/75 781/1286/107 +f 783/1288/108 782/1581/75 790/1289/75 +f 792/1291/105 784/1582/105 783/1292/108 +f 770/1294/91 767/1298/91 768/1295/72 +f 771/1297/88 766/1300/88 767/1298/91 +f 772/1299/103 765/1302/103 766/1300/88 +f 773/1301/71 764/1583/71 765/1302/103 +f 774/1303/102 763/1307/102 764/1304/71 +f 775/1306/87 762/1309/87 763/1307/102 +f 776/1308/90 761/1310/90 762/1309/87 +f 769/1296/72 768/1295/72 761/1310/90 +f 758/1311/74 750/1584/74 751/1312/109 +f 758/1314/74 757/1585/110 749/1315/110 +f 756/1317/93 748/1586/93 749/1318/110 +f 756/1320/93 755/1335/111 747/1321/111 +f 755/1323/111 754/1587/76 746/1324/76 +f 753/1326/112 745/1588/112 746/1327/76 +f 760/1329/113 752/1589/113 745/1330/112 +f 760/1332/113 759/1590/109 751/1333/109 +f 762/1309/74 754/1587/74 755/1323/109 +f 764/1304/113 763/1307/109 755/1335/109 +f 765/1302/112 764/1583/113 756/1317/113 +f 765/1302/112 757/1585/112 758/1314/76 +f 766/1300/76 758/1311/76 759/1313/111 +f 767/1298/111 759/1590/111 760/1332/93 +f 768/1295/93 760/1329/93 753/1331/110 +f 761/1310/110 753/1326/110 754/1328/74 +f 786/1275/75 785/1274/107 776/1308/107 +f 785/1270/107 792/1272/92 769/1296/92 +f 792/1291/92 791/1293/106 770/1294/106 +f 791/1290/106 790/1289/73 771/1297/73 +f 771/1297/73 790/1285/73 789/1287/104 +f 772/1299/104 789/1284/104 788/1283/105 +f 773/1305/105 788/1279/105 787/1281/108 +f 774/1303/108 787/1276/108 786/1278/75 +f 825/1336/104 832/1591/105 840/1337/105 +f 826/1339/73 825/1592/104 833/1340/104 +f 835/1342/106 827/1593/106 826/1343/73 +f 828/1345/92 827/1594/106 835/1346/106 +f 829/1348/107 828/1595/92 836/1349/92 +f 838/1351/75 830/1596/75 829/1352/107 +f 831/1354/108 830/1597/75 838/1355/75 +f 840/1357/105 832/1598/105 831/1358/108 +f 818/1360/91 815/1364/91 816/1361/72 +f 819/1363/88 814/1366/88 815/1364/91 +f 820/1365/103 813/1368/103 814/1366/88 +f 821/1367/71 812/1599/71 813/1368/103 +f 822/1369/102 811/1373/102 812/1370/71 +f 823/1372/87 810/1375/87 811/1373/102 +f 824/1374/90 809/1376/90 810/1375/87 +f 817/1362/72 816/1361/72 809/1376/90 +f 806/1377/74 798/1600/74 799/1378/109 +f 806/1380/74 805/1601/110 797/1381/110 +f 804/1383/93 796/1602/93 797/1384/110 +f 803/1386/111 795/1603/111 796/1387/93 +f 803/1389/111 802/1401/76 794/1390/76 +f 801/1392/112 793/1604/112 794/1393/76 +f 801/1395/112 808/1402/113 800/1396/113 +f 808/1398/113 807/1605/109 799/1399/109 +f 811/1373/109 810/1375/74 802/1401/74 +f 811/1373/109 803/1386/109 804/1388/113 +f 813/1368/112 812/1599/113 804/1383/113 +f 813/1368/112 805/1601/112 806/1380/76 +f 814/1366/76 806/1377/76 807/1379/111 +f 815/1364/111 807/1605/111 808/1398/93 +f 809/1376/110 816/1361/93 808/1402/93 +f 809/1376/110 801/1392/110 802/1394/74 +f 834/1341/75 833/1340/107 824/1374/107 +f 833/1338/107 840/1337/92 817/1362/92 +f 840/1357/92 839/1359/106 818/1360/106 +f 839/1356/106 838/1355/73 819/1363/73 +f 819/1363/73 838/1351/73 837/1353/104 +f 820/1365/104 837/1350/104 836/1349/105 +f 836/1347/105 835/1346/108 822/1369/108 +f 822/1369/108 835/1342/108 834/1344/75 +f 881/1403/104 873/1606/104 880/1404/105 +f 874/1406/73 873/1607/104 881/1407/104 +f 883/1409/106 875/1608/106 874/1410/73 +f 884/1412/92 876/1609/92 875/1413/106 +f 877/1415/107 876/1610/92 884/1416/92 +f 886/1418/75 878/1611/75 877/1419/107 +f 879/1421/108 878/1612/75 886/1422/75 +f 880/1424/105 879/1613/108 887/1425/108 +f 866/1427/91 863/1431/91 864/1428/72 +f 867/1430/88 862/1433/88 863/1431/91 +f 868/1432/103 861/1435/103 862/1433/88 +f 869/1434/71 860/1614/71 861/1435/103 +f 870/1436/102 859/1440/102 860/1437/71 +f 871/1439/87 858/1442/87 859/1440/102 +f 872/1441/90 857/1443/90 858/1442/87 +f 865/1429/72 864/1428/72 857/1443/90 +f 854/1444/74 846/1615/74 847/1445/109 +f 853/1447/110 845/1616/110 846/1448/74 +f 852/1450/93 844/1617/93 845/1451/110 +f 852/1453/93 851/1468/111 843/1454/111 +f 851/1456/111 850/1618/76 842/1457/76 +f 849/1459/112 841/1619/112 842/1460/76 +f 849/1462/112 856/1469/113 848/1463/113 +f 856/1465/113 855/1620/109 847/1466/109 +f 858/1442/74 850/1618/74 851/1456/109 +f 860/1437/113 859/1440/109 851/1468/109 +f 861/1435/112 860/1614/113 852/1450/113 +f 861/1435/112 853/1447/112 854/1449/76 +f 862/1433/76 854/1444/76 855/1446/111 +f 863/1431/111 855/1620/111 856/1465/93 +f 857/1443/110 864/1428/93 856/1469/93 +f 857/1443/110 849/1459/110 850/1461/74 +f 882/1408/75 881/1407/107 872/1441/107 +f 881/1403/107 888/1405/92 865/1429/92 +f 888/1426/92 887/1425/106 866/1427/106 +f 887/1423/106 886/1422/73 867/1430/73 +f 867/1430/73 886/1418/73 885/1420/104 +f 868/1432/104 885/1417/104 884/1416/105 +f 884/1412/105 883/1414/108 870/1436/108 +f 870/1436/108 883/1409/108 882/1411/75 +f 914/1470/91 911/1474/91 912/1471/72 +f 915/1473/88 910/1476/88 911/1474/91 +f 916/1475/103 909/1478/103 910/1476/88 +f 917/1477/71 908/1621/71 909/1478/103 +f 918/1479/102 907/1483/102 908/1480/71 +f 919/1482/87 906/1485/87 907/1483/102 +f 920/1484/90 905/1486/90 906/1485/87 +f 913/1472/72 912/1471/72 905/1486/90 +f 902/1487/74 894/1622/74 895/1488/109 +f 902/1490/74 901/1512/110 893/1491/110 +f 900/1493/93 892/1623/93 893/1494/110 +f 900/1496/93 899/1624/111 891/1497/111 +f 899/1499/111 898/1511/76 890/1500/76 +f 897/1502/112 889/1625/112 890/1503/76 +f 897/1505/112 904/1513/113 896/1506/113 +f 904/1508/113 903/1626/109 895/1509/109 +f 907/1483/109 906/1485/74 898/1511/74 +f 907/1483/109 899/1624/109 900/1496/113 +f 909/1478/112 908/1621/113 900/1493/113 +f 910/1476/76 909/1478/112 901/1512/112 +f 911/1474/111 910/1476/76 902/1487/76 +f 911/1474/111 903/1626/111 904/1508/93 +f 905/1486/110 912/1471/93 904/1513/93 +f 905/1486/110 897/1502/110 898/1504/74 +f 951/1514/75 967/1521/75 966/1515/94 +f 944/1517/95 960/1523/95 959/1518/76 +f 952/1520/96 968/1527/96 967/1521/75 +f 945/1522/85 961/1529/85 960/1523/95 +f 938/1524/97 954/1531/97 953/1525/89 +f 937/1526/89 953/1525/89 968/1527/96 +f 946/1528/98 962/1533/98 961/1529/85 +f 939/1530/73 955/1535/73 954/1531/97 +f 947/1532/74 963/1537/74 962/1533/98 +f 940/1534/99 956/1539/99 955/1535/73 +f 948/1536/100 964/1541/100 963/1537/74 +f 941/1538/88 957/1627/88 956/1539/99 +f 949/1540/87 965/1545/87 964/1541/100 +f 942/1542/101 958/1546/101 957/1543/88 +f 950/1516/94 966/1515/94 965/1545/87 +f 943/1519/76 959/1518/76 958/1546/101 diff --git a/src/main/resources/assets/hbm/models/machines/pump.obj b/src/main/resources/assets/hbm/models/machines/pump.obj new file mode 100644 index 000000000..4f859d6aa --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/pump.obj @@ -0,0 +1,1107 @@ +# Blender v2.79 (sub 0) OBJ File: 'pump.blend' +# www.blender.org +o Piston +v -0.500000 4.500000 -0.500000 +v -0.500000 4.500000 0.500000 +v 0.500000 4.500000 0.500000 +v 0.500000 4.500000 -0.500000 +v -0.500000 5.000000 -0.500000 +v -0.500000 5.000000 0.500000 +v 0.500000 5.000000 0.500000 +v 0.500000 5.000000 -0.500000 +v -0.125000 4.625000 1.000000 +v -0.125000 4.875000 1.000000 +v -0.125000 4.625000 -1.000000 +v -0.125000 4.875000 -1.000000 +v 0.125000 4.625000 1.000000 +v 0.125000 4.875000 1.000000 +v 0.125000 4.625000 -1.000000 +v 0.125000 4.875000 -1.000000 +v -0.250000 3.500000 0.250000 +v 0.250000 3.500000 0.250000 +v -0.250000 3.500000 -0.250000 +v 0.250000 3.500000 -0.250000 +v -0.250000 4.500000 0.250000 +v 0.250000 4.500000 0.250000 +v -0.250000 4.500000 -0.250000 +v 0.250000 4.500000 -0.250000 +vt 0.727273 0.250000 +vt 0.636364 0.375000 +vt 0.636364 0.250000 +vt 0.636364 0.437500 +vt 0.727273 0.562500 +vt 0.636364 0.562500 +vt 0.727273 0.375000 +vt 0.909091 0.375000 +vt 0.818182 0.437500 +vt 0.818182 0.375000 +vt 0.727273 0.437500 +vt 0.545455 0.437500 +vt 0.545455 0.375000 +vt 0.477273 0.656250 +vt 0.659091 0.687500 +vt 0.477273 0.687500 +vt 0.659091 0.656250 +vt 0.681818 0.625000 +vt 0.681818 0.656250 +vt 0.659091 0.625000 +vt 0.477273 0.593750 +vt 0.659091 0.593750 +vt 0.477273 0.625000 +vt 0.454545 0.656250 +vt 0.454545 0.625000 +vt 0.477273 0.562500 +vt 0.659091 0.562500 +vt 0.909091 0.250000 +vt 0.863636 0.375000 +vt 0.863636 0.250000 +vt 1.000000 0.250000 +vt 0.954545 0.375000 +vt 0.954545 0.250000 +vt 0.909091 0.375000 +vt 0.818182 0.375000 +vt 0.818182 0.250000 +vt 0.909091 0.437500 +vt 1.000000 0.375000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 1/1/1 3/2/1 2/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/4/3 3/2/3 +f 2/8/4 5/9/4 1/10/4 +f 1/10/5 8/11/5 4/7/5 +f 3/2/6 6/12/6 2/13/6 +f 10/14/4 11/15/4 9/16/4 +f 12/17/5 15/18/5 11/19/5 +f 16/20/3 13/21/3 15/22/3 +f 14/23/6 9/24/6 13/25/6 +f 15/22/1 9/26/1 11/27/1 +f 12/17/2 14/23/2 16/20/2 +f 20/28/3 22/29/3 18/30/3 +f 17/31/4 23/32/4 19/33/4 +f 19/33/5 24/34/5 20/28/5 +f 18/30/6 21/35/6 17/36/6 +f 1/1/1 4/7/1 3/2/1 +f 7/4/2 8/11/2 5/5/2 +f 4/7/3 8/11/3 7/4/3 +f 2/8/4 6/37/4 5/9/4 +f 1/10/5 5/9/5 8/11/5 +f 3/2/6 7/4/6 6/12/6 +f 10/14/4 12/17/4 11/15/4 +f 12/17/5 16/20/5 15/18/5 +f 16/20/3 14/23/3 13/21/3 +f 14/23/6 10/14/6 9/24/6 +f 15/22/1 13/21/1 9/26/1 +f 12/17/2 10/14/2 14/23/2 +f 20/28/3 24/34/3 22/29/3 +f 17/31/4 21/38/4 23/32/4 +f 19/33/5 23/32/5 24/34/5 +f 18/30/6 22/29/6 21/35/6 +o Arms +v -0.062500 2.687500 0.750000 +v 0.062500 2.687500 0.750000 +v -0.062500 4.812500 0.750000 +v 0.062500 4.812500 0.750000 +v -0.062500 4.812500 0.875000 +v -0.062500 2.687500 0.875000 +v 0.062500 2.687500 0.875000 +v 0.062500 4.812500 0.875000 +v -0.062500 2.687500 -0.875000 +v 0.062500 2.687500 -0.875000 +v -0.062500 4.812500 -0.875000 +v 0.062500 4.812500 -0.875000 +v -0.062500 4.812500 -0.750000 +v -0.062500 2.687500 -0.750000 +v 0.062500 2.687500 -0.750000 +v 0.062500 4.812500 -0.750000 +vt 0.579545 0.953125 +vt 0.568182 0.703125 +vt 0.579545 0.703125 +vt 0.556818 0.703125 +vt 0.545455 0.953125 +vt 0.545455 0.703125 +vt 0.568182 0.953125 +vt 0.590909 0.953125 +vt 0.590909 0.968750 +vt 0.579545 0.968750 +vt 0.579545 0.687500 +vt 0.590909 0.703125 +vt 0.579545 0.953125 +vt 0.568182 0.703125 +vt 0.579545 0.703125 +vt 0.556818 0.703125 +vt 0.545455 0.953125 +vt 0.545455 0.703125 +vt 0.568182 0.953125 +vt 0.590909 0.953125 +vt 0.590909 0.968750 +vt 0.579545 0.968750 +vt 0.579545 0.687500 +vt 0.590909 0.703125 +vt 0.556818 0.953125 +vt 0.590909 0.687500 +vt 0.556818 0.953125 +vt 0.590909 0.687500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 27/39/7 26/40/7 25/41/7 +f 31/42/8 29/43/8 30/44/8 +f 28/45/9 31/42/9 26/40/9 +f 25/41/10 29/46/10 27/39/10 +f 27/39/11 32/47/11 28/48/11 +f 26/49/12 30/50/12 25/41/12 +f 35/51/7 34/52/7 33/53/7 +f 39/54/8 37/55/8 38/56/8 +f 36/57/9 39/54/9 34/52/9 +f 33/53/10 37/58/10 35/51/10 +f 35/51/11 40/59/11 36/60/11 +f 34/61/12 38/62/12 33/53/12 +f 27/39/7 28/45/7 26/40/7 +f 31/42/8 32/63/8 29/43/8 +f 28/45/9 32/63/9 31/42/9 +f 25/41/10 30/50/10 29/46/10 +f 27/39/11 29/46/11 32/47/11 +f 26/49/12 31/64/12 30/50/12 +f 35/51/7 36/57/7 34/52/7 +f 39/54/8 40/65/8 37/55/8 +f 36/57/9 40/65/9 39/54/9 +f 33/53/10 38/62/10 37/58/10 +f 35/51/11 37/58/11 40/59/11 +f 34/61/12 39/66/12 38/62/12 +o Rotor +v -0.000000 2.875000 0.500000 +v -0.441942 2.691942 0.500000 +v -0.625000 2.250000 0.500000 +v -0.441942 1.808058 0.500000 +v 0.000000 1.625000 0.500000 +v 0.441942 1.808058 0.500000 +v 0.625000 2.250000 0.500000 +v 0.441942 2.691942 0.500000 +v -0.441942 2.691942 0.750000 +v -0.000000 2.875000 0.750000 +v -0.625000 2.250000 0.750000 +v -0.441942 1.808058 0.750000 +v 0.000000 1.625000 0.750000 +v 0.441942 1.808058 0.750000 +v 0.625000 2.250000 0.750000 +v 0.441942 2.691942 0.750000 +v -0.000000 2.875000 -0.750000 +v -0.441942 2.691942 -0.750000 +v -0.625000 2.250000 -0.750000 +v -0.441942 1.808058 -0.750000 +v 0.000000 1.625000 -0.750000 +v 0.441942 1.808058 -0.750000 +v 0.625000 2.250000 -0.750000 +v 0.441942 2.691942 -0.750000 +v -0.441942 2.691942 -0.500000 +v -0.000000 2.875000 -0.500000 +v -0.625000 2.250000 -0.500000 +v -0.441942 1.808058 -0.500000 +v 0.000000 1.625000 -0.500000 +v 0.441942 1.808058 -0.500000 +v 0.625000 2.250000 -0.500000 +v 0.441942 2.691942 -0.500000 +vt 0.920455 0.439870 +vt 0.959412 0.462058 +vt 0.975549 0.515625 +vt 0.784091 0.439870 +vt 0.839185 0.515625 +vt 0.784091 0.591380 +vt 0.863636 0.687500 +vt 0.840909 0.625000 +vt 0.863636 0.625000 +vt 0.863636 0.562500 +vt 0.840909 0.500000 +vt 0.863636 0.500000 +vt 0.863636 0.937500 +vt 0.840909 0.875000 +vt 0.863636 0.875000 +vt 0.863636 0.812500 +vt 0.840909 0.750000 +vt 0.863636 0.750000 +vt 0.840909 0.562500 +vt 0.840909 0.437500 +vt 0.863636 0.437500 +vt 0.840909 0.812500 +vt 0.840909 0.687500 +vt 0.920455 0.439870 +vt 0.959412 0.462058 +vt 0.975549 0.515625 +vt 0.784091 0.439870 +vt 0.839185 0.515625 +vt 0.784091 0.591380 +vt 0.863636 0.687500 +vt 0.840909 0.625000 +vt 0.863636 0.625000 +vt 0.863636 0.562500 +vt 0.840909 0.500000 +vt 0.863636 0.500000 +vt 0.863636 0.937500 +vt 0.840909 0.875000 +vt 0.863636 0.875000 +vt 0.863636 0.812500 +vt 0.840909 0.750000 +vt 0.863636 0.750000 +vt 0.840909 0.562500 +vt 0.840909 0.437500 +vt 0.863636 0.437500 +vt 0.840909 0.812500 +vt 0.840909 0.687500 +vt 0.959412 0.569192 +vt 0.865360 0.515625 +vt 0.920455 0.591380 +vt 0.881497 0.569192 +vt 0.881497 0.462058 +vt 0.745133 0.569192 +vt 0.728997 0.515625 +vt 0.745133 0.462058 +vt 0.823048 0.462058 +vt 0.823048 0.569192 +vt 0.840909 0.937500 +vt 0.959412 0.569192 +vt 0.865360 0.515625 +vt 0.920455 0.591380 +vt 0.881497 0.569192 +vt 0.881497 0.462058 +vt 0.745133 0.569192 +vt 0.728997 0.515625 +vt 0.745133 0.462058 +vt 0.823048 0.462058 +vt 0.823048 0.569192 +vt 0.840909 0.937500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +s off +f 45/67/13 44/68/13 43/69/13 +f 53/70/14 55/71/14 50/72/14 +f 41/73/15 56/74/15 48/75/15 +f 47/76/16 54/77/16 46/78/16 +f 45/79/17 52/80/17 44/81/17 +f 43/82/18 49/83/18 42/84/18 +f 48/75/19 55/85/19 47/76/19 +f 46/78/20 53/86/20 45/87/20 +f 44/81/21 51/88/21 43/82/21 +f 42/84/22 50/89/22 41/73/22 +f 61/90/13 60/91/13 59/92/13 +f 69/93/14 71/94/14 66/95/14 +f 57/96/15 72/97/15 64/98/15 +f 63/99/16 70/100/16 62/101/16 +f 61/102/17 68/103/17 60/104/17 +f 59/105/18 65/106/18 58/107/18 +f 64/98/19 71/108/19 63/99/19 +f 62/101/20 69/109/20 61/110/20 +f 60/104/21 67/111/21 59/105/21 +f 58/107/22 66/112/22 57/96/22 +f 43/69/13 42/113/13 47/114/13 +f 42/113/13 41/115/13 47/114/13 +f 41/115/13 48/116/13 47/114/13 +f 47/114/13 46/117/13 43/69/13 +f 46/117/13 45/67/13 43/69/13 +f 50/72/14 49/118/14 51/119/14 +f 51/119/14 52/120/14 53/70/14 +f 53/70/14 54/121/14 55/71/14 +f 55/71/14 56/122/14 50/72/14 +f 50/72/14 51/119/14 53/70/14 +f 41/73/15 50/89/15 56/74/15 +f 47/76/16 55/85/16 54/77/16 +f 45/79/17 53/123/17 52/80/17 +f 43/82/18 51/88/18 49/83/18 +f 48/75/19 56/74/19 55/85/19 +f 46/78/20 54/77/20 53/86/20 +f 44/81/21 52/80/21 51/88/21 +f 42/84/22 49/83/22 50/89/22 +f 59/92/13 58/124/13 63/125/13 +f 58/124/13 57/126/13 63/125/13 +f 57/126/13 64/127/13 63/125/13 +f 63/125/13 62/128/13 59/92/13 +f 62/128/13 61/90/13 59/92/13 +f 66/95/14 65/129/14 67/130/14 +f 67/130/14 68/131/14 69/93/14 +f 69/93/14 70/132/14 71/94/14 +f 71/94/14 72/133/14 66/95/14 +f 66/95/14 67/130/14 69/93/14 +f 57/96/15 66/112/15 72/97/15 +f 63/99/16 71/108/16 70/100/16 +f 61/102/17 69/134/17 68/103/17 +f 59/105/18 67/111/18 65/106/18 +f 64/98/19 72/97/19 71/108/19 +f 62/101/20 70/100/20 69/109/20 +f 60/104/21 68/103/21 67/111/21 +f 58/107/22 65/106/22 66/112/22 +o Base +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.000000 1.000000 1.000000 +v 1.000000 1.000000 1.000000 +v -1.000000 1.000000 -1.000000 +v 1.000000 1.000000 -1.000000 +v -1.000000 1.500000 -1.000000 +v -1.000000 1.500000 1.000000 +v 1.000000 1.500000 1.000000 +v 1.000000 1.500000 -1.000000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -0.500000 3.500000 -0.500000 +v -0.500000 3.500000 0.500000 +v 0.500000 3.500000 0.500000 +v 0.500000 3.500000 -0.500000 +v 0.625000 3.125000 -0.375000 +v 0.775888 3.150888 -0.338388 +v 0.801777 3.176777 -0.250000 +v 0.775888 3.150888 -0.161612 +v 0.713388 3.088388 -0.125000 +v 0.650888 3.025888 -0.161612 +v 0.650888 3.025888 -0.338388 +v 0.713388 3.088388 -0.375000 +v 0.838388 3.000000 -0.338388 +v 0.875000 3.000000 -0.250000 +v 0.838388 3.000000 -0.161612 +v 0.750000 3.000000 -0.125000 +v 0.661612 3.000000 -0.161612 +v 0.625000 3.000000 -0.250000 +v 0.661612 3.000000 -0.338388 +v 0.750000 3.000000 -0.375000 +v 0.750000 1.500000 0.125000 +v 0.661612 1.500000 0.161612 +v 0.625000 1.500000 0.250000 +v 0.661612 1.500000 0.338388 +v 0.750000 1.500000 0.375000 +v 0.838388 1.500000 0.338388 +v 0.875000 1.500000 0.250000 +v 0.838388 1.500000 0.161612 +v 0.750000 3.000000 0.125000 +v 0.661612 3.000000 0.161612 +v 0.625000 3.000000 0.250000 +v 0.661612 3.000000 0.338388 +v 0.750000 3.000000 0.375000 +v 0.838388 3.000000 0.338388 +v 0.875000 3.000000 0.250000 +v 0.838388 3.000000 0.161612 +v 0.713388 3.088388 0.125000 +v 0.650888 3.025888 0.161612 +v 0.650888 3.025888 0.338388 +v 0.713388 3.088388 0.375000 +v 0.775888 3.150888 0.338388 +v 0.801777 3.176777 0.250000 +v 0.775888 3.150888 0.161612 +v 0.625000 3.125000 0.125000 +v 0.625000 3.036612 0.161612 +v 0.625000 3.036612 0.338388 +v 0.625000 3.125000 0.375000 +v 0.625000 3.213388 0.338388 +v 0.625000 3.250000 0.250000 +v 0.625000 3.213388 0.161612 +v 0.500000 3.000000 0.250000 +v 0.500000 3.125000 0.125000 +v 0.500000 3.036612 0.161612 +v 0.500000 3.036612 0.338388 +v 0.500000 3.125000 0.375000 +v 0.500000 3.213388 0.338388 +v 0.500000 3.250000 0.250000 +v 0.500000 3.213388 0.161612 +v 0.838388 1.500000 -0.338388 +v 0.875000 1.500000 -0.250000 +v 0.838388 1.500000 -0.161612 +v 0.750000 1.500000 -0.125000 +v 0.661612 1.500000 -0.161612 +v 0.625000 1.500000 -0.250000 +v 0.661612 1.500000 -0.338388 +v 0.750000 1.500000 -0.375000 +v 0.625000 3.036612 -0.338388 +v 0.625000 3.036612 -0.161612 +v 0.625000 3.125000 -0.125000 +v 0.625000 3.213388 -0.161612 +v 0.625000 3.250000 -0.250000 +v 0.625000 3.213388 -0.338388 +v 0.500000 3.000000 -0.250000 +v 0.500000 3.125000 -0.375000 +v 0.500000 3.036612 -0.338388 +v 0.500000 3.036612 -0.161612 +v 0.500000 3.125000 -0.125000 +v 0.500000 3.213388 -0.161612 +v 0.500000 3.250000 -0.250000 +v 0.500000 3.213388 -0.338388 +v -0.625000 3.125000 0.375000 +v -0.775888 3.150888 0.338388 +v -0.801777 3.176777 0.250000 +v -0.775888 3.150888 0.161612 +v -0.713388 3.088388 0.125000 +v -0.650888 3.025888 0.161612 +v -0.650888 3.025888 0.338388 +v -0.713388 3.088388 0.375000 +v -0.838388 3.000000 0.338388 +v -0.875000 3.000000 0.250000 +v -0.838388 3.000000 0.161612 +v -0.750000 3.000000 0.125000 +v -0.661612 3.000000 0.161612 +v -0.625000 3.000000 0.250000 +v -0.661612 3.000000 0.338388 +v -0.750000 3.000000 0.375000 +v -0.750000 1.500000 -0.125000 +v -0.661612 1.500000 -0.161612 +v -0.625000 1.500000 -0.250000 +v -0.661612 1.500000 -0.338388 +v -0.750000 1.500000 -0.375000 +v -0.838388 1.500000 -0.338388 +v -0.875000 1.500000 -0.250000 +v -0.838388 1.500000 -0.161612 +v -0.750000 3.000000 -0.125000 +v -0.661612 3.000000 -0.161612 +v -0.625000 3.000000 -0.250000 +v -0.661612 3.000000 -0.338388 +v -0.750000 3.000000 -0.375000 +v -0.838388 3.000000 -0.338388 +v -0.875000 3.000000 -0.250000 +v -0.838388 3.000000 -0.161612 +v -0.713388 3.088388 -0.125000 +v -0.650888 3.025888 -0.161612 +v -0.650888 3.025888 -0.338388 +v -0.713388 3.088388 -0.375000 +v -0.775888 3.150888 -0.338388 +v -0.801777 3.176777 -0.250000 +v -0.775888 3.150888 -0.161612 +v -0.625000 3.125000 -0.125000 +v -0.625000 3.036612 -0.161612 +v -0.625000 3.036612 -0.338388 +v -0.625000 3.125000 -0.375000 +v -0.625000 3.213388 -0.338388 +v -0.625000 3.250000 -0.250000 +v -0.625000 3.213388 -0.161612 +v -0.500000 3.000000 -0.250000 +v -0.500000 3.125000 -0.125000 +v -0.500000 3.036612 -0.161612 +v -0.500000 3.036612 -0.338388 +v -0.500000 3.125000 -0.375000 +v -0.500000 3.213388 -0.338388 +v -0.500000 3.250000 -0.250000 +v -0.500000 3.213388 -0.161612 +v -0.838388 1.500000 0.338388 +v -0.875000 1.500000 0.250000 +v -0.838388 1.500000 0.161612 +v -0.750000 1.500000 0.125000 +v -0.661612 1.500000 0.161612 +v -0.625000 1.500000 0.250000 +v -0.661612 1.500000 0.338388 +v -0.750000 1.500000 0.375000 +v -0.625000 3.036612 0.338388 +v -0.625000 3.036612 0.161612 +v -0.625000 3.125000 0.125000 +v -0.625000 3.213388 0.161612 +v -0.625000 3.250000 0.250000 +v -0.625000 3.213388 0.338388 +v -0.500000 3.000000 0.250000 +v -0.500000 3.125000 0.375000 +v -0.500000 3.036612 0.338388 +v -0.500000 3.036612 0.161612 +v -0.500000 3.125000 0.125000 +v -0.500000 3.213388 0.161612 +v -0.500000 3.250000 0.250000 +v -0.500000 3.213388 0.338388 +vt 0.363636 0.007812 +vt 0.090909 0.382812 +vt 0.090909 0.007812 +vt 0.090909 0.500000 +vt 0.363636 0.875000 +vt 0.090909 0.875000 +vt 0.454545 0.875000 +vt 0.363636 0.500000 +vt 0.454545 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.875000 +vt 0.363636 0.382812 +vt 0.090909 1.000000 +vt 0.363636 1.000000 +vt 0.409091 0.062500 +vt 0.590909 0.312500 +vt 0.409091 0.312500 +vt 0.363636 0.062500 +vt 0.363636 0.312500 +vt 0.590909 0.000000 +vt 0.409091 0.000000 +vt 0.409091 0.375000 +vt 0.590909 0.375000 +vt 0.636364 0.312500 +vt 0.590909 0.062500 +vt 0.636364 0.062500 +vt 0.727273 0.250000 +vt 0.818182 0.375000 +vt 0.727273 0.375000 +vt 1.000000 -0.000000 +vt 0.909091 0.250000 +vt 0.909091 -0.000000 +vt 0.818182 0.250000 +vt 0.818182 -0.000000 +vt 0.727273 -0.000000 +vt 0.636364 0.250000 +vt 0.636364 -0.000000 +vt 1.000000 0.250000 +vt 0.465909 0.898438 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.488636 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.882812 +vt 0.465909 0.890625 +vt 0.488636 0.875000 +vt 0.500000 0.898438 +vt 0.522727 0.882812 +vt 0.511364 0.898438 +vt 0.511364 0.875000 +vt 0.534091 0.890625 +vt 0.522727 0.898438 +vt 0.477273 0.898438 +vt 0.500000 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.687500 +vt 0.534091 0.687500 +vt 0.522727 0.875000 +vt 0.500000 0.687500 +vt 0.488636 0.875000 +vt 0.488636 0.687500 +vt 0.477273 0.687500 +vt 0.465909 0.875000 +vt 0.465909 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.534091 0.687500 +vt 0.511364 0.687500 +vt 0.500000 0.875000 +vt 0.477273 0.875000 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.522727 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.875000 +vt 0.500000 0.898438 +vt 0.477273 0.882812 +vt 0.488636 0.898438 +vt 0.477273 0.898438 +vt 0.522727 0.882812 +vt 0.534091 0.898438 +vt 0.522727 0.898438 +vt 0.511364 0.898438 +vt 0.465909 0.890625 +vt 0.465909 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.534091 0.890625 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.687500 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.488636 0.687500 +vt 0.477273 0.875000 +vt 0.477273 0.687500 +vt 0.500000 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.465909 0.875000 +vt 0.534091 0.898438 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.898438 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.488636 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.882812 +vt 0.465909 0.890625 +vt 0.500000 0.875000 +vt 0.488636 0.875000 +vt 0.522727 0.882812 +vt 0.511364 0.898438 +vt 0.511364 0.875000 +vt 0.534091 0.890625 +vt 0.522727 0.898438 +vt 0.477273 0.898438 +vt 0.500000 0.898438 +vt 0.522727 0.687500 +vt 0.511364 0.687500 +vt 0.534091 0.687500 +vt 0.522727 0.875000 +vt 0.500000 0.687500 +vt 0.488636 0.875000 +vt 0.488636 0.687500 +vt 0.477273 0.687500 +vt 0.465909 0.875000 +vt 0.465909 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.534091 0.687500 +vt 0.511364 0.687500 +vt 0.500000 0.875000 +vt 0.477273 0.875000 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.522727 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.875000 +vt 0.500000 0.898438 +vt 0.477273 0.882812 +vt 0.488636 0.898438 +vt 0.477273 0.898438 +vt 0.522727 0.882812 +vt 0.534091 0.898438 +vt 0.522727 0.898438 +vt 0.511364 0.898438 +vt 0.465909 0.890625 +vt 0.465909 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.465909 0.906250 +vt 0.477273 0.914062 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.534091 0.890625 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.465909 0.921875 +vt 0.477273 0.937500 +vt 0.465909 0.937500 +vt 0.500000 0.937500 +vt 0.477273 0.921875 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.687500 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.488636 0.687500 +vt 0.477273 0.875000 +vt 0.477273 0.687500 +vt 0.500000 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.465909 0.875000 +vt 0.534091 0.906250 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.545455 0.898438 +vt 0.534091 0.898438 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4617 -0.4617 0.7573 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 0.7263 +vn 0.5293 0.5293 0.6630 +vn 0.1866 0.9824 0.0000 +vn 0.1447 0.7194 0.6794 +vn 0.0473 0.0196 0.9987 +vn -0.6737 -0.1363 0.7263 +vn 0.7194 0.1447 0.6794 +vn 0.7071 0.7071 0.0000 +vn 0.0473 0.0196 -0.9987 +vn 0.5293 0.5293 -0.6630 +vn 0.7194 0.1447 -0.6794 +vn -0.6737 -0.1363 -0.7263 +vn 0.0670 0.0670 -0.9955 +vn 0.0670 0.0670 0.9955 +vn 0.9824 0.1866 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.4617 -0.4617 -0.7573 +vn 0.0196 0.0473 -0.9987 +vn 0.1447 0.7194 -0.6794 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.4617 -0.4617 -0.7573 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.5293 0.5293 -0.6630 +vn -0.1866 0.9824 0.0000 +vn -0.1447 0.7194 -0.6794 +vn -0.0473 0.0196 -0.9987 +vn 0.6737 -0.1363 -0.7263 +vn -0.9824 0.1866 0.0000 +vn -0.7194 0.1447 -0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.7194 0.1447 0.6794 +vn 0.6737 -0.1363 0.7263 +vn -0.0670 0.0670 0.9955 +vn -0.0670 0.0670 -0.9955 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.4617 -0.4617 0.7573 +vn -0.0196 0.0473 0.9987 +vn -0.1447 0.7194 0.6794 +vn 0.1363 -0.6737 0.7263 +s off +f 75/135/23 74/136/23 73/137/23 +f 78/138/24 79/139/24 77/140/24 +f 75/141/25 80/142/25 76/143/25 +f 74/144/26 77/140/26 73/145/26 +f 76/146/27 78/138/27 74/136/27 +f 73/147/28 79/139/28 75/148/28 +f 87/149/24 85/150/24 86/151/24 +f 82/152/26 86/151/26 81/153/26 +f 84/154/27 87/149/27 82/155/27 +f 81/156/28 85/150/28 83/157/28 +f 83/158/25 88/159/25 84/160/25 +f 95/161/24 93/162/24 94/163/24 +f 89/164/28 93/165/28 91/166/28 +f 91/166/25 96/167/25 92/168/25 +f 90/169/26 94/170/26 89/171/26 +f 92/168/27 95/161/27 90/169/27 +f 75/135/23 76/146/23 74/136/23 +f 78/138/24 80/142/24 79/139/24 +f 75/141/25 79/139/25 80/142/25 +f 74/144/26 78/138/26 77/140/26 +f 76/146/27 80/142/27 78/138/27 +f 73/147/28 77/140/28 79/139/28 +f 87/149/24 88/159/24 85/150/24 +f 82/152/26 87/149/26 86/151/26 +f 84/154/27 88/159/27 87/149/27 +f 81/156/28 86/151/28 85/150/28 +f 83/158/25 85/150/25 88/159/25 +f 95/161/24 96/167/24 93/162/24 +f 89/164/28 94/172/28 93/165/28 +f 91/166/25 93/165/25 96/167/25 +f 90/169/26 95/161/26 94/170/26 +f 92/168/27 96/167/27 95/161/27 +s 1 +f 102/173/29 161/174/30 160/175/31 +f 100/176/32 163/177/33 162/178/34 +f 108/179/35 102/173/29 109/180/36 +f 107/181/37 99/182/38 100/176/32 +f 112/183/39 98/184/40 105/185/41 +f 111/186/42 104/187/43 112/183/39 +f 107/181/37 101/188/44 108/179/35 +f 106/189/45 98/184/40 99/182/38 +f 158/190/25 105/185/41 151/191/46 +f 157/192/47 112/193/39 158/190/25 +f 119/194/27 126/195/37 118/196/48 +f 117/197/26 124/198/36 116/199/49 +f 115/200/28 122/201/42 114/202/47 +f 120/203/46 127/204/45 119/194/27 +f 118/196/48 125/205/35 117/197/26 +f 116/199/49 123/206/50 115/207/28 +f 114/202/47 121/208/39 113/209/25 +f 113/209/25 128/210/41 120/203/46 +f 128/210/41 134/211/38 127/204/45 +f 125/212/35 133/213/32 132/214/44 +f 121/215/39 130/216/51 129/217/43 +f 128/210/41 129/217/43 135/218/40 +f 126/195/37 134/211/38 133/213/32 +f 124/219/36 132/214/44 131/220/29 +f 133/213/32 141/221/33 140/222/34 +f 131/220/29 139/223/30 138/224/31 +f 135/218/40 141/221/33 134/211/38 +f 132/214/44 140/222/34 139/223/30 +f 130/216/51 136/225/52 129/217/43 +f 129/217/43 142/226/53 135/218/40 +f 122/227/42 123/228/50 130/216/51 +f 130/216/51 123/228/50 137/229/54 +f 124/219/36 131/220/29 123/230/50 +f 131/220/29 138/224/31 123/230/50 +f 139/231/30 146/232/55 138/233/31 +f 142/226/53 149/234/24 141/221/33 +f 140/222/34 147/235/26 139/231/30 +f 137/236/54 144/237/25 136/238/52 +f 138/233/31 143/239/23 123/240/50 +f 136/238/52 150/241/56 142/226/53 +f 137/236/54 143/242/23 145/243/57 +f 140/222/34 149/234/24 148/244/58 +f 155/245/49 110/246/50 156/247/28 +f 153/248/48 108/249/35 154/250/26 +f 151/191/46 106/189/45 152/251/27 +f 156/252/28 111/253/42 157/192/47 +f 154/250/26 109/254/36 155/245/49 +f 152/251/27 107/181/37 153/248/48 +f 98/184/40 163/177/33 99/182/38 +f 101/188/44 162/178/34 161/174/30 +f 103/255/51 97/256/52 104/187/43 +f 104/187/43 164/257/53 98/184/40 +f 111/186/42 110/258/50 103/255/51 +f 103/255/51 110/258/50 159/259/54 +f 109/180/36 102/173/29 110/260/50 +f 102/173/29 160/175/31 110/260/50 +f 161/261/30 168/262/55 160/263/31 +f 164/257/53 171/264/24 163/177/33 +f 162/178/34 169/265/26 161/261/30 +f 159/266/54 166/267/25 97/268/52 +f 160/263/31 165/269/23 110/270/50 +f 97/268/52 172/271/56 164/257/53 +f 159/266/54 165/272/23 167/273/57 +f 162/178/34 171/264/24 170/274/58 +f 178/275/59 237/276/60 236/277/61 +f 176/278/62 239/279/63 238/280/64 +f 184/281/65 178/275/59 185/282/66 +f 182/283/67 176/278/62 183/284/68 +f 188/285/69 174/286/70 181/287/71 +f 187/288/72 180/289/73 188/285/69 +f 183/284/68 177/290/74 184/281/65 +f 182/283/67 174/286/70 175/291/75 +f 234/292/26 181/287/71 227/293/49 +f 233/294/48 188/295/69 234/292/26 +f 195/296/28 202/297/68 194/298/47 +f 193/299/25 200/300/66 192/301/46 +f 191/302/27 198/303/72 190/304/48 +f 196/305/49 203/306/67 195/296/28 +f 194/298/47 201/307/65 193/299/25 +f 192/301/46 199/308/76 191/309/27 +f 190/304/48 197/310/69 189/311/26 +f 189/311/26 204/312/71 196/305/49 +f 204/312/71 210/313/75 203/306/67 +f 201/314/65 209/315/62 208/316/74 +f 197/317/69 206/318/77 205/319/73 +f 204/312/71 205/319/73 211/320/70 +f 202/297/68 210/313/75 209/315/62 +f 200/321/66 208/316/74 207/322/59 +f 209/315/62 217/323/63 216/324/64 +f 208/316/74 214/325/61 207/322/59 +f 211/320/70 217/323/63 210/313/75 +f 208/316/74 216/324/64 215/326/60 +f 206/318/77 212/327/78 205/319/73 +f 205/319/73 218/328/79 211/320/70 +f 198/329/72 199/330/76 206/318/77 +f 206/318/77 199/330/76 213/331/80 +f 200/321/66 207/322/59 199/332/76 +f 207/322/59 214/325/61 199/332/76 +f 214/333/61 223/334/25 222/335/57 +f 218/328/79 225/336/24 217/323/63 +f 216/324/64 223/334/25 215/337/60 +f 213/338/80 220/339/26 212/340/78 +f 214/333/61 219/341/23 199/342/76 +f 212/340/78 226/343/58 218/328/79 +f 213/338/80 219/344/23 221/345/55 +f 216/324/64 225/336/24 224/346/56 +f 231/347/46 186/348/76 232/349/27 +f 229/350/47 184/351/65 230/352/25 +f 227/293/49 182/283/67 228/353/28 +f 232/354/27 187/355/72 233/294/48 +f 230/352/25 185/356/66 231/347/46 +f 228/353/28 183/284/68 229/350/47 +f 174/286/70 239/279/63 175/291/75 +f 177/290/74 238/280/64 237/276/60 +f 180/289/73 235/357/80 173/358/78 +f 180/289/73 240/359/79 174/286/70 +f 187/288/72 186/360/76 179/361/77 +f 179/361/77 186/360/76 235/357/80 +f 185/282/66 178/275/59 186/362/76 +f 178/275/59 236/277/61 186/362/76 +f 237/363/60 244/364/57 236/365/61 +f 240/359/79 247/366/24 239/279/63 +f 238/280/64 245/367/25 237/363/60 +f 235/368/80 242/369/26 173/370/78 +f 236/365/61 241/371/23 186/372/76 +f 173/370/78 248/373/58 240/359/79 +f 235/368/80 241/374/23 243/375/55 +f 238/280/64 247/366/24 246/376/56 +f 102/173/29 101/188/44 161/174/30 +f 100/176/32 99/182/38 163/177/33 +f 108/179/35 101/188/44 102/173/29 +f 107/181/37 106/189/45 99/182/38 +f 112/183/39 104/187/43 98/184/40 +f 111/186/42 103/255/51 104/187/43 +f 107/181/37 100/176/32 101/188/44 +f 106/189/45 105/185/41 98/184/40 +f 158/190/25 112/193/39 105/185/41 +f 157/192/47 111/253/42 112/193/39 +f 119/194/27 127/204/45 126/195/37 +f 117/197/26 125/205/35 124/198/36 +f 115/200/28 123/377/50 122/201/42 +f 120/203/46 128/210/41 127/204/45 +f 118/196/48 126/195/37 125/205/35 +f 116/199/49 124/198/36 123/206/50 +f 114/202/47 122/201/42 121/208/39 +f 113/209/25 121/208/39 128/210/41 +f 128/210/41 135/218/40 134/211/38 +f 125/212/35 126/195/37 133/213/32 +f 121/215/39 122/227/42 130/216/51 +f 128/210/41 121/215/39 129/217/43 +f 126/195/37 127/204/45 134/211/38 +f 124/219/36 125/212/35 132/214/44 +f 133/213/32 134/211/38 141/221/33 +f 131/220/29 132/214/44 139/223/30 +f 135/218/40 142/226/53 141/221/33 +f 132/214/44 133/213/32 140/222/34 +f 130/216/51 137/229/54 136/225/52 +f 129/217/43 136/225/52 142/226/53 +f 139/231/30 147/235/26 146/232/55 +f 142/226/53 150/241/56 149/234/24 +f 140/222/34 148/244/58 147/235/26 +f 137/236/54 145/243/57 144/237/25 +f 138/233/31 146/232/55 143/239/23 +f 136/238/52 144/237/25 150/241/56 +f 137/236/54 123/378/50 143/242/23 +f 140/222/34 141/221/33 149/234/24 +f 155/245/49 109/254/36 110/246/50 +f 153/248/48 107/181/37 108/249/35 +f 151/191/46 105/185/41 106/189/45 +f 156/252/28 110/379/50 111/253/42 +f 154/250/26 108/249/35 109/254/36 +f 152/251/27 106/189/45 107/181/37 +f 98/184/40 164/257/53 163/177/33 +f 101/188/44 100/176/32 162/178/34 +f 103/255/51 159/259/54 97/256/52 +f 104/187/43 97/256/52 164/257/53 +f 161/261/30 169/265/26 168/262/55 +f 164/257/53 172/271/56 171/264/24 +f 162/178/34 170/274/58 169/265/26 +f 159/266/54 167/273/57 166/267/25 +f 160/263/31 168/262/55 165/269/23 +f 97/268/52 166/267/25 172/271/56 +f 159/266/54 110/380/50 165/272/23 +f 162/178/34 163/177/33 171/264/24 +f 178/275/59 177/290/74 237/276/60 +f 176/278/62 175/291/75 239/279/63 +f 184/281/65 177/290/74 178/275/59 +f 182/283/67 175/291/75 176/278/62 +f 188/285/69 180/289/73 174/286/70 +f 187/288/72 179/361/77 180/289/73 +f 183/284/68 176/278/62 177/290/74 +f 182/283/67 181/287/71 174/286/70 +f 234/292/26 188/295/69 181/287/71 +f 233/294/48 187/355/72 188/295/69 +f 195/296/28 203/306/67 202/297/68 +f 193/299/25 201/307/65 200/300/66 +f 191/302/27 199/381/76 198/303/72 +f 196/305/49 204/312/71 203/306/67 +f 194/298/47 202/297/68 201/307/65 +f 192/301/46 200/300/66 199/308/76 +f 190/304/48 198/303/72 197/310/69 +f 189/311/26 197/310/69 204/312/71 +f 204/312/71 211/320/70 210/313/75 +f 201/314/65 202/297/68 209/315/62 +f 197/317/69 198/329/72 206/318/77 +f 204/312/71 197/317/69 205/319/73 +f 202/297/68 203/306/67 210/313/75 +f 200/321/66 201/314/65 208/316/74 +f 209/315/62 210/313/75 217/323/63 +f 208/316/74 215/326/60 214/325/61 +f 211/320/70 218/328/79 217/323/63 +f 208/316/74 209/315/62 216/324/64 +f 206/318/77 213/331/80 212/327/78 +f 205/319/73 212/327/78 218/328/79 +f 214/333/61 215/337/60 223/334/25 +f 218/328/79 226/343/58 225/336/24 +f 216/324/64 224/346/56 223/334/25 +f 213/338/80 221/345/55 220/339/26 +f 214/333/61 222/335/57 219/341/23 +f 212/340/78 220/339/26 226/343/58 +f 213/338/80 199/382/76 219/344/23 +f 216/324/64 217/323/63 225/336/24 +f 231/347/46 185/356/66 186/348/76 +f 229/350/47 183/284/68 184/351/65 +f 227/293/49 181/287/71 182/283/67 +f 232/354/27 186/383/76 187/355/72 +f 230/352/25 184/351/65 185/356/66 +f 228/353/28 182/283/67 183/284/68 +f 174/286/70 240/359/79 239/279/63 +f 177/290/74 176/278/62 238/280/64 +f 180/289/73 179/361/77 235/357/80 +f 180/289/73 173/358/78 240/359/79 +f 237/363/60 245/367/25 244/364/57 +f 240/359/79 248/373/58 247/366/24 +f 238/280/64 246/376/56 245/367/25 +f 235/368/80 243/375/55 242/369/26 +f 236/365/61 244/364/57 241/371/23 +f 173/370/78 242/369/26 248/373/58 +f 235/368/80 186/384/76 241/374/23 +f 238/280/64 239/279/63 247/366/24 diff --git a/src/main/resources/assets/hbm/models/machines/radar_screen.obj b/src/main/resources/assets/hbm/models/machines/radar_screen.obj new file mode 100644 index 000000000..18f4a3cc5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/radar_screen.obj @@ -0,0 +1,140 @@ +# Blender v2.79 (sub 0) OBJ File: 'radar_screen.blend' +# www.blender.org +o Plane +v -0.250000 0.000000 1.500000 +v 0.500000 0.000000 1.500000 +v -0.250000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.250000 2.000000 -0.500000 +v -0.250000 2.000000 1.500000 +v 0.500000 2.000000 1.500000 +v 0.500000 2.000000 -0.500000 +v -0.250000 0.250000 -0.250000 +v -0.250000 0.250000 1.250000 +v -0.250000 1.750000 -0.250000 +v -0.250000 1.750000 1.250000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.250000 1.250000 +v -0.500000 1.750000 -0.250000 +v -0.500000 1.750000 1.250000 +v 0.500000 0.125000 1.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 1.875000 1.375000 +v 0.500000 1.875000 -0.375000 +v 0.375000 0.125000 1.375000 +v 0.375000 0.125000 -0.375000 +v 0.375000 1.875000 1.375000 +v 0.375000 1.875000 -0.375000 +vt 0.500000 0.000000 +vt 0.136364 0.214286 +vt 0.136364 0.000000 +vt 0.136364 0.785714 +vt 0.500000 1.000000 +vt 0.136364 1.000000 +vt 0.636364 0.214286 +vt 0.500000 0.785714 +vt 0.500000 0.214286 +vt 0.000000 0.785714 +vt 0.000000 0.214286 +vt 0.159091 0.750000 +vt 0.681818 0.714286 +vt 0.636364 0.785714 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.954545 0.714286 +vt 1.000000 0.785714 +vt 1.000000 0.214286 +vt 0.681818 0.285714 +vt 0.954545 0.285714 +vt 0.954545 0.267857 +vt 0.681818 0.714286 +vt 0.681818 0.267857 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.818182 -0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.477273 0.750000 +vt 0.159091 0.250000 +vt 0.477273 0.250000 +vt 0.477273 0.250000 +vt 0.159091 0.750000 +vt 0.159091 0.250000 +vt 0.818182 0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.818182 0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.818182 -0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.500000 0.035714 +vt 0.954545 0.714286 +vt 0.500000 0.035714 +vt 0.500000 0.035714 +vt 0.500000 0.035714 +vt 0.818182 0.035714 +vt 0.477273 0.750000 +vt 0.818182 0.035714 +vt 0.818182 0.035714 +vt 0.818182 0.035714 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/2/4 6/10/4 1/11/4 +f 2/2/5 19/12/5 7/4/5 +f 3/7/6 11/13/6 5/14/6 +f 9/15/3 15/16/3 11/17/3 +f 5/14/6 12/18/6 6/19/6 +f 1/20/6 9/21/6 3/7/6 +f 6/19/6 10/22/6 1/20/6 +f 14/23/6 15/24/6 13/25/6 +f 10/26/1 13/27/1 9/28/1 +f 12/29/4 14/30/4 10/31/4 +f 11/32/2 16/33/2 12/34/2 +f 20/35/4 22/36/4 18/37/4 +f 7/4/5 20/38/5 8/8/5 +f 4/9/5 17/39/5 2/2/5 +f 8/8/5 18/40/5 4/9/5 +f 22/41/5 23/42/5 21/43/5 +f 18/44/2 21/45/2 17/46/2 +f 17/47/3 23/48/3 19/49/3 +f 19/50/1 24/51/1 20/52/1 +f 3/1/1 4/9/1 2/2/1 +f 7/4/2 8/8/2 5/5/2 +f 3/7/3 5/14/3 8/8/3 +f 2/2/4 7/4/4 6/10/4 +f 2/2/5 17/39/5 19/12/5 +f 3/7/6 9/21/6 11/13/6 +f 9/15/3 13/53/3 15/16/3 +f 5/14/6 11/13/6 12/18/6 +f 1/20/6 10/22/6 9/21/6 +f 6/19/6 12/18/6 10/22/6 +f 14/23/6 16/54/6 15/24/6 +f 10/26/1 14/55/1 13/27/1 +f 12/29/4 16/56/4 14/30/4 +f 11/32/2 15/57/2 16/33/2 +f 20/35/4 24/58/4 22/36/4 +f 7/4/5 19/12/5 20/38/5 +f 4/9/5 18/40/5 17/39/5 +f 8/8/5 20/38/5 18/40/5 +f 22/41/5 24/59/5 23/42/5 +f 18/44/2 22/60/2 21/45/2 +f 17/47/3 21/61/3 23/48/3 +f 19/50/1 23/62/1 24/51/1 diff --git a/src/main/resources/assets/hbm/models/machines/telex.obj b/src/main/resources/assets/hbm/models/machines/telex.obj new file mode 100644 index 000000000..ae7237edb --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/telex.obj @@ -0,0 +1,451 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Cube.001 +v 0.500000 0.000000 1.500000 +v 0.500000 0.625000 1.500000 +v 0.125000 1.000000 1.500000 +v -0.500000 1.000000 1.500000 +v -0.500000 0.000000 1.500000 +v 0.500000 0.000000 1.125000 +v 0.500000 0.625000 1.125000 +v 0.125000 1.000000 1.125000 +v 0.125000 0.625000 1.125000 +v -0.500000 1.000000 1.125000 +v 0.125000 0.625000 0.250000 +v 0.125000 1.000000 0.250000 +v 0.500000 0.625000 0.250000 +v 0.125000 1.000000 -0.500000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.250000 +v -0.500000 1.000000 0.250000 +v -0.500000 1.000000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.250000 +v -0.500000 0.000000 1.125000 +v -0.187500 1.000000 -0.437500 +v -0.437500 1.000000 -0.437500 +v -0.437500 1.000000 0.062500 +v -0.187500 1.000000 0.062500 +v -0.187500 1.312500 -0.437500 +v -0.187500 1.312500 0.062500 +v -0.437500 1.312500 0.062500 +v -0.437500 1.312500 -0.437500 +v -0.375000 1.062500 0.062500 +v -0.312500 1.062500 0.062500 +v -0.312500 1.062500 0.125000 +v -0.375000 1.062500 0.187500 +v -0.312500 1.000000 0.062500 +v -0.312500 1.000000 0.125000 +v -0.375000 1.000000 0.062500 +v -0.375000 1.000000 0.187500 +v -0.125000 1.062500 0.125000 +v -0.125000 1.062500 0.187500 +v -0.125000 1.000000 0.125000 +v -0.125000 1.000000 0.187500 +v 0.000000 1.062500 0.125000 +v -0.062500 1.062500 0.125000 +v -0.062500 1.187500 0.125000 +v 0.000000 1.187500 0.125000 +v 0.062500 1.000000 0.250000 +v 0.062500 1.000000 0.062500 +v 0.062500 1.062500 0.062500 +v 0.062500 1.062500 0.250000 +v -0.125000 1.000000 0.062500 +v -0.125000 1.000000 0.250000 +v -0.125000 1.062500 0.250000 +v -0.125000 1.062500 0.062500 +v -0.062500 1.062500 0.187500 +v 0.000000 1.062500 0.187500 +v 0.000000 1.187500 0.187500 +v -0.062500 1.187500 0.187500 +v -0.093750 1.187500 0.093750 +v 0.031250 1.187500 0.093750 +v 0.031250 1.187500 0.218750 +v -0.093750 1.187500 0.218750 +v -0.093750 1.437500 0.093750 +v -0.093750 1.437500 0.218750 +v 0.031250 1.437500 0.218750 +v 0.031250 1.437500 0.093750 +v -0.312500 1.812500 0.000000 +v -0.375000 1.812500 0.000000 +v -0.375000 1.812500 -0.062500 +v -0.312500 1.812500 -0.062500 +v -0.375000 1.312500 -0.062500 +v -0.312500 1.312500 -0.062500 +v -0.312500 1.312500 0.000000 +v -0.375000 1.312500 0.000000 +v 0.312500 0.812500 -0.312500 +v 0.312500 0.812500 0.062500 +v 0.375000 0.875000 0.062500 +v 0.375000 0.875000 -0.312500 +v 0.562500 0.875000 0.062500 +v 0.562500 0.875000 -0.312500 +v 0.625000 0.812500 0.062500 +v 0.625000 0.812500 -0.312500 +v 0.625000 0.625000 0.062500 +v 0.625000 0.625000 -0.312500 +v 0.562500 0.562500 0.062500 +v 0.562500 0.562500 -0.312500 +v 0.562500 0.375000 0.062500 +v 0.562500 0.375000 -0.312500 +v 0.625000 0.312500 0.062500 +v 0.625000 0.312500 -0.312500 +v 0.625000 0.125000 0.062500 +v 0.625000 0.125000 -0.312500 +v 0.562500 0.062500 -0.312500 +v 0.562500 0.062500 0.062500 +vt 0.656250 0.250000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 0.000000 -0.000000 +vt 0.093750 0.156250 +vt -0.000000 0.156250 +vt 0.093750 0.250000 +vt 0.500000 0.500000 +vt 0.593750 0.500000 +vt 0.500000 0.593750 +vt 0.593750 0.500000 +vt 0.500000 0.343750 +vt 0.593750 0.343750 +vt 0.687500 0.500000 +vt 0.593750 0.500000 +vt 0.687500 0.593750 +vt 0.312500 0.156250 +vt 0.500000 0.250000 +vt 0.500000 0.156250 +vt 0.312500 0.156250 +vt 0.500000 -0.000000 +vt 0.500000 0.156250 +vt 0.093750 0.000000 +vt 0.593750 0.250000 +vt 0.812500 0.343750 +vt 0.593750 0.343750 +vt 0.093750 0.156250 +vt 0.312500 0.250000 +vt 1.000000 0.343750 +vt 0.812500 0.500000 +vt 0.812500 0.343750 +vt 1.000000 -0.000000 +vt 0.843750 0.250000 +vt 0.750000 0.156250 +vt 0.093750 0.250000 +vt 0.312500 0.500000 +vt 0.312500 0.250000 +vt 0.093750 0.500000 +vt -0.000000 0.250000 +vt -0.000000 0.500000 +vt 0.500000 0.250000 +vt 0.500000 0.500000 +vt 0.093750 0.750000 +vt 0.312500 0.750000 +vt 0.093750 0.500000 +vt 0.285714 0.500000 +vt 0.000000 1.000000 +vt 0.285714 1.000000 +vt 0.250000 0.750000 +vt 0.125000 0.812500 +vt 0.250000 0.812500 +vt 0.312500 0.828125 +vt 0.250000 0.750000 +vt 0.312500 0.750000 +vt 0.187500 0.828125 +vt 0.250000 0.906250 +vt 0.187500 0.906250 +vt 0.187500 0.828125 +vt 0.062500 0.906250 +vt 0.187500 0.906250 +vt 0.125000 0.828125 +vt 0.000000 0.750000 +vt 0.125000 0.750000 +vt 0.437500 0.875000 +vt 0.421875 0.859375 +vt 0.437500 0.859375 +vt 0.437500 0.859375 +vt 0.453125 0.843750 +vt 0.437500 0.843750 +vt 0.437500 0.890625 +vt 0.406250 0.875000 +vt 0.406250 0.890625 +vt 0.406250 0.812500 +vt 0.406250 0.875000 +vt 0.100000 1.000000 +vt 0.000000 0.900000 +vt 0.000000 1.000000 +vt 0.437500 0.812500 +vt 0.421875 0.859375 +vt 0.390625 0.812500 +vt 0.406250 0.875000 +vt 0.406250 0.812500 +vt 0.406250 0.750000 +vt 0.390625 0.781250 +vt 0.390625 0.750000 +vt 0.453125 0.750000 +vt 0.406250 0.765625 +vt 0.406250 0.750000 +vt 0.406250 0.765625 +vt 0.453125 0.750000 +vt 0.453125 0.765625 +vt 0.453125 0.750000 +vt 0.406250 0.765625 +vt 0.406250 0.750000 +vt 0.406250 0.765625 +vt 0.453125 0.750000 +vt 0.453125 0.765625 +vt 0.421875 0.781250 +vt 0.406250 0.750000 +vt 0.421875 0.765625 +vt 0.453125 0.750000 +vt 0.437500 0.765625 +vt 0.453125 0.796875 +vt 0.437500 0.781250 +vt 0.406250 0.796875 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.437500 0.750000 +vt 0.406250 0.781250 +vt 0.406250 0.750000 +vt 0.343750 0.875000 +vt 0.375000 0.906250 +vt 0.343750 0.906250 +vt 0.343750 0.812500 +vt 0.312500 0.875000 +vt 0.312500 0.812500 +vt 0.312500 0.812500 +vt 0.343750 0.875000 +vt 0.343750 0.812500 +vt 0.312500 0.812500 +vt 0.343750 0.875000 +vt 0.343750 0.812500 +vt 0.468750 0.859375 +vt 0.484375 0.875000 +vt 0.484375 0.859375 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.687500 0.750000 +vt 0.781250 0.765625 +vt 0.781250 0.750000 +vt 0.687500 0.703125 +vt 0.781250 0.750000 +vt 0.781250 0.703125 +vt 0.687500 0.687500 +vt 0.781250 0.703125 +vt 0.781250 0.687500 +vt 0.687500 0.687500 +vt 0.781250 0.640625 +vt 0.781250 0.687500 +vt 0.687500 0.640625 +vt 0.781250 0.625000 +vt 0.687500 0.625000 +vt 0.781250 0.578125 +vt 0.781250 0.562500 +vt 0.687500 0.578125 +vt 0.687500 0.562500 +vt 0.687500 0.515625 +vt 0.781250 0.500000 +vt 0.687500 0.515625 +vt 0.781250 0.515625 +vt 0.750000 -0.000000 +vt 0.750000 0.156250 +vt -0.000000 0.250000 +vt 0.500000 0.500000 +vt 0.312500 0.250000 +vt 0.312500 0.000000 +vt 0.812500 0.250000 +vt 0.312500 0.156250 +vt 1.000000 0.500000 +vt 0.750000 0.000000 +vt 1.000000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.312500 0.500000 +vt 0.000000 0.500000 +vt -0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.125000 0.750000 +vt 0.250000 0.828125 +vt 0.250000 0.828125 +vt 0.062500 0.828125 +vt 0.000000 0.828125 +vt 0.453125 0.859375 +vt 0.437500 0.875000 +vt 0.421875 0.812500 +vt 0.100000 0.900000 +vt 0.421875 0.812500 +vt 0.390625 0.875000 +vt 0.406250 0.781250 +vt 0.453125 0.765625 +vt 0.453125 0.765625 +vt 0.406250 0.750000 +vt 0.390625 0.750000 +vt 0.390625 0.750000 +vt 0.390625 0.750000 +vt 0.437500 0.781250 +vt 0.375000 0.875000 +vt 0.312500 0.875000 +vt 0.312500 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.687500 0.765625 +vt 0.687500 0.750000 +vt 0.687500 0.703125 +vt 0.781250 0.515625 +vt 0.687500 0.500000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +s off +f 3/1/1 4/2/1 5/3/1 +f 1/4/2 7/5/2 2/6/2 +f 8/7/3 2/6/3 7/5/3 +f 9/8/4 8/9/4 7/10/4 +f 10/11/5 3/12/5 8/13/5 +f 11/14/1 13/15/1 12/16/1 +f 12/17/3 15/18/3 14/19/3 +f 13/20/2 16/21/2 15/22/2 +f 6/23/2 13/20/2 7/5/2 +f 7/24/5 11/25/5 9/26/5 +f 9/27/2 12/28/2 8/7/2 +f 14/29/5 18/30/5 12/31/5 +f 20/32/4 14/33/4 15/34/4 +f 12/31/5 10/11/5 8/13/5 +f 22/35/6 18/36/6 21/37/6 +f 10/38/6 5/39/6 4/40/6 +f 20/41/6 18/36/6 19/42/6 +f 22/43/7 21/44/7 6/45/7 +f 26/46/7 24/47/7 23/48/7 +f 30/49/5 28/50/5 27/51/5 +f 30/52/4 23/53/4 24/54/4 +f 28/55/1 25/56/1 26/57/1 +f 29/58/6 24/59/6 25/60/6 +f 27/61/2 26/62/2 23/63/2 +f 31/64/5 33/65/5 32/66/5 +f 33/67/2 35/68/2 32/69/2 +f 38/70/6 31/71/6 37/72/6 +f 40/73/5 33/65/5 34/74/5 +f 42/75/2 39/76/2 40/77/2 +f 39/78/4 36/79/4 33/67/4 +f 38/80/1 40/81/1 34/82/1 +f 44/83/4 46/84/4 43/85/4 +f 48/86/2 50/87/2 47/88/2 +f 52/89/6 54/90/6 51/91/6 +f 51/92/4 49/93/4 48/94/4 +f 47/95/1 53/96/1 52/97/1 +f 44/98/5 53/99/5 55/100/5 +f 55/100/5 50/101/5 56/102/5 +f 56/102/5 49/103/5 43/104/5 +f 43/104/5 54/105/5 44/98/5 +f 56/106/1 58/107/1 55/108/1 +f 43/109/2 57/110/2 56/111/2 +f 55/112/6 45/113/6 44/114/6 +f 60/115/7 62/116/7 59/117/7 +f 64/118/5 66/119/5 63/120/5 +f 60/121/2 65/122/2 61/123/2 +f 62/124/6 63/125/6 59/126/6 +f 59/127/4 66/128/4 60/121/4 +f 61/123/1 64/118/1 62/129/1 +f 70/130/5 68/131/5 67/132/5 +f 69/133/4 72/134/4 71/135/4 +f 67/136/1 74/137/1 73/138/1 +f 70/139/2 73/140/2 72/141/2 +f 68/131/6 71/142/6 74/143/6 +f 76/144/8 78/145/8 75/146/8 +f 77/147/5 80/148/5 78/149/5 +f 79/150/3 82/151/3 80/152/3 +f 81/153/2 84/154/2 82/155/2 +f 83/156/9 86/157/9 84/154/9 +f 85/158/2 88/159/2 86/157/2 +f 90/160/3 87/161/3 89/162/3 +f 91/163/2 90/160/2 89/162/2 +f 92/164/9 94/165/9 93/166/9 +f 5/3/1 1/167/1 2/168/1 +f 2/168/1 3/1/1 5/3/1 +f 1/4/2 6/23/2 7/5/2 +f 8/7/3 3/169/3 2/6/3 +f 10/11/5 4/170/5 3/12/5 +f 12/17/3 13/171/3 15/18/3 +f 13/20/2 17/172/2 16/21/2 +f 6/23/2 17/172/2 13/20/2 +f 7/24/5 13/173/5 11/25/5 +f 9/27/2 11/174/2 12/28/2 +f 14/29/5 19/175/5 18/30/5 +f 15/34/4 16/176/4 20/32/4 +f 20/32/4 19/177/4 14/33/4 +f 12/31/5 18/30/5 10/11/5 +f 22/35/6 10/38/6 18/36/6 +f 10/38/6 22/35/6 5/39/6 +f 20/41/6 21/37/6 18/36/6 +f 20/178/7 16/179/7 17/180/7 +f 6/45/7 1/181/7 5/182/7 +f 20/178/7 17/180/7 21/44/7 +f 17/180/7 6/45/7 21/44/7 +f 5/182/7 22/43/7 6/45/7 +f 26/46/7 25/183/7 24/47/7 +f 30/49/5 29/184/5 28/50/5 +f 30/52/4 27/185/4 23/53/4 +f 28/55/1 29/186/1 25/56/1 +f 29/58/6 30/187/6 24/59/6 +f 27/61/2 28/188/2 26/62/2 +f 31/64/5 34/74/5 33/65/5 +f 33/67/2 36/189/2 35/68/2 +f 38/70/6 34/190/6 31/71/6 +f 40/73/5 39/191/5 33/65/5 +f 42/75/2 41/192/2 39/76/2 +f 39/78/4 41/193/4 36/79/4 +f 38/80/1 42/194/1 40/81/1 +f 44/83/4 45/195/4 46/84/4 +f 48/86/2 49/196/2 50/87/2 +f 52/89/6 53/99/6 54/90/6 +f 51/92/4 54/197/4 49/93/4 +f 47/95/1 50/198/1 53/96/1 +f 44/98/5 54/105/5 53/99/5 +f 55/100/5 53/99/5 50/101/5 +f 56/102/5 50/101/5 49/103/5 +f 43/104/5 49/103/5 54/105/5 +f 56/106/1 57/199/1 58/107/1 +f 43/109/2 46/200/2 57/110/2 +f 55/112/6 58/201/6 45/113/6 +f 60/115/7 61/202/7 62/116/7 +f 64/118/5 65/203/5 66/119/5 +f 60/121/2 66/128/2 65/122/2 +f 62/124/6 64/204/6 63/125/6 +f 59/127/4 63/205/4 66/128/4 +f 61/123/1 65/122/1 64/118/1 +f 70/130/5 69/206/5 68/131/5 +f 69/133/4 70/207/4 72/134/4 +f 67/136/1 68/208/1 74/137/1 +f 70/139/2 67/209/2 73/140/2 +f 68/131/6 69/206/6 71/142/6 +f 76/144/8 77/210/8 78/145/8 +f 77/147/5 79/211/5 80/148/5 +f 79/150/3 81/212/3 82/151/3 +f 81/153/2 83/156/2 84/154/2 +f 83/156/9 85/158/9 86/157/9 +f 85/158/2 87/161/2 88/159/2 +f 90/160/3 88/159/3 87/161/3 +f 91/163/2 92/213/2 90/160/2 +f 92/164/9 91/214/9 94/165/9 diff --git a/src/main/resources/assets/hbm/models/machines/wood_burner.obj b/src/main/resources/assets/hbm/models/machines/wood_burner.obj new file mode 100644 index 000000000..9d9085591 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/wood_burner.obj @@ -0,0 +1,1112 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Cylinder +v -0.292386 1.031250 0.845970 +v -0.465753 1.031250 0.917385 +v -0.465753 0.968750 0.917385 +v -0.292386 0.968750 0.845970 +v -0.187500 0.687500 0.937500 +v -0.187500 0.625000 1.000000 +v 0.187500 0.625000 1.000000 +v 0.187500 0.687500 0.937500 +v 0.163320 0.625000 0.875000 +v 0.000000 0.788320 0.875000 +v -0.163321 0.625000 0.875000 +v 0.000000 0.461679 0.875000 +v -0.438154 3.562500 -0.500000 +v -0.500000 3.562500 -0.561846 +v -0.561846 3.562500 -0.500000 +v -0.500000 3.562500 -0.438154 +v 0.687500 0.875000 -0.625000 +v 0.687500 0.875000 -0.250000 +v 0.687500 0.687500 -0.250000 +v 0.687500 0.000000 -0.250000 +v 0.687500 0.000000 -0.625000 +v -0.687500 0.000000 -0.250000 +v 0.562500 0.687500 -0.250000 +v -0.562500 0.687500 -0.250000 +v -0.687500 0.687500 -0.250000 +v -0.297517 0.484684 0.750000 +v -0.362222 0.372612 0.750000 +v 0.000000 0.275555 0.750000 +v 0.000000 0.404965 0.750000 +v -0.297518 1.515315 -0.812500 +v 0.297517 1.515316 -0.812500 +v 0.595035 1.000000 -0.812500 +v -0.297517 0.484685 -0.812500 +v -0.595035 1.000000 0.750000 +v -0.515316 1.297517 0.750000 +v -0.627388 1.362222 0.750000 +v -0.724444 1.000000 0.750000 +v -0.627387 0.637778 0.750000 +v -0.515315 0.702482 0.750000 +v -0.187500 0.687500 -0.625000 +v -0.187500 0.687500 -1.000000 +v -0.312500 0.687500 -1.000000 +v -0.562500 0.687500 -0.625000 +v -0.297518 1.515315 0.750000 +v -0.362223 1.627387 0.750000 +v 0.000000 0.404965 -0.750000 +v 0.000000 0.275556 -0.750000 +v -0.362222 0.372613 -0.750000 +v -0.297517 0.484685 -0.750000 +v 0.000000 1.595035 -0.750000 +v 0.000000 1.724445 -0.750000 +v 0.362222 1.627387 -0.750000 +v 0.297517 1.515316 -0.750000 +v -0.595035 1.000000 -0.750000 +v -0.515315 0.702482 -0.750000 +v -0.627387 0.637778 -0.750000 +v -0.724444 1.000000 -0.750000 +v -0.627388 1.362222 -0.750000 +v -0.515316 1.297517 -0.750000 +v -0.297518 1.515315 -0.750000 +v -0.362223 1.627387 -0.750000 +v 0.595035 1.000000 0.750000 +v 0.724444 1.000000 0.750000 +v 0.627387 1.362222 0.750000 +v 0.515315 1.297517 0.750000 +v -0.115485 0.740485 0.875000 +v -0.115485 0.740485 0.812500 +v -0.163321 0.625000 0.812500 +v 0.312500 1.156250 0.799556 +v 0.356694 1.156250 0.843750 +v 0.356694 1.031250 0.843750 +v 0.312500 1.031250 0.799556 +v 0.687500 0.875000 0.250000 +v 0.687500 0.875000 0.625000 +v 0.687500 -0.000000 0.625000 +v 0.687500 -0.000000 0.250000 +v 0.000000 1.430084 0.875000 +v 0.000000 1.430084 0.937500 +v 0.044194 1.385889 0.937500 +v 0.044194 1.385889 0.875000 +v -0.312500 1.187500 0.875000 +v -0.312500 1.187500 0.812500 +v -0.312500 0.812500 0.812500 +v -0.312500 0.812500 0.875000 +v 0.687500 0.687500 -1.000000 +v 0.687500 0.687500 -0.750000 +v 0.687500 0.000000 -0.750000 +v 0.687500 0.000000 -1.000000 +v 0.515315 0.702482 -0.750000 +v 0.627387 0.637778 -0.750000 +v 0.362222 0.372613 -0.750000 +v 0.297518 0.484685 -0.750000 +v 0.297517 1.515315 0.750000 +v 0.362222 1.627387 0.750000 +v 0.000000 1.724444 0.750000 +v 0.000000 1.595035 0.750000 +v 0.515315 0.702482 0.750000 +v 0.627387 0.637778 0.750000 +v 0.297518 0.484685 0.750000 +v 0.362222 0.372613 0.750000 +v 0.595035 1.000000 -0.750000 +v 0.724444 1.000000 -0.750000 +v -0.515316 1.297517 0.812500 +v -0.515315 0.702482 0.812500 +v 0.000000 0.404965 0.812500 +v 0.515315 1.297517 0.812500 +v 0.515315 1.297518 -0.750000 +v 0.627387 1.362222 -0.750000 +v -0.687500 0.875000 0.625000 +v -0.687500 -0.000000 0.625000 +v 0.312500 1.156250 0.887944 +v 0.268306 1.156250 0.843750 +v 0.268306 1.031250 0.843750 +v 0.312500 1.031250 0.887944 +v -0.044194 1.385889 0.875000 +v -0.044194 1.385889 0.937500 +v -0.187500 0.687500 0.875000 +v 0.187500 0.687500 0.875000 +v 0.250000 1.479639 0.875000 +v -0.250000 1.479639 0.875000 +v -0.250000 1.292139 0.875000 +v 0.250000 1.292139 0.875000 +v -0.687500 0.875000 -0.250000 +v -0.562500 0.875000 -0.250000 +v 0.562500 0.000000 -0.625000 +v 0.562500 0.687500 -0.625000 +v 0.562500 0.875000 -0.625000 +v -0.687500 0.000000 -1.000000 +v -0.687500 0.687500 -1.000000 +v 0.187500 0.687500 -1.000000 +v 0.312500 0.687500 -1.000000 +v 0.187500 0.750000 -0.937500 +v 0.187500 0.687500 -0.625000 +v -0.543732 3.937500 -0.456268 +v -0.561846 3.937500 -0.500000 +v -0.595671 3.937500 -0.500000 +v -0.567650 3.937500 -0.432350 +v 0.562500 0.875000 -0.250000 +v -0.687500 0.875000 0.250000 +v -0.687500 -0.000000 0.250000 +v 0.250000 1.479639 0.812500 +v 0.250000 1.292139 0.812500 +v 0.187500 0.750000 -0.625000 +v -0.187500 0.750000 -0.937500 +v -0.187500 0.750000 -0.625000 +v 0.115485 0.509515 0.875000 +v 0.115485 0.509515 0.812500 +v 0.163320 0.625000 0.812500 +v 0.312500 1.187500 0.812500 +v 0.312500 1.187500 0.875000 +v 0.312500 0.812500 0.875000 +v 0.312500 0.812500 0.812500 +v -0.115485 0.509515 0.875000 +v -0.115485 0.509515 0.812500 +v 0.000000 0.461679 0.812500 +v -0.489558 1.031250 0.859596 +v -0.316191 1.031250 0.788181 +v -0.316191 0.968750 0.788181 +v -0.489558 0.968750 0.859596 +v 0.000000 0.788320 0.812500 +v 0.115485 0.740485 0.875000 +v 0.115485 0.740485 0.812500 +v 0.000000 1.341695 0.875000 +v 0.000000 1.341695 0.937500 +v 0.312500 0.968750 0.887944 +v 0.268306 0.968750 0.843750 +v 0.268306 0.843750 0.843750 +v 0.312500 0.843750 0.887944 +v -0.187500 -0.000000 1.000000 +v 0.187500 -0.000000 1.000000 +v -0.687500 0.000000 -0.625000 +v -0.562500 0.000000 -0.625000 +v -0.687500 0.875000 -0.625000 +v -0.562500 0.875000 -0.625000 +v 0.356694 0.843750 0.843750 +v 0.312500 0.843750 0.799556 +v -0.250000 1.479639 0.812500 +v -0.250000 1.292139 0.812500 +v 0.187500 -0.000000 0.875000 +v -0.187500 -0.000000 0.875000 +v 0.312500 0.968750 0.799556 +v 0.356694 0.968750 0.843750 +v -0.567650 3.875000 -0.432350 +v -0.595671 3.875000 -0.500000 +v -0.663320 3.875000 -0.500000 +v -0.615485 3.875000 -0.384515 +v -0.500000 3.875000 -0.336680 +v -0.500000 3.875000 -0.404329 +v -0.384515 3.875000 -0.384515 +v -0.432350 3.875000 -0.432350 +v -0.543732 3.937500 -0.543732 +v -0.500000 3.937500 -0.561846 +v -0.500000 3.937500 -0.595671 +v -0.567650 3.937500 -0.567650 +v -0.336680 3.875000 -0.500000 +v -0.404329 3.875000 -0.500000 +v -0.500000 3.875000 -0.595671 +v -0.432350 3.875000 -0.567650 +v -0.384515 3.875000 -0.615485 +v -0.500000 3.875000 -0.663320 +v -0.456268 3.937500 -0.456268 +v -0.500000 3.937500 -0.438154 +v -0.500000 3.937500 -0.404329 +v -0.432350 3.937500 -0.432350 +v -0.567650 3.875000 -0.567650 +v -0.615485 3.875000 -0.615485 +v -0.456268 3.937500 -0.543732 +v -0.438154 3.937500 -0.500000 +v -0.404329 3.937500 -0.500000 +v -0.432350 3.937500 -0.567650 +v -0.687500 0.687500 -0.750000 +v -0.687500 0.000000 -0.750000 +v 0.297517 1.515315 0.812500 +v 0.000000 1.595035 0.812500 +v -0.297518 1.515315 0.812500 +v -0.595035 1.000000 0.812500 +v -0.297517 0.484684 0.812500 +v 0.297518 0.484685 0.812500 +v 0.515315 0.702482 0.812500 +v 0.595035 1.000000 0.812500 +v 0.000000 1.595035 -0.812500 +v 0.515315 1.297518 -0.812500 +v 0.515315 0.702482 -0.812500 +v 0.297518 0.484685 -0.812500 +v 0.000000 0.404965 -0.812500 +v -0.515315 0.702482 -0.812500 +v -0.595035 1.000000 -0.812500 +v -0.515316 1.297517 -0.812500 +v -0.456268 3.562500 -0.543732 +v -0.543732 3.562500 -0.543732 +v -0.543732 3.562500 -0.456268 +v -0.456268 3.562500 -0.456268 +v -0.336680 1.000000 -0.500000 +v -0.384515 1.000000 -0.615485 +v -0.384515 1.000000 -0.384515 +v -0.500000 1.000000 -0.336680 +v -0.663320 1.000000 -0.500000 +v -0.615485 1.000000 -0.384515 +v -0.500000 1.000000 -0.663320 +v -0.615485 1.000000 -0.615485 +vt 0.151724 0.294872 +vt 0.172414 0.282051 +vt 0.172414 0.294872 +vt 0.358621 0.294872 +vt 0.400000 0.307692 +vt 0.358621 0.307692 +vt 0.141623 0.191624 +vt 0.141623 0.128949 +vt 0.158480 0.160287 +vt 0.131269 0.551147 +vt 0.130943 0.526053 +vt 0.137855 0.538297 +vt 0.972414 0.358974 +vt 0.896552 0.358974 +vt 0.896552 0.282051 +vt 0.882759 0.500000 +vt 0.758621 0.500000 +vt 0.468966 1.000000 +vt 0.503448 0.974359 +vt 0.496552 1.000000 +vt 0.608602 0.714253 +vt 0.510620 0.609091 +vt 0.608602 0.503929 +vt 0.344828 1.000000 +vt 0.379310 0.974359 +vt 0.372414 1.000000 +vt 0.386207 1.000000 +vt 0.420690 0.974359 +vt 0.413793 1.000000 +vt 0.324138 0.641026 +vt 0.337931 0.564103 +vt 0.365517 0.641026 +vt 0.303448 1.000000 +vt 0.337931 0.974359 +vt 0.331034 1.000000 +vt 0.503448 0.666667 +vt 0.468966 0.641026 +vt 0.496552 0.641026 +vt 0.255172 0.666667 +vt 0.220690 0.641026 +vt 0.248276 0.641026 +vt 0.386207 0.641026 +vt 0.420690 0.666667 +vt 0.379310 0.666667 +vt 0.344828 0.641026 +vt 0.372414 0.641026 +vt 0.303448 0.641026 +vt 0.337931 0.666667 +vt 0.296552 0.666667 +vt 0.131034 0.974359 +vt 0.165517 1.000000 +vt 0.137931 1.000000 +vt 0.462069 0.666667 +vt 0.427586 0.641026 +vt 0.455172 0.641026 +vt 0.193103 0.217949 +vt 0.206897 0.205128 +vt 0.206897 0.217949 +vt 0.289655 0.256410 +vt 0.296552 0.230769 +vt 0.296552 0.256410 +vt 0.993103 0.807692 +vt 0.896552 0.730769 +vt 0.993103 0.730769 +vt 0.131034 0.320513 +vt 0.137931 0.333333 +vt 0.131034 0.333333 +vt 0.179310 0.320513 +vt 0.186207 0.243590 +vt 0.186207 0.320513 +vt 0.200000 0.564103 +vt 0.227586 0.423077 +vt 0.227586 0.564103 +vt 0.089655 0.666667 +vt 0.055172 0.641026 +vt 0.082759 0.641026 +vt 0.213793 0.974359 +vt 0.248276 1.000000 +vt 0.220690 1.000000 +vt 0.089655 0.974359 +vt 0.124138 1.000000 +vt 0.096552 1.000000 +vt 0.048276 0.666667 +vt 0.013793 0.641026 +vt 0.041379 0.641026 +vt 0.055172 1.000000 +vt 0.082759 1.000000 +vt 0.013793 1.000000 +vt 0.048276 0.974359 +vt 0.041379 1.000000 +vt 0.262069 0.641026 +vt 0.427586 1.000000 +vt 0.462069 0.974359 +vt 0.455172 1.000000 +vt 0.124138 0.641026 +vt 0.096552 0.641026 +vt 0.520523 0.805999 +vt 0.631502 0.925110 +vt 0.520523 0.925110 +vt 0.172414 0.974359 +vt 0.206897 1.000000 +vt 0.179310 1.000000 +vt 0.255172 0.974359 +vt 0.289655 1.000000 +vt 0.262069 1.000000 +vt 0.179310 0.641026 +vt 0.213793 0.666667 +vt 0.172414 0.666667 +vt 0.744828 0.987179 +vt 0.896552 0.807692 +vt 0.896552 0.987179 +vt 0.275862 0.256410 +vt 0.282759 0.230769 +vt 0.282759 0.256410 +vt 0.124138 0.320513 +vt 0.131034 0.307692 +vt 0.400000 0.320513 +vt 0.358621 0.320513 +vt 0.137931 0.397436 +vt 0.193103 0.358974 +vt 0.193103 0.397436 +vt 0.744828 0.500000 +vt 0.758621 0.538462 +vt 0.744828 0.538462 +vt 0.882759 0.282051 +vt 0.882759 0.141026 +vt 0.137931 0.641026 +vt 0.165517 0.641026 +vt 0.413793 0.307692 +vt 0.406897 0.307692 +vt 0.400000 0.294872 +vt 0.282759 0.564103 +vt 0.268966 0.564103 +vt 0.434483 0.576923 +vt 0.427586 0.641026 +vt 0.427586 0.564103 +vt 0.044010 0.634626 +vt 0.037931 0.628205 +vt 0.044828 0.628205 +vt 0.268966 0.256410 +vt 0.275862 0.230769 +vt 0.896552 0.538462 +vt 0.896552 0.500000 +vt 0.648276 0.730769 +vt 0.744828 0.807692 +vt 0.648276 0.807692 +vt 0.200000 0.358974 +vt 0.200000 0.397436 +vt 0.475862 0.641026 +vt 0.434483 0.641026 +vt 0.227586 0.615385 +vt 0.475862 0.576923 +vt 0.482759 0.641026 +vt 0.137931 0.217949 +vt 0.151724 0.205128 +vt 0.151724 0.217949 +vt 0.255172 0.320513 +vt 0.262069 0.243590 +vt 0.262069 0.320513 +vt 0.220690 0.217949 +vt 0.234483 0.205128 +vt 0.234483 0.217949 +vt 0.255172 0.243590 +vt 0.186207 0.230769 +vt 0.255172 0.230769 +vt 0.172414 0.307692 +vt 0.151724 0.320513 +vt 0.151724 0.307692 +vt 0.179310 0.217949 +vt 0.193103 0.205128 +vt 0.200000 0.423077 +vt 0.186207 0.564103 +vt 0.186207 0.423077 +vt 0.744828 0.730769 +vt 0.165517 0.205128 +vt 0.165517 0.217949 +vt 0.137931 0.307692 +vt 0.131034 0.294872 +vt 0.137931 0.294872 +vt 0.137931 0.320513 +vt 0.144828 0.307692 +vt 0.144828 0.320513 +vt 0.275862 0.320513 +vt 0.282759 0.294872 +vt 0.282759 0.320513 +vt 0.400000 0.166667 +vt 0.758621 0.282051 +vt 0.668966 0.358974 +vt 0.648276 0.282051 +vt 0.744828 0.282051 +vt 0.144828 0.294872 +vt 0.151724 0.282051 +vt 0.275862 0.217949 +vt 0.282759 0.217949 +vt 0.289655 0.230769 +vt 0.744828 0.102564 +vt 0.758621 0.102564 +vt 0.758621 0.141026 +vt 0.275862 0.269231 +vt 0.282759 0.269231 +vt 0.275862 0.282051 +vt 0.282759 0.282051 +vt 0.131034 0.397436 +vt 0.137931 0.358974 +vt 0.358621 0.141026 +vt 0.400000 0.141026 +vt 0.255172 0.333333 +vt 0.186207 0.333333 +vt 0.413793 0.166667 +vt 0.193103 0.410256 +vt 0.137931 0.410256 +vt 0.896552 0.551282 +vt 0.744828 0.551282 +vt 0.275862 0.333333 +vt 0.282759 0.333333 +vt 0.151724 0.269231 +vt 0.172414 0.269231 +vt 0.124138 0.217949 +vt 0.137931 0.205128 +vt 0.137931 0.346154 +vt 0.193103 0.346154 +vt 0.044828 0.615385 +vt 0.034483 0.602564 +vt 0.048276 0.602564 +vt 0.051724 0.615385 +vt 0.062069 0.602564 +vt 0.058621 0.615385 +vt 0.072414 0.615385 +vt 0.065517 0.615385 +vt 0.016435 0.634626 +vt 0.010345 0.628205 +vt 0.017241 0.628205 +vt 0.079310 0.615385 +vt 0.089655 0.602564 +vt 0.086207 0.615385 +vt 0.025002 0.634626 +vt 0.031034 0.628205 +vt 0.030223 0.634626 +vt 0.106897 0.615385 +vt 0.117241 0.602564 +vt 0.113793 0.615385 +vt 0.071585 0.634626 +vt 0.065517 0.628205 +vt 0.072414 0.628205 +vt 0.179310 0.205128 +vt 0.434483 0.564103 +vt 0.475862 0.564103 +vt 0.100000 0.615385 +vt 0.093103 0.615385 +vt 0.017241 0.615385 +vt 0.006897 0.602564 +vt 0.020690 0.602564 +vt 0.024138 0.615385 +vt 0.031034 0.615385 +vt 0.099160 0.634626 +vt 0.093103 0.628205 +vt 0.100000 0.628205 +vt 0.107726 0.634626 +vt 0.113793 0.628205 +vt 0.112947 0.634626 +vt 0.052577 0.634626 +vt 0.058621 0.628205 +vt 0.057798 0.634626 +vt 0.080151 0.634626 +vt 0.086207 0.628205 +vt 0.085373 0.634626 +vt 0.220690 0.205128 +vt 0.420690 0.564103 +vt 0.406897 0.423077 +vt 0.420690 0.423077 +vt 0.289655 0.320513 +vt 0.296552 0.294872 +vt 0.296552 0.320513 +vt 0.303448 0.307692 +vt 0.344828 0.166667 +vt 0.344828 0.307692 +vt 0.268966 0.320513 +vt 0.275862 0.294872 +vt 0.289655 0.294872 +vt 0.608049 0.968708 +vt 0.576012 0.984666 +vt 0.543975 0.968708 +vt 0.511939 0.865555 +vt 0.543975 0.762401 +vt 0.576012 0.746443 +vt 0.608049 0.762401 +vt 0.631502 0.805999 +vt 0.640086 0.865555 +vt 0.575941 0.730521 +vt 0.543281 0.714253 +vt 0.519371 0.669806 +vt 0.519371 0.548376 +vt 0.543281 0.503929 +vt 0.575941 0.487661 +vt 0.632511 0.548376 +vt 0.641262 0.609091 +vt 0.632511 0.669806 +vt 0.351724 0.307692 +vt 0.282759 0.641026 +vt 0.379310 0.564103 +vt 0.379310 0.423077 +vt 0.379310 0.615385 +vt 0.241379 0.641026 +vt 0.482759 0.564103 +vt 0.153543 0.182446 +vt 0.129703 0.182446 +vt 0.124765 0.160287 +vt 0.129703 0.138128 +vt 0.153543 0.138128 +vt 0.135994 0.547258 +vt 0.126448 0.547686 +vt 0.124356 0.538902 +vt 0.126218 0.529942 +vt 0.135763 0.529514 +vt 0.227586 0.371795 +vt 0.241379 0.346154 +vt 0.993103 0.282051 +vt 0.993103 0.358974 +vt 0.744828 0.358974 +vt 0.324138 0.564103 +vt 0.296552 0.974359 +vt 0.413793 0.641026 +vt 0.331034 0.641026 +vt 0.179310 0.243590 +vt 0.006897 0.666667 +vt 0.006897 0.974359 +vt 0.289655 0.641026 +vt 0.131034 0.666667 +vt 0.206897 0.641026 +vt 0.124138 0.307692 +vt 0.882759 0.102564 +vt 0.896552 0.102564 +vt 0.038789 0.634626 +vt 0.268966 0.230769 +vt 0.882759 0.538462 +vt 0.172414 0.320513 +vt 0.358621 0.166667 +vt 0.648276 0.358974 +vt 0.144828 0.282051 +vt 0.131034 0.358974 +vt 0.124138 0.205128 +vt 0.037931 0.615385 +vt 0.075862 0.602564 +vt 0.011214 0.634626 +vt 0.024138 0.628205 +vt 0.103448 0.602564 +vt 0.066364 0.634626 +vt 0.010345 0.615385 +vt 0.093939 0.634626 +vt 0.106897 0.628205 +vt 0.051724 0.628205 +vt 0.079310 0.628205 +vt 0.406897 0.564103 +vt 0.303448 0.166667 +vt 0.268966 0.294872 +vt 0.365517 0.346154 +vt 0.379310 0.371795 +vt 0.103448 0.012821 +vt 0.372414 0.051282 +vt 0.337931 0.038462 +vt 0.372414 0.038462 +vt 0.131034 0.012821 +vt 0.165517 0.025641 +vt 0.131034 0.025641 +vt 0.158621 0.564103 +vt 0.165517 0.641026 +vt 0.158621 0.641026 +vt 0.406897 0.051282 +vt 0.406897 0.038462 +vt 0.200000 0.051282 +vt 0.165517 0.038462 +vt 0.200000 0.038462 +vt 0.089655 0.012821 +vt 0.137931 0.564103 +vt 0.144828 0.641026 +vt 0.137931 0.641026 +vt 0.234483 0.051282 +vt 0.234483 0.038462 +vt 0.165517 0.564103 +vt 0.172414 0.641026 +vt 0.151724 0.564103 +vt 0.151724 0.641026 +vt 0.124138 0.564103 +vt 0.131034 0.641026 +vt 0.124138 0.641026 +vt 0.441379 0.012821 +vt 0.475862 0.025641 +vt 0.441379 0.025641 +vt 0.075862 0.012821 +vt 0.268966 0.012821 +vt 0.303448 0.025641 +vt 0.268966 0.025641 +vt 0.048276 0.012821 +vt 0.475862 0.012821 +vt 0.510345 0.025641 +vt 0.165517 0.051282 +vt 0.131034 0.038462 +vt 0.544828 0.051282 +vt 0.510345 0.038462 +vt 0.544828 0.038462 +vt 0.200000 0.012821 +vt 0.234483 0.025641 +vt 0.200000 0.025641 +vt 0.406897 0.012821 +vt 0.406897 0.025641 +vt 0.172414 0.564103 +vt 0.179310 0.641026 +vt 0.510345 0.012821 +vt 0.544828 0.025641 +vt 0.372414 0.012821 +vt 0.372414 0.025641 +vt 0.131034 0.564103 +vt 0.144828 0.564103 +vt 0.303448 0.012821 +vt 0.337931 0.025641 +vt 0.337931 0.012821 +vt 0.234483 0.012821 +vt 0.117241 0.012821 +vt 0.337931 0.051282 +vt 0.303448 0.038462 +vt 0.268966 0.051282 +vt 0.268966 0.038462 +vt 0.062069 0.012821 +vt 0.510345 0.051282 +vt 0.475862 0.038462 +vt 0.441379 0.051282 +vt 0.441379 0.038462 +vt 0.475862 0.051282 +vt 0.020690 0.012821 +vt 0.034483 0.012821 +vt 0.165517 0.012821 +vt 0.303448 0.051282 +vt 0.131034 0.051282 +vt 0.179310 0.564103 +vt 0.544828 0.012821 +vt 0.006897 0.012821 +vn 0.3809 0.0000 0.9246 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9239 0.3827 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.3809 0.0000 -0.9246 +vn -0.3827 0.9239 0.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9246 0.0000 0.3809 +vn 0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.9239 -0.3827 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.8660 0.5000 0.0000 +s off +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 10/7/3 12/8/3 9/9/3 +f 14/10/4 16/11/4 13/12/4 +f 19/13/5 20/14/5 21/15/5 +f 20/14/3 23/16/3 24/17/3 +f 26/18/3 28/19/3 29/20/3 +f 30/21/6 32/22/6 33/23/6 +f 35/24/3 37/25/3 34/26/3 +f 34/27/3 38/28/3 39/29/3 +f 40/30/4 42/31/4 43/32/4 +f 44/33/3 36/34/3 35/35/3 +f 47/36/6 49/37/6 46/38/6 +f 51/39/6 53/40/6 50/41/6 +f 54/42/6 56/43/6 57/44/6 +f 57/44/6 59/45/6 54/46/6 +f 60/47/6 58/48/6 61/49/6 +f 63/50/3 65/51/3 62/52/3 +f 48/53/6 55/54/6 49/55/6 +f 66/56/7 68/57/7 11/58/7 +f 70/59/8 72/60/8 69/61/8 +f 74/62/5 76/63/5 73/64/5 +f 78/65/9 80/66/9 77/67/9 +f 82/68/10 84/69/10 81/70/10 +f 86/71/5 88/72/5 85/73/5 +f 90/74/6 92/75/6 89/76/6 +f 94/77/3 96/78/3 93/79/3 +f 98/80/3 62/81/3 97/82/3 +f 91/83/6 46/84/6 92/85/6 +f 99/86/3 98/80/3 97/87/3 +f 29/88/3 100/89/3 99/90/3 +f 50/91/6 61/49/6 51/39/6 +f 39/92/3 27/93/3 26/94/3 +f 101/95/6 90/74/6 89/96/6 +f 104/97/3 106/98/3 103/99/3 +f 64/100/3 93/101/3 65/102/3 +f 95/103/3 44/104/3 96/105/3 +f 107/106/6 52/107/6 108/108/6 +f 109/109/3 75/110/3 74/111/3 +f 112/112/11 114/113/11 111/114/11 +f 77/115/12 116/116/12 78/65/12 +f 5/6/4 118/117/4 117/118/4 +f 120/119/3 122/120/3 119/121/3 +f 25/122/3 124/123/3 123/124/3 +f 21/15/6 125/125/6 126/126/6 +f 108/108/6 101/127/6 107/128/6 +f 118/129/5 8/130/5 7/131/5 +f 130/132/6 131/133/6 88/72/6 +f 132/134/5 133/135/5 130/136/5 +f 134/137/4 136/138/4 137/139/4 +f 69/140/13 113/141/13 112/112/13 +f 18/142/3 23/16/3 19/143/3 +f 139/144/10 110/145/10 109/146/10 +f 119/121/5 142/147/5 141/148/5 +f 132/134/4 145/149/4 143/150/4 +f 86/151/4 85/73/4 131/133/4 +f 144/152/10 40/153/10 145/149/10 +f 146/154/14 148/155/14 9/156/14 +f 150/157/5 152/158/5 149/159/5 +f 153/160/15 155/161/15 12/162/15 +f 151/163/16 83/164/16 152/165/16 +f 157/166/17 159/167/17 156/168/17 +f 10/169/18 67/170/18 66/56/18 +f 87/171/19 126/172/19 125/173/19 +f 75/110/16 140/174/16 76/63/16 +f 9/156/20 162/175/20 161/176/20 +f 164/177/21 115/178/21 163/179/21 +f 79/180/22 163/181/22 80/182/22 +f 166/183/11 168/184/11 165/185/11 +f 6/4/3 170/186/3 7/131/3 +f 172/187/16 125/125/16 20/14/16 +f 25/188/10 173/189/10 171/190/10 +f 156/191/23 3/192/23 2/1/23 +f 79/180/3 116/116/3 164/177/3 +f 114/113/16 72/193/16 71/194/16 +f 111/114/19 71/195/19 70/59/19 +f 173/196/6 174/197/6 43/198/6 +f 69/199/4 111/114/4 70/200/4 +f 168/184/16 176/201/16 175/202/16 +f 177/203/10 121/204/10 120/119/10 +f 170/186/16 180/205/16 179/206/16 +f 81/70/4 149/207/4 82/208/4 +f 179/209/5 7/131/5 170/186/5 +f 120/119/4 141/210/4 177/211/4 +f 73/212/6 140/174/6 139/213/6 +f 181/214/4 165/185/4 182/215/4 +f 4/2/16 159/216/16 158/217/16 +f 81/70/3 151/163/3 150/157/3 +f 12/218/24 147/219/24 146/154/24 +f 122/120/16 178/220/16 142/221/16 +f 183/222/4 185/223/4 186/224/4 +f 183/225/4 187/226/4 188/227/4 +f 187/226/4 190/228/4 188/229/4 +f 191/230/4 193/231/4 194/232/4 +f 190/233/4 195/234/4 196/235/4 +f 191/236/4 136/237/4 135/238/4 +f 198/239/4 200/240/4 197/241/4 +f 201/242/4 203/243/4 204/244/4 +f 161/176/25 160/245/25 10/169/25 +f 144/152/26 130/246/26 41/247/26 +f 195/234/4 198/248/4 196/249/4 +f 205/250/4 200/251/4 206/252/4 +f 205/253/4 185/223/4 184/254/4 +f 207/255/4 209/256/4 210/257/4 +f 207/258/4 193/259/4 192/260/4 +f 134/261/4 203/262/4 202/263/4 +f 201/264/4 209/265/4 208/266/4 +f 2/1/4 157/166/4 156/168/4 +f 11/58/27 154/267/27 153/160/27 +f 43/268/11 212/269/11 172/270/11 +f 182/271/8 176/272/8 181/273/8 +f 118/274/6 180/275/6 117/276/6 +f 181/277/13 167/278/13 166/183/13 +f 165/185/19 175/279/19 182/271/19 +f 106/98/3 213/280/3 103/99/3 +f 213/280/3 214/281/3 103/99/3 +f 214/281/3 215/282/3 103/99/3 +f 103/99/3 216/283/3 104/97/3 +f 104/97/3 217/284/3 105/285/3 +f 105/285/3 218/286/3 219/287/3 +f 219/287/3 220/288/3 105/285/3 +f 220/288/3 106/98/3 105/285/3 +f 30/21/6 221/289/6 31/290/6 +f 31/290/6 222/291/6 32/22/6 +f 32/22/6 223/292/6 224/293/6 +f 224/293/6 225/294/6 32/22/6 +f 225/294/6 33/23/6 32/22/6 +f 33/23/6 226/295/6 227/296/6 +f 227/296/6 228/297/6 33/23/6 +f 228/297/6 30/21/6 33/23/6 +f 6/4/10 5/298/10 117/276/10 +f 180/275/10 6/4/10 117/276/10 +f 133/299/4 131/133/4 130/132/4 +f 132/134/5 143/150/5 133/135/5 +f 212/269/10 129/300/10 128/301/10 +f 42/31/4 129/300/4 211/302/4 +f 211/302/4 43/32/4 42/31/4 +f 126/303/4 86/151/4 131/133/4 +f 144/152/10 41/304/10 40/153/10 +f 9/9/3 161/305/3 10/7/3 +f 10/7/3 66/306/3 11/307/3 +f 11/307/3 153/308/3 12/8/3 +f 12/8/3 146/309/3 9/9/3 +f 13/12/4 229/310/4 14/10/4 +f 14/10/4 230/311/4 15/312/4 +f 15/312/4 231/313/4 16/11/4 +f 16/11/4 232/314/4 13/12/4 +f 88/72/16 87/315/16 125/316/16 +f 2/1/1 3/192/1 4/2/1 +f 6/4/2 7/131/2 8/5/2 +f 10/7/3 11/307/3 12/8/3 +f 14/10/4 15/312/4 16/11/4 +f 21/15/5 17/317/5 19/13/5 +f 17/317/5 18/318/5 19/13/5 +f 25/122/3 22/319/3 24/17/3 +f 22/319/3 20/14/3 24/17/3 +f 20/14/3 19/143/3 23/16/3 +f 26/18/3 27/93/3 28/19/3 +f 30/21/6 31/290/6 32/22/6 +f 35/24/3 36/34/3 37/25/3 +f 34/27/3 37/25/3 38/28/3 +f 40/30/4 41/320/4 42/31/4 +f 44/33/3 45/321/3 36/34/3 +f 47/36/6 48/53/6 49/37/6 +f 51/39/6 52/107/6 53/40/6 +f 54/42/6 55/322/6 56/43/6 +f 57/44/6 58/48/6 59/45/6 +f 60/47/6 59/323/6 58/48/6 +f 63/50/3 64/100/3 65/51/3 +f 48/53/6 56/43/6 55/54/6 +f 66/56/7 67/170/7 68/57/7 +f 70/59/8 71/195/8 72/60/8 +f 74/62/5 75/110/5 76/63/5 +f 78/65/9 79/180/9 80/66/9 +f 82/68/10 83/324/10 84/69/10 +f 86/71/5 87/171/5 88/72/5 +f 90/74/6 91/83/6 92/75/6 +f 94/77/3 95/103/3 96/78/3 +f 98/80/3 63/50/3 62/81/3 +f 91/83/6 47/325/6 46/84/6 +f 99/86/3 100/89/3 98/80/3 +f 29/88/3 28/326/3 100/89/3 +f 50/91/6 60/327/6 61/49/6 +f 39/92/3 38/28/3 27/93/3 +f 101/95/6 102/328/6 90/74/6 +f 104/97/3 105/285/3 106/98/3 +f 64/100/3 94/77/3 93/101/3 +f 95/103/3 45/321/3 44/104/3 +f 107/106/6 53/329/6 52/107/6 +f 109/109/3 110/145/3 75/110/3 +f 112/112/11 113/141/11 114/113/11 +f 77/115/12 115/330/12 116/116/12 +f 5/6/4 8/5/4 118/117/4 +f 120/119/3 121/204/3 122/120/3 +f 25/122/3 24/17/3 124/123/3 +f 127/331/6 17/332/6 126/126/6 +f 17/332/6 21/15/6 126/126/6 +f 108/108/6 102/328/6 101/127/6 +f 88/72/6 128/301/6 41/320/6 +f 128/301/6 129/300/6 42/31/6 +f 42/31/6 41/320/6 128/301/6 +f 41/320/6 130/132/6 88/72/6 +f 131/133/6 85/73/6 88/72/6 +f 134/137/4 135/333/4 136/138/4 +f 69/140/13 72/334/13 113/141/13 +f 18/142/3 138/335/3 23/16/3 +f 139/144/10 140/174/10 110/145/10 +f 119/121/5 122/120/5 142/147/5 +f 132/134/4 144/152/4 145/149/4 +f 146/154/14 147/219/14 148/155/14 +f 150/157/5 151/163/5 152/158/5 +f 153/160/15 154/267/15 155/161/15 +f 151/163/16 84/69/16 83/164/16 +f 157/166/17 158/336/17 159/167/17 +f 10/169/18 160/245/18 67/170/18 +f 87/171/19 86/71/19 126/172/19 +f 75/110/16 110/145/16 140/174/16 +f 9/156/20 148/155/20 162/175/20 +f 164/177/21 116/116/21 115/178/21 +f 79/180/22 164/177/22 163/181/22 +f 166/183/11 167/278/11 168/184/11 +f 6/4/3 169/337/3 170/186/3 +f 125/125/16 21/15/16 20/14/16 +f 20/14/16 22/319/16 172/187/16 +f 22/319/16 171/190/16 172/187/16 +f 171/190/10 22/319/10 25/188/10 +f 25/188/10 123/338/10 173/189/10 +f 156/191/23 159/339/23 3/192/23 +f 79/180/3 78/65/3 116/116/3 +f 114/113/16 113/141/16 72/193/16 +f 111/114/19 114/113/19 71/195/19 +f 172/187/6 171/190/6 43/198/6 +f 171/190/6 173/196/6 43/198/6 +f 69/199/4 112/112/4 111/114/4 +f 168/184/16 167/278/16 176/201/16 +f 177/203/10 178/340/10 121/204/10 +f 170/186/16 169/337/16 180/205/16 +f 81/70/4 150/157/4 149/207/4 +f 179/209/5 118/129/5 7/131/5 +f 120/119/4 119/121/4 141/210/4 +f 73/212/6 76/63/6 140/174/6 +f 181/214/4 166/183/4 165/185/4 +f 4/2/16 3/192/16 159/216/16 +f 81/70/3 84/69/3 151/163/3 +f 12/218/24 155/341/24 147/219/24 +f 122/120/16 121/204/16 178/220/16 +f 183/222/4 184/342/4 185/223/4 +f 183/225/4 186/224/4 187/226/4 +f 187/226/4 189/343/4 190/228/4 +f 191/230/4 192/344/4 193/231/4 +f 190/233/4 189/343/4 195/234/4 +f 191/236/4 194/345/4 136/237/4 +f 198/239/4 199/346/4 200/240/4 +f 201/242/4 202/347/4 203/243/4 +f 161/176/25 162/175/25 160/245/25 +f 144/152/26 132/134/26 130/246/26 +f 195/234/4 199/346/4 198/248/4 +f 205/250/4 197/348/4 200/251/4 +f 205/253/4 206/252/4 185/223/4 +f 207/255/4 208/349/4 209/256/4 +f 207/258/4 210/350/4 193/259/4 +f 134/261/4 137/351/4 203/262/4 +f 201/264/4 204/352/4 209/265/4 +f 2/1/4 1/3/4 157/166/4 +f 11/58/27 68/57/27 154/267/27 +f 43/268/11 211/353/11 212/269/11 +f 182/271/8 175/279/8 176/272/8 +f 118/274/6 179/354/6 180/275/6 +f 181/277/13 176/355/13 167/278/13 +f 165/185/19 168/184/19 175/279/19 +f 180/275/10 169/337/10 6/4/10 +f 133/299/4 126/303/4 131/133/4 +f 212/269/10 211/353/10 129/300/10 +f 125/316/16 172/356/16 128/301/16 +f 172/356/16 212/357/16 128/301/16 +f 128/301/16 88/72/16 125/316/16 +s 1 +f 95/103/4 61/49/28 45/321/28 +f 36/34/29 57/44/10 37/25/10 +f 195/234/5 234/358/8 199/346/8 +f 94/77/30 51/39/4 95/103/4 +f 27/93/31 47/36/16 28/19/16 +f 100/89/32 47/325/16 91/83/32 +f 215/359/28 96/360/4 44/361/28 +f 225/362/16 92/363/32 46/364/16 +f 231/365/8 135/366/5 134/367/8 +f 103/368/29 44/361/28 35/369/29 +f 204/244/19 188/229/3 190/228/19 +f 219/370/33 99/371/32 97/372/33 +f 37/25/10 56/43/34 38/28/34 +f 203/262/3 183/225/11 188/227/3 +f 189/343/19 233/373/5 195/234/5 +f 13/374/10 201/375/13 208/376/10 +f 220/377/5 97/372/33 62/378/5 +f 15/379/5 191/380/19 135/366/5 +f 137/139/11 184/342/10 183/222/11 +f 16/381/6 134/367/8 202/382/6 +f 136/237/10 205/253/13 184/254/10 +f 98/80/33 102/328/5 63/50/5 +f 36/34/29 61/49/28 58/48/29 +f 14/383/3 207/384/11 192/385/3 +f 227/386/10 55/387/34 54/388/10 +f 187/226/3 235/389/19 189/343/19 +f 222/390/35 53/391/30 107/392/35 +f 185/223/10 238/393/11 186/224/11 +f 226/394/34 49/395/31 55/387/34 +f 193/259/6 198/239/8 197/241/6 +f 218/396/32 29/397/16 99/371/32 +f 105/398/16 26/399/31 29/400/16 +f 223/401/33 101/402/5 89/403/33 +f 228/404/29 54/388/10 59/405/29 +f 230/406/19 192/407/3 191/380/19 +f 33/408/31 46/409/16 49/395/31 +f 30/410/28 59/405/29 60/411/28 +f 38/28/34 48/53/31 27/93/31 +f 63/50/5 108/108/35 64/100/35 +f 229/412/11 208/376/10 207/384/11 +f 209/265/5 190/233/19 196/235/5 +f 232/413/13 202/382/6 201/375/13 +f 31/414/30 50/415/4 53/391/30 +f 221/416/4 60/411/28 50/415/4 +f 210/257/8 196/249/5 198/248/8 +f 32/417/5 107/392/35 101/402/5 +f 199/346/8 239/418/6 200/240/6 +f 214/419/4 93/420/30 96/360/4 +f 106/421/35 62/378/5 65/422/35 +f 194/232/13 197/348/6 205/250/13 +f 98/80/33 91/83/32 90/74/33 +f 64/100/35 52/107/30 94/77/30 +f 186/224/11 236/423/3 187/226/3 +f 217/424/31 39/425/34 26/399/31 +f 216/426/10 35/369/29 34/427/10 +f 104/428/34 34/427/10 39/425/34 +f 200/251/6 240/429/13 206/252/13 +f 206/252/13 237/430/10 185/223/10 +f 224/431/32 89/403/33 92/363/32 +f 213/432/30 65/422/35 93/420/30 +f 95/103/4 51/39/4 61/49/28 +f 36/34/29 58/48/29 57/44/10 +f 195/234/5 233/373/5 234/358/8 +f 94/77/30 52/107/30 51/39/4 +f 27/93/31 48/53/31 47/36/16 +f 100/89/32 28/326/16 47/325/16 +f 215/359/28 214/419/4 96/360/4 +f 225/362/16 224/431/32 92/363/32 +f 231/365/8 15/379/5 135/366/5 +f 103/368/29 215/359/28 44/361/28 +f 204/244/19 203/243/3 188/229/3 +f 219/370/33 218/396/32 99/371/32 +f 37/25/10 57/44/10 56/43/34 +f 203/262/3 137/351/11 183/225/11 +f 189/343/19 235/389/19 233/373/5 +f 13/374/10 232/413/13 201/375/13 +f 220/377/5 219/370/33 97/372/33 +f 15/379/5 230/406/19 191/380/19 +f 137/139/11 136/138/10 184/342/10 +f 16/381/6 231/365/8 134/367/8 +f 136/237/10 194/345/13 205/253/13 +f 98/80/33 90/74/33 102/328/5 +f 36/34/29 45/321/28 61/49/28 +f 14/383/3 229/412/11 207/384/11 +f 227/386/10 226/394/34 55/387/34 +f 187/226/3 236/423/3 235/389/19 +f 222/390/35 31/414/30 53/391/30 +f 185/223/10 237/430/10 238/393/11 +f 226/394/34 33/408/31 49/395/31 +f 193/259/6 210/350/8 198/239/8 +f 218/396/32 105/433/16 29/397/16 +f 105/398/16 217/424/31 26/399/31 +f 223/401/33 32/417/5 101/402/5 +f 228/404/29 227/386/10 54/388/10 +f 230/406/19 14/434/3 192/407/3 +f 33/408/31 225/435/16 46/409/16 +f 30/410/28 228/404/29 59/405/29 +f 38/28/34 56/43/34 48/53/31 +f 63/50/5 102/328/5 108/108/35 +f 229/412/11 13/374/10 208/376/10 +f 209/265/5 204/352/19 190/233/19 +f 232/413/13 16/381/6 202/382/6 +f 31/414/30 221/416/4 50/415/4 +f 221/416/4 30/410/28 60/411/28 +f 210/257/8 209/256/5 196/249/5 +f 32/417/5 222/390/35 107/392/35 +f 199/346/8 234/358/8 239/418/6 +f 214/419/4 213/432/30 93/420/30 +f 106/421/35 220/377/5 62/378/5 +f 194/232/13 193/231/6 197/348/6 +f 98/80/33 100/89/32 91/83/32 +f 64/100/35 108/108/35 52/107/30 +f 186/224/11 238/393/11 236/423/3 +f 217/424/31 104/428/34 39/425/34 +f 216/426/10 103/368/29 35/369/29 +f 104/428/34 216/426/10 34/427/10 +f 200/251/6 239/436/6 240/429/13 +f 206/252/13 240/429/13 237/430/10 +f 224/431/32 223/401/33 89/403/33 +f 213/432/30 106/421/35 65/422/35 diff --git a/src/main/resources/assets/hbm/models/missile_abm.obj b/src/main/resources/assets/hbm/models/missile_abm.obj new file mode 100644 index 000000000..1cc213eba --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_abm.obj @@ -0,0 +1,2124 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_abm.blend' +# www.blender.org +o Circle +v -0.000000 7.000000 -0.375000 +v -0.143506 7.000000 -0.346455 +v -0.265165 7.000000 -0.265165 +v -0.346455 7.000000 -0.143506 +v -0.375000 7.000000 0.000000 +v -0.346455 7.000000 0.143506 +v -0.265165 7.000000 0.265165 +v -0.143506 7.000000 0.346455 +v -0.000000 7.000000 0.375000 +v 0.143506 7.000000 0.346455 +v 0.265165 7.000000 0.265165 +v 0.346455 7.000000 0.143506 +v 0.375000 7.000000 -0.000000 +v 0.346455 7.000000 -0.143506 +v 0.265165 7.000000 -0.265165 +v 0.143506 7.000000 -0.346455 +v -0.000000 8.500000 0.000000 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 +v -0.000000 4.500000 -0.250000 +v -0.095671 4.500000 -0.230970 +v -0.176777 4.500000 -0.176777 +v -0.230970 4.500000 -0.095671 +v -0.250000 4.500000 0.000000 +v -0.230970 4.500000 0.095671 +v -0.176777 4.500000 0.176777 +v -0.095671 4.500000 0.230970 +v -0.000000 4.500000 0.250000 +v 0.095671 4.500000 0.230970 +v 0.176777 4.500000 0.176777 +v 0.230970 4.500000 0.095671 +v 0.250000 4.500000 -0.000000 +v 0.230970 4.500000 -0.095671 +v 0.176777 4.500000 -0.176777 +v 0.095671 4.500000 -0.230970 +v -0.000000 1.500000 -0.250000 +v -0.095671 1.500000 -0.230970 +v -0.176777 1.500000 -0.176777 +v -0.230970 1.500000 -0.095671 +v -0.250000 1.500000 0.000000 +v -0.230970 1.500000 0.095671 +v -0.176777 1.500000 0.176777 +v -0.095671 1.500000 0.230970 +v -0.000000 1.500000 0.250000 +v 0.095671 1.500000 0.230970 +v 0.176777 1.500000 0.176777 +v 0.230970 1.500000 0.095671 +v 0.250000 1.500000 -0.000000 +v 0.230970 1.500000 -0.095671 +v 0.176777 1.500000 -0.176777 +v 0.095671 1.500000 -0.230970 +v -0.000000 0.250000 -0.250000 +v 0.019030 0.250000 -0.154329 +v 0.073223 0.250000 -0.073223 +v 0.154329 0.250000 -0.019030 +v 0.250000 0.250000 0.000000 +v 0.345671 0.250000 -0.019030 +v 0.426777 0.250000 -0.073223 +v 0.480970 0.250000 -0.154329 +v 0.500000 0.250000 -0.250000 +v 0.480970 0.250000 -0.345671 +v 0.426777 0.250000 -0.426777 +v 0.345671 0.250000 -0.480970 +v 0.250000 0.250000 -0.500000 +v 0.154329 0.250000 -0.480970 +v 0.073223 0.250000 -0.426777 +v 0.019030 0.250000 -0.345671 +v -0.000000 1.500000 -0.250000 +v 0.019030 1.500000 -0.154329 +v 0.073223 1.500000 -0.073223 +v 0.154329 1.500000 -0.019030 +v 0.250000 1.500000 0.000000 +v 0.345671 1.500000 -0.019030 +v 0.426777 1.500000 -0.073223 +v 0.480970 1.500000 -0.154329 +v 0.500000 1.500000 -0.250000 +v 0.480970 1.500000 -0.345671 +v 0.426777 1.500000 -0.426777 +v 0.345671 1.500000 -0.480970 +v 0.250000 1.500000 -0.500000 +v 0.154329 1.500000 -0.480970 +v 0.073223 1.500000 -0.426777 +v 0.019030 1.500000 -0.345671 +v 0.125000 2.500000 -0.125000 +v 0.125000 0.250000 -0.250000 +v 0.134515 0.250000 -0.202165 +v 0.161612 0.250000 -0.161612 +v 0.202165 0.250000 -0.134515 +v 0.250000 0.250000 -0.125000 +v 0.297835 0.250000 -0.134515 +v 0.338388 0.250000 -0.161612 +v 0.365485 0.250000 -0.202165 +v 0.375000 0.250000 -0.250000 +v 0.365485 0.250000 -0.297835 +v 0.338388 0.250000 -0.338388 +v 0.297835 0.250000 -0.365485 +v 0.250000 0.250000 -0.375000 +v 0.202165 0.250000 -0.365485 +v 0.161612 0.250000 -0.338388 +v 0.134515 0.250000 -0.297835 +v -0.000000 0.000000 -0.250000 +v 0.019030 0.000000 -0.154329 +v 0.073223 0.000000 -0.073223 +v 0.154329 0.000000 -0.019030 +v 0.250000 0.000000 0.000000 +v 0.345671 0.000000 -0.019030 +v 0.426777 0.000000 -0.073223 +v 0.480970 0.000000 -0.154329 +v 0.500000 0.000000 -0.250000 +v 0.480970 0.000000 -0.345671 +v 0.426777 0.000000 -0.426777 +v 0.345671 0.000000 -0.480970 +v 0.250000 0.000000 -0.500000 +v 0.154329 0.000000 -0.480970 +v 0.073223 0.000000 -0.426777 +v 0.019030 0.000000 -0.345671 +v 0.000000 5.500000 -0.875000 +v 0.000000 4.500000 -0.875000 +v -0.031250 6.000000 -0.125000 +v -0.031250 4.000000 -0.125000 +v 0.031250 6.000000 -0.125000 +v 0.031250 4.000000 -0.125000 +v 0.031250 0.500000 -0.125000 +v 0.031250 2.500000 -0.125000 +v -0.031250 0.500000 -0.125000 +v -0.031250 2.500000 -0.125000 +v 0.000000 0.500000 -1.125000 +v 0.000000 2.000000 -1.125000 +v -0.062500 4.250000 -0.875000 +v -0.062500 5.750000 -0.875000 +v -0.031250 4.250000 -0.929127 +v -0.031250 5.750000 -0.929127 +v 0.031250 4.250000 -0.929127 +v 0.031250 5.750000 -0.929127 +v 0.062500 4.250000 -0.875000 +v 0.062500 5.750000 -0.875000 +v 0.031250 4.250000 -0.820873 +v 0.031250 5.750000 -0.820873 +v -0.031250 4.250000 -0.820873 +v -0.031250 5.750000 -0.820873 +v 0.000000 0.250000 0.250000 +v -0.019030 0.250000 0.154329 +v -0.073223 0.250000 0.073223 +v -0.154329 0.250000 0.019030 +v -0.250000 0.250000 0.000000 +v -0.345671 0.250000 0.019030 +v -0.426777 0.250000 0.073223 +v -0.480970 0.250000 0.154329 +v -0.500000 0.250000 0.250000 +v -0.480970 0.250000 0.345671 +v -0.426777 0.250000 0.426777 +v -0.345671 0.250000 0.480970 +v -0.250000 0.250000 0.500000 +v -0.154329 0.250000 0.480970 +v -0.073223 0.250000 0.426777 +v -0.019030 0.250000 0.345671 +v 0.000000 1.500000 0.250000 +v -0.019030 1.500000 0.154329 +v -0.073223 1.500000 0.073223 +v -0.154329 1.500000 0.019030 +v -0.250000 1.500000 0.000000 +v -0.345671 1.500000 0.019030 +v -0.426777 1.500000 0.073223 +v -0.480970 1.500000 0.154329 +v -0.500000 1.500000 0.250000 +v -0.480970 1.500000 0.345671 +v -0.426777 1.500000 0.426777 +v -0.345671 1.500000 0.480970 +v -0.250000 1.500000 0.500000 +v -0.154329 1.500000 0.480970 +v -0.073223 1.500000 0.426777 +v -0.019030 1.500000 0.345671 +v -0.125000 2.500000 0.125000 +v -0.125000 0.250000 0.250000 +v -0.134515 0.250000 0.202165 +v -0.161612 0.250000 0.161612 +v -0.202165 0.250000 0.134515 +v -0.250000 0.250000 0.125000 +v -0.297835 0.250000 0.134515 +v -0.338388 0.250000 0.161612 +v -0.365485 0.250000 0.202165 +v -0.375000 0.250000 0.250000 +v -0.365485 0.250000 0.297835 +v -0.338388 0.250000 0.338388 +v -0.297835 0.250000 0.365485 +v -0.250000 0.250000 0.375000 +v -0.202164 0.250000 0.365485 +v -0.161612 0.250000 0.338388 +v -0.134515 0.250000 0.297835 +v 0.000000 0.000000 0.250000 +v -0.019030 0.000000 0.154329 +v -0.073223 0.000000 0.073223 +v -0.154329 0.000000 0.019030 +v -0.250000 0.000000 0.000000 +v -0.345671 0.000000 0.019030 +v -0.426777 0.000000 0.073223 +v -0.480970 0.000000 0.154329 +v -0.500000 0.000000 0.250000 +v -0.480970 0.000000 0.345671 +v -0.426777 0.000000 0.426777 +v -0.345671 0.000000 0.480970 +v -0.250000 0.000000 0.500000 +v -0.154329 0.000000 0.480970 +v -0.073223 0.000000 0.426777 +v -0.019030 0.000000 0.345671 +v -0.031250 0.500000 0.125000 +v -0.031250 2.500000 0.125000 +v 0.031250 0.500000 0.125000 +v 0.031250 2.500000 0.125000 +v 0.000000 0.500000 1.125000 +v 0.000000 2.000000 1.125000 +v -0.250000 0.250000 0.000000 +v -0.154329 0.250000 -0.019030 +v -0.073223 0.250000 -0.073223 +v -0.019030 0.250000 -0.154329 +v -0.000000 0.250000 -0.250000 +v -0.019030 0.250000 -0.345671 +v -0.073223 0.250000 -0.426777 +v -0.154329 0.250000 -0.480970 +v -0.250000 0.250000 -0.500000 +v -0.345671 0.250000 -0.480970 +v -0.426777 0.250000 -0.426777 +v -0.480970 0.250000 -0.345671 +v -0.500000 0.250000 -0.250000 +v -0.480970 0.250000 -0.154329 +v -0.426777 0.250000 -0.073223 +v -0.345671 0.250000 -0.019030 +v -0.250000 1.500000 0.000000 +v -0.154329 1.500000 -0.019030 +v -0.073223 1.500000 -0.073223 +v -0.019030 1.500000 -0.154329 +v -0.000000 1.500000 -0.250000 +v -0.019030 1.500000 -0.345671 +v -0.073223 1.500000 -0.426777 +v -0.154329 1.500000 -0.480970 +v -0.250000 1.500000 -0.500000 +v -0.345671 1.500000 -0.480970 +v -0.426777 1.500000 -0.426777 +v -0.480970 1.500000 -0.345671 +v -0.500000 1.500000 -0.250000 +v -0.480970 1.500000 -0.154329 +v -0.426777 1.500000 -0.073223 +v -0.345671 1.500000 -0.019030 +v -0.125000 2.500000 -0.125000 +v -0.250000 0.250000 -0.125000 +v -0.202165 0.250000 -0.134515 +v -0.161612 0.250000 -0.161612 +v -0.134515 0.250000 -0.202165 +v -0.125000 0.250000 -0.250000 +v -0.134515 0.250000 -0.297835 +v -0.161612 0.250000 -0.338388 +v -0.202165 0.250000 -0.365485 +v -0.250000 0.250000 -0.375000 +v -0.297835 0.250000 -0.365485 +v -0.338388 0.250000 -0.338388 +v -0.365485 0.250000 -0.297835 +v -0.375000 0.250000 -0.250000 +v -0.365485 0.250000 -0.202164 +v -0.338388 0.250000 -0.161612 +v -0.297835 0.250000 -0.134515 +v -0.250000 0.000000 0.000000 +v -0.154329 0.000000 -0.019030 +v -0.073223 0.000000 -0.073223 +v -0.019030 0.000000 -0.154329 +v -0.000000 0.000000 -0.250000 +v -0.019030 0.000000 -0.345671 +v -0.073223 0.000000 -0.426777 +v -0.154329 0.000000 -0.480970 +v -0.250000 0.000000 -0.500000 +v -0.345671 0.000000 -0.480970 +v -0.426777 0.000000 -0.426777 +v -0.480970 0.000000 -0.345671 +v -0.500000 0.000000 -0.250000 +v -0.480970 0.000000 -0.154329 +v -0.426777 0.000000 -0.073223 +v -0.345671 0.000000 -0.019030 +v -0.125000 0.500000 -0.031250 +v -0.125000 2.500000 -0.031250 +v -0.125000 0.500000 0.031250 +v -0.125000 2.500000 0.031250 +v -1.125000 0.500000 0.000000 +v -1.125000 2.000000 0.000000 +v 0.250000 0.250000 -0.000000 +v 0.154329 0.250000 0.019030 +v 0.073223 0.250000 0.073223 +v 0.019030 0.250000 0.154329 +v 0.000000 0.250000 0.250000 +v 0.019030 0.250000 0.345671 +v 0.073223 0.250000 0.426777 +v 0.154329 0.250000 0.480970 +v 0.250000 0.250000 0.500000 +v 0.345671 0.250000 0.480970 +v 0.426777 0.250000 0.426777 +v 0.480970 0.250000 0.345671 +v 0.500000 0.250000 0.250000 +v 0.480970 0.250000 0.154329 +v 0.426777 0.250000 0.073223 +v 0.345671 0.250000 0.019030 +v 0.250000 1.500000 -0.000000 +v 0.154329 1.500000 0.019030 +v 0.073223 1.500000 0.073223 +v 0.019030 1.500000 0.154329 +v 0.000000 1.500000 0.250000 +v 0.019030 1.500000 0.345671 +v 0.073223 1.500000 0.426777 +v 0.154329 1.500000 0.480970 +v 0.250000 1.500000 0.500000 +v 0.345671 1.500000 0.480970 +v 0.426777 1.500000 0.426777 +v 0.480970 1.500000 0.345671 +v 0.500000 1.500000 0.250000 +v 0.480970 1.500000 0.154329 +v 0.426777 1.500000 0.073223 +v 0.345671 1.500000 0.019030 +v 0.125000 2.500000 0.125000 +v 0.250000 0.250000 0.125000 +v 0.202165 0.250000 0.134515 +v 0.161612 0.250000 0.161612 +v 0.134515 0.250000 0.202165 +v 0.125000 0.250000 0.250000 +v 0.134515 0.250000 0.297835 +v 0.161612 0.250000 0.338388 +v 0.202165 0.250000 0.365485 +v 0.250000 0.250000 0.375000 +v 0.297835 0.250000 0.365485 +v 0.338388 0.250000 0.338388 +v 0.365485 0.250000 0.297835 +v 0.375000 0.250000 0.250000 +v 0.365485 0.250000 0.202164 +v 0.338388 0.250000 0.161612 +v 0.297835 0.250000 0.134515 +v 0.250000 0.000000 -0.000000 +v 0.154329 0.000000 0.019030 +v 0.073223 0.000000 0.073223 +v 0.019030 0.000000 0.154329 +v 0.000000 0.000000 0.250000 +v 0.019030 0.000000 0.345671 +v 0.073223 0.000000 0.426777 +v 0.154329 0.000000 0.480970 +v 0.250000 0.000000 0.500000 +v 0.345671 0.000000 0.480970 +v 0.426777 0.000000 0.426777 +v 0.480970 0.000000 0.345671 +v 0.500000 0.000000 0.250000 +v 0.480970 0.000000 0.154329 +v 0.426777 0.000000 0.073223 +v 0.345671 0.000000 0.019030 +v 0.125000 0.500000 0.031250 +v 0.125000 2.500000 0.031250 +v 0.125000 0.500000 -0.031250 +v 0.125000 2.500000 -0.031250 +v 1.125000 0.500000 -0.000000 +v 1.125000 2.000000 -0.000000 +v 0.000000 5.500000 0.875000 +v 0.000000 4.500000 0.875000 +v 0.031250 6.000000 0.125000 +v 0.031250 4.000000 0.125000 +v -0.031250 6.000000 0.125000 +v -0.031250 4.000000 0.125000 +v 0.062500 4.250000 0.875000 +v 0.062500 5.750000 0.875000 +v 0.031250 4.250000 0.929127 +v 0.031250 5.750000 0.929127 +v -0.031250 4.250000 0.929127 +v -0.031250 5.750000 0.929127 +v -0.062500 4.250000 0.875000 +v -0.062500 5.750000 0.875000 +v -0.031250 4.250000 0.820873 +v -0.031250 5.750000 0.820873 +v 0.031250 4.250000 0.820873 +v 0.031250 5.750000 0.820873 +v -0.875000 5.500000 0.000000 +v -0.875000 4.500000 0.000000 +v -0.125000 6.000000 0.031250 +v -0.125000 4.000000 0.031250 +v -0.125000 6.000000 -0.031250 +v -0.125000 4.000000 -0.031250 +v -0.875000 4.250000 0.062500 +v -0.875000 5.750000 0.062500 +v -0.929127 4.250000 0.031250 +v -0.929127 5.750000 0.031250 +v -0.929127 4.250000 -0.031250 +v -0.929127 5.750000 -0.031250 +v -0.875000 4.250000 -0.062500 +v -0.875000 5.750000 -0.062500 +v -0.820873 4.250000 -0.031250 +v -0.820873 5.750000 -0.031250 +v -0.820873 4.250000 0.031250 +v -0.820873 5.750000 0.031250 +v 0.875000 5.500000 -0.000000 +v 0.875000 4.500000 -0.000000 +v 0.125000 6.000000 -0.031250 +v 0.125000 4.000000 -0.031250 +v 0.125000 6.000000 0.031250 +v 0.125000 4.000000 0.031250 +v 0.875000 4.250000 -0.062500 +v 0.875000 5.750000 -0.062500 +v 0.929127 4.250000 -0.031250 +v 0.929127 5.750000 -0.031250 +v 0.929127 4.250000 0.031250 +v 0.929127 5.750000 0.031250 +v 0.875000 4.250000 0.062500 +v 0.875000 5.750000 0.062500 +v 0.820873 4.250000 0.031250 +v 0.820873 5.750000 0.031250 +v 0.820873 4.250000 -0.031250 +v 0.820873 5.750000 -0.031250 +vt 0.720253 0.439829 +vt 0.720253 0.488743 +vt 0.648168 0.488743 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.633240 0.535715 +vt 0.648169 0.511257 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.671053 0.035714 +vt 0.684211 0.053571 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.763158 0.035714 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.946709 0.330357 +vt 0.940460 0.337702 +vt 0.921712 0.330357 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.731302 0.451050 +vt 0.735182 0.464286 +vt 0.731302 0.477522 +vt 0.703716 0.496241 +vt 0.684211 0.498873 +vt 0.664705 0.496241 +vt 0.637119 0.477522 +vt 0.633239 0.464286 +vt 0.637119 0.451050 +vt 0.648169 0.439829 +vt 0.664705 0.432331 +vt 0.684211 0.429698 +vt 0.703716 0.432331 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.684211 0.570302 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.657895 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.940460 0.323013 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.842105 0.294643 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.434211 0.785714 +vt 0.473684 0.785714 +vt 0.447368 1.000000 +vt 0.394737 0.785714 +vt 0.407895 1.000000 +vt 0.355263 0.785714 +vt 0.368421 1.000000 +vt 0.315789 0.785714 +vt 0.328947 1.000000 +vt 0.276316 0.785714 +vt 0.289474 1.000000 +vt 0.236842 0.785714 +vt 0.250000 1.000000 +vt 0.197368 0.785714 +vt 0.210526 1.000000 +vt 0.157895 0.785714 +vt 0.171053 1.000000 +vt 0.131579 1.000000 +vt 0.118421 0.785714 +vt 0.078947 0.785714 +vt 0.092105 1.000000 +vt 0.039474 0.785714 +vt 0.052632 1.000000 +vt 0.000000 0.785714 +vt 0.013158 1.000000 +vt 0.592105 0.785714 +vt 0.631579 0.785714 +vt 0.605263 1.000000 +vt 0.552632 0.785714 +vt 0.565789 1.000000 +vt 0.513158 0.785714 +vt 0.526316 1.000000 +vt 0.486842 1.000000 +vt 0.631579 0.571429 +vt 0.315789 0.571429 +vt 0.039474 0.571429 +vt 0.355263 0.571429 +vt 0.078947 0.571429 +vt 0.394737 0.571429 +vt 0.118421 0.571429 +vt 0.434211 0.571429 +vt 0.157895 0.571429 +vt 0.513158 0.571429 +vt 0.473684 0.571429 +vt 0.197368 0.571429 +vt 0.552632 0.571429 +vt 0.236842 0.571429 +vt 0.592105 0.571429 +vt 0.276316 0.571429 +vt 0.184211 0.428571 +vt 0.539474 0.428571 +vt 0.223684 0.428571 +vt 0.578947 0.428571 +vt 0.263158 0.428571 +vt 0.618421 0.428571 +vt 0.302632 0.428571 +vt 0.000000 0.571429 +vt 0.026316 0.428571 +vt 0.342105 0.428571 +vt 0.065789 0.428571 +vt 0.381579 0.428571 +vt 0.105263 0.428571 +vt 0.421053 0.428571 +vt 0.144737 0.428571 +vt 0.500000 0.428571 +vt 0.460526 0.428571 +vt 0.236842 0.428571 +vt 0.263158 -0.000000 +vt 0.263158 0.428571 +vt 0.052632 0.428571 +vt 0.078947 -0.000000 +vt 0.078947 0.428571 +vt 0.289474 -0.000000 +vt 0.289474 0.428571 +vt 0.105263 -0.000000 +vt 0.105263 0.428571 +vt 0.315789 0.428571 +vt 0.342105 -0.000000 +vt 0.342105 0.428571 +vt 0.315789 -0.000000 +vt 0.131579 -0.000000 +vt 0.131579 0.428571 +vt 0.368421 -0.000000 +vt 0.368421 0.428571 +vt 0.157895 -0.000000 +vt 0.157895 0.428571 +vt 0.394737 -0.000000 +vt 0.394737 0.428571 +vt 0.184211 -0.000000 +vt 0.184211 0.428571 +vt 0.421053 -0.000000 +vt 0.421053 0.428571 +vt 0.210526 -0.000000 +vt 0.210526 0.428571 +vt 0.000000 0.428571 +vt 0.026316 -0.000000 +vt 0.236842 -0.000000 +vt 0.052632 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.789474 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.605263 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.157895 0.428571 +vt 0.513158 0.428571 +vt 0.197368 0.428571 +vt 0.552632 0.428571 +vt 0.236842 0.428571 +vt 0.592105 0.428571 +vt 0.276316 0.428571 +vt 0.315789 0.428571 +vt 0.039474 0.428571 +vt 0.355263 0.428571 +vt 0.078947 0.428571 +vt 0.394737 0.428571 +vt 0.118421 0.428571 +vt 0.473684 0.428571 +vt 0.434211 0.428571 +vt 0.000000 -0.000000 +vt 0.842105 0.517857 +vt 0.421053 -0.000000 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vn 0.0000 -1.0000 0.0000 +vn -0.9991 0.0000 -0.0416 +vn 0.9991 0.0000 -0.0416 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.8944 -0.4472 +vn 0.9995 0.0000 -0.0312 +vn -0.9995 0.0000 -0.0312 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.9995 0.0000 0.0312 +vn 0.9995 0.0000 0.0312 +vn -0.4472 0.8944 0.0000 +vn -0.0312 0.0000 -0.9995 +vn -0.0312 0.0000 0.9995 +vn 0.4472 0.8944 0.0000 +vn 0.0312 0.0000 0.9995 +vn 0.0312 0.0000 -0.9995 +vn 0.9991 0.0000 0.0416 +vn -0.9991 0.0000 0.0416 +vn 0.0000 0.8321 0.5547 +vn 0.0000 -0.8321 0.5547 +vn -0.0416 0.0000 0.9991 +vn -0.0416 0.0000 -0.9991 +vn -0.5547 0.8321 0.0000 +vn -0.5547 -0.8321 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0416 0.0000 0.9991 +vn 0.5547 0.8321 0.0000 +vn 0.5547 -0.8321 0.0000 +vn 0.3713 0.2425 -0.8963 +vn -0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn 0.8963 0.2425 -0.3713 +vn 0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn 0.6860 0.2425 0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.0000 0.2425 0.9701 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn -0.8963 0.2425 0.3713 +vn -0.9701 0.2425 0.0000 +vn -0.8963 0.2425 -0.3713 +vn -0.6860 0.2425 -0.6860 +vn -0.3713 0.2425 -0.8963 +vn -0.9239 0.0000 -0.3827 +vn -1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.0000 -0.1240 0.9923 +vn 0.3797 -0.1240 0.9167 +vn -0.3797 -0.1240 -0.9167 +vn -0.7016 -0.1240 -0.7016 +vn 0.7016 -0.1240 0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 +vn 0.0127 0.3525 -0.9357 +vn -0.1164 0.9864 0.1164 +vn 0.3598 0.3824 -0.8511 +vn 0.6504 0.3925 -0.6504 +vn 0.8511 0.3824 -0.3598 +vn 0.9357 0.3525 -0.0127 +vn 0.8863 0.3053 0.3484 +vn 0.6991 0.2457 0.6714 +vn 0.3936 0.1823 0.9010 +vn 0.0149 0.1259 0.9919 +vn -0.3736 0.0869 0.9235 +vn -0.7052 0.0730 0.7052 +vn -0.9235 0.0869 0.3736 +vn -0.9919 0.1259 -0.0149 +vn -0.9010 0.1823 -0.3936 +vn -0.6714 0.2457 -0.6991 +vn -0.3484 0.3053 -0.8863 +vn 0.6325 0.4472 -0.6325 +vn 0.8263 0.4472 -0.3423 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 -0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.0127 0.3525 0.9357 +vn 0.1164 0.9864 -0.1164 +vn -0.3598 0.3824 0.8511 +vn -0.6504 0.3925 0.6504 +vn -0.8511 0.3824 0.3598 +vn -0.9357 0.3525 0.0127 +vn -0.8863 0.3053 -0.3484 +vn -0.6991 0.2457 -0.6714 +vn -0.3936 0.1823 -0.9010 +vn -0.0149 0.1259 -0.9919 +vn 0.3736 0.0869 -0.9235 +vn 0.7052 0.0730 -0.7052 +vn 0.9235 0.0869 -0.3736 +vn 0.9919 0.1259 0.0149 +vn 0.9010 0.1823 0.3936 +vn 0.6714 0.2457 0.6991 +vn 0.3484 0.3053 0.8863 +vn -0.9357 0.3525 -0.0127 +vn 0.1164 0.9864 0.1164 +vn -0.8511 0.3824 -0.3598 +vn -0.6504 0.3925 -0.6504 +vn -0.3598 0.3824 -0.8511 +vn -0.0127 0.3525 -0.9357 +vn 0.3484 0.3053 -0.8863 +vn 0.6714 0.2457 -0.6991 +vn 0.9010 0.1823 -0.3936 +vn 0.9919 0.1259 -0.0149 +vn 0.9235 0.0869 0.3736 +vn 0.7052 0.0730 0.7052 +vn 0.3737 0.0869 0.9235 +vn -0.0149 0.1259 0.9919 +vn -0.3936 0.1823 0.9010 +vn -0.6991 0.2457 0.6714 +vn -0.8863 0.3053 0.3484 +vn 0.9357 0.3525 0.0127 +vn -0.1164 0.9864 -0.1164 +vn 0.8511 0.3824 0.3598 +vn 0.6504 0.3925 0.6504 +vn 0.3598 0.3824 0.8511 +vn 0.0127 0.3525 0.9357 +vn -0.3484 0.3053 0.8863 +vn -0.6714 0.2457 0.6991 +vn -0.9010 0.1823 0.3936 +vn -0.9919 0.1259 0.0149 +vn -0.9235 0.0869 -0.3736 +vn -0.7052 0.0730 -0.7052 +vn -0.3737 0.0869 -0.9235 +vn 0.0149 0.1259 -0.9919 +vn 0.3936 0.1823 -0.9010 +vn 0.6991 0.2457 -0.6714 +vn 0.8863 0.3053 -0.3484 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +s off +f 52/1/1 64/2/1 60/3/1 +f 69/4/1 101/5/1 102/6/1 +f 70/7/1 102/8/1 103/9/1 +f 70/7/1 104/10/1 71/11/1 +f 71/11/1 105/12/1 72/13/1 +f 73/14/1 105/15/1 106/16/1 +f 74/17/1 106/18/1 107/19/1 +f 75/20/1 107/21/1 108/22/1 +f 75/20/1 109/23/1 76/24/1 +f 77/25/1 109/26/1 110/27/1 +f 78/28/1 110/29/1 111/30/1 +f 78/28/1 112/31/1 79/32/1 +f 79/32/1 113/33/1 80/34/1 +f 66/35/1 100/36/1 67/37/1 +f 81/38/1 113/39/1 114/40/1 +f 67/37/1 101/41/1 68/42/1 +f 81/38/1 99/43/1 66/35/1 +f 125/44/1 121/45/1 117/46/1 +f 133/47/2 132/48/2 134/49/2 +f 131/50/3 136/51/3 132/48/3 +f 135/52/4 131/53/4 133/54/4 +f 136/51/5 134/55/5 132/56/5 +f 137/57/1 139/58/1 141/59/1 +f 138/60/6 142/61/6 140/62/6 +f 142/63/7 137/57/7 141/59/7 +f 139/64/8 142/63/8 141/59/8 +f 144/65/9 152/66/9 148/67/9 +f 149/68/1 151/69/1 153/70/1 +f 158/71/1 190/72/1 191/73/1 +f 159/74/1 191/75/1 192/76/1 +f 159/74/1 193/77/1 160/78/1 +f 160/78/1 194/79/1 161/80/1 +f 162/81/1 194/82/1 195/83/1 +f 163/84/1 195/85/1 196/86/1 +f 164/87/1 196/88/1 197/89/1 +f 164/87/1 198/90/1 165/91/1 +f 166/92/1 198/93/1 199/94/1 +f 167/95/1 199/96/1 200/97/1 +f 167/95/1 201/98/1 168/99/1 +f 168/99/1 202/100/1 169/101/1 +f 155/102/1 189/103/1 156/104/1 +f 170/105/1 202/106/1 203/107/1 +f 156/104/1 190/108/1 157/109/1 +f 170/105/1 188/110/1 155/102/1 +f 210/111/1 208/112/1 206/113/1 +f 220/114/1 222/115/1 224/116/1 +f 221/117/10 225/118/10 223/119/10 +f 225/120/11 220/114/11 224/116/11 +f 222/121/12 225/120/12 224/116/12 +f 229/122/1 261/123/1 262/124/1 +f 230/125/1 262/126/1 263/127/1 +f 230/125/1 264/128/1 231/129/1 +f 231/129/1 265/130/1 232/131/1 +f 233/132/1 265/133/1 266/134/1 +f 234/135/1 266/136/1 267/137/1 +f 235/138/1 267/139/1 268/140/1 +f 235/138/1 269/141/1 236/142/1 +f 237/143/1 269/144/1 270/145/1 +f 237/143/1 271/146/1 238/147/1 +f 238/147/1 272/148/1 239/149/1 +f 239/149/1 273/150/1 240/151/1 +f 226/152/1 260/153/1 227/154/1 +f 241/155/1 273/156/1 274/157/1 +f 227/154/1 261/158/1 228/159/1 +f 241/155/1 259/160/1 226/152/1 +f 285/161/1 281/162/1 277/163/1 +f 291/164/1 293/165/1 295/166/1 +f 292/167/13 296/168/13 294/169/13 +f 296/170/14 291/164/14 295/166/14 +f 293/171/15 296/170/15 295/166/15 +f 300/172/1 332/173/1 333/174/1 +f 301/175/1 333/176/1 334/177/1 +f 301/175/1 335/178/1 302/179/1 +f 302/179/1 336/180/1 303/181/1 +f 304/182/1 336/183/1 337/184/1 +f 305/185/1 337/186/1 338/187/1 +f 306/188/1 338/189/1 339/190/1 +f 306/188/1 340/191/1 307/192/1 +f 308/193/1 340/194/1 341/195/1 +f 309/196/1 341/197/1 342/198/1 +f 309/196/1 343/199/1 310/200/1 +f 310/200/1 344/201/1 311/202/1 +f 297/203/1 331/204/1 298/205/1 +f 312/206/1 344/207/1 345/208/1 +f 298/205/1 332/209/1 299/210/1 +f 297/203/1 345/211/1 330/212/1 +f 356/213/1 352/214/1 348/215/1 +f 362/216/1 364/217/1 366/218/1 +f 363/219/16 367/220/16 365/221/16 +f 367/222/17 362/216/17 366/218/17 +f 364/223/18 367/222/18 366/218/18 +f 370/224/19 369/225/19 371/226/19 +f 368/227/20 373/228/20 369/225/20 +f 372/229/21 368/230/21 370/231/21 +f 373/228/22 371/232/22 369/233/22 +f 381/234/9 379/235/9 375/236/9 +f 380/237/1 382/238/1 384/239/1 +f 388/240/23 387/241/23 389/242/23 +f 386/243/24 391/244/24 387/241/24 +f 390/245/25 386/246/25 388/247/25 +f 391/244/26 389/248/26 387/249/26 +f 393/250/9 401/251/9 397/252/9 +f 398/253/1 400/254/1 402/255/1 +f 407/256/27 404/257/27 405/258/27 +f 404/257/28 409/259/28 405/258/28 +f 408/260/29 404/261/29 406/262/29 +f 409/259/30 407/263/30 405/264/30 +f 411/265/9 419/266/9 415/267/9 +f 416/268/1 418/269/1 420/270/1 +f 52/1/1 51/271/1 50/272/1 +f 50/272/1 65/273/1 52/1/1 +f 65/273/1 64/2/1 52/1/1 +f 64/2/1 63/274/1 62/275/1 +f 62/275/1 61/276/1 60/3/1 +f 60/3/1 59/277/1 58/278/1 +f 58/278/1 57/279/1 56/280/1 +f 56/280/1 55/281/1 52/1/1 +f 55/281/1 54/282/1 52/1/1 +f 54/282/1 53/283/1 52/1/1 +f 64/2/1 62/275/1 60/3/1 +f 60/3/1 58/278/1 52/1/1 +f 58/278/1 56/280/1 52/1/1 +f 69/4/1 68/284/1 101/5/1 +f 70/7/1 69/4/1 102/8/1 +f 70/7/1 103/285/1 104/10/1 +f 71/11/1 104/286/1 105/12/1 +f 73/14/1 72/13/1 105/15/1 +f 74/17/1 73/14/1 106/18/1 +f 75/20/1 74/17/1 107/21/1 +f 75/20/1 108/287/1 109/23/1 +f 77/25/1 76/24/1 109/26/1 +f 78/28/1 77/25/1 110/29/1 +f 78/28/1 111/288/1 112/31/1 +f 79/32/1 112/289/1 113/33/1 +f 66/35/1 99/290/1 100/36/1 +f 81/38/1 80/34/1 113/39/1 +f 67/37/1 100/291/1 101/41/1 +f 81/38/1 114/292/1 99/43/1 +f 117/46/1 116/293/1 115/294/1 +f 115/294/1 130/295/1 117/46/1 +f 130/295/1 129/296/1 117/46/1 +f 129/296/1 128/297/1 127/298/1 +f 127/298/1 126/299/1 125/44/1 +f 125/44/1 124/300/1 121/45/1 +f 124/300/1 123/301/1 121/45/1 +f 123/301/1 122/302/1 121/45/1 +f 121/45/1 120/303/1 119/304/1 +f 119/304/1 118/305/1 117/46/1 +f 129/296/1 127/298/1 117/46/1 +f 127/298/1 125/44/1 117/46/1 +f 121/45/1 119/304/1 117/46/1 +f 133/47/2 131/50/2 132/48/2 +f 131/50/3 135/52/3 136/51/3 +f 142/63/7 138/60/7 137/57/7 +f 139/64/8 140/306/8 142/63/8 +f 148/67/9 146/307/9 144/65/9 +f 144/65/9 154/308/9 152/66/9 +f 152/66/9 150/309/9 148/67/9 +f 153/70/1 143/310/1 145/311/1 +f 145/311/1 147/312/1 153/70/1 +f 147/312/1 149/68/1 153/70/1 +f 158/71/1 157/313/1 190/72/1 +f 159/74/1 158/71/1 191/75/1 +f 159/74/1 192/314/1 193/77/1 +f 160/78/1 193/315/1 194/79/1 +f 162/81/1 161/80/1 194/82/1 +f 163/84/1 162/81/1 195/85/1 +f 164/87/1 163/84/1 196/88/1 +f 164/87/1 197/316/1 198/90/1 +f 166/92/1 165/91/1 198/93/1 +f 167/95/1 166/92/1 199/96/1 +f 167/95/1 200/317/1 201/98/1 +f 168/99/1 201/318/1 202/100/1 +f 155/102/1 188/319/1 189/103/1 +f 170/105/1 169/101/1 202/106/1 +f 156/104/1 189/320/1 190/108/1 +f 170/105/1 203/321/1 188/110/1 +f 206/113/1 205/322/1 204/323/1 +f 204/323/1 219/324/1 218/325/1 +f 218/325/1 217/326/1 216/327/1 +f 216/327/1 215/328/1 214/329/1 +f 214/329/1 213/330/1 212/331/1 +f 212/331/1 211/332/1 210/111/1 +f 210/111/1 209/333/1 208/112/1 +f 208/112/1 207/334/1 206/113/1 +f 206/113/1 204/323/1 214/329/1 +f 204/323/1 218/325/1 214/329/1 +f 218/325/1 216/327/1 214/329/1 +f 214/329/1 212/331/1 206/113/1 +f 212/331/1 210/111/1 206/113/1 +f 225/120/11 221/117/11 220/114/11 +f 222/121/12 223/335/12 225/120/12 +f 229/122/1 228/336/1 261/123/1 +f 230/125/1 229/122/1 262/126/1 +f 230/125/1 263/337/1 264/128/1 +f 231/129/1 264/338/1 265/130/1 +f 233/132/1 232/131/1 265/133/1 +f 234/135/1 233/132/1 266/136/1 +f 235/138/1 234/135/1 267/139/1 +f 235/138/1 268/339/1 269/141/1 +f 237/143/1 236/142/1 269/144/1 +f 237/143/1 270/340/1 271/146/1 +f 238/147/1 271/341/1 272/148/1 +f 239/149/1 272/342/1 273/150/1 +f 226/152/1 259/343/1 260/153/1 +f 241/155/1 240/151/1 273/156/1 +f 227/154/1 260/344/1 261/158/1 +f 241/155/1 274/345/1 259/160/1 +f 277/163/1 276/346/1 275/347/1 +f 275/347/1 290/348/1 289/349/1 +f 289/349/1 288/350/1 287/351/1 +f 287/351/1 286/352/1 285/161/1 +f 285/161/1 284/353/1 281/162/1 +f 284/353/1 283/354/1 281/162/1 +f 283/354/1 282/355/1 281/162/1 +f 281/162/1 280/356/1 279/357/1 +f 279/357/1 278/358/1 277/163/1 +f 277/163/1 275/347/1 289/349/1 +f 289/349/1 287/351/1 277/163/1 +f 287/351/1 285/161/1 277/163/1 +f 281/162/1 279/357/1 277/163/1 +f 296/170/14 292/167/14 291/164/14 +f 293/171/15 294/359/15 296/170/15 +f 300/172/1 299/360/1 332/173/1 +f 301/175/1 300/172/1 333/176/1 +f 301/175/1 334/361/1 335/178/1 +f 302/179/1 335/362/1 336/180/1 +f 304/182/1 303/181/1 336/183/1 +f 305/185/1 304/182/1 337/186/1 +f 306/188/1 305/185/1 338/189/1 +f 306/188/1 339/363/1 340/191/1 +f 308/193/1 307/192/1 340/194/1 +f 309/196/1 308/193/1 341/197/1 +f 309/196/1 342/364/1 343/199/1 +f 310/200/1 343/365/1 344/201/1 +f 297/203/1 330/366/1 331/204/1 +f 312/206/1 311/202/1 344/207/1 +f 298/205/1 331/367/1 332/209/1 +f 297/203/1 312/206/1 345/211/1 +f 348/215/1 347/368/1 346/369/1 +f 346/369/1 361/370/1 348/215/1 +f 361/370/1 360/371/1 348/215/1 +f 360/371/1 359/372/1 358/373/1 +f 358/373/1 357/374/1 356/213/1 +f 356/213/1 355/375/1 352/214/1 +f 355/375/1 354/376/1 352/214/1 +f 354/376/1 353/377/1 352/214/1 +f 352/214/1 351/378/1 350/379/1 +f 350/379/1 349/380/1 348/215/1 +f 360/371/1 358/373/1 348/215/1 +f 358/373/1 356/213/1 348/215/1 +f 352/214/1 350/379/1 348/215/1 +f 367/222/17 363/219/17 362/216/17 +f 364/223/18 365/381/18 367/222/18 +f 370/224/19 368/227/19 369/225/19 +f 368/227/20 372/229/20 373/228/20 +f 379/235/9 377/382/9 375/236/9 +f 375/236/9 385/383/9 383/384/9 +f 383/384/9 381/234/9 375/236/9 +f 384/239/1 374/385/1 376/386/1 +f 376/386/1 378/387/1 384/239/1 +f 378/387/1 380/237/1 384/239/1 +f 388/240/23 386/243/23 387/241/23 +f 386/243/24 390/245/24 391/244/24 +f 397/252/9 395/388/9 393/250/9 +f 393/250/9 403/389/9 401/251/9 +f 401/251/9 399/390/9 397/252/9 +f 402/255/1 392/391/1 394/392/1 +f 394/392/1 396/393/1 402/255/1 +f 396/393/1 398/253/1 402/255/1 +f 407/256/27 406/394/27 404/257/27 +f 404/257/28 408/260/28 409/259/28 +f 415/267/9 413/395/9 411/265/9 +f 411/265/9 421/396/9 419/266/9 +f 419/266/9 417/397/9 415/267/9 +f 420/270/1 410/398/1 412/399/1 +f 412/399/1 414/400/1 420/270/1 +f 414/400/1 416/268/1 420/270/1 +s 1 +f 16/401/31 1/402/32 17/403/9 +f 15/404/33 16/401/31 17/405/9 +f 14/406/34 15/404/33 17/407/9 +f 13/408/35 14/406/34 17/409/9 +f 12/410/36 13/408/35 17/411/9 +f 11/412/37 12/410/36 17/413/9 +f 10/414/38 11/412/37 17/415/9 +f 9/416/39 10/414/38 17/417/9 +f 9/416/39 17/418/9 8/419/40 +f 7/420/41 8/419/40 17/421/9 +f 6/422/42 7/420/41 17/423/9 +f 5/424/43 6/422/42 17/425/9 +f 4/426/44 5/427/43 17/428/9 +f 3/429/45 4/426/44 17/430/9 +f 2/431/46 3/429/45 17/432/9 +f 1/402/32 2/431/46 17/433/9 +f 4/426/47 22/434/48 5/427/48 +f 12/410/49 30/435/50 13/408/50 +f 5/424/48 23/436/51 6/422/51 +f 13/408/50 31/437/52 14/406/52 +f 6/422/51 24/438/53 7/420/53 +f 14/406/52 32/439/54 15/404/54 +f 7/420/53 25/440/55 8/419/55 +f 15/404/54 33/441/56 16/401/56 +f 8/419/55 26/442/57 9/416/57 +f 1/402/58 19/443/59 2/431/59 +f 16/401/56 18/444/58 1/402/58 +f 9/416/57 27/445/60 10/414/60 +f 2/431/59 20/446/61 3/429/61 +f 10/414/60 28/447/62 11/412/62 +f 3/429/61 21/448/47 4/426/47 +f 11/412/62 29/449/49 12/410/49 +f 26/442/63 43/450/64 27/445/64 +f 19/443/65 36/451/66 20/446/66 +f 27/445/64 44/452/67 28/447/67 +f 20/446/66 37/453/68 21/448/68 +f 28/447/67 45/454/69 29/449/69 +f 21/448/68 38/455/70 22/434/70 +f 29/449/69 46/456/71 30/435/71 +f 22/457/70 39/458/72 23/436/72 +f 30/435/71 47/459/73 31/437/73 +f 23/436/72 40/460/74 24/438/74 +f 31/437/73 48/461/75 32/439/75 +f 24/438/74 41/462/76 25/440/76 +f 32/439/75 49/463/77 33/441/77 +f 25/440/76 42/464/63 26/442/63 +f 18/444/78 35/465/65 19/443/65 +f 33/441/77 34/466/78 18/444/78 +f 47/467/52 64/468/54 48/469/54 +f 40/470/53 57/471/55 41/472/55 +f 48/469/54 65/473/56 49/474/56 +f 41/472/55 58/475/57 42/476/57 +f 34/477/58 51/478/59 35/479/59 +f 49/474/56 50/480/58 34/477/58 +f 42/476/57 59/481/60 43/482/60 +f 35/479/59 52/483/61 36/484/61 +f 43/482/60 60/485/62 44/486/62 +f 36/484/61 53/487/47 37/488/47 +f 44/486/62 61/489/49 45/490/49 +f 37/488/47 54/491/48 38/492/48 +f 45/490/49 62/493/50 46/494/50 +f 38/495/48 55/496/51 39/458/51 +f 46/494/50 63/497/52 47/467/52 +f 39/458/51 56/498/53 40/470/53 +f 68/42/53 83/499/51 67/37/51 +f 76/24/54 91/500/52 75/20/52 +f 69/4/55 84/501/53 68/284/53 +f 77/25/56 92/502/54 76/24/54 +f 70/7/57 85/503/55 69/4/55 +f 78/28/58 93/504/56 77/25/56 +f 71/11/60 86/505/57 70/7/57 +f 79/32/59 94/506/58 78/28/58 +f 72/13/62 87/507/60 71/11/60 +f 80/34/61 95/508/59 79/32/59 +f 73/14/49 88/509/62 72/13/62 +f 81/38/47 96/510/61 80/34/61 +f 74/17/50 89/511/49 73/14/49 +f 67/37/51 82/512/48 66/35/48 +f 66/35/48 97/513/47 81/38/47 +f 75/20/52 90/514/50 74/17/50 +f 94/506/79 98/515/80 93/504/81 +f 92/502/82 93/504/81 98/516/80 +f 91/500/83 92/502/82 98/517/80 +f 90/514/84 91/500/83 98/518/80 +f 89/511/85 90/514/84 98/519/80 +f 88/509/86 89/511/85 98/520/80 +f 87/507/87 88/509/86 98/521/80 +f 86/505/88 87/507/87 98/522/80 +f 85/503/89 86/505/88 98/523/80 +f 84/501/90 85/503/89 98/524/80 +f 83/499/91 84/525/90 98/526/80 +f 82/512/92 83/499/91 98/527/80 +f 97/513/93 82/512/92 98/528/80 +f 96/510/94 97/513/93 98/529/80 +f 95/508/95 96/510/94 98/530/80 +f 94/506/79 95/508/95 98/531/80 +f 109/23/96 124/532/97 125/533/96 +f 109/26/96 126/534/98 110/27/98 +f 110/29/98 127/535/99 111/30/99 +f 111/288/99 128/536/100 112/31/100 +f 113/33/101 128/536/100 129/537/101 +f 100/36/102 115/538/103 116/539/102 +f 113/39/101 130/540/104 114/40/104 +f 100/291/102 117/541/105 101/41/105 +f 114/292/104 115/538/103 99/43/103 +f 102/6/106 117/542/105 118/543/106 +f 102/8/106 119/544/107 103/9/107 +f 103/285/107 120/545/108 104/10/108 +f 104/286/108 121/546/109 105/12/109 +f 105/15/109 122/547/110 106/16/110 +f 106/18/110 123/548/111 107/19/111 +f 107/21/111 124/532/97 108/22/97 +f 144/549/48 145/550/112 143/551/48 +f 146/552/112 147/553/113 145/550/112 +f 148/554/113 149/555/50 147/553/113 +f 150/556/50 151/557/114 149/555/50 +f 152/558/114 153/559/115 151/557/114 +f 154/560/115 143/551/48 153/561/115 +f 157/109/54 172/562/52 156/104/52 +f 165/91/53 180/563/51 164/87/51 +f 158/71/56 173/564/54 157/313/54 +f 166/92/55 181/565/53 165/91/53 +f 159/74/58 174/566/56 158/71/56 +f 167/95/57 182/567/55 166/92/55 +f 160/78/59 175/568/58 159/74/58 +f 168/99/60 183/569/57 167/95/57 +f 161/80/61 176/570/59 160/78/59 +f 169/101/62 184/571/60 168/99/60 +f 162/81/47 177/572/61 161/80/61 +f 170/105/49 185/573/62 169/101/62 +f 163/84/48 178/574/47 162/81/47 +f 156/104/52 171/575/50 155/102/50 +f 155/102/50 186/576/49 170/105/49 +f 164/87/51 179/577/48 163/84/48 +f 183/569/116 187/578/117 182/567/118 +f 181/565/119 182/567/118 187/579/117 +f 180/563/120 181/565/119 187/580/117 +f 179/577/121 180/563/120 187/581/117 +f 178/574/122 179/577/121 187/582/117 +f 177/572/123 178/574/122 187/583/117 +f 176/570/124 177/572/123 187/584/117 +f 175/568/125 176/570/124 187/585/117 +f 174/566/126 175/568/125 187/586/117 +f 173/564/127 174/566/126 187/587/117 +f 172/562/128 173/588/127 187/589/117 +f 171/575/129 172/562/128 187/590/117 +f 186/576/130 171/575/129 187/591/117 +f 185/573/131 186/576/130 187/592/117 +f 184/571/132 185/573/131 187/593/117 +f 183/569/116 184/571/132 187/594/117 +f 198/90/105 213/595/102 214/596/105 +f 198/93/105 215/597/106 199/94/106 +f 199/96/106 216/598/107 200/97/107 +f 201/98/108 216/598/107 217/599/108 +f 202/100/109 217/599/108 218/600/109 +f 188/319/111 205/601/97 189/103/97 +f 202/106/109 219/602/110 203/107/110 +f 190/108/96 205/601/97 206/603/96 +f 203/321/110 204/604/111 188/110/111 +f 190/72/96 207/605/98 191/73/98 +f 191/75/98 208/606/99 192/76/99 +f 192/314/99 209/607/100 193/77/100 +f 193/315/100 210/608/101 194/79/101 +f 194/82/101 211/609/104 195/83/104 +f 195/85/104 212/610/103 196/86/103 +f 196/88/103 213/595/102 197/89/102 +f 228/159/62 243/611/60 227/154/60 +f 236/142/61 251/612/59 235/138/59 +f 229/122/49 244/613/62 228/336/62 +f 237/143/47 252/614/61 236/142/61 +f 230/125/50 245/615/49 229/122/49 +f 238/147/48 253/616/47 237/143/47 +f 231/129/52 246/617/50 230/125/50 +f 239/149/51 254/618/48 238/147/48 +f 232/131/54 247/619/52 231/129/52 +f 240/151/53 255/620/51 239/149/51 +f 233/132/56 248/621/54 232/131/54 +f 241/155/55 256/622/53 240/151/53 +f 234/135/58 249/623/56 233/132/56 +f 227/154/60 242/624/57 226/152/57 +f 226/152/57 257/625/55 241/155/55 +f 235/138/59 250/626/58 234/135/58 +f 254/618/133 258/627/134 253/616/135 +f 252/614/136 253/616/135 258/628/134 +f 251/612/137 252/614/136 258/629/134 +f 250/626/138 251/612/137 258/630/134 +f 249/623/139 250/626/138 258/631/134 +f 248/621/140 249/623/139 258/632/134 +f 247/619/141 248/621/140 258/633/134 +f 246/617/142 247/619/141 258/634/134 +f 245/615/143 246/617/142 258/635/134 +f 244/613/144 245/615/143 258/636/134 +f 243/611/145 244/637/144 258/638/134 +f 242/624/146 243/611/145 258/639/134 +f 257/625/147 242/624/146 258/640/134 +f 256/622/148 257/625/147 258/641/134 +f 255/620/149 256/622/148 258/642/134 +f 254/618/133 255/620/149 258/643/134 +f 268/339/100 285/644/101 269/141/101 +f 269/144/101 286/645/104 270/145/104 +f 270/340/104 287/646/103 271/146/103 +f 271/341/103 288/647/102 272/148/102 +f 273/150/105 288/647/102 289/648/105 +f 259/343/107 276/649/108 260/153/108 +f 273/156/105 290/650/106 274/157/106 +f 260/344/108 277/651/109 261/158/109 +f 274/345/106 275/652/107 259/160/107 +f 262/124/110 277/653/109 278/654/110 +f 262/126/110 279/655/111 263/127/111 +f 263/337/111 280/656/97 264/128/97 +f 264/338/97 281/657/96 265/130/96 +f 265/133/96 282/658/98 266/134/98 +f 266/136/98 283/659/99 267/137/99 +f 267/139/99 284/660/100 268/140/100 +f 299/210/61 314/661/59 298/205/59 +f 307/192/62 322/662/60 306/188/60 +f 300/172/47 315/663/61 299/360/61 +f 308/193/49 323/664/62 307/192/62 +f 301/175/48 316/665/47 300/172/47 +f 309/196/50 324/666/49 308/193/49 +f 302/179/51 317/667/48 301/175/48 +f 310/200/52 325/668/50 309/196/50 +f 303/181/53 318/669/51 302/179/51 +f 311/202/54 326/670/52 310/200/52 +f 304/182/55 319/671/53 303/181/53 +f 312/206/56 327/672/54 311/202/54 +f 305/185/57 320/673/55 304/182/55 +f 298/205/59 313/674/58 297/203/58 +f 297/203/58 328/675/56 312/206/56 +f 306/188/60 321/676/57 305/185/57 +f 325/668/150 329/677/151 324/666/152 +f 323/664/153 324/666/152 329/678/151 +f 322/662/154 323/664/153 329/679/151 +f 321/676/155 322/662/154 329/680/151 +f 320/673/156 321/676/155 329/681/151 +f 319/671/157 320/673/156 329/682/151 +f 318/669/158 319/671/157 329/683/151 +f 317/667/159 318/669/158 329/684/151 +f 316/665/160 317/667/159 329/685/151 +f 315/663/161 316/665/160 329/686/151 +f 314/661/162 315/687/161 329/688/151 +f 313/674/163 314/661/162 329/689/151 +f 328/675/164 313/674/163 329/690/151 +f 327/672/165 328/675/164 329/691/151 +f 326/670/166 327/672/165 329/692/151 +f 325/668/150 326/670/166 329/693/151 +f 340/191/109 355/694/108 356/695/109 +f 340/194/109 357/696/110 341/195/110 +f 341/197/110 358/697/111 342/198/111 +f 343/199/97 358/697/111 359/698/97 +f 343/365/97 360/699/96 344/201/96 +f 330/366/99 347/700/100 331/204/100 +f 345/208/98 360/699/96 361/701/98 +f 332/209/101 347/700/100 348/702/101 +f 345/211/98 346/703/99 330/212/99 +f 333/174/104 348/704/101 349/705/104 +f 333/176/104 350/706/103 334/177/103 +f 335/178/102 350/706/103 351/707/102 +f 335/362/102 352/708/105 336/180/105 +f 336/183/105 353/709/106 337/184/106 +f 337/186/106 354/710/107 338/187/107 +f 338/189/107 355/694/108 339/190/108 +f 375/711/50 376/712/114 374/713/50 +f 377/714/114 378/715/115 376/712/114 +f 379/716/115 380/717/48 378/715/115 +f 381/718/48 382/719/112 380/717/48 +f 383/720/112 384/721/113 382/719/112 +f 385/722/113 374/713/50 384/723/113 +f 393/724/57 394/725/167 392/726/57 +f 395/727/167 396/728/168 394/725/167 +f 397/729/168 398/730/58 396/728/168 +f 399/731/58 400/732/169 398/730/58 +f 401/733/169 402/734/170 400/732/169 +f 403/735/170 392/726/57 402/736/170 +f 411/737/58 412/738/169 410/739/58 +f 413/740/169 414/741/170 412/738/169 +f 415/742/170 416/743/57 414/741/170 +f 417/744/57 418/745/167 416/743/57 +f 419/746/167 420/747/168 418/745/167 +f 421/748/168 410/739/58 420/749/168 +f 4/426/47 21/448/47 22/434/48 +f 12/410/49 29/449/49 30/435/50 +f 5/424/48 22/457/48 23/436/51 +f 13/408/50 30/435/50 31/437/52 +f 6/422/51 23/436/51 24/438/53 +f 14/406/52 31/437/52 32/439/54 +f 7/420/53 24/438/53 25/440/55 +f 15/404/54 32/439/54 33/441/56 +f 8/419/55 25/440/55 26/442/57 +f 1/402/58 18/444/58 19/443/59 +f 16/401/56 33/441/56 18/444/58 +f 9/416/57 26/442/57 27/445/60 +f 2/431/59 19/443/59 20/446/61 +f 10/414/60 27/445/60 28/447/62 +f 3/429/61 20/446/61 21/448/47 +f 11/412/62 28/447/62 29/449/49 +f 26/442/63 42/750/63 43/450/64 +f 19/443/65 35/751/65 36/451/66 +f 27/445/64 43/752/64 44/452/67 +f 20/446/66 36/753/66 37/453/68 +f 28/447/67 44/754/67 45/454/69 +f 21/448/68 37/755/68 38/455/70 +f 29/449/69 45/756/69 46/456/71 +f 22/457/70 38/495/70 39/458/72 +f 30/435/71 46/757/71 47/459/73 +f 23/436/72 39/758/72 40/460/74 +f 31/437/73 47/759/73 48/461/75 +f 24/438/74 40/760/74 41/462/76 +f 32/439/75 48/761/75 49/463/77 +f 25/440/76 41/762/76 42/464/63 +f 18/444/78 34/763/78 35/465/65 +f 33/441/77 49/764/77 34/466/78 +f 47/467/52 63/497/52 64/468/54 +f 40/470/53 56/498/53 57/471/55 +f 48/469/54 64/468/54 65/473/56 +f 41/472/55 57/471/55 58/475/57 +f 34/477/58 50/480/58 51/478/59 +f 49/474/56 65/473/56 50/480/58 +f 42/476/57 58/475/57 59/481/60 +f 35/479/59 51/478/59 52/483/61 +f 43/482/60 59/481/60 60/485/62 +f 36/484/61 52/483/61 53/487/47 +f 44/486/62 60/485/62 61/489/49 +f 37/488/47 53/487/47 54/491/48 +f 45/490/49 61/489/49 62/493/50 +f 38/495/48 54/765/48 55/496/51 +f 46/494/50 62/493/50 63/497/52 +f 39/458/51 55/496/51 56/498/53 +f 68/42/53 84/525/53 83/499/51 +f 76/24/54 92/502/54 91/500/52 +f 69/4/55 85/503/55 84/501/53 +f 77/25/56 93/504/56 92/502/54 +f 70/7/57 86/505/57 85/503/55 +f 78/28/58 94/506/58 93/504/56 +f 71/11/60 87/507/60 86/505/57 +f 79/32/59 95/508/59 94/506/58 +f 72/13/62 88/509/62 87/507/60 +f 80/34/61 96/510/61 95/508/59 +f 73/14/49 89/511/49 88/509/62 +f 81/38/47 97/513/47 96/510/61 +f 74/17/50 90/514/50 89/511/49 +f 67/37/51 83/499/51 82/512/48 +f 66/35/48 82/512/48 97/513/47 +f 75/20/52 91/500/52 90/514/50 +f 109/23/96 108/287/97 124/532/97 +f 109/26/96 125/533/96 126/534/98 +f 110/29/98 126/534/98 127/535/99 +f 111/288/99 127/535/99 128/536/100 +f 113/33/101 112/289/100 128/536/100 +f 100/36/102 99/290/103 115/538/103 +f 113/39/101 129/537/101 130/540/104 +f 100/291/102 116/539/102 117/541/105 +f 114/292/104 130/540/104 115/538/103 +f 102/6/106 101/5/105 117/542/105 +f 102/8/106 118/543/106 119/544/107 +f 103/285/107 119/544/107 120/545/108 +f 104/286/108 120/545/108 121/546/109 +f 105/15/109 121/546/109 122/547/110 +f 106/18/110 122/547/110 123/548/111 +f 107/21/111 123/548/111 124/532/97 +f 144/549/48 146/552/112 145/550/112 +f 146/552/112 148/554/113 147/553/113 +f 148/554/113 150/556/50 149/555/50 +f 150/556/50 152/558/114 151/557/114 +f 152/558/114 154/766/115 153/559/115 +f 154/560/115 144/549/48 143/551/48 +f 157/109/54 173/588/54 172/562/52 +f 165/91/53 181/565/53 180/563/51 +f 158/71/56 174/566/56 173/564/54 +f 166/92/55 182/567/55 181/565/53 +f 159/74/58 175/568/58 174/566/56 +f 167/95/57 183/569/57 182/567/55 +f 160/78/59 176/570/59 175/568/58 +f 168/99/60 184/571/60 183/569/57 +f 161/80/61 177/572/61 176/570/59 +f 169/101/62 185/573/62 184/571/60 +f 162/81/47 178/574/47 177/572/61 +f 170/105/49 186/576/49 185/573/62 +f 163/84/48 179/577/48 178/574/47 +f 156/104/52 172/562/52 171/575/50 +f 155/102/50 171/575/50 186/576/49 +f 164/87/51 180/563/51 179/577/48 +f 198/90/105 197/316/102 213/595/102 +f 198/93/105 214/596/105 215/597/106 +f 199/96/106 215/597/106 216/598/107 +f 201/98/108 200/317/107 216/598/107 +f 202/100/109 201/318/108 217/599/108 +f 188/319/111 204/604/111 205/601/97 +f 202/106/109 218/600/109 219/602/110 +f 190/108/96 189/320/97 205/601/97 +f 203/321/110 219/602/110 204/604/111 +f 190/72/96 206/767/96 207/605/98 +f 191/75/98 207/605/98 208/606/99 +f 192/314/99 208/606/99 209/607/100 +f 193/315/100 209/607/100 210/608/101 +f 194/82/101 210/608/101 211/609/104 +f 195/85/104 211/609/104 212/610/103 +f 196/88/103 212/610/103 213/595/102 +f 228/159/62 244/637/62 243/611/60 +f 236/142/61 252/614/61 251/612/59 +f 229/122/49 245/615/49 244/613/62 +f 237/143/47 253/616/47 252/614/61 +f 230/125/50 246/617/50 245/615/49 +f 238/147/48 254/618/48 253/616/47 +f 231/129/52 247/619/52 246/617/50 +f 239/149/51 255/620/51 254/618/48 +f 232/131/54 248/621/54 247/619/52 +f 240/151/53 256/622/53 255/620/51 +f 233/132/56 249/623/56 248/621/54 +f 241/155/55 257/625/55 256/622/53 +f 234/135/58 250/626/58 249/623/56 +f 227/154/60 243/611/60 242/624/57 +f 226/152/57 242/624/57 257/625/55 +f 235/138/59 251/612/59 250/626/58 +f 268/339/100 284/660/100 285/644/101 +f 269/144/101 285/644/101 286/645/104 +f 270/340/104 286/645/104 287/646/103 +f 271/341/103 287/646/103 288/647/102 +f 273/150/105 272/342/102 288/647/102 +f 259/343/107 275/652/107 276/649/108 +f 273/156/105 289/648/105 290/650/106 +f 260/344/108 276/649/108 277/651/109 +f 274/345/106 290/650/106 275/652/107 +f 262/124/110 261/123/109 277/653/109 +f 262/126/110 278/654/110 279/655/111 +f 263/337/111 279/655/111 280/656/97 +f 264/338/97 280/656/97 281/657/96 +f 265/133/96 281/657/96 282/658/98 +f 266/136/98 282/658/98 283/659/99 +f 267/139/99 283/659/99 284/660/100 +f 299/210/61 315/687/61 314/661/59 +f 307/192/62 323/664/62 322/662/60 +f 300/172/47 316/665/47 315/663/61 +f 308/193/49 324/666/49 323/664/62 +f 301/175/48 317/667/48 316/665/47 +f 309/196/50 325/668/50 324/666/49 +f 302/179/51 318/669/51 317/667/48 +f 310/200/52 326/670/52 325/668/50 +f 303/181/53 319/671/53 318/669/51 +f 311/202/54 327/672/54 326/670/52 +f 304/182/55 320/673/55 319/671/53 +f 312/206/56 328/675/56 327/672/54 +f 305/185/57 321/676/57 320/673/55 +f 298/205/59 314/661/59 313/674/58 +f 297/203/58 313/674/58 328/675/56 +f 306/188/60 322/662/60 321/676/57 +f 340/191/109 339/363/108 355/694/108 +f 340/194/109 356/695/109 357/696/110 +f 341/197/110 357/696/110 358/697/111 +f 343/199/97 342/364/111 358/697/111 +f 343/365/97 359/698/97 360/699/96 +f 330/366/99 346/703/99 347/700/100 +f 345/208/98 344/207/96 360/699/96 +f 332/209/101 331/367/100 347/700/100 +f 345/211/98 361/701/98 346/703/99 +f 333/174/104 332/173/101 348/704/101 +f 333/176/104 349/705/104 350/706/103 +f 335/178/102 334/361/103 350/706/103 +f 335/362/102 351/707/102 352/708/105 +f 336/183/105 352/708/105 353/709/106 +f 337/186/106 353/709/106 354/710/107 +f 338/189/107 354/710/107 355/694/108 +f 375/711/50 377/714/114 376/712/114 +f 377/714/114 379/716/115 378/715/115 +f 379/716/115 381/718/48 380/717/48 +f 381/718/48 383/720/112 382/719/112 +f 383/720/112 385/768/113 384/721/113 +f 385/722/113 375/711/50 374/713/50 +f 393/724/57 395/727/167 394/725/167 +f 395/727/167 397/729/168 396/728/168 +f 397/729/168 399/731/58 398/730/58 +f 399/731/58 401/733/169 400/732/169 +f 401/733/169 403/769/170 402/734/170 +f 403/735/170 393/724/57 392/726/57 +f 411/737/58 413/740/169 412/738/169 +f 413/740/169 415/742/170 414/741/170 +f 415/742/170 417/744/57 416/743/57 +f 417/744/57 419/746/167 418/745/167 +f 419/746/167 421/770/168 420/747/168 +f 421/748/168 411/737/58 410/739/58 diff --git a/src/main/resources/assets/hbm/models/missile_huge.obj b/src/main/resources/assets/hbm/models/missile_huge.obj new file mode 100644 index 000000000..a3b5f2934 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_huge.obj @@ -0,0 +1,1581 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_huge.blend' +# www.blender.org +o Circle +v 1.154849 0.500000 -0.478354 +v 1.250000 0.500000 0.000000 +v 1.154849 0.500000 0.478354 +v 0.883883 0.500000 0.883884 +v 0.478354 0.500000 1.154850 +v -0.000000 0.500000 1.250000 +v -0.478354 0.500000 1.154850 +v -0.883883 0.500000 0.883883 +v -1.154849 0.500000 0.478354 +v -1.250000 0.500000 0.000000 +v -1.154849 0.500000 -0.478354 +v -0.883883 0.500000 -0.883883 +v -0.478354 0.500000 -1.154850 +v 0.000000 0.500000 -1.250000 +v 0.000000 9.500000 -1.000000 +v -0.382683 9.500000 -0.923880 +v -0.707107 9.500000 -0.707107 +v -0.923880 9.500000 -0.382683 +v -1.000000 9.500000 0.000000 +v -0.923880 9.500000 0.382684 +v -0.707107 9.500000 0.707107 +v -0.382683 9.500000 0.923880 +v -0.000000 9.500000 1.000000 +v 0.382683 9.500000 0.923880 +v 0.707107 9.500000 0.707107 +v 0.923880 9.500000 0.382684 +v 1.000000 9.500000 0.000000 +v 0.923879 9.500000 -0.382684 +v 0.707107 9.500000 -0.707107 +v 0.382683 9.500000 -0.923880 +v -0.000000 11.000000 -0.875000 +v -0.334848 11.000000 -0.808394 +v -0.618718 11.000000 -0.618719 +v -0.808395 11.000000 -0.334848 +v -0.875000 11.000000 0.000000 +v -0.808395 11.000000 0.334848 +v -0.618718 11.000000 0.618719 +v -0.334848 11.000000 0.808394 +v -0.000000 11.000000 0.875000 +v 0.334848 11.000000 0.808394 +v 0.618718 11.000000 0.618719 +v 0.808395 11.000000 0.334848 +v 0.875000 11.000000 0.000000 +v 0.808394 11.000000 -0.334848 +v 0.618718 11.000000 -0.618719 +v 0.334848 11.000000 -0.808395 +v 0.000000 13.499999 0.000000 +v 0.095671 0.500000 -0.855970 +v 0.176777 0.500000 -0.801777 +v 0.230970 0.500000 -0.720671 +v 0.250000 0.500000 -0.625000 +v 0.230970 0.500000 -0.529329 +v 0.176777 0.500000 -0.448223 +v 0.095671 0.500000 -0.394030 +v -0.000000 0.500000 -0.375000 +v -0.095671 0.500000 -0.394030 +v -0.176777 0.500000 -0.448223 +v -0.230970 0.500000 -0.529329 +v -0.250000 0.500000 -0.625000 +v -0.230970 0.500000 -0.720671 +v -0.176777 0.500000 -0.801777 +v -0.095671 0.500000 -0.855970 +v -0.000000 0.500000 -0.875000 +v 0.143506 0.250000 -0.971455 +v 0.265165 0.250000 -0.890165 +v 0.346455 0.250000 -0.768507 +v 0.375000 0.250000 -0.625000 +v 0.346455 0.250000 -0.481493 +v 0.265165 0.250000 -0.359835 +v 0.143506 0.250000 -0.278545 +v -0.000000 0.250000 -0.250000 +v -0.143506 0.250000 -0.278545 +v -0.265165 0.250000 -0.359835 +v -0.346455 0.250000 -0.481494 +v -0.375000 0.250000 -0.625000 +v -0.346455 0.250000 -0.768506 +v -0.265165 0.250000 -0.890165 +v -0.000000 0.250000 -1.000000 +v -0.143506 0.250000 -0.971455 +v 0.143506 0.000000 -0.971455 +v 0.265165 0.000000 -0.890165 +v 0.346455 0.000000 -0.768507 +v 0.375000 0.000000 -0.625000 +v 0.346455 0.000000 -0.481493 +v 0.265165 0.000000 -0.359835 +v 0.143506 0.000000 -0.278545 +v -0.000000 0.000000 -0.250000 +v -0.143506 0.000000 -0.278545 +v -0.265165 0.000000 -0.359835 +v -0.346455 0.000000 -0.481494 +v -0.375000 0.000000 -0.625000 +v -0.346455 0.000000 -0.768506 +v -0.265165 0.000000 -0.890165 +v -0.143506 0.000000 -0.971455 +v -0.000000 0.000000 -1.000000 +v 0.000000 5.250000 -1.250000 +v -0.478354 5.250000 -1.154850 +v -0.883883 5.250000 -0.883883 +v -1.154849 5.250000 -0.478354 +v -1.250000 5.250000 0.000000 +v -1.154849 5.250000 0.478354 +v -0.883883 5.250000 0.883883 +v -0.478354 5.250000 1.154850 +v -0.000000 5.250000 1.250000 +v 0.478354 5.250000 1.154850 +v 0.883883 5.250000 0.883884 +v 1.154849 5.250000 0.478354 +v 1.250000 5.250000 0.000000 +v 1.154849 5.250000 -0.478354 +v 0.883883 5.250000 -0.883884 +v 0.478354 5.250000 -1.154850 +v 0.883883 0.500000 -0.883884 +v 0.478354 0.500000 -1.154850 +v 0.000000 6.250000 -1.000000 +v -0.382683 6.250000 -0.923880 +v -0.707107 6.250000 -0.707107 +v -0.923880 6.250000 -0.382683 +v -1.000000 6.250000 0.000000 +v -0.923880 6.250000 0.382684 +v -0.707107 6.250000 0.707107 +v -0.382683 6.250000 0.923880 +v -0.000000 6.250000 1.000000 +v 0.382683 6.250000 0.923880 +v 0.707107 6.250000 0.707107 +v 0.923880 6.250000 0.382684 +v 1.000000 6.250000 0.000000 +v 0.923879 6.250000 -0.382684 +v 0.707107 6.250000 -0.707107 +v 0.382683 6.250000 -0.923880 +v 0.000000 6.500000 -1.000000 +v -0.382683 6.500000 -0.923880 +v -0.707107 6.500000 -0.707107 +v -0.923880 6.500000 -0.382683 +v -1.000000 6.500000 0.000000 +v -0.923880 6.500000 0.382684 +v -0.707107 6.500000 0.707107 +v -0.382683 6.500000 0.923880 +v -0.000000 6.500000 1.000000 +v 0.382683 6.500000 0.923880 +v 0.707107 6.500000 0.707107 +v 0.923880 6.500000 0.382684 +v 1.000000 6.500000 0.000000 +v 0.923879 6.500000 -0.382684 +v 0.707107 6.500000 -0.707107 +v 0.382683 6.500000 -0.923880 +v -0.000000 6.500000 -0.875000 +v -0.334848 6.500000 -0.808394 +v -0.618718 6.500000 -0.618719 +v -0.808395 6.500000 -0.334848 +v -0.875000 6.500000 0.000000 +v -0.808395 6.500000 0.334848 +v -0.618718 6.500000 0.618719 +v -0.334848 6.500000 0.808394 +v -0.000000 6.500000 0.875000 +v 0.334848 6.500000 0.808394 +v 0.618718 6.500000 0.618719 +v 0.808395 6.500000 0.334848 +v 0.875000 6.500000 0.000000 +v 0.808394 6.500000 -0.334848 +v 0.618718 6.500000 -0.618719 +v 0.334848 6.500000 -0.808395 +v -0.000000 6.250000 -0.875000 +v -0.334848 6.250000 -0.808394 +v -0.618718 6.250000 -0.618719 +v -0.808395 6.250000 -0.334848 +v -0.875000 6.250000 0.000000 +v -0.808395 6.250000 0.334848 +v -0.618718 6.250000 0.618719 +v -0.334848 6.250000 0.808394 +v -0.000000 6.250000 0.875000 +v 0.334848 6.250000 0.808394 +v 0.618718 6.250000 0.618719 +v 0.808395 6.250000 0.334848 +v 0.875000 6.250000 0.000000 +v 0.808394 6.250000 -0.334848 +v 0.618718 6.250000 -0.618719 +v 0.334848 6.250000 -0.808395 +v 1.010000 7.313000 -0.010000 +v 0.933879 7.313000 -0.392684 +v 0.717107 7.313000 -0.717107 +v 0.392683 7.313000 -0.933880 +v 0.392683 8.500000 -0.933880 +v 0.717107 8.500000 -0.717107 +v 0.933879 8.500000 -0.392684 +v 1.010000 8.500000 -0.010000 +v 0.839689 3.375000 -0.751301 +v 0.751301 3.375000 -0.839689 +v 1.502602 0.375000 -1.502602 +v 0.839689 0.375000 -0.751301 +v 0.751301 0.375000 -0.839689 +v 1.502602 1.375000 -1.502602 +v 0.095671 0.500000 0.394030 +v 0.176777 0.500000 0.448223 +v 0.230970 0.500000 0.529329 +v 0.250000 0.500000 0.625000 +v 0.230970 0.500000 0.720671 +v 0.176777 0.500000 0.801777 +v 0.095671 0.500000 0.855970 +v -0.000000 0.500000 0.875000 +v -0.095671 0.500000 0.855970 +v -0.176777 0.500000 0.801777 +v -0.230970 0.500000 0.720671 +v -0.250000 0.500000 0.625000 +v -0.230970 0.500000 0.529329 +v -0.176777 0.500000 0.448223 +v -0.095671 0.500000 0.394030 +v -0.000000 0.500000 0.375000 +v 0.143506 0.250000 0.278545 +v 0.265165 0.250000 0.359835 +v 0.346455 0.250000 0.481493 +v 0.375000 0.250000 0.625000 +v 0.346455 0.250000 0.768507 +v 0.265165 0.250000 0.890165 +v 0.143506 0.250000 0.971455 +v -0.000000 0.250000 1.000000 +v -0.143506 0.250000 0.971455 +v -0.265165 0.250000 0.890165 +v -0.346455 0.250000 0.768506 +v -0.375000 0.250000 0.625000 +v -0.346455 0.250000 0.481494 +v -0.265165 0.250000 0.359835 +v -0.000000 0.250000 0.250000 +v -0.143506 0.250000 0.278545 +v 0.143506 0.000000 0.278545 +v 0.265165 0.000000 0.359835 +v 0.346455 0.000000 0.481493 +v 0.375000 0.000000 0.625000 +v 0.346455 0.000000 0.768507 +v 0.265165 0.000000 0.890165 +v 0.143506 0.000000 0.971455 +v -0.000000 0.000000 1.000000 +v -0.143506 0.000000 0.971455 +v -0.265165 0.000000 0.890165 +v -0.346455 0.000000 0.768506 +v -0.375000 0.000000 0.625000 +v -0.346455 0.000000 0.481494 +v -0.265165 0.000000 0.359835 +v -0.143506 0.000000 0.278545 +v -0.000000 0.000000 0.250000 +v 0.720671 0.500000 -0.230970 +v 0.801777 0.500000 -0.176777 +v 0.855970 0.500000 -0.095671 +v 0.875000 0.500000 0.000000 +v 0.855970 0.500000 0.095671 +v 0.801777 0.500000 0.176777 +v 0.720671 0.500000 0.230970 +v 0.625000 0.500000 0.250000 +v 0.529329 0.500000 0.230970 +v 0.448223 0.500000 0.176777 +v 0.394030 0.500000 0.095671 +v 0.375000 0.500000 0.000000 +v 0.394030 0.500000 -0.095671 +v 0.448223 0.500000 -0.176777 +v 0.529329 0.500000 -0.230970 +v 0.625000 0.500000 -0.250000 +v 0.768506 0.250000 -0.346455 +v 0.890165 0.250000 -0.265165 +v 0.971455 0.250000 -0.143507 +v 1.000000 0.250000 0.000000 +v 0.971455 0.250000 0.143507 +v 0.890165 0.250000 0.265165 +v 0.768506 0.250000 0.346455 +v 0.625000 0.250000 0.375000 +v 0.481494 0.250000 0.346455 +v 0.359835 0.250000 0.265165 +v 0.278545 0.250000 0.143506 +v 0.250000 0.250000 0.000000 +v 0.278545 0.250000 -0.143506 +v 0.359835 0.250000 -0.265165 +v 0.625000 0.250000 -0.375000 +v 0.481494 0.250000 -0.346455 +v 0.768506 0.000000 -0.346455 +v 0.890165 0.000000 -0.265165 +v 0.971455 0.000000 -0.143507 +v 1.000000 0.000000 0.000000 +v 0.971455 0.000000 0.143507 +v 0.890165 0.000000 0.265165 +v 0.768506 0.000000 0.346455 +v 0.625000 0.000000 0.375000 +v 0.481494 0.000000 0.346455 +v 0.359835 0.000000 0.265165 +v 0.278545 0.000000 0.143506 +v 0.250000 0.000000 0.000000 +v 0.278545 0.000000 -0.143506 +v 0.359835 0.000000 -0.265165 +v 0.481494 0.000000 -0.346455 +v 0.625000 0.000000 -0.375000 +v -0.529329 0.500000 -0.230970 +v -0.448223 0.500000 -0.176777 +v -0.394030 0.500000 -0.095671 +v -0.375000 0.500000 0.000000 +v -0.394030 0.500000 0.095671 +v -0.448223 0.500000 0.176777 +v -0.529329 0.500000 0.230970 +v -0.625000 0.500000 0.250000 +v -0.720671 0.500000 0.230970 +v -0.801777 0.500000 0.176777 +v -0.855970 0.500000 0.095671 +v -0.875000 0.500000 0.000000 +v -0.855970 0.500000 -0.095671 +v -0.801777 0.500000 -0.176777 +v -0.720671 0.500000 -0.230970 +v -0.625000 0.500000 -0.250000 +v -0.481494 0.250000 -0.346455 +v -0.359835 0.250000 -0.265165 +v -0.278545 0.250000 -0.143507 +v -0.250000 0.250000 0.000000 +v -0.278545 0.250000 0.143507 +v -0.359835 0.250000 0.265165 +v -0.481494 0.250000 0.346455 +v -0.625000 0.250000 0.375000 +v -0.768506 0.250000 0.346455 +v -0.890165 0.250000 0.265165 +v -0.971455 0.250000 0.143506 +v -1.000000 0.250000 0.000000 +v -0.971455 0.250000 -0.143506 +v -0.890165 0.250000 -0.265165 +v -0.625000 0.250000 -0.375000 +v -0.768506 0.250000 -0.346455 +v -0.481494 0.000000 -0.346455 +v -0.359835 0.000000 -0.265165 +v -0.278545 0.000000 -0.143507 +v -0.250000 0.000000 0.000000 +v -0.278545 0.000000 0.143507 +v -0.359835 0.000000 0.265165 +v -0.481494 0.000000 0.346455 +v -0.625000 0.000000 0.375000 +v -0.768506 0.000000 0.346455 +v -0.890165 0.000000 0.265165 +v -0.971455 0.000000 0.143506 +v -1.000000 0.000000 0.000000 +v -0.971455 0.000000 -0.143506 +v -0.890165 0.000000 -0.265165 +v -0.768506 0.000000 -0.346455 +v -0.625000 0.000000 -0.375000 +v -0.839689 3.375000 0.751301 +v -0.751301 3.375000 0.839689 +v -1.502602 0.375000 1.502602 +v -0.839689 0.375000 0.751301 +v -0.751301 0.375000 0.839689 +v -1.502602 1.375000 1.502602 +v -0.751301 3.375000 -0.839689 +v -0.839689 3.375000 -0.751301 +v -1.502602 0.375000 -1.502602 +v -0.751301 0.375000 -0.839689 +v -0.839689 0.375000 -0.751301 +v -1.502602 1.375000 -1.502602 +v 0.751301 3.375000 0.839689 +v 0.839689 3.375000 0.751301 +v 1.502602 0.375000 1.502601 +v 0.751301 0.375000 0.839689 +v 0.839689 0.375000 0.751301 +v 1.502602 1.375000 1.502601 +v -1.010000 7.313000 0.010000 +v -0.933879 7.313000 0.392684 +v -0.717106 7.313000 0.717107 +v -0.392683 7.313000 0.933880 +v -0.392683 8.500000 0.933880 +v -0.717106 8.500000 0.717107 +v -0.933879 8.500000 0.392684 +v -1.010000 8.500000 0.010000 +vt 0.291667 0.471698 +vt 0.250000 0.462264 +vt 0.291667 0.462264 +vt 0.583333 0.471698 +vt 0.625000 0.462264 +vt 0.625000 0.471698 +vt 0.208333 0.471698 +vt 0.250000 0.471698 +vt 0.541667 0.471698 +vt 0.583333 0.462264 +vt 0.166667 0.462264 +vt 0.208333 0.462264 +vt 0.500000 0.471698 +vt 0.458333 0.462264 +vt 0.500000 0.462264 +vt 0.541667 0.462264 +vt 0.125000 0.471698 +vt 0.166667 0.471698 +vt 0.416667 0.471698 +vt 0.458333 0.471698 +vt 0.083333 0.471698 +vt 0.125000 0.462264 +vt 0.375000 0.462264 +vt 0.416667 0.462264 +vt 0.041667 0.471698 +vt 0.083333 0.462264 +vt 0.375000 0.471698 +vt 0.333333 0.462264 +vt -0.000000 0.471698 +vt 0.041667 0.462264 +vt 0.333333 0.471698 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.666667 0.462264 +vt 0.666667 0.471698 +vt 0.333333 0.433962 +vt 0.291667 0.443396 +vt 0.291667 0.433962 +vt 0.375000 0.433962 +vt 0.333333 0.443396 +vt 0.416667 0.433962 +vt 0.375000 0.443396 +vt 0.458333 0.433962 +vt 0.416667 0.443396 +vt 0.500000 0.433962 +vt 0.458333 0.443396 +vt 0.541667 0.433962 +vt 0.500000 0.443396 +vt 0.583333 0.443396 +vt 0.541667 0.443396 +vt 0.583333 0.433962 +vt 0.625000 0.443396 +vt 0.625000 0.433962 +vt 0.666667 0.443396 +vt 0.000000 0.433962 +vt 0.041667 0.443396 +vt 0.000000 0.443396 +vt 0.041667 0.433962 +vt 0.083333 0.443396 +vt 0.125000 0.433962 +vt 0.083333 0.433962 +vt 0.166667 0.443396 +vt 0.125000 0.443396 +vt 0.208333 0.433962 +vt 0.166667 0.433962 +vt 0.250000 0.433962 +vt 0.208333 0.443396 +vt 0.250000 0.443396 +vt 0.903652 0.461671 +vt 0.903652 0.594933 +vt 0.707459 0.594933 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.000000 0.462264 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.666667 0.433962 +vt 0.933724 0.492241 +vt 0.944284 0.528302 +vt 0.933724 0.564363 +vt 0.858645 0.615360 +vt 0.805556 0.622533 +vt 0.752466 0.615360 +vt 0.677387 0.564362 +vt 0.666827 0.528302 +vt 0.677387 0.492241 +vt 0.707459 0.461671 +vt 0.752466 0.441244 +vt 0.805556 0.434071 +vt 0.858645 0.441244 +vt 0.888889 0.231132 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt -0.000000 0.358491 +vt 0.055556 0.000000 +vt 0.055556 0.358491 +vt 0.583333 0.698113 +vt 0.541667 0.811321 +vt 0.541667 0.698113 +vt 0.250000 0.698113 +vt 0.208333 0.811321 +vt 0.208333 0.698113 +vt 0.625000 0.698113 +vt 0.583333 0.811321 +vt 0.291667 0.698113 +vt 0.250000 0.811321 +vt 0.666667 0.698113 +vt 0.625000 0.811321 +vt 0.326389 0.811321 +vt 0.291667 0.811321 +vt 0.041667 0.698113 +vt 0.000000 0.811321 +vt -0.000000 0.698113 +vt 0.375000 0.698113 +vt 0.333333 0.811321 +vt 0.333333 0.698113 +vt 0.083333 0.698113 +vt 0.041667 0.811321 +vt 0.416667 0.698113 +vt 0.375000 0.811321 +vt 0.125000 0.698113 +vt 0.083333 0.811321 +vt 0.458333 0.698113 +vt 0.416667 0.811321 +vt 0.166667 0.698113 +vt 0.125000 0.811321 +vt 0.500000 0.811321 +vt 0.500000 0.698113 +vt 0.458333 0.811321 +vt 0.166667 0.811321 +vt 0.388889 0.358491 +vt 0.444444 0.000000 +vt 0.444444 0.358491 +vt 0.576389 0.811321 +vt 0.562500 1.000000 +vt 0.618056 0.811321 +vt 0.604167 1.000000 +vt 0.659722 0.811321 +vt 0.645833 1.000000 +vt 0.034722 0.811321 +vt 0.020833 1.000000 +vt 0.076389 0.811321 +vt 0.062500 1.000000 +vt 0.118056 0.811321 +vt 0.104167 1.000000 +vt 0.159722 0.811321 +vt 0.145833 1.000000 +vt 0.194444 0.811321 +vt 0.187500 1.000000 +vt 0.243056 0.811321 +vt 0.229167 1.000000 +vt 0.284722 0.811321 +vt 0.270833 1.000000 +vt 0.312500 1.000000 +vt 0.368056 0.811321 +vt 0.354167 1.000000 +vt 0.409722 0.811321 +vt 0.395833 1.000000 +vt 0.451389 0.811321 +vt 0.437500 1.000000 +vt 0.493056 0.811321 +vt 0.479167 1.000000 +vt 0.534722 0.811321 +vt 0.520833 1.000000 +vt 0.833333 0.358491 +vt 0.888889 0.000000 +vt 0.888889 0.358491 +vt 0.333333 0.358491 +vt 0.388889 -0.000000 +vt 0.777778 0.358491 +vt 0.833333 0.000000 +vt 0.277778 0.358491 +vt 0.333333 -0.000000 +vt 0.722222 0.358491 +vt 0.777778 0.000000 +vt 0.222222 0.358491 +vt 0.277778 0.000000 +vt 0.611111 0.358491 +vt 0.666667 0.000000 +vt 0.666667 0.358491 +vt 0.729167 0.000000 +vt 0.166667 0.358491 +vt 0.222222 -0.000000 +vt 0.555556 0.358491 +vt 0.611111 0.000000 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.660377 +vt 0.819444 0.641509 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.555556 0.433962 +vt 0.611111 0.433962 +vt 0.500000 0.000000 +vt 0.500000 0.358491 +vt 0.166667 0.433962 +vt 0.111111 0.358491 +vt 0.500000 0.433962 +vt 0.055556 0.433962 +vt 0.111111 0.433962 +vt 0.444444 0.433962 +vt 0.833333 0.433962 +vt 0.888889 0.433962 +vt 0.333333 0.433962 +vt 0.388889 0.433962 +vt 0.777778 0.433962 +vt 0.722222 0.433962 +vt 0.222222 0.433962 +vt 0.277778 0.433962 +vt 0.666667 0.433962 +vt 0.166667 -0.000000 +vt 0.555556 -0.000000 +vt 0.111111 -0.000000 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.641509 +vt 0.777778 0.660377 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.641509 +vt 0.750000 0.660377 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.000000 0.000000 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.7498 0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn -0.6325 0.4472 0.6325 +vn -0.7498 0.0000 -0.6616 +vn 0.6616 0.0000 0.7498 +vn -0.6325 0.4472 -0.6325 +vn 0.6616 0.0000 -0.7498 +vn -0.7498 0.0000 0.6616 +vn 0.6325 0.4472 0.6325 +vn -0.6616 0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn -1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 0.3827 +vn -0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 -0.9207 +vn 0.7047 0.0830 0.7047 +vn 0.3814 0.0830 0.9207 +vn -0.9207 0.0830 -0.3814 +vn 0.9207 0.0830 0.3814 +vn -0.9965 0.0830 -0.0000 +vn 0.9965 0.0830 0.0000 +vn -0.9207 0.0830 0.3814 +vn 0.9207 0.0830 -0.3814 +vn -0.7047 0.0830 0.7047 +vn 0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 0.9207 +vn 0.3814 0.0830 -0.9207 +vn -0.0000 0.0830 0.9965 +vn -0.0000 0.0830 -0.9965 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn -0.3612 0.3304 -0.8720 +vn -0.6674 0.3304 -0.6674 +vn -0.8720 0.3304 -0.3612 +vn -0.9439 0.3304 0.0000 +vn -0.8720 0.3304 0.3612 +vn -0.6674 0.3304 0.6674 +vn -0.3612 0.3304 0.8720 +vn 0.0000 0.3304 0.9439 +vn 0.3612 0.3304 0.8720 +vn 0.6674 0.3304 0.6674 +vn 0.8720 0.3304 0.3612 +vn 0.9439 0.3304 0.0000 +vn 0.8720 0.3304 -0.3612 +vn 0.6674 0.3304 -0.6674 +vn 0.3612 0.3304 -0.8720 +vn -0.0000 0.3304 -0.9439 +vn -0.9239 0.0000 -0.3827 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.8263 0.4472 0.3423 +vn 0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn -0.3423 0.4472 0.8263 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.3423 0.4472 -0.8263 +vn 0.8263 0.4472 -0.3423 +vn 0.8944 0.4472 -0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 -0.8963 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn 0.8963 0.2425 -0.3713 +vn -0.8963 0.2425 0.3713 +vn 0.9701 0.2425 -0.0000 +vn -0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn -0.8963 0.2425 -0.3713 +vn 0.6860 0.2425 0.6860 +vn -0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.3713 0.2425 -0.8963 +vn 0.0000 0.2425 0.9701 +vn 0.0000 0.2425 -0.9701 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 0.0000 -0.1951 +vn -0.5556 0.0000 0.8315 +vn -0.9808 0.0000 0.1951 +s off +f 141/1/1 156/2/1 157/3/1 +f 132/4/1 149/5/1 133/6/1 +f 139/7/1 156/2/1 140/8/1 +f 131/9/1 148/10/1 132/4/1 +f 139/7/1 154/11/1 155/12/1 +f 130/13/1 161/14/1 146/15/1 +f 131/9/1 146/15/1 147/16/1 +f 137/17/1 154/11/1 138/18/1 +f 144/19/1 161/14/1 145/20/1 +f 136/21/1 153/22/1 137/17/1 +f 144/19/1 159/23/1 160/24/1 +f 135/25/1 152/26/1 136/21/1 +f 143/27/1 158/28/1 159/23/1 +f 134/29/1 151/30/1 135/25/1 +f 142/31/1 157/3/1 158/28/1 +f 85/32/1 89/33/1 93/34/1 +f 133/6/1 150/35/1 134/36/1 +f 126/37/2 173/38/2 125/39/2 +f 127/40/2 174/41/2 126/37/2 +f 128/42/2 175/43/2 127/40/2 +f 129/44/2 176/45/2 128/42/2 +f 114/46/2 177/47/2 129/44/2 +f 115/48/2 162/49/2 114/46/2 +f 115/48/2 164/50/2 163/51/2 +f 116/52/2 165/53/2 164/50/2 +f 117/54/2 166/55/2 165/53/2 +f 118/56/2 167/57/2 166/58/2 +f 119/59/2 168/60/2 167/57/2 +f 121/61/2 168/60/2 120/62/2 +f 121/61/2 170/63/2 169/64/2 +f 123/65/2 170/63/2 122/66/2 +f 124/67/2 171/68/2 123/65/2 +f 125/39/2 172/69/2 124/67/2 +f 12/70/1 112/71/1 4/72/1 +f 188/73/1 189/74/1 190/75/1 +f 186/76/3 191/77/3 187/78/3 +f 189/74/4 191/79/4 186/76/4 +f 190/80/5 191/79/5 188/73/5 +f 229/81/1 233/82/1 237/83/1 +f 277/84/1 281/85/1 285/86/1 +f 325/87/1 329/88/1 333/89/1 +f 338/90/1 339/91/1 340/92/1 +f 336/93/6 341/94/6 337/95/6 +f 339/91/7 341/96/7 336/93/7 +f 340/97/8 341/96/8 338/90/8 +f 344/98/1 345/99/1 346/100/1 +f 342/101/9 347/102/9 343/103/9 +f 345/99/10 347/104/10 342/101/10 +f 346/105/11 347/104/11 344/98/11 +f 350/106/1 351/107/1 352/108/1 +f 348/109/12 353/110/12 349/111/12 +f 351/107/13 353/112/13 348/109/13 +f 352/113/14 353/112/14 350/106/14 +f 141/1/1 140/8/1 156/2/1 +f 132/4/1 148/10/1 149/5/1 +f 139/7/1 155/12/1 156/2/1 +f 131/9/1 147/16/1 148/10/1 +f 139/7/1 138/18/1 154/11/1 +f 130/13/1 145/20/1 161/14/1 +f 131/9/1 130/13/1 146/15/1 +f 137/17/1 153/22/1 154/11/1 +f 144/19/1 160/24/1 161/14/1 +f 136/21/1 152/26/1 153/22/1 +f 144/19/1 143/27/1 159/23/1 +f 135/25/1 151/30/1 152/26/1 +f 143/27/1 142/31/1 158/28/1 +f 134/29/1 150/114/1 151/30/1 +f 142/31/1 141/1/1 157/3/1 +f 93/34/1 94/115/1 81/116/1 +f 94/115/1 95/117/1 81/116/1 +f 95/117/1 80/118/1 81/116/1 +f 81/116/1 82/119/1 83/120/1 +f 83/120/1 84/121/1 85/32/1 +f 85/32/1 86/122/1 89/33/1 +f 86/122/1 87/123/1 89/33/1 +f 87/123/1 88/124/1 89/33/1 +f 89/33/1 90/125/1 91/126/1 +f 91/126/1 92/127/1 89/33/1 +f 92/127/1 93/34/1 89/33/1 +f 81/116/1 83/120/1 93/34/1 +f 83/120/1 85/32/1 93/34/1 +f 133/6/1 149/5/1 150/35/1 +f 126/37/2 174/41/2 173/38/2 +f 127/40/2 175/43/2 174/41/2 +f 128/42/2 176/45/2 175/43/2 +f 129/44/2 177/47/2 176/45/2 +f 114/46/2 162/49/2 177/47/2 +f 115/48/2 163/51/2 162/49/2 +f 115/48/2 116/52/2 164/50/2 +f 116/52/2 117/54/2 165/53/2 +f 117/54/2 118/128/2 166/55/2 +f 118/56/2 119/59/2 167/57/2 +f 119/59/2 120/62/2 168/60/2 +f 121/61/2 169/64/2 168/60/2 +f 121/61/2 122/66/2 170/63/2 +f 123/65/2 171/68/2 170/63/2 +f 124/67/2 172/69/2 171/68/2 +f 125/39/2 173/38/2 172/69/2 +f 12/70/1 13/129/1 14/130/1 +f 14/130/1 113/131/1 12/70/1 +f 113/131/1 112/71/1 12/70/1 +f 112/71/1 1/132/1 2/133/1 +f 2/133/1 3/134/1 4/72/1 +f 4/72/1 5/135/1 6/136/1 +f 6/136/1 7/137/1 8/138/1 +f 8/138/1 9/139/1 10/140/1 +f 10/140/1 11/141/1 12/70/1 +f 112/71/1 2/133/1 4/72/1 +f 4/72/1 6/136/1 12/70/1 +f 6/136/1 8/138/1 12/70/1 +f 8/138/1 10/140/1 12/70/1 +f 189/74/4 188/73/4 191/79/4 +f 190/80/5 187/142/5 191/79/5 +f 237/83/1 238/143/1 225/144/1 +f 238/143/1 239/145/1 225/144/1 +f 239/145/1 224/146/1 225/144/1 +f 225/144/1 226/147/1 227/148/1 +f 227/148/1 228/149/1 229/81/1 +f 229/81/1 230/150/1 233/82/1 +f 230/150/1 231/151/1 233/82/1 +f 231/151/1 232/152/1 233/82/1 +f 233/82/1 234/153/1 235/154/1 +f 235/154/1 236/155/1 233/82/1 +f 236/155/1 237/83/1 233/82/1 +f 225/144/1 227/148/1 237/83/1 +f 227/148/1 229/81/1 237/83/1 +f 285/86/1 286/156/1 273/157/1 +f 286/156/1 287/158/1 273/157/1 +f 287/158/1 272/159/1 273/157/1 +f 273/157/1 274/160/1 275/161/1 +f 275/161/1 276/162/1 277/84/1 +f 277/84/1 278/163/1 281/85/1 +f 278/163/1 279/164/1 281/85/1 +f 279/164/1 280/165/1 281/85/1 +f 281/85/1 282/166/1 283/167/1 +f 283/167/1 284/168/1 281/85/1 +f 284/168/1 285/86/1 281/85/1 +f 273/157/1 275/161/1 285/86/1 +f 275/161/1 277/84/1 285/86/1 +f 333/89/1 334/169/1 321/170/1 +f 334/169/1 335/171/1 321/170/1 +f 335/171/1 320/172/1 321/170/1 +f 321/170/1 322/173/1 323/174/1 +f 323/174/1 324/175/1 325/87/1 +f 325/87/1 326/176/1 329/88/1 +f 326/176/1 327/177/1 329/88/1 +f 327/177/1 328/178/1 329/88/1 +f 329/88/1 330/179/1 331/180/1 +f 331/180/1 332/181/1 329/88/1 +f 332/181/1 333/89/1 329/88/1 +f 321/170/1 323/174/1 333/89/1 +f 323/174/1 325/87/1 333/89/1 +f 339/91/7 338/90/7 341/96/7 +f 340/97/8 337/182/8 341/96/8 +f 345/99/10 344/98/10 347/104/10 +f 346/105/11 343/183/11 347/104/11 +f 351/107/13 350/106/13 353/112/13 +f 352/113/14 349/184/14 353/112/14 +s 1 +f 100/185/15 9/186/16 101/187/16 +f 17/188/17 32/189/18 16/190/18 +f 25/191/19 40/192/20 24/193/20 +f 18/194/21 33/195/17 17/188/17 +f 26/196/22 41/197/19 25/191/19 +f 19/198/23 34/199/21 18/194/21 +f 26/196/22 43/200/24 42/201/22 +f 20/202/25 35/203/23 19/204/23 +f 28/205/26 43/206/24 27/207/24 +f 21/208/27 36/209/25 20/202/25 +f 29/210/28 44/211/26 28/205/26 +f 22/212/29 37/213/27 21/208/27 +f 30/214/30 45/215/28 29/210/28 +f 23/216/31 38/217/29 22/212/29 +f 16/190/18 31/218/32 15/219/32 +f 15/219/32 46/220/30 30/214/30 +f 24/193/20 39/221/31 23/216/31 +f 107/222/33 2/223/34 108/224/34 +f 32/189/35 33/225/36 47/226/2 +f 33/195/36 34/227/37 47/228/2 +f 34/199/37 35/229/38 47/230/2 +f 35/203/38 36/231/39 47/232/2 +f 36/209/39 37/233/40 47/234/2 +f 37/213/40 38/235/41 47/236/2 +f 38/217/41 39/237/42 47/238/2 +f 39/221/42 40/239/43 47/240/2 +f 40/192/43 41/241/44 47/242/2 +f 41/197/44 42/243/45 47/244/2 +f 42/201/45 43/200/46 47/245/2 +f 43/206/46 44/246/47 47/247/2 +f 44/211/47 45/248/48 47/249/2 +f 45/215/48 46/250/49 47/251/2 +f 46/220/49 31/252/50 47/253/2 +f 31/218/50 32/254/35 47/255/2 +f 99/256/51 10/257/15 100/258/15 +f 106/259/52 3/260/33 107/222/33 +f 98/261/53 11/262/51 99/256/51 +f 105/263/54 4/264/52 106/259/52 +f 97/265/55 12/266/53 98/261/53 +f 104/267/56 5/268/54 105/263/54 +f 111/269/57 14/270/58 96/271/58 +f 96/271/58 13/272/55 97/265/55 +f 103/273/59 6/274/56 104/267/56 +f 110/275/60 113/276/57 111/269/57 +f 68/277/61 53/278/12 69/279/12 +f 70/280/62 53/278/12 54/281/62 +f 70/280/62 55/282/63 71/283/63 +f 72/284/64 55/285/63 56/286/64 +f 72/284/64 57/287/6 73/288/6 +f 73/288/6 58/289/65 74/290/65 +f 74/290/65 59/291/66 75/292/66 +f 75/292/66 60/293/67 76/294/67 +f 76/294/67 61/295/9 77/296/9 +f 79/297/68 61/295/9 62/298/68 +f 79/297/68 63/299/69 78/300/69 +f 78/300/69 48/301/70 64/302/70 +f 64/302/70 49/303/3 65/304/3 +f 66/305/71 49/303/3 50/306/71 +f 67/307/72 50/306/71 51/308/72 +f 92/309/51 77/296/53 93/310/53 +f 85/311/52 70/280/54 86/312/54 +f 93/310/53 79/297/55 94/313/55 +f 86/312/54 71/283/56 87/314/56 +f 95/315/58 64/302/57 80/316/57 +f 94/313/55 78/300/58 95/315/58 +f 87/317/56 72/284/59 88/318/59 +f 80/316/57 65/304/60 81/319/60 +f 88/318/59 73/288/73 89/320/73 +f 81/319/60 66/305/74 82/321/74 +f 89/320/73 74/290/16 90/322/16 +f 82/321/74 67/307/34 83/323/34 +f 90/322/16 75/292/15 91/324/15 +f 83/323/34 68/277/33 84/325/33 +f 91/324/15 76/294/51 92/309/51 +f 84/325/33 69/279/52 85/311/52 +f 67/307/72 52/326/61 68/277/61 +f 128/327/75 111/269/76 129/328/76 +f 108/224/34 1/329/74 109/330/74 +f 147/16/55 164/50/53 148/10/53 +f 155/12/54 172/69/52 156/2/52 +f 148/10/53 165/53/51 149/5/51 +f 156/2/52 173/38/33 157/3/33 +f 149/5/51 166/55/15 150/35/15 +f 157/3/33 174/41/34 158/28/34 +f 150/114/15 167/57/16 151/30/16 +f 158/28/34 175/43/74 159/23/74 +f 151/30/16 168/60/73 152/26/73 +f 159/23/74 176/45/60 160/24/60 +f 152/26/73 169/64/59 153/22/59 +f 160/24/60 177/47/57 161/14/57 +f 153/22/59 170/63/56 154/11/56 +f 146/15/58 163/51/55 147/16/55 +f 161/14/57 162/49/58 146/15/58 +f 154/11/56 171/68/54 155/12/54 +f 121/331/77 102/332/78 103/273/77 +f 127/333/79 110/275/75 128/327/75 +f 119/334/80 102/332/78 120/335/78 +f 126/336/81 109/330/79 127/333/79 +f 119/334/80 100/185/82 101/187/80 +f 126/336/81 107/222/83 108/224/81 +f 117/337/84 100/258/82 118/338/82 +f 124/339/85 107/222/83 125/340/83 +f 116/341/86 99/256/84 117/337/84 +f 124/339/85 105/263/87 106/259/85 +f 115/342/88 98/261/86 116/341/86 +f 122/343/89 105/263/87 123/344/87 +f 114/345/90 111/269/76 96/271/90 +f 114/345/90 97/265/88 115/342/88 +f 121/331/77 104/267/89 122/343/89 +f 102/332/73 7/346/59 103/273/59 +f 109/330/74 112/347/60 110/275/60 +f 101/187/16 8/348/73 102/332/73 +f 141/1/33 27/207/34 26/196/33 +f 142/31/34 28/205/74 27/207/34 +f 143/27/74 29/210/60 28/205/74 +f 144/19/60 30/214/57 29/210/60 +f 145/20/57 15/219/58 30/214/57 +f 130/13/58 16/190/55 15/219/58 +f 131/9/55 17/188/53 16/190/55 +f 132/4/53 18/194/51 17/188/53 +f 133/6/51 19/198/15 18/194/51 +f 134/29/15 20/202/16 19/204/15 +f 135/25/16 21/208/73 20/202/16 +f 136/21/73 22/212/59 21/208/73 +f 137/17/59 23/216/56 22/212/59 +f 138/18/56 24/193/54 23/216/56 +f 139/7/54 25/191/52 24/193/54 +f 140/8/52 26/196/33 25/191/52 +f 180/349/60 182/350/91 183/351/60 +f 179/352/74 183/351/60 184/353/74 +f 178/354/92 184/353/74 185/355/92 +f 212/356/61 197/357/12 213/358/12 +f 214/359/62 197/357/12 198/360/62 +f 214/359/62 199/361/63 215/362/63 +f 216/363/64 199/364/63 200/365/64 +f 216/363/64 201/366/6 217/367/6 +f 217/367/6 202/368/65 218/369/65 +f 218/369/65 203/370/66 219/371/66 +f 220/372/67 203/370/66 204/373/67 +f 220/372/67 205/374/9 221/375/9 +f 223/376/68 205/374/9 206/377/68 +f 222/378/69 206/377/68 207/379/69 +f 222/378/69 192/380/70 208/381/70 +f 209/382/3 192/380/70 193/383/3 +f 210/384/71 193/383/3 194/385/71 +f 211/386/72 194/385/71 195/387/72 +f 236/388/51 221/375/53 237/389/53 +f 229/390/52 214/359/54 230/391/54 +f 237/389/53 223/376/55 238/392/55 +f 230/391/54 215/362/56 231/393/56 +f 239/394/58 208/381/57 224/395/57 +f 238/392/55 222/378/58 239/394/58 +f 231/396/56 216/363/59 232/397/59 +f 224/395/57 209/382/60 225/398/60 +f 232/397/59 217/367/73 233/399/73 +f 225/398/60 210/384/74 226/400/74 +f 233/399/73 218/369/16 234/401/16 +f 226/400/74 211/386/34 227/402/34 +f 234/401/16 219/371/15 235/403/15 +f 227/402/34 212/356/33 228/404/33 +f 235/403/15 220/372/51 236/388/51 +f 228/404/33 213/358/52 229/390/52 +f 211/386/72 196/405/61 212/356/61 +f 260/406/61 245/407/12 261/408/12 +f 262/409/62 245/407/12 246/410/62 +f 262/409/62 247/411/63 263/412/63 +f 264/413/64 247/414/63 248/415/64 +f 264/413/64 249/416/6 265/417/6 +f 265/417/6 250/418/65 266/419/65 +f 266/419/65 251/420/66 267/421/66 +f 268/422/67 251/420/66 252/423/67 +f 268/422/67 253/424/9 269/425/9 +f 271/426/68 253/424/9 254/427/68 +f 271/426/68 255/428/69 270/429/69 +f 270/429/69 240/430/70 256/431/70 +f 256/431/70 241/432/3 257/433/3 +f 258/434/71 241/432/3 242/435/71 +f 259/436/72 242/435/71 243/437/72 +f 284/438/51 269/425/53 285/439/53 +f 277/440/52 262/409/54 278/441/54 +f 285/439/53 271/426/55 286/442/55 +f 278/441/54 263/412/56 279/443/56 +f 287/444/58 256/431/57 272/445/57 +f 286/442/55 270/429/58 287/444/58 +f 279/446/56 264/413/59 280/447/59 +f 272/445/57 257/433/60 273/448/60 +f 280/447/59 265/417/73 281/449/73 +f 273/448/60 258/434/74 274/450/74 +f 281/449/73 266/419/16 282/451/16 +f 274/450/74 259/436/34 275/452/34 +f 282/451/16 267/421/15 283/453/15 +f 275/452/34 260/406/33 276/454/33 +f 283/453/15 268/422/51 284/438/51 +f 276/454/33 261/408/52 277/440/52 +f 259/436/72 244/455/61 260/406/61 +f 308/456/61 293/457/12 309/458/12 +f 310/459/62 293/457/12 294/460/62 +f 310/459/62 295/461/63 311/462/63 +f 312/463/64 295/464/63 296/465/64 +f 312/463/64 297/466/6 313/467/6 +f 313/467/6 298/468/65 314/469/65 +f 314/469/65 299/470/66 315/471/66 +f 316/472/67 299/470/66 300/473/67 +f 316/472/67 301/474/9 317/475/9 +f 319/476/68 301/474/9 302/477/68 +f 319/476/68 303/478/69 318/479/69 +f 318/479/69 288/480/70 304/481/70 +f 304/481/70 289/482/3 305/483/3 +f 306/484/71 289/482/3 290/485/71 +f 307/486/72 290/485/71 291/487/72 +f 332/488/51 317/475/53 333/489/53 +f 325/490/52 310/459/54 326/491/54 +f 333/489/53 319/476/55 334/492/55 +f 326/491/54 311/462/56 327/493/56 +f 335/494/58 304/481/57 320/495/57 +f 334/492/55 318/479/58 335/494/58 +f 327/496/56 312/463/59 328/497/59 +f 320/495/57 305/483/60 321/498/60 +f 328/497/59 313/467/73 329/499/73 +f 321/498/60 306/484/74 322/500/74 +f 329/499/73 314/469/16 330/501/16 +f 322/500/74 307/486/34 323/502/34 +f 330/501/16 315/471/15 331/503/15 +f 323/502/34 308/456/33 324/504/33 +f 331/503/15 316/472/51 332/488/51 +f 324/504/33 309/458/52 325/490/52 +f 307/486/72 292/505/61 308/456/61 +f 356/506/73 358/507/93 359/508/73 +f 355/509/16 359/508/73 360/510/16 +f 354/511/94 360/510/16 361/512/94 +f 100/185/15 10/513/15 9/186/16 +f 17/188/17 33/225/17 32/189/18 +f 25/191/19 41/241/19 40/192/20 +f 18/194/21 34/227/21 33/195/17 +f 26/196/22 42/243/22 41/197/19 +f 19/198/23 35/229/23 34/199/21 +f 26/196/22 27/207/24 43/200/24 +f 20/202/25 36/231/25 35/203/23 +f 28/205/26 44/246/26 43/206/24 +f 21/208/27 37/233/27 36/209/25 +f 29/210/28 45/248/28 44/211/26 +f 22/212/29 38/235/29 37/213/27 +f 30/214/30 46/250/30 45/215/28 +f 23/216/31 39/237/31 38/217/29 +f 16/190/18 32/254/18 31/218/32 +f 15/219/32 31/252/32 46/220/30 +f 24/193/20 40/239/20 39/221/31 +f 107/222/33 3/260/33 2/223/34 +f 99/256/51 11/262/51 10/257/15 +f 106/259/52 4/264/52 3/260/33 +f 98/261/53 12/266/53 11/262/51 +f 105/263/54 5/268/54 4/264/52 +f 97/265/55 13/272/55 12/266/53 +f 104/267/56 6/274/56 5/268/54 +f 111/269/57 113/276/57 14/270/58 +f 96/271/58 14/270/58 13/272/55 +f 103/273/59 7/346/59 6/274/56 +f 110/275/60 112/347/60 113/276/57 +f 68/277/61 52/326/61 53/278/12 +f 70/280/62 69/279/12 53/278/12 +f 70/280/62 54/281/62 55/282/63 +f 72/284/64 71/514/63 55/285/63 +f 72/284/64 56/286/64 57/287/6 +f 73/288/6 57/287/6 58/289/65 +f 74/290/65 58/289/65 59/291/66 +f 75/292/66 59/291/66 60/293/67 +f 76/294/67 60/293/67 61/295/9 +f 79/297/68 77/296/9 61/295/9 +f 79/297/68 62/298/68 63/299/69 +f 78/300/69 63/299/69 48/301/70 +f 64/302/70 48/301/70 49/303/3 +f 66/305/71 65/304/3 49/303/3 +f 67/307/72 66/305/71 50/306/71 +f 92/309/51 76/294/51 77/296/53 +f 85/311/52 69/279/52 70/280/54 +f 93/310/53 77/296/53 79/297/55 +f 86/312/54 70/280/54 71/283/56 +f 95/315/58 78/300/58 64/302/57 +f 94/313/55 79/297/55 78/300/58 +f 87/317/56 71/514/56 72/284/59 +f 80/316/57 64/302/57 65/304/60 +f 88/318/59 72/284/59 73/288/73 +f 81/319/60 65/304/60 66/305/74 +f 89/320/73 73/288/73 74/290/16 +f 82/321/74 66/305/74 67/307/34 +f 90/322/16 74/290/16 75/292/15 +f 83/323/34 67/307/34 68/277/33 +f 91/324/15 75/292/15 76/294/51 +f 84/325/33 68/277/33 69/279/52 +f 67/307/72 51/308/72 52/326/61 +f 128/327/75 110/275/75 111/269/76 +f 108/224/34 2/223/34 1/329/74 +f 147/16/55 163/51/55 164/50/53 +f 155/12/54 171/68/54 172/69/52 +f 148/10/53 164/50/53 165/53/51 +f 156/2/52 172/69/52 173/38/33 +f 149/5/51 165/53/51 166/55/15 +f 157/3/33 173/38/33 174/41/34 +f 150/114/15 166/58/15 167/57/16 +f 158/28/34 174/41/34 175/43/74 +f 151/30/16 167/57/16 168/60/73 +f 159/23/74 175/43/74 176/45/60 +f 152/26/73 168/60/73 169/64/59 +f 160/24/60 176/45/60 177/47/57 +f 153/22/59 169/64/59 170/63/56 +f 146/15/58 162/49/58 163/51/55 +f 161/14/57 177/47/57 162/49/58 +f 154/11/56 170/63/56 171/68/54 +f 121/331/77 120/335/78 102/332/78 +f 127/333/79 109/330/79 110/275/75 +f 119/334/80 101/187/80 102/332/78 +f 126/336/81 108/224/81 109/330/79 +f 119/334/80 118/56/82 100/185/82 +f 126/336/81 125/340/83 107/222/83 +f 117/337/84 99/256/84 100/258/82 +f 124/339/85 106/259/85 107/222/83 +f 116/341/86 98/261/86 99/256/84 +f 124/339/85 123/344/87 105/263/87 +f 115/342/88 97/265/88 98/261/86 +f 122/343/89 104/267/89 105/263/87 +f 114/345/90 129/328/76 111/269/76 +f 114/345/90 96/271/90 97/265/88 +f 121/331/77 103/273/77 104/267/89 +f 102/332/73 8/348/73 7/346/59 +f 109/330/74 1/329/74 112/347/60 +f 101/187/16 9/186/16 8/348/73 +f 141/1/33 142/31/34 27/207/34 +f 142/31/34 143/27/74 28/205/74 +f 143/27/74 144/19/60 29/210/60 +f 144/19/60 145/20/57 30/214/57 +f 145/20/57 130/13/58 15/219/58 +f 130/13/58 131/9/55 16/190/55 +f 131/9/55 132/4/53 17/188/53 +f 132/4/53 133/6/51 18/194/51 +f 133/6/51 134/36/15 19/198/15 +f 134/29/15 135/25/16 20/202/16 +f 135/25/16 136/21/73 21/208/73 +f 136/21/73 137/17/59 22/212/59 +f 137/17/59 138/18/56 23/216/56 +f 138/18/56 139/7/54 24/193/54 +f 139/7/54 140/8/52 25/191/52 +f 140/8/52 141/1/33 26/196/33 +f 180/349/60 181/515/91 182/350/91 +f 179/352/74 180/349/60 183/351/60 +f 178/354/92 179/352/74 184/353/74 +f 212/356/61 196/405/61 197/357/12 +f 214/359/62 213/358/12 197/357/12 +f 214/359/62 198/360/62 199/361/63 +f 216/363/64 215/516/63 199/364/63 +f 216/363/64 200/365/64 201/366/6 +f 217/367/6 201/366/6 202/368/65 +f 218/369/65 202/368/65 203/370/66 +f 220/372/67 219/371/66 203/370/66 +f 220/372/67 204/373/67 205/374/9 +f 223/376/68 221/375/9 205/374/9 +f 222/378/69 223/376/68 206/377/68 +f 222/378/69 207/379/69 192/380/70 +f 209/382/3 208/381/70 192/380/70 +f 210/384/71 209/382/3 193/383/3 +f 211/386/72 210/384/71 194/385/71 +f 236/388/51 220/372/51 221/375/53 +f 229/390/52 213/358/52 214/359/54 +f 237/389/53 221/375/53 223/376/55 +f 230/391/54 214/359/54 215/362/56 +f 239/394/58 222/378/58 208/381/57 +f 238/392/55 223/376/55 222/378/58 +f 231/396/56 215/516/56 216/363/59 +f 224/395/57 208/381/57 209/382/60 +f 232/397/59 216/363/59 217/367/73 +f 225/398/60 209/382/60 210/384/74 +f 233/399/73 217/367/73 218/369/16 +f 226/400/74 210/384/74 211/386/34 +f 234/401/16 218/369/16 219/371/15 +f 227/402/34 211/386/34 212/356/33 +f 235/403/15 219/371/15 220/372/51 +f 228/404/33 212/356/33 213/358/52 +f 211/386/72 195/387/72 196/405/61 +f 260/406/61 244/455/61 245/407/12 +f 262/409/62 261/408/12 245/407/12 +f 262/409/62 246/410/62 247/411/63 +f 264/413/64 263/517/63 247/414/63 +f 264/413/64 248/415/64 249/416/6 +f 265/417/6 249/416/6 250/418/65 +f 266/419/65 250/418/65 251/420/66 +f 268/422/67 267/421/66 251/420/66 +f 268/422/67 252/423/67 253/424/9 +f 271/426/68 269/425/9 253/424/9 +f 271/426/68 254/427/68 255/428/69 +f 270/429/69 255/428/69 240/430/70 +f 256/431/70 240/430/70 241/432/3 +f 258/434/71 257/433/3 241/432/3 +f 259/436/72 258/434/71 242/435/71 +f 284/438/51 268/422/51 269/425/53 +f 277/440/52 261/408/52 262/409/54 +f 285/439/53 269/425/53 271/426/55 +f 278/441/54 262/409/54 263/412/56 +f 287/444/58 270/429/58 256/431/57 +f 286/442/55 271/426/55 270/429/58 +f 279/446/56 263/517/56 264/413/59 +f 272/445/57 256/431/57 257/433/60 +f 280/447/59 264/413/59 265/417/73 +f 273/448/60 257/433/60 258/434/74 +f 281/449/73 265/417/73 266/419/16 +f 274/450/74 258/434/74 259/436/34 +f 282/451/16 266/419/16 267/421/15 +f 275/452/34 259/436/34 260/406/33 +f 283/453/15 267/421/15 268/422/51 +f 276/454/33 260/406/33 261/408/52 +f 259/436/72 243/437/72 244/455/61 +f 308/456/61 292/505/61 293/457/12 +f 310/459/62 309/458/12 293/457/12 +f 310/459/62 294/460/62 295/461/63 +f 312/463/64 311/518/63 295/464/63 +f 312/463/64 296/465/64 297/466/6 +f 313/467/6 297/466/6 298/468/65 +f 314/469/65 298/468/65 299/470/66 +f 316/472/67 315/471/66 299/470/66 +f 316/472/67 300/473/67 301/474/9 +f 319/476/68 317/475/9 301/474/9 +f 319/476/68 302/477/68 303/478/69 +f 318/479/69 303/478/69 288/480/70 +f 304/481/70 288/480/70 289/482/3 +f 306/484/71 305/483/3 289/482/3 +f 307/486/72 306/484/71 290/485/71 +f 332/488/51 316/472/51 317/475/53 +f 325/490/52 309/458/52 310/459/54 +f 333/489/53 317/475/53 319/476/55 +f 326/491/54 310/459/54 311/462/56 +f 335/494/58 318/479/58 304/481/57 +f 334/492/55 319/476/55 318/479/58 +f 327/496/56 311/518/56 312/463/59 +f 320/495/57 304/481/57 305/483/60 +f 328/497/59 312/463/59 313/467/73 +f 321/498/60 305/483/60 306/484/74 +f 329/499/73 313/467/73 314/469/16 +f 322/500/74 306/484/74 307/486/34 +f 330/501/16 314/469/16 315/471/15 +f 323/502/34 307/486/34 308/456/33 +f 331/503/15 315/471/15 316/472/51 +f 324/504/33 308/456/33 309/458/52 +f 307/486/72 291/487/72 292/505/61 +f 356/506/73 357/519/93 358/507/93 +f 355/509/16 356/506/73 359/508/73 +f 354/511/94 355/509/16 360/510/16 diff --git a/src/main/resources/assets/hbm/models/missile_stealth.obj b/src/main/resources/assets/hbm/models/missile_stealth.obj new file mode 100644 index 000000000..f723b225a --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_stealth.obj @@ -0,0 +1,384 @@ +# Blender v2.79 (sub 0) OBJ File: 'MissileStealth.blend' +# www.blender.org +o Cylinder +v 0.487139 0.500000 -0.281250 +v 0.487139 0.500000 0.281250 +v 0.000000 0.500000 0.562500 +v -0.487139 0.500000 0.281250 +v 0.000000 0.500000 -0.562500 +v -0.487139 0.500000 -0.281250 +v 0.000000 1.000000 -0.750000 +v -0.649519 1.000000 -0.375000 +v -0.649519 1.000000 0.375000 +v 0.000000 1.000000 0.750000 +v 0.649519 1.000000 0.375000 +v 0.649519 1.000000 -0.375000 +v 0.000000 7.000000 -0.750000 +v -0.649519 7.000000 -0.375000 +v -0.649519 7.000000 0.375000 +v 0.000000 7.000000 0.750000 +v 0.649519 7.000000 0.375000 +v 0.649519 7.000000 -0.375000 +v 0.000000 11.000000 0.000000 +v 0.755918 -0.020288 -1.295622 +v 0.255918 0.979712 -0.429596 +v 0.505918 -0.020288 -0.862609 +v 0.755918 1.479711 -1.295621 +v 0.255918 3.479711 -0.429596 +v 0.310045 0.979712 -0.398346 +v 0.310045 3.479711 -0.398346 +v 0.810045 -0.020288 -1.264372 +v 0.560045 -0.020288 -0.831359 +v 0.810045 1.479711 -1.264371 +v 0.689955 1.479712 1.333705 +v 0.439955 -0.020288 0.900692 +v 0.689955 -0.020288 1.333705 +v 0.189955 3.479711 0.467680 +v 0.189955 0.979712 0.467680 +v 0.244082 3.479711 0.436430 +v 0.744082 1.479712 1.302455 +v 0.494082 -0.020288 0.869442 +v 0.244082 0.979712 0.436430 +v 0.744082 -0.020288 1.302455 +v -1.500000 -0.020288 -0.006834 +v -0.500000 0.979712 -0.006834 +v -1.000000 -0.020288 -0.006834 +v -1.500000 1.479712 -0.006834 +v -0.500000 3.479712 -0.006834 +v -0.500000 0.979712 -0.069334 +v -0.500000 3.479712 -0.069334 +v -1.500000 -0.020288 -0.069334 +v -1.000000 -0.020288 -0.069334 +v -1.500000 1.479712 -0.069334 +v -0.744082 -0.020288 -1.302455 +v -0.244082 0.979712 -0.436430 +v -0.494082 -0.020288 -0.869442 +v -0.744082 1.479711 -1.302455 +v -0.244082 3.479711 -0.436430 +v -0.189955 0.979712 -0.467680 +v -0.189955 3.479711 -0.467680 +v -0.689956 -0.020288 -1.333705 +v -0.439955 -0.020288 -0.900692 +v -0.689956 1.479711 -1.333705 +v 1.500000 1.479712 0.069333 +v 1.000000 -0.020288 0.069334 +v 1.500000 -0.020288 0.069333 +v 0.500000 3.479711 0.069334 +v 0.500000 0.979712 0.069334 +v 0.500000 3.479711 0.006834 +v 1.500000 1.479712 0.006834 +v 1.000000 -0.020288 0.006834 +v 0.500000 0.979712 0.006834 +v 1.500000 -0.020288 0.006833 +v -0.755918 -0.020288 1.295621 +v -0.255918 0.979712 0.429596 +v -0.505918 -0.020288 0.862609 +v -0.755918 1.479712 1.295621 +v -0.255918 3.479712 0.429596 +v -0.310045 0.979712 0.398346 +v -0.310045 3.479712 0.398346 +v -0.810045 -0.020288 1.264371 +v -0.560045 -0.020288 0.831359 +v -0.810045 1.479712 1.264371 +vt 0.400000 0.047619 +vt 0.511111 0.000000 +vt 0.533333 0.047619 +vt 0.666667 0.047619 +vt 0.777778 -0.000000 +vt 0.800000 0.047619 +vt 0.133333 0.047619 +vt 0.244444 0.000000 +vt 0.266667 0.047619 +vt 0.644444 0.000000 +vt 0.022222 0.000000 +vt 0.111111 0.000000 +vt 0.850033 0.099935 +vt 0.800066 0.053571 +vt 0.850033 0.007208 +vt 0.266667 0.619048 +vt 0.000000 0.619048 +vt 0.000000 0.047619 +vt 0.533333 0.619048 +vt 0.133333 0.619048 +vt 0.666667 0.619048 +vt 0.400000 0.619048 +vt 0.377778 0.000000 +vt 0.600000 1.000000 +vt 0.800000 0.619048 +vt 0.733333 1.000000 +vt 0.066667 1.000000 +vt 0.200000 1.000000 +vt 0.333333 1.000000 +vt 0.466667 1.000000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.202381 +vt 0.988889 0.583333 +vt 0.988889 0.107143 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.977778 0.202381 +vt 0.977778 0.107143 +vt 0.988889 0.392857 +vt 0.977778 0.583333 +vt 0.977778 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.988889 0.202381 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.988889 0.583333 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.977778 0.250000 +vt 0.977778 0.202381 +vt 0.988889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.392857 +vt 0.977778 0.250000 +vt 0.888889 0.250000 +vt 0.888889 0.250000 +vt 0.977778 0.250000 +vt 0.977778 0.392857 +vt 0.988889 0.392857 +vt 0.988889 0.250000 +vt 0.988889 0.202381 +vt 0.977778 0.202381 +vt 0.988889 0.583333 +vt 0.977778 0.107143 +vt 0.988889 0.107143 +vt 0.422222 0.000000 +vt 0.688889 0.000000 +vt 0.155556 0.000000 +vt 0.555556 -0.000000 +vt 0.949967 0.007208 +vt 0.999934 0.053571 +vt 0.949967 0.099935 +vt 0.288889 0.000000 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.988889 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vt 0.977778 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.800000 0.583333 +vt 0.800000 0.583333 +vt 0.800000 0.345238 +vt 0.977778 0.583333 +vn -0.4756 -0.3089 -0.8237 +vn -0.4756 -0.3089 0.8237 +vn 0.9511 -0.3089 0.0000 +vn -0.9511 -0.3089 0.0000 +vn 0.4756 -0.3089 0.8237 +vn -0.0000 -1.0000 0.0000 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.5000 0.0000 0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.4756 -0.3089 -0.8237 +vn -0.9871 0.1603 0.0000 +vn -0.4935 0.1603 0.8548 +vn 0.4935 0.1603 0.8548 +vn 0.9871 0.1603 0.0000 +vn 0.4935 0.1603 -0.8548 +vn -0.4935 0.1603 -0.8548 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 -0.0000 0.5000 +vn 0.4472 0.4472 -0.7746 +vn -0.4472 -0.4472 0.7746 +vn -0.4472 -0.4472 -0.7746 +vn 0.4472 0.4472 0.7746 +vn -0.8660 -0.0000 0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.8944 0.4472 0.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.4472 0.4472 -0.7746 +vn 0.4472 -0.4472 0.7746 +vn -0.8944 -0.4472 0.0000 +vn 0.8944 0.4472 -0.0000 +vn -0.4472 0.4472 0.7746 +vn 0.4472 -0.4472 -0.7746 +s off +f 7/1/1 6/2/1 8/3/1 +f 9/4/2 3/5/2 10/6/2 +f 11/7/3 1/8/3 12/9/3 +f 8/3/4 4/10/4 9/4/4 +f 11/7/5 3/11/5 2/12/5 +f 2/13/6 3/14/6 4/15/6 +f 7/1/7 18/16/7 12/9/7 +f 11/7/8 16/17/8 10/18/8 +f 9/4/9 14/19/9 8/3/9 +f 12/9/10 17/20/10 11/7/10 +f 10/6/11 15/21/11 9/4/11 +f 8/3/12 13/22/12 7/1/12 +f 12/9/13 5/23/13 7/1/13 +f 14/19/14 15/21/14 19/24/14 +f 15/21/15 16/25/15 19/26/15 +f 16/17/16 17/20/16 19/27/16 +f 17/20/17 18/16/17 19/28/17 +f 18/16/18 13/22/18 19/29/18 +f 13/22/19 14/19/19 19/30/19 +f 23/31/20 20/32/20 22/33/20 +f 28/34/21 27/35/21 29/36/21 +f 23/37/7 27/35/7 20/38/7 +f 20/38/6 28/39/6 22/40/6 +f 24/41/22 29/36/22 23/37/22 +f 21/42/23 28/39/23 25/43/23 +f 38/44/24 31/45/24 34/46/24 +f 36/47/25 33/48/25 30/49/25 +f 39/50/6 31/45/6 37/51/6 +f 36/47/8 32/52/8 39/50/8 +f 31/53/26 32/52/26 30/49/26 +f 36/54/27 39/55/27 37/56/27 +f 43/57/28 40/58/28 42/59/28 +f 48/60/29 47/61/29 49/62/29 +f 43/63/9 47/61/9 40/64/9 +f 40/64/6 48/65/6 42/66/6 +f 44/67/30 49/62/30 43/63/30 +f 42/66/31 45/68/31 41/69/31 +f 53/70/26 50/71/26 52/72/26 +f 58/73/27 57/74/27 59/75/27 +f 53/76/12 57/74/12 50/77/12 +f 52/78/6 57/74/6 58/79/6 +f 54/80/32 59/75/32 53/76/32 +f 52/78/33 55/81/33 51/82/33 +f 67/83/34 64/84/34 68/85/34 +f 65/86/35 60/87/35 66/88/35 +f 67/83/6 62/89/6 61/90/6 +f 66/88/10 62/89/10 69/91/10 +f 61/92/28 62/89/28 60/87/28 +f 66/93/29 69/94/29 67/95/29 +f 73/96/21 70/97/21 72/98/21 +f 78/99/20 77/100/20 79/101/20 +f 73/102/11 77/100/11 70/103/11 +f 72/104/6 77/100/6 78/105/6 +f 74/106/36 79/101/36 73/102/36 +f 72/104/37 75/107/37 71/108/37 +f 7/1/1 5/109/1 6/2/1 +f 9/4/2 4/110/2 3/5/2 +f 11/7/3 2/111/3 1/8/3 +f 8/3/4 6/112/4 4/10/4 +f 11/7/5 10/18/5 3/11/5 +f 4/15/6 6/113/6 5/114/6 +f 5/114/6 1/115/6 4/15/6 +f 1/115/6 2/13/6 4/15/6 +f 7/1/7 13/22/7 18/16/7 +f 11/7/8 17/20/8 16/17/8 +f 9/4/9 15/21/9 14/19/9 +f 12/9/10 18/16/10 17/20/10 +f 10/6/11 16/25/11 15/21/11 +f 8/3/12 14/19/12 13/22/12 +f 12/9/13 1/116/13 5/23/13 +f 22/33/20 21/117/20 23/31/20 +f 21/117/20 24/118/20 23/31/20 +f 26/119/21 25/120/21 29/36/21 +f 25/120/21 28/34/21 29/36/21 +f 23/37/7 29/36/7 27/35/7 +f 20/38/6 27/35/6 28/39/6 +f 24/41/22 26/121/22 29/36/22 +f 21/42/23 22/40/23 28/39/23 +f 38/44/24 37/51/24 31/45/24 +f 36/47/25 35/122/25 33/48/25 +f 39/50/6 32/52/6 31/45/6 +f 36/47/8 30/49/8 32/52/8 +f 33/123/26 34/124/26 30/49/26 +f 34/124/26 31/53/26 30/49/26 +f 37/56/27 38/125/27 36/54/27 +f 38/125/27 35/126/27 36/54/27 +f 42/59/28 41/127/28 43/57/28 +f 41/127/28 44/128/28 43/57/28 +f 46/129/29 45/130/29 49/62/29 +f 45/130/29 48/60/29 49/62/29 +f 43/63/9 49/62/9 47/61/9 +f 40/64/6 47/61/6 48/65/6 +f 44/67/30 46/131/30 49/62/30 +f 42/66/31 48/65/31 45/68/31 +f 52/72/26 51/132/26 53/70/26 +f 51/132/26 54/133/26 53/70/26 +f 56/134/27 55/135/27 59/75/27 +f 55/135/27 58/73/27 59/75/27 +f 53/76/12 59/75/12 57/74/12 +f 52/78/6 50/77/6 57/74/6 +f 54/80/32 56/136/32 59/75/32 +f 52/78/33 58/79/33 55/81/33 +f 67/83/34 61/90/34 64/84/34 +f 65/86/35 63/137/35 60/87/35 +f 67/83/6 69/91/6 62/89/6 +f 66/88/10 60/87/10 62/89/10 +f 63/138/28 64/139/28 60/87/28 +f 64/139/28 61/92/28 60/87/28 +f 67/95/29 68/140/29 66/93/29 +f 68/140/29 65/141/29 66/93/29 +f 72/98/21 71/142/21 73/96/21 +f 71/142/21 74/143/21 73/96/21 +f 76/144/20 75/145/20 79/101/20 +f 75/145/20 78/99/20 79/101/20 +f 73/102/11 79/101/11 77/100/11 +f 72/104/6 70/103/6 77/100/6 +f 74/106/36 76/146/36 79/101/36 +f 72/104/37 78/105/37 75/107/37 diff --git a/src/main/resources/assets/hbm/models/missile_strong.obj b/src/main/resources/assets/hbm/models/missile_strong.obj new file mode 100644 index 000000000..e6b97761c --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_strong.obj @@ -0,0 +1,979 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_strong.blend' +# www.blender.org +o Circle +v 0.000000 4.125000 -0.625000 +v -0.239177 4.125000 -0.577425 +v -0.441942 4.125000 -0.441942 +v -0.577425 4.125000 -0.239177 +v -0.625000 4.125000 0.000000 +v -0.577425 4.125000 0.239177 +v -0.441942 4.125000 0.441942 +v -0.239177 4.125000 0.577425 +v -0.000000 4.125000 0.625000 +v 0.239177 4.125000 0.577425 +v 0.441942 4.125000 0.441942 +v 0.577425 4.125000 0.239177 +v 0.625000 4.125000 -0.000000 +v 0.577425 4.125000 -0.239177 +v 0.441942 4.125000 -0.441942 +v 0.239177 4.125000 -0.577425 +v 0.000000 4.875000 -0.630000 +v -0.241091 4.875000 -0.582044 +v -0.445477 4.875000 -0.445477 +v -0.582044 4.875000 -0.241091 +v -0.630000 4.875000 0.000000 +v -0.582044 4.875000 0.241091 +v -0.445477 4.875000 0.445477 +v -0.241091 4.875000 0.582044 +v -0.000000 4.875000 0.630000 +v 0.241090 4.875000 0.582044 +v 0.445477 4.875000 0.445477 +v 0.582044 4.875000 0.241091 +v 0.630000 4.875000 -0.000000 +v 0.582044 4.875000 -0.241091 +v 0.445477 4.875000 -0.445477 +v 0.241090 4.875000 -0.582044 +v 0.000000 5.000000 -0.500000 +v -0.191342 5.000000 -0.461940 +v -0.353553 5.000000 -0.353553 +v -0.461940 5.000000 -0.191342 +v -0.500000 5.000000 0.000000 +v -0.461940 5.000000 0.191342 +v -0.353553 5.000000 0.353553 +v -0.191342 5.000000 0.461940 +v -0.000000 5.000000 0.500000 +v 0.191342 5.000000 0.461940 +v 0.353553 5.000000 0.353554 +v 0.461940 5.000000 0.191342 +v 0.500000 5.000000 -0.000000 +v 0.461940 5.000000 -0.191342 +v 0.353553 5.000000 -0.353554 +v 0.191341 5.000000 -0.461940 +v 0.000000 6.000000 0.000000 +v 0.000000 4.000000 -0.500000 +v -0.191342 4.000000 -0.461940 +v -0.353553 4.000000 -0.353553 +v -0.461940 4.000000 -0.191342 +v -0.500000 4.000000 0.000000 +v -0.461940 4.000000 0.191342 +v -0.353553 4.000000 0.353553 +v -0.191342 4.000000 0.461940 +v -0.000000 4.000000 0.500000 +v 0.191342 4.000000 0.461940 +v 0.353553 4.000000 0.353554 +v 0.461940 4.000000 0.191342 +v 0.500000 4.000000 -0.000000 +v 0.461940 4.000000 -0.191342 +v 0.353553 4.000000 -0.353554 +v 0.191341 4.000000 -0.461940 +v 0.000000 3.500000 -0.500000 +v -0.191342 3.500000 -0.461940 +v -0.353553 3.500000 -0.353553 +v -0.461940 3.500000 -0.191342 +v -0.500000 3.500000 0.000000 +v -0.461940 3.500000 0.191342 +v -0.353553 3.500000 0.353553 +v -0.191342 3.500000 0.461940 +v -0.000000 3.500000 0.500000 +v 0.191342 3.500000 0.461940 +v 0.353553 3.500000 0.353554 +v 0.461940 3.500000 0.191342 +v 0.500000 3.500000 -0.000000 +v 0.461940 3.500000 -0.191342 +v 0.353553 3.500000 -0.353554 +v 0.191341 3.500000 -0.461940 +v 0.000000 2.500000 -0.625000 +v -0.239177 2.500000 -0.577425 +v -0.441942 2.500000 -0.441942 +v -0.577425 2.500000 -0.239177 +v -0.625000 2.500000 0.000000 +v -0.577425 2.500000 0.239177 +v -0.441942 2.500000 0.441942 +v -0.239177 2.500000 0.577425 +v -0.000000 2.500000 0.625000 +v 0.239177 2.500000 0.577425 +v 0.441942 2.500000 0.441942 +v 0.577425 2.500000 0.239177 +v 0.625000 2.500000 -0.000000 +v 0.577425 2.500000 -0.239177 +v 0.441942 2.500000 -0.441942 +v 0.239177 2.500000 -0.577425 +v 0.000000 0.500000 -0.625000 +v -0.239177 0.500000 -0.577425 +v -0.441942 0.500000 -0.441942 +v -0.577425 0.500000 -0.239177 +v -0.625000 0.500000 0.000000 +v -0.577425 0.500000 0.239177 +v -0.441942 0.500000 0.441942 +v -0.239177 0.500000 0.577425 +v -0.000000 0.500000 0.625000 +v 0.239177 0.500000 0.577425 +v 0.441942 0.500000 0.441942 +v 0.577425 0.500000 0.239177 +v 0.625000 0.500000 -0.000000 +v 0.577425 0.500000 -0.239177 +v 0.441942 0.500000 -0.441942 +v 0.239177 0.500000 -0.577425 +v 0.000000 0.500000 -0.500000 +v -0.191342 0.500000 -0.461940 +v -0.353553 0.500000 -0.353553 +v -0.461940 0.500000 -0.191342 +v -0.500000 0.500000 0.000000 +v -0.461940 0.500000 0.191342 +v -0.353553 0.500000 0.353553 +v -0.191342 0.500000 0.461940 +v -0.000000 0.500000 0.500000 +v 0.191342 0.500000 0.461940 +v 0.353553 0.500000 0.353554 +v 0.461940 0.500000 0.191342 +v 0.500000 0.500000 -0.000000 +v 0.461940 0.500000 -0.191342 +v 0.353553 0.500000 -0.353554 +v 0.191341 0.500000 -0.461940 +v 0.000000 0.000000 -0.500000 +v -0.191342 0.000000 -0.461940 +v -0.353553 0.000000 -0.353553 +v -0.461940 0.000000 -0.191342 +v -0.500000 0.000000 0.000000 +v -0.461940 0.000000 0.191342 +v -0.353553 0.000000 0.353553 +v -0.191342 0.000000 0.461940 +v -0.000000 0.000000 0.500000 +v 0.191342 0.000000 0.461940 +v 0.353553 0.000000 0.353554 +v 0.461940 0.000000 0.191342 +v 0.500000 0.000000 -0.000000 +v 0.461940 0.000000 -0.191342 +v 0.353553 0.000000 -0.353554 +v 0.191341 0.000000 -0.461940 +v 0.333224 4.750000 -0.377418 +v 0.885651 4.500000 -0.885651 +v 0.333224 4.250000 -0.377418 +v 0.885651 4.250000 -0.885651 +v 0.377418 4.750000 -0.333224 +v 0.377418 4.250000 -0.333224 +v 0.377418 4.750000 0.333224 +v 0.885652 4.500000 0.885651 +v 0.377418 4.250000 0.333224 +v 0.885652 4.250000 0.885651 +v 0.333224 4.750000 0.377418 +v 0.333224 4.250000 0.377418 +v 0.375651 2.250000 0.331456 +v 0.883884 1.500000 0.883883 +v 0.375651 0.250000 0.331456 +v 0.883884 0.250000 0.883883 +v 0.331456 2.250000 0.375650 +v 0.331456 0.250000 0.375650 +v -0.331456 0.250000 -0.375650 +v -0.331456 2.250000 -0.375650 +v -0.883884 0.250000 -0.883883 +v -0.375651 0.250000 -0.331456 +v -0.883884 1.500000 -0.883883 +v -0.375651 2.250000 -0.331456 +v 0.331456 2.250000 -0.375650 +v 0.883883 1.500000 -0.883883 +v 0.331456 0.250000 -0.375650 +v 0.883883 0.250000 -0.883883 +v 0.375650 2.250000 -0.331456 +v 0.375650 0.250000 -0.331456 +v -0.333224 4.250000 -0.377418 +v -0.333224 4.750000 -0.377418 +v -0.885651 4.250000 -0.885651 +v -0.377418 4.250000 -0.333224 +v -0.885651 4.500000 -0.885651 +v -0.377418 4.750000 -0.333224 +v -0.375650 0.250000 0.331456 +v -0.375650 2.250000 0.331456 +v -0.883883 0.250000 0.883883 +v -0.331456 0.250000 0.375651 +v -0.883883 1.500000 0.883883 +v -0.331456 2.250000 0.375651 +v -0.377418 4.250000 0.333224 +v -0.377418 4.750000 0.333224 +v -0.885651 4.250000 0.885651 +v -0.333224 4.250000 0.377418 +v -0.885651 4.500000 0.885651 +v -0.333224 4.750000 0.377418 +vt 0.350000 0.102041 +vt 0.387500 0.081633 +vt 0.400000 0.102041 +vt 0.437500 0.081633 +vt 0.450000 0.102041 +vt 0.450000 0.081633 +vt 0.500000 0.102041 +vt 0.500000 0.081633 +vt 0.550000 0.102041 +vt 0.550000 0.081633 +vt 0.600000 0.102041 +vt 0.600000 0.081633 +vt 0.650000 0.102041 +vt 0.650000 0.081633 +vt 0.700000 0.102041 +vt 0.737500 0.081633 +vt 0.750000 0.102041 +vt 0.750000 0.081633 +vt 0.800000 0.102041 +vt 0.000000 0.102041 +vt 0.037500 0.081633 +vt 0.050000 0.102041 +vt 0.087500 0.081633 +vt 0.100000 0.102041 +vt 0.100000 0.081633 +vt 0.150000 0.102041 +vt 0.150000 0.081633 +vt 0.200000 0.102041 +vt 0.237500 0.081633 +vt 0.250000 0.102041 +vt 0.250000 0.081633 +vt 0.300000 0.102041 +vt 0.300000 0.081633 +vt 0.970508 0.024075 +vt 0.970508 0.139190 +vt 0.829492 0.139190 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.350000 0.081633 +vt 0.400000 0.081633 +vt 0.487500 0.081633 +vt 0.537500 0.081633 +vt 0.587500 0.081633 +vt 0.637500 0.081633 +vt 0.687500 0.081633 +vt 0.700000 0.081633 +vt 0.787500 0.081633 +vt 0.000000 0.081633 +vt 0.050000 0.081633 +vt 0.137500 0.081633 +vt 0.187500 0.081633 +vt 0.200000 0.081633 +vt 0.287500 0.081633 +vt 0.337500 0.081633 +vt 0.992123 0.050483 +vt 0.999714 0.081633 +vt 0.992123 0.112783 +vt 0.938159 0.156836 +vt 0.900000 0.163032 +vt 0.861841 0.156836 +vt 0.807876 0.112783 +vt 0.800286 0.081633 +vt 0.807877 0.050483 +vt 0.829492 0.024075 +vt 0.861841 0.006430 +vt 0.900000 0.000234 +vt 0.938159 0.006430 +vt 0.700000 0.693878 +vt 0.650000 0.816327 +vt 0.650000 0.693878 +vt 0.300000 0.693878 +vt 0.250000 0.816327 +vt 0.250000 0.693878 +vt 0.750000 0.693878 +vt 0.700000 0.816327 +vt 0.350000 0.693878 +vt 0.300000 0.816327 +vt 0.800000 0.693878 +vt 0.750000 0.816327 +vt 0.400000 0.693878 +vt 0.350000 0.816327 +vt 0.050000 0.693878 +vt 0.000000 0.816327 +vt -0.000000 0.693878 +vt 0.450000 0.693878 +vt 0.400000 0.816327 +vt 0.100000 0.693878 +vt 0.050000 0.816327 +vt 0.500000 0.693878 +vt 0.450000 0.816327 +vt 0.150000 0.693878 +vt 0.100000 0.816327 +vt 0.550000 0.693878 +vt 0.500000 0.816327 +vt 0.200000 0.693878 +vt 0.150000 0.816327 +vt 0.600000 0.816327 +vt 0.600000 0.693878 +vt 0.550000 0.816327 +vt 0.200000 0.816327 +vt 0.150000 0.836735 +vt 0.600000 0.836735 +vt 0.550000 0.836735 +vt 0.200000 0.836735 +vt 0.650000 0.836735 +vt 0.250000 0.836735 +vt 0.700000 0.836735 +vt 0.337500 0.836735 +vt 0.300000 0.836735 +vt 0.800000 0.816327 +vt 0.750000 0.836735 +vt 0.350000 0.836735 +vt -0.000000 0.836735 +vt 0.437500 0.836735 +vt 0.400000 0.836735 +vt 0.050000 0.836735 +vt 0.450000 0.836735 +vt 0.100000 0.836735 +vt 0.500000 0.836735 +vt 0.300000 0.673469 +vt 0.687500 0.836735 +vt 0.662500 1.000000 +vt 0.737500 0.836735 +vt 0.712500 1.000000 +vt 0.787500 0.836735 +vt 0.762500 1.000000 +vt 0.037500 0.836735 +vt 0.012500 1.000000 +vt 0.087500 0.836735 +vt 0.062500 1.000000 +vt 0.137500 0.836735 +vt 0.112500 1.000000 +vt 0.187500 0.836735 +vt 0.162500 1.000000 +vt 0.237500 0.836735 +vt 0.212500 1.000000 +vt 0.287500 0.836735 +vt 0.262500 1.000000 +vt 0.312500 1.000000 +vt 0.387500 0.836735 +vt 0.362500 1.000000 +vt 0.412500 1.000000 +vt 0.487500 0.836735 +vt 0.462500 1.000000 +vt 0.537500 0.836735 +vt 0.512500 1.000000 +vt 0.587500 0.836735 +vt 0.562500 1.000000 +vt 0.637500 0.836735 +vt 0.612500 1.000000 +vt 0.350000 0.673469 +vt 0.400000 0.673469 +vt 0.450000 0.673469 +vt 0.500000 0.673469 +vt 0.587500 0.673469 +vt 0.600000 0.673469 +vt 0.650000 0.673469 +vt 0.700000 0.673469 +vt 0.750000 0.673469 +vt 0.000000 0.673469 +vt 0.050000 0.673469 +vt 0.100000 0.673469 +vt 0.150000 0.673469 +vt 0.200000 0.673469 +vt 0.250000 0.673469 +vt 0.687500 0.591837 +vt 0.687500 0.673469 +vt 0.287500 0.591837 +vt 0.287500 0.673469 +vt 0.737500 0.591837 +vt 0.737500 0.673469 +vt 0.337500 0.591837 +vt 0.337500 0.673469 +vt 0.787500 0.591837 +vt 0.787500 0.673469 +vt 0.387500 0.591837 +vt 0.387500 0.673469 +vt 0.037500 0.591837 +vt 0.037500 0.673469 +vt 0.437500 0.591837 +vt 0.437500 0.673469 +vt 0.087500 0.591837 +vt 0.087500 0.673469 +vt 0.487500 0.591837 +vt 0.487500 0.673469 +vt 0.137500 0.591837 +vt 0.137500 0.673469 +vt 0.537500 0.591837 +vt 0.537500 0.673469 +vt 0.187500 0.591837 +vt 0.187500 0.673469 +vt 0.637500 0.591837 +vt 0.637500 0.673469 +vt 0.550000 0.673469 +vt 0.587500 0.591837 +vt 0.237500 0.591837 +vt 0.237500 0.673469 +vt 0.100000 0.591837 +vt 0.150000 0.428571 +vt 0.500000 0.591837 +vt 0.550000 0.428571 +vt 0.150000 0.591837 +vt 0.200000 0.428571 +vt 0.600000 0.591837 +vt 0.650000 0.428571 +vt 0.550000 0.591837 +vt 0.600000 0.428571 +vt 0.250000 0.428571 +vt 0.650000 0.591837 +vt 0.700000 0.428571 +vt 0.250000 0.591837 +vt 0.300000 0.428571 +vt 0.700000 0.591837 +vt 0.750000 0.428571 +vt 0.300000 0.591837 +vt 0.350000 0.428571 +vt 0.750000 0.591837 +vt 0.800000 0.428571 +vt 0.350000 0.591837 +vt 0.400000 0.428571 +vt -0.000000 0.591837 +vt 0.050000 0.428571 +vt 0.400000 0.591837 +vt 0.450000 0.428571 +vt 0.050000 0.591837 +vt 0.100000 0.428571 +vt 0.450000 0.591837 +vt 0.500000 0.428571 +vt 0.000000 0.428571 +vt 0.537500 -0.000000 +vt 0.187500 0.000000 +vt 0.637500 0.000000 +vt 0.587500 0.000000 +vt 0.237500 0.000000 +vt 0.687500 0.000000 +vt 0.287500 0.000000 +vt 0.737500 -0.000000 +vt 0.337500 0.000000 +vt 0.787500 -0.000000 +vt 0.387500 0.000000 +vt 0.037500 -0.000000 +vt 0.437500 0.000000 +vt 0.087500 -0.000000 +vt 0.487500 0.000000 +vt 0.137500 0.000000 +vt 0.200000 0.591837 +vt 0.500000 -0.000000 +vt 0.150000 0.000000 +vt 0.600000 0.000000 +vt 0.550000 0.000000 +vt 0.200000 -0.000000 +vt 0.650000 0.000000 +vt 0.250000 -0.000000 +vt 0.700000 0.000000 +vt 0.300000 -0.000000 +vt 0.750000 0.000000 +vt 0.350000 -0.000000 +vt -0.000000 0.000000 +vt 0.400000 -0.000000 +vt 0.050000 -0.000000 +vt 0.450000 0.000000 +vt 0.100000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn -0.6771 0.0000 -0.7359 +vn 0.7359 0.0000 0.6771 +vn 0.2236 0.9487 -0.2236 +vn 0.7359 0.0000 -0.6771 +vn -0.6771 0.0000 0.7359 +vn 0.2236 0.9487 0.2236 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn 0.6771 0.0000 -0.7359 +vn -0.7359 0.0000 0.6771 +vn 0.5000 0.7071 -0.5000 +vn -0.2236 0.9487 -0.2236 +vn -0.5000 0.7071 0.5000 +vn -0.7359 0.0000 -0.6771 +vn 0.6771 0.0000 0.7359 +vn -0.2236 0.9487 0.2236 +vn -0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 -0.9239 +vn 0.7071 -0.0067 0.7071 +vn 0.3827 -0.0067 0.9239 +vn -0.9239 -0.0067 -0.3827 +vn 0.9239 -0.0067 0.3827 +vn -1.0000 -0.0067 0.0000 +vn 1.0000 -0.0067 -0.0000 +vn -0.9239 -0.0067 0.3827 +vn 0.9239 -0.0067 -0.3827 +vn -0.7071 -0.0067 0.7071 +vn 0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 0.9239 +vn 0.3827 -0.0067 -0.9239 +vn -0.0000 -0.0067 1.0000 +vn -0.0000 -0.0067 -1.0000 +vn -0.0000 0.7208 0.6931 +vn -0.2652 0.7208 0.6403 +vn -0.2652 0.7208 -0.6403 +vn -0.0000 0.7208 -0.6931 +vn 0.2652 0.7208 -0.6403 +vn 0.2652 0.7208 0.6403 +vn -0.4901 0.7208 -0.4901 +vn -0.2652 0.7208 -0.6404 +vn 0.4901 0.7208 0.4901 +vn -0.6403 0.7208 -0.2652 +vn 0.6403 0.7208 0.2652 +vn -0.6931 0.7208 -0.0000 +vn 0.6931 0.7208 0.0000 +vn -0.6403 0.7208 0.2652 +vn 0.6403 0.7208 -0.2652 +vn -0.4901 0.7208 0.4901 +vn 0.4901 0.7208 -0.4901 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn 0.0000 1.0000 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.8944 0.4472 -0.0000 +vn -0.8263 0.4472 0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 0.0000 +vn 0.8263 0.4472 -0.3423 +vn 0.6325 0.4472 -0.6325 +vn 0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn -0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +vn -0.6533 -0.7071 -0.2706 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn -0.3827 0.0000 -0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.7016 0.1240 0.7016 +vn -0.3797 0.1240 0.9167 +vn 0.7016 0.1240 -0.7016 +vn 0.3797 0.1240 -0.9167 +vn -0.0000 0.1240 0.9923 +vn -0.0000 0.1240 -0.9923 +vn -0.3797 0.1240 -0.9167 +vn 0.3797 0.1240 0.9167 +vn -0.7016 0.1240 -0.7016 +vn 0.7016 0.1240 0.7016 +vn -0.9167 0.1240 -0.3797 +vn 0.9167 0.1240 0.3797 +vn -0.9923 0.1240 -0.0000 +vn 0.9923 0.1240 0.0000 +vn -0.9167 0.1240 0.3797 +vn 0.9167 0.1240 -0.3797 +s off +f 109/1/1 126/2/1 110/3/1 +f 110/3/1 127/4/1 111/5/1 +f 127/6/1 112/7/1 111/5/1 +f 128/8/1 113/9/1 112/7/1 +f 129/10/1 98/11/1 113/9/1 +f 114/12/1 99/13/1 98/11/1 +f 115/14/1 100/15/1 99/13/1 +f 100/15/1 117/16/1 101/17/1 +f 117/18/1 102/19/1 101/17/1 +f 102/20/1 119/21/1 103/22/1 +f 103/22/1 120/23/1 104/24/1 +f 120/25/1 105/26/1 104/24/1 +f 121/27/1 106/28/1 105/26/1 +f 106/28/1 123/29/1 107/30/1 +f 123/31/1 108/32/1 107/30/1 +f 124/33/1 109/1/1 108/32/1 +f 132/34/1 144/35/1 140/36/1 +f 147/37/2 148/38/2 146/39/2 +f 151/40/3 147/37/3 150/41/3 +f 147/42/4 146/43/4 150/41/4 +f 148/44/1 149/45/1 151/40/1 +f 153/46/5 154/47/5 152/48/5 +f 157/49/6 153/46/6 156/50/6 +f 153/51/7 152/52/7 156/50/7 +f 154/53/1 155/54/1 157/49/1 +f 159/55/5 160/56/5 158/57/5 +f 163/58/6 159/55/6 162/59/6 +f 159/60/8 158/61/8 162/59/8 +f 160/62/1 161/63/1 163/58/1 +f 167/64/1 166/65/1 164/66/1 +f 168/67/9 169/68/9 165/69/9 +f 164/66/10 168/70/10 165/69/10 +f 168/70/11 167/71/11 169/72/11 +f 171/73/2 172/74/2 170/75/2 +f 175/76/3 171/73/3 174/77/3 +f 171/78/12 170/79/12 174/77/12 +f 172/80/1 173/81/1 175/76/1 +f 179/82/1 178/83/1 176/84/1 +f 180/85/13 181/86/13 177/87/13 +f 176/84/10 180/88/10 177/87/10 +f 180/88/11 179/89/11 181/90/11 +f 185/91/1 184/92/1 182/93/1 +f 186/94/14 187/95/14 183/96/14 +f 182/93/15 186/97/15 183/96/15 +f 186/97/16 185/98/16 187/99/16 +f 191/100/1 190/101/1 188/102/1 +f 192/103/17 193/104/17 189/105/17 +f 188/102/15 192/106/15 189/105/15 +f 192/106/16 191/107/16 193/108/16 +f 109/1/1 125/109/1 126/2/1 +f 110/3/1 126/110/1 127/4/1 +f 127/6/1 128/111/1 112/7/1 +f 128/8/1 129/112/1 113/9/1 +f 129/10/1 114/113/1 98/11/1 +f 114/12/1 115/114/1 99/13/1 +f 115/14/1 116/115/1 100/15/1 +f 100/15/1 116/116/1 117/16/1 +f 117/18/1 118/117/1 102/19/1 +f 102/20/1 118/118/1 119/21/1 +f 103/22/1 119/119/1 120/23/1 +f 120/25/1 121/120/1 105/26/1 +f 121/27/1 122/121/1 106/28/1 +f 106/28/1 122/122/1 123/29/1 +f 123/31/1 124/123/1 108/32/1 +f 124/33/1 125/124/1 109/1/1 +f 132/34/1 131/125/1 130/126/1 +f 130/126/1 145/127/1 144/35/1 +f 144/35/1 143/128/1 142/129/1 +f 142/129/1 141/130/1 140/36/1 +f 140/36/1 139/131/1 138/132/1 +f 138/132/1 137/133/1 136/134/1 +f 136/134/1 135/135/1 134/136/1 +f 134/136/1 133/137/1 136/134/1 +f 133/137/1 132/34/1 136/134/1 +f 132/34/1 130/126/1 144/35/1 +f 144/35/1 142/129/1 140/36/1 +f 140/36/1 138/132/1 132/34/1 +f 138/132/1 136/134/1 132/34/1 +f 147/37/2 149/45/2 148/38/2 +f 151/40/3 149/45/3 147/37/3 +f 153/46/5 155/54/5 154/47/5 +f 157/49/6 155/54/6 153/46/6 +f 159/55/5 161/63/5 160/56/5 +f 163/58/6 161/63/6 159/55/6 +f 164/66/10 166/65/10 168/70/10 +f 168/70/11 166/65/11 167/71/11 +f 171/73/2 173/81/2 172/74/2 +f 175/76/3 173/81/3 171/73/3 +f 176/84/10 178/83/10 180/88/10 +f 180/88/11 178/83/11 179/89/11 +f 182/93/15 184/92/15 186/97/15 +f 186/97/16 184/92/16 185/98/16 +f 188/102/15 190/101/15 192/106/15 +f 192/106/16 190/101/16 191/107/16 +s 1 +f 3/138/18 18/139/19 2/140/19 +f 11/141/20 26/142/21 10/143/21 +f 4/144/22 19/145/18 3/138/18 +f 12/146/23 27/147/20 11/141/20 +f 5/148/24 20/149/22 4/144/22 +f 13/150/25 28/151/23 12/146/23 +f 6/152/26 21/153/24 5/154/24 +f 14/155/27 29/156/25 13/150/25 +f 7/157/28 22/158/26 6/152/26 +f 15/159/29 30/160/27 14/155/27 +f 8/161/30 23/162/28 7/157/28 +f 16/163/31 31/164/29 15/159/29 +f 9/165/32 24/166/30 8/161/30 +f 2/140/19 17/167/33 1/168/33 +f 1/168/33 32/169/31 16/163/31 +f 10/143/21 25/170/32 9/165/32 +f 25/170/34 40/171/35 24/166/35 +f 18/139/36 33/172/37 17/167/37 +f 17/167/37 48/173/38 32/169/38 +f 26/142/39 41/174/34 25/170/34 +f 19/145/40 34/175/41 18/139/36 +f 27/147/42 42/176/39 26/142/39 +f 20/149/43 35/177/40 19/145/40 +f 27/147/42 44/178/44 43/179/42 +f 21/180/45 36/181/43 20/149/43 +f 29/156/46 44/182/44 28/151/44 +f 22/158/47 37/183/45 21/153/45 +f 29/156/46 46/184/48 45/185/46 +f 23/162/49 38/186/47 22/158/47 +f 31/164/50 46/187/48 30/160/48 +f 24/166/35 39/188/49 23/162/49 +f 32/169/38 47/189/50 31/164/50 +f 60/190/51 12/146/52 11/141/51 +f 34/175/53 35/191/54 49/192/55 +f 35/177/54 36/193/56 49/194/55 +f 36/181/56 37/195/57 49/196/55 +f 37/183/57 38/197/58 49/198/55 +f 38/186/58 39/199/59 49/200/55 +f 39/188/59 40/201/60 49/202/55 +f 40/171/60 41/203/61 49/204/55 +f 41/174/61 42/205/62 49/206/55 +f 42/176/62 43/207/63 49/208/55 +f 43/179/63 44/178/64 49/209/55 +f 44/182/64 45/210/65 49/211/55 +f 45/185/65 46/184/66 49/212/55 +f 46/187/66 47/213/67 49/214/55 +f 47/189/67 48/215/68 49/216/55 +f 48/173/68 33/217/69 49/218/55 +f 33/172/69 34/219/53 49/220/55 +f 61/221/52 13/150/70 12/146/52 +f 62/222/70 14/155/71 13/150/70 +f 63/223/71 15/159/72 14/155/71 +f 64/224/72 16/163/73 15/159/72 +f 16/163/73 50/225/74 1/168/74 +f 50/226/74 2/140/75 1/168/74 +f 51/227/75 3/138/76 2/140/75 +f 52/228/76 4/144/77 3/138/76 +f 53/229/77 5/148/78 4/144/77 +f 54/230/78 6/152/79 5/154/78 +f 55/231/79 7/157/80 6/152/79 +f 56/232/80 8/161/81 7/157/80 +f 57/233/81 9/165/82 8/161/81 +f 58/234/82 10/143/83 9/165/82 +f 59/235/83 11/141/51 10/143/83 +f 51/227/84 68/236/85 52/237/85 +f 59/235/86 76/238/87 60/239/87 +f 52/228/85 69/240/88 53/241/88 +f 60/190/87 77/242/89 61/243/89 +f 53/229/88 70/244/90 54/245/90 +f 61/221/89 78/246/91 62/247/91 +f 54/230/90 71/248/92 55/249/92 +f 62/222/91 79/250/93 63/251/93 +f 55/231/92 72/252/94 56/253/94 +f 63/223/93 80/254/95 64/255/95 +f 56/232/94 73/256/96 57/257/96 +f 64/224/95 81/258/97 65/259/97 +f 57/233/96 74/260/98 58/261/98 +f 50/226/99 67/262/84 51/263/84 +f 65/264/97 66/265/99 50/225/99 +f 58/234/98 75/266/86 59/267/86 +f 72/268/100 89/269/101 73/256/101 +f 80/270/102 97/271/103 81/258/103 +f 73/272/101 90/273/104 74/260/104 +f 66/274/105 83/275/106 67/262/106 +f 81/276/103 82/277/105 66/265/105 +f 75/266/107 90/273/104 91/278/107 +f 67/279/106 84/280/108 68/236/108 +f 75/281/107 92/282/109 76/238/109 +f 68/283/108 85/284/110 69/240/110 +f 76/285/109 93/286/111 77/242/111 +f 69/287/110 86/288/112 70/244/112 +f 77/289/111 94/290/113 78/246/113 +f 70/291/112 87/292/114 71/248/114 +f 78/293/113 95/294/115 79/250/115 +f 71/295/114 88/296/100 72/252/100 +f 79/297/115 96/298/102 80/254/102 +f 93/286/89 110/3/91 94/290/91 +f 86/299/90 103/22/92 87/292/92 +f 94/290/91 111/5/93 95/294/93 +f 87/292/92 104/24/94 88/296/94 +f 95/294/93 112/7/95 96/298/95 +f 88/296/94 105/26/96 89/269/96 +f 96/298/95 113/9/97 97/271/97 +f 89/269/96 106/28/98 90/273/98 +f 82/277/99 99/13/84 83/275/84 +f 97/271/97 98/11/99 82/277/99 +f 90/273/98 107/30/86 91/278/86 +f 83/275/84 100/15/85 84/280/85 +f 91/278/86 108/32/87 92/282/87 +f 84/280/85 101/17/88 85/284/88 +f 92/282/87 109/1/89 93/286/89 +f 85/284/88 102/19/90 86/288/90 +f 128/8/95 145/300/97 129/112/97 +f 121/27/96 138/301/98 122/121/98 +f 114/12/99 131/302/84 115/114/84 +f 129/10/97 130/303/99 114/113/99 +f 122/122/98 139/304/86 123/29/86 +f 115/14/84 132/305/85 116/115/85 +f 123/31/86 140/306/87 124/123/87 +f 116/116/85 133/307/88 117/16/88 +f 124/33/87 141/308/89 125/124/89 +f 117/18/88 134/309/90 118/117/90 +f 125/109/89 142/310/91 126/2/91 +f 118/118/90 135/311/92 119/21/92 +f 126/110/91 143/312/93 127/4/93 +f 119/119/92 136/313/94 120/23/94 +f 127/6/93 144/314/95 128/111/95 +f 120/25/94 137/315/96 121/120/96 +f 3/138/18 19/145/18 18/139/19 +f 11/141/20 27/147/20 26/142/21 +f 4/144/22 20/149/22 19/145/18 +f 12/146/23 28/151/23 27/147/20 +f 5/148/24 21/180/24 20/149/22 +f 13/150/25 29/156/25 28/151/23 +f 6/152/26 22/158/26 21/153/24 +f 14/155/27 30/160/27 29/156/25 +f 7/157/28 23/162/28 22/158/26 +f 15/159/29 31/164/29 30/160/27 +f 8/161/30 24/166/30 23/162/28 +f 16/163/31 32/169/31 31/164/29 +f 9/165/32 25/170/32 24/166/30 +f 2/140/19 18/139/19 17/167/33 +f 1/168/33 17/167/33 32/169/31 +f 10/143/21 26/142/21 25/170/32 +f 25/170/34 41/203/34 40/171/35 +f 18/139/36 34/219/41 33/172/37 +f 17/167/37 33/217/37 48/173/38 +f 26/142/39 42/205/39 41/174/34 +f 19/145/40 35/191/40 34/175/41 +f 27/147/42 43/207/42 42/176/39 +f 20/149/43 36/193/43 35/177/40 +f 27/147/42 28/151/44 44/178/44 +f 21/180/45 37/195/45 36/181/43 +f 29/156/46 45/210/46 44/182/44 +f 22/158/47 38/197/47 37/183/45 +f 29/156/46 30/160/48 46/184/48 +f 23/162/49 39/199/49 38/186/47 +f 31/164/50 47/213/50 46/187/48 +f 24/166/35 40/201/35 39/188/49 +f 32/169/38 48/215/38 47/189/50 +f 60/190/51 61/243/52 12/146/52 +f 61/221/52 62/247/70 13/150/70 +f 62/222/70 63/251/71 14/155/71 +f 63/223/71 64/255/72 15/159/72 +f 64/224/72 65/259/73 16/163/73 +f 16/163/73 65/264/73 50/225/74 +f 50/226/74 51/263/75 2/140/75 +f 51/227/75 52/237/76 3/138/76 +f 52/228/76 53/241/77 4/144/77 +f 53/229/77 54/245/78 5/148/78 +f 54/230/78 55/249/79 6/152/79 +f 55/231/79 56/253/80 7/157/80 +f 56/232/80 57/257/81 8/161/81 +f 57/233/81 58/261/82 9/165/82 +f 58/234/82 59/267/83 10/143/83 +f 59/235/83 60/239/51 11/141/51 +f 51/227/84 67/279/84 68/236/85 +f 59/235/86 75/281/86 76/238/87 +f 52/228/85 68/283/85 69/240/88 +f 60/190/87 76/285/87 77/242/89 +f 53/229/88 69/287/88 70/244/90 +f 61/221/89 77/289/89 78/246/91 +f 54/230/90 70/291/90 71/248/92 +f 62/222/91 78/293/91 79/250/93 +f 55/231/92 71/295/92 72/252/94 +f 63/223/93 79/297/93 80/254/95 +f 56/232/94 72/268/94 73/256/96 +f 64/224/95 80/270/95 81/258/97 +f 57/233/96 73/272/96 74/260/98 +f 50/226/99 66/274/99 67/262/84 +f 65/264/97 81/276/97 66/265/99 +f 58/234/98 74/316/98 75/266/86 +f 72/268/100 88/296/100 89/269/101 +f 80/270/102 96/298/102 97/271/103 +f 73/272/101 89/269/101 90/273/104 +f 66/274/105 82/277/105 83/275/106 +f 81/276/103 97/271/103 82/277/105 +f 75/266/107 74/316/104 90/273/104 +f 67/279/106 83/275/106 84/280/108 +f 75/281/107 91/278/107 92/282/109 +f 68/283/108 84/280/108 85/284/110 +f 76/285/109 92/282/109 93/286/111 +f 69/287/110 85/284/110 86/288/112 +f 77/289/111 93/286/111 94/290/113 +f 70/291/112 86/299/112 87/292/114 +f 78/293/113 94/290/113 95/294/115 +f 71/295/114 87/292/114 88/296/100 +f 79/297/115 95/294/115 96/298/102 +f 93/286/89 109/1/89 110/3/91 +f 86/299/90 102/20/90 103/22/92 +f 94/290/91 110/3/91 111/5/93 +f 87/292/92 103/22/92 104/24/94 +f 95/294/93 111/5/93 112/7/95 +f 88/296/94 104/24/94 105/26/96 +f 96/298/95 112/7/95 113/9/97 +f 89/269/96 105/26/96 106/28/98 +f 82/277/99 98/11/99 99/13/84 +f 97/271/97 113/9/97 98/11/99 +f 90/273/98 106/28/98 107/30/86 +f 83/275/84 99/13/84 100/15/85 +f 91/278/86 107/30/86 108/32/87 +f 84/280/85 100/15/85 101/17/88 +f 92/282/87 108/32/87 109/1/89 +f 85/284/88 101/17/88 102/19/90 +f 128/8/95 144/317/95 145/300/97 +f 121/27/96 137/318/96 138/301/98 +f 114/12/99 130/319/99 131/302/84 +f 129/10/97 145/320/97 130/303/99 +f 122/122/98 138/321/98 139/304/86 +f 115/14/84 131/322/84 132/305/85 +f 123/31/86 139/323/86 140/306/87 +f 116/116/85 132/324/85 133/307/88 +f 124/33/87 140/325/87 141/308/89 +f 117/18/88 133/326/88 134/309/90 +f 125/109/89 141/327/89 142/310/91 +f 118/118/90 134/328/90 135/311/92 +f 126/110/91 142/329/91 143/312/93 +f 119/119/92 135/330/92 136/313/94 +f 127/6/93 143/331/93 144/314/95 +f 120/25/94 136/332/94 137/315/96 diff --git a/src/main/resources/assets/hbm/models/missile_v2.obj b/src/main/resources/assets/hbm/models/missile_v2.obj new file mode 100644 index 000000000..16b7be918 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_v2.obj @@ -0,0 +1,572 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_v2.blend' +# www.blender.org +o Cylinder +v 0.000000 1.500000 -0.500000 +v -0.191342 1.500000 -0.461940 +v -0.353553 1.500000 -0.353553 +v -0.461940 1.500000 -0.191342 +v -0.500000 1.500000 0.000000 +v -0.461940 1.500000 0.191342 +v -0.353553 1.500000 0.353553 +v -0.191342 1.500000 0.461940 +v -0.000000 1.500000 0.500000 +v 0.191342 1.500000 0.461940 +v 0.353553 1.500000 0.353553 +v 0.461940 1.500000 0.191342 +v 0.500000 1.500000 -0.000000 +v 0.461940 1.500000 -0.191342 +v 0.353553 1.500000 -0.353554 +v 0.191341 1.500000 -0.461940 +v 0.000000 4.000000 -0.500000 +v -0.191342 4.000000 -0.461940 +v -0.353553 4.000000 -0.353553 +v -0.461940 4.000000 -0.191342 +v -0.500000 4.000000 0.000000 +v -0.461940 4.000000 0.191342 +v -0.353553 4.000000 0.353553 +v -0.191342 4.000000 0.461940 +v -0.000000 4.000000 0.500000 +v 0.191342 4.000000 0.461940 +v 0.353553 4.000000 0.353554 +v 0.461940 4.000000 0.191342 +v 0.500000 4.000000 -0.000000 +v 0.461940 4.000000 -0.191342 +v 0.353553 4.000000 -0.353554 +v 0.191341 4.000000 -0.461940 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 +v -0.000000 7.000000 0.000000 +v -0.000000 0.500000 -0.375000 +v -0.143506 0.500000 -0.346455 +v -0.265165 0.500000 -0.265165 +v -0.346455 0.500000 -0.143506 +v -0.375000 0.500000 0.000000 +v -0.346455 0.500000 0.143506 +v -0.265165 0.500000 0.265165 +v -0.143506 0.500000 0.346455 +v -0.000000 0.500000 0.375000 +v 0.143506 0.500000 0.346455 +v 0.265165 0.500000 0.265165 +v 0.346455 0.500000 0.143506 +v 0.375000 0.500000 -0.000000 +v 0.346455 0.500000 -0.143506 +v 0.265165 0.500000 -0.265165 +v 0.143506 0.500000 -0.346455 +v -0.198874 0.500000 -0.243068 +v 0.243068 0.500000 -0.198874 +v -0.552427 -0.000000 -0.596621 +v -0.198874 2.500000 -0.243068 +v -0.596621 -0.000000 -0.552427 +v 0.596621 -0.000000 -0.552427 +v -0.243068 0.500000 -0.198874 +v -0.243068 2.500000 -0.198874 +v -0.729204 -0.000000 -0.773398 +v -0.729204 1.500000 -0.773398 +v -0.773398 1.500000 -0.729204 +v -0.773398 -0.000000 -0.729204 +v 0.243068 2.500000 -0.198874 +v 0.552427 -0.000000 -0.596621 +v 0.198874 0.500000 -0.243068 +v 0.198874 2.500000 -0.243068 +v 0.773398 -0.000000 -0.729204 +v 0.773398 1.500000 -0.729204 +v 0.729204 1.500000 -0.773398 +v 0.729204 -0.000000 -0.773398 +v -0.729204 -0.000000 0.773398 +v -0.729204 1.500000 0.773398 +v -0.773398 1.500000 0.729204 +v -0.773398 -0.000000 0.729204 +v -0.198874 2.500000 0.243068 +v -0.198874 0.500000 0.243068 +v -0.552427 -0.000000 0.596621 +v -0.243068 2.500000 0.198874 +v -0.596621 -0.000000 0.552427 +v -0.243068 0.500000 0.198874 +v 0.773398 -0.000000 0.729204 +v 0.773398 1.500000 0.729204 +v 0.729204 1.500000 0.773398 +v 0.729204 -0.000000 0.773398 +v 0.243068 2.500000 0.198874 +v 0.243068 0.500000 0.198874 +v 0.596621 -0.000000 0.552427 +v 0.198874 2.500000 0.243068 +v 0.552427 -0.000000 0.596621 +v 0.198874 0.500000 0.243068 +vt 0.954652 0.411214 +vt 0.954652 0.492632 +vt 0.815840 0.492632 +vt 0.803279 0.240385 +vt 0.786885 0.009615 +vt 0.803279 0.009615 +vt 0.803279 0.750000 +vt 0.786885 0.519231 +vt 0.803279 0.519231 +vt 1.000000 0.509615 +vt 0.868852 0.519231 +vt 0.868852 0.509615 +vt 1.000000 -0.000000 +vt 0.868852 0.009615 +vt 0.868852 -0.000000 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 0.596154 +vt 1.000000 0.086538 +vt 0.803279 0.509615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.803279 0.000000 +vt 0.786885 0.240385 +vt 0.803279 0.394231 +vt 0.786885 0.394231 +vt 0.786885 0.394231 +vt 0.803279 0.240385 +vt 0.803279 0.394231 +vt 0.868852 0.009615 +vt 0.803279 0.000000 +vt 0.868852 -0.000000 +vt 0.803279 0.009615 +vt 1.000000 0.086538 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 -0.000000 +vt 0.786885 0.009615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.868852 0.509615 +vt 0.803279 0.519231 +vt 0.803279 0.509615 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 1.000000 0.519231 +vt 1.000000 0.509615 +vt 0.786885 0.519231 +vt 0.815840 0.411214 +vt 0.847684 0.398734 +vt 0.885246 0.394352 +vt 0.922808 0.398734 +vt 0.975929 0.429891 +vt 0.983401 0.451923 +vt 0.975929 0.473955 +vt 0.922808 0.505112 +vt 0.885246 0.509494 +vt 0.847684 0.505112 +vt 0.794563 0.473955 +vt 0.787091 0.451923 +vt 0.794563 0.429891 +vt 1.000000 0.519231 +vt 1.000000 0.009615 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.903846 +vt 1.000000 0.394231 +vt 0.786885 0.240385 +vt 1.000000 0.394231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.009615 +vt 0.868852 0.519231 +vt 1.000000 0.903846 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 0.295082 0.153846 +vt 0.245902 0.538462 +vt 0.245902 0.153846 +vt 0.737705 0.153846 +vt 0.688525 0.538462 +vt 0.688525 0.153846 +vt 0.344262 0.153846 +vt 0.295082 0.538462 +vt 0.786885 0.153846 +vt 0.737705 0.538462 +vt 0.393443 0.153846 +vt 0.344262 0.538462 +vt 0.049180 0.153846 +vt -0.000000 0.538462 +vt -0.000000 0.153846 +vt 0.442623 0.153846 +vt 0.393443 0.538462 +vt 0.098361 0.153846 +vt 0.049180 0.538462 +vt 0.491803 0.153846 +vt 0.442623 0.538462 +vt 0.147541 0.153846 +vt 0.098361 0.538462 +vt 0.540984 0.153846 +vt 0.491803 0.538462 +vt 0.196721 0.538462 +vt 0.147541 0.538462 +vt 0.639344 0.153846 +vt 0.590164 0.538462 +vt 0.590164 0.153846 +vt 0.540984 0.538462 +vt 0.196721 0.153846 +vt 0.639344 0.538462 +vt 0.573770 0.769231 +vt 0.540984 0.769231 +vt 0.196721 0.769231 +vt 0.672131 0.769231 +vt 0.639344 0.769231 +vt 0.278689 0.769231 +vt 0.245902 0.769231 +vt 0.688525 0.769231 +vt 0.295082 0.769231 +vt 0.770492 0.769231 +vt 0.737705 0.769231 +vt 0.377049 0.769231 +vt 0.344262 0.769231 +vt -0.000000 0.769231 +vt 0.393443 0.769231 +vt 0.081967 0.769231 +vt 0.049180 0.769231 +vt 0.442623 0.769231 +vt 0.098361 0.769231 +vt 0.491803 0.769231 +vt 0.147541 0.769231 +vt 0.590164 0.769231 +vt 0.655738 1.000000 +vt 0.721311 0.769231 +vt 0.704918 1.000000 +vt 0.754098 1.000000 +vt 0.032787 0.769231 +vt 0.016393 1.000000 +vt 0.065574 1.000000 +vt 0.131148 0.769231 +vt 0.114754 1.000000 +vt 0.180328 0.769231 +vt 0.163934 1.000000 +vt 0.229508 0.769231 +vt 0.213115 1.000000 +vt 0.262295 1.000000 +vt 0.327869 0.769231 +vt 0.311475 1.000000 +vt 0.360656 1.000000 +vt 0.426230 0.769231 +vt 0.409836 1.000000 +vt 0.475410 0.769231 +vt 0.459016 1.000000 +vt 0.524590 0.769231 +vt 0.508197 1.000000 +vt 0.557377 1.000000 +vt 0.622951 0.769231 +vt 0.606557 1.000000 +vt 0.278689 0.000000 +vt 0.688525 0.000000 +vt 0.721311 0.000000 +vt 0.295082 0.000000 +vt 0.327869 0.000000 +vt 0.737705 0.000000 +vt 0.770492 0.000000 +vt 0.344262 0.000000 +vt 0.377049 0.000000 +vt -0.000000 0.000000 +vt 0.032787 0.000000 +vt 0.426230 0.000000 +vt 0.081967 0.000000 +vt 0.475410 0.000000 +vt 0.131148 0.000000 +vt 0.491803 0.000000 +vt 0.524590 0.000000 +vt 0.180328 0.000000 +vt 0.622951 0.000000 +vt 0.573770 0.000000 +vt 0.196721 0.000000 +vt 0.229508 0.000000 +vt 0.639344 0.000000 +vt 0.672131 0.000000 +vt 0.786885 0.538462 +vt 0.245902 0.000000 +vt 0.393443 0.000000 +vt 0.049180 0.000000 +vt 0.442623 0.000000 +vt 0.098361 0.000000 +vt 0.147541 0.000000 +vt 0.590164 0.000000 +vt 0.540984 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5000 -0.7071 0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.5657 0.6000 -0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 +vn 0.5000 -0.7071 -0.5000 +vn 0.5657 0.6000 0.5657 +vn -0.5000 -0.7071 -0.5000 +vn 0.7058 -0.0617 0.7058 +vn 0.3824 0.0413 0.9231 +vn 0.3820 -0.0617 0.9221 +vn -0.9221 -0.0617 -0.3820 +vn -0.7065 0.0413 -0.7065 +vn -0.7058 -0.0617 -0.7058 +vn 0.9221 -0.0617 0.3820 +vn 0.7065 0.0413 0.7065 +vn -0.9981 -0.0617 -0.0000 +vn -0.9231 0.0413 -0.3824 +vn 0.9981 -0.0617 -0.0000 +vn 0.9231 0.0413 0.3824 +vn -0.9221 -0.0617 0.3820 +vn -0.9991 0.0413 0.0000 +vn 0.9221 -0.0617 -0.3820 +vn 0.9991 0.0413 -0.0000 +vn -0.7058 -0.0617 0.7058 +vn -0.9231 0.0413 0.3824 +vn 0.7058 -0.0617 -0.7058 +vn 0.9231 0.0413 -0.3824 +vn -0.3820 -0.0617 0.9221 +vn -0.7065 0.0413 0.7065 +vn 0.3820 -0.0617 -0.9221 +vn 0.7065 0.0413 -0.7065 +vn 0.0000 0.0413 0.9991 +vn -0.3824 0.0413 0.9231 +vn -0.3820 -0.0617 -0.9221 +vn -0.0000 0.0413 -0.9991 +vn -0.0000 -0.0617 -0.9981 +vn 0.3824 0.0413 -0.9231 +vn -0.0000 -0.0617 0.9981 +vn -0.3824 0.0413 -0.9231 +vn -0.0000 0.1617 -0.9868 +vn 0.3776 0.1617 -0.9117 +vn -0.0000 0.1617 0.9868 +vn -0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 -0.9117 +vn 0.6978 0.1617 0.6978 +vn 0.3776 0.1617 0.9117 +vn -0.9868 0.1617 0.0000 +vn -0.9117 0.1617 -0.3776 +vn 0.9868 0.1617 0.0000 +vn 0.9117 0.1617 0.3776 +vn -0.6978 0.1617 0.6978 +vn -0.9117 0.1617 0.3776 +vn 0.9117 0.1617 -0.3776 +vn 0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 0.9117 +vn -0.0000 1.0000 0.0000 +vn 0.7016 -0.1240 0.7016 +vn -0.7016 -0.1240 -0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 -0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 0.9923 +vn -0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 +vn 0.3797 -0.1240 0.9167 +s off +f 64/1/1 60/2/1 56/3/1 +f 84/4/2 82/5/2 85/6/2 +f 76/7/3 74/8/3 77/9/3 +f 66/10/4 70/11/4 68/12/4 +f 67/13/5 79/14/5 71/15/5 +f 75/16/2 66/17/2 74/18/2 +f 83/19/6 67/20/6 82/21/6 +f 76/7/7 77/9/7 72/22/7 +f 84/4/3 85/6/3 80/23/3 +f 70/11/1 74/24/1 68/12/1 +f 75/25/8 73/26/8 69/27/8 +f 71/15/1 85/6/1 82/28/1 +f 83/29/9 81/30/9 78/31/9 +f 93/32/10 87/33/10 90/34/10 +f 92/35/1 89/36/1 94/37/1 +f 87/33/6 86/38/6 91/39/6 +f 88/40/3 95/41/3 89/42/3 +f 95/43/11 92/35/11 94/37/11 +f 87/33/7 89/44/7 86/38/7 +f 98/45/12 100/46/12 103/47/12 +f 104/48/1 96/49/1 99/50/1 +f 97/51/2 96/49/2 101/52/2 +f 98/53/7 105/54/7 99/55/7 +f 101/56/13 104/48/13 105/57/13 +f 97/51/6 99/58/6 96/49/6 +f 52/59/1 51/60/1 50/61/1 +f 50/61/1 65/62/1 64/1/1 +f 64/1/1 63/63/1 60/2/1 +f 63/63/1 62/64/1 60/2/1 +f 62/64/1 61/65/1 60/2/1 +f 60/2/1 59/66/1 56/3/1 +f 59/66/1 58/67/1 56/3/1 +f 58/67/1 57/68/1 56/3/1 +f 56/3/1 55/69/1 54/70/1 +f 54/70/1 53/71/1 52/59/1 +f 52/59/1 50/61/1 64/1/1 +f 56/3/1 54/70/1 52/59/1 +f 52/59/1 64/1/1 56/3/1 +f 84/4/2 83/29/2 82/5/2 +f 76/7/3 75/25/3 74/8/3 +f 66/10/4 72/72/4 70/11/4 +f 67/13/5 80/73/5 79/14/5 +f 69/74/2 66/17/2 75/16/2 +f 66/17/2 68/75/2 74/18/2 +f 78/76/6 67/20/6 83/19/6 +f 67/20/6 71/77/6 82/21/6 +f 70/11/7 72/22/7 77/9/7 +f 72/22/7 73/78/7 76/7/7 +f 79/14/3 80/23/3 85/6/3 +f 80/23/3 81/79/3 84/4/3 +f 70/11/1 77/9/1 74/24/1 +f 75/25/8 76/7/8 73/26/8 +f 71/15/1 79/14/1 85/6/1 +f 83/29/9 84/4/9 81/30/9 +f 93/32/10 88/80/10 87/33/10 +f 92/35/1 86/38/1 89/36/1 +f 92/35/6 91/39/6 86/38/6 +f 91/39/6 90/81/6 87/33/6 +f 93/82/3 95/41/3 88/40/3 +f 95/41/3 94/83/3 89/42/3 +f 95/43/11 91/84/11 92/35/11 +f 87/33/7 88/80/7 89/44/7 +f 98/45/12 97/51/12 100/46/12 +f 104/48/1 102/85/1 96/49/1 +f 102/85/2 101/52/2 96/49/2 +f 101/52/2 100/86/2 97/51/2 +f 103/87/7 105/54/7 98/53/7 +f 105/54/7 104/88/7 99/55/7 +f 101/56/13 102/85/13 104/48/13 +f 97/51/6 98/45/6 99/58/6 +s 1 +f 11/89/14 26/90/15 10/91/16 +f 4/92/17 19/93/18 3/94/19 +f 12/95/20 27/96/21 11/89/14 +f 5/97/22 20/98/23 4/92/17 +f 13/99/24 28/100/25 12/95/20 +f 6/101/26 21/102/27 5/103/22 +f 14/104/28 29/105/29 13/99/24 +f 7/106/30 22/107/31 6/101/26 +f 15/108/32 30/109/33 14/104/28 +f 8/110/34 23/111/35 7/106/30 +f 16/112/36 31/113/37 15/108/32 +f 8/110/34 25/114/38 24/115/39 +f 2/116/40 17/117/41 1/118/42 +f 1/118/42 32/119/43 16/112/36 +f 10/91/16 25/114/38 9/120/44 +f 3/94/19 18/121/45 2/116/40 +f 32/119/43 33/122/46 48/123/47 +f 26/90/15 41/124/48 25/114/38 +f 18/121/45 35/125/49 34/126/50 +f 26/90/15 43/127/51 42/128/52 +f 20/98/23 35/129/49 19/93/18 +f 28/100/25 43/130/51 27/96/21 +f 20/98/23 37/131/53 36/132/54 +f 28/100/25 45/133/55 44/134/56 +f 22/107/31 37/135/53 21/102/27 +f 30/109/33 45/136/55 29/105/29 +f 22/107/31 39/137/57 38/138/58 +f 31/113/37 46/139/59 30/109/33 +f 24/115/39 39/140/57 23/111/35 +f 32/119/43 47/141/60 31/113/37 +f 25/114/38 40/142/61 24/115/39 +f 18/121/45 33/143/46 17/117/41 +f 34/126/50 35/125/49 49/144/62 +f 35/129/49 36/145/54 49/146/62 +f 36/132/54 37/131/53 49/147/62 +f 37/135/53 38/148/58 49/149/62 +f 38/138/58 39/137/57 49/150/62 +f 39/140/57 40/151/61 49/152/62 +f 40/142/61 41/153/48 49/154/62 +f 41/124/48 42/155/52 49/156/62 +f 42/128/52 43/127/51 49/157/62 +f 43/130/51 44/158/56 49/159/62 +f 44/134/56 45/133/55 49/160/62 +f 45/136/55 46/161/59 49/162/62 +f 46/139/59 47/163/60 49/164/62 +f 47/141/60 48/165/47 49/166/62 +f 48/123/47 33/122/46 49/167/62 +f 33/143/46 34/168/50 49/169/62 +f 10/91/16 60/170/63 11/89/14 +f 4/92/17 52/171/64 53/172/65 +f 12/95/20 60/173/63 61/174/66 +f 5/97/22 53/175/65 54/176/67 +f 13/99/24 61/177/66 62/178/68 +f 6/101/26 54/179/67 55/180/69 +f 13/99/24 63/181/70 14/104/28 +f 6/101/26 56/182/71 7/106/30 +f 14/104/28 64/183/72 15/108/32 +f 7/106/30 57/184/73 8/110/34 +f 16/112/36 64/185/72 65/186/74 +f 8/110/34 58/187/75 9/120/44 +f 1/118/42 51/188/76 2/116/40 +f 16/112/36 50/189/77 1/118/42 +f 10/91/16 58/190/75 59/191/78 +f 3/94/19 51/192/76 52/193/64 +f 11/89/14 27/96/21 26/90/15 +f 4/92/17 20/98/23 19/93/18 +f 12/95/20 28/100/25 27/96/21 +f 5/97/22 21/194/27 20/98/23 +f 13/99/24 29/105/29 28/100/25 +f 6/101/26 22/107/31 21/102/27 +f 14/104/28 30/109/33 29/105/29 +f 7/106/30 23/111/35 22/107/31 +f 15/108/32 31/113/37 30/109/33 +f 8/110/34 24/115/39 23/111/35 +f 16/112/36 32/119/43 31/113/37 +f 8/110/34 9/120/44 25/114/38 +f 2/116/40 18/121/45 17/117/41 +f 1/118/42 17/117/41 32/119/43 +f 10/91/16 26/90/15 25/114/38 +f 3/94/19 19/93/18 18/121/45 +f 32/119/43 17/117/41 33/122/46 +f 26/90/15 42/155/52 41/124/48 +f 18/121/45 19/93/18 35/125/49 +f 26/90/15 27/96/21 43/127/51 +f 20/98/23 36/145/54 35/129/49 +f 28/100/25 44/158/56 43/130/51 +f 20/98/23 21/194/27 37/131/53 +f 28/100/25 29/105/29 45/133/55 +f 22/107/31 38/148/58 37/135/53 +f 30/109/33 46/161/59 45/136/55 +f 22/107/31 23/111/35 39/137/57 +f 31/113/37 47/163/60 46/139/59 +f 24/115/39 40/151/61 39/140/57 +f 32/119/43 48/165/47 47/141/60 +f 25/114/38 41/153/48 40/142/61 +f 18/121/45 34/168/50 33/143/46 +f 10/91/16 59/195/78 60/170/63 +f 4/92/17 3/94/19 52/171/64 +f 12/95/20 11/89/14 60/173/63 +f 5/97/22 4/92/17 53/175/65 +f 13/99/24 12/95/20 61/177/66 +f 6/101/26 5/103/22 54/179/67 +f 13/99/24 62/196/68 63/181/70 +f 6/101/26 55/197/69 56/182/71 +f 14/104/28 63/198/70 64/183/72 +f 7/106/30 56/199/71 57/184/73 +f 16/112/36 15/108/32 64/185/72 +f 8/110/34 57/200/73 58/187/75 +f 1/118/42 50/201/77 51/188/76 +f 16/112/36 65/202/74 50/189/77 +f 10/91/16 9/120/44 58/190/75 +f 3/94/19 2/116/40 51/192/76 diff --git a/src/main/resources/assets/hbm/models/mobs/plasticbag.obj b/src/main/resources/assets/hbm/models/mobs/plasticbag.obj new file mode 100644 index 000000000..239dd3d8e --- /dev/null +++ b/src/main/resources/assets/hbm/models/mobs/plasticbag.obj @@ -0,0 +1,97 @@ +# Blender v2.79 (sub 0) OBJ File: 'plasticbag.blend' +# www.blender.org +o Cube_Cube.001 +v -0.187500 -0.250000 0.125000 +v -0.187500 0.250000 0.125000 +v -0.187500 -0.250000 -0.125000 +v -0.187500 0.250000 -0.125000 +v 0.187500 -0.250000 0.125000 +v 0.187500 0.250000 0.125000 +v 0.187500 -0.250000 -0.125000 +v 0.187500 0.250000 -0.125000 +v -0.125000 0.250000 0.125000 +v -0.125000 0.250000 -0.125000 +v -0.062500 0.250000 0.125000 +v -0.062500 0.250000 -0.125000 +v -0.125000 0.375000 0.125000 +v -0.125000 0.375000 -0.125000 +v -0.062500 0.375000 0.125000 +v -0.062500 0.375000 -0.125000 +v 0.062500 0.250000 0.125000 +v 0.062500 0.250000 -0.125000 +v 0.125000 0.250000 0.125000 +v 0.125000 0.250000 -0.125000 +v 0.062500 0.375000 0.125000 +v 0.062500 0.375000 -0.125000 +v 0.125000 0.375000 0.125000 +v 0.125000 0.375000 -0.125000 +v -0.062500 0.437500 0.125000 +v -0.062500 0.437500 -0.125000 +v 0.062500 0.437500 0.125000 +v 0.062500 0.437500 -0.125000 +vt 1.000000 1.000000 +vt 0.600000 0.333333 +vt 1.000000 0.333333 +vt 0.600000 1.000000 +vt -0.000000 0.333333 +vt 1.000000 1.000000 +vt 0.600000 0.333333 +vt 1.000000 0.333333 +vt 0.600000 1.000000 +vt -0.000000 0.333333 +vt 0.600000 0.000000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.900000 0.166667 +vt 0.900000 0.000000 +vt 0.700000 0.000000 +vt 0.600000 0.166667 +vt 0.600000 0.000000 +vt 1.000000 0.000000 +vt 0.900000 0.166667 +vt 0.900000 0.000000 +vt 0.700000 0.000000 +vt 0.600000 0.166667 +vt 0.600000 0.000000 +vt 0.700000 0.250000 +vt 0.700000 0.166667 +vt 0.900000 0.250000 +vt 0.700000 0.166667 +vt 0.700000 0.250000 +vt 1.000000 0.166667 +vt 1.000000 0.166667 +vt 0.900000 0.250000 +vt -0.000000 1.000000 +vt -0.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/2/2 +f 8/6/3 5/7/3 7/8/3 +f 6/9/4 1/10/4 5/7/4 +f 7/11/5 1/10/5 3/12/5 +f 19/13/4 21/14/4 17/15/4 +f 11/16/4 13/17/4 9/18/4 +f 10/19/2 16/20/2 12/21/2 +f 18/22/2 24/23/2 20/24/2 +f 16/20/2 28/25/2 22/26/2 +f 27/27/4 15/28/4 21/14/4 +f 13/17/4 15/28/4 25/29/4 +f 21/14/4 23/30/4 27/27/4 +f 22/26/2 28/25/2 24/23/2 +f 16/20/2 14/31/2 26/32/2 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/33/2 7/5/2 +f 8/6/3 6/9/3 5/7/3 +f 6/9/4 2/34/4 1/10/4 +f 7/11/5 5/7/5 1/10/5 +f 19/13/4 23/30/4 21/14/4 +f 11/16/4 15/28/4 13/17/4 +f 10/19/2 14/31/2 16/20/2 +f 18/22/2 22/26/2 24/23/2 +f 16/20/2 26/32/2 28/25/2 +f 27/27/4 25/29/4 15/28/4 diff --git a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj index 6e34a53d1..0a7aa02dd 100644 --- a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj +++ b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj @@ -1,5 +1,6 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 3.6.1 # www.blender.org +mtllib UAC pistol.mtl o bool_obj_bool_obj_data.002 v -0.395192 7.596701 -3.479156 v 0.584592 7.596701 -3.479156 @@ -9,26 +10,26 @@ v -0.395192 8.736673 -5.713195 v 0.584592 8.736673 -5.713195 v -0.395192 9.164925 -5.571519 v 0.584592 9.164925 -5.571519 -v -0.395192 9.566045 -5.817649 -v 0.584592 9.566045 -5.817649 +v -0.395192 9.566045 -5.817651 +v 0.584592 9.566045 -5.817651 v -0.395192 9.328085 -6.240386 v 0.584592 9.328085 -6.240386 -v -0.395192 8.650140 -6.472072 -v 0.584592 8.650140 -6.472072 -v -0.395192 8.023211 -6.974553 -v 0.584592 8.023211 -6.974553 +v -0.395192 8.650138 -6.472074 +v 0.584592 8.650138 -6.472074 +v -0.395192 8.023209 -6.974555 +v 0.584592 8.023209 -6.974555 v -0.395192 7.262578 -7.039774 v 0.584592 7.262578 -7.039774 -v -0.395192 7.029797 -6.702052 -v 0.584592 7.029797 -6.702052 -v -0.395192 7.269282 -6.422195 -v 0.584592 7.269282 -6.422195 -v -0.395192 7.572930 -6.422195 -v 0.584592 7.572930 -6.422195 -v -0.395192 8.226030 -6.011783 -v 0.584592 8.226030 -6.011783 -v -0.395192 6.903951 -4.234123 -v 0.584592 6.903951 -4.234123 +v -0.395192 7.029797 -6.702054 +v 0.584592 7.029797 -6.702054 +v -0.395192 7.269280 -6.422195 +v 0.584592 7.269280 -6.422195 +v -0.395192 7.572928 -6.422195 +v 0.584592 7.572928 -6.422195 +v -0.395192 8.226030 -6.011785 +v 0.584592 8.226030 -6.011785 +v -0.395192 6.903951 -4.234125 +v 0.584592 6.903951 -4.234125 v -0.395192 6.148036 -4.191928 v 0.584592 6.148036 -4.191928 v -0.395192 7.596701 -3.479156 @@ -39,4669 +40,112 @@ v -0.395192 8.736673 -5.713195 v 0.584592 8.736673 -5.713195 v -0.395192 9.164925 -5.571519 v 0.584592 9.164925 -5.571519 -v -0.395192 9.566045 -5.817649 -v 0.584592 9.566045 -5.817649 +v -0.395192 9.566045 -5.817651 +v 0.584592 9.566045 -5.817651 v -0.395192 9.328085 -6.240386 v 0.584592 9.328085 -6.240386 -v -0.395192 8.650140 -6.472072 -v 0.584592 8.650140 -6.472072 -v -0.395192 8.023211 -6.974553 -v 0.584592 8.023211 -6.974553 +v -0.395192 8.650138 -6.472074 +v 0.584592 8.650138 -6.472074 +v -0.395192 8.023209 -6.974555 +v 0.584592 8.023209 -6.974555 v -0.395192 7.262578 -7.039774 v 0.584592 7.262578 -7.039774 -v -0.395192 7.029797 -6.702052 -v 0.584592 7.029797 -6.702052 -v -0.395192 7.269282 -6.422195 -v 0.584592 7.269282 -6.422195 -v -0.395192 7.572930 -6.422195 -v 0.584592 7.572930 -6.422195 -v -0.395192 8.226030 -6.011783 -v 0.584592 8.226030 -6.011783 -v -0.395192 6.903951 -4.234123 -v 0.584592 6.903951 -4.234123 +v -0.395192 7.029797 -6.702054 +v 0.584592 7.029797 -6.702054 +v -0.395192 7.269280 -6.422195 +v 0.584592 7.269280 -6.422195 +v -0.395192 7.572928 -6.422195 +v 0.584592 7.572928 -6.422195 +v -0.395192 8.226030 -6.011785 +v 0.584592 8.226030 -6.011785 +v -0.395192 6.903951 -4.234125 +v 0.584592 6.903951 -4.234125 v -0.395192 6.148036 -4.191928 v 0.584592 6.148036 -4.191928 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.5222 0.8528 +vn -0.0000 -0.6977 0.7164 +vn -0.0000 0.3799 0.9250 +vn -0.0000 0.1152 0.9933 +vn -0.0000 0.9679 0.2511 +vn -0.0000 0.6394 -0.7689 +vn -0.0000 0.4816 -0.8764 +vn -0.0000 0.3715 -0.9284 +vn -0.0000 -0.4267 -0.9044 +vn -0.0000 -0.9986 0.0521 +vn -0.0000 -0.4182 0.9083 +vn -0.0000 -0.2769 0.9609 +vn -0.0000 -0.9829 0.1841 +vn -0.0000 -0.4738 -0.8807 +vn -0.0000 -0.7356 -0.6775 vt 0.382588 0.627146 vt 0.395485 0.647711 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.395485 0.647711 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.395485 0.647711 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.395485 0.647711 -vt 0.382588 0.627146 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.5222 0.8528 -vn 0.0000 -0.6977 0.7164 -vn 0.0000 0.3799 0.9250 -vn 0.0000 0.1152 0.9933 -vn 0.0000 0.9679 0.2512 -vn 0.0000 0.6394 -0.7689 -vn 0.0000 0.4816 -0.8764 -vn 0.0000 0.3715 -0.9284 -vn 0.0000 -0.4267 -0.9044 -vn 0.0000 -0.9986 0.0521 -vn 0.0000 -0.4182 0.9083 -vn 0.0000 -0.2769 0.9609 -vn 0.0000 -0.9829 0.1841 -vn 0.0000 -0.4738 -0.8807 -vn 0.0000 -0.4737 -0.8807 -vn 0.0000 -0.7356 -0.6775 -s off -f 22/1/1 20/2/1 18/3/1 -f 17/4/2 21/5/2 23/6/2 -f 25/7/2 15/8/2 23/6/2 -f 16/9/1 26/10/1 24/11/1 -f 14/12/1 6/13/1 26/10/1 -f 13/14/2 25/7/2 5/15/2 -f 5/15/2 11/16/2 13/14/2 -f 12/17/1 6/13/1 14/12/1 -f 7/18/2 9/19/2 11/16/2 -f 12/17/1 10/20/1 8/21/1 -f 6/13/1 28/22/1 26/10/1 -f 28/22/1 3/23/1 30/24/1 -f 27/25/2 5/15/2 25/7/2 -f 27/25/2 4/26/2 1/27/2 -f 16/9/1 24/11/1 18/3/1 -f 24/11/1 22/1/1 18/3/1 -f 23/6/2 15/8/2 17/4/2 -f 17/4/2 19/28/2 21/5/2 -f 25/7/2 13/14/2 15/8/2 -f 16/9/1 14/12/1 26/10/1 -f 5/15/2 7/18/2 11/16/2 -f 12/17/1 8/21/1 6/13/1 -f 6/13/1 2/29/1 28/22/1 -f 28/22/1 2/29/1 3/23/1 -f 27/25/2 1/27/2 5/15/2 -f 27/25/2 29/30/2 4/26/2 +s 0 +f 22/1/1 20/1/1 18/1/1 +f 17/1/2 21/1/2 23/1/2 +f 25/1/2 15/1/2 23/1/2 +f 16/1/1 26/1/1 24/1/1 +f 14/1/1 6/1/1 26/1/1 +f 13/1/2 25/1/2 5/1/2 +f 5/1/2 11/1/2 13/1/2 +f 12/1/1 6/1/1 14/1/1 +f 7/1/2 9/1/2 11/1/2 +f 12/1/1 10/1/1 8/1/1 +f 6/1/1 28/1/1 26/1/1 +f 28/1/1 3/2/1 30/1/1 +f 27/1/2 5/1/2 25/1/2 +f 27/1/2 4/2/2 1/1/2 +f 16/1/1 24/1/1 18/1/1 +f 24/1/1 22/1/1 18/1/1 +f 23/1/2 15/1/2 17/1/2 +f 17/1/2 19/1/2 21/1/2 +f 25/1/2 13/1/2 15/1/2 +f 16/1/1 14/1/1 26/1/1 +f 5/1/2 7/1/2 11/1/2 +f 12/1/1 8/1/1 6/1/1 +f 6/1/1 2/1/1 28/1/1 +f 28/1/1 2/1/1 3/2/1 +f 27/1/2 1/1/2 5/1/2 +f 27/1/2 29/1/2 4/2/2 s 1 -f 31/31/3 33/32/4 32/33/3 -f 32/33/3 35/34/5 31/31/3 -f 36/35/5 37/36/6 35/34/5 -f 38/37/6 39/38/7 37/36/6 -f 40/39/7 41/40/8 39/38/7 -f 42/41/8 43/42/9 41/40/8 -f 44/43/9 45/44/10 43/42/9 -f 46/45/10 47/46/11 45/44/10 -f 48/47/11 49/48/12 47/46/11 -f 50/49/12 51/50/13 49/48/12 -f 52/51/13 53/52/14 51/50/13 -f 54/53/14 55/54/15 53/52/14 -f 56/55/15 57/56/16 55/54/15 -f 58/57/17 59/58/18 57/56/16 -f 34/59/4 60/60/18 33/32/4 -f 31/31/3 34/59/4 33/32/4 -f 32/33/3 36/35/5 35/34/5 -f 36/35/5 38/37/6 37/36/6 -f 38/37/6 40/39/7 39/38/7 -f 40/39/7 42/41/8 41/40/8 -f 42/41/8 44/43/9 43/42/9 -f 44/43/9 46/45/10 45/44/10 -f 46/45/10 48/47/11 47/46/11 -f 48/47/11 50/49/12 49/48/12 -f 50/49/12 52/51/13 51/50/13 -f 52/51/13 54/53/14 53/52/14 -f 54/53/14 56/55/15 55/54/15 -f 56/55/15 58/57/17 57/56/16 -f 58/57/17 60/60/18 59/58/18 -f 34/59/4 59/58/18 60/60/18 -o slide_pistol_0 -v 1.014517 11.207904 -2.625849 -v 1.014517 11.207904 -2.300615 -v 1.014517 10.723700 -1.978914 -v -1.014517 10.157009 -2.625849 -v -1.014517 11.207904 -2.625849 -v -0.335502 10.613042 -2.625849 -v -1.526129 9.326169 3.920666 -v -1.526129 9.326169 3.413728 -v -1.526129 8.752565 3.413728 -v -1.705540 8.752565 3.920666 -v -1.705540 7.184847 3.920666 -v -1.705540 8.402288 6.532843 -v -1.526129 8.752565 3.920666 -v -1.705540 8.752565 3.920666 -v -1.705540 8.752759 6.288157 -v -1.526129 8.752565 3.920666 -v -1.524936 8.752759 6.288157 -v 1.705540 7.247200 -1.820036 -v 1.526129 7.247200 -1.820036 -v 1.526043 7.614016 -2.276281 -v 1.321148 7.184845 12.021435 -v -1.171832 7.184845 11.897297 -v 1.156401 7.184845 11.897297 -v 1.526043 7.614016 -2.276281 -v 1.526129 7.247200 -1.820036 -v 1.526043 7.184847 -2.765843 -v 1.321148 7.184845 11.214216 -v -1.705540 7.184847 2.105287 -v -1.705540 8.757562 2.105289 -v -1.705540 8.927025 1.935824 -v 1.526129 7.247200 -1.820036 -v 1.526129 7.184847 -1.313097 -v 1.526043 7.184847 -2.765843 -v -1.524936 9.326169 6.288157 -v -1.326382 10.025589 6.288157 -v -1.705540 9.660696 6.288157 -v -1.705540 9.326169 6.288157 -v 0.813732 7.184845 16.849926 -v 1.705540 7.184845 12.021435 -v 1.705540 7.184845 18.319260 -v 1.326382 7.184845 19.492821 -v -1.705540 7.967402 7.346316 -v -1.705540 8.055081 6.892088 -v 1.705540 7.637856 11.214216 -v 1.705540 7.184845 11.214216 -v 1.705540 7.967402 7.346316 -v -1.705540 7.184847 3.920666 -v -1.526129 7.184847 3.920666 -v -1.171832 7.184845 5.830760 -v 1.705540 7.184847 3.920666 -v 1.705540 7.184845 11.214216 -v 1.156401 7.184845 5.830760 -v 1.705540 7.184847 -2.765843 -v 1.705540 7.184847 -4.842922 -v 1.705540 8.782389 -4.842922 -v 1.705540 7.614016 -2.276281 -v 1.231429 7.184847 -4.842922 -v 1.526129 7.184847 -1.313097 -v 1.231024 7.184847 1.879624 -v -1.526129 7.184847 2.105287 -v -1.526129 7.184847 2.612226 -v -1.526129 8.752565 2.612226 -v 1.705540 7.184847 3.920666 -v 1.321148 7.184845 11.214216 -v 1.705540 7.184845 11.214216 -v 1.705540 7.637856 11.214216 -v -0.813732 7.184845 16.849926 -v 1.526129 7.184847 3.920666 -v 0.000000 9.832471 21.944122 -v 0.947015 10.390595 21.944122 -v -0.947015 10.390595 21.944122 -v 1.705540 8.055081 6.892088 -v -1.171832 7.184845 11.897297 -v -1.171832 8.402286 11.660704 -v -1.171832 8.578351 11.777046 -v 0.167762 11.355708 20.190464 -v -0.167762 11.355708 20.190464 -v -0.167762 10.787156 20.190464 -v 0.814306 10.492231 20.190464 -v 0.814306 10.492231 19.285318 -v 0.359371 10.492231 19.285318 -v 0.893030 10.492231 20.116810 -v 0.893030 10.492231 19.372772 -v -1.526129 7.184847 3.413727 -v 1.526129 7.184847 3.413727 -v -0.393269 7.184847 1.879624 -v 0.393269 7.184847 1.879624 -v -1.333642 8.402288 6.532843 -v -1.333642 8.055081 6.892088 -v -1.333642 7.967402 7.346316 -v -1.016029 10.321226 11.777046 -v -0.947015 10.390595 11.777046 -v -0.654714 10.019365 11.777046 -v -0.813732 7.184845 16.849926 -v 0.813732 7.184845 16.849926 -v 0.813732 5.420440 16.849926 -v 0.471660 5.087638 16.849926 -v -0.471660 5.087638 16.849926 -v -0.813732 5.420440 16.849926 -v -1.333642 7.184845 21.944122 -v -1.333642 7.184845 19.492821 -v -0.813732 7.184845 21.944122 -v -1.526129 7.184847 0.796846 -v -1.705540 7.184847 0.796846 -v -1.705540 7.184847 -0.004656 -v -0.728164 8.051682 1.879624 -v -0.393269 9.417000 1.879624 -v -0.393269 7.184847 1.879624 -v -0.728164 7.586768 1.879624 -v -1.238688 7.184847 1.879624 -v 1.231024 9.417000 1.879624 -v 1.231024 8.051682 1.879624 -v 0.728164 8.051682 1.879624 -v 1.526129 7.184847 2.105287 -v 1.526129 7.184847 2.612226 -v 1.705540 7.184847 -1.313097 -v 1.705540 7.184847 -0.511595 -v 1.526129 7.184847 -0.511595 -v 1.705540 7.184847 2.612226 -v 1.705540 7.184847 3.413727 -v 1.526129 7.184847 3.920666 -v 1.526129 9.833411 3.920666 -v 1.705540 9.660696 3.920666 -v 0.408756 10.107763 -3.259710 -v -0.409408 10.107763 -3.259710 -v -0.409408 10.390597 -3.172265 -v 1.705540 9.660696 3.413728 -v 1.526129 9.833411 3.413728 -v 1.526129 7.184847 3.413727 -v -0.392768 7.184847 -4.842922 -v 0.393269 9.417000 1.879624 -v 0.393269 7.184847 1.879624 -v 0.392768 7.184847 -4.842922 -v 1.705540 7.184847 2.612226 -v 1.526129 7.184847 2.612226 -v 1.526129 9.833411 2.612226 -v 1.526129 7.184847 2.105287 -v 1.705540 7.184847 2.105287 -v 1.705540 9.660696 2.105289 -v 0.392768 8.782389 -4.842922 -v 0.392768 9.417337 -4.333549 -v 1.231024 7.184847 1.879624 -v 1.231024 7.586768 1.879624 -v 1.231429 7.587345 -4.842922 -v 0.408756 10.390597 -3.531358 -v 0.408756 10.107763 -3.763226 -v 0.408756 10.107763 -3.259710 -v 1.526129 9.833411 1.303785 -v 1.705540 9.660696 1.303785 -v 1.705540 7.184847 1.303785 -v 0.728571 7.587345 -4.842922 -v 0.728571 8.051105 -4.842922 -v 1.231429 8.051105 -4.842922 -v 1.705540 9.660696 0.796846 -v 1.526129 9.833411 0.796846 -v 1.526129 7.184847 0.796846 -v 0.813732 7.184845 21.944122 -v 1.231024 9.417000 1.879624 -v 0.393269 9.417000 1.879624 -v 0.392768 9.417337 -4.333549 -v 1.231024 7.586768 1.879624 -v 0.728164 7.586768 1.879624 -v 0.728571 7.587345 -4.842922 -v 1.526129 9.833411 -0.004656 -v 1.705540 9.660696 -0.004656 -v 1.705540 7.184847 -0.004656 -v 1.705540 7.184847 -4.842922 -v 1.231429 7.184847 -4.842922 -v 1.231429 7.587345 -4.842922 -v 1.526129 7.184847 -0.511595 -v 1.705540 7.184847 -0.511595 -v 1.705540 9.660696 -0.511595 -v 1.231429 9.417337 -4.333549 -v 1.231429 8.782389 -4.842922 -v 1.231024 9.417000 1.879624 -v 0.728164 7.586768 1.879624 -v 0.728164 8.051682 1.879624 -v 0.728571 8.051105 -4.842922 -v 1.526129 9.833411 -1.313097 -v 1.705540 9.660696 -1.313097 -v 1.705540 7.184847 -1.313097 -v 1.231024 8.051682 1.879624 -v 0.728164 8.051682 1.879624 -v 1.231024 8.051682 1.879624 -v 1.231429 8.051105 -4.842922 -v 0.947015 10.390597 -2.821980 -v -0.947015 10.390597 -2.821980 -v -1.132077 10.212755 -2.753814 -v 1.526129 7.247200 -1.820036 -v 1.705540 7.247200 -1.820036 -v 1.705540 9.660696 -1.820036 -v 1.705540 8.752767 6.288157 -v 1.705540 8.402288 6.532843 -v -1.132077 10.212755 0.576711 -v -0.947015 10.390597 0.637665 -v 0.947015 10.390597 0.637665 -v 1.326382 7.184845 21.944122 -v 1.526129 7.184847 -0.004656 -v -1.526129 7.184847 2.612226 -v -1.238688 7.184847 1.879624 -v 1.705540 7.184847 2.105287 -v 1.526129 7.184847 1.303785 -v 1.705540 7.184847 1.303785 -v 1.526129 7.184847 0.796846 -v 1.705540 7.184847 -0.004656 -v 0.728164 7.586768 1.879624 -v 1.231024 7.586768 1.879624 -v 1.231024 7.184847 1.879624 -v 0.393269 7.184847 1.879624 -v -1.238688 9.417000 1.879624 -v -1.526129 7.184847 2.105287 -v -1.705540 7.184847 -1.313097 -v -1.526129 7.184847 -1.313097 -v -1.526129 7.184847 -0.511595 -v -1.705540 7.184847 2.612226 -v -1.526129 9.326169 3.920666 -v -1.705540 9.326169 3.920666 -v -1.705540 9.660696 3.920666 -v -1.526129 7.184847 3.920666 -v -1.705540 7.184847 3.920666 -v -1.705540 8.752565 3.920666 -v -1.705540 7.184847 3.413727 -v -1.526129 7.184847 3.413727 -v -1.526129 8.752565 3.413728 -v -1.705540 9.326169 3.413728 -v -1.526129 9.326169 3.413728 -v -1.526129 9.833411 3.413728 -v -1.705540 7.184847 2.612226 -v -1.705540 7.184847 3.413727 -v -1.705540 8.752565 3.413728 -v -0.393269 9.417000 1.879624 -v -0.392768 8.782389 -4.842922 -v -0.392768 7.184847 -4.842922 -v -1.526129 9.326169 2.612226 -v -1.705540 9.326169 2.612226 -v -1.705540 9.660696 2.612226 -v -1.526129 7.184847 2.612226 -v -1.705540 7.184847 2.612226 -v -1.705540 8.752565 2.612226 -v -0.392768 9.417337 -4.333549 -v -1.238688 7.184847 1.879624 -v -1.238688 7.184847 -4.842922 -v -1.238688 7.587345 -4.842922 -v -0.409408 10.390597 -3.531358 -v -0.409408 10.390597 -3.172265 -v -0.409408 10.107763 -3.259710 -v -1.526129 9.833411 1.303785 -v -1.526129 7.184847 1.303785 -v -1.705540 7.184847 1.303785 -v -0.728571 7.587345 -4.842922 -v -1.238688 7.587345 -4.842922 -v -1.238688 8.051105 -4.842922 -v -1.705540 9.660696 0.796846 -v -1.705540 7.184847 0.796846 -v -1.526129 7.184847 0.796846 -v -1.238688 9.417000 1.879624 -v -1.238688 9.417337 -4.333549 -v -0.392768 9.417337 -4.333549 -v -1.238688 7.586768 1.879624 -v -1.238688 7.587345 -4.842922 -v -0.728571 7.587345 -4.842922 -v -1.526129 9.833411 -0.004656 -v -1.526129 7.184847 -0.004656 -v -1.705540 7.184847 -0.004656 -v -1.238688 7.184847 -4.842922 -v -1.705540 7.184847 -4.842922 -v -1.526129 7.184847 -0.511595 -v -1.526129 9.833411 -0.511595 -v -1.705540 9.660696 -0.511595 -v -1.238688 8.782389 -4.842922 -v -1.238688 9.417337 -4.333549 -v -1.238688 9.417000 1.879624 -v -0.728164 7.586768 1.879624 -v -0.728571 7.587345 -4.842922 -v -0.728571 8.051105 -4.842922 -v -1.526129 7.184847 -0.004656 -v -1.238688 7.184847 -4.842922 -v -1.526129 9.833411 -1.313097 -v -1.526129 7.184847 -1.313097 -v -1.705540 7.184847 -1.313097 -v -1.238688 8.051682 1.879624 -v -1.238688 8.051105 -4.842922 -v -0.728164 8.051682 1.879624 -v -0.728571 8.051105 -4.842922 -v -1.238688 8.051105 -4.842922 -v -1.705540 7.184847 -4.842922 -v -1.526129 7.184847 -1.820036 -v -1.705540 7.184847 2.105287 -v -1.705540 7.184847 1.303785 -v -1.526129 7.184847 -1.820036 -v -1.526129 9.833411 -1.820036 -v -1.705540 9.660696 -1.820036 -v -1.526129 7.184847 1.303785 -v -1.526129 7.184847 3.413727 -v -1.526129 7.184847 3.920666 -v -1.526129 8.752565 3.920666 -v -0.947015 10.390597 6.288157 -v -0.654714 10.019367 6.288157 -v -0.409408 10.390597 6.288157 -v -1.171832 9.475291 6.288157 -v -0.409408 10.019367 5.830760 -v -0.409408 10.390597 5.830760 -v -0.409408 10.390597 6.288157 -v 0.408756 10.019367 5.830760 -v 0.408756 10.019367 6.288157 -v 0.408756 10.390597 6.288157 -v 0.408756 10.019367 5.830760 -v 0.408756 10.390597 5.830760 -v -0.409408 10.390597 5.830760 -v 0.408756 10.019367 6.288157 -v 0.632517 10.019367 6.288157 -v 0.408756 10.390597 6.288157 -v 0.958007 9.683089 6.288157 -v 1.018419 10.321527 6.288157 -v -1.171832 9.475289 11.777046 -v -1.171832 7.184845 5.830760 -v -1.171832 8.752774 6.288157 -v -1.171832 8.402288 6.532843 -v -0.409408 10.019367 6.288157 -v -1.333642 8.402286 11.660704 -v -1.171832 8.402286 11.660704 -v -1.171832 8.402288 6.532843 -v -0.409408 10.019367 5.830760 -v -0.654714 10.019367 5.830760 -v -1.171832 9.475291 5.830760 -v -1.171832 7.184845 5.830760 -v 1.156401 7.184845 5.830760 -v 1.156401 9.475291 5.830760 -v 1.014517 11.207904 -2.625849 -v 0.335502 10.613042 -2.625849 -v 0.335502 11.207904 -2.625849 -v -0.167762 11.355708 20.190464 -v 0.167762 11.355708 20.190464 -v 0.167762 11.355708 19.816681 -v 0.143185 11.207904 -2.300615 -v 0.143185 11.269897 -2.300615 -v 0.143185 11.269897 -2.690542 -v 1.014517 11.207904 -2.625849 -v 0.335502 11.207904 -2.625849 -v 0.335502 11.207904 -2.300615 -v 1.014517 11.207904 -2.300615 -v 0.335502 11.207904 -2.625849 -v 0.335502 11.269897 -2.690542 -v 0.335502 11.269897 -2.300615 -v 0.335502 10.613042 -2.625849 -v 0.335502 10.613042 -2.690542 -v 0.335502 11.269897 -2.690542 -v 0.143185 11.269897 -2.300615 -v 0.335502 11.269897 -2.300615 -v 0.335502 11.269897 -2.690542 -v -0.720340 8.093417 11.897297 -v -0.389845 7.872590 11.897297 -v -1.171832 7.184845 11.897297 -v -0.941169 8.423912 11.897297 -v -1.018714 8.813757 11.897297 -v 0.000000 7.795043 11.897297 -v 0.471660 5.087638 21.944122 -v 0.813732 5.420440 21.944122 -v -0.813732 5.420440 21.944122 -v 0.813732 7.184845 21.944122 -v -1.333642 7.184845 21.944122 -v -0.813732 7.184845 21.944122 -v -0.720340 8.093417 21.944122 -v -1.018714 8.813757 21.944122 -v -1.326382 10.025587 21.944122 -v -0.720340 9.534097 21.944122 -v 0.720340 9.534097 21.944122 -v 1.326382 10.025587 21.944122 -v 1.018714 8.813757 21.944122 -v 1.326382 7.184845 21.944122 -v 0.720340 8.093417 21.944122 -v 0.941169 9.203602 21.944122 -v 0.389845 9.754926 21.944122 -v -0.941169 9.203602 21.944122 -v -0.941169 8.423912 21.944122 -v -0.389845 7.872588 21.944122 -v 0.000000 7.795043 21.944122 -v 0.389845 7.872588 21.944122 -v 0.941169 8.423912 21.944122 -v -0.471660 5.087638 21.944122 -v -0.389845 9.754926 21.944122 -v 1.321148 7.637856 11.214216 -v 1.321148 7.444345 12.021435 -v 1.321148 7.184845 12.021435 -v 1.705540 7.184845 12.021435 -v 1.321148 7.184845 12.021435 -v 1.321148 7.444345 12.021435 -v 1.705540 7.637856 11.214216 -v 1.705540 7.444345 12.021435 -v 1.321148 7.444345 12.021435 -v -1.526129 9.326169 3.413728 -v -1.705540 9.326169 3.413728 -v -1.705540 9.326169 2.612226 -v -1.524936 9.326169 6.288157 -v -1.705540 9.326169 6.288157 -v -1.705540 9.326169 3.920666 -v -1.526129 8.752565 2.612226 -v -1.705540 8.752565 2.612226 -v -1.705540 8.752565 3.413728 -v -1.526129 8.752565 2.612226 -v 0.632517 10.019367 5.830760 -v 0.335502 10.613042 -2.690542 -v 0.143185 10.723700 -2.690542 -v 0.143185 11.269897 -2.690542 -v -0.335502 10.613042 -2.690542 -v -0.143185 10.723700 -2.690542 -v -0.335502 10.613042 -2.625849 -v -0.335502 10.613042 -2.690542 -v 0.335502 10.613042 -2.690542 -v 0.143185 10.723700 -2.690542 -v 0.143185 10.723700 -1.978914 -v -0.814306 10.492231 20.190464 -v -0.359371 10.492231 20.190464 -v -0.359371 10.492231 19.285318 -v -0.893030 10.492231 20.116810 -v -0.814306 10.492231 19.285318 -v -0.335502 11.207904 -2.625849 -v -0.335502 10.613042 -2.625849 -v -0.335502 11.207904 -2.625849 -v -0.335502 11.269897 -2.690542 -v -0.335502 11.269897 -2.690542 -v -0.143185 11.269897 -2.690542 -v -0.143185 10.723700 -2.690542 -v -0.143185 11.269897 -2.690542 -v -0.143185 11.207904 -2.300615 -v -0.335502 11.207904 -2.625849 -v -0.335502 11.207904 -2.300615 -v -0.335502 11.269897 -2.300615 -v -0.143185 11.269897 -2.300615 -v -0.143185 11.269897 -2.690542 -v -0.335502 11.269897 -2.690542 -v -0.143185 11.269897 -2.300615 -v -0.335502 11.207904 -2.625849 -v -1.014517 11.207904 -2.625849 -v -0.335502 11.207904 -2.300615 -v -1.014517 11.207904 -2.300615 -v 1.014517 10.157009 -2.625849 -v 1.014517 10.606321 -1.825947 -v 1.014517 10.491154 -1.431074 -v 1.014517 10.157009 -2.625849 -v 0.167762 10.787156 20.190464 -v -0.359371 10.492231 20.190464 -v -1.014517 11.207904 -2.625849 -v -1.014517 10.157009 -2.625849 -v -1.014517 10.723700 -1.978914 -v -1.014517 10.606321 -1.825947 -v -1.014517 10.491154 -1.431074 -v 0.359371 10.492231 20.190464 -v -1.014517 11.207904 -2.300615 -v -0.451145 8.974197 5.975873 -v 0.000000 8.787328 5.975873 -v -0.345291 9.132619 5.975873 -v 0.186870 8.336183 5.975873 -v 0.000000 8.299012 5.975873 -v -0.186870 9.238472 5.975873 -v 0.000000 9.275643 5.975873 -v 0.345291 8.442036 5.975873 -v 0.186870 9.238472 5.975873 -v 0.345291 9.132619 5.975873 -v 0.451145 8.600457 5.975873 -v 0.451145 8.974197 5.975873 -v 0.488316 8.787328 5.975873 -v -0.488316 8.787328 5.975873 -v -0.186870 8.336183 5.975873 -v -0.451145 8.600457 5.975873 -v -0.345291 8.442036 5.975873 -v -1.659889 9.270180 6.250484 -v -1.659889 9.270180 2.190356 -v -1.659889 8.796173 2.190356 -v -1.659889 9.139336 2.059511 -v -1.659889 8.927017 2.059511 -v -1.360494 9.270180 6.250484 -v -1.659889 9.270180 6.250484 -v -1.659889 8.796173 6.250484 -v -1.705540 8.752759 6.288157 -v -1.524936 8.752759 6.288157 -v -1.524936 9.326169 6.288157 -v 1.705540 7.614016 -2.276281 -v -1.705540 7.184847 1.303785 -v -1.705540 9.151711 1.935824 -v 1.321148 7.637856 11.214216 -v 0.359371 10.492231 20.190464 -v -1.238688 7.586768 1.879624 -v 0.393269 9.417000 1.879624 -v 1.705540 7.184847 3.920666 -v 0.408756 10.390597 -3.172265 -v 1.705540 7.184847 3.413727 -v 0.392768 7.184847 -4.842922 -v 1.705540 9.660696 2.612226 -v 1.526129 9.833411 2.105289 -v 1.231429 7.184847 -4.842922 -v 0.408756 10.390597 -3.172265 -v 1.526129 7.184847 1.303785 -v 1.705540 7.184847 0.796846 -v 1.231429 9.417337 -4.333549 -v 1.231429 7.587345 -4.842922 -v 1.526129 7.184847 -0.004656 -v 1.526129 9.833411 -0.511595 -v 0.728571 7.587345 -4.842922 -v 1.526129 7.184847 -1.313097 -v 1.231429 8.051105 -4.842922 -v 0.728571 8.051105 -4.842922 -v 1.132077 10.212755 -2.753814 -v 1.526129 9.833411 -1.820036 -v 1.132077 10.212755 0.576711 -v 1.705540 7.184847 0.796846 -v -1.238688 8.051682 1.879624 -v -1.705540 7.184847 -0.511595 -v -1.705540 7.184847 3.413727 -v -1.526129 9.833411 3.920666 -v -1.526129 8.752565 3.920666 -v -1.705540 8.752565 3.413728 -v -1.705540 9.660696 3.413728 -v -1.705540 8.752565 2.612226 -v -0.393269 7.184847 1.879624 -v -1.526129 9.833411 2.612226 -v -1.526129 8.752565 2.612226 -v -1.705540 7.184845 18.319260 -v -1.238688 7.586768 1.879624 -v -0.409408 10.107763 -3.763226 -v -1.705540 9.660696 1.303785 -v -0.728571 8.051105 -4.842922 -v -1.526129 9.833411 0.796846 -v -0.393269 9.417000 1.879624 -v -0.728164 7.586768 1.879624 -v -1.705540 9.660696 -0.004656 -v -1.705540 7.184847 -0.511595 -v -0.728164 8.051682 1.879624 -v -1.705540 9.660696 -1.313097 -v -1.238688 8.051682 1.879624 -v -1.705540 7.184847 -1.820036 -v -1.705540 7.184847 -1.820036 -v -1.705540 7.184847 -4.842922 -v -1.705540 7.184847 -1.820036 -v -1.705540 8.782389 -4.842922 -v -1.526129 8.752565 3.413728 -v -0.409408 10.019367 6.288157 -v 0.408756 10.390597 5.830760 -v -1.326382 10.025587 11.777046 -v -1.333642 8.402288 6.532843 -v -0.167762 11.355708 19.816681 -v 0.335502 11.207904 -2.300615 -v 0.335502 11.207904 -2.625849 -v 0.143185 11.269897 -2.690542 -v 1.321148 7.184845 11.214216 -v 1.705540 7.444345 12.021435 -v 1.321148 7.637856 11.214216 -v -1.526129 9.326169 2.612226 -v -1.526129 9.326169 3.920666 -v -1.526129 8.752565 3.413728 -v -1.526129 9.326169 2.612226 -v 0.335502 11.269897 -2.690542 -v 0.335502 10.613042 -2.625849 -v -0.893030 10.492231 19.372772 -v -0.335502 10.613042 -2.690542 -v -0.143185 10.723700 -1.978914 -v -0.335502 11.269897 -2.690542 -v -0.335502 11.269897 -2.300615 -v -1.659889 8.796173 6.250484 -v -1.360494 8.796173 6.250484 -v -1.705540 8.402288 6.532843 -v -1.333642 8.402288 6.532843 -v -1.524936 8.752759 6.288157 -v -1.171832 8.752774 6.288157 -v -0.654714 10.019365 11.897297 -v -0.654714 10.019365 11.777046 -v 0.632517 10.019365 11.777046 -v 0.632517 10.019365 11.777046 -v -1.705540 9.660696 6.288157 -v -1.705540 9.660696 3.920666 -v -1.705540 9.326169 3.920666 -v -1.526129 8.752565 2.110282 -v -1.526129 9.321173 2.105289 -v -1.524936 9.151711 1.935824 -v -1.526129 7.184847 1.303785 -v -1.526129 9.833411 1.303785 -v -1.526129 9.833411 0.796846 -v -1.705540 9.660696 1.303785 -v 1.526129 9.833411 -1.820036 -v 1.526129 9.833411 -1.313097 -v -1.171832 9.475289 11.777046 -v 1.705540 7.184845 18.319260 -v 1.705540 7.184845 12.021435 -v 1.705540 7.444345 12.021435 -v 1.705540 9.660696 -1.820036 -v 1.705540 7.247200 -1.820036 -v 1.705540 7.967400 18.319260 -v 1.526043 7.184847 -2.765843 -v 1.705540 7.184847 -4.842922 -v 1.705540 7.184847 -2.765843 -v -1.526129 9.321173 2.105289 -v -1.705540 9.321173 2.105289 -v -1.705540 9.151711 1.935824 -v -1.705540 8.927025 1.935824 -v -1.705540 8.757562 2.105289 -v -1.526129 8.752565 2.110282 -v 1.018714 8.813757 11.876558 -v 1.156401 9.475289 11.866871 -v 1.156401 7.184845 11.897297 -v -1.014517 10.157009 0.196241 -v -1.014517 10.369081 0.196241 -v 0.167762 10.787156 19.556133 -v 0.167762 11.355708 19.816681 -v 0.167762 11.355708 20.190464 -v 0.359371 10.492231 20.190464 -v 0.359371 10.492231 19.285318 -v 0.872165 9.770428 11.711023 -v 1.156401 9.475289 11.866871 -v 0.632517 10.019365 11.897297 -v 1.018419 10.321525 11.521421 -v 1.019789 10.321226 19.320282 -v 1.326382 10.025587 21.944122 -v 0.872165 9.770428 11.711023 -v 0.947015 10.390595 11.752501 -v 1.018419 10.321525 11.521421 -v 1.018419 10.321527 6.288157 -v 0.958007 9.683089 6.288157 -v 0.958007 9.683128 11.555180 -v 0.632517 10.019367 5.830760 -v 1.156401 9.475291 5.830760 -v 0.958007 9.683089 6.288157 -v 1.326382 7.967400 19.492821 -v 1.326382 7.967402 7.346316 -v 1.326382 8.055081 6.892088 -v 1.326382 8.402288 6.532843 -v 1.326382 10.025589 6.288157 -v -1.333642 7.967400 19.492821 -v -1.333642 8.578351 11.777046 -v -1.333642 8.402286 11.660704 -v -1.326382 10.025587 21.944122 -v -1.326382 10.025587 11.777046 -v 0.947015 10.390595 19.208494 -v 0.947015 10.390595 11.752501 -v 0.869641 10.390595 11.777046 -v -0.409408 10.390597 -3.531358 -v -0.409408 10.107763 -3.763226 -v -0.947015 10.390597 -3.531358 -v 0.869641 10.390595 11.777046 -v -1.238688 8.782389 -4.842922 -v -1.333642 8.578351 11.777046 -v -1.526129 7.184847 -0.004656 -v -1.526129 9.833411 -0.004656 -v -1.526129 9.833411 -0.511595 -v -0.947015 10.390597 0.637665 -v -0.947015 10.390597 6.288157 -v -0.409408 10.390597 5.830760 -v 0.408756 10.390597 5.830760 -v 0.947015 10.390597 0.637665 -v 0.408756 10.390597 6.288157 -v 1.018419 10.321527 6.288157 -v -1.171832 9.475291 5.830760 -v -1.171832 9.475291 6.288157 -v 1.018419 10.321527 6.288157 -v 1.326382 10.025589 6.288157 -v 1.132077 10.212755 0.576711 -v -0.409408 10.390597 6.288157 -v -1.526129 9.833411 2.105289 -v -1.526129 9.833411 2.612226 -v -1.132077 10.212755 0.576711 -v -1.526129 9.833411 3.920666 -v -1.326382 10.025589 6.288157 -v -1.526129 9.833411 3.413728 -v 0.947015 10.390597 -3.531358 -v 0.947015 10.390597 -2.821980 -v 1.132077 10.212755 -2.753814 -v 0.947015 10.390595 19.208494 -v -0.947015 10.390595 19.208494 -v -1.016029 10.321226 19.320282 -v 0.947015 10.390595 20.281315 -v -0.947015 10.390595 20.281315 -v -0.947015 10.390595 21.944122 -v 1.705540 7.184847 2.612226 -v 1.705540 9.660696 2.612226 -v 1.705540 9.660696 3.413728 -v 1.019789 10.321226 20.144449 -v -1.016029 10.321226 20.144449 -v 1.326382 7.967400 19.492821 -v 1.326382 7.184845 19.492821 -v 0.471660 5.087638 16.849926 -v 0.813732 5.420440 16.849926 -v 0.813732 5.420440 21.944122 -v 0.408756 10.390597 -3.531358 -v 0.408756 10.390597 -3.172265 -v 1.019789 10.321226 20.144449 -v -0.409408 10.107763 -3.763226 -v -0.409408 10.107763 -3.259710 -v 0.408756 10.107763 -3.259710 -v 1.705540 7.967402 7.346316 -v 1.326382 7.967402 7.346316 -v 1.326382 7.967400 19.492821 -v 1.326382 7.184845 21.944122 -v 1.326382 7.184845 19.492821 -v 1.526129 7.184847 1.303785 -v 1.526129 7.184847 0.796846 -v 1.526129 9.833411 0.796846 -v 1.705540 8.402288 6.532843 -v 1.326382 8.402288 6.532843 -v 1.326382 8.055081 6.892088 -v 1.705540 8.055081 6.892088 -v 1.705540 9.660696 6.288157 -v 1.326382 10.025589 6.288157 -v 1.326382 8.752767 6.288157 -v 1.705540 9.660696 -4.131680 -v 1.231429 9.417337 -4.333549 -v 0.408756 10.107763 -3.763226 -v -0.392768 9.417337 -4.333549 -v -0.409408 10.390597 -3.172265 -v -0.947015 10.390597 -2.821980 -v 0.392768 9.417337 -4.333549 -v 0.392768 8.782389 -4.842922 -v 1.231429 8.782389 -4.842922 -v 1.705540 8.782389 -4.842922 -v 1.705540 9.660696 -4.131680 -v 0.947015 10.390597 -3.531358 -v 1.526129 9.833411 2.612226 -v 1.705540 9.660696 6.288157 -v 1.705540 9.660696 3.920666 -v 1.526129 9.833411 3.920666 -v -1.132077 10.212755 0.576711 -v 1.132077 10.212755 0.576711 -v 1.132077 10.212755 -2.753814 -v 1.705540 9.660696 -1.313097 -v 1.705540 9.660696 -0.511595 -v 1.705540 7.184847 -0.511595 -v 1.705540 9.660696 -0.004656 -v 1.705540 9.660696 0.796846 -v 1.705540 7.184847 0.796846 -v 1.526129 7.184847 2.612226 -v 1.526129 7.184847 2.105287 -v 1.526129 9.833411 2.105289 -v 1.705540 9.660696 3.920666 -v 1.705540 9.660696 6.288157 -v 1.019789 10.321226 19.320282 -v -0.471660 5.087638 16.849926 -v 0.471660 5.087638 21.944122 -v 0.813732 7.184845 16.849926 -v 0.813732 7.184845 21.944122 -v 0.947015 10.390595 20.281315 -v 0.947015 10.390595 21.944122 -v 1.705540 8.752767 6.288157 -v 1.526129 7.184847 3.920666 -v 1.526129 7.184847 3.413727 -v 1.526129 9.833411 3.413728 -v 0.392768 7.184847 -4.842922 -v -0.392768 7.184847 -4.842922 -v -0.392768 8.782389 -4.842922 -v 0.408756 10.390597 -3.531358 -v 1.526129 7.184847 -0.004656 -v 1.526129 7.184847 -0.511595 -v 1.526129 9.833411 -0.511595 -v 1.705540 7.184847 1.303785 -v 1.705540 9.660696 1.303785 -v 1.705540 9.660696 2.105289 -v 1.526129 9.833411 3.413728 -v 1.526129 9.833411 -0.511595 -v 1.526129 9.833411 -1.313097 -v 1.526129 9.833411 -1.820036 -v 1.526129 9.833411 -0.004656 -v 1.526129 9.833411 2.105289 -v 1.526129 9.833411 1.303785 -v 1.705540 7.184847 -2.765843 -v 1.705540 7.614016 -2.276281 -v 1.526043 7.614016 -2.276281 -v -0.947015 10.390597 -3.531358 -v -1.705540 9.660696 -4.131680 -v -1.132077 10.212755 -2.753814 -v -1.705540 7.184845 18.319260 -v -1.705540 7.967400 18.319260 -v -1.526129 9.833411 -1.313097 -v -1.526129 9.833411 -0.511595 -v -1.705540 9.660696 -1.820036 -v -1.526129 9.833411 -1.820036 -v -1.705540 9.660696 3.413728 -v -1.705540 9.660696 2.612226 -v -1.705540 9.326169 2.612226 -v -1.333642 7.184845 19.492821 -v -0.471660 5.087638 21.944122 -v -0.813732 5.420440 21.944122 -v -0.409408 10.390597 -3.531358 -v -1.705540 7.184847 2.105287 -v -1.526129 7.184847 2.105287 -v -1.526129 9.833411 2.105289 -v -1.705540 7.967402 7.346316 -v -1.705540 7.967400 18.319260 -v -1.333642 7.967400 19.492821 -v -1.333642 7.184845 19.492821 -v -1.705540 9.321173 2.105289 -v -1.705540 9.660696 2.105289 -v -1.705540 8.055081 6.892088 -v -1.333642 8.055081 6.892088 -v -1.333642 7.967402 7.346316 -v -1.705540 9.660696 -0.511595 -v -1.238688 9.417337 -4.333549 -v -1.705540 9.660696 -4.131680 -v -1.526129 9.833411 1.303785 -v -1.705540 8.782389 -4.842922 -v -1.705540 9.660696 -1.313097 -v -1.705540 7.184847 -1.313097 -v -1.705540 7.184847 -0.511595 -v -1.705540 9.660696 -0.004656 -v -1.705540 7.184847 -0.004656 -v -1.705540 7.184847 0.796846 -v -1.526129 9.833411 -0.004656 -v -1.705540 9.660696 0.796846 -v -1.526129 9.833411 0.796846 -v -0.813732 5.420440 16.849926 -v -0.813732 7.184845 21.944122 -v -1.526129 7.184847 -1.313097 -v -1.526129 9.833411 -1.313097 -v -1.526129 9.833411 -1.820036 -v -0.947015 10.390595 11.777046 -v -1.016029 10.321226 11.777046 -v -1.705540 8.752759 6.288157 -v -1.526129 9.833411 3.920666 -v -1.526129 9.833411 3.413728 -v -1.526129 9.326169 3.413728 -v 1.326382 8.752767 6.288157 -v -1.171832 8.402288 6.532843 -v -1.171832 8.578351 11.777046 -v -1.171832 8.402286 11.660704 -v 0.632517 10.019367 5.830760 -v 0.632517 10.019367 6.288157 -v 0.408756 10.019367 6.288157 -v -0.654714 10.019367 5.830760 -v -0.409408 10.019367 5.830760 -v -0.409408 10.019367 6.288157 -v 0.632517 10.019367 6.288157 -v 0.958007 9.683128 11.555180 -v 1.156401 7.184845 5.830760 -v 1.156401 7.184845 11.897297 -v 0.941169 9.203602 11.872112 -v 1.018714 8.813757 11.876558 -v 1.018714 8.813757 21.944122 -v 0.720340 9.534097 11.876596 -v 0.941169 9.203602 21.944122 -v 0.389845 9.754926 11.891426 -v 0.720340 9.534097 21.944122 -v 0.000000 9.832471 11.897297 -v 0.389845 9.754926 21.944122 -v 0.814306 10.296812 20.190464 -v 0.814306 10.492231 20.190464 -v 0.000000 9.832471 21.944122 -v -0.389845 9.754926 21.944122 -v -0.389845 9.754926 11.897297 -v -0.720340 9.534097 21.944122 -v -0.720340 9.534097 11.896717 -v 0.893030 10.296812 20.116810 -v 0.893030 10.492231 20.116810 -v 0.893030 10.296812 19.372772 -v 0.893030 10.492231 19.372772 -v -0.941169 9.203602 11.897297 -v -0.941169 9.203602 21.944122 -v -1.018714 8.813757 21.944122 -v -1.018714 8.813757 11.897297 -v -0.941169 8.423912 21.944122 -v -0.941169 8.423912 11.897297 -v -0.720340 8.093417 21.944122 -v -0.720340 8.093417 11.897297 -v -0.389845 7.872588 21.944122 -v -0.389845 7.872590 11.897297 -v 0.000000 7.795043 21.944122 -v 0.000000 7.795043 11.897297 -v 0.000000 7.795043 21.944122 -v 0.389845 7.872588 21.944122 -v 0.389845 7.872590 11.897297 -v 0.720340 8.093417 21.944122 -v 0.720340 8.093417 11.890942 -v 0.814306 10.296812 19.285318 -v 0.814306 10.492231 19.285318 -v 0.893030 10.492231 19.372772 -v 0.941169 8.423912 11.883170 -v 0.941169 8.423912 21.944122 -v 0.359371 10.492231 19.285318 -v -0.814306 10.296812 19.285318 -v -0.359371 10.492231 19.285318 -v -0.167762 10.787156 19.556133 -v 0.167762 10.787156 19.556133 -v -0.167762 11.355708 19.816681 -v 0.167762 11.355708 19.816681 -v -0.814306 10.157009 0.372431 -v 0.814306 10.157009 0.372431 -v 0.814306 10.357646 0.372431 -v 1.014517 10.157009 0.196241 -v 1.014517 10.369081 0.196241 -v -0.143185 10.723700 -1.978914 -v 0.143185 10.723700 -1.978914 -v 0.143185 10.723700 -2.690542 -v 0.143185 11.207904 -2.300615 -v 0.143185 10.723700 -1.978914 -v 0.335502 11.207904 -2.300615 -v 1.014517 10.723700 -1.978914 -v 1.014517 11.207904 -2.300615 -v 1.014517 10.606321 -1.825947 -v -1.014517 10.606321 -1.825947 -v -1.014517 10.491154 -1.431074 -v 1.014517 10.491154 -1.431074 -v -0.814306 10.357646 0.372431 -v 0.814306 10.357646 0.372431 -v 1.014517 10.369081 0.196241 -v -1.014517 10.369081 0.196241 -v -1.171832 9.475289 11.897297 -v 0.632517 10.019365 11.897297 -v 0.720340 9.534097 11.876596 -v 0.000000 9.832471 11.897297 -v -0.654714 10.019365 11.897297 -v -0.720340 9.534097 11.896717 -v -1.171832 9.475289 11.897297 -v 0.941169 8.423912 11.883170 -v 0.720340 8.093417 11.890942 -v 0.389845 7.872590 11.897297 -v -0.941169 9.203602 11.897297 -v -0.389845 9.754926 11.897297 -v 0.389845 9.754926 11.891426 -v 0.941169 9.203602 11.872112 -v -1.524936 8.927025 1.935824 -v -1.526129 9.833411 2.105289 -v -1.526129 9.321173 2.105289 -v -1.526129 9.326169 2.612226 -v 0.335502 11.269897 -2.300615 -v 0.143185 11.269897 -2.300615 -v -0.167762 10.787156 19.556133 -v -0.167762 10.787156 20.190464 -v -0.167762 11.355708 20.190464 -v -0.359371 10.492231 20.190464 -v -0.814306 10.492231 20.190464 -v -0.814306 10.296812 20.190464 -v -0.893030 10.296812 20.116810 -v -0.893030 10.296812 19.372772 -v -0.893030 10.492231 20.116810 -v -0.893030 10.296812 19.372772 -v -0.893030 10.492231 19.372772 -v -0.814306 10.492231 19.285318 -v -0.143185 10.723700 -1.978914 -v -1.014517 10.723700 -1.978914 -v -0.814306 10.357646 0.372431 -v -0.335502 11.269897 -2.300615 -v -0.335502 11.207904 -2.300615 -v -0.143185 11.207904 -2.300615 -v 1.526129 9.833411 0.796846 -v -0.451145 8.974197 5.975873 -v -0.345291 9.132619 5.975873 -v -0.345291 9.132619 5.773401 -v -0.186870 9.238472 5.975873 -v -0.186870 9.238472 5.773401 -v 0.345291 8.442036 5.975873 -v 0.186870 8.336183 5.975873 -v 0.186870 8.336183 5.773401 -v 0.000000 9.275643 5.975873 -v 0.000000 9.275643 5.773401 -v 0.186870 9.238472 5.975873 -v 0.186870 9.238472 5.773401 -v 0.451145 8.600457 5.975873 -v 0.345291 8.442036 5.773401 -v 0.345291 9.132619 5.975873 -v 0.345291 9.132619 5.773401 -v 0.451145 8.974197 5.975873 -v 0.451145 8.974197 5.773401 -v 0.488316 8.787328 5.975873 -v 0.451145 8.600457 5.773401 -v 0.488316 8.787328 5.773401 -v -0.186870 8.336183 5.975873 -v -0.345291 8.442036 5.975873 -v -0.345291 8.442036 5.773401 -v -0.451145 8.600457 5.975873 -v -0.488316 8.787328 5.975873 -v -0.488316 8.787328 5.773401 -v 0.000000 8.299012 5.975873 -v -0.186870 8.336183 5.773401 -v 0.000000 8.299012 5.773401 -v -0.451145 8.974197 5.773401 -v -0.451145 8.600457 5.773401 -v -1.360494 8.796173 2.190356 -v -1.659889 8.796173 2.190356 -v -1.659889 8.927017 2.059511 -v -1.659889 9.139336 2.059511 -v -1.360494 9.139336 2.059511 -v -1.360494 8.927017 2.059511 -v -1.360494 9.270180 2.190356 -v -1.659889 9.270180 2.190356 -v -1.659889 9.270180 6.250484 -v -1.360494 8.796173 6.250484 -v -1.659889 8.796173 6.250484 -v -1.705540 9.326169 6.288157 -v -1.524936 8.927025 1.935824 -v -1.526129 7.184847 0.796846 -v -1.526129 8.752565 2.110282 -v -1.524936 9.151711 1.935824 -v 0.167762 10.787156 20.190464 -v -1.526129 7.184847 -0.511595 -v 0.947015 10.390595 21.944122 -v 1.705540 7.184847 3.413727 -v 0.408756 10.107763 -3.763226 -v 1.705540 7.967400 18.319260 -v 1.526129 9.833411 1.303785 -v -1.132077 10.212755 -2.753814 -v 1.705540 7.184847 -1.313097 -v 1.705540 7.184847 -0.004656 -v 1.526129 9.833411 2.612226 -v 1.526129 9.833411 3.920666 -v 1.526129 9.833411 -0.004656 -v 1.705540 7.184847 2.105287 -v 1.526043 7.184847 -2.765843 -v -1.705540 9.326169 3.413728 -v -1.333642 7.967400 19.492821 -v -1.705540 9.660696 2.105289 -v -1.333642 7.184845 21.944122 -v -0.813732 7.184845 16.849926 -v -1.526129 7.184847 -1.820036 -v -1.526129 9.326169 3.920666 -v -1.333642 8.402286 11.660704 -v 0.408756 10.019367 5.830760 -v -0.654714 10.019367 6.288157 -v 0.869641 10.390595 11.777046 -v 0.000000 7.795043 11.897297 -v 0.893030 10.296812 19.372772 -v -0.143185 10.723700 -2.690542 -v -1.526129 9.833411 2.612226 -v -0.167762 11.355708 19.816681 -v -0.359371 10.492231 19.285318 -v -0.893030 10.492231 19.372772 -v -0.143185 11.269897 -2.300615 -v -1.014517 11.207904 -2.300615 -v -1.360494 9.270180 6.250484 -vt 0.665882 0.347767 -vt 0.666023 0.347766 -vt 0.666162 0.347974 -vt 0.668422 0.348903 -vt 0.668420 0.348450 -vt 0.668128 0.348707 -vt 0.670331 0.347891 -vt 0.670113 0.347891 -vt 0.670112 0.348138 -vt 0.648961 0.347035 -vt 0.648963 0.347711 -vt 0.650088 0.347182 -vt 0.670330 0.348139 -vt 0.670330 0.348216 -vt 0.671351 0.348220 -vt 0.670330 0.348139 -vt 0.671351 0.348142 -vt 0.655673 0.344315 -vt 0.655725 0.344372 -vt 0.655911 0.344201 -vt 0.649593 0.340884 -vt 0.649645 0.341960 -vt 0.649646 0.340955 -vt 0.655911 0.344201 -vt 0.655725 0.344372 -vt 0.656134 0.344371 -vt 0.649941 0.340885 -vt 0.655073 0.340475 -vt 0.655070 0.339797 -vt 0.654996 0.339724 -vt 0.671575 0.327451 -vt 0.671356 0.327477 -vt 0.671982 0.327480 -vt 0.644693 0.340192 -vt 0.644385 0.340134 -vt 0.644557 0.340283 -vt 0.644700 0.340269 -vt 0.647509 0.341099 -vt 0.649593 0.340718 -vt 0.646875 0.340713 -vt 0.646368 0.340876 -vt 0.650439 0.347369 -vt 0.650243 0.347332 -vt 0.648903 0.346602 -vt 0.648902 0.346797 -vt 0.650571 0.346464 -vt 0.653087 0.342196 -vt 0.653087 0.342119 -vt 0.652263 0.341965 -vt 0.653089 0.340724 -vt 0.649942 0.340719 -vt 0.652265 0.340960 -vt 0.652957 0.336625 -vt 0.652061 0.336628 -vt 0.652064 0.337317 -vt 0.653168 0.336809 -vt 0.656866 0.340895 -vt 0.655346 0.340806 -vt 0.653970 0.340890 -vt 0.671253 0.338233 -vt 0.671472 0.338233 -vt 0.671470 0.337557 -vt 0.652046 0.346806 -vt 0.665497 0.338599 -vt 0.665663 0.338599 -vt 0.665663 0.338404 -vt 0.647507 0.341802 -vt 0.653089 0.340802 -vt 0.669772 0.341914 -vt 0.669364 0.341701 -vt 0.670181 0.341704 -vt 0.650766 0.346427 -vt 0.652276 0.346675 -vt 0.652808 0.346599 -vt 0.652882 0.346653 -vt 0.666531 0.348446 -vt 0.666675 0.348446 -vt 0.666674 0.348692 -vt 0.671544 0.335436 -vt 0.671154 0.335438 -vt 0.671154 0.335634 -vt 0.671512 0.335403 -vt 0.671191 0.335404 -vt 0.653306 0.342119 -vt 0.653308 0.340802 -vt 0.653969 0.341610 -vt 0.653969 0.341314 -vt 0.657096 0.340687 -vt 0.657251 0.340835 -vt 0.657446 0.340872 -vt 0.666338 0.341178 -vt 0.666344 0.341136 -vt 0.666141 0.341132 -vt 0.671982 0.327709 -vt 0.671281 0.327706 -vt 0.671277 0.328466 -vt 0.671424 0.328610 -vt 0.671831 0.328612 -vt 0.671979 0.328470 -vt 0.645308 0.342022 -vt 0.646366 0.342024 -vt 0.645309 0.341798 -vt 0.654435 0.342121 -vt 0.654435 0.342199 -vt 0.654781 0.342199 -vt 0.671983 0.325746 -vt 0.671796 0.325132 -vt 0.671793 0.326094 -vt 0.671982 0.325897 -vt 0.672220 0.326096 -vt 0.671777 0.334214 -vt 0.671776 0.334827 -vt 0.672010 0.334827 -vt 0.653873 0.340803 -vt 0.653654 0.340803 -vt 0.655346 0.340729 -vt 0.655001 0.340728 -vt 0.655001 0.340805 -vt 0.653654 0.340725 -vt 0.653308 0.340725 -vt 0.671788 0.332239 -vt 0.671789 0.331098 -vt 0.671711 0.331172 -vt 0.652553 0.348753 -vt 0.652553 0.349106 -vt 0.652681 0.349106 -vt 0.672085 0.331172 -vt 0.672007 0.331098 -vt 0.672006 0.332240 -vt 0.656870 0.341615 -vt 0.668193 0.332067 -vt 0.669156 0.332072 -vt 0.669169 0.329174 -vt 0.671795 0.322170 -vt 0.671872 0.322170 -vt 0.671867 0.321028 -vt 0.672090 0.322169 -vt 0.672168 0.322168 -vt 0.672163 0.321101 -vt 0.668481 0.329171 -vt 0.668206 0.329389 -vt 0.666338 0.332059 -vt 0.666535 0.332060 -vt 0.666549 0.329162 -vt 0.652436 0.348631 -vt 0.652336 0.348753 -vt 0.652553 0.348753 -vt 0.671870 0.322396 -vt 0.671793 0.322471 -vt 0.671795 0.323538 -vt 0.670269 0.345604 -vt 0.670270 0.345453 -vt 0.670505 0.345454 -vt 0.672166 0.322470 -vt 0.672088 0.322396 -vt 0.672090 0.323538 -vt 0.645310 0.341095 -vt 0.667770 0.332065 -vt 0.668193 0.332067 -vt 0.668206 0.329389 -vt 0.666535 0.332060 -vt 0.666770 0.332061 -vt 0.666784 0.329163 -vt 0.671056 0.346443 -vt 0.670979 0.346517 -vt 0.670974 0.347585 -vt 0.670666 0.345804 -vt 0.670503 0.345803 -vt 0.670504 0.345605 -vt 0.671270 0.347586 -vt 0.671347 0.347586 -vt 0.671352 0.346519 -vt 0.667782 0.329387 -vt 0.667509 0.329166 -vt 0.667770 0.332065 -vt 0.666770 0.332061 -vt 0.666922 0.332062 -vt 0.666935 0.329164 -vt 0.671361 0.326336 -vt 0.671283 0.326410 -vt 0.671279 0.327477 -vt 0.667157 0.332063 -vt 0.666922 0.332062 -vt 0.667157 0.332063 -vt 0.667170 0.329165 -vt 0.657272 0.345497 -vt 0.657273 0.344680 -vt 0.657191 0.344600 -vt 0.671575 0.327451 -vt 0.671652 0.327452 -vt 0.671656 0.326411 -vt 0.651028 0.346127 -vt 0.650922 0.346278 -vt 0.655755 0.344598 -vt 0.655674 0.344677 -vt 0.655673 0.345494 -vt 0.645310 0.340874 -vt 0.654782 0.340805 -vt 0.653652 0.342120 -vt 0.653968 0.342037 -vt 0.653873 0.340726 -vt 0.654218 0.340804 -vt 0.654219 0.340726 -vt 0.654437 0.340804 -vt 0.654782 0.340727 -vt 0.672010 0.334979 -vt 0.671775 0.334978 -vt 0.671775 0.335176 -vt 0.672199 0.335177 -vt 0.672223 0.325134 -vt 0.653871 0.342120 -vt 0.655345 0.342200 -vt 0.655345 0.342122 -vt 0.655000 0.342122 -vt 0.653652 0.342197 -vt 0.656756 0.344189 -vt 0.656833 0.344189 -vt 0.656833 0.344045 -vt 0.671877 0.347120 -vt 0.671954 0.347119 -vt 0.671951 0.346443 -vt 0.671581 0.347121 -vt 0.671659 0.347121 -vt 0.671655 0.346445 -vt 0.656460 0.344190 -vt 0.656538 0.344190 -vt 0.656537 0.343971 -vt 0.671606 0.348023 -vt 0.671952 0.348024 -vt 0.671954 0.347348 -vt 0.667304 0.332303 -vt 0.667016 0.335199 -vt 0.666328 0.335196 -vt 0.671469 0.337246 -vt 0.671546 0.337245 -vt 0.671544 0.337101 -vt 0.671472 0.338233 -vt 0.671549 0.338232 -vt 0.671547 0.337557 -vt 0.667291 0.334981 -vt 0.669169 0.332311 -vt 0.669156 0.335209 -vt 0.668958 0.335208 -vt 0.652436 0.349228 -vt 0.652591 0.349228 -vt 0.652553 0.349106 -vt 0.672007 0.329730 -vt 0.672007 0.330872 -vt 0.672084 0.330872 -vt 0.669596 0.345601 -vt 0.669357 0.345600 -vt 0.669358 0.345449 -vt 0.671711 0.329804 -vt 0.671711 0.330872 -vt 0.671788 0.330872 -vt 0.667731 0.332305 -vt 0.667718 0.334983 -vt 0.667291 0.334981 -vt 0.668972 0.332310 -vt 0.668958 0.335208 -vt 0.668720 0.335207 -vt 0.672007 0.332466 -vt 0.672006 0.333607 -vt 0.672083 0.333608 -vt 0.669356 0.345798 -vt 0.669196 0.345797 -vt 0.671787 0.333607 -vt 0.671789 0.332465 -vt 0.671711 0.332540 -vt 0.667991 0.335204 -vt 0.667718 0.334983 -vt 0.667731 0.332305 -vt 0.668734 0.332309 -vt 0.668720 0.335207 -vt 0.668569 0.335206 -vt 0.654781 0.342122 -vt 0.656868 0.342041 -vt 0.672089 0.323764 -vt 0.672090 0.324906 -vt 0.672168 0.324906 -vt 0.668344 0.332307 -vt 0.668331 0.335205 -vt 0.668582 0.332308 -vt 0.668569 0.335206 -vt 0.668331 0.335205 -vt 0.656869 0.342187 -vt 0.655687 0.342123 -vt 0.653870 0.342198 -vt 0.654216 0.342198 -vt 0.671872 0.324906 -vt 0.671870 0.323765 -vt 0.671793 0.323839 -vt 0.654216 0.342121 -vt 0.671659 0.347121 -vt 0.671877 0.347120 -vt 0.671874 0.346444 -vt 0.644214 0.339986 -vt 0.644362 0.339846 -vt 0.644193 0.339756 -vt 0.644615 0.340046 -vt 0.644334 0.339545 -vt 0.644175 0.339559 -vt 0.644193 0.339756 -vt 0.661765 0.343274 -vt 0.661774 0.343476 -vt 0.661938 0.343468 -vt 0.644761 0.345897 -vt 0.644761 0.345737 -vt 0.644408 0.345736 -vt 0.661774 0.343476 -vt 0.661779 0.343575 -vt 0.661938 0.343468 -vt 0.661664 0.343724 -vt 0.661914 0.343724 -vt 0.666088 0.341451 -vt 0.652408 0.344048 -vt 0.653077 0.344280 -vt 0.652920 0.344378 -vt 0.644352 0.339741 -vt 0.665748 0.341793 -vt 0.665706 0.341738 -vt 0.663936 0.343063 -vt 0.644408 0.345896 -vt 0.644302 0.345896 -vt 0.644079 0.346130 -vt 0.644077 0.347117 -vt 0.645080 0.347119 -vt 0.645082 0.346132 -vt 0.667545 0.348453 -vt 0.667839 0.348708 -vt 0.667838 0.348452 -vt 0.671547 0.336174 -vt 0.671546 0.336029 -vt 0.671385 0.336030 -vt 0.645949 0.348760 -vt 0.645922 0.348760 -vt 0.645922 0.348928 -vt 0.645519 0.348898 -vt 0.645812 0.348899 -vt 0.645813 0.348759 -vt 0.645520 0.348758 -vt 0.645812 0.348899 -vt 0.645839 0.348927 -vt 0.645839 0.348759 -vt 0.665999 0.338618 -vt 0.666027 0.338619 -vt 0.666027 0.338335 -vt 0.645922 0.348760 -vt 0.645839 0.348759 -vt 0.645839 0.348927 -vt 0.671398 0.339640 -vt 0.671245 0.339741 -vt 0.671571 0.340011 -vt 0.671500 0.339488 -vt 0.671536 0.339308 -vt 0.671066 0.339776 -vt 0.669561 0.343988 -vt 0.669414 0.343844 -vt 0.670116 0.343846 -vt 0.669417 0.343083 -vt 0.670343 0.343087 -vt 0.670119 0.343086 -vt 0.670101 0.342715 -vt 0.670239 0.342384 -vt 0.670344 0.341862 -vt 0.670103 0.342052 -vt 0.669440 0.342050 -vt 0.669200 0.341858 -vt 0.669301 0.342381 -vt 0.669196 0.343083 -vt 0.669438 0.342713 -vt 0.669338 0.342202 -vt 0.669592 0.341949 -vt 0.670204 0.342205 -vt 0.670203 0.342563 -vt 0.669948 0.342816 -vt 0.669769 0.342851 -vt 0.669589 0.342815 -vt 0.669336 0.342560 -vt 0.669968 0.343989 -vt 0.669951 0.341950 -vt 0.665497 0.338404 -vt 0.665149 0.338488 -vt 0.665150 0.338600 -vt 0.664984 0.338600 -vt 0.665150 0.338600 -vt 0.665149 0.338488 -vt 0.665458 0.338243 -vt 0.665110 0.338327 -vt 0.665149 0.338488 -vt 0.670113 0.347891 -vt 0.670113 0.347813 -vt 0.669767 0.347812 -vt 0.671352 0.347895 -vt 0.671352 0.347817 -vt 0.670331 0.347814 -vt 0.669766 0.348137 -vt 0.669766 0.348214 -vt 0.670112 0.348215 -vt 0.669766 0.348137 -vt 0.644857 0.345897 -vt 0.666027 0.338619 -vt 0.666110 0.338571 -vt 0.666110 0.338335 -vt 0.666316 0.338619 -vt 0.666233 0.338571 -vt 0.666316 0.338647 -vt 0.666316 0.338619 -vt 0.666027 0.338619 -vt 0.646157 0.348929 -vt 0.646158 0.348622 -vt 0.671549 0.336766 -vt 0.671548 0.336570 -vt 0.671158 0.336572 -vt 0.671517 0.336801 -vt 0.671159 0.336768 -vt 0.668127 0.348451 -vt 0.666344 0.338619 -vt 0.666344 0.338363 -vt 0.666317 0.338336 -vt 0.666317 0.338336 -vt 0.666234 0.338336 -vt 0.646280 0.348929 -vt 0.646516 0.348930 -vt 0.646490 0.348762 -vt 0.646626 0.348903 -vt 0.646626 0.348763 -vt 0.646599 0.348763 -vt 0.646517 0.348762 -vt 0.646516 0.348930 -vt 0.646599 0.348931 -vt 0.646517 0.348762 -vt 0.646626 0.348903 -vt 0.646918 0.348904 -vt 0.646626 0.348763 -vt 0.646919 0.348764 -vt 0.665884 0.348220 -vt 0.666228 0.348025 -vt 0.666399 0.348073 -vt 0.667547 0.348906 -vt 0.666529 0.348691 -vt 0.666756 0.348819 -vt 0.669247 0.347752 -vt 0.669249 0.348205 -vt 0.668969 0.347962 -vt 0.668904 0.348013 -vt 0.668734 0.348063 -vt 0.666446 0.348817 -vt 0.669107 0.347753 -vt 0.651009 0.348764 -vt 0.651047 0.348947 -vt 0.651082 0.348764 -vt 0.650945 0.349104 -vt 0.650893 0.349053 -vt 0.651150 0.348791 -vt 0.651202 0.348842 -vt 0.651013 0.349131 -vt 0.651231 0.348909 -vt 0.651231 0.348982 -vt 0.651086 0.349131 -vt 0.651204 0.349050 -vt 0.651153 0.349102 -vt 0.650942 0.348793 -vt 0.650864 0.348986 -vt 0.650891 0.348845 -vt 0.650864 0.348913 -vt 0.672001 0.336533 -vt 0.671992 0.338283 -vt 0.672197 0.338284 -vt 0.672049 0.338339 -vt 0.672140 0.338340 -vt 0.665496 0.328592 -vt 0.665496 0.328721 -vt 0.665700 0.328722 -vt 0.649982 0.347032 -vt 0.671351 0.348142 -vt 0.671352 0.347895 -vt 0.655858 0.344144 -vt 0.654727 0.340476 -vt 0.654996 0.339627 -vt 0.665497 0.338404 -vt 0.671545 0.335632 -vt 0.672221 0.325898 -vt 0.672200 0.334214 -vt 0.671711 0.332239 -vt 0.652681 0.348753 -vt 0.672084 0.332240 -vt 0.656871 0.341319 -vt 0.671790 0.321103 -vt 0.672085 0.321027 -vt 0.666351 0.329161 -vt 0.652591 0.348631 -vt 0.671872 0.323538 -vt 0.672168 0.323538 -vt 0.667782 0.329387 -vt 0.666549 0.329162 -vt 0.671051 0.347585 -vt 0.671275 0.346444 -vt 0.666784 0.329163 -vt 0.671356 0.327477 -vt 0.667170 0.329165 -vt 0.666935 0.329164 -vt 0.657189 0.345576 -vt 0.671579 0.326337 -vt 0.655754 0.345574 -vt 0.654437 0.340727 -vt 0.672221 0.325747 -vt 0.654999 0.342199 -vt 0.653306 0.342197 -vt 0.656755 0.343970 -vt 0.671874 0.346444 -vt 0.671578 0.346445 -vt 0.656460 0.344046 -vt 0.671609 0.347347 -vt 0.666342 0.332298 -vt 0.671466 0.337028 -vt 0.671470 0.337557 -vt 0.646872 0.342185 -vt 0.668972 0.332310 -vt 0.652336 0.349106 -vt 0.672085 0.329805 -vt 0.669596 0.345450 -vt 0.671789 0.329730 -vt 0.667304 0.332303 -vt 0.668734 0.332309 -vt 0.672085 0.332540 -vt 0.671710 0.333607 -vt 0.668582 0.332308 -vt 0.672166 0.323838 -vt 0.668344 0.332307 -vt 0.655687 0.342193 -vt 0.671795 0.324906 -vt 0.652075 0.340487 -vt 0.653379 0.340482 -vt 0.652073 0.339798 -vt 0.671655 0.346445 -vt 0.644352 0.339741 -vt 0.661929 0.343266 -vt 0.666317 0.341361 -vt 0.663978 0.343119 -vt 0.671386 0.336174 -vt 0.645813 0.348759 -vt 0.665999 0.338362 -vt 0.645922 0.348928 -vt 0.665497 0.338599 -vt 0.664984 0.338489 -vt 0.665497 0.338404 -vt 0.669767 0.347890 -vt 0.670331 0.347891 -vt 0.670112 0.348138 -vt 0.669767 0.347890 -vt 0.666027 0.338335 -vt 0.666027 0.338646 -vt 0.671197 0.336802 -vt 0.666316 0.338619 -vt 0.646282 0.348623 -vt 0.646599 0.348931 -vt 0.646599 0.348763 -vt 0.672205 0.336534 -vt 0.665701 0.328592 -vt 0.645130 0.340230 -vt 0.645115 0.340070 -vt 0.644939 0.340169 -vt 0.644925 0.340018 -vt 0.653589 0.346722 -vt 0.653589 0.346671 -vt 0.654138 0.346662 -vt 0.665807 0.340688 -vt 0.656870 0.339398 -vt 0.655850 0.339403 -vt 0.655851 0.339547 -vt 0.669550 0.348136 -vt 0.669549 0.347891 -vt 0.669475 0.347964 -vt 0.672007 0.330872 -vt 0.672007 0.329730 -vt 0.671789 0.329730 -vt 0.654722 0.339409 -vt 0.671579 0.326337 -vt 0.671361 0.326336 -vt 0.653268 0.346667 -vt 0.645840 0.346789 -vt 0.648555 0.346796 -vt 0.648555 0.346685 -vt 0.653368 0.337690 -vt 0.653364 0.336650 -vt 0.645841 0.346452 -vt 0.655971 0.340807 -vt 0.656866 0.340731 -vt 0.655971 0.340730 -vt 0.671250 0.337251 -vt 0.671173 0.337252 -vt 0.671174 0.337355 -vt 0.671175 0.337452 -vt 0.671176 0.337555 -vt 0.671254 0.337557 -vt 0.670598 0.339307 -vt 0.670569 0.339021 -vt 0.670567 0.340009 -vt 0.668033 0.348210 -vt 0.668032 0.348119 -vt 0.671272 0.335785 -vt 0.671385 0.336030 -vt 0.671546 0.336029 -vt 0.671545 0.335632 -vt 0.671154 0.335634 -vt 0.654284 0.346628 -vt 0.654463 0.346686 -vt 0.654139 0.346714 -vt 0.343293 0.494352 -vt 0.403663 0.495033 -vt 0.424011 0.491967 -vt 0.665656 0.340670 -vt 0.665851 0.340483 -vt 0.665756 0.340431 -vt 0.664125 0.338873 -vt 0.663934 0.339073 -vt 0.665576 0.340641 -vt 0.654003 0.344111 -vt 0.654328 0.344094 -vt 0.654215 0.344297 -vt 0.405218 0.475819 -vt 0.311194 0.474745 -vt 0.651779 0.345198 -vt 0.651935 0.345050 -vt 0.652048 0.344354 -vt 0.651583 0.345233 -vt 0.662656 0.340850 -vt 0.659345 0.340602 -vt 0.659296 0.340678 -vt 0.424375 0.496265 -vt 0.345807 0.496601 -vt 0.345855 0.507785 -vt 0.646508 0.344057 -vt 0.649684 0.344093 -vt 0.649669 0.344043 -vt 0.669763 0.344216 -vt 0.669762 0.344374 -vt 0.669531 0.344215 -vt 0.665873 0.340511 -vt 0.669360 0.345109 -vt 0.665821 0.341739 -vt 0.672006 0.333607 -vt 0.672007 0.332466 -vt 0.671789 0.332465 -vt 0.654433 0.338957 -vt 0.656867 0.338944 -vt 0.656669 0.338713 -vt 0.656667 0.338361 -vt 0.654429 0.338141 -vt 0.656864 0.338360 -vt 0.656863 0.338096 -vt 0.653400 0.344098 -vt 0.653390 0.344296 -vt 0.652050 0.344171 -vt 0.649802 0.344145 -vt 0.656863 0.337912 -vt 0.654402 0.338030 -vt 0.656866 0.338712 -vt 0.655067 0.339300 -vt 0.655286 0.339299 -vt 0.654407 0.339067 -vt 0.655849 0.339296 -vt 0.656869 0.339171 -vt 0.655631 0.339297 -vt 0.652632 0.338147 -vt 0.652938 0.338146 -vt 0.652967 0.338035 -vt 0.662503 0.338903 -vt 0.662477 0.339733 -vt 0.662538 0.339781 -vt 0.411117 0.477267 -vt 0.411370 0.492239 -vt 0.424354 0.492076 -vt 0.655278 0.336619 -vt 0.655279 0.337686 -vt 0.655624 0.337686 -vt 0.662902 0.338878 -vt 0.662914 0.339780 -vt 0.662981 0.339739 -vt 0.645309 0.346450 -vt 0.645308 0.346788 -vt 0.666773 0.346076 -vt 0.666773 0.346282 -vt 0.668969 0.346283 -vt 0.652633 0.338379 -vt 0.652788 0.338378 -vt 0.302821 0.490584 -vt 0.410043 0.495106 -vt 0.652336 0.349106 -vt 0.652553 0.349106 -vt 0.652553 0.348753 -vt 0.661163 0.348102 -vt 0.661163 0.347939 -vt 0.655926 0.347949 -vt 0.424262 0.469977 -vt 0.405287 0.469761 -vt 0.671872 0.323538 -vt 0.672090 0.323538 -vt 0.672088 0.322396 -vt 0.661578 0.348101 -vt 0.661577 0.347938 -vt 0.661362 0.347939 -vt 0.661362 0.348102 -vt 0.662153 0.348100 -vt 0.662310 0.347937 -vt 0.661761 0.347938 -vt 0.670672 0.344629 -vt 0.670508 0.344764 -vt 0.670115 0.344376 -vt 0.669789 0.344760 -vt 0.652789 0.338731 -vt 0.652941 0.338962 -vt 0.670084 0.344762 -vt 0.670082 0.345113 -vt 0.670506 0.345115 -vt 0.670670 0.345116 -vt 0.652372 0.337694 -vt 0.670348 0.344219 -vt 0.655279 0.337793 -vt 0.656863 0.337685 -vt 0.655843 0.337686 -vt 0.655843 0.337793 -vt 0.655755 0.344598 -vt 0.655754 0.345574 -vt 0.657189 0.345576 -vt 0.653587 0.337690 -vt 0.653932 0.337689 -vt 0.653928 0.336621 -vt 0.654151 0.337688 -vt 0.654496 0.337687 -vt 0.654493 0.336620 -vt 0.671872 0.322170 -vt 0.672090 0.322169 -vt 0.672085 0.321027 -vt 0.652049 0.345739 -vt 0.651029 0.345736 -vt 0.662560 0.338873 -vt 0.666774 0.345670 -vt 0.668969 0.346078 -vt 0.666773 0.347043 -vt 0.668969 0.347044 -vt 0.411093 0.495895 -vt 0.423965 0.496042 -vt 0.646451 0.344107 -vt 0.661762 0.348101 -vt 0.671788 0.332239 -vt 0.672006 0.332240 -vt 0.672007 0.331098 -vt 0.670079 0.345801 -vt 0.669784 0.345800 -vt 0.669787 0.345111 -vt 0.670116 0.344218 -vt 0.671051 0.347585 -vt 0.671270 0.347586 -vt 0.671275 0.346444 -vt 0.654713 0.336619 -vt 0.654715 0.337686 -vt 0.655060 0.337686 -vt 0.655624 0.337793 -vt 0.653933 0.337796 -vt 0.653587 0.337797 -vt 0.653369 0.337798 -vt 0.654151 0.337795 -vt 0.655060 0.337793 -vt 0.654715 0.337794 -vt 0.656181 0.344310 -vt 0.655958 0.344139 -vt 0.655911 0.344201 -vt 0.652635 0.338964 -vt 0.652378 0.339418 -vt 0.652971 0.339073 -vt 0.655170 0.347691 -vt 0.655169 0.347353 -vt 0.653593 0.339306 -vt 0.653939 0.339305 -vt 0.653375 0.339415 -vt 0.653374 0.339307 -vt 0.655631 0.339404 -vt 0.655286 0.339406 -vt 0.655287 0.339550 -vt 0.655701 0.347689 -vt 0.668970 0.345671 -vt 0.668970 0.345465 -vt 0.652634 0.338732 -vt 0.403381 0.492993 -vt 0.410153 0.492980 -vt 0.671176 0.338233 -vt 0.671253 0.338233 -vt 0.671248 0.337030 -vt 0.645543 0.340191 -vt 0.650254 0.339752 -vt 0.650742 0.339545 -vt 0.405500 0.512252 -vt 0.405526 0.518299 -vt 0.655068 0.339554 -vt 0.655068 0.339408 -vt 0.645344 0.340210 -vt 0.645329 0.340050 -vt 0.645528 0.340032 -vt 0.653939 0.339413 -vt 0.669362 0.344758 -vt 0.669202 0.344621 -vt 0.654722 0.339302 -vt 0.669200 0.345108 -vt 0.653593 0.339414 -vt 0.653597 0.340482 -vt 0.653943 0.340480 -vt 0.654158 0.339412 -vt 0.654162 0.340479 -vt 0.654508 0.340478 -vt 0.654157 0.339304 -vt 0.654504 0.339410 -vt 0.654503 0.339303 -vt 0.666774 0.345464 -vt 0.668970 0.344705 -vt 0.672090 0.324906 -vt 0.672089 0.323764 -vt 0.671870 0.323765 -vt 0.659341 0.339758 -vt 0.659342 0.339807 -vt 0.644946 0.340247 -vt 0.656755 0.343970 -vt 0.656537 0.343971 -vt 0.656538 0.344190 -vt 0.652042 0.344901 -vt 0.645109 0.340001 -vt 0.665779 0.341683 -vt 0.665706 0.341738 -vt 0.661666 0.343279 -vt 0.661676 0.343481 -vt 0.661774 0.343476 -vt 0.653725 0.344114 -vt 0.653832 0.344119 -vt 0.653822 0.344318 -vt 0.654014 0.344308 -vt 0.654333 0.346558 -vt 0.655311 0.344043 -vt 0.655447 0.346648 -vt 0.661438 0.342326 -vt 0.661436 0.342143 -vt 0.657096 0.342143 -vt 0.661436 0.342509 -vt 0.657096 0.342326 -vt 0.661430 0.342692 -vt 0.657096 0.342509 -vt 0.661427 0.342875 -vt 0.657096 0.342692 -vt 0.666250 0.348901 -vt 0.666250 0.348816 -vt 0.657096 0.342875 -vt 0.657096 0.343058 -vt 0.661427 0.343058 -vt 0.657096 0.343240 -vt 0.661427 0.343240 -vt 0.666203 0.348900 -vt 0.666204 0.348816 -vt 0.665882 0.348899 -vt 0.665883 0.348814 -vt 0.661427 0.343423 -vt 0.657096 0.343423 -vt 0.657096 0.343606 -vt 0.661427 0.343606 -vt 0.657096 0.343789 -vt 0.661427 0.343789 -vt 0.657096 0.343972 -vt 0.661427 0.343972 -vt 0.657096 0.344155 -vt 0.661427 0.344155 -vt 0.657096 0.344338 -vt 0.661427 0.344338 -vt 0.657096 0.341411 -vt 0.657096 0.341594 -vt 0.661427 0.341594 -vt 0.657096 0.341777 -vt 0.661430 0.341777 -vt 0.649012 0.349171 -vt 0.649012 0.349086 -vt 0.648961 0.349086 -vt 0.661433 0.341960 -vt 0.657096 0.341960 -vt 0.649208 0.349086 -vt 0.649714 0.349170 -vt 0.649518 0.349086 -vt 0.649435 0.348914 -vt 0.649290 0.348914 -vt 0.649435 0.348644 -vt 0.649290 0.348644 -vt 0.667918 0.348211 -vt 0.667216 0.348214 -vt 0.667216 0.348127 -vt 0.667101 0.348214 -vt 0.667100 0.348123 -vt 0.646282 0.348623 -vt 0.646158 0.348622 -vt 0.646157 0.348929 -vt 0.656458 0.342453 -vt 0.656457 0.342704 -vt 0.656541 0.342453 -vt 0.656833 0.342705 -vt 0.656833 0.342454 -vt 0.656832 0.342788 -vt 0.655958 0.342785 -vt 0.655957 0.342962 -vt 0.656832 0.342965 -vt 0.656041 0.343742 -vt 0.656743 0.343745 -vt 0.656829 0.343669 -vt 0.655955 0.343666 -vt 0.653267 0.346719 -vt 0.670795 0.338787 -vt 0.670736 0.338975 -vt 0.671068 0.338839 -vt 0.671350 0.338788 -vt 0.671399 0.338977 -vt 0.671573 0.339023 -vt 0.670633 0.339486 -vt 0.670735 0.339638 -vt 0.670887 0.339740 -vt 0.671500 0.339129 -vt 0.671247 0.338875 -vt 0.670888 0.338874 -vt 0.670634 0.339127 -vt 0.671253 0.337451 -vt 0.671248 0.337030 -vt 0.671250 0.337251 -vt 0.671469 0.337246 -vt 0.656541 0.342427 -vt 0.656458 0.342426 -vt 0.671274 0.336420 -vt 0.671548 0.336419 -vt 0.671547 0.336174 -vt 0.671548 0.336570 -vt 0.666952 0.348820 -vt 0.666952 0.348904 -vt 0.666998 0.348905 -vt 0.667319 0.348906 -vt 0.666998 0.348820 -vt 0.649765 0.349170 -vt 0.649765 0.349086 -vt 0.649714 0.349086 -vt 0.656334 0.342703 -vt 0.655958 0.342702 -vt 0.667918 0.348124 -vt 0.656252 0.342426 -vt 0.656251 0.342452 -vt 0.656334 0.342453 -vt 0.654496 0.337794 -vt 0.651009 0.348764 -vt 0.651082 0.348764 -vt 0.651103 0.348667 -vt 0.651150 0.348791 -vt 0.651206 0.348710 -vt 0.651013 0.349131 -vt 0.650945 0.349104 -vt 0.650889 0.349185 -vt 0.651202 0.348842 -vt 0.651285 0.348789 -vt 0.651231 0.348909 -vt 0.651328 0.348892 -vt 0.651086 0.349131 -vt 0.650992 0.349228 -vt 0.651231 0.348982 -vt 0.651328 0.349003 -vt 0.651204 0.349050 -vt 0.651285 0.349106 -vt 0.651153 0.349102 -vt 0.651103 0.349228 -vt 0.651206 0.349185 -vt 0.650864 0.348986 -vt 0.650864 0.348913 -vt 0.650767 0.348892 -vt 0.650891 0.348845 -vt 0.650942 0.348793 -vt 0.650889 0.348710 -vt 0.650893 0.349053 -vt 0.650767 0.349003 -vt 0.650810 0.349106 -vt 0.650992 0.348667 -vt 0.650810 0.348789 -vt 0.663495 0.328582 -vt 0.663495 0.328711 -vt 0.663575 0.328712 -vt 0.663666 0.328712 -vt 0.663667 0.328583 -vt 0.663575 0.328583 -vt 0.663746 0.328583 -vt 0.663746 0.328713 -vt 0.665496 0.328721 -vt 0.661745 0.328574 -vt 0.661745 0.328703 -vt 0.656871 0.339542 -vt 0.669475 0.348061 -vt 0.671788 0.330872 -vt 0.671254 0.337557 -vt 0.671252 0.337354 -vt 0.671545 0.335784 -vt 0.671787 0.333607 -vt 0.424233 0.477149 -vt 0.655624 0.336619 -vt 0.662967 0.338908 -vt 0.652336 0.348753 -vt 0.656433 0.348111 -vt 0.671870 0.322396 -vt 0.657191 0.344600 -vt 0.653583 0.336623 -vt 0.654148 0.336621 -vt 0.671867 0.321028 -vt 0.671789 0.331098 -vt 0.671056 0.346443 -vt 0.655059 0.336619 -vt 0.656134 0.344371 -vt 0.655632 0.339548 -vt 0.655699 0.347352 -vt 0.659343 0.339981 -vt 0.671171 0.337105 -vt 0.424469 0.518218 -vt 0.666774 0.344703 -vt 0.671872 0.324906 -vt 0.656756 0.344189 -vt 0.665748 0.341793 -vt 0.661765 0.343274 -vt 0.653715 0.344312 -vt 0.659330 0.338958 -vt 0.661427 0.341411 -vt 0.648961 0.349171 -vt 0.646280 0.348929 -vt 0.671466 0.337028 -vt 0.671386 0.336174 -vt 0.671158 0.336572 -vt 0.667319 0.348822 -vt 0.656334 0.342426 -vt 0.655959 0.342451 -vt 0.665496 0.328592 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 -0.0001 -vn -1.0000 0.0000 0.0005 -vn -1.0000 0.0000 0.0002 -vn 0.0000 -0.7793 -0.6266 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0001 -0.0001 -vn 1.0000 -0.0005 -0.0001 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.2954 -0.9554 -vn 1.0000 0.0000 -0.0001 -vn -1.0000 0.0000 -0.0001 -vn 0.0000 -1.0000 -0.0001 -vn -1.0000 0.0001 -0.0001 -vn 0.0000 0.3579 0.9338 -vn 0.0000 0.3242 -0.9460 -vn 0.0000 -0.9724 -0.2331 -vn 0.0000 0.6488 0.7610 -vn -0.0000 0.6112 0.7915 -vn -0.0000 0.3594 0.9332 -vn -0.0000 0.3979 0.9174 -vn 0.3944 -0.9189 0.0000 -vn -0.2584 -0.9660 0.0000 -vn -0.0544 0.0347 -0.9979 -vn -0.9202 0.3915 0.0000 -vn -0.9202 0.3914 0.0000 -vn -1.0000 -0.0000 -0.0023 -vn -1.0000 -0.0001 -0.0070 -vn -0.7948 0.6069 -0.0000 -vn -0.8837 0.4681 0.0000 -vn -0.9815 0.1914 -0.0000 -vn 0.9202 0.3914 0.0000 -vn 0.7785 0.6277 -0.0000 -vn 0.8716 -0.4902 0.0001 -vn 0.9946 0.0000 0.1036 -vn 0.9501 0.3120 -0.0000 -vn 0.9922 0.0000 0.1244 -vn 0.0000 -0.9849 0.1730 -vn -0.0000 -0.8848 0.4659 -vn -0.0000 -0.5054 0.8629 -vn 0.0001 -0.2527 0.9675 -vn 0.0000 -0.3827 0.9239 -vn -0.0001 0.5055 0.8628 -vn -0.0151 0.3827 0.9237 -vn -0.0075 0.3820 0.9241 -vn -0.0098 -0.0134 -0.9999 -vn -0.0135 0.0030 -0.9999 -vn -0.0078 -0.0088 -0.9999 -vn -0.9112 -0.0000 0.4119 -vn 0.9588 0.2841 -0.0000 -vn 0.8386 0.5448 0.0000 -vn -0.8061 -0.3082 -0.5053 -vn -0.8143 -0.5805 -0.0013 -vn -0.5167 -0.8561 0.0000 -vn 0.6939 0.7201 -0.0000 -vn 0.4341 0.8971 0.0825 -vn 0.9006 0.4347 0.0001 -vn -0.6892 0.1308 -0.7126 -vn -0.9536 0.0970 -0.2850 -vn -0.9956 0.0942 -0.0000 -vn -0.8233 -0.5676 0.0006 -vn -0.9600 -0.2555 -0.1143 -vn -0.3908 -0.9205 0.0012 -vn -0.9277 -0.3732 0.0009 -vn -0.8233 -0.5676 0.0008 -vn 0.8835 0.4684 0.0000 -vn -0.9987 0.0005 0.0512 -vn -1.0000 0.0021 0.0000 -vn -0.9198 0.3923 -0.0002 -vn -0.8535 0.5212 0.0001 -vn 0.1239 0.9740 0.1894 -vn 0.4932 0.8699 -0.0000 -vn -0.0000 0.9039 -0.4278 -vn 0.0000 0.8020 -0.5974 -vn -0.2691 0.9151 -0.3004 -vn -0.1559 0.0685 -0.9854 -vn 0.0000 0.2196 -0.9756 -vn 0.0000 0.2883 -0.9575 -vn -0.8561 0.5167 0.0000 -vn -0.2979 0.9546 0.0000 -vn -0.2469 0.9690 0.0000 -vn 0.0544 0.9985 0.0027 -vn 0.3979 0.9174 0.0029 -vn 0.1126 0.9936 0.0000 -vn 0.4235 0.9059 0.0029 -vn 0.9695 -0.2451 0.0000 -vn 0.8716 -0.4902 0.0000 -vn 0.4233 0.9060 0.0029 -vn 0.6497 0.7602 -0.0000 -vn -0.8837 0.4680 0.0000 -vn -0.6017 0.7987 -0.0000 -vn -0.8561 0.5168 0.0000 -vn -0.6934 0.7206 0.0000 -vn -0.8186 0.5743 0.0000 -vn 0.2692 0.9150 -0.3004 -vn 0.1831 0.9831 -0.0000 -vn 0.5496 0.8354 0.0000 -vn -0.2622 0.9451 0.1950 -vn -0.4802 0.8651 0.1452 -vn 0.3027 0.9480 -0.0986 -vn -0.3083 0.9299 -0.2006 -vn -0.2470 0.9690 0.0000 -vn 0.3052 0.9313 -0.1990 -vn -0.3051 0.9470 -0.1000 -vn 0.9878 0.0000 0.1556 -vn 0.4972 -0.8676 0.0000 -vn 0.9665 -0.2568 0.0000 -vn 0.8580 -0.5136 0.0000 -vn 0.0000 0.9980 0.0635 -vn 0.0000 0.9919 0.1269 -vn 0.8837 0.4681 0.0000 -vn 0.0000 0.6730 0.7397 -vn 0.0000 0.6239 0.7815 -vn 0.0000 0.8374 0.5466 -vn 0.0000 0.9284 0.3717 -vn 0.0000 0.1989 0.9800 -vn 0.0033 0.6337 -0.7736 -vn 0.0022 0.6323 -0.7747 -vn -0.0001 0.7210 -0.6930 -vn -0.0000 0.6324 -0.7747 -vn -0.2468 0.9691 0.0000 -vn 0.0000 0.6332 -0.7740 -vn -0.0001 0.4392 -0.8984 -vn 0.0028 0.4406 -0.8977 -vn 0.8561 0.5169 -0.0001 -vn 0.2691 0.9151 -0.3004 -vn 0.7948 0.6069 -0.0000 -vn 0.8561 0.5168 0.0000 -vn 0.9660 0.2584 0.0000 -vn 0.8561 0.5168 -0.0002 -vn 0.8561 0.5168 -0.0001 -vn -0.3763 -0.9265 0.0000 -vn 0.2486 -0.9686 0.0000 -vn 0.3737 0.9275 -0.0000 -vn -0.0001 0.2196 -0.9756 -vn 0.8837 0.4680 0.0000 -vn 0.7785 0.6276 -0.0000 -vn 0.9202 0.3915 0.0000 -vn 0.0000 -0.7520 0.6592 -vn -0.8561 0.5169 -0.0001 -vn -0.6262 0.7797 -0.0000 -vn -0.9883 0.0000 0.1528 -vn -0.9881 0.0006 0.1536 -vn -0.8580 -0.5136 -0.0000 -vn -0.0139 -0.0016 0.9999 -vn 0.0000 -0.0032 1.0000 -vn -0.9881 0.0014 0.1536 -vn 0.0000 0.9284 0.3716 -vn -0.0000 0.8374 0.5465 -vn -0.0022 0.6324 -0.7746 -vn -0.0027 0.6339 -0.7734 -vn -0.0015 0.4406 -0.8977 -vn -0.9660 0.2584 -0.0000 -vn -0.9665 -0.2568 -0.0000 -vn -0.3839 0.9234 0.0000 -vn -0.6994 0.7147 0.0000 -vn 0.0000 0.5725 0.8199 -vn 0.0000 0.5724 0.8200 -vn 0.0000 0.2878 -0.9577 -vn 0.0000 0.5513 -0.8343 -vn -0.3908 -0.9205 0.0007 -vn -0.3902 -0.9207 0.0000 -vn -0.9601 -0.2554 -0.1143 -vn -0.9472 -0.3207 0.0000 -vn -0.9978 0.0661 -0.0000 -vn -0.9978 -0.0662 0.0000 -vn -0.7523 -0.6588 -0.0000 -vn -0.8965 -0.4430 -0.0000 -vn -0.4430 -0.8965 0.0000 -vn -0.6588 -0.7523 0.0000 -vn -0.0661 -0.9978 0.0000 -vn -0.3207 -0.9472 0.0000 -vn 0.1802 -0.0001 0.9836 -vn 0.4855 -0.0001 0.8742 -vn 0.0662 -0.9978 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.3828 -0.9238 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.8510 -0.0001 0.5252 -vn 0.9649 0.0000 0.2626 -vn 0.9715 0.0000 -0.2369 -vn 0.8806 -0.0000 -0.4739 -vn 0.8965 -0.4430 -0.0000 -vn 0.9472 -0.3207 0.0000 -vn 0.9978 0.0662 -0.0000 -vn 0.9978 -0.0662 0.0000 -vn 0.8965 0.4430 -0.0000 -vn 0.9472 0.3207 0.0000 -vn 0.6588 0.7523 0.0000 -vn 0.7523 0.6588 0.0001 -vn 0.3207 0.9472 0.0000 -vn 0.4430 0.8965 0.0000 -vn -0.0662 0.9978 0.0000 -vn 0.0661 0.9978 0.0000 -vn -0.0661 0.9978 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.3829 0.9238 0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.4068 0.0000 -0.9135 -vn -0.8965 0.4430 0.0000 -vn -0.9472 0.3207 0.0000 -vn 0.0000 0.2895 -0.9572 -vn -0.3241 -0.0000 -0.9460 -vn -0.0000 0.2399 -0.9708 -vn 0.0000 0.5962 -0.8028 -vn -0.0000 0.5087 -0.8609 -vn 0.0000 0.4166 -0.9091 -vn -0.2336 0.0000 0.9723 -vn 0.3531 0.0000 0.9356 -vn 0.9112 -0.0000 0.4119 -vn 0.0000 0.8520 0.5235 -vn -0.0003 0.7892 0.6142 -vn 0.0000 0.1917 0.9814 -vn -0.0000 0.7892 0.6142 -vn 0.0000 0.4287 0.9035 -vn 0.0000 0.6411 0.7674 -vn 0.0000 0.5534 0.8329 -vn 0.0000 0.8920 0.4521 -vn 0.0000 0.8459 0.5334 -vn 0.0000 0.9771 0.2126 -vn 0.0000 0.9896 0.1439 -vn 0.0000 0.9979 0.0648 -vn 0.0000 0.9977 0.0682 -vn 0.0000 0.9974 0.0716 -vn 0.9695 -0.2451 -0.0001 -vn -0.0111 0.0273 -0.9996 -vn -0.0194 0.0258 -0.9995 -vn -0.0030 0.0101 -0.9999 -vn 0.0000 0.0008 -1.0000 -vn -0.0005 0.0005 -1.0000 -vn -0.0009 -0.0000 -1.0000 -vn -0.0148 -0.0140 -0.9998 -vn -0.0127 -0.0131 -0.9998 -vn -0.0055 -0.0061 -1.0000 -vn -0.0004 -0.0004 -1.0000 -vn 0.0004 0.0004 -1.0000 -vn -0.0138 0.0348 -0.9993 -vn -0.0152 -0.0072 -0.9999 -vn 0.0000 0.2527 0.9675 -vn -0.9588 0.2841 -0.0000 -vn -0.8386 0.5448 0.0000 -vn -0.4855 0.0000 0.8742 -vn -0.2428 0.0000 0.9701 -vn -0.8510 0.0000 0.5252 -vn -0.9715 0.0001 -0.2369 -vn -0.9649 0.0000 0.2626 -vn -0.9715 0.0000 -0.2370 -vn -0.8806 -0.0000 -0.4739 -vn -0.4068 0.0000 -0.9135 -vn 0.0000 0.8521 0.5234 -vn -0.4670 -0.0000 0.8842 -vn -0.6588 0.7523 0.0000 -vn -0.7523 0.6588 0.0000 -vn -0.3207 0.9472 0.0000 -vn -0.4430 0.8965 0.0000 -vn 0.6588 -0.7523 0.0000 -vn 0.3207 -0.9472 0.0000 -vn 0.4430 -0.8965 0.0000 -vn 0.7523 -0.6588 0.0000 -vn 0.7523 0.6588 0.0000 -vn 0.9978 -0.0661 0.0000 -vn 0.9978 0.0661 0.0000 -vn -0.9978 -0.0661 0.0000 -vn 0.0661 -0.9978 0.0000 -vn -0.0001 -0.8629 -0.5054 -vn -0.0000 -0.9675 -0.2527 -vn -0.0001 -0.5054 -0.8629 -vn -0.0000 0.2527 -0.9675 -vn 0.0000 0.5054 -0.8629 -vn 0.0000 -0.2527 -0.9675 -vn 0.0000 0.9675 -0.2527 -vn 0.0001 0.8629 -0.5054 -vn -1.0000 0.0000 -0.0068 -vn -1.0000 0.0000 -0.0028 -vn 0.0000 -0.3821 0.9241 -vn 0.3738 0.9275 -0.0000 -vn 0.0001 0.7210 -0.6930 -vn 0.7948 0.6069 -0.0002 -vn -0.6262 0.7797 -0.0001 -vn 0.0000 -0.9849 0.1731 -vn -0.9987 0.0000 0.0512 -vn -1.0000 0.0026 0.0000 -vn 0.0662 0.9978 -0.0000 -vn 0.9715 0.0000 -0.2370 -s off -f 61/61/19 62/62/19 63/63/19 -f 64/64/20 65/65/20 66/66/20 -f 67/67/21 68/68/21 69/69/21 -f 70/70/21 71/71/21 72/72/21 -f 73/73/22 74/74/22 75/75/22 -f 67/67/23 76/76/24 77/77/23 -f 78/78/25 79/79/25 80/80/25 -f 81/81/26 82/82/26 83/83/26 -f 84/84/27 85/85/27 86/86/27 -f 81/81/26 83/83/26 87/87/26 -f 88/88/21 89/89/21 90/90/21 -f 91/91/28 92/92/28 93/93/28 -f 94/94/29 95/95/29 96/96/29 -f 96/96/29 97/97/29 94/94/29 -f 98/98/26 81/81/26 99/99/26 -f 100/100/26 101/101/26 98/98/26 -f 71/71/21 102/102/21 103/103/21 -f 104/104/19 105/105/19 106/106/19 -f 107/107/26 108/108/26 109/109/26 -f 110/110/26 111/111/26 112/112/26 -f 100/100/26 98/98/26 99/99/26 -f 113/113/19 114/114/19 115/115/19 -f 115/115/19 116/116/19 113/113/19 -f 117/117/26 118/118/26 119/119/26 -f 120/120/21 121/121/21 122/122/21 -f 105/105/19 123/123/19 106/106/19 -f 124/124/29 125/125/29 126/126/29 -f 111/111/26 87/87/26 112/112/26 -f 83/83/26 112/112/26 87/87/26 -f 98/98/26 127/127/26 81/81/26 -f 112/112/26 128/128/26 110/110/26 -f 129/129/29 130/130/29 131/131/29 -f 132/132/19 106/106/19 123/123/19 -f 133/133/19 134/134/19 135/135/19 -f 136/136/29 137/137/29 138/138/29 -f 139/139/30 140/140/30 141/141/30 -f 142/142/30 143/143/30 140/140/30 -f 112/112/26 109/109/26 108/108/26 -f 144/144/26 145/145/26 128/128/26 -f 146/146/26 147/147/26 145/145/26 -f 148/148/21 149/149/21 150/150/21 -f 151/151/20 152/152/20 153/153/20 -f 154/154/20 155/155/20 156/156/20 -f 157/157/20 158/158/20 159/159/20 -f 160/160/26 161/161/26 162/162/26 -f 163/163/26 164/164/26 165/165/26 -f 166/166/20 167/167/20 168/168/20 -f 169/169/20 168/168/20 170/170/20 -f 171/171/20 172/172/20 173/173/20 -f 174/174/26 175/175/26 119/119/26 -f 176/176/26 177/177/26 178/178/26 -f 179/179/26 180/180/26 145/145/26 -f 181/181/20 182/182/20 183/183/20 -f 184/184/31 185/185/31 186/186/31 -f 187/187/29 188/188/29 189/189/29 -f 147/147/26 146/146/26 190/190/26 -f 191/191/32 192/192/32 193/193/32 -f 194/194/20 195/195/20 196/196/20 -f 197/197/29 198/198/29 199/199/29 -f 200/200/27 201/201/27 191/191/27 -f 202/202/33 203/203/33 204/204/33 -f 205/205/21 206/206/21 207/207/21 -f 208/208/20 209/209/20 210/210/20 -f 211/211/20 212/212/20 213/213/20 -f 214/214/29 215/215/29 216/216/29 -f 101/101/26 217/217/26 98/98/26 -f 218/218/34 219/219/34 220/220/34 -f 221/221/34 222/222/34 223/223/34 -f 224/224/20 225/225/20 226/226/20 -f 227/227/20 228/228/20 229/229/20 -f 230/230/29 231/231/29 232/232/29 -f 229/229/20 213/213/20 227/227/20 -f 233/233/35 234/234/35 235/235/35 -f 236/236/33 237/237/33 238/238/33 -f 239/239/20 240/240/20 241/241/20 -f 242/242/33 235/235/33 234/234/33 -f 243/243/22 244/244/22 245/245/22 -f 246/246/36 247/247/36 248/248/36 -f 249/249/29 250/250/29 251/251/29 -f 252/252/19 253/253/19 123/123/19 -f 254/254/37 255/255/37 256/256/37 -f 101/101/26 257/257/26 217/217/26 -f 178/178/26 258/258/26 119/119/26 -f 145/145/26 147/147/26 119/119/26 -f 144/144/26 259/259/26 260/260/26 -f 261/261/26 174/174/26 119/119/26 -f 119/119/26 262/262/26 263/263/26 -f 264/264/26 262/262/26 119/119/26 -f 264/264/26 258/258/26 265/265/26 -f 266/266/20 267/267/20 268/268/20 -f 173/173/20 266/266/20 269/269/20 -f 270/270/20 167/167/20 166/166/20 -f 259/259/26 271/271/26 260/260/26 -f 272/272/26 273/273/26 274/274/26 -f 275/275/26 259/259/26 144/144/26 -f 276/276/20 277/277/20 278/278/20 -f 279/279/20 280/280/20 281/281/20 -f 282/282/29 283/283/29 284/284/29 -f 285/285/29 286/286/29 287/287/29 -f 288/288/21 289/289/21 290/290/21 -f 291/291/33 292/292/33 293/293/33 -f 294/294/20 295/295/20 296/296/20 -f 297/297/20 298/298/20 299/299/20 -f 107/107/26 82/82/26 161/161/26 -f 300/300/35 292/292/35 291/291/35 -f 301/301/19 302/302/19 303/303/19 -f 304/304/19 305/305/19 306/306/19 -f 307/307/20 308/308/20 309/309/20 -f 127/127/26 161/161/26 82/82/26 -f 310/310/20 311/311/20 312/312/20 -f 313/313/29 314/314/29 315/315/29 -f 162/162/26 161/161/26 127/127/26 -f 316/316/34 317/317/34 318/318/34 -f 319/319/34 320/320/34 321/321/34 -f 322/322/20 323/323/20 324/324/20 -f 325/325/20 326/326/20 311/311/20 -f 327/327/29 328/328/29 329/329/29 -f 312/312/20 311/311/20 326/326/20 -f 330/330/19 331/331/19 332/332/19 -f 333/333/32 334/334/32 335/335/32 -f 260/260/26 336/336/26 274/274/26 -f 337/337/26 260/260/26 273/273/26 -f 338/338/20 339/339/20 340/340/20 -f 341/341/19 342/342/19 330/330/19 -f 343/343/22 344/344/22 345/345/22 -f 346/346/26 337/337/26 347/347/26 -f 348/348/26 349/349/26 260/260/26 -f 350/350/29 351/351/29 352/352/29 -f 353/353/26 260/260/26 349/349/26 -f 354/354/21 355/355/21 356/356/21 -f 163/163/26 336/336/26 260/260/26 -f 357/357/29 358/358/29 359/359/29 -f 95/95/29 360/360/29 358/358/29 -f 95/95/29 94/94/29 360/360/29 -f 361/361/19 362/362/19 363/363/19 -f 364/364/21 365/365/21 366/366/21 -f 367/367/29 368/368/29 369/369/29 -f 370/370/29 371/371/29 372/372/29 -f 373/373/29 374/374/29 372/372/29 -f 151/151/20 153/153/20 375/375/20 -f 376/376/19 377/377/19 378/378/19 -f 358/358/29 379/379/29 359/359/29 -f 380/380/30 381/381/30 382/382/30 -f 383/383/29 384/384/29 385/385/29 -f 386/386/29 387/387/29 388/388/29 -f 389/389/20 390/390/20 391/391/20 -f 392/392/30 393/393/30 394/394/30 -f 395/395/21 396/396/21 397/397/21 -f 398/398/30 399/399/30 400/400/30 -f 400/400/30 401/401/30 398/398/30 -f 402/402/19 403/403/19 404/404/19 -f 405/405/19 406/406/19 407/407/19 -f 408/408/30 409/409/30 410/410/30 -f 378/378/19 134/134/19 133/133/19 -f 109/109/26 82/82/26 107/107/26 -f 411/411/20 412/412/20 413/413/20 -f 414/414/20 411/411/20 413/413/20 -f 415/415/20 414/414/20 413/413/20 -f 376/376/19 378/378/19 133/133/19 -f 412/412/20 416/416/20 413/413/20 -f 417/417/29 418/418/29 419/419/29 -f 419/419/29 418/418/29 420/420/29 -f 421/421/29 422/422/29 423/423/29 -f 424/424/29 425/425/29 421/421/29 -f 131/131/29 425/425/29 426/426/29 -f 427/427/29 428/428/29 130/130/29 -f 429/429/29 430/430/29 428/428/29 -f 431/431/29 420/420/29 430/430/29 -f 432/432/29 429/429/29 428/428/29 -f 427/427/29 432/432/29 428/428/29 -f 129/129/29 433/433/29 130/130/29 -f 434/434/29 426/426/29 425/425/29 -f 424/424/29 434/434/29 425/425/29 -f 435/435/29 424/424/29 421/421/29 -f 436/436/29 423/423/29 422/422/29 -f 437/437/29 436/436/29 422/422/29 -f 437/437/29 422/422/29 420/420/29 -f 431/431/29 438/438/29 420/420/29 -f 429/429/29 439/439/29 430/430/29 -f 440/440/29 417/417/29 419/419/29 -f 422/422/29 419/419/29 420/420/29 -f 435/435/29 421/421/29 423/423/29 -f 441/441/29 131/131/29 426/426/29 -f 433/433/29 427/427/29 130/130/29 -f 439/439/29 431/431/29 430/430/29 -f 438/438/29 437/437/29 420/420/29 -f 441/441/29 129/129/29 131/131/29 -f 442/442/19 443/443/19 444/444/19 -f 127/127/26 82/82/26 81/81/26 -f 445/445/20 446/446/20 447/447/20 -f 448/448/38 449/449/38 450/450/38 -f 451/451/26 452/452/26 453/453/26 -f 454/454/26 455/455/26 456/456/26 -f 457/457/30 458/458/30 459/459/30 -f 460/460/21 69/69/21 68/68/21 -f 388/388/29 461/461/29 367/367/29 -f 383/383/29 385/385/29 388/388/29 -f 462/462/20 463/463/20 464/464/20 -f 462/462/20 465/465/20 466/466/20 -f 467/467/26 468/468/26 469/469/26 -f 470/470/21 471/471/21 395/395/21 -f 472/472/30 473/473/30 474/474/30 -f 475/475/30 472/472/30 476/476/30 -f 66/66/20 65/65/20 477/477/20 -f 478/478/21 479/479/21 480/480/21 -f 465/465/20 481/481/20 482/482/20 -f 483/483/19 484/484/19 485/485/19 -f 486/486/21 487/487/21 488/488/21 -f 489/489/30 490/490/30 491/491/30 -f 492/492/19 485/485/19 484/484/19 -f 493/493/30 494/494/30 495/495/30 -f 496/496/30 495/495/30 494/494/30 -f 497/497/19 498/498/19 499/499/19 -f 497/497/19 63/63/19 498/498/19 -f 66/66/20 390/390/20 500/500/20 -f 390/390/20 389/389/20 500/500/20 -f 501/501/29 138/138/29 502/502/29 -f 503/503/21 504/504/21 505/505/21 -f 506/506/21 505/505/21 504/504/21 -f 507/507/21 506/506/21 504/504/21 -f 64/64/20 66/66/20 500/500/20 -f 508/508/29 501/501/29 502/502/29 -f 509/509/21 503/503/21 505/505/21 -f 497/497/19 61/61/19 63/63/19 -f 501/501/29 136/136/29 138/138/29 -f 510/510/29 511/511/29 512/512/29 -f 513/513/29 511/511/29 514/514/29 -f 512/512/29 511/511/29 515/515/29 -f 515/515/29 511/511/29 516/516/29 -f 517/517/29 511/511/29 513/513/29 -f 516/516/29 511/511/29 518/518/29 -f 518/518/29 511/511/29 519/519/29 -f 520/520/29 511/511/29 517/517/29 -f 519/519/29 511/511/29 521/521/29 -f 521/521/29 511/511/29 522/522/29 -f 522/522/29 511/511/29 520/520/29 -f 523/523/29 511/511/29 510/510/29 -f 514/514/29 511/511/29 524/524/29 -f 525/525/29 511/511/29 523/523/29 -f 524/524/29 511/511/29 526/526/29 -f 526/526/29 511/511/29 525/525/29 -f 527/527/21 528/528/21 529/529/21 -f 530/530/21 531/531/21 529/529/21 -f 532/532/29 533/533/29 534/534/29 -f 76/76/21 67/67/21 69/69/21 -f 535/535/21 70/70/21 72/72/21 -f 536/536/22 73/73/22 75/75/22 -f 537/537/23 67/67/23 77/77/23 -f 538/538/25 78/78/25 80/80/25 -f 539/539/21 88/88/21 90/90/21 -f 90/90/21 540/540/21 539/539/21 -f 72/72/21 71/71/21 103/103/21 -f 541/541/29 124/124/29 126/126/29 -f 253/253/19 132/132/19 123/123/19 -f 542/542/30 139/139/30 141/141/30 -f 139/139/30 142/142/30 140/140/30 -f 128/128/26 112/112/26 108/108/26 -f 108/108/26 144/144/26 128/128/26 -f 144/144/26 146/146/26 145/145/26 -f 159/159/20 154/154/20 156/156/20 -f 156/156/20 157/157/20 159/159/20 -f 336/336/26 163/163/26 165/165/26 -f 169/169/20 166/166/20 168/168/20 -f 543/543/20 169/169/20 170/170/20 -f 544/544/20 171/171/20 173/173/20 -f 118/118/26 176/176/26 178/178/26 -f 175/175/26 179/179/26 145/145/26 -f 545/545/20 181/181/20 183/183/20 -f 546/546/31 184/184/31 186/186/31 -f 547/547/29 187/187/29 189/189/29 -f 548/548/26 147/147/26 190/190/26 -f 200/200/32 191/191/32 193/193/32 -f 549/549/20 194/194/20 196/196/20 -f 550/550/29 197/197/29 199/199/29 -f 551/551/33 202/202/33 204/204/33 -f 552/552/21 205/205/21 207/207/21 -f 553/553/20 208/208/20 210/210/20 -f 229/229/20 211/211/20 213/213/20 -f 554/554/29 214/214/29 216/216/29 -f 555/555/34 218/218/34 220/220/34 -f 556/556/34 221/221/34 223/223/34 -f 557/557/20 224/224/20 226/226/20 -f 558/558/29 230/230/29 232/232/29 -f 559/559/33 236/236/33 238/238/33 -f 560/560/20 239/239/20 241/241/20 -f 561/561/33 242/242/33 234/234/33 -f 562/562/22 243/243/22 245/245/22 -f 563/563/36 246/246/36 248/248/36 -f 564/564/29 249/249/29 251/251/29 -f 565/565/37 254/254/37 256/256/37 -f 118/118/26 178/178/26 119/119/26 -f 175/175/26 145/145/26 119/119/26 -f 146/146/26 144/144/26 260/260/26 -f 263/263/26 261/261/26 119/119/26 -f 258/258/26 264/264/26 119/119/26 -f 566/566/26 264/264/26 265/265/26 -f 269/269/20 266/266/20 268/268/20 -f 544/544/20 173/173/20 269/269/20 -f 567/567/20 270/270/20 166/166/20 -f 568/568/26 272/272/26 274/274/26 -f 569/569/26 275/275/26 144/144/26 -f 570/570/20 276/276/20 278/278/20 -f 571/571/20 279/279/20 281/281/20 -f 572/572/29 282/282/29 284/284/29 -f 573/573/29 285/285/29 287/287/29 -f 574/574/21 288/288/21 290/290/21 -f 575/575/33 291/291/33 293/293/33 -f 576/576/20 294/294/20 296/296/20 -f 577/577/20 297/297/20 299/299/20 -f 578/578/26 107/107/26 161/161/26 -f 579/579/19 301/301/19 303/303/19 -f 580/580/19 304/304/19 306/306/19 -f 581/581/20 307/307/20 309/309/20 -f 582/582/20 310/310/20 312/312/20 -f 583/583/29 313/313/29 315/315/29 -f 584/584/34 316/316/34 318/318/34 -f 585/585/34 319/319/34 321/321/34 -f 586/586/20 322/322/20 324/324/20 -f 587/587/29 327/327/29 329/329/29 -f 588/588/32 333/333/32 335/335/32 -f 273/273/26 260/260/26 274/274/26 -f 347/347/26 337/337/26 273/273/26 -f 589/589/20 338/338/20 340/340/20 -f 332/332/19 341/341/19 330/330/19 -f 590/590/22 343/343/22 345/345/22 -f 591/591/26 346/346/26 347/347/26 -f 271/271/26 348/348/26 260/260/26 -f 592/592/29 350/350/29 352/352/29 -f 593/593/21 594/594/21 595/595/21 -f 596/596/21 354/354/21 356/356/21 -f 353/353/26 163/163/26 260/260/26 -f 357/357/29 95/95/29 358/358/29 -f 597/597/19 361/361/19 363/363/19 -f 598/598/21 364/364/21 366/366/21 -f 383/383/29 367/367/29 369/369/29 -f 371/371/29 373/373/29 372/372/29 -f 599/599/20 151/151/20 375/375/20 -f 600/600/30 380/380/30 382/382/30 -f 385/385/29 386/386/29 388/388/29 -f 601/601/30 392/392/30 394/394/30 -f 602/602/19 402/402/19 404/404/19 -f 603/603/19 405/405/19 407/407/19 -f 604/604/30 408/408/30 410/410/30 -f 605/605/19 442/442/19 444/444/19 -f 606/606/20 445/445/20 447/447/20 -f 607/607/38 448/448/38 450/450/38 -f 608/608/26 451/451/26 453/453/26 -f 609/609/26 454/454/26 456/456/26 -f 610/610/30 457/457/30 459/459/30 -f 611/611/21 460/460/21 68/68/21 -f 367/367/29 383/383/29 388/388/29 -f 612/612/20 462/462/20 464/464/20 -f 463/463/20 462/462/20 466/466/20 -f 613/613/26 467/467/26 469/469/26 -f 397/397/21 470/470/21 395/395/21 -f 476/476/30 472/472/30 474/474/30 -f 614/614/30 475/475/30 476/476/30 -f 615/615/21 478/478/21 480/480/21 -f 466/466/20 465/465/20 482/482/20 -f 616/616/19 483/483/19 485/485/19 -f 617/617/21 486/486/21 488/488/21 -f 618/618/30 489/489/30 491/491/30 -f 619/619/21 527/527/21 529/529/21 -f 528/528/21 530/530/21 529/529/21 -f 620/620/29 532/532/29 534/534/29 -s 1 -f 621/621/39 622/622/40 623/623/41 -f 623/623/41 624/624/42 360/360/29 -f 625/625/43 626/626/43 627/627/44 -f 628/628/45 153/153/20 152/152/20 -f 629/629/46 630/630/47 631/631/21 -f 632/632/48 633/633/48 634/634/49 -f 635/635/21 636/636/50 637/637/51 -f 540/540/21 638/638/52 539/539/21 -f 639/639/53 640/640/54 92/92/19 -f 641/641/55 626/626/43 625/625/43 -f 642/642/56 643/643/19 644/644/19 -f 116/116/19 115/115/19 645/645/57 -f 645/645/57 646/646/19 116/116/19 -f 644/644/19 104/104/19 647/647/58 -f 104/104/19 106/106/19 647/647/58 -f 118/118/26 117/117/26 648/648/59 -f 649/649/26 650/650/60 648/648/59 -f 642/642/56 644/644/19 647/647/58 -f 651/651/61 652/652/62 653/653/63 -f 654/654/64 655/655/65 656/656/66 -f 657/657/67 658/658/68 659/659/69 -f 660/660/70 661/661/70 507/507/21 -f 662/662/71 663/663/19 664/664/19 -f 665/665/72 666/666/72 662/662/71 -f 667/667/73 668/668/74 669/669/75 -f 670/670/76 671/671/77 672/672/78 -f 673/673/73 674/674/79 675/675/80 -f 676/676/81 677/677/82 678/678/83 -f 679/679/84 680/680/85 681/681/86 -f 672/672/78 682/682/56 683/683/19 -f 684/684/19 685/685/19 686/686/87 -f 683/687/19 684/684/19 686/686/87 -f 687/688/88 688/689/89 689/690/21 -f 690/691/90 691/692/91 688/693/89 -f 687/688/88 689/690/21 148/148/21 -f 692/694/92 693/695/93 694/696/30 -f 695/697/94 696/698/95 697/699/96 -f 628/628/45 698/700/97 673/673/73 -f 699/701/98 312/312/20 326/326/20 -f 375/375/20 700/702/99 599/599/20 -f 701/703/21 702/704/50 703/705/100 -f 704/706/101 705/707/102 706/708/30 -f 707/709/103 708/710/104 704/706/101 -f 707/709/103 709/711/105 710/712/106 -f 711/713/107 712/714/108 377/377/19 -f 686/686/87 713/715/109 670/716/76 -f 714/717/87 715/718/110 708/710/104 -f 716/719/30 706/708/30 705/707/102 -f 717/720/111 718/721/50 719/722/112 -f 720/723/113 721/724/114 719/722/112 -f 704/706/101 719/722/112 721/724/114 -f 722/725/115 720/723/113 719/722/112 -f 723/726/116 724/727/117 725/728/118 -f 726/729/92 727/730/119 728/731/120 -f 729/732/121 730/733/122 731/734/123 -f 732/735/19 733/736/53 734/737/53 -f 735/738/124 736/739/125 730/740/122 -f 647/647/58 737/741/56 738/742/126 -f 739/743/127 740/744/128 741/745/129 -f 723/726/116 742/746/94 743/747/30 -f 672/672/78 686/748/87 670/670/76 -f 672/672/78 671/671/77 744/749/124 -f 745/750/95 746/751/30 747/752/30 -f 748/753/130 749/754/131 750/755/30 -f 672/672/78 751/756/19 752/757/126 -f 753/758/19 754/759/19 755/760/132 -f 756/761/133 757/762/134 758/763/135 -f 759/764/136 758/763/135 749/754/131 -f 760/765/29 761/766/29 762/767/137 -f 763/768/138 764/769/139 765/770/140 -f 766/771/141 696/698/95 765/770/140 -f 767/772/30 768/773/142 724/727/117 -f 766/771/141 769/774/143 770/775/144 -f 771/776/98 764/769/139 772/777/145 -f 764/769/139 769/774/143 765/770/140 -f 773/778/146 645/645/57 115/115/19 -f 765/770/140 774/779/147 763/768/138 -f 743/747/30 724/727/117 723/726/116 -f 734/737/53 733/736/53 775/780/148 -f 776/781/149 777/782/150 778/783/148 -f 779/784/112 780/785/110 781/786/118 -f 782/787/150 783/788/151 784/789/19 -f 764/769/139 763/768/138 772/777/145 -f 785/790/150 786/791/152 787/792/19 -f 788/793/19 789/794/19 790/795/132 -f 791/796/150 792/797/149 252/252/19 -f 793/798/77 728/731/120 736/739/125 -f 794/799/153 739/743/127 795/800/154 -f 740/744/128 796/801/19 797/802/19 -f 798/803/121 799/804/155 672/672/78 -f 670/716/76 693/695/93 671/805/77 -f 757/762/134 756/761/133 800/806/42 -f 801/807/19 802/808/19 803/809/132 -f 804/810/20 805/811/20 806/812/156 -f 765/770/140 807/813/94 774/779/147 -f 771/776/98 772/777/145 227/227/20 -f 808/814/19 809/815/19 810/816/132 -f 811/817/19 812/818/53 813/819/53 -f 252/252/19 123/123/19 791/796/150 -f 814/820/157 775/780/148 715/718/110 -f 815/821/157 816/822/158 715/718/110 -f 645/645/57 773/778/146 725/728/118 -f 816/822/158 817/823/159 725/728/118 -f 783/788/151 782/787/150 816/822/158 -f 818/824/148 815/821/157 715/718/110 -f 786/791/152 785/790/150 818/824/148 -f 819/825/157 820/826/148 715/718/110 -f 813/819/53 812/818/53 820/826/148 -f 775/780/148 819/825/157 715/718/110 -f 714/717/87 778/783/148 715/718/110 -f 821/827/60 822/828/160 823/829/160 -f 824/830/96 825/831/161 826/832/162 -f 71/71/21 827/833/163 828/834/163 -f 826/832/162 829/835/50 830/836/113 -f 831/837/47 832/838/46 826/832/162 -f 833/839/47 834/840/47 835/841/21 -f 832/838/46 829/835/50 826/832/162 -f 828/834/163 827/833/163 836/842/164 -f 794/799/153 837/843/153 838/844/165 -f 839/845/94 824/830/96 767/772/30 -f 691/692/91 690/691/90 728/846/120 -f 728/846/120 690/691/90 736/847/125 -f 840/848/166 841/849/167 656/656/66 -f 652/652/62 651/651/61 842/850/29 -f 710/712/106 708/710/104 707/709/103 -f 843/851/130 844/852/30 845/853/30 -f 690/691/90 687/854/88 846/855/168 -f 847/856/21 848/857/113 638/638/52 -f 621/621/39 849/858/169 850/859/170 -f 849/858/169 843/851/130 851/860/131 -f 852/861/113 830/836/113 829/835/50 -f 853/862/171 854/863/172 696/698/95 -f 848/857/113 717/720/111 855/864/50 -f 853/862/171 699/701/98 856/865/173 -f 766/771/141 853/862/171 696/698/95 -f 831/837/47 825/831/161 595/595/21 -f 697/699/96 696/698/95 854/863/172 -f 768/773/142 767/772/30 824/830/96 -f 833/839/47 722/725/115 718/721/50 -f 629/629/46 721/724/114 720/723/113 -f 857/866/174 858/867/21 859/868/21 -f 854/863/172 853/862/171 856/865/173 -f 860/869/174 861/870/21 862/871/21 -f 594/594/21 831/837/47 595/595/21 -f 830/836/113 863/872/50 719/722/112 -f 864/873/113 865/874/111 863/872/50 -f 866/875/175 838/844/165 867/876/21 -f 730/733/122 736/847/125 690/691/90 -f 868/877/21 869/878/50 870/879/47 -f 871/880/176 872/881/177 728/731/120 -f 621/621/39 623/623/41 873/882/178 -f 874/883/113 875/884/115 876/885/21 -f 855/864/50 717/720/111 719/722/112 -f 685/685/19 877/886/19 686/686/87 -f 698/700/97 674/674/79 673/673/73 -f 377/377/19 376/376/19 711/713/107 -f 622/622/40 878/887/179 624/624/42 -f 700/702/99 879/888/180 880/889/181 -f 700/702/99 375/375/20 879/888/180 -f 881/890/182 882/891/183 883/892/26 -f 884/893/43 885/894/26 886/895/26 -f 712/714/108 711/713/107 884/893/43 -f 679/679/84 681/681/86 887/896/183 -f 871/880/176 727/730/119 726/729/92 -f 688/693/89 687/854/88 690/691/90 -f 693/695/93 692/694/92 671/805/77 -f 668/668/74 888/897/184 681/681/86 -f 680/680/85 889/898/21 890/899/21 -f 668/668/74 667/667/73 888/897/184 -f 669/669/75 627/627/44 667/667/73 -f 891/900/185 892/901/186 893/902/187 -f 894/903/188 891/900/185 895/904/189 -f 896/905/190 894/903/188 897/906/191 -f 898/907/192 896/905/190 899/908/193 -f 900/909/194 901/910/195 508/508/29 -f 902/911/196 903/912/197 904/913/198 -f 905/914/199 906/915/199 904/913/198 -f 907/916/200 908/917/201 901/910/195 -f 909/918/202 910/919/203 908/917/201 -f 911/920/204 906/915/199 905/914/199 -f 912/921/205 913/922/206 914/923/207 -f 913/922/206 915/924/208 916/925/209 -f 915/924/208 917/926/210 918/927/211 -f 917/926/210 919/928/212 920/929/213 -f 919/928/212 921/930/214 922/931/215 -f 923/932/216 924/933/217 925/934/218 -f 926/935/219 927/936/219 925/934/218 -f 928/937/220 929/938/220 930/939/203 -f 931/940/221 927/936/219 926/935/219 -f 892/901/186 931/940/221 932/941/222 -f 928/937/220 933/942/223 929/938/220 -f 934/943/224 935/944/225 933/942/223 -f 936/945/226 937/946/227 933/942/223 -f 938/947/228 939/948/228 937/946/227 -f 940/949/229 941/950/230 942/951/230 -f 943/952/231 944/953/231 942/951/230 -f 945/954/232 946/955/233 947/956/30 -f 948/957/234 949/958/235 950/959/236 -f 951/960/237 952/961/238 950/959/236 -f 949/958/235 953/962/239 951/960/237 -f 954/963/240 953/962/239 949/958/235 -f 955/964/241 956/965/242 953/962/239 -f 957/966/243 958/967/243 959/968/244 -f 960/969/245 959/968/244 956/965/242 -f 135/135/19 641/641/55 961/970/246 -f 962/971/247 658/658/68 963/972/248 -f 964/973/249 965/974/250 962/971/247 -f 966/975/251 967/976/252 965/974/250 -f 415/415/20 413/413/20 967/976/252 -f 416/416/20 659/659/69 413/413/20 -f 968/977/253 657/657/67 659/659/69 -f 969/978/254 968/977/253 659/659/69 -f 970/979/255 969/978/254 659/659/69 -f 416/416/20 970/979/255 659/659/69 -f 971/980/256 415/415/20 967/976/252 -f 966/975/251 971/980/256 967/976/252 -f 964/973/249 972/981/257 965/974/250 -f 973/982/258 964/973/249 962/971/247 -f 974/983/259 963/972/248 658/658/68 -f 657/657/67 974/983/259 658/658/68 -f 133/133/19 135/135/19 961/970/246 -f 973/982/258 962/971/247 963/972/248 -f 972/981/257 966/975/251 965/974/250 -f 653/653/63 654/654/64 975/984/260 -f 632/632/48 460/460/21 611/611/21 -f 976/985/51 977/986/48 978/987/21 -f 979/988/29 980/989/29 948/957/234 -f 981/990/261 982/991/261 983/992/21 -f 984/993/262 982/991/261 981/990/261 -f 985/994/263 986/995/264 502/502/29 -f 987/996/265 986/995/264 985/994/263 -f 988/997/266 987/996/265 989/998/267 -f 934/943/224 990/999/268 991/1000/269 -f 935/944/225 934/943/224 992/1001/270 -f 954/963/240 993/1002/271 994/1003/237 -f 660/660/70 940/949/229 995/1004/272 -f 996/1005/29 997/1006/236 998/1007/234 -f 993/1002/271 998/1007/234 997/1006/236 -f 994/1003/237 993/1002/271 997/1006/236 -f 499/499/19 944/953/231 943/952/231 -f 502/502/29 986/995/264 900/909/194 -f 497/497/19 499/499/19 943/952/231 -f 508/508/29 502/502/29 900/909/194 -f 504/504/21 660/660/70 507/507/21 -f 820/826/148 999/1008/157 715/718/110 -f 816/822/158 725/728/118 715/718/110 -f 863/872/50 865/874/111 719/722/112 -f 830/836/113 719/722/112 826/832/162 -f 1000/1009/221 1001/1010/273 1002/1011/274 -f 1001/1010/273 1003/1012/275 1004/1013/276 -f 1005/1014/277 1006/1015/278 1007/1016/279 -f 1003/1012/275 1008/1017/215 1009/1018/216 -f 1008/1017/215 1010/1019/213 1011/1020/212 -f 1012/1021/204 1005/1014/277 1013/1022/280 -f 1010/1019/213 1014/1023/281 1015/1024/210 -f 1014/1023/281 1016/1025/209 1017/1026/208 -f 1018/1027/282 1012/1021/204 1019/1028/205 -f 1016/1025/209 1018/1027/282 1020/1029/283 -f 1021/1030/190 1022/1031/188 1023/1032/191 -f 1024/1033/185 1025/1034/186 1026/1035/284 -f 1027/1036/192 1021/1030/190 1028/1037/193 -f 1006/1015/278 1027/1036/192 1029/1038/285 -f 1025/1034/186 1000/1009/221 1030/1039/222 -f 1022/1031/188 1024/1033/185 1031/1040/189 -f 1032/1041/286 1033/1042/287 1034/1043/288 -f 1035/1044/289 1036/1045/290 1037/1046/291 -f 1038/1047/292 1039/1048/293 1040/1049/30 -f 1041/1050/26 1042/1051/26 1033/1042/287 -f 1036/1045/290 1035/1044/289 1039/1048/293 -f 94/94/29 623/623/41 360/360/29 -f 669/669/75 625/625/43 627/627/44 -f 698/700/97 628/628/45 152/152/20 -f 1043/1052/21 629/629/46 631/631/21 -f 1044/1053/294 632/632/48 634/634/49 -f 1045/1054/21 635/635/21 637/637/51 -f 91/91/19 639/639/53 92/92/19 -f 961/970/246 641/641/55 625/625/43 -f 117/117/26 649/649/26 648/648/59 -f 1046/1055/295 120/120/21 122/122/21 -f 1047/1056/296 651/651/61 653/653/63 -f 975/984/260 654/654/64 656/656/66 -f 1048/1057/71 662/662/71 664/664/19 -f 1048/1057/71 665/665/72 662/662/71 -f 678/678/83 673/673/73 675/675/80 -f 675/675/80 676/676/81 678/678/83 -f 686/748/87 672/672/78 683/683/19 -f 150/150/21 687/688/88 148/148/21 -f 856/865/173 699/701/98 326/326/20 -f 1049/1058/21 701/703/21 703/705/100 -f 706/708/30 707/709/103 704/706/101 -f 710/712/106 714/717/87 708/710/104 -f 705/707/102 704/706/101 721/724/114 -f 718/721/50 722/725/115 719/722/112 -f 773/778/146 723/726/116 725/728/118 -f 793/798/77 726/729/92 728/731/120 -f 1050/1059/297 729/732/121 731/734/123 -f 1051/1060/19 732/735/19 734/737/53 -f 729/1061/121 735/738/124 730/740/122 -f 642/642/56 647/647/58 738/742/126 -f 795/800/154 739/743/127 741/745/129 -f 1052/1062/298 745/750/95 747/752/30 -f 1053/1063/30 748/753/130 750/755/30 -f 682/682/56 672/672/78 752/757/126 -f 1054/1064/299 753/758/19 755/760/132 -f 759/764/136 756/761/133 758/763/135 -f 748/753/130 759/764/136 749/754/131 -f 800/806/42 760/765/29 762/767/137 -f 769/774/143 766/771/141 765/770/140 -f 743/747/30 767/772/30 724/727/117 -f 806/812/156 766/771/141 770/775/144 -f 814/820/157 734/737/53 775/780/148 -f 714/717/87 776/781/149 778/783/148 -f 1055/1065/300 779/784/112 781/786/118 -f 1056/1066/19 782/787/150 784/789/19 -f 1057/1067/19 785/790/150 787/792/19 -f 1058/1068/299 788/793/19 790/795/132 -f 735/738/124 793/798/77 736/739/125 -f 837/843/153 794/799/153 795/800/154 -f 741/745/129 740/744/128 797/802/19 -f 744/749/124 798/803/121 672/672/78 -f 762/767/137 757/762/134 800/806/42 -f 1059/1069/148 801/807/19 803/809/132 -f 770/775/144 804/810/20 806/812/156 -f 213/213/20 771/776/98 227/227/20 -f 1060/1070/299 808/814/19 810/816/132 -f 1061/1071/19 811/817/19 813/819/53 -f 778/783/148 814/820/157 715/718/110 -f 817/823/159 645/645/57 725/728/118 -f 815/821/157 783/788/151 816/822/158 -f 999/1008/157 818/824/148 715/718/110 -f 999/1008/157 786/791/152 818/824/148 -f 819/825/157 813/819/53 820/826/148 -f 1062/1072/301 821/827/60 823/829/160 -f 768/773/142 824/830/96 826/832/162 -f 102/102/21 71/71/21 828/834/163 -f 825/831/161 831/837/47 826/832/162 -f 1063/1073/21 833/839/47 835/841/21 -f 1064/1074/302 828/834/163 836/842/164 -f 866/875/175 794/799/153 838/844/165 -f 872/881/177 691/1075/91 728/731/120 -f 655/655/65 840/848/166 656/656/66 -f 1065/1076/29 652/652/62 842/850/29 -f 851/860/131 843/851/130 845/853/30 -f 1066/1077/303 690/691/90 846/855/168 -f 540/540/21 847/856/21 638/638/52 -f 622/622/40 621/621/39 850/859/170 -f 850/859/170 849/858/169 851/860/131 -f 857/866/174 852/861/113 829/835/50 -f 638/638/52 848/857/113 855/864/50 -f 834/840/47 833/839/47 718/721/50 -f 630/630/47 629/629/46 720/723/113 -f 852/861/113 857/866/174 859/868/21 -f 864/873/113 860/869/174 862/871/21 -f 860/869/174 864/873/113 863/872/50 -f 1067/1078/21 866/875/175 867/876/21 -f 731/734/123 730/733/122 690/691/90 -f 1068/1079/21 868/877/21 870/879/47 -f 727/730/119 871/880/176 728/731/120 -f 1069/1080/21 874/883/113 876/885/21 -f 865/874/111 855/864/50 719/722/112 -f 623/623/41 622/622/40 624/624/42 -f 1070/1081/181 700/702/99 880/889/181 -f 1071/1082/26 881/890/182 883/892/26 -f 1072/1083/43 884/893/43 886/895/26 -f 1072/1083/43 712/714/108 884/893/43 -f 1073/1084/30 871/880/176 726/729/92 -f 680/680/85 668/668/74 681/681/86 -f 668/668/74 680/680/85 890/899/21 -f 895/904/189 891/900/185 893/902/187 -f 897/906/191 894/903/188 895/904/189 -f 899/908/193 896/905/190 897/906/191 -f 902/911/196 898/907/192 899/908/193 -f 898/907/192 902/911/196 904/913/198 -f 903/912/197 905/914/199 904/913/198 -f 900/909/194 907/916/200 901/910/195 -f 907/916/200 909/918/202 908/917/201 -f 912/921/205 911/920/204 905/914/199 -f 911/920/204 912/921/205 914/923/207 -f 914/923/207 913/922/206 916/925/209 -f 916/925/209 915/924/208 918/927/211 -f 918/927/211 917/926/210 920/929/213 -f 920/929/213 919/928/212 922/931/215 -f 1074/1085/304 923/932/216 925/934/218 -f 924/933/217 926/935/219 925/934/218 -f 1075/1086/305 928/937/220 930/939/203 -f 932/941/222 931/940/221 926/935/219 -f 893/902/187 892/901/186 932/941/222 -f 928/937/220 934/943/224 933/942/223 -f 935/944/225 936/945/226 933/942/223 -f 936/945/226 938/947/228 937/946/227 -f 995/1004/272 940/949/229 942/951/230 -f 941/950/230 943/952/231 942/951/230 -f 1076/1087/30 945/954/232 947/956/30 -f 949/958/235 951/960/237 950/959/236 -f 993/1002/271 954/963/240 949/958/235 -f 954/963/240 955/964/241 953/962/239 -f 960/969/245 957/966/243 959/968/244 -f 955/964/241 960/969/245 956/965/242 -f 1047/1056/296 653/653/63 975/984/260 -f 633/633/48 632/632/48 611/611/21 -f 1077/1088/50 976/985/51 978/987/21 -f 950/959/236 979/988/29 948/957/234 -f 1078/1089/21 981/990/261 983/992/21 -f 1079/1090/262 984/993/262 981/990/261 -f 989/998/267 987/996/265 985/994/263 -f 1080/1091/269 988/997/266 989/998/267 -f 992/1001/270 934/943/224 991/1000/269 -f 661/661/70 660/660/70 995/1004/272 -f 1081/1092/29 996/1005/29 998/1007/234 -f 1082/1093/238 994/1003/237 997/1006/236 -f 1030/1039/222 1000/1009/221 1002/1011/274 -f 1002/1011/274 1001/1010/273 1004/1013/276 -f 1013/1022/280 1005/1014/277 1007/1016/279 -f 1004/1013/276 1003/1012/275 1009/1018/216 -f 1009/1018/216 1008/1017/215 1011/1020/212 -f 1019/1028/205 1012/1021/204 1013/1022/280 -f 1011/1020/212 1010/1019/213 1015/1024/210 -f 1015/1024/210 1014/1023/281 1017/1026/208 -f 1020/1029/283 1018/1027/282 1019/1028/205 -f 1017/1026/208 1016/1025/209 1020/1029/283 -f 1028/1037/193 1021/1030/190 1023/1032/191 -f 1031/1040/189 1024/1033/185 1026/1035/284 -f 1029/1038/285 1027/1036/192 1028/1037/193 -f 1007/1016/279 1006/1015/278 1029/1038/285 -f 1026/1035/284 1025/1034/186 1030/1039/222 -f 1023/1032/191 1022/1031/188 1031/1040/189 -f 1037/1046/291 1032/1041/286 1034/1043/288 -f 1034/1043/288 1035/1044/289 1037/1046/291 -f 1083/1094/30 1038/1047/292 1040/1049/30 -f 1032/1041/286 1041/1050/26 1033/1042/287 -f 1038/1047/292 1036/1045/290 1039/1048/293 -o trigger_pistol_0 -v 0.255916 1.582615 6.859656 -v 0.255916 1.449703 6.660409 -v 0.255916 1.810704 6.457509 -v 0.255916 2.466018 6.344805 -v 0.255916 1.892926 6.633237 -v 0.577175 1.435798 6.186546 -v 0.577175 1.810704 6.457509 -v 0.577175 1.449703 6.660409 -v 0.577175 3.484048 5.722968 -v 0.577175 3.243770 6.479860 -v 0.577175 2.895699 6.381779 -v 0.577175 1.924939 5.885275 -v 0.577175 2.439333 5.691723 -v 0.577175 2.466018 6.344805 -v 0.577175 3.484048 5.722968 -v 0.401255 3.484048 5.722968 -v 0.401255 3.243770 6.479860 -v 0.401255 3.588838 6.684444 -v 0.401255 3.243770 6.479860 -v 0.401255 3.484048 5.722968 -v 0.401255 4.331120 5.796535 -v 0.401255 4.331120 7.553139 -v 0.401255 3.911054 6.978125 -v 0.401255 4.776393 4.607953 -v 0.401255 5.500355 4.607955 -v 0.401255 5.500353 7.553141 -v -0.401255 4.331120 5.796535 -v -0.401255 4.776393 4.607953 -v 0.401255 4.776393 4.607953 -v -0.401255 5.500355 4.607955 -v 0.401255 5.500355 4.607955 -v 0.401255 4.776393 4.607953 -v 0.577175 2.851677 5.639833 -v -0.577175 3.484048 5.722968 -v -0.577175 3.243770 6.479860 -v -0.401255 3.243770 6.479860 -v -0.255916 1.582615 6.859656 -v -0.255916 1.892926 6.633237 -v -0.255916 1.810704 6.457509 -v -0.401255 3.243770 6.479860 -v -0.401255 3.588838 6.684444 -v -0.401255 3.484048 5.722968 -v -0.401255 4.331120 7.553139 -v -0.401255 4.331120 5.796535 -v -0.401255 3.911054 6.978125 -v -0.401255 4.776393 4.607953 -v -0.401255 5.500355 4.607955 -v -0.401255 5.500353 7.553141 -v -0.255916 2.466018 6.344805 -v -0.577175 2.466018 6.344805 -v -0.577175 2.895699 6.381779 -v -0.577175 2.851677 5.639833 -v -0.577175 1.810704 6.457509 -v -0.577175 1.435798 6.186546 -v -0.577175 1.449703 6.660409 -v -0.577175 3.484048 5.722968 -v -0.577175 1.924939 5.885275 -v -0.577175 2.439333 5.691723 -v 0.577175 3.243770 6.479860 -v 0.401255 4.331120 5.796535 -v -0.401255 4.776393 4.607953 -v -0.401255 3.484048 5.722968 -v -0.255916 1.449703 6.660409 -v -0.577175 3.243770 6.479860 -v -0.255916 1.892926 6.633237 -v 0.255916 1.892926 6.633237 -v 0.255916 2.466018 6.344805 -v 0.577175 2.895699 6.381779 -v 0.577175 3.243770 6.479860 -v 0.401255 3.243770 6.479860 -v -0.401255 3.243770 6.479860 -v -0.577175 2.895699 6.381779 -v -0.136434 1.170197 7.267153 -v 0.136434 1.170197 7.267153 -v 0.255916 1.274900 7.159120 -v -0.255916 1.274900 7.159120 -v 0.255916 1.582615 6.859656 -v -0.255916 1.582615 6.859656 -v -0.136434 1.170197 7.267153 -v -0.140214 0.908798 7.158844 -v 0.140214 0.908798 7.158844 -v 0.255916 1.049089 7.041913 -v 0.255916 1.274900 7.159120 -v 0.136434 1.170197 7.267153 -v 0.255916 2.466018 6.344805 -v 0.577175 2.466018 6.344805 -v 0.577175 1.049089 7.041913 -v 0.255916 1.049089 7.041913 -v 0.140214 0.908798 7.158844 -v -0.140214 0.908798 7.158844 -v -0.238265 0.780515 7.270253 -v 0.238265 0.780515 7.270253 -v 0.577175 1.810704 6.457509 -v 0.255916 1.810704 6.457509 -v 0.255916 1.449703 6.660409 -v 0.577175 1.449703 6.660409 -v -0.242153 0.574698 7.190140 -v 0.242153 0.574698 7.190140 -v 0.238265 0.780515 7.270253 -v 0.557295 0.748788 6.906375 -v 0.577175 1.049089 7.041913 -v 0.577175 1.022907 6.562050 -v -0.255916 2.466018 6.344805 -v -0.401255 4.331120 5.796535 -v 0.401255 4.331120 5.796535 -v 0.401255 3.484048 5.722968 -v 0.401255 3.588838 6.684444 -v -0.401255 3.588838 6.684444 -v 0.401255 3.911054 6.978125 -v 0.401255 4.331120 7.553139 -v -0.401255 4.331120 7.553139 -v -0.401255 3.911054 6.978125 -v 0.401255 5.500353 7.553141 -v -0.401255 5.500353 7.553141 -v 0.577175 2.851677 5.639833 -v 0.577175 3.484048 5.722968 -v -0.577175 2.851677 5.639833 -v -0.401255 3.484048 5.722968 -v 0.577175 1.022907 6.562050 -v -0.577175 1.022907 6.562050 -v -0.577175 1.435798 6.186546 -v 0.577175 1.435798 6.186546 -v -0.577175 1.924939 5.885275 -v -0.577175 2.439333 5.691723 -v 0.577175 2.439333 5.691723 -v 0.577175 1.924939 5.885275 -v 0.242153 0.574698 7.190140 -v -0.242153 0.574698 7.190140 -v -0.557295 0.748788 6.906375 -v 0.557295 0.748788 6.906375 -v -0.577175 3.243770 6.479860 -v -0.255916 1.049089 7.041913 -v -0.577175 2.466018 6.344805 -v -0.255916 1.274900 7.159120 -v -0.577175 1.049089 7.041913 -v -0.577175 3.484048 5.722968 -v -0.577175 1.810704 6.457509 -v -0.577175 1.449703 6.660409 -v -0.255916 1.449703 6.660409 -v -0.255916 1.810704 6.457509 -v -0.255916 1.049089 7.041913 -v -0.557295 0.748788 6.906375 -v -0.238265 0.780515 7.270253 -v -0.577175 1.022907 6.562050 -v -0.577175 1.049089 7.041913 -v -0.255916 2.466018 6.344805 -vt 0.482997 0.972676 -vt 0.483169 0.972693 -vt 0.483177 0.972380 -vt 0.483034 0.971858 -vt 0.483023 0.972386 -vt 0.471310 0.981774 -vt 0.471246 0.981454 -vt 0.471009 0.981626 -vt 0.472210 0.980596 -vt 0.471654 0.980527 -vt 0.471614 0.980779 -vt 0.471647 0.981549 -vt 0.471923 0.981275 -vt 0.471511 0.981066 -vt 0.472210 0.980596 -vt 0.472225 0.980472 -vt 0.471669 0.980404 -vt 0.471639 0.980122 -vt 0.471669 0.980404 -vt 0.472225 0.980472 -vt 0.472428 0.979907 -vt 0.471300 0.979390 -vt 0.471545 0.979829 -vt 0.473322 0.979971 -vt 0.473535 0.979507 -vt 0.471644 0.978639 -vt 0.480249 0.946278 -vt 0.480249 0.945382 -vt 0.480816 0.945382 -vt 0.480249 0.944870 -vt 0.480816 0.944870 -vt 0.480816 0.945382 -vt 0.472077 0.981026 -vt 0.468113 0.980573 -vt 0.468670 0.980511 -vt 0.468657 0.980387 -vt 0.482644 0.972678 -vt 0.482622 0.972386 -vt 0.482468 0.972377 -vt 0.468657 0.980387 -vt 0.468690 0.980106 -vt 0.468100 0.980449 -vt 0.469037 0.979378 -vt 0.467904 0.979882 -vt 0.468786 0.979814 -vt 0.467009 0.979936 -vt 0.466802 0.979469 -vt 0.468701 0.978624 -vt 0.482618 0.971864 -vt 0.468807 0.981051 -vt 0.468707 0.980763 -vt 0.468241 0.981005 -vt 0.469067 0.981441 -vt 0.469000 0.981761 -vt 0.469302 0.981616 -vt 0.468113 0.980573 -vt 0.468666 0.981532 -vt 0.468393 0.981256 -vt 0.471654 0.980527 -vt 0.480816 0.946278 -vt 0.480249 0.945382 -vt 0.468100 0.980449 -vt 0.482469 0.972694 -vt 0.468670 0.980511 -vt 0.482622 0.972386 -vt 0.483023 0.972386 -vt 0.483034 0.971858 -vt 0.480078 0.973332 -vt 0.480077 0.973077 -vt 0.479953 0.973077 -vt 0.479387 0.973079 -vt 0.479263 0.973334 -vt 0.482753 0.972998 -vt 0.482894 0.972996 -vt 0.482958 0.972932 -vt 0.482686 0.972938 -vt 0.482997 0.972676 -vt 0.482644 0.972678 -vt 0.482753 0.972998 -vt 0.482726 0.973162 -vt 0.482929 0.973155 -vt 0.483051 0.973046 -vt 0.482958 0.972932 -vt 0.482894 0.972996 -vt 0.479852 0.973637 -vt 0.480079 0.973637 -vt 0.480081 0.974789 -vt 0.479855 0.974790 -vt 0.479773 0.974919 -vt 0.479575 0.974919 -vt 0.479506 0.975040 -vt 0.479843 0.975039 -vt 0.480080 0.974106 -vt 0.479853 0.974107 -vt 0.479854 0.974399 -vt 0.480081 0.974399 -vt 0.469982 0.982043 -vt 0.470324 0.982045 -vt 0.470322 0.981889 -vt 0.470645 0.982004 -vt 0.470647 0.981771 -vt 0.470947 0.981928 -vt 0.479491 0.973638 -vt 0.480249 0.946278 -vt 0.480816 0.946278 -vt 0.480816 0.946878 -vt 0.479953 0.972794 -vt 0.479386 0.972795 -vt 0.479952 0.972486 -vt 0.479951 0.971983 -vt 0.479384 0.971985 -vt 0.479385 0.972488 -vt 0.479949 0.971158 -vt 0.479382 0.971159 -vt 0.480940 0.947328 -vt 0.480940 0.946878 -vt 0.480125 0.947328 -vt 0.480249 0.946878 -vt 0.480940 0.948810 -vt 0.480125 0.948810 -vt 0.480125 0.948416 -vt 0.480940 0.948415 -vt 0.480125 0.948010 -vt 0.480125 0.947622 -vt 0.480940 0.947622 -vt 0.480940 0.948010 -vt 0.480704 0.949355 -vt 0.480362 0.949355 -vt 0.480139 0.949120 -vt 0.480926 0.949120 -vt 0.479262 0.973079 -vt 0.482592 0.973062 -vt 0.479264 0.973639 -vt 0.482686 0.972938 -vt 0.479266 0.974791 -vt 0.480125 0.946878 -vt 0.479265 0.974108 -vt 0.479265 0.974401 -vt 0.479492 0.974400 -vt 0.479492 0.974108 -vt 0.479493 0.974791 -vt 0.469662 0.981998 -vt 0.469986 0.981887 -vt 0.469361 0.981919 -vt 0.469663 0.981765 -vt 0.482618 0.971864 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9531 0.3026 -vn 0.0000 -0.9364 -0.3508 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.4977 0.8674 -vn 0.0000 0.5444 0.8388 -vn 0.0000 0.1395 0.9902 -vn 0.0000 -0.1979 0.9802 -vn 0.0000 -0.2712 0.9625 -vn 0.0000 -0.3535 0.9354 -vn -0.0000 -0.3697 0.9291 -vn 0.0000 -0.1606 0.9870 -vn 0.0000 0.7181 0.6960 -vn 0.0000 0.7113 0.7029 -vn -0.0000 0.7044 0.7098 -vn 0.0000 0.6629 0.7487 -vn 0.0000 0.6268 0.7792 -vn -0.4404 -0.3550 0.8247 -vn -0.4552 -0.3352 0.8249 -vn 0.2991 -0.3616 0.8831 -vn 0.9038 -0.1780 0.3893 -vn 0.9745 -0.1034 0.1993 -vn 0.5796 -0.3268 0.7465 -vn 0.0001 0.1395 0.9902 -vn 0.0000 0.0850 0.9964 -vn -0.0023 0.6611 0.7503 -vn -0.0000 0.6735 0.7392 -vn -0.0023 0.6496 0.7603 -vn 0.0017 0.6512 0.7589 -vn 0.0038 0.6541 0.7564 -vn -0.0023 0.6547 0.7559 -vn 0.0000 0.3882 0.9216 -vn 0.0000 0.2799 0.9600 -vn 0.0000 0.5604 0.8282 -vn 0.0000 0.6274 0.7787 -vn -0.2580 -0.3462 0.9020 -vn 0.3908 -0.3275 0.8603 -vn 0.3829 -0.3520 0.8541 -vn 0.8580 -0.2283 0.4601 -vn 0.9627 -0.1436 0.2294 -vn 0.9997 -0.0226 0.0012 -vn 0.0000 0.1148 0.9934 -vn 0.0000 0.0865 -0.9962 -vn 0.0000 0.1129 -0.9936 -vn 0.0000 -0.5671 0.8236 -vn 0.0000 -0.6219 0.7831 -vn 0.0000 -0.7215 0.6924 -vn -0.0001 -0.5953 0.8035 -vn 0.0001 -0.2977 0.9547 -vn 0.0000 -0.7663 0.6425 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 0.0456 -0.9990 -vn 0.0000 0.1303 -0.9915 -vn 0.0000 0.0285 -0.9996 -vn 0.0000 0.1158 -0.9933 -vn -0.0000 -0.7114 -0.7028 -vn -0.0000 -0.7480 -0.6637 -vn 0.0000 -0.6258 -0.7800 -vn 0.0000 -0.5761 -0.8174 -vn -0.0000 -0.4689 -0.8832 -vn 0.0000 -0.2781 -0.9606 -vn 0.0000 -0.2019 -0.9794 -vn -0.0000 -0.4113 -0.9115 -vn 0.0000 -0.8524 -0.5229 -vn 0.0000 -0.8304 -0.5572 -vn 0.0000 -0.8071 -0.5904 -vn -0.9038 -0.1780 0.3893 -vn -0.9745 -0.1034 0.1993 -vn 0.0023 0.6611 0.7503 -vn -0.8580 -0.2283 0.4601 -vn -0.5059 -0.3351 0.7948 -vn -0.9997 -0.0226 0.0012 -vn -0.9627 -0.1436 0.2294 -vn 0.0000 0.1149 0.9934 -s off -f 1084/1095/306 1085/1096/306 1086/1097/306 -f 1086/1097/306 1087/1098/306 1088/1099/306 -f 1089/1100/306 1090/1101/306 1091/1102/306 -f 1092/1103/306 1093/1104/306 1094/1105/306 -f 1089/1100/306 1095/1106/306 1090/1101/306 -f 1096/1107/306 1097/1108/306 1090/1101/306 -f 1098/1109/307 1099/1110/307 1100/1111/307 -f 1101/1112/306 1102/1113/306 1103/1114/306 -f 1104/1115/306 1105/1116/306 1106/1117/306 -f 1101/1112/306 1103/1114/306 1104/1115/306 -f 1104/1115/306 1107/1118/306 1108/1119/306 -f 1109/1120/306 1105/1116/306 1104/1115/306 -f 1110/1121/308 1111/1122/308 1112/1123/308 -f 1113/1124/309 1114/1125/309 1115/1126/309 -f 1097/1108/306 1096/1107/306 1116/1127/306 -f 1117/1128/307 1118/1129/307 1119/1130/307 -f 1120/1131/310 1121/1132/310 1122/1133/310 -f 1123/1134/310 1124/1135/310 1125/1136/310 -f 1126/1137/310 1127/1138/310 1128/1139/310 -f 1124/1135/310 1128/1139/310 1127/1138/310 -f 1129/1140/310 1127/1138/310 1130/1141/310 -f 1131/1142/310 1130/1141/310 1127/1138/310 -f 1132/1143/310 1122/1133/310 1121/1132/310 -f 1133/1144/310 1134/1145/310 1135/1146/310 -f 1136/1147/310 1137/1148/310 1138/1149/310 -f 1139/1150/310 1135/1146/310 1134/1145/310 -f 1140/1151/310 1137/1148/310 1136/1147/310 -f 1141/1152/310 1140/1151/310 1136/1147/310 -f 1088/1099/306 1084/1095/306 1086/1097/306 -f 1116/1127/306 1092/1103/306 1094/1105/306 -f 1095/1106/306 1096/1107/306 1090/1101/306 -f 1142/1153/307 1098/1109/307 1100/1111/307 -f 1106/1117/306 1101/1112/306 1104/1115/306 -f 1108/1119/306 1109/1120/306 1104/1115/306 -f 1143/1154/308 1110/1121/308 1112/1123/308 -f 1144/1155/309 1113/1124/309 1115/1126/309 -f 1094/1105/306 1097/1108/306 1116/1127/306 -f 1145/1156/307 1117/1128/307 1119/1130/307 -f 1146/1157/310 1120/1131/310 1122/1133/310 -f 1125/1136/310 1124/1135/310 1127/1138/310 -f 1126/1137/310 1131/1142/310 1127/1138/310 -f 1141/1152/310 1133/1144/310 1135/1146/310 -f 1147/1158/310 1139/1150/310 1134/1145/310 -f 1133/1144/310 1141/1152/310 1136/1147/310 -s 1 -f 1148/1159/311 1149/1160/312 1150/1161/313 -f 1151/1162/314 1152/1163/315 1153/1164/316 -f 1154/1165/317 1155/1166/318 1151/1162/314 -f 1156/1167/319 1157/1168/319 1158/1169/320 -f 1159/1170/321 1158/1169/320 1160/1171/322 -f 1149/1160/312 1148/1159/311 1161/1172/323 -f 1162/1173/324 1163/1174/325 1164/1175/326 -f 1165/1176/327 1166/1177/328 1167/1178/329 -f 1168/1179/330 1169/1180/331 1151/1162/314 -f 1085/1096/306 1084/1095/306 1166/1177/328 -f 1170/1181/332 1171/1182/333 1172/1183/334 -f 1173/1184/335 1174/1185/336 1175/1186/337 -f 1176/1187/338 1177/1188/339 1178/1189/340 -f 1169/1180/331 1168/1179/330 1177/1188/339 -f 1171/1182/333 1170/1181/332 1179/1190/341 -f 1180/1191/342 1181/1192/343 1182/1193/344 -f 1183/1194/345 1184/1195/346 1182/1193/344 -f 1185/1196/347 1091/1102/306 1184/1195/346 -f 1185/1196/347 1089/1100/306 1091/1102/306 -f 1155/1166/318 1186/1197/348 1168/1179/330 -f 1187/1198/349 1188/1199/349 1189/1200/350 -f 1190/1201/351 1191/1202/352 1154/1165/317 -f 1191/1202/352 1190/1201/351 1192/1203/353 -f 1193/1204/354 1194/1205/355 1195/1206/356 -f 1196/1207/357 1197/1208/357 1194/1205/355 -f 1198/1209/358 1189/1200/350 1199/1210/359 -f 1200/1211/360 1201/1212/361 1189/1200/350 -f 1202/1213/362 1203/1214/363 1204/1215/364 -f 1205/1216/365 1204/1215/364 1206/1217/366 -f 1207/1218/367 1208/1219/368 1209/1220/369 -f 1200/1211/360 1198/1209/358 1208/1219/368 -f 1210/1221/370 1211/1222/370 1212/1223/371 -f 1203/1214/363 1202/1213/362 1213/1224/372 -f 1214/1225/315 1155/1166/318 1154/1165/317 -f 1215/1226/373 1163/1174/325 1162/1173/324 -f 1216/1227/331 1186/1197/348 1155/1166/318 -f 1146/1157/310 1215/1226/373 1217/1228/374 -f 1218/1229/375 1174/1185/336 1173/1184/335 -f 1201/1212/361 1200/1211/360 1219/1230/359 -f 1220/1231/338 1221/1232/341 1222/1233/340 -f 1216/1227/331 1220/1231/338 1223/1234/339 -f 1224/1235/333 1222/1233/340 1221/1232/341 -f 1225/1236/376 1180/1191/342 1226/1237/377 -f 1227/1238/378 1225/1236/376 1228/1239/379 -f 1137/1148/310 1227/1238/378 1138/1149/310 -f 1229/1240/380 1148/1159/311 1150/1161/313 -f 1153/1164/316 1154/1165/317 1151/1162/314 -f 1159/1170/321 1156/1167/319 1158/1169/320 -f 1161/1172/323 1159/1170/321 1160/1171/322 -f 1160/1171/322 1149/1160/312 1161/1172/323 -f 1167/1178/329 1162/1173/324 1164/1175/326 -f 1164/1175/326 1165/1176/327 1167/1178/329 -f 1165/1176/327 1085/1096/306 1166/1177/328 -f 1175/1186/337 1170/1181/332 1172/1183/334 -f 1172/1183/334 1173/1184/335 1175/1186/337 -f 1179/1190/341 1176/1187/338 1178/1189/340 -f 1176/1187/338 1169/1180/331 1177/1188/339 -f 1178/1189/340 1171/1182/333 1179/1190/341 -f 1226/1237/377 1180/1191/342 1182/1193/344 -f 1181/1192/343 1183/1194/345 1182/1193/344 -f 1183/1194/345 1185/1196/347 1184/1195/346 -f 1151/1162/314 1155/1166/318 1168/1179/330 -f 1201/1212/361 1187/1198/349 1189/1200/350 -f 1153/1164/316 1190/1201/351 1154/1165/317 -f 1195/1206/356 1191/1202/352 1192/1203/353 -f 1192/1203/353 1193/1204/354 1195/1206/356 -f 1193/1204/354 1196/1207/357 1194/1205/355 -f 1198/1209/358 1200/1211/360 1189/1200/350 -f 1205/1216/365 1202/1213/362 1204/1215/364 -f 1209/1220/369 1205/1216/365 1206/1217/366 -f 1206/1217/366 1207/1218/367 1209/1220/369 -f 1207/1218/367 1200/1211/360 1208/1219/368 -f 1213/1224/372 1210/1221/370 1212/1223/371 -f 1212/1223/371 1203/1214/363 1213/1224/372 -f 1217/1228/374 1215/1226/373 1162/1173/324 -f 1120/1131/310 1146/1157/310 1217/1228/374 -f 1224/1235/333 1218/1229/375 1173/1184/335 -f 1223/1234/339 1220/1231/338 1222/1233/340 -f 1186/1197/348 1216/1227/331 1223/1234/339 -f 1218/1229/375 1224/1235/333 1221/1232/341 -f 1228/1239/379 1225/1236/376 1226/1237/377 -f 1138/1149/310 1227/1238/378 1228/1239/379 -o mag_pistol_0 -v -1.109136 1.854146 1.546994 -v -1.109136 6.483851 2.313161 -v -1.109136 1.746315 1.309461 -v 1.109136 6.483851 2.313161 -v 1.109136 6.193875 2.563060 -v 1.109136 1.854146 1.546994 -v 1.109136 1.746315 1.309461 -v -1.109136 6.193875 2.563060 -v -1.109136 7.455005 0.432841 -v -0.855096 7.454038 0.681172 -v -0.637953 7.455005 0.432841 -v -1.109136 7.447666 2.316916 -v -0.851242 7.447666 2.316916 -v -0.645065 7.456246 0.114420 -v -0.808240 7.456246 0.114420 -v -0.882817 -7.449294 -6.242331 -v -1.332151 -7.578506 -5.806304 -v -1.109136 -7.583717 -5.788713 -v -1.260158 -8.694220 -2.041337 -v -1.109136 -8.686133 -2.068621 -v -0.818644 -8.777006 -1.761974 -v -0.549908 -9.201518 -0.329464 -v 0.549908 -9.201518 -0.329464 -v 0.855096 7.454038 0.681172 -v 1.109136 7.455005 0.432841 -v 0.637953 7.455005 0.432841 -v 0.645065 7.456246 0.114420 -v 0.808240 7.456246 0.114420 -v -0.413784 6.208827 -0.016872 -v 0.413784 6.208827 -0.016872 -v 0.440888 6.323021 -0.358271 -v 0.851242 7.447666 2.316916 -v -0.791829 -7.487273 -6.114170 -v 0.791829 -7.487273 -6.114170 -v 0.882817 -7.449294 -6.242331 -v 1.109136 -7.583717 -5.788713 -v 1.332151 -7.578506 -5.806304 -v 1.109136 -8.686133 -2.068621 -v -0.527911 -9.865828 -0.558223 -v 0.527911 -9.865828 -0.558223 -v 0.549908 -9.201518 -0.329464 -v 0.527911 -9.865828 -0.558223 -v -0.527911 -9.865828 -0.558223 -v -1.263812 -9.320386 -2.284041 -v -0.889556 -7.991921 -6.487401 -v 0.889556 -7.991921 -6.487401 -v 1.326758 -8.130615 -6.048566 -v 1.263812 -9.320386 -2.284041 -v -1.326758 -8.130615 -6.048566 -v 1.260158 -8.694220 -2.041337 -v 0.818644 -8.777006 -1.761974 -v -0.440888 6.323021 -0.358271 -v 1.109136 7.447666 2.316916 -v -0.549908 -9.201518 -0.329464 -v -0.330292 5.643600 3.823889 -v 0.330292 5.643600 3.823889 -v -0.639183 4.693711 3.350439 -v -0.784649 4.758710 3.184810 -v -0.823423 6.188930 3.832172 -v -0.613250 5.916148 3.869261 -v 0.639183 4.693711 3.350439 -v 0.613250 5.916148 3.869261 -v -0.791829 -7.487273 -6.114170 -v -0.440888 6.323021 -0.358271 -v 0.791829 -7.487273 -6.114170 -v 1.109136 6.187971 4.078715 -v 1.109136 1.608211 2.157616 -v 1.109136 7.455005 0.432841 -v 1.109136 -7.583717 -5.788713 -v 1.109136 1.421237 1.150594 -v 1.109136 1.152737 1.225781 -v 0.613250 6.186937 4.344060 -v 0.613250 5.905007 4.230343 -v 0.807799 6.186929 4.345726 -v -0.367306 5.610397 4.110494 -v -0.804550 1.432484 2.382775 -v 0.367306 5.610397 4.110494 -v -0.613250 6.186937 4.344060 -v -0.807799 6.186929 4.345726 -v -0.613250 5.905007 4.230343 -v -0.818644 -8.777006 -1.761974 -v 0.818644 -8.777006 -1.761974 -v -0.775337 0.764493 2.107609 -v -1.109136 1.608211 2.157616 -v -1.109136 7.455005 0.432841 -v -1.109136 1.421237 1.150594 -v -1.109136 -7.583717 -5.788713 -v -1.109136 1.152737 1.225781 -v -0.629678 6.747400 -0.181054 -v 0.440888 6.323021 -0.358271 -v 0.629678 6.747400 -0.181054 -v -0.784480 5.973367 0.123958 -v -0.784649 4.758710 3.184810 -v 0.784480 5.973367 0.123958 -v 1.109136 7.447666 2.316916 -v 1.109136 -8.686133 -2.068621 -v 0.804550 1.432484 2.382775 -v 0.775337 0.764493 2.107609 -v -1.109136 0.828570 1.868721 -v -1.109136 -8.686133 -2.068621 -v -1.109136 6.187971 4.078715 -v -0.613250 6.189570 3.985306 -v -1.109136 6.193875 2.563060 -v -1.109136 6.187971 4.078715 -v -0.823423 6.188930 3.832172 -v -0.808240 7.456246 0.114420 -v -1.109136 7.447666 2.316916 -v -1.109136 6.483851 2.313161 -v -0.839998 6.483851 2.313161 -v -0.855295 6.193875 2.563060 -v -0.855096 7.454038 0.681172 -v -0.851242 7.447666 2.316916 -v -0.839998 6.483851 2.313161 -v -0.613250 5.916148 3.869261 -v -0.613250 5.905007 4.230343 -v -0.367306 5.610397 4.110494 -v -0.613250 6.189570 3.985306 -v -0.613250 6.186937 4.344060 -v -0.804550 1.432484 2.382775 -v -0.804550 1.432484 2.382775 -v -0.836434 1.761413 1.534160 -v -0.864811 1.209287 1.297543 -v -0.866598 1.383340 1.228519 -v -1.109136 1.608211 2.157616 -v -1.109136 1.854146 1.546994 -v -0.836434 1.761413 1.534160 -v -1.109136 1.746315 1.309461 -v -0.853872 1.693580 1.365606 -v -1.109136 1.421237 1.150594 -v -0.866598 1.383340 1.228519 -v -1.109136 1.152737 1.225781 -v -0.864811 1.209287 1.297543 -v -1.109136 0.828570 1.868721 -v -0.775337 0.764493 2.107609 -v -0.818644 -8.777006 -1.761974 -v -1.326758 -8.130615 -6.048566 -v -1.332151 -7.578506 -5.806304 -v -0.882817 -7.449294 -6.242331 -v -1.263812 -9.320386 -2.284041 -v -1.260158 -8.694220 -2.041337 -v -0.527911 -9.865828 -0.558223 -v -0.549908 -9.201518 -0.329464 -v -0.855295 6.193875 2.563060 -v -0.637953 7.455005 0.432841 -v -0.610240 6.670014 0.107513 -v -0.586664 6.044359 -0.058251 -v -0.413784 6.208827 -0.016872 -v -0.629678 6.747400 -0.181054 -v -0.645065 7.456246 0.114420 -v -0.610240 6.670014 0.107513 -v -0.784480 5.973367 0.123958 -v -0.637953 7.455005 0.432841 -v -0.413784 6.208827 -0.016872 -v -0.440888 6.323021 -0.358271 -v -0.807799 6.186929 4.345726 -v -0.613250 6.189570 3.985306 -v 0.586664 6.044359 -0.058251 -v 0.889556 -7.991921 -6.487401 -v -0.889556 -7.991921 -6.487401 -v 0.784480 5.973367 0.123958 -v 0.855096 7.454038 0.681172 -v 0.610240 6.670014 0.107513 -v 0.637953 7.455005 0.432841 -v 0.645065 7.456246 0.114420 -v 0.610240 6.670014 0.107513 -v 1.109136 6.187971 4.078715 -v 1.109136 6.193875 2.563060 -v 0.823423 6.188930 3.832172 -v 0.851242 7.447666 2.316916 -v 0.839998 6.483851 2.313161 -v 0.855295 6.193875 2.563060 -v 0.413784 6.208827 -0.016872 -v 0.440888 6.323021 -0.358271 -v 0.413784 6.208827 -0.016872 -v 0.629678 6.747400 -0.181054 -v 0.807799 6.186929 4.345726 -v 0.613250 6.189570 3.985306 -v 0.784649 4.758710 3.184810 -v 0.586664 6.044359 -0.058251 -v 0.613250 6.186937 4.344060 -v 0.613250 6.189570 3.985306 -v 0.823423 6.188930 3.832172 -v 0.808240 7.456246 0.114420 -v 1.109136 7.447666 2.316916 -v 0.851242 7.447666 2.316916 -v 0.839998 6.483851 2.313161 -v 1.109136 6.483851 2.313161 -v 0.855295 6.193875 2.563060 -v -0.330292 5.643600 3.823889 -v 0.367306 5.610397 4.110494 -v 0.613250 5.916148 3.869261 -v 0.330292 5.643600 3.823889 -v 0.613250 5.905007 4.230343 -v 0.613250 6.186937 4.344060 -v 0.807799 6.186929 4.345726 -v 0.804550 1.432484 2.382775 -v 0.804550 1.432484 2.382775 -v 0.775337 0.764493 2.107609 -v 0.864811 1.209287 1.297543 -v 0.866598 1.383340 1.228519 -v 0.853872 1.693580 1.365606 -v 0.836434 1.761413 1.534160 -v 1.109136 1.608211 2.157616 -v 0.804550 1.432484 2.382775 -v 0.836434 1.761413 1.534160 -v 1.109136 1.854146 1.546994 -v 0.853872 1.693580 1.365606 -v 1.109136 1.746315 1.309461 -v 0.866598 1.383340 1.228519 -v 1.109136 1.421237 1.150594 -v 0.864811 1.209287 1.297543 -v 1.109136 1.152737 1.225781 -v 0.775337 0.764493 2.107609 -v 1.109136 0.828570 1.868721 -v 0.775337 0.764493 2.107609 -v 0.818644 -8.777006 -1.761974 -v -0.613250 6.186937 4.344060 -v 1.326758 -8.130615 -6.048566 -v 0.882817 -7.449294 -6.242331 -v 1.332151 -7.578506 -5.806304 -v 1.260158 -8.694220 -2.041337 -v 1.263812 -9.320386 -2.284041 -v 0.549908 -9.201518 -0.329464 -v 0.637953 7.455005 0.432841 -v 0.610240 6.670014 0.107513 -v 0.586664 6.044359 -0.058251 -v -0.586664 6.044359 -0.058251 -v -0.639183 4.693711 3.350439 -v 0.639183 4.693711 3.350439 -v 0.784649 4.758710 3.184810 -v -1.109136 7.447666 2.316916 -v -0.851242 7.447666 2.316916 -v -0.807799 6.186929 4.345726 -v -0.775337 0.764493 2.107609 -v -0.853872 1.693580 1.365606 -v -0.804550 1.432484 2.382775 -v -0.775337 0.764493 2.107609 -v 0.613250 6.189570 3.985306 -v 1.109136 0.828570 1.868721 -v 0.527911 -9.865828 -0.558223 -v 0.645065 7.456246 0.114420 -v -0.645065 7.456246 0.114420 -vt 0.318637 0.836460 -vt 0.322686 0.835525 -vt 0.318469 0.836302 -vt 0.322662 0.829447 -vt 0.322506 0.829146 -vt 0.318606 0.828545 -vt 0.318439 0.828704 -vt 0.322533 0.835828 -vt 0.335540 0.815841 -vt 0.335689 0.816068 -vt 0.335880 0.815923 -vt 0.335363 0.817407 -vt 0.335570 0.817415 -vt 0.335928 0.815727 -vt 0.335827 0.815658 -vt 0.338110 0.834998 -vt 0.338521 0.834581 -vt 0.338361 0.834565 -vt 0.338450 0.830987 -vt 0.338327 0.831013 -vt 0.338045 0.830721 -vt 0.337797 0.829353 -vt 0.336791 0.829355 -vt 0.338509 0.816056 -vt 0.338639 0.815806 -vt 0.338293 0.815922 -vt 0.338229 0.815719 -vt 0.338328 0.815642 -vt 0.336756 0.815704 -vt 0.337372 0.815710 -vt 0.337407 0.815436 -vt 0.338796 0.817419 -vt 0.338027 0.834876 -vt 0.336577 0.834878 -vt 0.336494 0.835000 -vt 0.336242 0.834568 -vt 0.336082 0.834585 -vt 0.336266 0.831016 -vt 0.351326 0.453820 -vt 0.352262 0.453765 -vt 0.352318 0.454386 -vt 0.365837 0.453882 -vt 0.365836 0.454819 -vt 0.367442 0.455473 -vt 0.371353 0.455145 -vt 0.371355 0.453566 -vt 0.370947 0.453178 -vt 0.367444 0.453230 -vt 0.370945 0.455532 -vt 0.336143 0.830990 -vt 0.336546 0.830723 -vt 0.336722 0.815432 -vt 0.339004 0.817387 -vt 0.351343 0.454443 -vt 0.336608 0.810165 -vt 0.336600 0.809579 -vt 0.335671 0.810452 -vt 0.335670 0.810656 -vt 0.337063 0.810641 -vt 0.336849 0.810420 -vt 0.335654 0.809318 -vt 0.336833 0.809316 -vt 0.308406 0.833228 -vt 0.321347 0.832873 -vt 0.308400 0.831858 -vt 0.323003 0.827899 -vt 0.318606 0.827962 -vt 0.322837 0.831313 -vt 0.308428 0.831448 -vt 0.318119 0.828727 -vt 0.317924 0.828577 -vt 0.334726 0.805815 -vt 0.334724 0.806084 -vt 0.334898 0.805815 -vt 0.333853 0.806363 -vt 0.333448 0.810373 -vt 0.334505 0.806366 -vt 0.333637 0.805810 -vt 0.333465 0.805809 -vt 0.333636 0.806080 -vt 0.333393 0.820149 -vt 0.334845 0.820155 -vt 0.333471 0.811014 -vt 0.318642 0.837043 -vt 0.322847 0.833658 -vt 0.318149 0.836281 -vt 0.308437 0.833638 -vt 0.317955 0.836433 -vt 0.321830 0.833071 -vt 0.321344 0.832110 -vt 0.321826 0.831909 -vt 0.338990 0.829527 -vt 0.338986 0.832448 -vt 0.340382 0.829528 -vt 0.323455 0.829763 -vt 0.308753 0.828027 -vt 0.334875 0.810379 -vt 0.334847 0.811020 -vt 0.317906 0.837069 -vt 0.308789 0.837056 -vt 0.323039 0.837070 -vt 0.337112 0.810416 -vt 0.335399 0.818676 -vt 0.335644 0.820232 -vt 0.335864 0.819933 -vt 0.322740 0.833285 -vt 0.335363 0.817407 -vt 0.335368 0.818297 -vt 0.335604 0.818285 -vt 0.335628 0.818648 -vt 0.336965 0.813654 -vt 0.337545 0.812323 -vt 0.336761 0.811981 -vt 0.336450 0.819974 -vt 0.336387 0.820399 -vt 0.336865 0.820333 -vt 0.336109 0.820051 -vt 0.336132 0.820332 -vt 0.318573 0.837406 -vt 0.297273 0.862936 -vt 0.296468 0.862987 -vt 0.296450 0.863484 -vt 0.296375 0.863361 -vt 0.296982 0.862655 -vt 0.296349 0.862774 -vt 0.296468 0.862987 -vt 0.296171 0.863007 -vt 0.296386 0.863086 -vt 0.296139 0.863393 -vt 0.296375 0.863361 -vt 0.296301 0.863656 -vt 0.296450 0.863484 -vt 0.296981 0.863857 -vt 0.297271 0.863612 -vt 0.308818 0.837437 -vt 0.360171 0.453244 -vt 0.360165 0.453779 -vt 0.359601 0.453718 -vt 0.363650 0.453662 -vt 0.363616 0.454257 -vt 0.365371 0.453864 -vt 0.365306 0.454484 -vt 0.336615 0.811674 -vt 0.336865 0.813929 -vt 0.336111 0.813900 -vt 0.335542 0.813822 -vt 0.335664 0.813999 -vt 0.336339 0.815514 -vt 0.335928 0.815727 -vt 0.336384 0.815738 -vt 0.335562 0.813576 -vt 0.335880 0.815923 -vt 0.336756 0.815704 -vt 0.336722 0.815432 -vt 0.335975 0.820462 -vt 0.336109 0.820051 -vt 0.335363 0.814848 -vt 0.358032 0.453178 -vt 0.359611 0.453190 -vt 0.335454 0.806199 -vt 0.336854 0.806081 -vt 0.335993 0.805859 -vt 0.338293 0.815922 -vt 0.338229 0.815719 -vt 0.337754 0.815749 -vt 0.338970 0.820225 -vt 0.339108 0.818663 -vt 0.338736 0.819939 -vt 0.337473 0.807394 -vt 0.336699 0.807758 -vt 0.336562 0.808069 -vt 0.335538 0.814723 -vt 0.337407 0.815436 -vt 0.337372 0.815710 -vt 0.337796 0.815517 -vt 0.338647 0.820469 -vt 0.338501 0.820063 -vt 0.335647 0.809115 -vt 0.335427 0.805954 -vt 0.338482 0.820342 -vt 0.337096 0.809313 -vt 0.337040 0.809089 -vt 0.322734 0.831687 -vt 0.339004 0.817387 -vt 0.338796 0.817419 -vt 0.338866 0.818294 -vt 0.339103 0.818281 -vt 0.338879 0.818655 -vt 0.336917 0.819991 -vt 0.337747 0.820341 -vt 0.338164 0.819987 -vt 0.337700 0.819998 -vt 0.338225 0.820410 -vt 0.338482 0.820342 -vt 0.323089 0.827553 -vt 0.318534 0.827599 -vt 0.299359 0.862966 -vt 0.299357 0.863640 -vt 0.300188 0.863503 -vt 0.300265 0.863381 -vt 0.300257 0.863103 -vt 0.300174 0.863004 -vt 0.299646 0.862698 -vt 0.299359 0.862966 -vt 0.300174 0.863004 -vt 0.300297 0.862779 -vt 0.300257 0.863103 -vt 0.300477 0.863024 -vt 0.300265 0.863381 -vt 0.300502 0.863417 -vt 0.300188 0.863503 -vt 0.300332 0.863678 -vt 0.299357 0.863640 -vt 0.317870 0.827942 -vt 0.317895 0.827574 -vt 0.308779 0.827646 -vt 0.336132 0.820332 -vt 0.357471 0.453223 -vt 0.358034 0.453706 -vt 0.357469 0.453758 -vt 0.354011 0.454184 -vt 0.353986 0.453589 -vt 0.352318 0.454386 -vt 0.336746 0.805809 -vt 0.335925 0.814967 -vt 0.340207 0.829355 -vt 0.339165 0.829353 -vt 0.339115 0.832606 -vt 0.340249 0.832608 -vt 0.340379 0.832450 -vt 0.323476 0.835203 -vt 0.335570 0.817415 -vt 0.323128 0.837416 -vt 0.297271 0.863612 -vt 0.296386 0.863086 -vt 0.297273 0.862936 -vt 0.317935 0.837436 -vt 0.338501 0.820063 -vt 0.299652 0.863857 -vt 0.352262 0.453765 -vt 0.322736 0.831880 -vt 0.322741 0.833092 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0039 -vn -0.0000 0.9588 0.2841 -vn 0.0000 0.9484 0.3172 -vn 0.0000 -0.3256 0.9455 -vn 0.0000 -0.9535 -0.3014 -vn 0.1103 0.4144 -0.9034 -vn -0.0735 0.4256 -0.9019 -vn 0.3275 0.3966 -0.8576 -vn 0.9708 0.1320 -0.2001 -vn 0.7758 0.2586 -0.5755 -vn 0.4477 0.3447 -0.8251 -vn -0.3560 0.3788 -0.8543 -vn -0.5482 0.3301 -0.7685 -vn -0.1944 0.3772 -0.9055 -vn -0.0010 0.3847 -0.9230 -vn 0.1540 0.3797 -0.9122 -vn 0.8357 -0.2111 0.5070 -vn 0.9636 -0.1035 0.2467 -vn 0.9886 0.0575 -0.1389 -vn 0.9535 0.1154 -0.2784 -vn -0.0080 -0.3741 0.9274 -vn 0.0012 -0.3791 0.9254 -vn 0.2219 -0.3696 0.9023 -vn -0.0034 -0.3819 0.9242 -vn -0.1726 -0.3764 0.9102 -vn 0.0022 -0.3819 0.9242 -vn 0.0080 -0.3741 0.9274 -vn -0.2219 -0.3696 0.9023 -vn -0.0011 -0.3791 0.9254 -vn -0.4729 -0.3319 0.8162 -vn 0.3572 -0.3516 0.8653 -vn -0.1539 -0.3721 0.9154 -vn -0.9636 -0.1035 0.2467 -vn -0.9886 0.0575 -0.1389 -vn -0.9535 0.1154 -0.2784 -vn -0.0009 0.3847 -0.9230 -vn 0.0010 0.3847 -0.9230 -vn 0.0009 0.3847 -0.9230 -vn 0.0000 0.9310 0.3650 -vn 0.0000 0.9300 0.3676 -vn 0.0000 0.9302 0.3669 -vn 0.9710 -0.0914 0.2209 -vn 0.2322 -0.3719 0.8988 -vn 0.1539 -0.3734 0.9148 -vn -0.8442 -0.2022 0.4964 -vn -0.9710 -0.0914 0.2209 -vn -0.8357 -0.2111 0.5070 -vn 0.5563 0.3246 -0.7649 -vn 0.0001 0.9608 0.2772 -vn -0.0015 1.0000 0.0040 -vn -0.0014 1.0000 0.0023 -vn -0.5115 0.3297 -0.7935 -vn 0.0000 -0.0039 1.0000 -vn 0.0001 0.4597 0.8881 -vn 0.0000 0.2278 0.9737 -vn -0.0000 0.8351 0.5501 -vn 0.9387 -0.0984 0.3305 -vn 0.9999 0.0117 -0.0023 -vn 0.9998 0.0092 0.0149 -vn 0.9323 0.3580 0.0512 -vn 0.9411 0.3379 0.0104 -vn 0.5309 0.8401 0.1116 -vn -0.9980 -0.0211 0.0598 -vn -0.9970 0.0146 0.0763 -vn -0.9979 -0.0076 0.0647 -vn -0.9959 0.0068 0.0899 -vn -0.2927 -0.8910 -0.3470 -vn -0.3083 -0.9391 0.1520 -vn -0.3077 -0.9451 -0.1103 -vn -0.3087 -0.5872 0.7483 -vn -0.2906 -0.7546 0.5883 -vn -0.3189 0.0702 0.9452 -vn -0.3014 -0.1559 0.9407 -vn -0.2877 0.6969 0.6569 -vn -0.3131 0.5002 0.8073 -vn -0.1491 0.8829 0.4452 -vn -0.2405 0.8515 0.4659 -vn -0.9295 0.1497 -0.3372 -vn -0.9281 0.1420 -0.3443 -vn -0.3883 0.3779 -0.8405 -vn -0.9660 -0.0947 0.2406 -vn -0.9906 -0.0493 0.1279 -vn -0.9257 -0.1502 0.3472 -vn -0.9273 -0.1397 0.3472 -vn 0.9997 0.0240 0.0100 -vn 0.9368 -0.1053 0.3338 -vn 0.8731 -0.0619 0.4836 -vn 0.2534 -0.2345 0.9385 -vn 0.0038 -0.2478 0.9688 -vn 0.9613 0.2751 0.0139 -vn 0.9983 0.0446 -0.0387 -vn 0.8731 -0.0618 0.4836 -vn 0.9557 -0.0568 0.2888 -vn 0.9367 -0.1053 0.3338 -vn 0.9220 0.3843 0.0482 -vn 0.9207 0.3862 0.0561 -vn -0.0011 1.0000 0.0067 -vn -0.0020 1.0000 0.0042 -vn -0.1880 -0.2385 0.9528 -vn 0.2591 0.4017 -0.8784 -vn -0.3925 0.3826 -0.8364 -vn -0.9557 -0.0568 0.2888 -vn -0.9387 -0.0984 0.3305 -vn -0.8731 -0.0618 0.4836 -vn -0.9367 -0.1053 0.3338 -vn -0.9983 0.0446 -0.0387 -vn 0.0015 1.0000 0.0040 -vn -0.0000 0.9608 0.2772 -vn 0.0012 1.0000 0.0025 -vn -0.9999 0.0117 -0.0023 -vn -0.9998 0.0092 0.0149 -vn -0.9997 0.0240 0.0100 -vn -0.0058 -0.2497 0.9683 -vn -0.9207 0.3862 0.0561 -vn -0.9220 0.3843 0.0482 -vn -0.9613 0.2751 0.0139 -vn 0.0011 1.0000 0.0067 -vn 0.0020 1.0000 0.0042 -vn -0.9140 0.1852 -0.3611 -vn -0.0000 1.0000 0.0073 -vn -0.5563 0.3246 -0.7649 -vn -0.7857 0.2615 -0.5606 -vn 0.5115 0.3297 -0.7935 -vn 0.0000 0.4597 0.8881 -vn 0.2491 0.9578 0.1431 -vn -0.4021 0.9083 0.1151 -vn -0.9323 0.3580 0.0512 -vn -0.3771 0.9132 0.1545 -vn -0.9411 0.3379 0.0104 -vn 0.9980 -0.0211 0.0598 -vn 0.9949 -0.0724 0.0701 -vn 0.9979 -0.0076 0.0647 -vn 0.9959 0.0068 0.0899 -vn 0.9944 -0.0057 0.1052 -vn 0.9970 0.0146 0.0763 -vn 0.2927 -0.8910 -0.3470 -vn 0.2692 -0.9013 -0.3393 -vn 0.3091 -0.9446 -0.1104 -vn 0.3083 -0.9391 0.1520 -vn 0.2906 -0.7546 0.5883 -vn 0.3087 -0.5872 0.7483 -vn 0.3014 -0.1559 0.9407 -vn 0.3189 0.0702 0.9452 -vn 0.3131 0.5002 0.8073 -vn 0.2877 0.6969 0.6569 -vn 0.2405 0.8515 0.4659 -vn 0.8442 -0.2022 0.4964 -vn 0.1539 -0.3733 0.9148 -vn 0.9294 0.1498 -0.3372 -vn 0.5126 0.3515 -0.7834 -vn 0.9281 0.1420 -0.3443 -vn 0.9906 -0.0493 0.1279 -vn 0.9660 -0.0947 0.2406 -vn 0.9273 -0.1397 0.3472 -vn -0.9368 -0.1053 0.3338 -vn -0.8731 -0.0619 0.4836 -vn 0.0000 0.9318 0.3630 -vn 0.0000 0.9309 0.3653 -vn -0.0000 0.9303 0.3668 -vn -0.9949 -0.0724 0.0701 -vn -0.9944 -0.0057 0.1052 -vn -0.2692 -0.9013 -0.3393 -vn -0.1539 -0.3720 0.9154 -vn 0.1491 0.8829 0.4452 -vn 0.9257 -0.1502 0.3472 -vn 0.0000 0.3847 -0.9230 -s off -f 1230/1241/381 1231/1242/381 1232/1243/381 -f 1233/1244/382 1234/1245/382 1235/1246/382 -f 1233/1244/382 1235/1246/382 1236/1247/382 -f 1230/1241/381 1237/1248/381 1231/1242/381 -f 1238/1249/383 1239/1250/383 1240/1251/383 -f 1238/1249/383 1241/1252/383 1242/1253/383 -f 1240/1251/383 1243/1254/383 1244/1255/383 -f 1245/1256/384 1246/1257/384 1247/1258/384 -f 1246/1257/384 1248/1259/384 1249/1260/384 -f 1244/1255/383 1238/1249/383 1240/1251/383 -f 1250/1261/384 1251/1262/384 1252/1263/384 -f 1253/1264/383 1254/1265/383 1255/1266/383 -f 1256/1267/383 1255/1266/383 1257/1268/383 -f 1258/1269/385 1259/1270/385 1260/1271/385 -f 1254/1265/383 1253/1264/383 1261/1272/383 -f 1245/1256/384 1262/1273/384 1263/1274/384 -f 1264/1275/384 1263/1274/384 1265/1276/384 -f 1266/1277/384 1265/1276/384 1267/1278/384 -f 1268/1279/386 1269/1280/386 1270/1281/386 -f 1254/1265/383 1257/1268/383 1255/1266/383 -f 1271/1282/387 1272/1283/387 1273/1284/387 -f 1274/1285/387 1275/1286/387 1276/1287/387 -f 1277/1288/387 1273/1284/387 1278/1289/387 -f 1279/1290/384 1267/1278/384 1280/1291/384 -f 1239/1250/383 1238/1249/383 1242/1253/383 -f 1262/1273/384 1245/1256/384 1247/1258/384 -f 1247/1258/384 1246/1257/384 1249/1260/384 -f 1280/1291/384 1250/1261/384 1252/1263/384 -f 1281/1292/385 1258/1269/385 1260/1271/385 -f 1282/1293/383 1254/1265/383 1261/1272/383 -f 1264/1275/384 1245/1256/384 1263/1274/384 -f 1266/1277/384 1264/1275/384 1265/1276/384 -f 1279/1290/384 1266/1277/384 1267/1278/384 -f 1283/1294/386 1268/1279/386 1270/1281/386 -f 1277/1288/387 1271/1282/387 1273/1284/387 -f 1278/1289/387 1274/1285/387 1276/1287/387 -f 1276/1287/387 1277/1288/387 1278/1289/387 -f 1252/1263/384 1279/1290/384 1280/1291/384 -f 1250/1261/384 1249/1260/384 1251/1262/384 -s 1 -f 1284/1295/388 1285/1296/389 1286/1297/390 -f 1286/1297/390 1287/1298/391 1288/1299/392 -f 1286/1297/390 1289/1300/393 1284/1295/388 -f 1285/1296/389 1290/1301/394 1286/1297/390 -f 1285/1296/389 1291/1302/395 1290/1301/394 -f 1292/1303/396 1293/1304/397 1294/1305/398 -f 1295/1306/399 1296/1307/400 1234/1245/382 -f 1297/1308/401 1233/1244/382 1236/1247/382 -f 1298/1309/402 1297/1308/401 1299/1310/382 -f 1299/1310/382 1300/1311/382 1298/1309/402 -f 1301/1312/403 1302/1313/404 1303/1314/405 -f 1304/1315/406 1305/1316/407 1306/1317/408 -f 1307/1318/409 1308/1319/410 1309/1320/411 -f 1310/1321/412 1311/1322/413 1312/1323/414 -f 1230/1241/381 1313/1324/415 1237/1248/381 -f 1232/1243/381 1314/1325/416 1315/1326/381 -f 1315/1326/381 1316/1327/417 1317/1328/381 -f 1292/1303/396 1318/1329/418 1293/1304/397 -f 1293/1304/397 1319/1330/419 1294/1305/398 -f 1294/1305/398 1319/1330/419 1320/1331/420 -f 1321/1332/421 1322/1333/422 1323/1334/423 -f 1297/1308/401 1324/1335/382 1233/1244/382 -f 1296/1307/400 1235/1246/382 1234/1245/382 -f 1297/1308/401 1236/1247/382 1299/1310/382 -f 1300/1311/382 1325/1336/424 1298/1309/402 -f 1302/1313/404 1326/1337/425 1303/1314/405 -f 1302/1313/404 1306/1317/408 1326/1337/425 -f 1305/1316/407 1326/1337/425 1306/1317/408 -f 1304/1315/406 1309/1320/411 1305/1316/407 -f 1308/1319/410 1305/1316/407 1309/1320/411 -f 1311/1322/413 1327/1338/426 1312/1323/414 -f 1328/1339/427 1317/1328/381 1329/1340/428 -f 1231/1242/381 1314/1325/416 1232/1243/381 -f 1313/1324/415 1330/1341/429 1237/1248/381 -f 1314/1325/416 1316/1327/417 1315/1326/381 -f 1316/1327/417 1329/1340/428 1317/1328/381 -f 1288/1299/392 1331/1342/430 1289/1300/393 -f 1332/1343/431 1333/1344/432 1334/1345/433 -f 1335/1346/434 1292/1303/396 1316/1327/417 -f 1336/1347/435 1337/1348/436 1338/1349/437 -f 1337/1348/436 1332/1343/431 1339/1350/438 -f 1340/1351/439 1341/1352/440 1342/1353/441 -f 1343/1354/442 1344/1355/443 1345/1356/444 -f 1343/1354/442 1346/1357/382 1347/1358/382 -f 1330/1341/429 1313/1324/415 1348/1359/407 -f 1349/1360/445 1350/1361/446 1351/1362/447 -f 1352/1363/448 1351/1362/447 1350/1361/446 -f 1353/1364/449 1354/1365/450 1355/1366/451 -f 1354/1365/450 1356/1367/452 1357/1368/453 -f 1356/1367/452 1358/1369/454 1359/1370/455 -f 1358/1369/454 1360/1371/456 1361/1372/457 -f 1360/1371/456 1362/1373/458 1363/1374/459 -f 1328/1339/427 1329/1340/428 1364/1375/412 -f 1365/1376/460 1366/1377/461 1367/1378/462 -f 1365/1376/460 1368/1379/463 1369/1380/464 -f 1368/1379/463 1370/1381/465 1371/1382/466 -f 1287/1298/391 1372/1383/467 1288/1299/392 -f 1373/1384/468 1340/1351/439 1374/1385/469 -f 1374/1385/469 1375/1386/470 1376/1387/471 -f 1377/1388/472 1378/1389/473 1379/1390/474 -f 1340/1351/439 1380/1391/475 1374/1385/469 -f 1378/1389/473 1381/1392/476 1379/1390/474 -f 1380/1391/475 1342/1353/441 1372/1383/467 -f 1382/1393/477 1383/1394/478 1377/1388/472 -f 1333/1344/432 1384/1395/479 1385/1396/480 -f 1380/1391/475 1340/1351/439 1342/1353/441 -f 1339/1350/438 1332/1343/431 1334/1345/433 -f 1287/1298/391 1380/1391/475 1372/1383/467 -f 1374/1385/469 1380/1391/475 1375/1386/470 -f 1375/1386/470 1386/1397/481 1376/1387/471 -f 1379/1390/474 1382/1393/477 1377/1388/472 -f 1387/1398/482 1388/1399/483 1367/1378/462 -f 1389/1400/484 1390/1401/485 1391/1402/486 -f 1392/1403/487 1393/1404/488 1394/1405/486 -f 1395/1406/489 1396/1407/490 1397/1408/491 -f 1398/1409/492 1390/1401/485 1399/1410/493 -f 1399/1410/493 1389/1400/484 1400/1411/494 -f 1376/1387/471 1386/1397/481 1401/1412/495 -f 1402/1413/496 1403/1414/497 1404/1415/498 -f 1405/1416/499 1395/1406/489 1406/1417/500 -f 1390/1401/485 1389/1400/484 1399/1410/493 -f 1389/1400/484 1407/1418/501 1400/1411/494 -f 1389/1400/484 1391/1402/486 1408/1419/481 -f 1403/1414/497 1394/1405/486 1404/1415/498 -f 1395/1406/489 1397/1408/491 1406/1417/500 -f 1405/1416/499 1406/1417/500 1409/1420/502 -f 1291/1302/395 1410/1421/503 1411/1422/504 -f 1334/1345/433 1333/1344/432 1385/1396/480 -f 1412/1423/505 1297/1308/401 1298/1309/402 -f 1413/1424/435 1414/1425/435 1415/1426/437 -f 1416/1427/506 1415/1426/437 1417/1428/438 -f 1418/1429/507 1345/1356/444 1419/1430/508 -f 1420/1431/509 1421/1432/510 1419/1430/508 -f 1420/1431/509 1422/1433/511 1423/1434/381 -f 1295/1306/399 1424/1435/405 1425/1436/425 -f 1426/1437/512 1427/1438/513 1428/1439/514 -f 1429/1440/515 1430/1441/516 1431/1442/517 -f 1432/1443/518 1433/1444/519 1434/1445/520 -f 1435/1446/521 1434/1445/520 1436/1447/522 -f 1437/1448/523 1436/1447/522 1438/1449/524 -f 1439/1450/525 1438/1449/524 1440/1451/526 -f 1441/1452/527 1440/1451/526 1442/1453/528 -f 1443/1454/529 1444/1455/530 1445/1456/413 -f 1385/1396/480 1384/1395/479 1446/1457/502 -f 1447/1458/531 1387/1398/482 1448/1459/532 -f 1447/1458/531 1449/1460/533 1450/1461/534 -f 1451/1462/535 1450/1461/534 1452/1463/536 -f 1400/1411/494 1407/1418/501 1411/1422/504 -f 1390/1401/485 1453/1464/537 1391/1402/486 -f 1386/1397/481 1454/1465/538 1401/1412/495 -f 1393/1404/488 1404/1415/498 1394/1405/486 -f 1396/1407/490 1417/1428/438 1397/1408/491 -f 1249/1260/384 1248/1259/384 1251/1262/384 -f 1312/1323/414 1327/1338/426 1305/1316/407 -f 1455/1466/539 1456/1467/539 1321/1332/421 -f 1457/1468/540 1458/1469/540 1459/1470/541 -f 1322/1333/422 1459/1470/541 1323/1334/423 -f 1411/1422/504 1407/1418/501 1291/1302/395 -f 1300/1311/382 1443/1454/529 1325/1336/424 -f 1327/1338/426 1326/1337/425 1305/1316/407 -f 1231/1242/381 1460/1471/381 1314/1325/416 -f 1407/1418/501 1290/1301/394 1291/1302/395 -f 1289/1300/393 1286/1297/390 1288/1299/392 -f 1314/1325/416 1335/1346/434 1316/1327/417 -f 1461/1472/435 1336/1347/435 1338/1349/437 -f 1338/1349/437 1337/1348/436 1339/1350/438 -f 1418/1429/507 1343/1354/442 1345/1356/444 -f 1344/1355/443 1343/1354/442 1347/1358/382 -f 1462/1473/410 1330/1341/429 1348/1359/407 -f 1463/1474/542 1349/1360/445 1351/1362/447 -f 1464/1475/543 1352/1363/448 1350/1361/446 -f 1465/1476/544 1353/1364/449 1355/1366/451 -f 1355/1366/451 1354/1365/450 1357/1368/453 -f 1357/1368/453 1356/1367/452 1359/1370/455 -f 1359/1370/455 1358/1369/454 1361/1372/457 -f 1361/1372/457 1360/1371/456 1363/1374/459 -f 1466/1477/545 1328/1339/427 1364/1375/412 -f 1388/1399/483 1365/1376/460 1367/1378/462 -f 1366/1377/461 1365/1376/460 1369/1380/464 -f 1369/1380/464 1368/1379/463 1371/1382/466 -f 1448/1459/532 1387/1398/482 1367/1378/462 -f 1294/1305/398 1412/1423/505 1298/1309/402 -f 1416/1427/506 1413/1424/435 1415/1426/437 -f 1396/1407/490 1416/1427/506 1417/1428/438 -f 1421/1432/510 1418/1429/507 1419/1430/508 -f 1422/1433/511 1420/1431/509 1419/1430/508 -f 1467/1478/381 1420/1431/509 1423/1434/381 -f 1296/1307/400 1295/1306/399 1425/1436/425 -f 1431/1442/517 1426/1437/512 1428/1439/514 -f 1428/1439/514 1429/1440/515 1431/1442/517 -f 1435/1446/521 1432/1443/518 1434/1445/520 -f 1437/1448/523 1435/1446/521 1436/1447/522 -f 1439/1450/525 1437/1448/523 1438/1449/524 -f 1441/1452/527 1439/1450/525 1440/1451/526 -f 1468/1479/546 1441/1452/527 1442/1453/528 -f 1325/1336/424 1443/1454/529 1445/1456/413 -f 1449/1460/533 1447/1458/531 1448/1459/532 -f 1451/1462/535 1447/1458/531 1450/1461/534 -f 1469/1480/547 1451/1462/535 1452/1463/536 -f 1323/1334/423 1455/1466/539 1321/1332/421 -f 1322/1333/422 1457/1468/540 1459/1470/541 -f 1294/1305/398 1320/1331/420 1470/1481/548 -f 1294/1305/398 1470/1481/548 1412/1423/505 -f 1292/1303/396 1335/1346/434 1471/1482/548 -f 1292/1303/396 1471/1482/548 1318/1329/418 +f 31/1/3 33/2/4 32/1/3 +f 32/1/3 35/1/5 31/1/3 +f 36/1/5 37/1/6 35/1/5 +f 38/1/6 39/1/7 37/1/6 +f 40/1/7 41/1/8 39/1/7 +f 42/1/8 43/1/9 41/1/8 +f 44/1/9 45/1/10 43/1/9 +f 46/1/10 47/1/11 45/1/10 +f 48/1/11 49/1/12 47/1/11 +f 50/1/12 51/1/13 49/1/12 +f 52/1/13 53/1/14 51/1/13 +f 54/1/14 55/1/15 53/1/14 +f 56/1/15 57/1/16 55/1/15 +f 58/1/16 59/1/17 57/1/16 +f 34/2/4 60/1/17 33/2/4 +f 31/1/3 34/2/4 33/2/4 +f 32/1/3 36/1/5 35/1/5 +f 36/1/5 38/1/6 37/1/6 +f 38/1/6 40/1/7 39/1/7 +f 40/1/7 42/1/8 41/1/8 +f 42/1/8 44/1/9 43/1/9 +f 44/1/9 46/1/10 45/1/10 +f 46/1/10 48/1/11 47/1/11 +f 48/1/11 50/1/12 49/1/12 +f 50/1/12 52/1/13 51/1/13 +f 52/1/13 54/1/14 53/1/14 +f 54/1/14 56/1/15 55/1/15 +f 56/1/15 58/1/16 57/1/16 +f 58/1/16 60/1/17 59/1/17 +f 34/2/4 59/1/17 60/1/17 o lower_pistol_0 -v 1.709833 6.807340 5.318413 -v 1.709833 6.807340 5.149458 -v 1.965886 6.807340 5.149458 -v 1.363295 6.807340 7.165412 -v 1.363295 6.807340 5.318413 -v 1.882584 6.807340 5.848535 +v 1.709833 6.807342 5.318411 +v 1.709833 6.807342 5.149457 +v 1.965886 6.807342 5.149457 +v 1.363295 6.807342 7.165411 +v 1.363295 6.807342 5.318411 +v 1.882584 6.807342 5.848535 v 2.253843 6.902664 -4.747439 v 2.253843 6.534985 -3.056432 v 1.924818 6.534985 -3.056432 @@ -4710,244 +154,244 @@ v 1.924818 6.534985 -3.056432 v 2.253843 6.534985 -3.056432 v 2.253843 6.534985 -3.056432 v 2.253843 6.902664 -4.747439 -v 2.253843 7.162437 -4.697546 +v 2.253843 7.162436 -4.697546 v 1.924818 6.930664 -2.831019 v 1.592578 6.930664 -2.831019 -v 1.592578 7.603653 -2.269642 +v 1.592578 7.603653 -2.269644 v 1.592578 6.534985 -3.056432 v 1.592578 6.902664 -4.747439 v 1.924818 6.125614 -1.931486 v 1.592578 6.902664 -4.747439 -v 1.592578 7.162437 -4.697546 -v 2.253843 7.162437 -4.697546 -v 2.253843 7.603653 -2.269642 -v 2.253843 7.371370 -2.466391 -v 1.924818 7.371370 -2.466391 -v 2.253843 7.371370 -2.466391 -v 2.253843 7.603653 -2.269642 -v 2.253843 6.966193 -1.398447 -v 2.253843 7.603653 -2.269642 -v 1.592578 7.603653 -2.269642 -v 1.592578 6.966193 -1.398447 -v 1.592578 7.162437 -4.697546 +v 1.592578 7.162436 -4.697546 +v 2.253843 7.162436 -4.697546 +v 2.253843 7.603653 -2.269644 +v 2.253843 7.371370 -2.466393 +v 1.924818 7.371370 -2.466393 +v 2.253843 7.371370 -2.466393 +v 2.253843 7.603653 -2.269644 +v 2.253843 6.966193 -1.398448 +v 2.253843 7.603653 -2.269644 +v 1.592578 7.603653 -2.269644 +v 1.592578 6.966193 -1.398448 +v 1.592578 7.162436 -4.697546 v 1.592578 6.902664 -4.747439 v 1.592578 6.534985 -3.056432 v 2.253843 6.930664 -2.831019 -v 2.253843 7.162437 -4.697546 -v 1.592578 7.162437 -4.697546 -v 1.924818 7.371370 -2.466391 +v 2.253843 7.162436 -4.697546 +v 1.592578 7.162436 -4.697546 +v 1.924818 7.371370 -2.466393 v 1.924818 6.726052 -1.549974 v 1.924818 6.125614 -1.931486 -v 2.253843 6.966193 -1.398447 -v 1.592578 6.966193 -1.398447 +v 2.253843 6.966193 -1.398448 +v 1.592578 6.966193 -1.398448 v 1.924818 6.726052 -1.549974 -v 1.709833 7.483092 5.149458 -v 1.709833 6.807340 5.149458 -v 1.709833 7.118922 5.318413 -v 1.363295 7.118922 5.318413 -v 1.363295 6.807340 7.165412 -v 1.363295 7.118922 10.804636 -v 1.363295 6.201983 10.638463 -v 1.363295 6.617640 11.001136 -v 1.363295 7.118922 10.804636 -v 1.882584 7.118922 7.165412 -v 1.363295 7.118922 5.318413 -v 2.249606 7.118922 10.804636 -v 2.249606 7.118922 7.165412 +v 1.709833 7.483092 5.149457 +v 1.709833 6.807342 5.149457 +v 1.709833 7.118924 5.318411 +v 1.363295 7.118924 5.318411 +v 1.363295 6.807342 7.165411 +v 1.363295 7.118924 10.804634 +v 1.363295 6.201985 10.638463 +v 1.363295 6.617642 11.001134 +v 1.363295 7.118924 10.804634 +v 1.882584 7.118924 7.165411 +v 1.363295 7.118924 5.318411 +v 2.249606 7.118924 10.804634 +v 2.249606 7.118924 7.165411 v 1.709833 7.483090 5.848535 v 1.709833 7.483090 5.848535 -v 1.882584 7.118922 5.848535 +v 1.882584 7.118924 5.848535 v 1.965886 7.483090 5.848535 -v 2.249606 7.118922 10.804636 -v 2.249606 6.617640 11.001136 -v 2.249606 6.201983 10.638463 -v 2.249606 7.118922 7.165412 -v 1.363295 6.915576 11.004508 -v 1.363295 6.411723 10.933466 -v 1.709833 7.118922 5.848535 -v 1.709833 7.118922 5.848535 -v 1.882584 6.807340 5.848535 -v 1.965886 6.807340 5.848535 -v 2.249606 6.411723 10.933466 -v 2.249606 6.807340 7.165412 -v 2.249606 6.807340 7.165412 -v 2.249606 6.201983 10.638463 -v 1.363295 6.201983 10.638463 -v 1.363295 6.915576 11.004508 -v 2.249606 6.915576 11.004508 -v 1.363295 6.617640 11.001136 -v 2.249606 6.617640 11.001136 -v 1.363295 6.411723 10.933466 -v 2.249606 6.411723 10.933466 -v 1.882584 6.807340 7.165412 -v 1.709833 7.118922 5.318413 -v 1.363295 6.807340 5.318413 -v 1.363295 7.118922 5.318413 -v 1.709833 7.118922 5.318413 -v 1.709833 6.807340 5.149458 -v 1.709833 7.483092 5.149458 -v 1.965886 7.483092 5.149458 -v 1.965886 7.483092 5.149458 -v 1.709833 7.483092 5.149458 +v 2.249606 7.118924 10.804634 +v 2.249606 6.617642 11.001134 +v 2.249606 6.201985 10.638463 +v 2.249606 7.118924 7.165411 +v 1.363295 6.915578 11.004506 +v 1.363295 6.411725 10.933464 +v 1.709833 7.118924 5.848535 +v 1.709833 7.118924 5.848535 +v 1.882584 6.807342 5.848535 +v 1.965886 6.807342 5.848535 +v 2.249606 6.411725 10.933464 +v 2.249606 6.807342 7.165411 +v 2.249606 6.807342 7.165411 +v 2.249606 6.201985 10.638463 +v 1.363295 6.201985 10.638463 +v 1.363295 6.915578 11.004506 +v 2.249606 6.915578 11.004506 +v 1.363295 6.617642 11.001134 +v 2.249606 6.617642 11.001134 +v 1.363295 6.411725 10.933464 +v 2.249606 6.411725 10.933464 +v 1.882584 6.807342 7.165411 +v 1.709833 7.118924 5.318411 +v 1.363295 6.807342 5.318411 +v 1.363295 7.118924 5.318411 +v 1.709833 7.118924 5.318411 +v 1.709833 6.807342 5.149457 +v 1.709833 7.483092 5.149457 +v 1.965886 7.483092 5.149457 +v 1.965886 7.483092 5.149457 +v 1.709833 7.483092 5.149457 v 1.709833 7.483090 5.848535 -v 1.965886 6.807340 5.149458 -v 1.965886 7.483092 5.149458 +v 1.965886 6.807342 5.149457 +v 1.965886 7.483092 5.149457 v 1.965886 7.483090 5.848535 -v 1.882584 6.807340 5.848535 -v 1.882584 7.118922 5.848535 -v 1.882584 7.118922 7.165412 -v 1.882584 6.807340 7.165412 -v 1.882584 7.118922 7.165412 -v 2.249606 7.118922 7.165412 -v 1.363295 6.807340 5.318413 -v 1.882584 7.118922 5.848535 -v 1.709833 6.807340 5.318413 -v 1.709833 7.118922 5.848535 -v 2.249606 6.915576 11.004508 +v 1.882584 6.807342 5.848535 +v 1.882584 7.118924 5.848535 +v 1.882584 7.118924 7.165411 +v 1.882584 6.807342 7.165411 +v 1.882584 7.118924 7.165411 +v 2.249606 7.118924 7.165411 +v 1.363295 6.807342 5.318411 +v 1.882584 7.118924 5.848535 +v 1.709833 6.807342 5.318411 +v 1.709833 7.118924 5.848535 +v 2.249606 6.915578 11.004506 v 0.741864 8.870750 5.649786 v 0.685393 8.586851 5.649786 -v 0.685393 8.586849 22.443676 +v 0.685393 8.586853 22.443676 v -1.051055 4.245723 5.289183 v -1.051055 4.815591 5.698347 -v -1.582758 4.978194 4.997455 -v -1.051055 0.126897 9.525374 +v -1.582758 4.978196 4.997455 +v -1.051055 0.126899 9.525374 v -1.051055 0.126897 6.278877 v -1.051055 -0.223472 3.408138 -v -1.051055 5.194825 19.361946 -v -1.051055 4.834128 12.349441 -v -1.051055 4.834128 19.361946 -v -1.582758 5.194827 5.282278 -v -1.373788 7.218982 19.361946 -v -1.373788 6.342137 19.361946 -v -0.857694 7.218982 19.361946 -v -1.051055 5.194825 19.361946 -v -0.857694 5.453605 19.361946 -v -1.373788 5.534109 19.361946 -v 0.741864 8.870749 22.443676 -v 0.685393 8.586849 22.443676 -v 0.912610 8.492733 22.443676 -v 0.987802 8.870749 22.443676 -v 0.912610 8.492733 22.443676 +v -1.051055 5.194829 19.361946 +v -1.051055 4.834130 12.349441 +v -1.051055 4.834130 19.361946 +v -1.582758 5.194829 5.282278 +v -1.373788 7.218986 19.361946 +v -1.373788 6.342139 19.361946 +v -0.857694 7.218986 19.361946 +v -1.051055 5.194829 19.361946 +v -0.857694 5.453609 19.361946 +v -1.373788 5.534112 19.361946 +v 0.741864 8.870753 22.443676 +v 0.685393 8.586853 22.443676 +v 0.912610 8.492737 22.443676 +v 0.987802 8.870753 22.443676 +v 0.912610 8.492737 22.443676 v 0.912610 8.492735 5.649786 v 0.987802 8.870750 5.649786 v 0.912610 8.492735 5.649786 v 0.685393 8.586851 5.649786 v 0.524577 8.346173 5.649786 -v 0.524577 8.346171 22.443676 -v 0.524577 8.346171 22.443676 -v 0.698482 8.172267 22.443676 -v 0.698482 8.172267 22.443676 +v 0.524577 8.346175 22.443676 +v 0.524577 8.346175 22.443676 +v 0.698482 8.172271 22.443676 +v 0.698482 8.172271 22.443676 v 0.698482 8.172269 5.649786 v 0.698482 8.172269 5.649786 v 0.524577 8.346173 5.649786 v 0.283899 8.185357 5.649786 -v 0.283899 8.185355 22.443676 -v 0.283899 8.185355 22.443676 -v 0.378015 7.958138 22.443676 -v 0.378015 7.958138 22.443676 +v 0.283899 8.185359 22.443676 +v 0.283899 8.185359 22.443676 +v 0.378015 7.958142 22.443676 +v 0.378015 7.958142 22.443676 v 0.378015 7.958138 5.649786 v 0.378015 7.958138 5.649786 v 0.283899 8.185357 5.649786 v 0.000000 8.128886 5.649786 -v 0.000000 8.128884 22.443676 -v 0.000000 8.128884 22.443676 -v 0.000000 7.882946 22.443676 -v 0.000000 7.882946 22.443676 +v 0.000000 8.128888 22.443676 +v 0.000000 8.128888 22.443676 +v 0.000000 7.882950 22.443676 +v 0.000000 7.882950 22.443676 v 0.000000 7.882946 5.649786 v 0.000000 7.882946 5.649786 v 0.000000 8.128886 5.649786 v 0.000000 8.128886 5.649786 v -0.283899 8.185357 5.649786 -v -0.283899 8.185355 22.443676 -v -0.283899 8.185355 22.443676 -v -0.378015 7.958138 22.443676 -v 0.000000 7.882946 22.443676 -v -0.378015 7.958138 22.443676 +v -0.283899 8.185359 22.443676 +v -0.283899 8.185359 22.443676 +v -0.378015 7.958142 22.443676 +v 0.000000 7.882950 22.443676 +v -0.378015 7.958142 22.443676 v -0.378015 7.958138 5.649786 v -0.378015 7.958138 5.649786 v -0.283899 8.185357 5.649786 v -0.524577 8.346173 5.649786 -v -0.524577 8.346171 22.443676 -v -0.524577 8.346171 22.443676 -v -0.698482 8.172267 22.443676 -v -0.698482 8.172267 22.443676 +v -0.524577 8.346175 22.443676 +v -0.524577 8.346175 22.443676 +v -0.698482 8.172271 22.443676 +v -0.698482 8.172271 22.443676 v -0.698482 8.172269 5.649786 v -0.698482 8.172269 5.649786 v -0.524577 8.346173 5.649786 v -0.685393 8.586851 5.649786 -v -0.685393 8.586849 22.443676 -v -0.685393 8.586849 22.443676 -v -0.912610 8.492733 22.443676 -v -0.912610 8.492733 22.443676 +v -0.685393 8.586853 22.443676 +v -0.685393 8.586853 22.443676 +v -0.912610 8.492737 22.443676 +v -0.912610 8.492737 22.443676 v -0.912610 8.492735 5.649786 v -0.912610 8.492735 5.649786 v -0.685393 8.586851 5.649786 v -0.741864 8.870750 5.649786 -v -0.741864 8.870749 22.443676 -v -0.741864 8.870749 22.443676 -v -0.987802 8.870749 22.443676 -v -0.987802 8.870749 22.443676 +v -0.741864 8.870753 22.443676 +v -0.741864 8.870753 22.443676 +v -0.987802 8.870753 22.443676 +v -0.987802 8.870753 22.443676 v -0.987802 8.870750 5.649786 v -0.987802 8.870750 5.649786 v -0.741864 8.870750 5.649786 v -0.685393 9.154650 5.649786 -v -0.685393 9.154648 22.443676 -v -0.685393 9.154648 22.443676 -v -0.912610 9.248764 22.443676 -v -0.912610 9.248764 22.443676 +v -0.685393 9.154652 22.443676 +v -0.685393 9.154652 22.443676 +v -0.912610 9.248768 22.443676 +v -0.912610 9.248768 22.443676 v -0.912610 9.248766 5.649786 v -0.912610 9.248766 5.649786 v -0.685393 9.154650 5.649786 v -0.524577 9.395328 5.649786 -v -0.524577 9.395326 22.443676 -v -0.524577 9.395326 22.443676 -v -0.698482 9.569230 22.443676 -v -0.698482 9.569230 22.443676 -v -0.698482 9.569232 5.649786 -v -0.698482 9.569232 5.649786 +v -0.524577 9.395329 22.443676 +v -0.524577 9.395329 22.443676 +v -0.698482 9.569234 22.443676 +v -0.698482 9.569234 22.443676 +v -0.698482 9.569232 5.649784 +v -0.698482 9.569232 5.649784 v -0.524577 9.395328 5.649786 -v -0.283899 9.556144 5.649786 -v -0.283899 9.556142 22.443676 -v -0.283899 9.556142 22.443676 -v -0.378015 9.783358 22.443676 -v -0.378015 9.783358 22.443676 -v -0.378015 9.783360 5.649786 -v -0.378015 9.783360 5.649786 -v -0.283899 9.556144 5.649786 -v 0.000000 9.612615 5.649786 -v 0.000000 9.612613 22.443676 -v 0.000000 9.612613 22.443676 -v 0.000000 9.858550 22.443676 -v 0.000000 9.858550 22.443676 -v 0.000000 9.858552 5.649786 -v 0.000000 9.858552 5.649786 -v 0.000000 9.612615 5.649786 -v 0.283899 9.556144 5.649786 -v 0.283899 9.556142 22.443676 -v 0.283899 9.556142 22.443676 -v 0.378015 9.783358 22.443676 -v 0.378015 9.783358 22.443676 -v 0.378015 9.783360 5.649786 -v 0.378015 9.783360 5.649786 -v 0.283899 9.556144 5.649786 +v -0.283899 9.556144 5.649784 +v -0.283899 9.556146 22.443676 +v -0.283899 9.556146 22.443676 +v -0.378015 9.783361 22.443676 +v -0.378015 9.783361 22.443676 +v -0.378015 9.783360 5.649784 +v -0.378015 9.783360 5.649784 +v -0.283899 9.556144 5.649784 +v 0.000000 9.612615 5.649784 +v 0.000000 9.612617 22.443676 +v 0.000000 9.612617 22.443676 +v 0.000000 9.858554 22.443676 +v 0.000000 9.858554 22.443676 +v 0.000000 9.858552 5.649784 +v 0.000000 9.858552 5.649784 +v 0.000000 9.612615 5.649784 +v 0.283899 9.556144 5.649784 +v 0.283899 9.556146 22.443676 +v 0.283899 9.556146 22.443676 +v 0.378015 9.783361 22.443676 +v 0.378015 9.783361 22.443676 +v 0.378015 9.783360 5.649784 +v 0.378015 9.783360 5.649784 +v 0.283899 9.556144 5.649784 v 0.524577 9.395328 5.649786 -v 0.524577 9.395326 22.443676 -v 0.524577 9.395326 22.443676 -v 0.698482 9.569230 22.443676 -v 0.698482 9.569230 22.443676 -v 0.698482 9.569232 5.649786 -v 0.698482 9.569232 5.649786 +v 0.524577 9.395329 22.443676 +v 0.524577 9.395329 22.443676 +v 0.698482 9.569234 22.443676 +v 0.698482 9.569234 22.443676 +v 0.698482 9.569232 5.649784 +v 0.698482 9.569232 5.649784 v 0.524577 9.395328 5.649786 v 0.685393 9.154650 5.649786 -v 0.685393 9.154648 22.443676 -v 0.685393 9.154648 22.443676 -v 0.912610 9.248764 22.443676 -v 0.912610 9.248764 22.443676 +v 0.685393 9.154652 22.443676 +v 0.685393 9.154652 22.443676 +v 0.912610 9.248768 22.443676 +v 0.912610 9.248768 22.443676 v 0.912610 9.248766 5.649786 v 0.912610 9.248766 5.649786 v 0.685393 9.154650 5.649786 -v 0.741864 8.870749 22.443676 -v 0.987802 8.870749 22.443676 +v 0.741864 8.870753 22.443676 +v 0.987802 8.870753 22.443676 v 0.987802 8.870750 5.649786 v 0.741864 8.870750 5.649786 v 1.133210 1.741260 4.213062 @@ -5040,33 +484,33 @@ v 1.133210 1.741260 4.213062 v -2.120367 6.032114 -1.127586 v -2.168285 6.052625 -0.925915 v -2.124553 6.332816 -1.081475 -v -1.803483 -8.183756 -0.940654 -v -1.550631 -8.207280 -0.940181 +v -1.803483 -8.183756 -0.940652 +v -1.550631 -8.207280 -0.940179 v -1.803497 2.273637 3.302741 v -2.107996 4.322828 -0.236828 v -2.163024 4.259209 -0.066218 v -2.116467 4.647215 -0.174769 v -2.168202 1.521683 2.220641 -v -2.172835 -7.439816 -1.372818 +v -2.172835 -7.439816 -1.372816 v -2.137654 1.534970 2.385706 v -1.849792 2.296251 3.228978 v -1.880736 2.578792 3.289423 v -1.879857 2.017154 3.056580 -v -1.803508 -5.875544 -4.913877 -v -1.803499 -6.096515 -4.976789 -v -2.130997 -6.177512 -4.485744 -v -1.550631 -5.813593 -4.933243 -v -1.550631 -6.027862 -4.968081 +v -1.803508 -5.875546 -4.913877 +v -1.803499 -6.096517 -4.976789 +v -2.130997 -6.177514 -4.485744 +v -1.550631 -5.813593 -4.933241 +v -1.550631 -6.027864 -4.968081 v -1.839455 4.411472 -0.653382 -v -2.137789 6.702975 -0.434405 -v -1.803504 7.006510 -0.872316 -v -1.803507 7.133335 -0.533682 -v -1.550631 7.026423 -0.881127 -v -1.803483 6.443164 -1.419198 -v -2.176839 -6.680809 -4.296602 -v -2.176541 -6.266698 -4.325728 -v -2.177566 -6.820210 -4.161257 -v -2.121354 -6.703000 -4.498363 +v -2.137789 6.702975 -0.434407 +v -1.803504 7.006510 -0.872318 +v -1.803507 7.133335 -0.533684 +v -1.550631 7.026423 -0.881129 +v -1.803483 6.443164 -1.419199 +v -2.176839 -6.680809 -4.296600 +v -2.176541 -6.266698 -4.325727 +v -2.177566 -6.820210 -4.161255 +v -2.121354 -6.703001 -4.498363 v -2.173862 1.655341 1.737604 v -1.978566 2.889965 3.247607 v -1.933436 2.830892 2.688685 @@ -5091,24 +535,24 @@ v -1.883795 2.419949 2.091068 v -2.169390 2.475281 1.132310 v -2.174314 6.129676 4.109241 v -2.176527 6.514084 3.866836 -v -2.108078 6.117068 4.317321 +v -2.108078 6.117068 4.317319 v -2.174668 5.841984 -0.795250 v -2.179727 5.017104 -0.002164 v -2.141465 5.765682 -0.955082 v -2.145445 -6.930309 -4.281384 -v -2.119612 -7.822574 -1.480976 -v -2.176766 -7.604493 -1.548246 +v -2.119612 -7.822574 -1.480974 +v -2.176766 -7.604493 -1.548244 v -2.174624 4.663060 0.053574 v -2.163947 6.294227 -0.887580 -v -2.176857 6.557230 -0.328893 +v -2.176857 6.557230 -0.328894 v -1.803505 6.986403 4.265716 -v -2.129669 6.678270 3.948849 +v -2.129669 6.678270 3.948848 v -1.550631 7.011675 4.277203 -v -1.803498 6.146345 4.785964 -v -1.550631 5.888644 4.797830 -v -1.550631 6.141139 4.807182 -v -1.803494 -8.338592 -1.148253 -v -2.121051 -7.647707 -1.285315 +v -1.803498 6.146347 4.785964 +v -1.550631 5.888646 4.797830 +v -1.550631 6.141140 4.807180 +v -1.803494 -8.338592 -1.148251 +v -2.121051 -7.647707 -1.285313 v -1.284940 0.829702 3.740532 v -1.284940 1.075818 2.934655 v -1.284940 0.583586 2.934655 @@ -5212,10 +656,10 @@ v 1.979996 6.727209 -1.926155 v 1.979996 6.787141 -2.070845 v 1.979996 6.727209 -1.926155 v 1.979996 6.582519 -2.070845 -v -1.702916 6.582519 -1.866222 -v -1.702916 6.582519 -1.866222 -v 1.979996 6.582519 -1.866222 -v 1.979996 6.582519 -1.866222 +v -1.702916 6.582519 -1.866223 +v -1.702916 6.582519 -1.866223 +v 1.979996 6.582519 -1.866223 +v 1.979996 6.582519 -1.866223 v -1.702916 6.437829 -1.926155 v -1.702916 6.437829 -1.926155 v 1.979996 6.437829 -1.926155 @@ -5229,103 +673,103 @@ v -1.702916 6.437829 -2.215535 v -1.702916 6.437829 -2.215535 v 1.979996 6.437829 -2.215535 v 1.979996 6.437829 -2.215535 -v -1.702916 6.582519 -2.275468 -v -1.702916 6.582519 -2.275468 -v 1.979996 6.582519 -2.275468 -v -1.425465 5.714319 12.324278 -v -1.425465 5.534111 12.470450 -v -1.425465 6.342137 12.470450 -v 1.979996 6.582519 -2.275468 +v -1.702916 6.582519 -2.275470 +v -1.702916 6.582519 -2.275470 +v 1.979996 6.582519 -2.275470 +v -1.425465 5.714321 12.324278 +v -1.425465 5.534113 12.470450 +v -1.425465 6.342139 12.470448 +v 1.979996 6.582519 -2.275470 v -1.702916 6.727209 -2.215535 -v -1.373788 5.534109 19.361946 +v -1.373788 5.534112 19.361946 v -1.702916 6.727209 -2.215535 v 1.979996 6.727209 -2.215535 v 1.979996 6.727209 -2.215535 -v -1.425465 5.714319 12.324278 -v -1.425465 6.129148 12.324278 -v -1.582758 6.173631 12.234967 -v -1.425465 5.534111 12.470450 -v -1.582758 5.657321 12.234967 +v -1.425465 5.714321 12.324278 +v -1.425465 6.129150 12.324278 +v -1.582758 6.173633 12.234967 +v -1.425465 5.534113 12.470450 +v -1.582758 5.657323 12.234967 v 1.979996 6.787141 -2.070845 -v 0.000000 6.215098 -5.421183 +v 0.000000 6.215096 -5.421185 v -1.582758 6.749187 -4.912819 v 1.582758 6.749187 -4.912819 v 1.488590 5.921740 -5.685918 -v 0.000000 6.031167 -5.736894 -v -1.582758 5.957942 -5.266877 +v 0.000000 6.031167 -5.736896 +v -1.582758 5.957942 -5.266879 v -1.582758 5.870734 -4.399592 v -1.582758 6.749187 -4.912819 -v 1.582758 5.957942 -5.266877 -v 1.582758 6.154639 -5.365934 +v 1.582758 5.957942 -5.266879 +v 1.582758 6.154637 -5.365934 v 1.582758 6.749187 -4.912819 -v 1.582758 5.848901 -5.238699 +v 1.582758 5.848899 -5.238699 v 1.582758 5.870734 -4.399592 v 0.983988 5.324528 -5.327059 -v -1.425465 6.342137 12.470450 -v -1.582758 6.342137 12.374792 -v -1.582758 5.848901 -5.238699 +v -1.425465 6.342139 12.470448 +v -1.582758 6.342139 12.374790 +v -1.582758 5.848899 -5.238699 v -1.484238 5.789523 -5.649559 v -0.983988 5.324528 -5.327059 v 1.488590 5.921740 -5.685918 -v -1.425465 6.342137 12.470450 -v -1.373788 6.342137 19.361946 -v -1.582758 6.342137 18.331852 -v -1.051055 0.805342 10.660654 -v -1.051055 0.446518 11.231197 -v -1.051055 3.374604 10.660654 -v -1.051055 -0.223474 11.574593 -v -1.051055 0.200441 10.158533 -v -0.836559 7.218984 0.486124 -v -1.148529 7.218984 0.843372 -v -1.148529 -7.632973 -5.164886 +v -1.425465 6.342139 12.470448 +v -1.373788 6.342139 19.361946 +v -1.582758 6.342139 18.331852 +v -1.051055 0.805344 10.660654 +v -1.051055 0.446520 11.231197 +v -1.051055 3.374606 10.660654 +v -1.051055 -0.223472 11.574593 +v -1.051055 0.200443 10.158533 +v -0.836559 7.218984 0.486122 +v -1.148529 7.218984 0.843370 +v -1.148529 -7.632975 -5.164886 v -1.092400 5.576506 -6.393807 -v -1.582758 6.342137 18.331852 -v -1.582758 7.218982 18.331852 -v -1.582758 6.342137 12.374792 -v -1.051055 5.194827 6.202400 -v -1.051055 5.194825 19.361946 -v -1.582758 5.194825 18.331852 -v -1.373788 5.194825 19.361946 +v -1.582758 6.342139 18.331852 +v -1.582758 7.218986 18.331852 +v -1.582758 6.342139 12.374790 +v -1.051055 5.194829 6.202400 +v -1.051055 5.194829 19.361946 +v -1.582758 5.194829 18.331852 +v -1.373788 5.194829 19.361946 v -0.580398 3.816195 5.489355 -v -0.580398 5.143752 5.307025 -v -0.580398 4.250057 5.891657 -v -1.148529 7.218984 4.965837 -v -1.148529 -8.749960 -1.489985 -v -0.580398 4.410827 6.286258 -v -0.580398 4.410827 8.504850 -v -1.051055 4.410827 9.595867 +v -0.580398 5.143754 5.307024 +v -0.580398 4.250059 5.891655 +v -1.148529 7.218986 4.965837 +v -1.148529 -8.749960 -1.489983 +v -0.580398 4.410829 6.286258 +v -0.580398 4.410829 8.504850 +v -1.051055 4.410829 9.595867 v -1.582758 7.218984 -4.804955 -v -0.843982 7.218984 5.409400 -v -1.148529 7.218984 4.965837 -v -0.957142 7.218984 5.409400 -v -1.582758 7.218984 5.409400 -v -1.582758 7.218984 5.409400 -v -1.582758 7.218982 18.331852 -v -0.857694 7.218984 12.938878 -v -1.213076 8.145895 -1.953275 -v -0.692288 8.145895 -1.953275 -v -0.427195 9.430100 -1.953275 -v -0.708688 7.624437 -1.953275 -v -0.397424 7.218984 -1.953275 -v -1.213076 7.624437 -1.953275 -v -1.213076 7.218984 -1.953275 -v -1.213076 7.218984 -1.953275 -v -0.836559 7.218984 0.486124 -v -0.397424 7.218984 -1.953275 -v -0.843982 7.218984 5.409400 -v -0.957142 7.218984 5.409400 +v -0.843982 7.218986 5.409400 +v -1.148529 7.218986 4.965837 +v -0.957142 7.218986 5.409400 +v -1.582758 7.218986 5.409400 +v -1.582758 7.218986 5.409400 +v -1.582758 7.218986 18.331852 +v -0.857694 7.218986 12.938876 +v -1.213076 8.145895 -1.953277 +v -0.692288 8.145895 -1.953277 +v -0.427195 9.430100 -1.953277 +v -0.708688 7.624437 -1.953277 +v -0.397424 7.218984 -1.953277 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.218984 -1.953277 +v -1.213076 7.218984 -1.953277 +v -0.836559 7.218984 0.486122 +v -0.397424 7.218984 -1.953277 +v -0.843982 7.218986 5.409400 +v -0.957142 7.218986 5.409400 v -0.957142 7.863286 5.710876 v -1.488590 5.921740 -5.685918 -v -1.582758 6.154639 -5.365934 -v -1.582758 5.957942 -5.266877 +v -1.582758 6.154637 -5.365934 +v -1.582758 5.957942 -5.266879 v -1.488590 5.921740 -5.685918 -v 1.582758 5.957942 -5.266877 +v 1.582758 5.957942 -5.266879 v 1.484238 5.789523 -5.649559 v -1.051055 0.730363 5.438924 v -1.052369 1.419883 5.161799 v -1.051770 1.087353 3.958939 v -1.052369 2.312512 5.048415 -v -1.052369 3.020580 5.130578 +v -1.052369 3.020581 5.130578 v -1.051055 4.245723 5.289183 v -1.582758 0.545047 3.068055 v -1.582758 -0.142682 2.781362 @@ -5341,95 +785,95 @@ v -1.582758 2.997752 -1.677936 v -1.582758 0.676579 2.788985 v -1.582758 0.955821 2.788985 v -1.582758 1.087353 2.951361 -v -1.582758 7.218984 0.532610 -v -0.443586 5.533404 -6.767138 +v -1.582758 7.218984 0.532608 +v -0.443586 5.533402 -6.767138 v -0.528251 5.631948 -6.753191 -v 0.000000 5.631948 -6.801856 -v 1.239158 -6.459403 -6.210184 -v 1.239158 -6.716357 -6.316617 -v 1.239158 -5.908380 -6.182570 -v -1.239158 -6.459403 -6.210184 -v -1.239158 -6.352968 -5.953228 -v -1.239158 -5.908380 -6.182570 +v 0.000000 5.631948 -6.801857 +v 1.239158 -6.459404 -6.210184 +v 1.239158 -6.716359 -6.316617 +v 1.239158 -5.908381 -6.182570 +v -1.239158 -6.459404 -6.210184 +v -1.239158 -6.352970 -5.953228 +v -1.239158 -5.908381 -6.182570 v 1.239158 -7.503078 -5.592237 -v 1.239158 -6.973310 -5.696272 -v 1.239158 -6.751891 -5.355608 -v 1.239158 -7.188473 -6.627295 +v 1.239158 -6.973310 -5.696270 +v 1.239158 -6.751893 -5.355608 +v 1.239158 -7.188475 -6.627295 v 1.239158 -7.079744 -5.953228 -v 1.239158 -6.352968 -5.953228 -v 1.239158 -6.111135 -5.821549 -v 1.239158 -6.459403 -5.696272 -v 1.239158 -6.353005 -5.417203 -v 1.239158 -6.716357 -5.589839 +v 1.239158 -6.352970 -5.953228 +v 1.239158 -6.111135 -5.821548 +v 1.239158 -6.459404 -5.696270 +v 1.239158 -6.353005 -5.417202 +v 1.239158 -6.716359 -5.589839 v -1.239158 -7.503078 -5.592237 v -1.239158 -7.079744 -5.953228 -v -1.239158 -7.188473 -6.627295 -v -1.239158 -6.716357 -5.589839 -v -1.239158 -6.973310 -5.696272 -v -1.239158 -6.751891 -5.355608 -v -1.239158 -6.459403 -5.696272 -v -1.239158 -6.353005 -5.417203 -v -1.239158 -6.111135 -5.821549 -v -1.239158 -6.716357 -6.316617 +v -1.239158 -7.188475 -6.627295 +v -1.239158 -6.716359 -5.589839 +v -1.239158 -6.973310 -5.696270 +v -1.239158 -6.751893 -5.355608 +v -1.239158 -6.459404 -5.696270 +v -1.239158 -6.353005 -5.417202 +v -1.239158 -6.111135 -5.821548 +v -1.239158 -6.716359 -6.316617 v 1.239158 -6.973310 -6.210184 v -1.239158 -6.973310 -6.210184 -v -1.148529 7.218984 0.843372 -v -1.582758 -8.611731 0.338328 -v -1.582758 -7.606416 0.140500 -v -1.539709 -9.237019 0.112444 +v -1.148529 7.218984 0.843370 +v -1.582758 -8.611731 0.338330 +v -1.582758 -7.606416 0.140502 +v -1.539709 -9.237019 0.112446 v -1.582758 -6.783546 -5.235445 v -1.582758 -7.547009 -5.447709 -v -1.582758 -6.272798 -5.294007 -v -1.582758 -6.767919 0.122678 +v -1.582758 -6.272799 -5.294005 +v -1.582758 -6.767919 0.122680 v -1.582758 -5.973763 -5.781600 -v -1.582758 -3.887019 -5.026797 +v -1.582758 -3.887019 -5.026795 v 0.000000 5.385467 -6.635780 -v 0.000000 5.533404 -6.815803 -v -0.957142 7.218984 7.609767 +v 0.000000 5.533402 -6.815804 +v -0.957142 7.218986 7.609766 v -1.582758 7.218984 -4.804955 v -1.213076 7.218984 -4.804955 v -1.582758 4.316335 -1.880566 v -1.582758 5.060399 -2.393605 -v -1.213076 9.430100 -1.953275 +v -1.213076 9.430100 -1.953277 v -1.213076 9.430100 -4.335176 v -1.213076 8.145895 -4.804955 v -1.582758 5.060399 -2.393605 -v -1.582758 5.705916 -3.303000 +v -1.582758 5.705914 -3.303000 v -0.974568 4.768444 -3.230170 -v -1.113677 5.685023 -6.433600 +v -1.113677 5.685021 -6.433600 v -1.488590 5.921740 -5.685918 -v -1.582758 5.705916 -3.303000 +v -1.582758 5.705914 -3.303000 v -1.582758 7.218984 -4.804955 v -1.213076 7.218984 -4.804955 -v -0.703050 7.624437 -4.804955 +v -0.703050 7.624435 -4.804955 v -0.702042 8.145895 -4.804955 v -0.419459 8.845671 -4.804955 -v -1.239158 -7.188473 -6.627295 -v -1.239158 -5.908380 -6.182570 -v -0.974568 -7.096977 -6.928317 -v -1.239158 -5.908380 -6.182570 -v -1.239158 -6.111135 -5.821549 +v -1.239158 -7.188475 -6.627295 +v -1.239158 -5.908381 -6.182570 +v -0.974568 -7.096979 -6.928317 +v -1.239158 -5.908381 -6.182570 +v -1.239158 -6.111135 -5.821548 v -1.582758 -5.973763 -5.781600 v -1.582758 -7.547009 -5.447709 v -1.582758 -6.783546 -5.235445 -v -1.239158 -6.751891 -5.355608 -v -1.582758 -6.272798 -5.294007 +v -1.239158 -6.751893 -5.355608 +v -1.582758 -6.272799 -5.294005 v 2.119590 3.136953 3.088691 -v 2.108078 6.117068 4.317321 -v 1.803502 5.931036 4.779144 +v 2.108078 6.117068 4.317319 +v 1.803502 5.931036 4.779142 v 1.880736 2.578792 3.289423 v 1.978566 2.889965 3.247607 v 1.803497 2.273637 3.302741 v 1.962750 1.737307 2.831918 v 1.879857 2.017154 3.056580 -v 1.803483 -8.183756 -0.940654 +v 1.803483 -8.183756 -0.940652 v 2.068853 1.609260 2.541311 v 2.137654 1.534970 2.385706 -v 1.803499 -6.096515 -4.976789 -v 2.130997 -6.177512 -4.485744 -v 2.121354 -6.703000 -4.498363 -v 1.550631 -7.022314 -4.915743 -v 1.550631 -6.027862 -4.968081 +v 1.803499 -6.096517 -4.976789 +v 2.130997 -6.177514 -4.485744 +v 2.121354 -6.703001 -4.498363 +v 1.550631 -7.022316 -4.915741 +v 1.550631 -6.027864 -4.968081 v 2.116467 4.647215 -0.174769 v 2.107996 4.322828 -0.236828 v 1.839455 4.411472 -0.653382 @@ -5441,138 +885,138 @@ v 2.120367 6.032114 -1.127586 v 1.803477 5.747915 -1.279529 v 2.124553 6.332816 -1.081475 v 1.803468 6.136785 -1.467315 -v 1.803507 7.133335 -0.533682 -v 1.803500 7.103070 4.086896 -v 2.129669 6.678270 3.948849 +v 1.803507 7.133335 -0.533684 +v 1.803500 7.103070 4.086895 +v 2.129669 6.678270 3.948848 v 1.550631 4.920799 -0.676702 v 1.550631 5.750243 -1.260870 -v 1.550631 6.117420 -1.448276 -v 1.550631 6.431123 -1.427430 -v 1.803483 6.443164 -1.419198 +v 1.550631 6.117420 -1.448277 +v 1.550631 6.431123 -1.427431 +v 1.803483 6.443164 -1.419199 v 1.550631 4.711940 -0.618973 v 1.839455 4.411472 -0.653382 v 2.179727 5.017104 -0.002164 v 2.174624 4.663060 0.053574 -v 2.119612 -7.822574 -1.480976 -v 2.176766 -7.604493 -1.548246 -v 2.121051 -7.647707 -1.285315 +v 2.119612 -7.822574 -1.480974 +v 2.176766 -7.604493 -1.548244 +v 2.121051 -7.647707 -1.285313 v 1.803505 -7.014567 -4.882656 -v 2.137789 6.702975 -0.434405 +v 2.137789 6.702975 -0.434407 v 1.550631 4.418573 -0.651555 -v 1.550631 5.888644 4.797830 -v 1.550631 -8.207280 -0.940181 +v 1.550631 5.888646 4.797830 +v 1.550631 -8.207280 -0.940179 v 2.163024 4.259209 -0.066218 -v 2.172835 -7.439816 -1.372818 -v 1.803508 -5.875544 -4.913877 -v 1.803504 7.006510 -0.872316 -v 1.550631 7.026423 -0.881127 -v 2.176857 6.557230 -0.328893 +v 2.172835 -7.439816 -1.372816 +v 1.803508 -5.875546 -4.913877 +v 1.803504 7.006510 -0.872318 +v 1.550631 7.026423 -0.881129 +v 2.176857 6.557230 -0.328894 v 2.163947 6.294227 -0.887580 v 2.176527 6.514084 3.866836 v 2.168285 6.052625 -0.925915 -v -0.823032 5.400963 -6.289593 -v -1.373788 7.218982 19.361946 -v -0.857694 7.218982 19.361946 +v -0.823032 5.400961 -6.289595 +v -1.373788 7.218986 19.361946 +v -0.857694 7.218986 19.361946 v 1.092400 5.576506 -6.393807 -v 0.443586 5.533404 -6.767138 -v 0.823032 5.400963 -6.289593 +v 0.443586 5.533402 -6.767138 +v 0.823032 5.400961 -6.289595 v 0.403942 7.218984 -4.804955 v 1.213076 7.218984 -4.804955 -v 0.974568 5.132455 -4.066989 +v 0.974568 5.132453 -4.066989 v 1.213076 8.145895 -4.804955 v 1.213076 8.845671 -4.804955 v 1.213076 9.430100 -4.335176 -v 0.703050 7.624437 -4.804955 -v 0.708688 7.624437 -1.953275 -v 1.213076 7.624437 -1.953275 -v 1.213076 7.624437 -1.953275 -v 1.213076 7.218984 -1.953275 +v 0.703050 7.624435 -4.804955 +v 0.708688 7.624437 -1.953277 +v 1.213076 7.624437 -1.953277 +v 1.213076 7.624437 -1.953277 +v 1.213076 7.218984 -1.953277 v 1.213076 7.218984 -4.804955 -v 0.703050 7.624437 -4.804955 +v 0.703050 7.624435 -4.804955 v 0.702042 8.145895 -4.804955 -v 0.692288 8.145895 -1.953275 -v 0.692288 8.145895 -1.953275 +v 0.692288 8.145895 -1.953277 +v 0.692288 8.145895 -1.953277 v 0.702042 8.145895 -4.804955 v 1.213076 8.145895 -4.804955 v 1.213076 9.430100 -4.335176 v 0.450662 9.430100 -4.335176 -v 0.427195 9.430100 -1.953275 +v 0.427195 9.430100 -1.953277 v 1.582758 7.218984 -4.804955 v 0.528251 5.631948 -6.753191 -v 0.000000 5.631948 -6.801856 -v 1.113677 5.685023 -6.433600 -v 1.582758 6.154639 -5.365934 +v 0.000000 5.631948 -6.801857 +v 1.113677 5.685021 -6.433600 +v 1.582758 6.154637 -5.365934 v -0.403942 7.218984 -4.804955 -v 1.213076 7.218984 -1.953275 +v 1.213076 7.218984 -1.953277 v 1.582758 7.218984 -4.804955 v 1.213076 7.218984 -4.804955 -v 0.703050 7.624437 -4.804955 +v 0.703050 7.624435 -4.804955 v 0.419459 8.845671 -4.804955 -v 1.213076 7.624437 -4.804955 +v 1.213076 7.624435 -4.804955 v 1.213076 8.845671 -4.804955 v 1.213076 8.145895 -4.804955 v 0.702042 8.145895 -4.804955 v 0.450662 9.430100 -4.335176 v 1.213076 9.430100 -4.335176 -v 0.836559 7.218984 0.486124 -v 0.397424 7.218984 -1.953275 -v -1.582758 6.154639 -5.365934 +v 0.836559 7.218984 0.486122 +v 0.397424 7.218984 -1.953277 +v -1.582758 6.154637 -5.365934 v 1.582758 2.997752 -1.677936 v 1.582758 4.606297 4.761065 v 1.582758 5.060399 -2.393605 -v 1.582758 5.705916 -3.303000 -v 1.582758 7.218984 0.532610 -v 1.582758 4.978194 4.997455 -v 1.582758 7.218984 5.409400 -v 1.582758 6.173631 12.234967 -v 1.582758 5.194827 5.282278 -v 1.582758 5.194825 18.331852 -v 1.582758 5.534111 12.374792 +v 1.582758 5.705914 -3.303000 +v 1.582758 7.218984 0.532608 +v 1.582758 4.978196 4.997455 +v 1.582758 7.218986 5.409400 +v 1.582758 6.173633 12.234967 +v 1.582758 5.194829 5.282278 +v 1.582758 5.194829 18.331852 +v 1.582758 5.534113 12.374792 v 1.582758 4.316335 -1.880566 v 1.582758 7.218984 -4.804955 -v 1.582758 6.342137 12.374792 -v 1.582758 5.657321 12.234967 -v 1.582758 7.218982 18.331852 -v 1.582758 7.218984 5.409400 -v 0.857694 7.218984 12.938878 -v 1.148529 7.218984 4.965837 -v 0.957142 7.218984 5.409400 -v 0.857694 7.218982 19.361946 -v 1.373788 7.218982 19.361946 -v 0.957142 7.218984 7.609767 -v 1.148529 7.218984 0.843372 -v 0.957142 7.218984 6.277361 -v 0.857694 5.453763 12.938878 -v 0.580191 5.127946 12.938878 -v 0.580398 5.127510 19.361946 -v 0.857694 7.218984 12.938878 -v 0.857694 5.453605 19.361946 -v -1.803494 -8.338592 -1.148253 -v -1.803496 -7.249153 -4.729249 -v -1.550631 -7.254866 -4.756801 -v -1.550631 -8.362582 -1.129572 +v 1.582758 6.342139 12.374790 +v 1.582758 5.657323 12.234967 +v 1.582758 7.218986 18.331852 +v 1.582758 7.218986 5.409400 +v 0.857694 7.218986 12.938876 +v 1.148529 7.218986 4.965837 +v 0.957142 7.218986 5.409400 +v 0.857694 7.218986 19.361946 +v 1.373788 7.218986 19.361946 +v 0.957142 7.218986 7.609766 +v 1.148529 7.218984 0.843370 +v 0.957142 7.218986 6.277359 +v 0.857694 5.453765 12.938878 +v 0.580191 5.127948 12.938878 +v 0.580398 5.127513 19.361946 +v 0.857694 7.218986 12.938876 +v 0.857694 5.453609 19.361946 +v -1.803494 -8.338592 -1.148251 +v -1.803496 -7.249155 -4.729249 +v -1.550631 -7.254868 -4.756801 +v -1.550631 -8.362582 -1.129570 v -1.803505 -7.014567 -4.882656 -v -1.803500 7.103070 4.086896 -v -1.550631 7.159328 -0.581056 +v -1.803500 7.103070 4.086895 +v -1.550631 7.159328 -0.581058 v -1.839455 4.411472 -0.653382 v -1.550631 4.418573 -0.651555 -v -1.803502 5.931036 4.779144 +v -1.803502 5.931036 4.779142 v -2.138861 4.925927 -0.212349 -v -1.550631 -7.022314 -4.915743 +v -1.550631 -7.022316 -4.915741 v -1.832909 4.741830 -0.615315 v -1.803493 4.979961 -0.698811 v -1.803477 5.747915 -1.279529 v -1.803468 6.136785 -1.467315 v -1.550631 4.920799 -0.676702 v -1.550631 5.750243 -1.260870 -v -1.550631 6.117420 -1.448276 -v -1.550631 6.431123 -1.427430 +v -1.550631 6.117420 -1.448277 +v -1.550631 6.431123 -1.427431 v -1.550631 4.711940 -0.618973 v 2.168202 1.521683 2.220641 v 1.849792 2.296251 3.228978 -v 1.550631 -5.813593 -4.933243 -v 2.176839 -6.680809 -4.296602 -v 2.177566 -6.820210 -4.161257 +v 1.550631 -5.813593 -4.933241 +v 2.176839 -6.680809 -4.296600 +v 2.177566 -6.820210 -4.161255 v 2.145445 -6.930309 -4.281384 v 2.173862 1.655341 1.737604 v 1.933436 2.830892 2.688685 @@ -5594,191 +1038,191 @@ v 1.883795 2.419949 2.091068 v 2.169390 2.475281 1.132310 v 2.174314 6.129676 4.109241 v 2.174668 5.841984 -0.795250 -v 2.176541 -6.266698 -4.325728 +v 2.176541 -6.266698 -4.325727 v 1.803505 6.986403 4.265716 -v 1.803498 6.146345 4.785964 +v 1.803498 6.146347 4.785964 v 1.550631 7.011675 4.277203 -v 1.550631 6.141139 4.807182 -v 1.803494 -8.338592 -1.148253 -v 1.550631 -8.362582 -1.129572 -v 1.803494 -8.338592 -1.148253 -v 1.803496 -7.249153 -4.729249 -v 1.550631 -7.254866 -4.756801 -v 1.550631 7.159328 -0.581056 -v 1.550631 7.128137 4.054968 -v -1.239158 -6.353005 -5.417203 -v -1.113677 5.685023 -6.433600 -v -1.582758 6.173631 12.234967 -v -1.582758 5.657321 12.234967 +v 1.550631 6.141140 4.807180 +v 1.803494 -8.338592 -1.148251 +v 1.550631 -8.362582 -1.129570 +v 1.803494 -8.338592 -1.148251 +v 1.803496 -7.249155 -4.729249 +v 1.550631 -7.254868 -4.756801 +v 1.550631 7.159328 -0.581058 +v 1.550631 7.128139 4.054966 +v -1.239158 -6.353005 -5.417202 +v -1.113677 5.685021 -6.433600 +v -1.582758 6.173633 12.234967 +v -1.582758 5.657323 12.234967 v -0.974568 4.193733 -2.693952 v -1.582758 4.316335 -1.880566 v -1.582758 5.870734 -4.399592 -v -0.974568 5.132455 -4.066989 +v -0.974568 5.132453 -4.066989 v -0.974568 2.986196 -2.567274 v -1.582758 2.997752 -1.677936 v -0.974568 -2.299957 -4.683156 v -1.582758 -2.770208 -4.057409 -v -0.974568 -3.532901 -5.626941 -v -1.582758 -3.887019 -5.026797 +v -0.974568 -3.532902 -5.626941 +v -1.582758 -3.887019 -5.026795 v -1.582758 -5.973763 -5.781600 -v -0.427195 9.430100 -1.953275 -v -0.397424 7.218984 -1.953275 +v -0.427195 9.430100 -1.953277 +v -0.397424 7.218984 -1.953277 v -0.450662 9.430100 -4.335176 -v -0.580398 4.410827 6.286258 -v -0.580398 5.143752 8.504850 +v -0.580398 4.410829 6.286258 +v -0.580398 5.143754 8.504850 v 0.403942 7.218984 -4.804955 -v -0.580398 3.410160 5.307025 -v 0.397424 7.218984 -1.953275 +v -0.580398 3.410161 5.307024 +v 0.397424 7.218984 -1.953277 v 0.450662 9.430100 -4.335176 v 0.419459 8.845671 -4.804955 -v -0.857694 5.453763 12.938878 -v -0.857694 5.453605 19.361946 -v -0.580398 5.127510 19.361946 -v -0.857694 7.218984 12.938878 -v -0.857694 7.218982 19.361946 -v -0.957142 7.863286 7.609767 -v -0.957142 7.218984 5.409400 -v -0.957142 7.218984 6.277361 +v -0.857694 5.453765 12.938878 +v -0.857694 5.453609 19.361946 +v -0.580398 5.127513 19.361946 +v -0.857694 7.218986 12.938876 +v -0.857694 7.218986 19.361946 +v -0.957142 7.863286 7.609766 +v -0.957142 7.218986 5.409400 +v -0.957142 7.218986 6.277359 v -0.957142 7.863286 5.710876 v -1.213076 8.845671 -4.804955 -v -0.703050 7.624437 -4.804955 -v -1.213076 7.624437 -4.804955 -v -1.213076 7.624437 -1.953275 -v -1.213076 7.624437 -1.953275 -v -1.213076 7.624437 -4.804955 +v -0.703050 7.624435 -4.804955 +v -1.213076 7.624435 -4.804955 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.624435 -4.804955 v -1.213076 7.218984 -4.804955 -v -1.148529 -8.749960 -1.489985 -v -0.843982 -8.845317 -1.176260 -v -1.539709 -9.237019 0.112444 -v -0.703050 7.624437 -4.804955 -v -0.708688 7.624437 -1.953275 -v -0.692288 8.145895 -1.953275 -v -0.580398 3.410160 5.307025 +v -1.148529 -8.749960 -1.489983 +v -0.843982 -8.845317 -1.176258 +v -1.539709 -9.237019 0.112446 +v -0.703050 7.624435 -4.804955 +v -0.708688 7.624437 -1.953277 +v -0.692288 8.145895 -1.953277 +v -0.580398 3.410161 5.307024 v -0.580398 3.816195 5.489355 -v -1.051055 3.816076 5.489355 -v -1.051055 4.250057 5.891657 -v -0.580398 4.250057 5.891657 -v -1.051055 4.410827 6.286258 -v -0.692288 8.145895 -1.953275 -v -1.213076 8.145895 -1.953275 +v -1.051055 3.816077 5.489355 +v -1.051055 4.250059 5.891655 +v -0.580398 4.250059 5.891655 +v -1.051055 4.410829 6.286258 +v -0.692288 8.145895 -1.953277 +v -1.213076 8.145895 -1.953277 v -1.213076 8.145895 -4.804955 -v -1.052369 3.020580 5.130578 -v -1.582758 5.534109 18.331852 -v -1.582758 5.534111 12.374792 -v -1.582758 5.194825 18.331852 -v -1.051055 3.986079 11.231197 +v -1.052369 3.020581 5.130578 +v -1.582758 5.534112 18.331852 +v -1.582758 5.534113 12.374792 +v -1.582758 5.194829 18.331852 +v -1.051055 3.986081 11.231197 v -1.213076 9.430100 -4.335176 -v -1.213076 9.430100 -1.953275 -v -0.427195 9.430100 -1.953275 -v -1.051055 4.197896 10.160744 -v -1.051055 4.410827 9.595867 -v -1.051055 5.194827 6.202400 -v -1.051055 4.410827 6.286258 +v -1.213076 9.430100 -1.953277 +v -0.427195 9.430100 -1.953277 +v -1.051055 4.197898 10.160744 +v -1.051055 4.410829 9.595867 +v -1.051055 5.194829 6.202400 +v -1.051055 4.410829 6.286258 v -1.051055 4.815591 5.698347 -v -1.051055 4.250057 5.891657 +v -1.051055 4.250059 5.891655 v 1.051203 0.060934 3.592092 v 1.051055 -0.223472 3.408138 v 1.358388 0.595196 3.367662 -v -1.051055 0.491167 10.501270 -v -1.051055 3.846210 10.532600 -v -1.051055 3.816076 5.489355 +v -1.051055 0.491169 10.501270 +v -1.051055 3.846212 10.532600 +v -1.051055 3.816077 5.489355 v -1.051055 0.303245 5.858099 -v -1.051055 0.145061 11.660562 +v -1.051055 0.145063 11.660562 v -0.403942 7.218984 -4.804955 v -0.419459 8.845671 -4.804955 -v -0.580398 5.127510 19.361946 -v -1.213076 7.624437 -4.804955 +v -0.580398 5.127513 19.361946 +v -1.213076 7.624435 -4.804955 v -1.213076 8.845671 -4.804955 v -1.213076 9.430100 -4.335176 v -0.528251 5.631948 -6.753191 -v -1.051055 -7.663412 0.798394 -v -1.051055 -6.827383 0.859532 -v -1.051055 -9.408401 0.676293 -v -1.051055 -8.710466 0.929088 +v -1.051055 -7.663412 0.798396 +v -1.051055 -6.827383 0.859534 +v -1.051055 -9.408401 0.676295 +v -1.051055 -8.710466 0.929090 v -0.832096 -2.281892 2.617995 v -1.051055 -0.223472 3.408138 -v -1.051055 -6.827383 0.859532 +v -1.051055 -6.827383 0.859534 v -0.832096 -3.798709 2.025143 v -0.832096 -3.666983 2.980051 v -0.832096 -2.992427 3.243009 -v -1.051055 4.834128 19.361946 -v -1.582758 5.534111 12.374792 -v -1.582758 5.534109 18.331852 -v -1.373788 5.534109 19.361946 -v -1.373788 7.218982 19.361946 -v -1.373788 5.194825 19.361946 -v -0.372438 10.036927 5.890272 -v -0.372438 10.296735 5.890272 -v 0.372438 10.036927 5.890272 -v -0.570611 9.870735 5.890272 -v 0.570611 9.870735 5.890272 -v 0.667251 10.036927 5.890272 -v -0.667251 10.036927 5.890272 -v -0.372438 10.036927 5.890272 -v -0.667251 10.036927 5.890272 -v -0.666265 10.036925 11.908644 +v -1.051055 4.834130 19.361946 +v -1.582758 5.534113 12.374792 +v -1.582758 5.534112 18.331852 +v -1.373788 5.534112 19.361946 +v -1.373788 7.218986 19.361946 +v -1.373788 5.194829 19.361946 +v -0.372438 10.036927 5.890270 +v -0.372438 10.296735 5.890270 +v 0.372438 10.036927 5.890270 +v -0.570611 9.870735 5.890270 +v 0.570611 9.870735 5.890270 +v 0.667251 10.036927 5.890270 +v -0.667251 10.036927 5.890270 +v -0.372438 10.036927 5.890270 +v -0.667251 10.036927 5.890270 +v -0.666265 10.036927 11.908642 v -1.159394 7.167399 5.890272 -v -1.159394 7.167399 11.908644 -v -1.159394 9.473119 11.908644 -v -1.018901 7.167399 11.908644 -v -1.018901 9.373807 11.908644 -v -1.159394 9.473119 11.908644 +v -1.159394 7.167401 11.908642 +v -1.159394 9.473121 11.908642 +v -1.018901 7.167401 11.908642 +v -1.018901 9.373809 11.908642 +v -1.159394 9.473121 11.908642 v -1.018901 7.167399 5.890272 v -1.159394 7.167399 5.890272 v -1.159394 9.473121 5.890272 -v -0.570611 9.870733 11.908644 -v -0.666265 10.036925 11.908644 +v -0.570611 9.870735 11.908642 +v -0.666265 10.036927 11.908642 v 1.018901 9.373809 5.890272 v 1.018901 7.167399 5.890272 -v 1.018901 7.167399 11.908644 -v 1.018901 9.373807 11.908644 -v 0.570611 9.870733 11.908644 -v -0.372438 10.036927 8.085609 -v 0.372438 10.036927 8.085609 -v 0.372438 10.296735 5.890272 +v 1.018901 7.167401 11.908642 +v 1.018901 9.373809 11.908642 +v 0.570611 9.870735 11.908642 +v -0.372438 10.036929 8.085607 +v 0.372438 10.036929 8.085607 +v 0.372438 10.296735 5.890270 v 1.018901 7.167399 5.890272 v 1.018901 9.373809 5.890272 v 1.159394 9.473121 5.890272 -v 0.372438 10.036927 5.890272 -v 0.372438 10.296735 5.890272 -v 0.372438 10.036927 8.085609 -v 0.372438 10.036927 5.890272 -v 0.372438 10.036927 8.085609 -v 0.666265 10.036925 11.908644 +v 0.372438 10.036927 5.890270 +v 0.372438 10.296735 5.890270 +v 0.372438 10.036929 8.085607 +v 0.372438 10.036927 5.890270 +v 0.372438 10.036929 8.085607 +v 0.666265 10.036927 11.908642 v 1.159394 7.167399 5.890272 v 1.159394 9.473121 5.890272 -v 1.159394 9.473119 11.908644 -v 1.018901 7.167399 11.908644 -v 1.159394 7.167399 11.908644 -v 1.159394 9.473119 11.908644 -v 0.570611 9.870733 11.908644 -v 1.018901 9.373807 11.908644 -v 0.667251 10.036927 5.890272 +v 1.159394 9.473121 11.908642 +v 1.018901 7.167401 11.908642 +v 1.159394 7.167401 11.908642 +v 1.159394 9.473121 11.908642 +v 0.570611 9.870735 11.908642 +v 1.018901 9.373809 11.908642 +v 0.667251 10.036927 5.890270 v -1.018901 9.373809 5.890272 -v -1.018901 9.373807 11.908644 -v -1.018901 7.167399 11.908644 -v -0.372438 10.036927 8.085609 -v -0.372438 10.296735 5.890272 -v -0.372438 10.036927 5.890272 -v -0.372438 10.036927 8.085609 -v -0.570611 9.870735 5.890272 -v -0.570611 9.870733 11.908644 -v 0.570611 9.870735 5.890272 -v 0.372438 10.296735 5.890272 +v -1.018901 9.373809 11.908642 +v -1.018901 7.167401 11.908642 +v -0.372438 10.036929 8.085607 +v -0.372438 10.296735 5.890270 +v -0.372438 10.036927 5.890270 +v -0.372438 10.036929 8.085607 +v -0.570611 9.870735 5.890270 +v -0.570611 9.870735 11.908642 +v 0.570611 9.870735 5.890270 +v 0.372438 10.296735 5.890270 v 1.592578 6.930664 -2.831019 v 1.924818 6.930664 -2.831019 v 1.924818 6.930664 -2.831019 v 2.253843 6.726052 -1.549974 v 1.592578 6.125614 -1.931486 -v 1.592578 6.966193 -1.398447 +v 1.592578 6.966193 -1.398448 v 1.924818 6.125614 -1.931486 v 1.592578 6.125614 -1.931486 -v 1.592578 7.603653 -2.269642 +v 1.592578 7.603653 -2.269644 v 1.592578 6.930664 -2.831019 v 1.924818 6.534985 -3.056432 v 1.924818 6.726052 -1.549974 -v 1.924818 7.371370 -2.466391 -v 2.253843 7.371370 -2.466391 +v 1.924818 7.371370 -2.466393 +v 2.253843 7.371370 -2.466393 v -1.051770 0.545047 3.730687 v 1.360567 1.614293 3.789785 v 1.051232 1.834943 4.322482 @@ -5806,73 +1250,73 @@ v -1.582758 1.087353 2.951361 v 1.050937 0.062500 3.588312 v 1.051055 0.730363 5.438924 v 1.050937 1.329366 3.504859 -v 1.239158 -6.352968 -5.953228 -v -1.239158 -6.352968 -5.953228 -v -1.239158 -6.459403 -6.210184 +v 1.239158 -6.352970 -5.953228 +v -1.239158 -6.352970 -5.953228 +v -1.239158 -6.459404 -6.210184 v -1.239158 -6.973310 -6.210184 v 1.239158 -6.973310 -6.210184 -v 1.239158 -6.716357 -6.316617 +v 1.239158 -6.716359 -6.316617 v -1.239158 -7.079744 -5.953228 -v -1.239158 -6.716357 -5.589839 -v 1.239158 -6.716357 -5.589839 -v 1.239158 -6.973310 -5.696272 +v -1.239158 -6.716359 -5.589839 +v 1.239158 -6.716359 -5.589839 +v 1.239158 -6.973310 -5.696270 v -0.836559 -7.541790 -5.464879 -v -1.148529 -7.632973 -5.164886 +v -1.148529 -7.632975 -5.164886 v -1.239158 -7.503078 -5.592237 -v -0.843982 -8.845317 -1.176260 +v -0.843982 -8.845317 -1.176258 v -1.582758 -7.547009 -5.447709 -v -0.974568 -7.096977 -6.928317 -v -1.239158 -7.188473 -6.627295 -v -0.857694 5.453763 12.938878 -v 0.857694 5.453763 12.938878 -v 0.857694 7.218984 12.938878 -v -0.580191 5.127946 12.938878 -v 0.580191 5.127946 12.938878 -v 0.427195 9.430100 -1.953275 -v -1.051055 -9.408401 0.676293 -v -0.580191 5.127946 12.938878 +v -0.974568 -7.096979 -6.928317 +v -1.239158 -7.188475 -6.627295 +v -0.857694 5.453765 12.938878 +v 0.857694 5.453765 12.938878 +v 0.857694 7.218986 12.938876 +v -0.580191 5.127948 12.938878 +v 0.580191 5.127948 12.938878 +v 0.427195 9.430100 -1.953277 +v -1.051055 -9.408401 0.676295 +v -0.580191 5.127948 12.938878 v 0.403942 7.218984 -4.804955 -v 1.239158 -6.459403 -6.210184 -v -1.239158 -6.459403 -5.696272 -v 1.239158 -6.459403 -5.696272 +v 1.239158 -6.459404 -6.210184 +v -1.239158 -6.459404 -5.696270 +v 1.239158 -6.459404 -5.696270 v 1.239158 -7.079744 -5.953228 -v 1.239158 -6.352968 -5.953228 -v 0.957142 7.218984 5.409400 -v 0.843982 7.218984 5.409400 +v 1.239158 -6.352970 -5.953228 +v 0.957142 7.218986 5.409400 +v 0.843982 7.218986 5.409400 v 0.957142 7.863286 5.710876 -v 1.213076 7.624437 -1.953275 -v 0.708688 7.624437 -1.953275 -v 0.397424 7.218984 -1.953275 -v 0.692288 8.145895 -1.953275 -v 0.427195 9.430100 -1.953275 -v 1.213076 8.145895 -1.953275 -v 1.213076 9.430100 -1.953275 -v -0.957142 7.218984 6.277361 -v 1.582758 7.218982 18.331852 -v 0.843982 7.218984 5.409400 +v 1.213076 7.624437 -1.953277 +v 0.708688 7.624437 -1.953277 +v 0.397424 7.218984 -1.953277 +v 0.692288 8.145895 -1.953277 +v 0.427195 9.430100 -1.953277 +v 1.213076 8.145895 -1.953277 +v 1.213076 9.430100 -1.953277 +v -0.957142 7.218986 6.277359 +v 1.582758 7.218986 18.331852 +v 0.843982 7.218986 5.409400 v 1.582758 5.870734 -4.399592 -v 0.580398 4.410827 6.286258 -v 1.051055 4.410827 6.286258 -v 1.051055 4.410827 9.595867 -v -0.580398 4.410827 8.504850 -v -0.580398 5.143752 8.504850 -v 0.580398 5.143752 8.504850 -v 0.580398 5.143752 5.307025 +v 0.580398 4.410829 6.286258 +v 1.051055 4.410829 6.286258 +v 1.051055 4.410829 9.595867 +v -0.580398 4.410829 8.504850 +v -0.580398 5.143754 8.504850 +v 0.580398 5.143754 8.504850 +v 0.580398 5.143754 5.307024 v 0.580398 3.816195 5.489355 -v 0.580398 4.250057 5.891657 -v 1.582758 5.194825 18.331852 -v 1.373788 5.194825 19.361946 -v 1.051055 5.194825 19.361946 -v 1.051055 5.194827 6.202400 -v 1.582758 5.194827 5.282278 -v 1.582758 6.342137 18.331852 -v 1.051055 4.834128 12.349441 -v -1.051055 4.834128 12.349441 -v -1.051055 3.986079 11.231197 -v -1.051055 4.197896 10.160744 -v 1.051055 -0.223474 11.574593 -v 1.051055 0.126897 9.525374 -v 1.051055 0.200441 10.158533 +v 0.580398 4.250059 5.891655 +v 1.582758 5.194829 18.331852 +v 1.373788 5.194829 19.361946 +v 1.051055 5.194829 19.361946 +v 1.051055 5.194829 6.202400 +v 1.582758 5.194829 5.282278 +v 1.582758 6.342139 18.331852 +v 1.051055 4.834130 12.349441 +v -1.051055 4.834130 12.349441 +v -1.051055 3.986081 11.231197 +v -1.051055 4.197898 10.160744 +v 1.051055 -0.223472 11.574593 +v 1.051055 0.126899 9.525374 +v 1.051055 0.200443 10.158533 v -1.051770 0.545047 2.951361 v -1.051770 1.087353 2.951361 v -1.051770 0.955821 2.753111 @@ -5881,62 +1325,62 @@ v 1.051203 0.060934 3.592092 v 1.358388 0.595196 3.367662 v -1.582758 0.955821 2.788985 v -1.051770 0.955821 2.753111 -v 1.051055 0.446518 11.231197 -v 1.051055 0.805342 10.660654 -v 1.051055 3.374604 10.660654 -v 1.425465 6.342137 12.470450 -v 1.582758 6.342137 12.374792 -v 1.582758 6.342137 18.331852 -v 1.425465 6.129148 12.324278 -v 1.582758 6.173631 12.234967 -v 1.582758 6.342137 12.374792 -v 1.425465 5.534111 12.470450 -v 1.582758 5.534111 12.374792 -v 1.582758 5.657321 12.234967 -v 1.425465 5.714319 12.324278 -v 1.425465 6.342137 12.470450 -v 1.373788 6.342137 19.361946 -v 1.373788 5.534109 19.361946 -v 1.425465 5.714319 12.324278 -v 1.425465 6.129148 12.324278 -v 1.051055 5.194825 19.361946 -v 1.373788 5.194825 19.361946 -v 1.373788 5.534109 19.361946 -v 1.373788 6.342137 19.361946 -v 1.373788 7.218982 19.361946 -v 0.857694 7.218982 19.361946 +v 1.051055 0.446520 11.231197 +v 1.051055 0.805344 10.660654 +v 1.051055 3.374606 10.660654 +v 1.425465 6.342139 12.470448 +v 1.582758 6.342139 12.374790 +v 1.582758 6.342139 18.331852 +v 1.425465 6.129150 12.324278 +v 1.582758 6.173633 12.234967 +v 1.582758 6.342139 12.374790 +v 1.425465 5.534113 12.470450 +v 1.582758 5.534113 12.374792 +v 1.582758 5.657323 12.234967 +v 1.425465 5.714321 12.324278 +v 1.425465 6.342139 12.470448 +v 1.373788 6.342139 19.361946 +v 1.373788 5.534112 19.361946 +v 1.425465 5.714321 12.324278 +v 1.425465 6.129150 12.324278 +v 1.051055 5.194829 19.361946 +v 1.373788 5.194829 19.361946 +v 1.373788 5.534112 19.361946 +v 1.373788 6.342139 19.361946 +v 1.373788 7.218986 19.361946 +v 0.857694 7.218986 19.361946 v -1.582758 0.676579 2.788985 v -1.051770 0.676579 2.753111 -v 1.051055 5.194827 6.202400 +v 1.051055 5.194829 6.202400 v 1.051055 4.815591 5.698347 -v 1.051055 4.834128 12.349441 -v 1.051055 5.194825 19.361946 -v 1.051055 4.834128 19.361946 +v 1.051055 4.834130 12.349441 +v 1.051055 5.194829 19.361946 +v 1.051055 4.834130 19.361946 v 1.051203 0.060934 3.592092 v 1.050937 0.062500 3.588312 v 1.051055 -0.223472 3.408138 v 1.051055 4.245723 5.289183 -v 1.582758 5.534109 18.331852 -v 1.373788 5.534109 19.361946 -v 1.373788 5.194825 19.361946 -v 1.373788 7.218982 19.361946 -v 1.373788 6.342137 19.361946 -v 1.373788 5.534109 19.361946 -v 1.051055 4.834128 19.361946 -v 0.857694 5.453605 19.361946 -v 0.580398 5.127510 19.361946 -v -1.051055 0.145061 11.660562 -v -1.051055 -0.223474 11.574593 -v 1.051055 -0.223474 11.574593 +v 1.582758 5.534112 18.331852 +v 1.373788 5.534112 19.361946 +v 1.373788 5.194829 19.361946 +v 1.373788 7.218986 19.361946 +v 1.373788 6.342139 19.361946 +v 1.373788 5.534112 19.361946 +v 1.051055 4.834130 19.361946 +v 0.857694 5.453609 19.361946 +v 0.580398 5.127513 19.361946 +v -1.051055 0.145063 11.660562 +v -1.051055 -0.223472 11.574593 +v 1.051055 -0.223472 11.574593 v 1.494327 1.329366 3.504859 -v 1.051055 -0.223474 11.574593 -v -1.051055 -0.223474 11.574593 +v 1.051055 -0.223472 11.574593 +v -1.051055 -0.223472 11.574593 v -1.051055 -0.223472 3.408138 -v -1.051055 0.446518 11.231197 -v -1.051055 0.145061 11.660562 -v 1.051055 0.145061 11.660562 -v 1.051055 0.446518 11.231197 -v -1.051055 4.834128 19.361946 +v -1.051055 0.446520 11.231197 +v -1.051055 0.145063 11.660562 +v 1.051055 0.145063 11.660562 +v 1.051055 0.446520 11.231197 +v -1.051055 4.834130 19.361946 v -0.832096 -2.992427 3.243009 v 0.832096 -2.992427 3.243009 v 0.832096 -2.281892 2.617995 @@ -5950,162 +1394,162 @@ v -0.832096 -3.798709 2.025143 v 0.832096 -3.798709 2.025143 v 0.832096 -3.666983 2.980051 v 1.051055 -0.223472 3.408138 -v 1.051055 -6.827383 0.859532 -v 1.582758 -6.767919 0.122678 -v 1.582758 -7.606416 0.140500 -v 1.051055 -7.663412 0.798394 -v 1.051055 -8.710466 0.929088 +v 1.051055 -6.827383 0.859534 +v 1.582758 -6.767919 0.122680 +v 1.582758 -7.606416 0.140502 +v 1.051055 -7.663412 0.798396 +v 1.051055 -8.710466 0.929090 v 0.832096 -2.281892 2.617995 v 0.832096 -3.798709 2.025143 -v 1.051055 -6.827383 0.859532 -v 1.051055 -9.408401 0.676293 -v 1.539709 -9.237019 0.112444 -v 1.582758 -8.611731 0.338328 -v 1.051055 -7.663412 0.798394 -v -1.051055 -7.663412 0.798394 -v -1.051055 -8.710466 0.929088 +v 1.051055 -6.827383 0.859534 +v 1.051055 -9.408401 0.676295 +v 1.539709 -9.237019 0.112446 +v 1.582758 -8.611731 0.338330 +v 1.051055 -7.663412 0.798396 +v -1.051055 -7.663412 0.798396 +v -1.051055 -8.710466 0.929090 v -0.832096 -3.798709 2.025143 -v -1.051055 -9.408401 0.676293 -v 1.051055 -9.408401 0.676293 -v 1.051055 -8.710466 0.929088 +v -1.051055 -9.408401 0.676295 +v 1.051055 -9.408401 0.676295 +v 1.051055 -8.710466 0.929090 v -0.403942 7.218984 -4.804955 -v 1.051055 0.491167 10.501270 -v 1.051055 0.145061 11.660562 +v 1.051055 0.491169 10.501270 +v 1.051055 0.145063 11.660562 v 1.051055 4.245723 5.289183 -v 1.052369 3.020580 5.130578 +v 1.052369 3.020581 5.130578 v 1.052369 2.312512 5.048415 -v 1.051055 3.816076 5.489355 -v 1.051055 4.250057 5.891657 -v 1.051055 4.410827 6.286258 +v 1.051055 3.816077 5.489355 +v 1.051055 4.250059 5.891655 +v 1.051055 4.410829 6.286258 v 1.051055 4.815591 5.698347 -v 1.051055 5.194827 6.202400 -v 1.051055 4.410827 9.595867 -v 1.051055 4.197896 10.160744 -v 1.051055 3.986079 11.231197 -v 1.051055 3.846210 10.532600 +v 1.051055 5.194829 6.202400 +v 1.051055 4.410829 9.595867 +v 1.051055 4.197898 10.160744 +v 1.051055 3.986081 11.231197 +v 1.051055 3.846212 10.532600 v 1.050937 1.329366 3.504859 -v -1.052369 3.020580 5.130578 +v -1.052369 3.020581 5.130578 v -1.052369 2.312512 5.048415 v 1.052369 2.312512 5.048415 -v 1.052369 3.020580 5.130578 -v 1.051055 3.816076 5.489355 -v 0.580398 3.410160 5.307025 -v 0.580398 4.250057 5.891657 -v 1.051055 4.250057 5.891657 +v 1.052369 3.020581 5.130578 +v 1.051055 3.816077 5.489355 +v 0.580398 3.410161 5.307024 +v 0.580398 4.250059 5.891655 +v 1.051055 4.250059 5.891655 v 0.580398 3.816195 5.489355 -v -1.051055 0.126897 9.525374 -v -1.051055 0.200441 10.158533 -v 1.051055 0.200441 10.158533 -v -1.051055 0.491167 10.501270 -v 1.051055 0.491167 10.501270 +v -1.051055 0.126899 9.525374 +v -1.051055 0.200443 10.158533 +v 1.051055 0.200443 10.158533 +v -1.051055 0.491169 10.501270 +v 1.051055 0.491169 10.501270 v -1.051055 0.126897 6.278877 -v 1.051055 0.126897 9.525374 -v -1.051055 0.805342 10.660654 -v 1.051055 0.805342 10.660654 +v 1.051055 0.126899 9.525374 +v -1.051055 0.805344 10.660654 +v 1.051055 0.805344 10.660654 v -1.051055 0.303245 5.858099 v 1.051055 0.126897 6.278877 -v -1.051055 3.374604 10.660654 -v 1.051055 3.374604 10.660654 +v -1.051055 3.374606 10.660654 +v 1.051055 3.374606 10.660654 v -1.051055 0.730363 5.438924 v 1.051055 0.303245 5.858099 -v -1.051055 3.846210 10.532600 -v 1.051055 3.846210 10.532600 +v -1.051055 3.846212 10.532600 +v 1.051055 3.846212 10.532600 v -1.052369 1.419883 5.161799 v 1.051055 0.730363 5.438924 -v 1.051055 4.197896 10.160744 +v 1.051055 4.197898 10.160744 v 1.052369 1.419883 5.161799 -v 0.580398 5.143752 5.307025 -v -0.580398 5.143752 5.307025 -v -0.580398 3.410160 5.307025 -v 0.580398 3.410160 5.307025 -v 0.580398 4.410827 6.286258 -v 0.580398 5.143752 8.504850 -v -0.580398 5.143752 8.504850 -v -0.580398 5.143752 5.307025 -v 0.580398 4.410827 8.504850 -v 0.580398 5.143752 8.504850 -v 0.580398 4.410827 8.504850 -v 1.582758 -3.887019 -5.026797 +v 0.580398 5.143754 5.307024 +v -0.580398 5.143754 5.307024 +v -0.580398 3.410161 5.307024 +v 0.580398 3.410161 5.307024 +v 0.580398 4.410829 6.286258 +v 0.580398 5.143754 8.504850 +v -0.580398 5.143754 8.504850 +v -0.580398 5.143754 5.307024 +v 0.580398 4.410829 8.504850 +v 0.580398 5.143754 8.504850 +v 0.580398 4.410829 8.504850 +v 1.582758 -3.887019 -5.026795 v 1.582758 -5.973763 -5.781600 -v 1.239158 -5.908380 -6.182570 -v 0.974568 -7.096977 -6.928317 -v 0.974568 -3.532901 -5.626941 +v 1.239158 -5.908381 -6.182570 +v 0.974568 -7.096979 -6.928317 +v 0.974568 -3.532902 -5.626941 v 0.974568 -2.299957 -4.683156 v 1.582758 -2.770208 -4.057409 v 0.974568 2.986196 -2.567274 v 1.582758 2.997752 -1.677936 v 0.974568 4.768444 -3.230170 -v 1.582758 5.705916 -3.303000 +v 1.582758 5.705914 -3.303000 v 0.974568 4.193733 -2.693952 v 1.582758 4.316335 -1.880566 v 1.582758 5.060399 -2.393605 -v 1.113677 5.685023 -6.433600 +v 1.113677 5.685021 -6.433600 v 1.488590 5.921740 -5.685918 v 0.528251 5.631948 -6.753191 -v 1.239158 -6.353005 -5.417203 -v 1.582758 -6.272798 -5.294007 +v 1.239158 -6.353005 -5.417202 +v 1.582758 -6.272799 -5.294005 v 1.582758 -6.783546 -5.235445 -v 1.239158 -6.111135 -5.821549 +v 1.239158 -6.111135 -5.821548 v 1.582758 -7.547009 -5.447709 v 1.239158 -7.503078 -5.592237 -v 1.239158 -6.751891 -5.355608 -v 1.239158 -5.908380 -6.182570 +v 1.239158 -6.751893 -5.355608 +v 1.239158 -5.908381 -6.182570 v 1.582758 -5.973763 -5.781600 -v 1.239158 -7.188473 -6.627295 -v 1.213076 9.430100 -1.953275 -v 1.213076 8.145895 -1.953275 +v 1.239158 -7.188475 -6.627295 +v 1.213076 9.430100 -1.953277 +v 1.213076 8.145895 -1.953277 v 1.582758 -2.770208 -4.057409 -v 1.582758 -3.887019 -5.026797 -v 1.582758 -6.272798 -5.294007 +v 1.582758 -3.887019 -5.026795 +v 1.582758 -6.272799 -5.294005 v 1.582758 -5.973763 -5.781600 v 1.582758 -6.783546 -5.235445 v 1.582758 -7.547009 -5.447709 v 1.582758 -7.547009 -5.447709 -v 1.148529 -7.632973 -5.164886 +v 1.148529 -7.632975 -5.164886 v 1.239158 -7.503078 -5.592237 v 0.836559 -7.541790 -5.464879 -v 0.974568 -7.096977 -6.928317 -v 1.239158 -7.188473 -6.627295 -v 1.539709 -9.237019 0.112444 -v 1.051055 -9.408401 0.676293 -v 0.843982 -8.845317 -1.176260 -v 0.843982 -8.845317 -1.176260 -v 0.843982 7.218984 5.409400 -v 1.148529 7.218984 4.965837 -v 1.148529 7.218984 0.843372 -v 1.148529 -7.632973 -5.164886 -v 0.836559 7.218984 0.486124 +v 0.974568 -7.096979 -6.928317 +v 1.239158 -7.188475 -6.627295 +v 1.539709 -9.237019 0.112446 +v 1.051055 -9.408401 0.676295 +v 0.843982 -8.845317 -1.176258 +v 0.843982 -8.845317 -1.176258 +v 0.843982 7.218986 5.409400 +v 1.148529 7.218986 4.965837 +v 1.148529 7.218984 0.843370 +v 1.148529 -7.632975 -5.164886 +v 0.836559 7.218984 0.486122 v 0.836559 -7.541790 -5.464879 -v 1.148529 -7.632973 -5.164886 +v 1.148529 -7.632975 -5.164886 v -0.836559 -7.541790 -5.464879 -v -0.843982 7.218984 5.409400 -v 1.148529 -8.749960 -1.489985 -v 0.957142 7.863286 7.609767 -v -0.957142 7.863286 7.609767 -v -0.957142 7.218984 7.609767 -v 0.957142 7.218984 5.409400 +v -0.843982 7.218986 5.409400 +v 1.148529 -8.749960 -1.489983 +v 0.957142 7.863286 7.609766 +v -0.957142 7.863286 7.609766 +v -0.957142 7.218986 7.609766 +v 0.957142 7.218986 5.409400 v 0.957142 7.863286 5.710876 -v 0.957142 7.863286 7.609767 -v -0.957142 7.863286 7.609767 -v 0.957142 7.863286 7.609767 +v 0.957142 7.863286 7.609766 +v -0.957142 7.863286 7.609766 +v 0.957142 7.863286 7.609766 v 0.957142 7.863286 5.710876 -v 0.957142 7.218984 7.609767 -v 0.957142 7.218984 6.277361 +v 0.957142 7.218986 7.609766 +v 0.957142 7.218986 6.277359 v 2.253843 6.930664 -2.831019 v 2.253843 6.930664 -2.831019 v 1.592578 6.125614 -1.931486 v 2.253843 6.902664 -4.747439 v 2.253843 6.726052 -1.549974 -v 2.253843 6.966193 -1.398447 -v 1.709833 6.807340 5.318413 -v 1.965886 6.807340 5.149458 +v 2.253843 6.966193 -1.398448 +v 1.709833 6.807342 5.318411 +v 1.965886 6.807342 5.149457 v 1.965886 7.483090 5.848535 -v 1.965886 6.807340 5.848535 -v 1.882584 6.807340 7.165412 -v 2.249606 6.807340 7.165412 -v -1.051055 5.194827 6.202400 -v -1.373788 5.194825 19.361946 -v 0.000000 8.128884 22.443676 +v 1.965886 6.807342 5.848535 +v 1.882584 6.807342 7.165411 +v 2.249606 6.807342 7.165411 +v -1.051055 5.194829 6.202400 +v -1.373788 5.194829 19.361946 +v 0.000000 8.128888 22.443676 v 0.000000 7.882946 5.649786 v 1.469249 0.829702 3.368853 v 1.133210 0.829702 3.301505 @@ -6113,75 +1557,757 @@ v -0.991334 0.714416 2.803811 v -0.991334 0.583586 2.934655 v -1.284940 0.714416 2.803811 v 1.979996 6.437829 -1.926155 -v -1.425465 6.129148 12.324278 -v -1.373788 6.342137 19.361946 -v -1.582758 6.342137 12.374792 -v -1.582758 5.194827 5.282278 -v -1.213076 9.430100 -1.953275 +v -1.425465 6.129150 12.324278 +v -1.373788 6.342139 19.361946 +v -1.582758 6.342139 12.374790 +v -1.582758 5.194829 5.282278 +v -1.213076 9.430100 -1.953277 v -1.051770 0.545047 3.730687 -v -1.213076 8.145895 -1.953275 +v -1.213076 8.145895 -1.953277 v -1.239158 -7.503078 -5.592237 -v 1.213076 7.624437 -4.804955 -v 1.213076 7.624437 -4.804955 -v 0.708688 7.624437 -1.953275 -v 1.213076 8.145895 -1.953275 -v 1.213076 9.430100 -1.953275 -v 0.857694 7.218982 19.361946 -v -1.550631 -8.362582 -1.129572 -v -1.550631 7.128137 4.054968 -v 1.550631 -8.362582 -1.129572 -v -0.580398 4.410827 8.504850 -v -0.957142 7.218984 7.609767 -v -0.708688 7.624437 -1.953275 -v -1.213076 7.218984 -1.953275 +v 1.213076 7.624435 -4.804955 +v 1.213076 7.624435 -4.804955 +v 0.708688 7.624437 -1.953277 +v 1.213076 8.145895 -1.953277 +v 1.213076 9.430100 -1.953277 +v 0.857694 7.218986 19.361946 +v -1.550631 -8.362582 -1.129570 +v -1.550631 7.128139 4.054966 +v 1.550631 -8.362582 -1.129570 +v -0.580398 4.410829 8.504850 +v -0.957142 7.218986 7.609766 +v -0.708688 7.624437 -1.953277 +v -1.213076 7.218984 -1.953277 v -0.702042 8.145895 -4.804955 v -0.702042 8.145895 -4.804955 v -0.450662 9.430100 -4.335176 v -1.213076 8.145895 -4.804955 v -0.450662 9.430100 -4.335176 v -0.832096 -2.281892 2.617995 -v -1.373788 6.342137 19.361946 -v -1.373788 5.534109 19.361946 +v -1.373788 6.342139 19.361946 +v -1.373788 5.534112 19.361946 v -1.159394 9.473121 5.890272 -v -1.159394 7.167399 11.908644 +v -1.159394 7.167401 11.908642 v -1.018901 9.373809 5.890272 -v -0.372438 10.296735 5.890272 +v -0.372438 10.296735 5.890270 v 1.159394 7.167399 5.890272 -v 1.159394 7.167399 11.908644 -v 0.666265 10.036925 11.908644 +v 1.159394 7.167401 11.908642 +v 0.666265 10.036927 11.908642 v -1.018901 7.167399 5.890272 v 2.253843 6.726052 -1.549974 v -1.051770 0.676579 2.753111 v 1.050937 0.595196 3.367662 v -1.051770 1.087353 2.951361 -v -1.239158 -6.716357 -6.316617 -v -1.239158 -6.973310 -5.696272 -v -0.857694 7.218984 12.938878 -v -1.239158 -6.352968 -5.953228 -v 1.213076 7.218984 -1.953275 -v 0.580398 4.410827 8.504850 -v 1.051055 3.986079 11.231197 +v -1.239158 -6.716359 -6.316617 +v -1.239158 -6.973310 -5.696270 +v -0.857694 7.218986 12.938876 +v -1.239158 -6.352970 -5.953228 +v 1.213076 7.218984 -1.953277 +v 0.580398 4.410829 8.504850 +v 1.051055 3.986081 11.231197 v -1.051770 0.676579 2.753111 v 1.050937 0.062500 3.588312 -v 1.373788 6.342137 19.361946 -v 1.425465 6.342137 12.470450 -v 1.425465 5.534111 12.470450 -v 1.582758 5.534109 18.331852 -v 1.051055 0.145061 11.660562 +v 1.373788 6.342139 19.361946 +v 1.425465 6.342139 12.470448 +v 1.425465 5.534113 12.470450 +v 1.582758 5.534112 18.331852 +v 1.051055 0.145063 11.660562 v 1.051055 -0.223472 3.408138 -v 1.051055 4.834128 19.361946 +v 1.051055 4.834130 19.361946 v -0.832096 -2.281892 2.617995 v -0.832096 -2.992427 3.243009 v 0.832096 -3.666983 2.980051 v -0.832096 -3.666983 2.980051 -v 1.052369 3.020580 5.130578 -v 0.580398 3.410160 5.307025 -v 0.580398 5.143752 5.307025 -v 1.148529 -8.749960 -1.489985 -v 1.148529 7.218984 0.843372 -v 0.957142 7.218984 7.609767 +v 1.052369 3.020581 5.130578 +v 0.580398 3.410161 5.307024 +v 0.580398 5.143754 5.307024 +v 1.148529 -8.749960 -1.489983 +v 1.148529 7.218984 0.843370 +v 0.957142 7.218986 7.609766 v -0.957142 7.863286 5.710876 -v 1.965886 6.807340 5.848535 +v 1.965886 6.807342 5.848535 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.9983 -0.0575 +vn -0.0000 -0.9772 -0.2125 +vn -0.0000 -0.9666 -0.2562 +vn -0.0000 -0.4950 0.8689 +vn 1.0000 -0.0000 -0.0000 +vn -0.0053 0.6390 -0.7692 +vn -0.0000 0.6406 -0.7679 +vn -0.0035 0.6415 -0.7671 +vn -0.0000 -0.9606 -0.2778 +vn -0.0000 -0.9397 -0.3420 +vn -0.0000 0.1886 -0.9821 +vn -0.0000 0.6463 -0.7631 +vn -0.0036 0.6433 -0.7656 +vn -0.0000 0.8070 0.5905 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.9924 0.1232 +vn -0.0000 -0.5336 0.8457 +vn -0.0011 -0.5347 0.8451 +vn -0.0008 -0.5346 0.8451 +vn 0.0002 0.9819 0.1892 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.8598 0.5106 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.9851 -0.1717 +vn -0.0000 -0.9356 0.3532 +vn -0.0000 -0.9999 0.0171 +vn -0.0000 0.3735 0.9276 +vn -0.0000 -0.2142 0.9768 +vn -0.0000 -0.1128 0.9936 +vn -0.0000 -0.6774 0.7356 +vn -0.0000 -0.5021 0.8648 +vn -0.0000 -0.9934 -0.1149 +vn -0.0000 -0.0000 -1.0000 +vn -0.9978 0.0662 -0.0000 +vn -0.8965 0.4430 -0.0000 +vn -0.9472 0.3207 -0.0000 +vn -0.9575 -0.1451 0.2492 +vn -0.9344 -0.2629 0.2404 +vn -0.9389 -0.2242 0.2612 +vn -0.8781 -0.1764 0.4448 +vn -0.9776 -0.1677 0.1269 +vn 0.9978 -0.0662 -0.0000 +vn 0.8965 -0.4430 -0.0000 +vn 0.9472 -0.3207 -0.0000 +vn -0.6588 0.7523 -0.0000 +vn -0.7523 0.6588 -0.0000 +vn 0.6588 -0.7523 -0.0000 +vn 0.7523 -0.6588 -0.0000 +vn -0.3207 0.9472 -0.0001 +vn -0.4430 0.8965 -0.0001 +vn 0.3207 -0.9472 -0.0000 +vn 0.4430 -0.8965 -0.0000 +vn 0.0662 0.9978 -0.0000 +vn -0.0661 0.9978 -0.0000 +vn -0.0662 -0.9978 -0.0000 +vn 0.0661 -0.9978 -0.0000 +vn 0.0661 0.9978 -0.0000 +vn 0.4430 0.8965 -0.0000 +vn 0.3207 0.9472 -0.0000 +vn -0.0661 -0.9978 -0.0000 +vn -0.4430 -0.8965 -0.0000 +vn -0.3207 -0.9472 -0.0000 +vn 0.7523 0.6588 -0.0000 +vn 0.6588 0.7523 -0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.6588 -0.7523 -0.0000 +vn 0.9472 0.3207 -0.0000 +vn 0.8965 0.4430 -0.0001 +vn -0.9472 -0.3207 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn 0.9978 0.0662 -0.0000 +vn -0.9978 -0.0662 -0.0000 +vn 0.8965 -0.4430 0.0001 +vn -0.3207 0.9472 -0.0000 +vn -0.4430 0.8965 -0.0000 +vn 0.0662 -0.9978 -0.0000 +vn -0.0662 0.9978 -0.0000 +vn -0.4430 -0.8965 0.0001 +vn -0.3207 -0.9472 0.0001 +vn 0.8965 0.4430 -0.0000 +vn -0.0000 0.9071 -0.4210 +vn -0.0000 0.9960 0.0890 +vn -0.0000 0.9960 -0.0890 +vn -0.0000 0.9960 0.0889 +vn -0.0000 0.8181 0.5750 +vn -0.0000 0.9071 0.4210 +vn -0.0000 0.5751 -0.8181 +vn -0.0000 0.8181 -0.5751 +vn -0.0000 0.4210 0.9071 +vn -0.0000 0.5750 0.8181 +vn -0.0000 0.0890 -0.9960 +vn -0.0000 0.4210 -0.9071 +vn -0.0000 -0.0889 0.9960 +vn -0.0000 0.0889 0.9960 +vn -0.0000 -0.4210 -0.9071 +vn -0.0000 0.0889 -0.9960 +vn -0.0000 -0.0890 -0.9960 +vn -0.0000 -0.5750 0.8181 +vn -0.0000 -0.4210 0.9071 +vn -0.0000 -0.8181 -0.5751 +vn -0.0000 -0.5751 -0.8181 +vn -0.0000 -0.9071 0.4210 +vn -0.0000 -0.8181 0.5750 +vn -0.0000 -0.9960 -0.0890 +vn -0.0000 -0.9071 -0.4210 +vn -0.0000 -0.9960 -0.0889 +vn -0.0000 -0.9960 0.0889 +vn -0.0000 -0.9960 0.0890 +vn -0.0000 -0.8181 -0.5750 +vn -0.0000 -0.5751 0.8181 +vn -0.0000 -0.8181 0.5751 +vn -0.0000 -0.5750 -0.8181 +vn -0.0000 -0.0890 0.9960 +vn -0.0000 0.0890 0.9960 +vn -0.0000 0.5750 -0.8181 +vn -0.0000 0.8181 0.5751 +vn -0.0000 0.5751 0.8181 +vn -0.0000 0.8181 -0.5750 +vn -0.0000 0.9960 -0.0889 +vn -0.8737 -0.1315 -0.4684 +vn -0.9862 -0.0041 -0.1656 +vn -0.8872 0.2205 -0.4054 +vn -0.7168 -0.3702 0.5909 +vn -0.0822 -0.6000 0.7957 +vn -0.6767 -0.2422 0.6953 +vn -0.9125 0.1216 -0.3905 +vn -0.9940 0.0221 -0.1068 +vn -0.9139 -0.0027 -0.4059 +vn -0.9673 0.2232 0.1202 +vn -0.9954 -0.0433 0.0853 +vn -0.9560 0.1006 0.2757 +vn -0.9685 -0.0991 0.2284 +vn -0.9504 -0.2074 0.2318 +vn -0.9883 0.1182 0.0969 +vn -0.4530 0.2801 -0.8464 +vn -0.4864 0.0390 -0.8729 +vn -0.9142 0.0704 -0.3992 +vn -0.1396 0.2721 -0.9521 +vn -0.0360 0.1283 -0.9911 +vn -0.8460 0.1204 -0.5194 +vn -0.9076 0.3995 -0.1294 +vn -0.4854 0.7468 -0.4545 +vn -0.5755 0.8091 -0.1186 +vn -0.0534 0.7747 -0.6301 +vn -0.3445 0.4756 -0.8094 +vn -0.9779 -0.0642 -0.1992 +vn -0.9947 0.0245 -0.0996 +vn -0.9931 -0.0834 -0.0820 +vn -0.9058 -0.1444 -0.3984 +vn -0.9566 0.2613 0.1289 +vn -0.9201 -0.3126 0.2362 +vn -0.9313 -0.3635 0.0218 +vn -0.9227 -0.2852 0.2592 +vn -0.9128 -0.3909 0.1182 +vn -0.9312 -0.3570 0.0740 +vn -0.9684 -0.1692 0.1830 +vn -0.9038 -0.3696 0.2156 +vn -0.9809 -0.1776 0.0789 +vn -0.9786 -0.2002 0.0480 +vn -0.9987 -0.0475 -0.0201 +vn -0.9688 0.2308 0.0903 +vn -0.9376 0.0952 0.3344 +vn -0.9649 0.1135 0.2367 +vn -0.9495 0.2763 0.1486 +vn -0.9832 0.0556 0.1736 +vn -0.9844 0.1276 0.1212 +vn -0.9290 0.2500 0.2729 +vn -0.9956 -0.0665 0.0653 +vn -0.9625 -0.0724 0.2614 +vn -0.9851 -0.1084 0.1335 +vn -0.9833 -0.0502 0.1751 +vn -0.9846 -0.0087 0.1745 +vn -0.9900 0.1007 0.0988 +vn -0.8989 0.0907 0.4287 +vn -0.9942 -0.0403 -0.1002 +vn -0.9968 -0.0448 -0.0663 +vn -0.8695 -0.2858 -0.4029 +vn -0.9335 -0.3023 -0.1926 +vn -0.9089 -0.4170 0.0072 +vn -0.9846 -0.1696 0.0430 +vn -0.9932 -0.0221 -0.1146 +vn -0.9900 0.0999 -0.0998 +vn -0.9920 0.1239 -0.0234 +vn -0.5747 0.5494 0.6065 +vn -0.8998 0.4026 0.1680 +vn -0.0745 0.7122 0.6980 +vn -0.3706 0.2403 0.8972 +vn -0.0963 -0.2070 0.9736 +vn -0.0758 0.2517 0.9648 +vn -0.6409 -0.7662 -0.0458 +vn -0.9298 -0.2330 0.2848 +vn -0.0000 -0.5750 0.8182 +vn -0.0000 -0.5750 -0.8182 +vn -0.0000 -0.8182 -0.5750 +vn -0.0000 0.5750 0.8182 +vn -0.0000 -0.0889 -0.9960 +vn -0.0000 -0.9239 -0.3826 +vn -0.0000 0.9239 -0.3826 +vn -0.0001 0.9675 -0.2527 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 0.8629 -0.5054 +vn -0.0000 -0.9676 -0.2526 +vn -0.0000 -0.8629 -0.5054 +vn 0.0002 -0.9676 -0.2526 +vn -0.0000 0.9906 0.1368 +vn -0.0000 0.6038 0.7972 +vn -0.0000 0.7972 0.6038 +vn -0.0000 -0.1368 0.9906 +vn -0.0000 0.1368 0.9906 +vn -0.0000 -0.7972 0.6037 +vn -0.0000 -0.6038 0.7972 +vn -0.0000 -0.7972 0.6038 +vn -0.0000 -0.9906 -0.1368 +vn -0.0000 -0.9906 0.1368 +vn -0.0000 -0.6038 -0.7972 +vn -0.0000 -0.7972 -0.6038 +vn -0.0000 0.1368 -0.9906 +vn -0.0000 -0.1368 -0.9906 +vn -1.0000 -0.0000 0.0037 +vn -1.0000 -0.0000 0.0075 +vn -0.0000 0.7972 -0.6038 +vn -0.0000 0.6038 -0.7972 +vn -0.5344 0.1812 0.8256 +vn -0.5073 -0.3627 0.7818 +vn -0.5247 -0.1884 0.8302 +vn -0.3422 0.8174 0.4635 +vn -0.5018 0.4301 0.7505 +vn -0.0000 0.9906 -0.1368 +vn 0.0138 0.7488 -0.6626 +vn -0.0105 0.4047 -0.9144 +vn 0.0087 0.3748 -0.9271 +vn 0.0713 0.8730 -0.4825 +vn -0.0055 0.9136 -0.4067 +vn -0.9958 -0.0324 -0.0853 +vn -0.9474 -0.3190 -0.0268 +vn 0.9932 -0.0426 -0.1083 +vn 0.9930 -0.0531 -0.1054 +vn 0.9015 -0.4270 -0.0701 +vn 0.9474 -0.3190 -0.0268 +vn 0.4260 -0.8999 -0.0934 +vn -0.4482 -0.5058 0.7370 +vn -0.4877 -0.5255 0.6971 +vn -0.9280 -0.3587 -0.1012 +vn -0.8534 -0.4727 -0.2197 +vn -0.4260 -0.8989 -0.1030 +vn 0.9394 -0.1625 -0.3019 +vn 0.5145 -0.3209 0.7952 +vn 0.9295 -0.1383 0.3419 +vn 0.9268 -0.1407 0.3483 +vn -0.6818 -0.5955 -0.4249 +vn -0.9911 -0.0000 0.1331 +vn -0.9978 -0.0000 0.0666 +vn 0.9404 0.1281 -0.3149 +vn 0.9304 0.1374 -0.3398 +vn -0.0000 -0.9918 0.1279 +vn -0.0000 -0.9960 -0.0893 +vn 0.1721 0.4024 -0.8991 +vn -0.0000 0.4238 -0.9058 +vn -0.9476 -0.1416 -0.2864 +vn -0.9930 -0.0531 -0.1054 +vn -0.9476 -0.1416 -0.2865 +vn 0.8934 -0.3903 -0.2225 +vn -1.0000 -0.0006 0.0001 +vn -1.0000 -0.0010 -0.0002 +vn -0.9886 -0.0584 0.1389 +vn -1.0000 -0.0000 -0.0006 +vn -1.0000 0.0008 -0.0006 +vn -0.8859 -0.1792 0.4279 +vn -0.9569 -0.1081 0.2694 +vn -0.9391 -0.1502 0.3090 +vn -0.9371 -0.1343 0.3223 +vn 0.4203 -0.4751 0.7730 +vn 0.3339 -0.2816 0.8996 +vn 0.8896 -0.1729 0.4226 +vn -0.9473 0.1523 -0.2819 +vn -0.9802 0.0091 -0.1979 +vn -0.2835 -0.4795 -0.8305 +vn -0.2965 -0.1206 -0.9474 +vn -0.0364 0.1142 -0.9928 +vn 0.9363 0.1191 -0.3304 +vn -0.9363 0.1191 -0.3304 +vn 0.9910 0.0439 -0.1265 +vn -0.9910 0.0439 -0.1265 +vn -0.8724 -0.1036 0.4777 +vn -0.9603 0.0267 0.2778 +vn -0.9801 -0.1117 0.1641 +vn -0.9999 -0.0132 -0.0001 +vn -0.9719 -0.0333 0.2329 +vn -0.9376 0.1183 -0.3271 +vn -0.9212 0.1912 -0.3389 +vn -0.0000 -0.9072 -0.4206 +vn 0.0208 -0.2762 -0.9609 +vn -0.0000 0.2238 -0.9746 +vn -0.0000 0.1500 -0.9887 +vn -0.9257 -0.1856 -0.3295 +vn -0.9477 -0.2262 -0.2251 +vn -0.9436 -0.3063 -0.1256 +vn -0.5812 -0.6406 -0.5019 +vn -0.0856 0.9400 -0.3303 +vn -0.0807 0.8763 -0.4749 +vn 0.0006 0.2651 -0.9642 +vn -0.9910 0.0440 -0.1265 +vn -0.9363 0.1191 -0.3303 +vn -0.4139 0.3096 -0.8560 +vn -0.3758 -0.8080 -0.4538 +vn -0.3691 -0.8001 -0.4728 +vn -0.3743 -0.7996 -0.4696 +vn -0.3715 0.2637 -0.8902 +vn -0.3430 0.0002 -0.9393 +vn -0.3595 0.1300 -0.9240 +vn -0.3937 -0.6141 -0.6841 +vn 0.9227 -0.2852 0.2592 +vn 0.8989 0.0907 0.4287 +vn 0.6998 -0.1880 0.6892 +vn 0.9504 -0.2074 0.2318 +vn 0.9201 -0.3126 0.2362 +vn 0.6767 -0.2422 0.6953 +vn 0.9649 0.1135 0.2367 +vn 0.9883 0.1182 0.0969 +vn 0.7168 -0.3702 0.5909 +vn 0.9376 0.0952 0.3344 +vn 0.9560 0.1006 0.2757 +vn 0.4864 0.0390 -0.8729 +vn 0.9142 0.0704 -0.3992 +vn 0.9058 -0.1444 -0.3984 +vn 0.0717 -0.2461 -0.9666 +vn 0.0360 0.1283 -0.9911 +vn 0.9139 -0.0027 -0.4059 +vn 0.9125 0.1216 -0.3905 +vn 0.8460 0.1204 -0.5194 +vn 0.9083 -0.1711 -0.3818 +vn 0.4795 -0.1233 -0.8689 +vn 0.8695 -0.2858 -0.4029 +vn 0.3927 -0.4709 -0.7900 +vn 0.8737 -0.1315 -0.4684 +vn 0.3129 -0.4800 -0.8196 +vn 0.8872 0.2205 -0.4054 +vn 0.3805 -0.0664 -0.9224 +vn 0.5755 0.8091 -0.1186 +vn 0.3592 0.8985 0.2523 +vn 0.8999 0.4025 0.1679 +vn 0.0333 -0.3953 -0.9180 +vn -0.0238 -0.5460 -0.8375 +vn -0.0633 -0.2827 -0.9571 +vn -0.0221 0.3133 -0.9494 +vn 0.3445 0.4756 -0.8094 +vn 0.0128 -0.0140 -0.9998 +vn 0.0009 0.2043 -0.9789 +vn 0.9968 -0.0448 -0.0663 +vn 0.9932 -0.0221 -0.1146 +vn 0.9089 -0.4170 0.0072 +vn 0.9846 -0.1696 0.0430 +vn 0.9298 -0.2330 0.2848 +vn 0.4446 -0.3490 -0.8249 +vn 0.9076 0.3995 -0.1294 +vn 0.0550 0.2948 -0.9540 +vn 0.0963 -0.2070 0.9736 +vn 0.0822 -0.6000 0.7957 +vn 0.9940 0.0221 -0.1068 +vn 0.9954 -0.0433 0.0853 +vn 0.4530 0.2801 -0.8464 +vn 0.4854 0.7468 -0.4545 +vn 0.0534 0.7747 -0.6301 +vn 0.9920 0.1239 -0.0234 +vn 0.9900 0.0999 -0.0998 +vn 0.9900 0.1007 0.0988 +vn 0.9862 -0.0041 -0.1656 +vn -0.1765 -0.9638 -0.1996 +vn 0.6818 -0.5955 -0.4249 +vn 0.3051 -0.5726 -0.7609 +vn 0.2122 -0.9513 -0.2235 +vn -0.0000 0.0901 -0.9959 +vn 0.4259 -0.8802 -0.2092 +vn 0.9999 0.0167 0.0007 +vn 1.0000 0.0019 0.0034 +vn -0.0000 0.9018 -0.4322 +vn 0.0616 0.9395 -0.3370 +vn -0.0000 0.9364 -0.3510 +vn 0.0856 0.9400 -0.3303 +vn 0.0516 0.7096 -0.7027 +vn -0.0000 0.1126 -0.9936 +vn -0.0000 0.2651 -0.9642 +vn -0.0000 0.2199 -0.9755 +vn -0.0000 0.9018 -0.4321 +vn -0.0613 0.7646 -0.6415 +vn 0.9666 0.0118 -0.2559 +vn 0.9053 -0.1764 0.3864 +vn 0.9477 -0.2262 -0.2251 +vn 0.9436 -0.3063 -0.1256 +vn 0.9389 -0.2242 0.2612 +vn 0.9776 -0.1677 0.1269 +vn 0.9978 -0.0000 0.0666 +vn 0.9257 -0.1856 -0.3295 +vn -0.8895 0.4570 -0.0000 +vn -0.2763 0.9611 0.0002 +vn -0.5527 0.8333 0.0001 +vn -0.9736 0.2284 -0.0000 +vn -0.0976 -0.7839 0.6132 +vn -0.6439 -0.6219 -0.4457 +vn -0.0928 -0.7999 -0.5929 +vn -0.0690 -0.9541 -0.2914 +vn -0.4446 -0.3490 -0.8249 +vn -0.3592 0.8985 0.2523 +vn -0.1134 0.9756 -0.1878 +vn -0.0002 0.2043 -0.9789 +vn -0.0550 0.2948 -0.9540 +vn -0.6998 -0.1881 0.6892 +vn -0.9083 -0.1711 -0.3818 +vn -0.0717 -0.2461 -0.9666 +vn -0.4795 -0.1233 -0.8689 +vn -0.3927 -0.4709 -0.7900 +vn -0.3129 -0.4800 -0.8196 +vn -0.3805 -0.0664 -0.9224 +vn -0.0333 -0.3953 -0.9180 +vn 0.0238 -0.5460 -0.8375 +vn 0.0633 -0.2827 -0.9571 +vn 0.0221 0.3133 -0.9494 +vn -0.0128 -0.0140 -0.9998 +vn 0.9673 0.2232 0.1202 +vn 0.9685 -0.0991 0.2284 +vn 0.1396 0.2721 -0.9521 +vn 0.9779 -0.0642 -0.1992 +vn 0.9931 -0.0834 -0.0820 +vn 0.9335 -0.3023 -0.1926 +vn 0.9566 0.2613 0.1289 +vn 0.9313 -0.3635 0.0219 +vn 0.9128 -0.3909 0.1182 +vn 0.9786 -0.2002 0.0480 +vn 0.9312 -0.3570 0.0740 +vn 0.9038 -0.3696 0.2156 +vn 0.9684 -0.1692 0.1830 +vn 0.9809 -0.1776 0.0789 +vn 0.9987 -0.0475 -0.0201 +vn 0.9688 0.2308 0.0903 +vn 0.9495 0.2763 0.1486 +vn 0.9290 0.2500 0.2729 +vn 0.9844 0.1276 0.1212 +vn 0.9832 0.0556 0.1736 +vn 0.9956 -0.0665 0.0653 +vn 0.9625 -0.0724 0.2614 +vn 0.9851 -0.1084 0.1335 +vn 0.9833 -0.0502 0.1751 +vn 0.9846 -0.0087 0.1745 +vn 0.9942 -0.0403 -0.1002 +vn 0.9947 0.0245 -0.0996 +vn 0.5747 0.5494 0.6065 +vn 0.3706 0.2403 0.8972 +vn 0.0745 0.7122 0.6980 +vn 0.0758 0.2517 0.9648 +vn 0.6409 -0.7662 -0.0458 +vn 0.1193 -0.7677 0.6296 +vn 0.0973 -0.7840 0.6130 +vn 0.6439 -0.6219 -0.4457 +vn 0.0928 -0.7999 -0.5929 +vn 0.1134 0.9756 -0.1878 +vn 0.0654 0.9680 0.2423 +vn -0.3723 -0.3800 -0.8468 +vn -0.6432 -0.3414 -0.6854 +vn -0.4592 -0.4012 -0.7925 +vn -0.4263 -0.8678 -0.2554 +vn -0.3935 0.1531 -0.9065 +vn -0.5149 0.4477 -0.7311 +vn -0.4133 0.4461 -0.7938 +vn -0.9212 0.1912 -0.3390 +vn -0.9375 0.1183 -0.3271 +vn 0.9999 0.0135 -0.0099 +vn 0.9998 0.0213 0.0011 +vn 0.9996 0.0271 0.0029 +vn -0.9998 0.0213 0.0011 +vn -0.9996 0.0271 0.0029 +vn -0.9997 0.0252 0.0067 +vn 0.8895 0.4570 -0.0000 +vn 0.9736 0.2284 -0.0000 +vn 0.4196 0.9077 -0.0000 +vn -0.0000 -0.9568 -0.2908 +vn -0.9999 0.0167 0.0007 +vn -0.9995 0.0314 -0.0020 +vn -0.0004 -0.2799 0.9600 +vn 0.0001 -0.5968 0.8024 +vn -0.0004 -0.5061 0.8625 +vn 0.0001 -0.7783 0.6279 +vn -0.0000 -0.8622 0.5066 +vn -0.0000 -0.9667 0.2558 +vn -0.0004 -0.2668 0.9638 +vn -0.9911 -0.0000 0.1332 +vn -0.9894 -0.1160 0.0873 +vn 0.8417 -0.2936 0.4532 +vn 0.4395 -0.3448 0.8294 +vn 0.4540 -0.0806 0.8873 +vn -1.0000 0.0006 0.0012 +vn 1.0000 0.0095 -0.0023 +vn 0.9997 0.0252 0.0067 +vn 0.0001 0.2199 -0.9755 +vn -0.0616 0.9395 -0.3370 +vn -0.4392 0.0051 0.8984 +vn -0.3221 -0.2815 0.9039 +vn -0.4149 -0.3225 0.8508 +vn -0.4184 -0.0205 0.9080 +vn 0.0147 -0.3602 0.9328 +vn -0.3221 -0.2814 0.9039 +vn -0.1337 0.9663 0.2198 +vn -0.9800 -0.0000 0.1988 +vn -0.5451 0.8383 -0.0000 +vn -0.2015 0.9795 0.0001 +vn -0.9362 0.3516 0.0001 +vn -0.9334 -0.3588 -0.0000 +vn -0.5359 -0.8443 -0.0000 +vn -0.0000 0.9989 0.0471 +vn -0.0000 0.9992 0.0392 +vn -0.0000 0.9931 0.1175 +vn -0.0000 0.9992 0.0393 +vn 0.1595 0.9872 0.0003 +vn 0.9363 0.3512 -0.0000 +vn 0.9362 0.3516 0.0001 +vn 0.5451 0.8383 0.0001 +vn 0.9334 -0.3588 -0.0000 +vn 0.4063 -0.9137 -0.0000 +vn -0.2679 -0.9634 -0.0000 +vn -0.0000 -0.5363 0.8440 +vn -0.0005 -0.5361 0.8442 +vn -0.0000 -0.8176 -0.5758 +vn -0.9850 -0.0671 0.1589 +vn 0.4464 -0.6134 0.6515 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.7929 0.6094 +vn 0.4465 -0.6134 0.6515 +vn 0.0655 0.8693 0.4899 +vn 0.0479 0.9748 0.2177 +vn 0.0450 0.9407 0.3362 +vn 1.0000 -0.0001 -0.0003 +vn 1.0000 0.0004 -0.0008 +vn 1.0000 -0.0007 -0.0006 +vn 0.9756 -0.0842 0.2027 +vn 1.0000 0.0004 -0.0001 +vn 0.4540 -0.0805 0.8873 +vn -0.0000 -0.1298 0.9915 +vn 0.0112 -0.9503 0.3111 +vn 1.0000 0.0002 -0.0001 +vn 1.0000 -0.0007 -0.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.6037 0.7972 +vn -0.0000 0.7972 0.6037 +vn -0.0000 0.7071 -0.7071 +vn 0.4240 0.3427 -0.8383 +vn -0.9999 0.0135 -0.0099 +vn 0.4193 0.9079 0.0001 +vn -1.0000 0.0095 -0.0023 +vn 0.0001 -0.7972 -0.6037 +vn -0.0001 -0.6037 -0.7972 +vn -0.1722 0.3928 -0.9033 +vn -0.0000 -0.9929 -0.1193 +vn 0.9911 -0.0000 0.1332 +vn -0.0000 -0.9478 0.3188 +vn -0.0000 -0.4448 0.8956 +vn -0.0000 -0.8814 -0.4724 +vn -0.9418 0.2820 0.1830 +vn -0.7726 0.5655 0.2886 +vn 0.0646 -0.2831 0.9569 +vn 0.0405 -0.5936 0.8037 +vn 0.5073 -0.3627 0.7818 +vn 0.5247 -0.1884 0.8302 +vn 0.4877 -0.5255 0.6971 +vn 0.3422 0.8174 0.4635 +vn 0.1337 0.9663 0.2198 +vn 0.5018 0.4301 0.7505 +vn 0.5344 0.1812 0.8256 +vn 1.0000 -0.0000 0.0037 +vn 1.0000 -0.0000 0.0075 +vn 0.0674 -0.0000 0.9977 +vn 0.9894 -0.1160 0.0873 +vn 0.9344 -0.2629 0.2404 +vn -0.9978 -0.0354 0.0555 +vn 0.9575 -0.1436 0.2500 +vn 0.9800 -0.0000 0.1988 +vn -0.0000 -0.2272 0.9739 +vn 0.0002 0.6059 0.7955 +vn -0.0000 0.8184 0.5746 +vn -0.0002 0.3029 0.9530 +vn -0.0000 0.6605 0.7508 +vn -0.0000 -0.3632 0.9317 +vn -0.0000 -0.9906 0.1367 +vn 0.4395 -0.3449 0.8294 +vn 0.3228 -0.2420 0.9150 +vn 0.9719 -0.0333 0.2329 +vn 0.9603 0.0267 0.2778 +vn 0.4392 0.0417 0.8974 +vn 0.4198 -0.1075 0.9012 +vn -0.0197 -0.3607 0.9325 +vn -0.0257 -0.3607 0.9323 +vn 0.5470 -0.3017 0.7809 +vn 0.9801 -0.1117 0.1641 +vn 0.8724 -0.1036 0.4777 +vn -0.4184 -0.0204 0.9080 +vn 0.0385 -0.3613 0.9316 +vn 0.5470 -0.3018 0.7808 +vn 0.4198 -0.1076 0.9012 +vn 1.0000 0.0009 -0.0015 +vn 1.0000 0.0001 -0.0016 +vn 1.0000 0.0006 0.0012 +vn -0.0000 -0.4993 0.8664 +vn -0.0000 -0.2667 0.9638 +vn -0.0000 0.0459 0.9989 +vn -0.0000 -0.0351 0.9994 +vn 0.0006 -0.3409 0.9401 +vn 0.0003 -0.5061 0.8625 +vn 0.0003 -0.3136 0.9496 +vn -0.0000 -0.7783 0.6279 +vn -0.0001 -0.5968 0.8024 +vn -0.0000 0.9970 -0.0770 +vn -0.0000 0.8727 -0.4883 +vn -0.0001 0.9526 -0.3041 +vn -0.0000 0.5657 -0.8246 +vn -0.0000 0.6710 -0.7415 +vn -0.0000 0.9914 0.1311 +vn -0.0000 0.9993 -0.0385 +vn -0.0000 0.1546 -0.9880 +vn -0.0000 0.3091 -0.9510 +vn -0.0000 0.8635 0.5044 +vn -0.0000 0.9650 0.2623 +vn -0.0000 -0.1761 -0.9844 +vn -0.0000 -0.0880 -0.9961 +vn -0.0000 0.6016 0.7988 +vn -0.0000 0.7882 0.6154 +vn -0.0000 -0.5913 -0.8065 +vn -0.0000 -0.4311 -0.9023 +vn -0.0000 0.2927 0.9562 +vn -0.0000 0.4905 0.8714 +vn -0.0000 -0.8104 -0.5859 +vn -0.0000 0.2098 0.9777 +vn -0.0002 -0.2799 0.9600 +vn 0.9212 0.1912 -0.3390 +vn 0.9375 0.1183 -0.3271 +vn 0.9363 0.1191 -0.3303 +vn 0.5457 0.2840 -0.7884 +vn 0.4129 0.3969 -0.8198 +vn 0.3689 0.4766 -0.7979 +vn 0.9473 0.1523 -0.2819 +vn 0.5471 0.1521 -0.8231 +vn 0.4428 -0.7141 -0.5422 +vn 0.4578 -0.2885 -0.8409 +vn 0.6432 -0.3414 -0.6854 +vn 0.2347 -0.0372 -0.9713 +vn 0.3723 -0.3800 -0.8468 +vn 0.3937 -0.6141 -0.6841 +vn 0.3430 0.0002 -0.9393 +vn 0.3691 -0.8001 -0.4728 +vn 0.3715 0.2637 -0.8902 +vn 0.4024 0.2750 -0.8731 +vn 0.3595 0.1300 -0.9240 +vn 0.3758 -0.8080 -0.4538 +vn 0.3743 -0.7997 -0.4695 +vn 0.9910 0.0440 -0.1265 +vn 0.9212 0.1912 -0.3389 +vn 0.9376 0.1183 -0.3271 +vn 0.9999 -0.0132 -0.0001 +vn -0.5587 0.3131 -0.7680 +vn -0.1722 0.3928 -0.9034 +vn -0.9404 0.1281 -0.3149 +vn -0.9295 -0.1383 0.3419 +vn -0.9268 -0.1407 0.3483 +vn -0.3897 -0.3446 0.8541 +vn -0.3829 -0.3454 0.8568 +vn -0.9268 -0.1406 0.3483 +vn 0.2529 -0.3618 0.8973 +vn 0.1722 0.4024 -0.8991 +vn -0.0000 -0.6037 0.7972 +vn -0.4024 0.2750 -0.8731 +vn 0.9995 0.0314 -0.0020 +vn -0.1193 -0.7677 0.6296 +vn -0.0654 0.9680 0.2423 +vn 0.0690 -0.9541 -0.2914 +vn -1.0000 0.0019 0.0034 +vn -0.9363 0.3512 -0.0000 +vn 0.0373 0.8327 0.5525 +vn -0.0000 0.1951 0.9808 +vn -0.0000 -0.9574 0.2887 +vn -0.0000 0.3827 0.9239 +vn 0.4482 -0.5058 0.7370 +vn 0.0004 -0.3409 0.9401 +vn -0.9304 0.1374 -0.3398 vt 0.359688 0.958662 vt 0.362249 0.958669 vt 0.362239 0.962551 @@ -6194,7 +2320,6 @@ vt 0.802908 0.855453 vt 0.510231 0.845136 vt 0.505784 0.850420 vt 0.501968 0.847202 -vt 0.501968 0.847202 vt 0.477758 0.837077 vt 0.479214 0.833341 vt 0.823042 0.855453 @@ -6203,7 +2328,6 @@ vt 0.827595 0.857179 vt 0.802908 0.857179 vt 0.811898 0.857179 vt 0.796689 0.855453 -vt 0.811898 0.857179 vt 0.813272 0.857179 vt 0.813272 0.853744 vt 0.827595 0.853744 @@ -6212,20 +2336,15 @@ vt 0.826014 0.855453 vt 0.520442 0.836072 vt 0.524015 0.833150 vt 0.535257 0.845043 -vt 0.827595 0.853744 -vt 0.827595 0.857179 vt 0.833203 0.857179 vt 0.897698 0.596442 vt 0.896258 0.600185 vt 0.920512 0.610205 vt 0.823042 0.853744 -vt 0.813272 0.853744 -vt 0.813272 0.857179 vt 0.516880 0.839562 vt 0.528775 0.851703 vt 0.521438 0.859613 vt 0.833202 0.853744 -vt 0.833203 0.857179 vt 0.834678 0.855453 vt 0.790690 0.954682 vt 0.780443 0.954656 @@ -6267,24 +2386,18 @@ vt 0.272751 0.953162 vt 0.272713 0.966602 vt 0.331675 0.961203 vt 0.177415 0.958145 -vt 0.359702 0.953407 vt 0.364426 0.953420 vt 0.364412 0.958675 vt 0.968179 0.972572 vt 0.957932 0.972563 vt 0.957935 0.968680 vt 0.794573 0.954693 -vt 0.790690 0.954682 -vt 0.790662 0.965283 vt 0.804820 0.954720 -vt 0.794573 0.954693 vt 0.794545 0.965293 vt 0.516662 0.969893 vt 0.516635 0.965166 vt 0.536604 0.965056 vt 0.536631 0.969780 -vt 0.536604 0.965056 -vt 0.542169 0.965022 vt 0.422489 0.970295 vt 0.185446 0.960788 vt 0.780437 0.957218 @@ -6630,28 +2743,16 @@ vt 0.167364 0.945664 vt 0.166181 0.948525 vt 0.178034 0.954320 vt 0.174785 0.956657 -vt 0.174541 0.955967 vt 0.179705 0.950732 -vt 0.177491 0.953870 vt 0.170851 0.956935 -vt 0.170974 0.956250 vt 0.179415 0.946774 -vt 0.179011 0.950603 vt 0.177257 0.943358 -vt 0.178740 0.946996 vt 0.167318 0.955307 -vt 0.167756 0.954771 vt 0.173333 0.941582 -vt 0.176717 0.943925 vt 0.169069 0.942125 -vt 0.173219 0.942341 vt 0.165031 0.952168 -vt 0.165672 0.951916 vt 0.166033 0.944684 -vt 0.169417 0.942815 vt 0.164562 0.948303 -vt 0.166596 0.945097 -vt 0.165246 0.948395 vt 0.507413 0.952649 vt 0.505313 0.947007 vt 0.509953 0.950848 @@ -6764,7 +2865,6 @@ vt 0.477729 0.848052 vt 0.472954 0.850913 vt 0.479582 0.858578 vt 0.157244 0.800156 -vt 0.467929 0.425487 vt 0.498939 0.421464 vt 0.494112 0.421021 vt 0.147537 0.667691 @@ -6907,69 +3007,25 @@ vt 0.926803 0.522223 vt 0.717079 0.850025 vt 0.697889 0.850599 vt 0.717428 0.855838 -vt 0.613102 0.701990 -vt 0.607249 0.704798 vt 0.604947 0.699432 vt 0.592611 0.724172 vt 0.593958 0.711478 -vt 0.599324 0.712678 vt 0.597415 0.704236 -vt 0.312958 0.141183 -vt 0.288488 0.144289 vt 0.288507 0.148770 -vt 0.317240 0.144505 -vt 0.314711 0.143246 -vt 0.319804 0.145507 -vt 0.325454 0.142462 -vt 0.322554 0.143866 -vt 0.409234 0.135866 -vt 0.327219 0.140192 -vt 0.328247 0.138878 -vt 0.405721 0.101225 -vt 0.404279 0.105677 -vt 0.407977 0.107246 vt 0.413761 0.103579 -vt 0.405876 0.098902 -vt 0.306707 0.110882 -vt 0.309657 0.110962 -vt 0.309891 0.106421 vt 0.304331 0.110232 vt 0.306789 0.105923 -vt 0.297301 0.104416 vt 0.304667 0.104836 -vt 0.295338 0.103287 vt 0.297557 0.100926 -vt 0.293302 0.103617 vt 0.294488 0.100201 -vt 0.286363 0.106300 vt 0.281002 0.141297 -vt 0.285169 0.140549 vt 0.305962 0.103033 vt 0.298304 0.099009 vt 0.294755 0.098165 vt 0.291840 0.098506 -vt 0.292374 0.100537 vt 0.307621 0.103550 -vt 0.309891 0.106421 -vt 0.303415 0.111921 -vt 0.306196 0.112876 -vt 0.407352 0.130669 -vt 0.405962 0.129635 -vt 0.405654 0.131658 vt 0.411997 0.105183 -vt 0.290334 0.107950 vt 0.310018 0.103888 -vt 0.288440 0.150917 -vt 0.410611 0.137862 -vt 0.309823 0.112593 -vt 0.404333 0.130464 -vt 0.403938 0.100755 -vt 0.287801 0.103905 -vt 0.286167 0.102470 -vt 0.291353 0.108873 -vt 0.293525 0.104978 -vt 0.286523 0.140196 -vt 0.295221 0.104723 vt 0.467771 0.862417 vt 0.497984 0.436373 vt 0.497981 0.437334 @@ -6985,14 +3041,11 @@ vt 0.530971 0.430508 vt 0.530207 0.434348 vt 0.534930 0.434344 vt 0.534933 0.435180 -vt 0.534933 0.435180 vt 0.534935 0.435851 vt 0.530211 0.435865 vt 0.741145 0.587771 vt 0.741138 0.579863 vt 0.784380 0.579822 -vt 0.784380 0.579822 -vt 0.741138 0.579863 vt 0.741104 0.572114 vt 0.536277 0.431807 vt 0.536268 0.430545 @@ -7051,66 +3104,11 @@ vt 0.508686 0.443623 vt 0.508723 0.431665 vt 0.504603 0.443610 vt 0.507926 0.431663 -vt 0.410802 0.134669 vt 0.413032 0.107126 vt 0.415337 0.106231 vt 0.412617 0.135954 -vt 0.411997 0.105183 -vt 0.281002 0.141297 -vt 0.284455 0.105100 -vt 0.309891 0.106421 -vt 0.310018 0.103888 -vt 0.288507 0.148770 -vt 0.304331 0.110232 -vt 0.413761 0.103579 -vt 0.306789 0.105923 -vt 0.304667 0.104836 -vt 0.297557 0.100926 -vt 0.294488 0.100201 -vt 0.305962 0.103033 -vt 0.298304 0.099009 -vt 0.294755 0.098165 -vt 0.291840 0.098506 -vt 0.307621 0.103550 -vt 0.328674 0.137629 -vt 0.319775 0.144719 -vt 0.403791 0.098527 -vt 0.407173 0.108601 -vt 0.407718 0.109926 -vt 0.408817 0.109428 -vt 0.328434 0.133594 -vt 0.316677 0.139029 -vt 0.317532 0.135389 -vt 0.314226 0.135381 -vt 0.312794 0.139989 -vt 0.319269 0.131437 -vt 0.319955 0.127728 -vt 0.317360 0.129659 -vt 0.319718 0.142303 -vt 0.322593 0.139719 -vt 0.324800 0.135588 -vt 0.325386 0.131443 -vt 0.327174 0.129527 -vt 0.325027 0.127340 -vt 0.319686 0.138706 -vt 0.322039 0.131554 -vt 0.321220 0.135209 -vt 0.322767 0.126903 -vt 0.288842 0.142654 -vt 0.296744 0.105669 -vt 0.404441 0.107178 -vt 0.281673 0.142822 -vt 0.286951 0.148225 -vt 0.279556 0.143871 -vt 0.286064 0.150224 -vt 0.410802 0.134669 -vt 0.412617 0.135954 -vt 0.410802 0.134669 -vt 0.413032 0.107126 -vt 0.415337 0.106231 vt 0.284455 0.105100 vt 0.278808 0.141349 -vt 0.601402 0.707792 vt 0.464288 0.857946 vt 0.430491 0.785523 vt 0.430922 0.789755 @@ -7143,20 +3141,15 @@ vt 0.507074 0.443643 vt 0.507113 0.431685 vt 0.503826 0.431675 vt 0.510646 0.441203 -vt 0.506151 0.441448 vt 0.507810 0.441837 -vt 0.507140 0.440872 vt 0.528708 0.431775 vt 0.528715 0.434644 vt 0.528717 0.435489 vt 0.533441 0.435479 -vt 0.533441 0.435479 -vt 0.528717 0.435489 vt 0.528719 0.436161 vt 0.067244 0.893667 vt 0.062278 0.889043 vt 0.041841 0.899568 -vt 0.528715 0.434644 vt 0.533439 0.434643 vt 0.533438 0.433779 vt 0.420110 0.482081 @@ -7171,7 +3164,6 @@ vt 0.783848 0.868579 vt 0.426594 0.489238 vt 0.479489 0.785493 vt 0.432181 0.790646 -vt 0.479552 0.788234 vt 0.138986 0.619442 vt 0.527793 0.430554 vt 0.523847 0.430532 @@ -7214,7 +3206,6 @@ vt 0.467778 0.429604 vt 0.494848 0.426750 vt 0.499402 0.425107 vt 0.489382 0.771430 -vt 0.488196 0.788828 vt 0.510766 0.435967 vt 0.510768 0.435484 vt 0.512152 0.435975 @@ -7248,8 +3239,6 @@ vt 0.513321 0.441323 vt 0.513348 0.437216 vt 0.513611 0.437033 vt 0.513479 0.428610 -vt 0.513960 0.428667 -vt 0.513966 0.424552 vt 0.503406 0.437409 vt 0.507493 0.437415 vt 0.514611 0.436879 @@ -7268,25 +3257,17 @@ vt 0.517467 0.430640 vt 0.507491 0.438802 vt 0.515346 0.428669 vt 0.515827 0.428613 -vt 0.515352 0.424554 vt 0.512081 0.419451 vt 0.512113 0.430656 vt 0.509957 0.419458 vt 0.512155 0.435491 vt 0.924937 0.604905 -vt 0.823042 0.855453 -vt 0.510231 0.845136 vt 0.834678 0.853744 vt 0.936206 0.619330 vt 0.946414 0.608213 vt 0.838373 0.855453 vt 0.838373 0.857178 vt 0.935119 0.596362 -vt 0.823042 0.857179 -vt 0.505784 0.850420 -vt 0.528775 0.851703 -vt 0.516880 0.839562 -vt 0.520442 0.836072 vt 0.252649 0.671850 vt 0.216060 0.837967 vt 0.688976 0.721051 @@ -7366,16 +3347,13 @@ vt 0.397927 0.464479 vt 0.397927 0.457342 vt 0.347741 0.457341 vt 0.842467 0.852745 -vt 0.834622 0.844873 vt 0.822154 0.857297 vt 0.787926 0.822949 vt 0.775618 0.839118 vt 0.784584 0.838795 -vt 0.119684 0.819896 vt 0.126237 0.820376 vt 0.126494 0.822480 vt 0.043968 0.831329 -vt 0.037050 0.828634 vt 0.121011 0.813305 vt 0.377326 0.801464 vt 0.377276 0.833340 @@ -7389,7 +3367,6 @@ vt 0.264488 0.663647 vt 0.268153 0.665649 vt 0.688940 0.756131 vt 0.689025 0.756305 -vt 0.693601 0.747407 vt 0.987901 0.699231 vt 0.995953 0.699177 vt 0.220114 0.689486 @@ -7400,7 +3377,6 @@ vt 0.467704 0.425373 vt 0.494826 0.421949 vt 0.467887 0.426702 vt 0.467013 0.426422 -vt 0.467704 0.425373 vt 0.468799 0.429341 vt 0.468185 0.429873 vt 0.467346 0.429192 @@ -7416,7 +3392,6 @@ vt 0.837620 0.485005 vt 0.825367 0.485004 vt 0.812070 0.485004 vt 0.812071 0.477177 -vt 0.987930 0.703465 vt 0.995981 0.703411 vt 0.236699 0.817843 vt 0.233036 0.819558 @@ -7429,7 +3404,6 @@ vt 0.167737 0.702484 vt 0.229706 0.822739 vt 0.119645 0.817818 vt 0.126369 0.818161 -vt 0.126237 0.820376 vt 0.127194 0.807182 vt 0.127669 0.812736 vt 0.500038 0.426193 @@ -7441,26 +3415,18 @@ vt 0.460186 0.833470 vt 0.465924 0.833478 vt 0.465974 0.801603 vt 0.695669 0.735883 -vt 0.465974 0.801603 -vt 0.465924 0.833478 vt 0.589758 0.833672 vt 0.452231 0.833457 -vt 0.460186 0.833470 vt 0.460236 0.801593 vt 0.452281 0.801581 vt 0.270941 0.833175 -vt 0.706497 0.462469 vt 0.731733 0.462463 vt 0.731730 0.448114 -vt 0.706500 0.473447 vt 0.731735 0.473442 -vt 0.731733 0.462463 vt 0.744502 0.480559 vt 0.744475 0.455864 -vt 0.731733 0.462463 vt 0.706503 0.488064 vt 0.731738 0.488059 -vt 0.731735 0.473442 vt 0.151521 0.818331 vt 0.187828 0.891142 vt 0.181881 0.889467 @@ -7527,16 +3493,10 @@ vt 0.186143 0.489237 vt 0.197411 0.457342 vt 0.338586 0.457341 vt 0.186142 0.457322 -vt 0.787926 0.822949 -vt 0.800394 0.810525 vt 0.781838 0.791904 vt 0.769305 0.841505 vt 0.790535 0.841313 -vt 0.822154 0.857297 -vt 0.834622 0.844873 -vt 0.800394 0.810525 vt 0.814282 0.865143 -vt 0.822154 0.857297 vt 0.364285 0.464478 vt 0.665099 0.895783 vt 0.696240 0.896784 @@ -7555,14 +3515,9 @@ vt 0.517264 0.902279 vt 0.465653 0.886011 vt 0.473472 0.893576 vt 0.461836 0.878509 -vt 0.531071 0.731273 vt 0.527098 0.727704 vt 0.523628 0.734935 -vt 0.536918 0.728310 vt 0.522247 0.747613 -vt 0.528420 0.748113 -vt 0.528989 0.736149 -vt 0.542761 0.725538 vt 0.534645 0.722946 vt 0.717036 0.890009 vt 0.534917 0.430491 @@ -7597,28 +3552,15 @@ vt 0.519860 0.437209 vt 0.519310 0.440420 vt 0.529931 0.440635 vt 0.530292 0.436681 -vt 0.506125 0.436830 -vt 0.507183 0.437514 vt 0.510722 0.437437 -vt 0.510646 0.441203 -vt 0.510722 0.437437 -vt 0.507183 0.437514 vt 0.930383 0.894023 vt 0.928759 0.883534 vt 0.907068 0.886893 vt 0.506415 0.841924 -vt 0.506415 0.841924 vt 0.796689 0.857179 -vt 0.811898 0.853744 vt 0.532339 0.848213 -vt 0.833202 0.853744 -vt 0.359688 0.958662 vt 0.968182 0.968689 -vt 0.794545 0.965293 vt 0.804792 0.965320 -vt 0.536631 0.969780 -vt 0.542195 0.969746 -vt 0.379766 0.803761 vt 0.842763 0.443343 vt 0.050841 0.952323 vt 0.054072 0.949210 @@ -7647,27 +3589,19 @@ vt 0.177713 0.925811 vt 0.169469 0.975019 vt 0.277487 0.834962 vt 0.368558 0.820578 -vt 0.467205 0.425127 -vt 0.370634 0.800249 vt 0.650931 0.968701 vt 0.351976 0.840046 vt 0.533435 0.432916 -vt 0.598796 0.724641 -vt 0.530209 0.435193 vt 0.530209 0.435193 vt 0.784387 0.587733 vt 0.784346 0.571925 vt 0.532332 0.431836 vt 0.504640 0.431653 -vt 0.412617 0.135954 -vt 0.278808 0.141349 -vt 0.412617 0.135954 vt 0.842494 0.837028 vt 0.514929 0.443643 vt 0.927409 0.934733 vt 0.929762 0.924701 vt 0.906663 0.929866 -vt 0.533439 0.434643 vt 0.533442 0.436150 vt 0.528715 0.433781 vt 0.786503 0.868569 @@ -7680,13 +3614,10 @@ vt 0.488357 0.785906 vt 0.503401 0.440738 vt 0.458378 0.058547 vt 0.509556 0.437196 -vt 0.515346 0.428669 vt 0.513582 0.441326 vt 0.514620 0.431192 vt 0.414941 0.030725 vt 0.517435 0.419436 -vt 0.532339 0.848213 -vt 0.995981 0.703411 vt 0.688948 0.747403 vt 0.995924 0.695002 vt 0.594498 0.858432 @@ -7700,2181 +3631,5779 @@ vt 0.695084 0.980879 vt 0.829999 0.865170 vt 0.398608 0.801497 vt 0.268144 0.669886 -vt 0.688940 0.756131 vt 0.499658 0.422525 -vt 0.468430 0.425751 vt 0.232286 0.840869 vt 0.495422 0.427721 -vt 0.460236 0.801593 vt 0.589808 0.801796 vt 0.270991 0.801299 vt 0.706494 0.448119 -vt 0.706497 0.462469 -vt 0.731735 0.473442 -vt 0.706500 0.473447 vt 0.161689 0.457323 vt 0.769370 0.804329 -vt 0.787926 0.822949 vt 0.489394 0.507784 vt 0.537143 0.425757 vt 0.519297 0.436720 -vt 0.507140 0.440872 vt 0.507859 0.436561 vt 0.351639 0.962522 +s 1 +f 61/3/18 62/4/18 63/5/18 +f 64/6/19 65/7/18 66/8/18 +f 67/9/20 68/10/20 69/11/21 +f 70/12/22 71/13/22 72/14/22 +f 73/14/23 74/15/23 75/16/23 +f 76/17/24 77/18/25 78/19/26 +f 79/20/27 80/21/20 67/9/20 +f 79/20/27 69/11/21 81/22/28 +f 82/21/29 83/23/29 84/24/29 +f 85/25/30 86/26/30 87/27/31 +f 88/28/23 89/29/23 90/30/23 +f 91/25/32 92/19/32 93/31/32 +f 79/20/27 67/9/20 69/11/21 +f 94/32/33 95/33/33 96/34/33 +f 97/35/34 98/24/34 99/23/34 +f 100/36/23 101/37/23 102/38/23 +f 103/39/35 104/31/36 105/40/37 +f 106/41/33 107/42/33 108/43/33 +f 109/44/33 110/45/33 111/46/33 +f 111/46/33 112/47/33 113/48/33 +f 114/49/38 115/50/39 116/51/39 +f 117/52/40 118/53/39 114/49/38 +f 106/41/33 108/43/33 119/54/33 +f 120/55/41 121/56/41 122/57/41 +f 123/58/23 124/59/23 125/60/23 +f 123/58/23 125/60/23 126/61/23 +f 127/62/33 111/46/33 113/48/33 +f 110/45/33 112/47/33 111/46/33 +f 112/47/33 128/63/33 113/48/33 +f 115/50/39 129/64/39 116/51/39 +f 118/53/39 115/50/39 114/49/38 +f 108/43/33 130/65/33 119/54/33 +f 131/66/41 132/67/41 121/56/41 +f 121/56/41 132/67/41 122/57/41 +f 124/59/23 133/68/23 125/60/23 +f 125/60/23 134/69/23 126/61/23 +f 135/70/42 136/71/43 137/72/44 +f 138/73/45 139/74/45 117/52/40 +f 138/73/45 140/75/46 141/76/47 +f 140/75/46 142/77/48 143/78/49 +f 142/77/48 137/72/44 136/71/43 +f 144/79/50 137/72/44 64/6/19 +f 145/80/39 116/51/39 129/64/39 +f 146/7/51 147/81/51 148/82/51 +f 149/83/51 150/84/51 151/85/51 +f 152/86/39 153/41/39 154/54/39 +f 155/87/23 156/86/23 157/88/23 +f 158/89/23 159/90/23 160/91/23 +f 161/92/51 162/91/51 163/61/51 +f 109/44/33 164/93/33 110/45/33 +f 129/64/39 115/50/39 165/94/39 +f 107/42/33 166/95/33 108/43/33 +f 120/55/41 167/96/41 121/56/41 +f 123/58/23 168/97/23 124/59/23 +f 169/98/52 170/99/53 171/100/54 +f 172/101/55 173/102/56 174/103/57 +f 175/104/33 176/105/33 177/106/58 +f 178/107/33 179/108/33 180/109/33 +f 181/110/59 174/103/57 173/102/56 +f 182/111/41 183/112/41 184/113/41 +f 185/114/41 186/115/41 187/116/41 +f 188/117/41 189/118/41 190/119/41 +f 191/120/60 192/121/61 193/122/62 +f 194/123/51 195/124/51 196/125/51 +f 170/99/53 197/126/63 198/127/64 +f 189/128/41 199/129/41 200/130/41 +f 192/121/61 201/131/65 202/132/66 +f 195/124/51 203/133/51 204/134/51 +f 197/126/63 205/135/67 206/136/68 +f 199/137/41 207/138/41 208/139/41 +f 201/131/65 209/140/69 210/141/70 +f 203/133/51 211/142/51 212/143/51 +f 205/135/67 213/144/71 214/145/72 +f 207/138/41 215/146/41 216/147/41 +f 209/148/69 217/149/73 218/150/74 +f 211/142/51 219/151/51 220/152/51 +f 221/153/75 222/154/76 223/155/77 +f 215/146/41 224/156/41 225/157/41 +f 226/158/78 227/159/79 228/160/80 +f 219/151/51 229/161/51 230/162/51 +f 222/163/76 231/164/81 232/165/82 +f 224/156/41 233/166/41 234/167/41 +f 227/159/79 235/168/83 236/169/84 +f 229/161/51 237/170/51 238/171/51 +f 231/164/81 239/172/85 240/173/86 +f 233/166/41 241/174/41 242/175/41 +f 235/168/83 243/176/87 244/177/88 +f 237/170/51 245/178/51 246/179/51 +f 239/180/85 247/181/60 248/182/89 +f 241/174/41 249/183/41 250/184/41 +f 243/176/87 251/185/52 252/186/90 +f 245/178/51 253/187/51 254/188/51 +f 247/181/60 255/189/91 256/190/62 +f 249/183/41 257/191/41 258/192/41 +f 251/185/52 259/193/53 260/194/54 +f 253/187/51 261/195/51 262/196/51 +f 255/189/91 263/197/65 264/198/66 +f 257/191/41 265/199/41 266/200/41 +f 259/193/53 267/201/63 268/202/64 +f 261/195/51 269/203/51 270/204/51 +f 263/197/65 271/205/69 272/206/70 +f 265/199/41 273/207/41 274/208/41 +f 267/201/63 275/209/92 276/210/93 +f 269/203/51 277/211/51 278/212/51 +f 271/205/69 279/213/73 280/214/94 +f 273/207/41 281/215/41 282/216/41 +f 275/209/92 283/217/71 284/218/95 +f 277/211/51 285/219/51 286/220/51 +f 279/213/73 287/221/96 288/222/97 +f 281/215/41 289/223/41 290/224/41 +f 283/225/71 291/226/76 292/227/77 +f 285/219/51 293/228/51 294/229/51 +f 287/221/96 295/230/83 296/231/84 +f 289/223/41 297/232/41 298/233/41 +f 291/226/76 299/234/81 300/235/82 +f 293/228/51 301/236/51 302/237/51 +f 295/230/83 303/238/87 304/239/88 +f 297/232/41 305/240/41 306/241/41 +f 299/234/81 307/242/85 308/243/98 +f 301/236/51 309/244/51 310/245/51 +f 303/238/87 169/98/52 311/246/90 +f 305/240/41 188/117/41 312/247/41 +f 307/242/85 191/120/60 313/248/89 +f 309/244/51 194/123/51 314/249/51 +f 315/250/23 316/251/23 317/252/23 +f 316/251/23 318/253/23 319/254/23 +f 318/253/23 320/255/23 321/256/23 +f 320/255/23 322/257/23 323/258/23 +f 322/257/23 324/259/23 325/260/23 +f 324/259/23 326/261/23 327/262/23 +f 326/261/23 328/263/23 329/264/23 +f 328/263/23 330/265/23 331/266/23 +f 330/265/23 332/267/23 333/268/23 +f 332/267/23 334/269/23 335/270/23 +f 334/269/23 336/271/23 337/272/23 +f 336/271/23 315/250/23 338/273/23 +f 339/274/99 340/275/100 341/276/101 +f 342/277/102 343/278/103 344/279/104 +f 345/280/23 346/281/23 347/282/23 +f 348/283/105 339/274/99 349/284/106 +f 343/278/103 350/285/107 351/286/108 +f 346/281/23 352/287/23 347/282/23 +f 353/288/109 348/283/105 354/289/110 +f 350/285/107 355/290/111 356/291/112 +f 352/287/23 357/292/23 347/282/23 +f 358/293/113 359/294/114 360/295/115 +f 355/290/111 361/296/116 362/297/117 +f 357/292/23 363/298/23 347/282/23 +f 364/299/118 358/293/113 365/300/119 +f 361/296/116 366/301/120 367/302/121 +f 363/298/23 368/303/23 347/282/23 +f 369/304/122 364/299/118 370/305/123 +f 366/301/120 371/306/124 372/307/125 +f 368/303/23 373/308/23 347/282/23 +f 374/309/120 369/304/122 375/310/126 +f 371/306/124 376/311/127 377/312/123 +f 373/308/23 378/313/23 347/282/23 +f 379/314/128 374/309/120 380/315/129 +f 376/311/127 381/316/113 382/317/130 +f 378/313/23 383/318/23 347/282/23 +f 384/319/131 379/314/128 385/320/117 +f 381/316/113 386/321/114 387/322/115 +f 383/318/23 388/323/23 347/282/23 +f 389/324/107 384/319/131 390/325/132 +f 391/326/109 392/327/133 393/328/110 +f 388/323/23 394/329/23 347/282/23 +f 395/330/134 389/324/107 396/331/135 +f 392/327/133 397/332/99 398/333/136 +f 394/329/23 399/334/23 347/282/23 +f 340/275/100 395/330/134 400/335/104 +f 397/332/99 342/277/102 401/336/137 +f 399/334/23 345/280/23 347/282/23 +f 402/337/138 403/338/139 404/339/140 +f 405/340/141 406/341/142 407/342/143 +f 408/343/144 409/344/145 410/345/146 +f 411/346/147 412/347/148 413/348/149 +f 414/349/150 407/342/143 415/350/151 +f 416/351/152 407/342/143 414/349/150 +f 417/352/153 418/353/154 419/354/155 +f 420/355/156 421/356/157 417/352/153 +f 408/343/144 422/357/158 417/352/153 +f 423/358/159 424/359/160 404/339/140 +f 424/359/160 423/358/159 425/360/161 +f 424/359/160 426/361/162 427/362/163 +f 428/363/164 429/364/165 419/354/155 +f 430/365/166 428/363/164 431/366/167 +f 411/346/147 432/367/168 412/347/148 +f 433/368/169 434/369/170 415/350/151 +f 435/370/171 434/369/170 433/368/169 +f 436/371/172 434/369/170 437/372/173 +f 438/373/174 439/374/175 440/375/176 +f 441/376/177 440/375/176 439/374/175 +f 414/349/150 415/350/151 442/377/178 +f 443/378/179 413/348/149 444/379/180 +f 445/380/181 416/351/152 443/378/179 +f 411/346/147 413/348/149 446/381/182 +f 432/367/168 411/346/147 446/381/182 +f 446/381/182 413/348/149 443/378/179 +f 447/382/183 448/383/184 449/384/185 +f 434/369/170 442/377/178 415/350/151 +f 443/378/179 442/377/178 450/385/186 +f 451/386/187 452/387/188 436/371/172 +f 452/387/188 450/385/186 434/369/170 +f 446/381/182 452/387/188 451/386/187 +f 450/385/186 452/387/188 446/381/182 +f 449/384/185 451/386/187 447/382/183 +f 438/373/174 453/388/189 451/386/187 +f 454/389/190 437/372/173 435/370/171 +f 455/390/191 454/389/190 456/391/192 +f 457/392/193 403/338/139 402/337/138 +f 458/393/194 457/392/193 459/394/195 +f 429/364/165 409/344/145 408/343/144 +f 460/395/196 461/396/197 462/397/198 +f 437/372/173 434/369/170 435/370/171 +f 450/385/186 442/377/178 434/369/170 +f 416/351/152 414/349/150 442/377/178 +f 442/377/178 443/378/179 416/351/152 +f 445/380/181 443/378/179 444/379/180 +f 432/367/168 449/384/185 448/383/184 +f 453/388/189 447/382/183 451/386/187 +f 439/374/175 438/373/174 451/386/187 +f 462/397/198 412/347/148 430/365/166 +f 432/367/168 448/383/184 412/347/148 +f 412/347/148 448/383/184 429/364/165 +f 453/388/189 409/344/145 447/382/183 +f 438/373/174 409/344/145 453/388/189 +f 438/373/174 440/375/176 409/344/145 +f 440/375/176 441/376/177 463/398/199 +f 437/372/173 454/389/190 441/376/177 +f 441/376/177 455/390/191 458/393/194 +f 464/399/200 457/392/193 465/400/201 +f 403/338/139 457/392/193 464/399/200 +f 429/364/165 428/363/164 430/365/166 +f 412/347/148 429/364/165 430/365/166 +f 448/383/184 447/382/183 429/364/165 +f 409/344/145 429/364/165 447/382/183 +f 440/375/176 463/398/199 409/344/145 +f 441/376/177 458/393/194 463/398/199 +f 454/389/190 455/390/191 441/376/177 +f 455/390/191 465/400/201 458/393/194 +f 457/392/193 458/393/194 465/400/201 +f 466/401/202 467/402/203 456/391/192 +f 468/403/204 466/401/202 469/404/205 +f 470/405/206 471/406/207 469/404/205 +f 472/407/208 405/340/141 473/408/209 +f 474/409/33 475/410/33 476/411/33 +f 477/412/121 478/413/117 479/414/210 +f 480/415/125 477/412/121 481/416/120 +f 478/413/117 482/417/112 483/418/111 +f 484/419/123 480/415/125 485/420/124 +f 486/421/211 484/419/123 487/422/212 +f 482/417/112 488/423/213 489/424/107 +f 490/425/214 486/421/211 491/426/113 +f 492/427/110 490/425/214 493/428/114 +f 488/423/213 494/429/104 495/430/103 +f 496/431/136 492/427/110 497/432/133 +f 498/433/137 496/431/136 499/434/99 +f 494/429/104 498/433/137 500/435/102 +f 501/436/33 502/437/33 503/413/33 +f 504/438/33 501/436/33 505/412/33 +f 502/437/33 506/439/33 507/417/33 +f 508/440/33 504/438/33 509/415/33 +f 510/441/33 508/440/33 511/419/33 +f 506/439/33 512/442/33 513/423/33 +f 474/443/33 510/441/33 514/421/33 +f 515/444/33 474/443/33 516/425/33 +f 512/442/33 517/445/33 518/429/33 +f 519/446/33 515/444/33 520/427/33 +f 521/447/33 519/446/33 522/431/33 +f 517/445/33 521/447/33 523/433/33 +f 524/448/33 525/449/33 526/450/33 +f 527/451/116 528/452/120 529/453/121 +f 530/454/111 527/451/116 531/455/117 +f 526/450/33 525/449/33 532/456/33 +f 528/452/120 533/457/124 534/458/125 +f 535/459/33 525/449/33 524/448/33 +f 532/456/33 525/449/33 536/460/33 +f 533/457/124 537/461/127 538/462/123 +f 539/463/107 530/454/111 540/464/112 +f 536/460/33 525/449/33 541/465/33 +f 537/461/127 542/466/215 543/467/215 +f 544/468/33 525/449/33 535/459/33 +f 541/465/33 525/449/33 545/469/33 +f 546/470/216 547/471/216 548/472/217 +f 549/473/103 539/463/107 550/474/108 +f 545/469/33 525/449/33 551/475/33 +f 552/476/218 553/477/219 554/478/219 +f 555/479/33 525/449/33 544/468/33 +f 551/475/33 525/449/33 556/480/33 +f 546/470/216 557/481/99 558/482/136 +f 559/483/102 549/473/103 560/484/104 +f 556/480/33 525/449/33 561/485/33 +f 557/481/99 559/483/102 562/486/137 +f 561/485/33 525/449/33 555/479/33 +f 563/487/220 548/472/217 554/478/219 +f 474/409/33 515/488/33 475/410/33 +f 543/467/215 542/466/215 564/489/221 +f 565/490/222 566/491/223 552/476/218 +f 476/492/33 475/493/33 567/494/33 +f 476/411/33 510/495/33 474/409/33 +f 568/496/33 569/497/33 570/498/33 +f 571/499/224 572/500/225 573/501/226 +f 574/502/23 575/503/23 576/504/23 +f 570/498/33 569/497/33 577/505/33 +f 572/500/225 578/506/227 579/507/228 +f 575/503/23 580/508/23 576/504/23 +f 577/505/33 569/497/33 581/509/33 +f 578/506/227 582/510/229 583/511/230 +f 580/508/23 584/512/23 576/504/23 +f 581/509/33 569/497/33 585/513/33 +f 586/514/231 587/515/232 588/516/233 +f 584/512/23 589/517/23 576/504/23 +f 585/513/33 569/497/33 590/518/33 +f 587/515/232 591/519/234 592/520/235 +f 589/517/23 593/521/23 576/504/23 +f 590/518/33 569/497/33 594/522/33 +f 591/519/234 595/523/236 596/524/237 +f 597/525/33 598/526/238 599/527/238 +f 593/521/23 600/528/23 576/504/23 +f 594/522/33 569/497/33 601/529/33 +f 599/527/238 598/526/238 602/530/239 +f 595/523/236 603/531/240 604/532/241 +f 600/528/23 605/533/23 576/504/23 +f 606/534/242 607/535/243 608/536/244 +f 609/537/245 606/534/242 610/538/246 +f 601/529/33 569/497/33 568/496/33 +f 603/531/240 571/499/224 611/539/247 +f 605/533/23 574/502/23 576/504/23 +f 612/540/248 613/541/249 614/542/250 +f 615/543/251 616/544/252 612/540/248 +f 617/545/253 618/546/254 619/547/33 +f 620/548/255 621/549/256 622/550/23 +f 623/551/257 624/552/258 625/553/259 +f 607/535/243 626/554/260 627/555/261 +f 628/556/262 629/557/263 630/558/264 +f 620/548/255 631/559/265 621/549/256 +f 632/554/18 633/560/18 634/561/18 +f 635/562/33 636/563/33 637/564/33 +f 175/104/33 638/565/33 639/566/33 +f 640/567/266 641/568/267 642/569/268 +f 630/558/264 629/557/263 643/570/269 +f 644/571/270 645/572/271 646/573/33 +f 647/574/18 648/575/18 649/576/18 +f 650/577/18 649/576/18 648/575/18 +f 651/578/23 652/579/23 653/580/23 +f 654/581/272 655/582/273 642/569/268 +f 656/583/274 657/584/18 658/585/275 +f 619/547/33 618/546/254 659/586/33 +f 660/587/39 661/588/39 662/589/39 +f 645/572/271 663/590/33 646/573/33 +f 664/591/39 665/592/39 666/593/39 +f 662/589/39 661/588/39 664/594/39 +f 667/595/41 668/596/41 669/597/41 +f 668/596/41 670/598/41 671/599/41 +f 672/600/41 673/601/41 671/599/41 +f 674/602/39 675/603/39 676/604/39 +f 677/605/276 678/606/277 679/607/277 +f 680/608/278 617/545/253 681/609/279 +f 628/556/262 682/610/253 683/611/280 +f 684/612/255 623/551/257 685/613/281 +f 686/614/282 687/615/283 688/616/284 +f 688/616/284 687/615/283 689/617/285 +f 688/616/284 689/617/285 690/618/286 +f 688/616/284 690/618/286 691/619/55 +f 692/620/287 693/621/288 694/622/58 +f 695/623/289 696/624/290 697/625/284 +f 698/626/291 699/627/292 700/628/293 +f 701/629/294 693/621/288 702/630/295 +f 703/631/33 704/632/33 702/630/295 +f 704/632/33 705/633/33 702/630/295 +f 706/634/33 702/630/295 705/633/33 +f 693/621/288 703/631/33 702/630/295 +f 703/631/33 693/621/288 692/620/287 +f 707/635/296 708/636/297 709/637/298 +f 710/638/23 711/639/23 712/640/299 +f 713/641/33 714/642/33 715/643/300 +f 716/644/23 717/645/23 718/646/23 +f 716/644/23 719/647/301 720/648/23 +f 710/638/23 712/640/299 721/649/23 +f 721/649/23 722/650/23 723/651/23 +f 723/651/23 724/652/23 725/653/23 +f 726/654/33 727/655/33 728/656/302 +f 729/657/33 730/658/33 731/659/33 +f 732/660/33 729/657/33 733/661/33 +f 714/642/33 732/660/33 734/662/33 +f 713/641/33 715/643/300 735/663/33 +f 711/639/23 736/664/23 719/647/301 +f 720/648/23 717/645/23 716/644/23 +f 717/645/23 725/653/23 718/646/23 +f 719/647/301 736/664/23 720/648/23 +f 712/640/299 722/650/23 721/649/23 +f 722/650/23 724/652/23 723/651/23 +f 724/652/23 718/646/23 725/653/23 +f 737/665/33 735/663/33 728/656/302 +f 730/658/33 727/655/33 726/654/33 +f 727/655/33 737/665/33 728/656/302 +f 730/658/33 726/654/33 731/659/33 +f 729/657/33 731/659/33 733/661/33 +f 732/660/33 733/661/33 734/662/33 +f 715/643/300 728/656/302 735/663/33 +f 738/666/39 675/603/39 674/602/39 +f 739/667/303 740/668/304 741/669/305 +f 742/670/33 743/671/306 740/668/304 +f 744/672/33 742/670/33 745/673/307 +f 746/674/308 744/672/33 747/675/309 +f 701/629/294 747/675/309 745/673/307 +f 748/676/310 707/635/296 749/677/311 +f 750/678/39 664/594/39 666/679/39 +f 751/680/312 752/681/313 613/541/249 +f 753/682/314 702/630/295 706/634/33 +f 754/683/315 753/682/314 706/634/33 +f 619/547/33 681/609/279 617/545/253 +f 755/684/33 756/685/33 757/686/33 +f 758/687/315 759/688/316 760/689/317 +f 616/544/252 761/690/318 762/691/319 +f 659/586/33 763/692/316 706/634/33 +f 663/590/33 706/634/33 174/103/57 +f 764/693/39 674/694/39 765/695/39 +f 766/696/51 767/697/51 768/698/320 +f 769/699/321 770/700/322 771/701/323 +f 772/643/324 773/662/325 774/702/326 +f 775/703/327 776/704/328 777/659/329 +f 778/705/330 774/702/326 773/662/325 +f 779/370/331 780/391/332 781/706/333 +f 781/706/333 782/350/334 783/368/335 +f 784/342/336 785/380/337 786/351/338 +f 787/340/339 788/379/340 785/380/337 +f 789/348/341 788/379/340 787/340/339 +f 784/342/336 787/340/339 785/380/337 +f 790/353/342 791/354/343 792/366/344 +f 793/707/345 794/356/346 790/353/342 +f 795/345/347 796/343/348 797/357/349 +f 798/708/350 795/345/347 799/709/351 +f 800/394/352 798/708/350 801/710/353 +f 802/337/354 800/394/352 803/711/355 +f 804/339/356 802/337/354 805/712/357 +f 806/360/358 807/713/359 808/402/360 +f 809/714/361 801/710/353 799/709/351 +f 810/715/362 803/711/355 801/710/353 +f 811/716/363 805/712/357 803/711/355 +f 812/717/364 813/362/365 805/712/357 +f 814/718/366 799/709/351 815/357/367 +f 816/393/368 817/398/369 798/708/350 +f 818/396/370 819/397/371 820/408/372 +f 783/368/335 779/370/331 781/706/333 +f 820/408/372 789/348/341 787/340/339 +f 821/719/373 790/353/342 792/366/344 +f 821/719/373 793/707/345 790/353/342 +f 801/710/353 798/708/350 799/709/351 +f 803/711/355 800/394/352 801/710/353 +f 805/712/357 802/337/354 803/711/355 +f 813/362/365 804/339/356 805/712/357 +f 822/358/374 806/360/358 808/402/360 +f 814/718/366 809/714/361 799/709/351 +f 809/714/361 810/715/362 801/710/353 +f 810/715/362 811/716/363 803/711/355 +f 811/716/363 812/717/364 805/712/357 +f 823/720/375 814/718/366 815/357/367 +f 824/405/376 825/341/377 784/342/336 +f 817/398/369 826/344/378 795/345/347 +f 820/408/372 827/347/379 789/348/341 +f 781/706/333 784/342/336 782/350/334 +f 790/353/342 794/356/346 828/352/380 +f 813/362/365 829/359/381 804/339/356 +f 812/717/364 830/361/382 813/362/365 +f 831/400/383 822/358/374 808/402/360 +f 832/399/384 804/339/356 822/358/374 +f 833/390/385 831/400/383 808/402/360 +f 831/400/383 832/399/384 822/358/374 +f 832/399/384 834/338/386 804/339/356 +f 643/570/269 707/635/296 835/721/387 +f 836/722/39 837/723/39 665/592/39 +f 625/553/259 838/724/388 685/613/281 +f 839/725/389 838/724/388 840/726/390 +f 841/727/391 842/728/313 614/542/250 +f 843/729/392 625/553/259 624/552/258 +f 844/730/23 845/731/23 846/732/23 +f 847/733/39 848/734/39 849/735/39 +f 850/735/23 851/736/23 852/737/23 +f 853/738/393 854/739/394 855/740/393 +f 856/740/18 857/739/18 858/741/18 +f 859/742/395 860/743/395 861/744/39 +f 738/666/39 664/594/39 661/588/39 +f 842/728/313 862/745/312 614/542/250 +f 863/746/396 864/747/397 616/544/252 +f 616/544/252 615/543/251 865/748/398 +f 612/540/248 614/542/250 866/749/399 +f 614/542/250 613/541/249 867/750/400 +f 868/751/39 869/752/39 870/753/39 +f 871/754/51 841/727/391 872/755/401 +f 873/756/51 842/728/313 841/727/391 +f 874/757/402 875/758/51 876/759/51 +f 872/755/401 877/760/403 878/761/403 +f 865/748/398 863/746/396 616/544/252 +f 879/762/39 868/751/39 880/763/39 +f 616/544/252 762/691/319 881/764/404 +f 700/628/293 882/765/405 883/766/406 +f 884/767/407 885/768/408 886/769/23 +f 883/766/406 886/769/23 887/770/409 +f 888/771/23 889/772/23 890/773/410 +f 891/774/411 890/773/410 892/775/23 +f 890/776/410 887/770/409 888/777/23 +f 882/765/405 886/769/23 883/766/406 +f 882/765/405 893/778/412 886/769/23 +f 893/778/412 884/767/407 886/769/23 +f 885/768/408 894/779/23 886/769/23 +f 886/769/23 888/777/23 887/770/409 +f 888/771/23 895/780/23 889/772/23 +f 889/772/23 896/781/23 890/773/410 +f 890/773/410 896/781/23 892/775/23 +f 897/782/39 898/783/39 899/784/39 +f 900/785/39 901/786/39 898/787/39 +f 902/788/39 903/789/39 897/782/39 +f 898/783/39 904/790/39 899/784/39 +f 898/787/39 905/791/39 900/785/39 +f 906/792/39 904/793/39 898/787/39 +f 905/791/39 898/787/39 869/752/39 +f 907/794/413 908/795/414 909/796/415 +f 910/797/33 907/794/413 911/798/416 +f 406/341/142 405/340/141 912/407/417 +f 913/799/418 472/407/208 461/396/197 +f 914/800/419 915/801/420 472/407/208 +f 914/800/419 913/799/418 916/719/421 +f 431/366/167 916/719/421 913/799/418 +f 917/713/422 467/402/203 466/401/202 +f 918/802/423 426/361/162 424/359/160 +f 918/802/423 425/360/161 917/713/422 +f 917/713/422 466/401/202 468/403/204 +f 417/352/153 919/357/424 920/720/425 +f 407/342/143 470/405/206 921/706/426 +f 410/345/146 463/398/199 922/708/427 +f 412/347/148 462/397/198 473/408/209 +f 456/391/192 921/706/426 469/404/205 +f 456/391/192 435/370/171 921/706/426 +f 415/350/151 921/706/426 433/368/169 +f 445/380/181 407/342/143 416/351/152 +f 444/379/180 405/340/141 445/380/181 +f 444/379/180 413/348/149 405/340/141 +f 405/340/141 407/342/143 445/380/181 +f 419/354/155 418/353/154 431/366/167 +f 421/356/157 923/707/428 418/353/154 +f 410/345/146 924/709/429 422/357/158 +f 410/345/146 922/708/427 924/709/429 +f 922/708/427 459/394/195 925/710/430 +f 459/394/195 402/337/138 926/711/431 +f 402/337/138 404/339/140 927/712/432 +f 917/713/422 425/360/161 467/402/203 +f 925/710/430 928/714/433 924/709/429 +f 926/711/431 929/715/434 925/710/430 +f 927/712/432 930/716/435 926/711/431 +f 427/362/163 931/717/436 927/712/432 +f 924/709/429 932/718/437 919/357/424 +f 463/398/199 458/393/194 922/708/427 +f 462/397/198 461/396/197 473/408/209 +f 435/370/171 433/368/169 921/706/426 +f 413/348/149 473/408/209 405/340/141 +f 418/353/154 916/719/421 431/366/167 +f 923/707/428 916/719/421 418/353/154 +f 922/708/427 925/710/430 924/709/429 +f 459/394/195 926/711/431 925/710/430 +f 402/337/138 927/712/432 926/711/431 +f 404/339/140 427/362/163 927/712/432 +f 425/360/161 423/358/159 467/402/203 +f 928/714/433 932/718/437 924/709/429 +f 929/715/434 928/714/433 925/710/430 +f 930/716/435 929/715/434 926/711/431 +f 931/717/436 930/716/435 927/712/432 +f 932/718/437 920/720/425 919/357/424 +f 406/341/142 470/405/206 407/342/143 +f 409/344/145 463/398/199 410/345/146 +f 412/347/148 473/408/209 413/348/149 +f 407/342/143 921/706/426 415/350/151 +f 421/356/157 418/353/154 417/352/153 +f 424/359/160 427/362/163 404/339/140 +f 426/361/162 931/717/436 427/362/163 +f 423/358/159 465/400/201 467/402/203 +f 404/339/140 464/399/200 423/358/159 +f 465/400/201 455/390/191 467/402/203 +f 464/399/200 465/400/201 423/358/159 +f 403/338/139 464/399/200 404/339/140 +f 834/338/386 802/337/354 804/339/356 +f 825/341/377 787/340/339 784/342/336 +f 826/344/378 796/343/348 795/345/347 +f 827/347/379 933/346/438 789/348/341 +f 784/342/336 934/349/439 782/350/334 +f 784/342/336 786/351/338 934/349/439 +f 790/353/342 828/352/380 791/354/343 +f 794/356/346 935/355/440 828/352/380 +f 796/343/348 791/354/343 828/352/380 +f 829/359/381 822/358/374 804/339/356 +f 822/358/374 829/359/381 806/360/358 +f 830/361/382 829/359/381 813/362/365 +f 936/363/441 792/366/344 791/354/343 +f 937/365/442 938/395/443 792/366/344 +f 939/367/444 933/346/438 827/347/379 +f 940/369/445 783/368/335 782/350/334 +f 940/369/445 779/370/331 783/368/335 +f 941/371/446 942/376/447 943/372/448 +f 944/374/449 945/373/450 946/375/451 +f 942/376/447 941/371/446 944/374/449 +f 782/350/334 934/349/439 947/377/452 +f 789/348/341 948/378/453 788/379/340 +f 786/351/338 785/380/337 948/378/453 +f 789/348/341 933/346/438 949/381/454 +f 939/367/444 950/384/455 949/381/454 +f 789/348/341 949/381/454 948/378/453 +f 951/383/456 952/382/457 950/384/455 +f 947/377/452 940/369/445 782/350/334 +f 947/377/452 948/378/453 953/385/458 +f 954/386/459 944/374/449 941/371/446 +f 955/387/460 941/371/446 940/369/445 +f 949/381/454 950/384/455 954/386/459 +f 953/385/458 948/378/453 949/381/454 +f 954/386/459 950/384/455 952/382/457 +f 956/388/461 945/373/450 954/386/459 +f 957/389/462 780/391/332 779/370/331 +f 833/390/385 808/402/360 780/391/332 +f 958/392/463 800/394/352 802/337/354 +f 816/393/368 798/708/350 800/394/352 +f 959/364/464 791/354/343 796/343/348 +f 938/395/443 937/365/442 819/397/371 +f 940/369/445 943/372/448 779/370/331 +f 947/377/452 953/385/458 940/369/445 +f 934/349/439 786/351/338 947/377/452 +f 948/378/453 947/377/452 786/351/338 +f 948/378/453 785/380/337 788/379/340 +f 950/384/455 939/367/444 951/383/456 +f 952/382/457 956/388/461 954/386/459 +f 945/373/450 944/374/449 954/386/459 +f 827/347/379 819/397/371 937/365/442 +f 951/383/456 939/367/444 827/347/379 +f 951/383/456 827/347/379 959/364/464 +f 826/344/378 956/388/461 952/382/457 +f 826/344/378 945/373/450 956/388/461 +f 946/375/451 945/373/450 826/344/378 +f 942/376/447 946/375/451 817/398/369 +f 957/389/462 943/372/448 942/376/447 +f 833/390/385 942/376/447 816/393/368 +f 958/392/463 832/399/384 831/400/383 +f 958/392/463 834/338/386 832/399/384 +f 936/363/441 959/364/464 937/365/442 +f 959/364/464 827/347/379 937/365/442 +f 952/382/457 951/383/456 959/364/464 +f 959/364/464 826/344/378 952/382/457 +f 817/398/369 946/375/451 826/344/378 +f 816/393/368 942/376/447 817/398/369 +f 833/390/385 957/389/462 942/376/447 +f 831/400/383 833/390/385 816/393/368 +f 816/393/368 958/392/463 831/400/383 +f 960/401/465 961/404/466 780/391/332 +f 962/403/467 963/406/468 961/404/466 +f 824/405/376 781/706/333 961/404/466 +f 964/407/469 818/396/370 820/408/372 +f 825/341/377 965/801/470 966/407/471 +f 967/799/472 938/395/443 818/396/370 +f 968/800/473 967/799/472 964/407/469 +f 968/800/473 793/707/345 821/719/373 +f 792/366/344 938/395/443 967/799/472 +f 808/402/360 807/713/359 960/401/465 +f 969/802/474 806/360/358 829/359/381 +f 969/802/474 970/803/475 807/713/359 +f 807/713/359 970/803/475 962/403/467 +f 828/352/380 935/355/440 823/720/375 +f 824/405/376 784/342/336 781/706/333 +f 817/398/369 795/345/347 798/708/350 +f 819/397/371 827/347/379 820/408/372 +f 781/706/333 780/391/332 961/404/466 +f 971/661/476 777/659/329 776/704/328 +f 972/804/477 708/636/297 707/635/296 +f 646/573/33 663/590/33 973/805/33 +f 643/570/269 629/557/263 683/611/280 +f 835/721/387 707/635/296 748/676/310 +f 974/806/33 973/805/33 181/110/59 +f 835/721/387 630/558/264 643/570/269 +f 760/689/317 975/807/478 976/808/314 +f 977/809/254 978/810/479 759/688/316 +f 975/807/478 979/811/480 980/812/295 +f 628/556/262 630/558/264 977/809/254 +f 978/810/479 760/689/317 759/688/316 +f 979/811/480 981/813/481 982/814/294 +f 981/813/481 983/815/482 984/816/483 +f 984/816/483 983/815/482 770/700/322 +f 771/701/323 770/700/322 983/815/482 +f 985/817/484 984/816/483 770/700/322 +f 682/610/253 628/556/262 977/809/254 +f 986/818/485 987/819/486 988/820/487 +f 989/821/23 652/579/23 990/822/23 +f 676/604/39 880/763/39 991/823/39 +f 989/821/23 653/580/23 652/579/23 +f 651/578/23 992/824/23 652/579/23 +f 993/825/488 994/826/489 995/827/490 +f 664/594/39 738/666/39 764/828/39 +f 996/829/491 997/830/492 998/831/493 +f 999/832/23 1000/833/23 997/834/492 +f 1001/835/33 1002/606/33 1003/836/33 +f 752/681/313 867/750/400 613/541/249 +f 1004/607/33 1002/606/33 1001/835/33 +f 1005/837/33 757/686/33 756/685/33 +f 1006/838/39 1007/839/39 1008/840/39 +f 1009/840/33 1010/839/33 1011/841/33 +f 1012/842/494 1013/843/494 1014/844/494 +f 1015/838/495 1016/845/496 1017/846/495 +f 1018/847/497 1019/848/498 1020/849/499 +f 1021/850/500 1020/849/499 1019/848/498 +f 1022/851/501 656/583/274 1023/852/502 +f 1024/853/18 1025/854/18 1026/855/18 +f 1020/849/499 1027/856/503 1018/847/497 +f 837/723/39 666/593/39 665/592/39 +f 1028/857/504 1029/858/33 1030/576/271 +f 636/563/33 1031/859/33 637/564/33 +f 1032/860/395 1033/861/39 1034/862/39 +f 1035/863/33 1031/859/33 179/108/33 +f 1036/864/33 179/108/33 1037/865/505 +f 1038/866/33 1037/865/505 1039/867/56 +f 1040/868/33 1039/867/56 691/619/55 +f 1041/869/506 1042/870/507 1043/871/508 +f 638/565/33 636/563/33 1044/872/33 +f 637/564/33 1031/859/33 1045/873/33 +f 1045/873/33 1031/859/33 1035/863/33 +f 1036/864/33 1035/863/33 179/108/33 +f 1038/866/33 1036/864/33 1037/865/505 +f 1037/865/505 179/108/33 178/107/33 +f 1040/868/33 1038/866/33 1039/867/56 +f 1046/874/509 1040/868/33 691/619/55 +f 1046/874/509 691/619/55 690/618/286 +f 177/106/58 176/105/33 1047/875/33 +f 686/614/282 177/106/58 1047/875/33 +f 1048/876/33 636/563/33 638/565/33 +f 639/566/33 638/565/33 1044/872/33 +f 1044/872/33 636/563/33 635/562/33 +f 1049/877/510 1050/878/511 987/819/486 +f 1051/879/41 186/115/41 185/114/41 +f 184/113/41 183/112/41 186/115/41 +f 1052/880/51 766/696/51 867/750/400 +f 1053/881/512 768/698/320 767/697/51 +f 768/698/320 1053/881/512 1054/882/403 +f 1055/883/513 761/690/318 616/544/252 +f 745/673/307 740/668/304 1056/884/514 +f 693/621/288 1057/885/515 694/622/58 +f 1058/886/516 1059/887/517 739/667/303 +f 1060/888/518 1061/889/58 1062/890/519 +f 740/668/304 739/667/303 1059/887/517 +f 745/673/307 1057/885/515 693/621/288 +f 974/806/33 181/110/59 1029/858/33 +f 612/540/248 881/764/404 613/541/249 +f 864/747/397 1055/883/513 616/544/252 +f 1063/891/33 1064/892/33 1065/893/33 +f 763/692/316 754/683/315 706/634/33 +f 706/634/33 695/623/289 174/103/57 +f 973/805/33 663/590/33 181/110/59 +f 181/110/59 1030/576/271 1029/858/33 +f 174/103/57 181/110/59 663/590/33 +f 630/558/264 978/810/479 977/809/254 +f 1066/894/41 1051/895/41 185/896/41 +f 187/116/41 186/115/41 183/112/41 +f 676/604/39 675/603/39 880/763/39 +f 1067/897/520 1068/898/39 1069/899/39 +f 1070/900/521 645/572/271 644/571/270 +f 1028/857/504 1030/576/271 1071/577/521 +f 1072/901/51 1073/902/51 1074/903/51 +f 1075/904/51 1072/901/51 1076/905/51 +f 1074/903/51 1077/906/51 1076/905/51 +f 1072/901/51 1074/903/51 1076/905/51 +f 1075/904/51 1078/907/51 1072/901/51 +f 1079/908/39 1080/909/522 1081/910/523 +f 1082/911/33 1083/912/33 1084/913/524 +f 1085/914/41 1086/915/41 1087/916/41 +f 1088/917/51 1089/918/51 1090/919/51 +f 1091/920/41 1092/921/41 1087/916/41 +f 1084/913/524 1081/910/523 1080/909/522 +f 1093/922/525 1094/923/33 1095/924/33 +f 1093/922/525 1096/925/525 1097/926/526 +f 1098/927/527 1099/928/528 1100/929/529 +f 1101/930/51 1102/931/51 1103/932/51 +f 1103/932/51 1102/931/51 1076/905/51 +f 1104/933/23 1105/929/23 1106/928/23 +f 1107/934/39 1108/935/530 1109/936/531 +f 1110/937/23 1111/938/532 1112/939/533 +f 1113/940/41 1114/941/41 1115/942/41 +f 1092/921/41 1091/920/41 1116/943/41 +f 1116/943/41 1117/944/41 1115/942/41 +f 1112/939/533 1111/938/532 1118/945/534 +f 1119/946/535 1120/947/535 1121/948/23 +f 1109/936/531 1108/935/530 1122/949/527 +f 1090/919/51 1078/907/51 1075/904/51 +f 1123/950/33 1124/951/33 1125/927/33 +f 1119/946/535 1126/952/536 1127/953/536 +f 1128/954/537 1097/926/526 1127/953/536 +f 1073/902/51 1129/955/51 1074/903/51 +f 1130/956/33 94/32/33 96/34/33 +f 1131/17/34 97/35/34 99/23/34 +f 1132/12/23 100/36/23 102/38/23 +f 1133/957/35 103/39/35 105/40/37 +f 1134/958/33 1135/959/33 1130/956/33 +f 1136/960/538 105/40/37 1137/961/539 +f 96/34/33 1134/958/33 1130/956/33 +f 1135/959/33 1138/962/33 1130/956/33 +f 1131/17/34 99/23/34 1139/18/34 +f 102/38/23 1140/13/23 1132/12/23 +f 105/40/37 104/31/36 1137/961/539 +f 1141/37/540 1142/36/540 1143/28/540 +f 1144/963/541 177/106/58 686/614/282 +f 883/766/406 1145/964/542 698/626/291 +f 883/766/406 698/626/291 700/628/293 +f 699/627/292 1043/871/508 700/628/293 +f 705/633/33 696/624/290 695/623/289 +f 1146/965/543 1147/966/544 1148/967/545 +f 1149/968/546 1150/969/547 1151/970/548 +f 1152/971/549 1153/972/550 1154/973/551 +f 1153/972/550 1155/974/552 1154/973/551 +f 1042/870/507 700/628/293 1043/871/508 +f 1151/970/548 1150/969/547 1156/975/39 +f 1157/976/23 1158/977/553 1159/978/23 +f 1160/979/552 1145/964/542 883/766/406 +f 1152/971/549 1161/980/23 1153/972/550 +f 1162/981/554 1163/982/292 1164/983/555 +f 1165/984/18 1166/985/18 1167/986/556 +f 1168/987/557 1152/971/549 1169/988/558 +f 1161/980/23 1170/989/23 1153/972/550 +f 714/642/33 734/662/33 715/643/300 +f 711/639/23 719/647/301 712/640/299 +f 1171/990/18 1172/991/18 1173/992/559 +f 1174/993/560 1175/994/561 1176/995/41 +f 1175/996/561 1174/997/560 1177/998/39 +f 1178/999/51 1179/1000/51 1180/1001/562 +f 1181/1002/494 1182/1003/494 1183/1004/494 +f 1184/1005/563 655/582/273 654/581/272 +f 1182/1003/494 1185/1006/494 1183/1004/494 +f 1186/1007/494 1181/1002/494 1187/1008/494 +f 618/546/254 763/692/316 659/586/33 +f 1188/1009/41 1189/1010/41 1190/1011/41 +f 1191/1012/41 1192/1013/41 1189/1010/41 +f 993/825/488 1193/1014/564 994/826/489 +f 701/629/294 745/673/307 693/621/288 +f 747/675/309 744/672/33 745/673/307 +f 1182/1003/494 1012/842/494 1014/844/494 +f 1194/1015/494 1014/844/494 1013/843/494 +f 742/670/33 740/668/304 745/673/307 +f 1187/1008/494 1181/1002/494 1183/1004/494 +f 743/671/306 741/669/305 740/668/304 +f 675/603/39 879/762/39 880/763/39 +f 1050/878/511 988/820/487 987/819/486 +f 908/795/414 1195/1016/565 998/831/493 +f 1196/1017/566 993/825/488 995/827/490 +f 1176/995/41 1197/1018/559 1173/992/559 +f 1178/999/51 1198/1019/567 1199/1020/568 +f 1180/1001/562 1200/1021/39 1177/1022/39 +f 1201/1023/18 1199/1020/568 1198/1019/567 +f 1202/1024/277 1203/1025/569 1204/1026/277 +f 677/605/276 679/607/277 1204/1026/277 +f 1205/1027/41 1206/1028/41 1207/1029/41 +f 1208/1030/41 1209/1031/41 1207/1029/41 +f 1210/1032/41 1211/1033/41 1209/1031/41 +f 1212/1034/39 662/589/39 664/594/39 +f 888/771/23 1213/1035/411 895/780/23 +f 900/785/39 1214/1036/39 901/786/39 +f 1215/1037/258 622/550/23 894/779/23 +f 1216/1038/274 1217/1039/502 1218/1040/570 +f 1219/1041/51 1220/822/51 1221/1042/51 +f 1222/1043/33 1223/1044/33 1224/1045/33 +f 1225/774/18 1226/1046/18 1227/1047/18 +f 1228/1048/18 1229/773/18 1225/774/18 +f 1213/1035/411 1230/1049/571 895/780/23 +f 1231/1050/572 1232/1051/572 1233/1052/573 +f 1234/1053/574 658/585/275 1218/1040/570 +f 1235/1054/23 1236/1055/23 1237/1056/23 +f 1238/1057/33 1239/1058/33 1240/1059/33 +f 1241/1060/575 1242/1061/575 1243/981/576 +f 1167/986/556 1244/1062/577 1245/1063/578 +f 1246/1064/23 1247/1065/23 1248/1066/23 +f 1249/1067/18 1250/1068/18 1251/1069/18 +f 1252/1070/579 1253/1071/580 1254/1068/581 +f 1255/1072/582 1256/1073/583 1257/1074/584 +f 1258/1075/585 1257/1074/584 1253/1071/580 +f 1259/1076/586 1260/1077/587 1261/1078/587 +f 1262/1079/23 1263/1080/23 1259/1076/586 +f 1264/1081/41 1265/1082/41 1266/1083/41 +f 1267/1084/41 1268/1085/41 1269/1086/41 +f 1244/1062/577 1270/968/588 1271/1087/588 +f 890/776/410 1272/1088/589 1273/1089/590 +f 1274/1090/23 1275/1091/23 1276/1092/23 +f 1277/1093/575 1278/1094/575 1279/1095/591 +f 1236/1055/23 1235/1054/23 1158/977/553 +f 1158/977/553 1168/987/557 1159/978/23 +f 1280/1096/592 883/766/406 887/770/409 +f 1281/1097/571 1282/1098/593 1283/1046/593 +f 1284/1099/593 1285/1100/593 1230/1049/571 +f 1256/1073/583 1255/1072/582 1286/1101/39 +f 1051/895/41 1066/894/41 1287/1102/41 +f 1288/1103/41 1266/1083/41 1267/1084/41 +f 1289/1104/41 1287/1102/41 1264/1105/41 +f 1290/1106/594 1291/1107/594 1292/1108/594 +f 1280/1096/592 1160/979/552 883/766/406 +f 695/623/289 706/634/33 705/633/33 +f 1293/1109/291 1148/967/545 1147/966/544 +f 1294/1108/18 1295/1107/18 1296/1110/18 +f 1152/971/549 1154/973/551 1169/988/558 +f 1297/1111/595 1298/1106/596 1299/1112/596 +f 1233/1052/573 1297/1111/595 1300/1113/597 +f 1301/1114/18 1232/1051/572 1231/1050/572 +f 1302/893/598 1303/1115/598 1304/1116/598 +f 1305/892/599 1306/1117/599 1307/1115/599 +f 1308/1118/23 1309/1119/23 1310/1115/23 +f 1311/1120/600 1312/1121/600 1313/1117/600 +f 1314/1122/601 1061/889/58 1060/888/518 +f 1315/1123/602 1316/1124/603 700/628/293 +f 1317/1125/604 1318/1126/605 1319/1127/606 +f 1320/1128/607 1321/1129/608 1322/1130/602 +f 1323/1131/609 1324/1132/610 1325/1133/611 +f 1315/1123/602 700/628/293 1042/870/507 +f 1316/1124/603 1315/1123/602 1318/1126/605 +f 1326/1134/605 1327/1135/514 1328/1136/612 +f 1327/1135/514 1326/1134/605 1322/1130/602 +f 1321/1129/608 1329/1137/613 1062/890/519 +f 1330/1138/516 1331/1139/614 1332/1140/615 +f 1267/1084/41 1269/1086/41 1288/1103/41 +f 1288/1103/41 1289/1141/41 1264/1081/41 +f 1333/1142/39 676/604/39 991/823/39 +f 1246/1064/23 1334/1143/23 1247/1065/23 +f 1235/1054/23 1237/1056/23 1334/1143/23 +f 1246/1064/23 1335/1144/23 1235/1054/23 +f 1144/963/541 686/614/282 688/616/284 +f 688/616/284 1239/1058/33 1238/1057/33 +f 1155/974/552 1336/1145/592 1337/1146/616 +f 1159/978/23 1168/987/557 1169/988/558 +f 1338/1147/617 1154/973/551 1155/974/552 +f 1336/1145/592 1339/1148/618 1337/1146/616 +f 1340/1149/23 1339/1148/618 1336/1145/592 +f 1341/1150/23 1340/1149/23 1342/1151/590 +f 1274/1090/23 1343/1152/589 1275/1091/23 +f 1344/1153/23 1341/1150/23 1343/1152/589 +f 1345/1154/23 1344/1153/23 1274/1090/23 +f 1346/1155/23 1347/1156/23 1345/1154/23 +f 1346/1155/23 1248/1066/23 1347/1156/23 +f 1246/1064/23 1235/1054/23 1334/1143/23 +f 1163/982/292 1293/1109/291 1348/1157/619 +f 1342/1151/590 1340/1149/23 1336/1145/592 +f 1343/1152/589 1341/1150/23 1342/1151/590 +f 1274/1090/23 1344/1153/23 1343/1152/589 +f 1346/1155/23 1345/1154/23 1274/1090/23 +f 1349/1158/620 1350/1159/621 1351/1160/622 +f 1346/1155/23 1246/1064/23 1248/1066/23 +f 892/775/23 1281/1097/571 891/774/411 +f 899/784/39 902/788/39 897/782/39 +f 1352/1161/623 1353/1162/624 1354/1163/625 +f 1018/847/497 1027/856/503 1352/1161/623 +f 1355/1164/501 1356/1165/626 1217/1039/502 +f 1356/1165/626 1355/1164/501 1357/1166/627 +f 1357/1166/627 1354/1163/625 1353/1162/624 +f 1358/1167/628 1359/1168/629 1360/1169/630 +f 1359/1168/629 1361/1170/631 1362/1171/632 +f 1363/1172/633 1358/1167/628 1364/1173/634 +f 1361/1170/631 1365/1174/635 1366/1175/636 +f 1367/1176/637 1363/1172/633 1368/1177/638 +f 1365/1174/635 1369/1178/639 1370/1179/640 +f 1371/1180/641 1367/1176/637 1372/1181/642 +f 1369/1178/639 1373/1182/643 1374/1183/644 +f 1375/1184/645 1371/1180/641 1376/1185/646 +f 1373/1182/643 1234/1053/574 1377/1186/647 +f 1350/1159/621 1375/1184/645 1378/1187/648 +f 1379/1043/41 1380/579/41 1381/1188/649 +f 1382/1189/33 1223/1044/33 1222/1043/33 +f 1224/1045/33 1383/1190/33 1222/1043/33 +f 1384/1042/18 1385/822/18 1386/579/18 +f 1383/1190/33 1387/1191/33 1388/1042/33 +f 657/584/18 1389/1192/18 1218/1040/570 +f 620/548/255 622/550/23 1215/1037/258 +f 1390/1193/650 1391/1194/651 1392/1195/652 +f 1392/1195/652 1393/1196/653 1394/1197/654 +f 1394/1197/654 1390/1193/650 1392/1195/652 +f 1395/1198/655 1396/1199/656 1390/1193/650 +f 1397/1200/657 1398/1201/405 1396/1199/656 +f 1399/1202/658 843/729/392 1400/1203/408 +f 625/553/259 685/613/281 623/551/257 +f 1401/1204/659 1402/1205/412 1398/1201/405 +f 843/729/392 624/552/258 1400/1203/408 +f 1399/1202/658 1403/1206/407 1402/1205/412 +f 625/553/259 840/726/390 838/724/388 +f 749/677/311 839/725/389 748/676/310 +f 839/725/389 840/726/390 748/676/310 +f 838/724/388 1404/1207/660 1405/1208/265 +f 749/677/311 709/637/298 1406/1209/661 +f 1404/1207/660 838/724/388 839/725/389 +f 1407/652/662 1408/1210/663 1409/1211/664 +f 1408/1210/663 1407/652/662 1410/650/665 +f 1411/1212/666 1412/644/667 1413/646/668 +f 1410/650/665 1414/640/669 1415/1213/670 +f 1392/1195/652 1416/1214/671 1393/1196/653 +f 771/701/323 983/815/482 1394/1197/654 +f 983/815/482 981/813/481 1395/1198/655 +f 979/811/480 975/807/478 1401/1204/659 +f 1395/1198/655 981/813/481 979/811/480 +f 975/807/478 760/689/317 1399/1202/658 +f 1400/1203/408 1403/1206/407 1399/1202/658 +f 1417/1215/23 1418/1216/23 844/730/23 +f 684/612/255 624/552/258 623/551/257 +f 835/721/387 748/676/310 840/726/390 +f 1399/1202/658 760/689/317 978/810/479 +f 835/721/387 840/726/390 625/553/259 +f 843/729/392 978/810/479 630/558/264 +f 1419/1217/656 882/765/405 700/628/293 +f 1420/1218/672 1419/1217/656 1316/1124/603 +f 1421/1219/23 1422/1220/673 1420/1218/672 +f 1423/1221/23 1421/1219/23 1316/1124/603 +f 1424/1222/674 1423/1221/23 1317/1125/604 +f 1317/1125/604 1325/1133/611 1324/1132/610 +f 905/791/39 869/752/39 868/751/39 +f 1316/1124/603 1419/1217/656 700/628/293 +f 1421/1219/23 1420/1218/672 1316/1124/603 +f 1317/1125/604 1423/1221/23 1316/1124/603 +f 1324/1132/610 1424/1222/674 1317/1125/604 +f 885/768/408 1215/1037/258 894/779/23 +f 1425/1223/494 1426/1224/494 1427/1225/494 +f 1428/1226/494 1429/1227/494 1430/1228/494 +f 1428/1226/494 1430/1228/494 1427/1225/494 +f 1426/1224/494 1428/1226/494 1427/1225/494 +f 1426/1224/494 1425/1223/494 1431/1229/494 +f 1431/1229/494 1432/1230/494 1433/1231/494 +f 1194/1015/494 1013/843/494 1433/1231/494 +f 1434/1232/675 1435/1233/676 1436/1234/677 +f 1436/1234/677 1437/1235/678 1438/1236/679 +f 1439/1237/680 1440/1238/681 1441/1239/682 +f 1442/1240/683 1440/1238/681 1439/1237/680 +f 1184/1005/563 1443/1241/684 1435/1233/676 +f 1181/1002/494 1186/1007/494 1429/1227/494 +f 1433/1231/494 1444/1242/494 1431/1229/494 +f 750/1243/39 666/593/39 899/784/39 +f 1445/1244/41 1446/1245/41 1447/1246/41 +f 1448/1024/23 1449/1026/23 1450/1247/23 +f 1451/835/39 1452/1247/39 1453/1026/39 +f 1450/1248/23 1454/1249/23 1455/1250/23 +f 1456/1251/22 70/12/22 72/14/22 +f 1457/1251/23 73/14/23 75/16/23 +f 87/27/31 76/17/24 78/19/26 +f 1458/1252/28 79/20/27 81/22/28 +f 1459/9/29 82/21/29 84/24/29 +f 78/19/26 85/25/30 87/27/31 +f 1460/1253/23 88/28/23 90/30/23 +f 1461/39/32 91/25/32 93/31/32 +f 144/79/50 135/70/42 137/72/44 +f 114/49/38 138/73/45 117/52/40 +f 139/74/45 138/73/45 141/76/47 +f 141/76/47 140/75/46 143/78/49 +f 143/78/49 142/77/48 136/71/43 +f 1462/3/51 146/7/51 148/82/51 +f 1463/1254/51 149/83/51 151/85/51 +f 1464/88/39 152/86/39 154/54/39 +f 1465/1255/23 155/87/23 157/88/23 +f 1466/92/23 158/89/23 160/91/23 +f 1467/69/51 161/92/51 163/61/51 +f 311/246/90 169/98/52 171/100/54 +f 695/623/289 172/101/55 174/103/57 +f 638/565/33 175/104/33 177/106/58 +f 1468/574/505 181/110/59 173/102/56 +f 1469/1256/41 185/114/41 187/116/41 +f 312/247/41 188/117/41 190/119/41 +f 313/248/89 191/120/60 193/122/62 +f 314/249/51 194/123/51 196/125/51 +f 171/100/54 170/99/53 198/127/64 +f 190/119/41 189/118/41 200/1257/41 +f 193/122/62 192/121/61 202/132/66 +f 196/125/51 195/124/51 204/134/51 +f 198/127/64 197/126/63 206/136/68 +f 200/1257/41 199/137/41 208/139/41 +f 202/132/66 201/131/65 210/141/70 +f 204/134/51 203/133/51 212/143/51 +f 206/1258/68 205/1259/67 214/1260/72 +f 208/139/41 207/138/41 216/147/41 +f 210/1261/70 209/1262/69 218/1263/74 +f 212/143/51 211/142/51 220/152/51 +f 1470/1264/95 221/1265/75 223/1266/77 +f 216/147/41 215/146/41 225/157/41 +f 1471/1267/94 226/158/78 228/160/80 +f 220/152/51 219/151/51 230/162/51 +f 223/1266/77 222/163/76 232/165/82 +f 225/157/41 224/156/41 234/167/41 +f 228/160/80 227/159/79 236/169/84 +f 230/162/51 229/161/51 238/171/51 +f 232/165/82 231/164/81 240/173/86 +f 234/167/41 233/166/41 242/175/41 +f 236/169/84 235/168/83 244/177/88 +f 238/171/51 237/170/51 246/179/51 +f 240/173/86 239/172/85 248/1268/89 +f 242/175/41 241/174/41 250/184/41 +f 244/177/88 243/176/87 252/186/90 +f 246/179/51 245/178/51 254/188/51 +f 248/1268/89 247/1269/60 256/1270/62 +f 250/184/41 249/183/41 258/192/41 +f 252/186/90 251/185/52 260/194/54 +f 254/188/51 253/187/51 262/196/51 +f 256/1270/62 255/1271/91 264/1272/66 +f 258/192/41 257/191/41 266/200/41 +f 260/194/54 259/193/53 268/202/64 +f 262/196/51 261/195/51 270/204/51 +f 264/1272/66 263/1273/65 272/1274/70 +f 266/200/41 265/199/41 274/208/41 +f 268/202/64 267/201/63 276/210/93 +f 270/204/51 269/203/51 278/212/51 +f 272/206/70 271/205/69 280/214/94 +f 274/208/41 273/207/41 282/216/41 +f 276/210/93 275/209/92 284/218/95 +f 278/212/51 277/211/51 286/220/51 +f 280/214/94 279/213/73 288/222/97 +f 282/216/41 281/215/41 290/224/41 +f 284/1275/95 283/225/71 292/227/77 +f 286/220/51 285/219/51 294/229/51 +f 288/222/97 287/221/96 296/231/84 +f 290/224/41 289/223/41 298/233/41 +f 292/227/77 291/226/76 300/235/82 +f 294/229/51 293/228/51 302/237/51 +f 296/231/84 295/230/83 304/239/88 +f 298/233/41 297/232/41 306/241/41 +f 300/235/82 299/234/81 308/243/98 +f 302/237/51 301/236/51 310/245/51 +f 304/239/88 303/238/87 311/246/90 +f 306/241/41 305/240/41 312/247/41 +f 308/243/98 307/242/85 313/248/89 +f 310/245/51 309/244/51 314/249/51 +f 338/273/23 315/250/23 317/252/23 +f 317/252/23 316/251/23 319/254/23 +f 319/254/23 318/253/23 321/256/23 +f 321/256/23 320/255/23 323/258/23 +f 323/258/23 322/257/23 325/260/23 +f 325/260/23 324/259/23 327/262/23 +f 327/262/23 326/261/23 329/264/23 +f 329/264/23 328/263/23 331/266/23 +f 331/266/23 330/265/23 333/268/23 +f 333/268/23 332/267/23 335/270/23 +f 335/270/23 334/269/23 337/272/23 +f 337/272/23 336/271/23 338/273/23 +f 349/284/106 339/274/99 341/276/101 +f 401/336/137 342/277/102 344/279/104 +f 354/289/110 348/283/105 349/284/106 +f 344/279/104 343/278/103 351/286/108 +f 1472/1276/214 353/288/109 354/289/110 +f 351/286/108 350/285/107 356/291/112 +f 365/300/119 358/293/113 360/295/115 +f 356/291/112 355/290/111 362/297/117 +f 370/305/123 364/299/118 365/300/119 +f 362/297/117 361/296/116 367/302/121 +f 375/310/126 369/304/122 370/305/123 +f 367/302/121 366/301/120 372/307/125 +f 380/315/129 374/309/120 375/310/126 +f 372/307/125 371/306/124 377/312/123 +f 385/320/117 379/314/128 380/315/129 +f 377/312/123 376/311/127 382/317/130 +f 390/325/132 384/319/131 385/320/117 +f 382/317/130 381/316/113 387/322/115 +f 396/331/135 389/324/107 390/325/132 +f 1473/1277/214 391/326/109 393/328/110 +f 400/335/104 395/330/134 396/331/135 +f 393/328/110 392/327/133 398/333/136 +f 341/276/101 340/275/100 400/335/104 +f 398/333/136 397/332/99 401/336/137 +f 419/354/155 408/343/144 417/352/153 +f 431/366/167 428/363/164 419/354/155 +f 460/395/196 430/365/166 431/366/167 +f 441/376/177 436/371/172 437/372/173 +f 436/371/172 441/376/177 439/374/175 +f 449/384/185 432/367/168 446/381/182 +f 439/374/175 451/386/187 436/371/172 +f 436/371/172 452/387/188 434/369/170 +f 449/384/185 446/381/182 451/386/187 +f 443/378/179 450/385/186 446/381/182 +f 456/391/192 454/389/190 435/370/171 +f 467/402/203 455/390/191 456/391/192 +f 459/394/195 457/392/193 402/337/138 +f 922/708/427 458/393/194 459/394/195 +f 419/354/155 429/364/165 408/343/144 +f 430/365/166 460/395/196 462/397/198 +f 469/404/205 466/401/202 456/391/192 +f 471/406/207 468/403/204 469/404/205 +f 921/706/426 470/405/206 469/404/205 +f 461/396/197 472/407/208 473/408/209 +f 481/416/120 477/412/121 479/414/210 +f 485/420/124 480/415/125 481/416/120 +f 479/414/210 478/413/117 483/418/111 +f 487/422/212 484/419/123 485/420/124 +f 491/426/113 486/421/211 487/422/212 +f 483/418/111 482/417/112 489/424/107 +f 493/428/114 490/425/214 491/426/113 +f 497/432/133 492/427/110 493/428/114 +f 489/424/107 488/423/213 495/430/103 +f 499/434/99 496/431/136 497/432/133 +f 500/435/102 498/433/137 499/434/99 +f 495/430/103 494/429/104 500/435/102 +f 505/412/33 501/436/33 503/413/33 +f 509/415/33 504/438/33 505/412/33 +f 503/413/33 502/437/33 507/417/33 +f 511/419/33 508/440/33 509/415/33 +f 514/421/33 510/441/33 511/419/33 +f 507/417/33 506/439/33 513/423/33 +f 516/425/33 474/443/33 514/421/33 +f 520/427/33 515/444/33 516/425/33 +f 513/423/33 512/442/33 518/429/33 +f 522/431/33 519/446/33 520/427/33 +f 523/433/33 521/447/33 522/431/33 +f 518/429/33 517/445/33 523/433/33 +f 531/455/117 527/451/116 529/453/121 +f 540/464/112 530/454/111 531/455/117 +f 529/453/121 528/452/120 534/458/125 +f 534/458/125 533/457/124 538/462/123 +f 550/474/108 539/463/107 540/464/112 +f 538/462/123 537/461/127 543/467/215 +f 563/487/220 546/470/216 548/472/217 +f 560/484/104 549/473/103 550/474/108 +f 1474/1278/218 552/476/218 554/478/219 +f 547/471/216 546/470/216 558/482/136 +f 562/486/137 559/483/102 560/484/104 +f 558/482/136 557/481/99 562/486/137 +f 553/477/219 563/487/220 554/478/219 +f 1475/1279/222 543/467/215 564/489/221 +f 1474/1278/218 565/490/222 552/476/218 +f 1476/1280/33 476/492/33 567/494/33 +f 611/539/247 571/499/224 573/501/226 +f 573/501/226 572/500/225 579/507/228 +f 579/507/228 578/506/227 583/511/230 +f 1477/1281/685 586/514/231 588/516/233 +f 588/516/233 587/515/232 592/520/235 +f 592/520/235 591/519/234 596/524/237 +f 1478/1282/33 597/525/33 599/527/238 +f 1479/1283/239 599/527/238 602/530/239 +f 596/524/237 595/523/236 604/532/241 +f 610/538/246 606/534/242 608/536/244 +f 1067/897/520 609/537/245 610/538/246 +f 604/532/241 603/531/240 611/539/247 +f 866/749/399 615/543/251 612/540/248 +f 608/536/244 607/535/243 627/555/261 +f 1480/555/18 632/554/18 634/561/18 +f 1442/1240/683 640/567/266 642/569/268 +f 1481/110/18 647/574/18 649/576/18 +f 641/568/267 654/581/272 642/569/268 +f 1023/852/502 656/583/274 658/585/275 +f 1482/1284/41 667/595/41 669/597/41 +f 669/597/41 668/596/41 671/599/41 +f 670/598/41 672/600/41 671/599/41 +f 629/557/263 628/556/262 683/611/280 +f 1405/1208/265 684/612/255 685/613/281 +f 1483/1285/541 692/620/287 694/622/58 +f 172/101/55 695/623/289 697/625/284 +f 749/677/311 707/635/296 709/637/298 +f 764/828/39 738/666/39 674/602/39 +f 1484/1286/33 755/684/33 757/686/33 +f 867/750/400 766/696/51 768/698/320 +f 1485/654/686 775/703/327 777/659/329 +f 971/661/476 778/705/330 773/662/325 +f 799/709/351 795/345/347 797/357/349 +f 1486/1287/39 847/733/39 849/735/39 +f 1487/1287/23 850/735/23 852/737/23 +f 1488/1288/687 853/738/393 855/740/393 +f 1489/1289/18 856/740/18 858/741/18 +f 1490/1290/39 859/742/395 861/744/39 +f 841/727/391 614/542/250 867/750/400 +f 876/759/51 871/754/51 872/755/401 +f 871/754/51 873/756/51 841/727/391 +f 872/755/401 874/757/402 876/759/51 +f 874/757/402 872/755/401 878/761/403 +f 612/540/248 616/544/252 881/764/404 +f 901/786/39 906/792/39 898/787/39 +f 911/798/416 907/794/413 909/796/415 +f 1491/1291/33 910/797/33 911/798/416 +f 1492/801/688 406/341/142 912/407/417 +f 460/395/196 913/799/418 461/396/197 +f 913/799/418 914/800/419 472/407/208 +f 923/707/428 914/800/419 916/719/421 +f 460/395/196 431/366/167 913/799/418 +f 425/360/161 918/802/423 424/359/160 +f 1493/803/689 918/802/423 917/713/422 +f 1493/803/689 917/713/422 468/403/204 +f 420/355/156 417/352/153 920/720/425 +f 408/343/144 410/345/146 422/357/158 +f 797/357/349 796/343/348 828/352/380 +f 959/364/464 936/363/441 791/354/343 +f 936/363/441 937/365/442 792/366/344 +f 940/369/445 941/371/446 943/372/448 +f 946/375/451 942/376/447 944/374/449 +f 933/346/438 939/367/444 949/381/454 +f 955/387/460 954/386/459 941/371/446 +f 953/385/458 955/387/460 940/369/445 +f 955/387/460 949/381/454 954/386/459 +f 955/387/460 953/385/458 949/381/454 +f 943/372/448 957/389/462 779/370/331 +f 957/389/462 833/390/385 780/391/332 +f 834/338/386 958/392/463 802/337/354 +f 958/392/463 816/393/368 800/394/352 +f 826/344/378 959/364/464 796/343/348 +f 818/396/370 938/395/443 819/397/371 +f 808/402/360 960/401/465 780/391/332 +f 960/401/465 962/403/467 961/404/466 +f 963/406/468 824/405/376 961/404/466 +f 787/340/339 964/407/469 820/408/372 +f 787/340/339 825/341/377 966/407/471 +f 964/407/469 967/799/472 818/396/370 +f 1494/801/690 968/800/473 964/407/469 +f 967/799/472 968/800/473 821/719/373 +f 821/719/373 792/366/344 967/799/472 +f 830/361/382 969/802/474 829/359/381 +f 806/360/358 969/802/474 807/713/359 +f 960/401/465 807/713/359 962/403/467 +f 815/357/367 828/352/380 823/720/375 +f 778/705/330 971/661/476 776/704/328 +f 643/570/269 972/804/477 707/635/296 +f 972/804/477 643/570/269 683/611/280 +f 758/687/315 760/689/317 976/808/314 +f 976/808/314 975/807/478 980/812/295 +f 980/812/295 979/811/480 982/814/294 +f 982/814/294 981/813/481 984/816/483 +f 1495/1292/23 989/821/23 990/822/23 +f 1195/1016/565 996/829/491 998/831/493 +f 996/829/491 999/1293/23 997/830/492 +f 1496/1294/33 1001/1295/33 1003/1296/33 +f 1497/845/39 1006/838/39 1008/840/39 +f 1498/1297/33 1009/840/33 1011/841/33 +f 1499/1298/691 1015/838/495 1017/846/495 +f 1022/851/501 1021/850/500 1019/848/498 +f 1021/850/500 1022/851/501 1023/852/502 +f 1500/1299/18 1024/853/18 1026/855/18 +f 1501/1300/395 1032/860/395 1034/862/39 +f 752/681/313 1052/880/51 867/750/400 +f 1502/1301/51 1053/881/512 767/697/51 +f 1503/1302/403 768/698/320 1054/882/403 +f 1057/885/515 745/673/307 1056/884/514 +f 741/669/305 1058/886/516 739/667/303 +f 1329/1137/613 1060/888/518 1062/890/519 +f 1056/884/514 740/668/304 1059/887/517 +f 1504/1303/33 1063/891/33 1065/893/33 +f 609/537/245 1067/897/520 1069/899/39 +f 1505/1304/521 1070/900/521 644/571/270 +f 1506/1305/521 1028/857/504 1071/577/521 +f 1122/949/527 1079/908/39 1081/910/523 +f 1507/1306/692 1082/911/33 1084/913/524 +f 1508/1307/41 1085/914/41 1087/916/41 +f 1509/1308/51 1088/917/51 1090/919/51 +f 1086/915/41 1091/920/41 1087/916/41 +f 1507/1306/692 1084/913/524 1080/909/522 +f 1096/925/525 1093/922/525 1095/924/33 +f 1128/954/537 1093/922/525 1097/926/526 +f 1510/950/529 1098/927/527 1100/929/529 +f 1511/1309/51 1101/930/51 1103/932/51 +f 1077/906/51 1103/932/51 1076/905/51 +f 1118/945/534 1107/934/39 1109/936/531 +f 1512/1310/23 1110/937/23 1112/939/533 +f 1117/944/41 1113/940/41 1115/942/41 +f 1513/1311/41 1092/921/41 1116/943/41 +f 1513/1311/41 1116/943/41 1115/942/41 +f 1109/936/531 1112/939/533 1118/945/534 +f 1514/1312/23 1119/946/535 1121/948/23 +f 1081/910/523 1109/936/531 1122/949/527 +f 1509/1308/51 1090/919/51 1075/904/51 +f 1120/947/535 1119/946/535 1127/953/536 +f 1126/952/536 1128/954/537 1127/953/536 +f 1515/1253/540 1141/37/540 1143/28/540 +f 1516/1087/693 1149/968/546 1151/970/548 +f 1517/1313/694 1162/981/554 1164/983/555 +f 1518/1314/695 1165/984/18 1167/986/556 +f 1197/1018/559 1171/990/18 1173/992/559 +f 1519/1315/41 1174/993/560 1176/995/41 +f 1200/1316/39 1175/996/561 1177/998/39 +f 1520/1317/562 1178/999/51 1180/1001/562 +f 1443/1241/684 1184/1005/563 654/581/272 +f 1521/1318/41 1188/1009/41 1190/1011/41 +f 1188/1009/41 1191/1012/41 1189/1010/41 +f 1185/1006/494 1182/1003/494 1014/844/494 +f 909/796/415 908/795/414 998/831/493 +f 1519/1315/41 1176/995/41 1173/992/559 +f 1179/1000/51 1178/999/51 1199/1020/568 +f 1520/1317/562 1180/1001/562 1177/1022/39 +f 1522/1319/18 1201/1320/18 1198/1321/567 +f 1203/1025/569 677/605/276 1204/1026/277 +f 1523/1322/41 1205/1027/41 1207/1029/41 +f 1206/1028/41 1208/1030/41 1207/1029/41 +f 1208/1030/41 1210/1032/41 1209/1031/41 +f 750/678/39 1212/1034/39 664/594/39 +f 1389/1192/18 1216/1038/274 1218/1040/570 +f 1524/1323/51 1219/1041/51 1221/1042/51 +f 1227/1047/18 1228/1048/18 1225/774/18 +f 1525/1324/573 1231/1050/572 1233/1052/573 +f 1377/1186/647 1234/1053/574 1218/1040/570 +f 1526/1325/33 1238/1057/33 1240/1059/33 +f 1517/1313/694 1527/1060/696 1162/981/554 +f 1518/1314/695 1167/986/556 1245/1063/578 +f 1528/1326/18 1249/1067/18 1251/1069/18 +f 1529/1067/697 1252/1070/579 1254/1068/581 +f 1258/1075/585 1255/1072/582 1257/1074/584 +f 1252/1070/579 1258/1075/585 1253/1071/580 +f 1530/1327/586 1259/1076/586 1261/1078/587 +f 1530/1327/586 1262/1079/23 1259/1076/586 +f 1288/1103/41 1264/1081/41 1266/1083/41 +f 1245/1063/578 1244/1062/577 1271/1087/588 +f 887/770/409 890/776/410 1273/1089/590 +f 1157/976/23 1236/1055/23 1158/977/553 +f 1273/1089/590 1280/1096/592 887/770/409 +f 891/774/411 1281/1097/571 1283/1046/593 +f 1213/1035/411 1284/1099/593 1230/1049/571 +f 1531/1328/39 1256/1073/583 1286/1101/39 +f 1289/1104/41 1051/895/41 1287/1102/41 +f 1532/1112/594 1290/1106/594 1292/1108/594 +f 1348/1157/619 1293/1109/291 1147/966/544 +f 1533/1329/18 1294/1108/18 1296/1110/18 +f 1300/1113/597 1297/1111/595 1299/1112/596 +f 1525/1324/573 1233/1052/573 1300/1113/597 +f 1534/1330/18 1301/1114/18 1231/1050/572 +f 1535/1331/598 1302/893/598 1304/1116/598 +f 1536/893/599 1305/892/599 1307/1115/599 +f 1537/1117/23 1308/1118/23 1310/1115/23 +f 1538/892/600 1311/1120/600 1313/1117/600 +f 1320/1128/607 1314/1122/601 1060/888/518 +f 1325/1133/611 1317/1125/604 1319/1127/606 +f 1314/1122/601 1320/1128/607 1322/1130/602 +f 1319/1127/606 1323/1131/609 1325/1133/611 +f 1317/1125/604 1316/1124/603 1318/1126/605 +f 1332/1140/615 1326/1134/605 1328/1136/612 +f 1062/890/519 1327/1135/514 1322/1130/602 +f 1322/1130/602 1321/1129/608 1062/890/519 +f 1328/1136/612 1330/1138/516 1332/1140/615 +f 1144/963/541 688/616/284 1238/1057/33 +f 1337/1146/616 1338/1147/617 1155/974/552 +f 1164/983/555 1163/982/292 1348/1157/619 +f 1539/1332/698 1349/1158/620 1351/1160/622 +f 1354/1163/625 1018/847/497 1352/1161/623 +f 1216/1038/274 1355/1164/501 1217/1039/502 +f 1353/1162/624 1356/1165/626 1357/1166/627 +f 1364/1173/634 1358/1167/628 1360/1169/630 +f 1360/1169/630 1359/1168/629 1362/1171/632 +f 1368/1177/638 1363/1172/633 1364/1173/634 +f 1362/1171/632 1361/1170/631 1366/1175/636 +f 1372/1181/642 1367/1176/637 1368/1177/638 +f 1366/1175/636 1365/1174/635 1370/1179/640 +f 1376/1185/646 1371/1180/641 1372/1181/642 +f 1370/1179/640 1369/1178/639 1374/1183/644 +f 1378/1187/648 1375/1184/645 1376/1185/646 +f 1374/1183/644 1373/1182/643 1377/1186/647 +f 1351/1160/622 1350/1159/621 1378/1187/648 +f 1540/1333/625 1379/1043/41 1381/1188/649 +f 1541/1043/18 1384/1042/18 1386/579/18 +f 1222/1043/33 1383/1190/33 1388/1042/33 +f 658/585/275 657/584/18 1218/1040/570 +f 1394/1197/654 1395/1198/655 1390/1193/650 +f 1395/1198/655 1397/1200/657 1396/1199/656 +f 1397/1200/657 1401/1204/659 1398/1201/405 +f 1401/1204/659 1399/1202/658 1402/1205/412 +f 685/613/281 838/724/388 1405/1208/265 +f 839/725/389 749/677/311 1406/1209/661 +f 1406/1209/661 1404/1207/660 839/725/389 +f 1413/646/668 1407/652/662 1409/1211/664 +f 1415/1213/670 1408/1210/663 1410/650/665 +f 1409/1211/664 1411/1212/666 1413/646/668 +f 1393/1196/653 771/701/323 1394/1197/654 +f 1394/1197/654 983/815/482 1395/1198/655 +f 1397/1200/657 979/811/480 1401/1204/659 +f 1397/1200/657 1395/1198/655 979/811/480 +f 1401/1204/659 975/807/478 1399/1202/658 +f 846/732/23 1417/1215/23 844/730/23 +f 843/729/392 1399/1202/658 978/810/479 +f 630/558/264 835/721/387 625/553/259 +f 625/553/259 843/729/392 630/558/264 +f 879/762/39 905/791/39 868/751/39 +f 1444/1242/494 1426/1224/494 1431/1229/494 +f 1432/1230/494 1194/1015/494 1433/1231/494 +f 1542/1334/699 1434/1232/675 1436/1234/677 +f 1542/1334/699 1436/1234/677 1438/1236/679 +f 1543/1335/678 1439/1237/680 1441/1239/682 +f 640/567/266 1442/1240/683 1439/1237/680 +f 1434/1232/675 1184/1005/563 1435/1233/676 +f 1428/1226/494 1181/1002/494 1429/1227/494 +f 904/790/39 750/1243/39 899/784/39 +f 1544/1336/41 1445/1244/41 1447/1246/41 +f 1545/607/39 1451/835/39 1453/1026/39 +f 1448/1024/23 1450/1247/23 1455/1337/23 +f 61/3/18 63/5/18 1546/1338/18 +f 61/3/18 66/8/18 65/7/18 +f 66/8/18 61/3/18 1546/1338/18 +f 144/79/50 64/6/19 66/8/18 +o mag_pistol_0 +v -1.109136 1.854146 1.546994 +v -1.109136 6.483851 2.313159 +v -1.109136 1.746315 1.309461 +v 1.109136 6.483851 2.313159 +v 1.109136 6.193875 2.563060 +v 1.109136 1.854146 1.546994 +v 1.109136 1.746315 1.309461 +v -1.109136 6.193875 2.563060 +v -1.109136 7.455005 0.432839 +v -0.855096 7.454038 0.681170 +v -0.637953 7.455005 0.432839 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.645065 7.456246 0.114418 +v -0.808240 7.456246 0.114418 +v -0.882817 -7.449296 -6.242331 +v -1.332151 -7.578506 -5.806304 +v -1.109136 -7.583717 -5.788713 +v -1.260158 -8.694220 -2.041335 +v -1.109136 -8.686133 -2.068619 +v -0.818644 -8.777006 -1.761972 +v -0.549908 -9.201518 -0.329462 +v 0.549908 -9.201518 -0.329462 +v 0.855096 7.454038 0.681170 +v 1.109136 7.455005 0.432839 +v 0.637953 7.455005 0.432839 +v 0.645065 7.456246 0.114418 +v 0.808240 7.456246 0.114418 +v -0.413784 6.208827 -0.016872 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.851242 7.447666 2.316916 +v -0.791829 -7.487275 -6.114170 +v 0.791829 -7.487275 -6.114170 +v 0.882817 -7.449296 -6.242331 +v 1.109136 -7.583717 -5.788713 +v 1.332151 -7.578506 -5.806304 +v 1.109136 -8.686133 -2.068619 +v -0.527911 -9.865828 -0.558221 +v 0.527911 -9.865828 -0.558221 +v 0.549908 -9.201518 -0.329462 +v 0.527911 -9.865828 -0.558221 +v -0.527911 -9.865828 -0.558221 +v -1.263812 -9.320386 -2.284039 +v -0.889556 -7.991921 -6.487401 +v 0.889556 -7.991921 -6.487401 +v 1.326758 -8.130615 -6.048564 +v 1.263812 -9.320386 -2.284039 +v -1.326758 -8.130615 -6.048564 +v 1.260158 -8.694220 -2.041335 +v 0.818644 -8.777006 -1.761972 +v -0.440888 6.323021 -0.358271 +v 1.109136 7.447666 2.316916 +v -0.549908 -9.201518 -0.329462 +v -0.330292 5.643600 3.823889 +v 0.330292 5.643600 3.823889 +v -0.639183 4.693711 3.350439 +v -0.784649 4.758710 3.184808 +v -0.823423 6.188931 3.832170 +v -0.613250 5.916150 3.869261 +v 0.639183 4.693711 3.350439 +v 0.613250 5.916150 3.869261 +v -0.791829 -7.487275 -6.114170 +v -0.440888 6.323021 -0.358271 +v 0.791829 -7.487275 -6.114170 +v 1.109136 6.187973 4.078713 +v 1.109136 1.608211 2.157616 +v 1.109136 7.455005 0.432839 +v 1.109136 -7.583717 -5.788713 +v 1.109136 1.421237 1.150594 +v 1.109136 1.152737 1.225781 +v 0.613250 6.186937 4.344059 +v 0.613250 5.905007 4.230341 +v 0.807799 6.186931 4.345726 +v -0.367306 5.610397 4.110494 +v -0.804550 1.432484 2.382775 +v 0.367306 5.610397 4.110494 +v -0.613250 6.186937 4.344059 +v -0.807799 6.186931 4.345726 +v -0.613250 5.905007 4.230341 +v -0.818644 -8.777006 -1.761972 +v 0.818644 -8.777006 -1.761972 +v -0.775337 0.764493 2.107609 +v -1.109136 1.608211 2.157616 +v -1.109136 7.455005 0.432839 +v -1.109136 1.421237 1.150594 +v -1.109136 -7.583717 -5.788713 +v -1.109136 1.152737 1.225781 +v -0.629678 6.747400 -0.181056 +v 0.440888 6.323021 -0.358271 +v 0.629678 6.747400 -0.181056 +v -0.784480 5.973367 0.123958 +v -0.784649 4.758710 3.184808 +v 0.784480 5.973367 0.123958 +v 1.109136 7.447666 2.316916 +v 1.109136 -8.686133 -2.068619 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v -1.109136 0.828570 1.868721 +v -1.109136 -8.686133 -2.068619 +v -1.109136 6.187973 4.078713 +v -0.613250 6.189570 3.985306 +v -1.109136 6.193875 2.563060 +v -1.109136 6.187973 4.078713 +v -0.823423 6.188931 3.832170 +v -0.808240 7.456246 0.114418 +v -1.109136 7.447666 2.316916 +v -1.109136 6.483851 2.313159 +v -0.839998 6.483851 2.313159 +v -0.855295 6.193875 2.563060 +v -0.855096 7.454038 0.681170 +v -0.851242 7.447666 2.316916 +v -0.839998 6.483851 2.313159 +v -0.613250 5.916150 3.869261 +v -0.613250 5.905007 4.230341 +v -0.367306 5.610397 4.110494 +v -0.613250 6.189570 3.985306 +v -0.613250 6.186937 4.344059 +v -0.804550 1.432484 2.382775 +v -0.804550 1.432484 2.382775 +v -0.836434 1.761413 1.534160 +v -0.864811 1.209287 1.297543 +v -0.866598 1.383340 1.228519 +v -1.109136 1.608211 2.157616 +v -1.109136 1.854146 1.546994 +v -0.836434 1.761413 1.534160 +v -1.109136 1.746315 1.309461 +v -0.853872 1.693580 1.365606 +v -1.109136 1.421237 1.150594 +v -0.866598 1.383340 1.228519 +v -1.109136 1.152737 1.225781 +v -0.864811 1.209287 1.297543 +v -1.109136 0.828570 1.868721 +v -0.775337 0.764493 2.107609 +v -0.818644 -8.777006 -1.761972 +v -1.326758 -8.130615 -6.048564 +v -1.332151 -7.578506 -5.806304 +v -0.882817 -7.449296 -6.242331 +v -1.263812 -9.320386 -2.284039 +v -1.260158 -8.694220 -2.041335 +v -0.527911 -9.865828 -0.558221 +v -0.549908 -9.201518 -0.329462 +v -0.855295 6.193875 2.563060 +v -0.637953 7.455005 0.432839 +v -0.610240 6.670014 0.107511 +v -0.586664 6.044359 -0.058251 +v -0.413784 6.208827 -0.016872 +v -0.629678 6.747400 -0.181056 +v -0.645065 7.456246 0.114418 +v -0.610240 6.670014 0.107511 +v -0.784480 5.973367 0.123958 +v -0.637953 7.455005 0.432839 +v -0.413784 6.208827 -0.016872 +v -0.440888 6.323021 -0.358271 +v -0.807799 6.186931 4.345726 +v -0.613250 6.189570 3.985306 +v 0.586664 6.044359 -0.058251 +v 0.889556 -7.991921 -6.487401 +v -0.889556 -7.991921 -6.487401 +v 0.784480 5.973367 0.123958 +v 0.855096 7.454038 0.681170 +v 0.610240 6.670014 0.107511 +v 0.637953 7.455005 0.432839 +v 0.645065 7.456246 0.114418 +v 0.610240 6.670014 0.107511 +v 1.109136 6.187973 4.078713 +v 1.109136 6.193875 2.563060 +v 0.823423 6.188931 3.832170 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313159 +v 0.855295 6.193875 2.563060 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.413784 6.208827 -0.016872 +v 0.629678 6.747400 -0.181056 +v 0.807799 6.186931 4.345726 +v 0.613250 6.189570 3.985306 +v 0.784649 4.758710 3.184808 +v 0.586664 6.044359 -0.058251 +v 0.613250 6.186937 4.344059 +v 0.613250 6.189570 3.985306 +v 0.823423 6.188931 3.832170 +v 0.808240 7.456246 0.114418 +v 1.109136 7.447666 2.316916 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313159 +v 1.109136 6.483851 2.313159 +v 0.855295 6.193875 2.563060 +v -0.330292 5.643600 3.823889 +v 0.367306 5.610397 4.110494 +v 0.613250 5.916150 3.869261 +v 0.330292 5.643600 3.823889 +v 0.613250 5.905007 4.230341 +v 0.613250 6.186937 4.344059 +v 0.807799 6.186931 4.345726 +v 0.804550 1.432484 2.382775 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v 0.864811 1.209287 1.297543 +v 0.866598 1.383340 1.228519 +v 0.853872 1.693580 1.365606 +v 0.836434 1.761413 1.534160 +v 1.109136 1.608211 2.157616 +v 0.804550 1.432484 2.382775 +v 0.836434 1.761413 1.534160 +v 1.109136 1.854146 1.546994 +v 0.853872 1.693580 1.365606 +v 1.109136 1.746315 1.309461 +v 0.866598 1.383340 1.228519 +v 1.109136 1.421237 1.150594 +v 0.864811 1.209287 1.297543 +v 1.109136 1.152737 1.225781 +v 0.775337 0.764493 2.107609 +v 1.109136 0.828570 1.868721 +v 0.775337 0.764493 2.107609 +v 0.818644 -8.777006 -1.761972 +v -0.613250 6.186937 4.344059 +v 1.326758 -8.130615 -6.048564 +v 0.882817 -7.449296 -6.242331 +v 1.332151 -7.578506 -5.806304 +v 1.260158 -8.694220 -2.041335 +v 1.263812 -9.320386 -2.284039 +v 0.549908 -9.201518 -0.329462 +v 0.637953 7.455005 0.432839 +v 0.610240 6.670014 0.107511 +v 0.586664 6.044359 -0.058251 +v -0.586664 6.044359 -0.058251 +v -0.639183 4.693711 3.350439 +v 0.639183 4.693711 3.350439 +v 0.784649 4.758710 3.184808 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.807799 6.186931 4.345726 +v -0.775337 0.764493 2.107609 +v -0.853872 1.693580 1.365606 +v -0.804550 1.432484 2.382775 +v -0.775337 0.764493 2.107609 +v 0.613250 6.189570 3.985306 +v 1.109136 0.828570 1.868721 +v 0.527911 -9.865828 -0.558221 +v 0.645065 7.456246 0.114418 +v -0.645065 7.456246 0.114418 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 0.0039 +vn -0.0000 0.9588 0.2841 +vn -0.0000 0.9484 0.3172 +vn -0.0000 -0.3256 0.9455 +vn -0.0000 -0.9535 -0.3014 +vn 0.1103 0.4144 -0.9034 +vn -0.0735 0.4256 -0.9019 +vn 0.3275 0.3966 -0.8576 +vn 0.9708 0.1320 -0.2001 +vn 0.7758 0.2586 -0.5755 +vn 0.4477 0.3447 -0.8251 +vn -0.3560 0.3788 -0.8543 +vn -0.5482 0.3301 -0.7685 +vn -0.1944 0.3772 -0.9055 +vn -0.0010 0.3847 -0.9230 +vn 0.1540 0.3797 -0.9122 +vn 0.8357 -0.2111 0.5070 +vn 0.9636 -0.1035 0.2467 +vn 0.9886 0.0575 -0.1389 +vn 0.9535 0.1154 -0.2784 +vn -0.0080 -0.3741 0.9274 +vn 0.0012 -0.3791 0.9254 +vn 0.2219 -0.3696 0.9023 +vn -0.0036 -0.3819 0.9242 +vn -0.1726 -0.3764 0.9102 +vn 0.0022 -0.3819 0.9242 +vn 0.0080 -0.3741 0.9274 +vn -0.2219 -0.3696 0.9023 +vn -0.0011 -0.3791 0.9254 +vn -0.4729 -0.3319 0.8162 +vn 0.3572 -0.3516 0.8653 +vn -0.1539 -0.3721 0.9154 +vn -0.9636 -0.1035 0.2467 +vn -0.9886 0.0575 -0.1389 +vn -0.9535 0.1154 -0.2784 +vn 0.0010 0.3847 -0.9230 +vn -0.0000 0.9310 0.3651 +vn -0.0000 0.9300 0.3676 +vn -0.0000 0.9302 0.3669 +vn 0.9710 -0.0914 0.2209 +vn 0.2322 -0.3719 0.8988 +vn 0.1539 -0.3734 0.9148 +vn -0.8442 -0.2022 0.4964 +vn -0.9710 -0.0914 0.2209 +vn -0.8357 -0.2111 0.5070 +vn 0.5563 0.3246 -0.7649 +vn 0.0001 0.9608 0.2772 +vn -0.0015 1.0000 0.0040 +vn -0.0014 1.0000 0.0023 +vn -0.5115 0.3297 -0.7935 +vn -0.0000 -0.0039 1.0000 +vn 0.0001 0.4597 0.8881 +vn -0.0000 0.2278 0.9737 +vn -0.0000 0.8351 0.5501 +vn 0.9387 -0.0984 0.3305 +vn 0.9999 0.0117 -0.0023 +vn 0.9998 0.0092 0.0149 +vn 0.9323 0.3580 0.0512 +vn 0.9411 0.3379 0.0104 +vn 0.5309 0.8401 0.1116 +vn -0.9980 -0.0211 0.0598 +vn -0.9970 0.0146 0.0763 +vn -0.9979 -0.0076 0.0647 +vn -0.9959 0.0068 0.0899 +vn -0.2927 -0.8910 -0.3470 +vn -0.3083 -0.9391 0.1520 +vn -0.3077 -0.9451 -0.1103 +vn -0.3087 -0.5872 0.7483 +vn -0.2906 -0.7546 0.5883 +vn -0.3189 0.0702 0.9452 +vn -0.3014 -0.1559 0.9407 +vn -0.2877 0.6969 0.6569 +vn -0.3131 0.5002 0.8073 +vn -0.1491 0.8829 0.4452 +vn -0.2405 0.8515 0.4659 +vn -0.9295 0.1497 -0.3372 +vn -0.9281 0.1420 -0.3443 +vn -0.3883 0.3779 -0.8405 +vn -0.9660 -0.0947 0.2406 +vn -0.9906 -0.0493 0.1279 +vn -0.9257 -0.1502 0.3472 +vn -0.9273 -0.1397 0.3472 +vn 0.9997 0.0240 0.0100 +vn 0.9368 -0.1053 0.3338 +vn 0.8731 -0.0619 0.4836 +vn 0.2534 -0.2345 0.9385 +vn 0.0038 -0.2478 0.9688 +vn 0.9613 0.2751 0.0139 +vn 0.9983 0.0446 -0.0387 +vn 0.8731 -0.0618 0.4836 +vn 0.9557 -0.0568 0.2888 +vn 0.9367 -0.1053 0.3338 +vn 0.9220 0.3843 0.0481 +vn 0.9207 0.3862 0.0561 +vn -0.0011 1.0000 0.0067 +vn -0.0020 1.0000 0.0042 +vn -0.1880 -0.2385 0.9528 +vn 0.2591 0.4017 -0.8784 +vn -0.3925 0.3826 -0.8364 +vn -0.9557 -0.0568 0.2888 +vn -0.9387 -0.0984 0.3305 +vn -0.8731 -0.0618 0.4836 +vn -0.9367 -0.1053 0.3338 +vn -0.9983 0.0446 -0.0387 +vn 0.0015 1.0000 0.0040 +vn -0.0000 0.9608 0.2772 +vn 0.0014 1.0000 0.0023 +vn -0.9999 0.0117 -0.0023 +vn -0.9998 0.0092 0.0149 +vn -0.9997 0.0240 0.0100 +vn -0.0056 -0.2495 0.9684 +vn -0.9207 0.3862 0.0561 +vn -0.9220 0.3843 0.0482 +vn -0.9613 0.2751 0.0139 +vn 0.0011 1.0000 0.0067 +vn 0.0020 1.0000 0.0042 +vn -0.9140 0.1852 -0.3611 +vn -0.0000 1.0000 0.0073 +vn -0.5563 0.3246 -0.7649 +vn -0.7857 0.2615 -0.5606 +vn 0.5115 0.3297 -0.7935 +vn -0.0000 0.4597 0.8881 +vn 0.2491 0.9578 0.1431 +vn -0.4021 0.9083 0.1151 +vn -0.9323 0.3580 0.0512 +vn -0.3771 0.9132 0.1545 +vn -0.9411 0.3379 0.0104 +vn 0.9980 -0.0211 0.0598 +vn 0.9949 -0.0724 0.0701 +vn 0.9979 -0.0076 0.0647 +vn 0.9959 0.0068 0.0899 +vn 0.9944 -0.0057 0.1052 +vn 0.9970 0.0146 0.0763 +vn 0.2927 -0.8910 -0.3470 +vn 0.2692 -0.9013 -0.3393 +vn 0.3091 -0.9446 -0.1104 +vn 0.3083 -0.9391 0.1520 +vn 0.2906 -0.7546 0.5883 +vn 0.3087 -0.5872 0.7483 +vn 0.3014 -0.1559 0.9407 +vn 0.3189 0.0702 0.9452 +vn 0.3131 0.5002 0.8073 +vn 0.2877 0.6969 0.6569 +vn 0.2405 0.8515 0.4659 +vn 0.8442 -0.2022 0.4964 +vn 0.1539 -0.3733 0.9148 +vn 0.9294 0.1498 -0.3372 +vn 0.5126 0.3515 -0.7834 +vn 0.9281 0.1420 -0.3443 +vn 0.9906 -0.0493 0.1279 +vn 0.9660 -0.0947 0.2406 +vn 0.9273 -0.1397 0.3472 +vn -0.9368 -0.1053 0.3338 +vn -0.8731 -0.0619 0.4836 +vn -0.0000 0.9318 0.3630 +vn -0.0000 0.9309 0.3653 +vn -0.0000 0.9302 0.3671 +vn -0.9949 -0.0724 0.0701 +vn -0.9944 -0.0057 0.1052 +vn -0.2692 -0.9013 -0.3393 +vn -0.1539 -0.3720 0.9154 +vn 0.1491 0.8829 0.4452 +vn 0.9257 -0.1502 0.3472 +vn -0.0000 0.3847 -0.9230 +vt 0.318637 0.836460 +vt 0.322686 0.835525 +vt 0.318469 0.836302 +vt 0.322662 0.829447 +vt 0.322506 0.829146 +vt 0.318606 0.828545 +vt 0.318439 0.828704 +vt 0.322533 0.835828 +vt 0.335540 0.815841 +vt 0.335689 0.816068 +vt 0.335880 0.815923 +vt 0.335363 0.817407 +vt 0.335570 0.817415 +vt 0.335928 0.815727 +vt 0.335827 0.815658 +vt 0.338110 0.834998 +vt 0.338521 0.834581 +vt 0.338361 0.834565 +vt 0.338450 0.830987 +vt 0.338327 0.831013 +vt 0.338045 0.830721 +vt 0.337797 0.829353 +vt 0.336791 0.829355 +vt 0.338509 0.816056 +vt 0.338639 0.815806 +vt 0.338293 0.815922 +vt 0.338229 0.815719 +vt 0.338328 0.815642 +vt 0.336756 0.815704 +vt 0.337372 0.815710 +vt 0.337407 0.815436 +vt 0.338796 0.817419 +vt 0.338027 0.834876 +vt 0.336577 0.834878 +vt 0.336494 0.835000 +vt 0.336242 0.834568 +vt 0.336082 0.834585 +vt 0.336266 0.831016 +vt 0.351326 0.453820 +vt 0.352262 0.453765 +vt 0.352318 0.454386 +vt 0.365837 0.453882 +vt 0.365836 0.454819 +vt 0.367442 0.455473 +vt 0.371353 0.455145 +vt 0.371355 0.453566 +vt 0.370947 0.453178 +vt 0.367444 0.453230 +vt 0.370945 0.455532 +vt 0.336143 0.830990 +vt 0.336546 0.830723 +vt 0.336722 0.815432 +vt 0.339004 0.817387 +vt 0.351343 0.454443 +vt 0.336608 0.810165 +vt 0.336600 0.809579 +vt 0.335671 0.810452 +vt 0.335670 0.810656 +vt 0.337063 0.810641 +vt 0.336849 0.810420 +vt 0.335654 0.809318 +vt 0.336833 0.809316 +vt 0.308406 0.833228 +vt 0.321347 0.832873 +vt 0.308400 0.831858 +vt 0.323003 0.827899 +vt 0.318606 0.827962 +vt 0.322837 0.831313 +vt 0.308428 0.831448 +vt 0.318119 0.828727 +vt 0.317924 0.828577 +vt 0.334726 0.805815 +vt 0.334724 0.806084 +vt 0.334898 0.805815 +vt 0.333853 0.806363 +vt 0.333448 0.810373 +vt 0.334505 0.806366 +vt 0.333637 0.805810 +vt 0.333465 0.805809 +vt 0.333636 0.806080 +vt 0.333393 0.820149 +vt 0.334845 0.820155 +vt 0.333471 0.811014 +vt 0.318642 0.837043 +vt 0.322847 0.833658 +vt 0.318149 0.836281 +vt 0.308437 0.833638 +vt 0.317955 0.836433 +vt 0.321830 0.833071 +vt 0.321344 0.832110 +vt 0.321826 0.831909 +vt 0.338990 0.829527 +vt 0.338986 0.832448 +vt 0.340382 0.829528 +vt 0.323455 0.829763 +vt 0.308753 0.828027 +vt 0.334875 0.810379 +vt 0.334847 0.811020 +vt 0.317906 0.837069 +vt 0.308789 0.837056 +vt 0.323039 0.837070 +vt 0.337112 0.810416 +vt 0.335399 0.818676 +vt 0.335644 0.820232 +vt 0.335864 0.819933 +vt 0.322740 0.833285 +vt 0.335368 0.818297 +vt 0.335604 0.818285 +vt 0.335628 0.818648 +vt 0.336965 0.813654 +vt 0.337545 0.812323 +vt 0.336761 0.811981 +vt 0.336450 0.819974 +vt 0.336387 0.820399 +vt 0.336865 0.820333 +vt 0.336109 0.820051 +vt 0.336132 0.820332 +vt 0.318573 0.837406 +vt 0.297273 0.862936 +vt 0.296468 0.862987 +vt 0.296450 0.863484 +vt 0.296375 0.863361 +vt 0.296982 0.862655 +vt 0.296349 0.862774 +vt 0.296171 0.863007 +vt 0.296386 0.863086 +vt 0.296139 0.863393 +vt 0.296301 0.863656 +vt 0.296981 0.863857 +vt 0.297271 0.863612 +vt 0.308818 0.837437 +vt 0.360171 0.453244 +vt 0.360165 0.453779 +vt 0.359601 0.453718 +vt 0.363650 0.453662 +vt 0.363616 0.454257 +vt 0.365371 0.453864 +vt 0.365306 0.454484 +vt 0.336615 0.811674 +vt 0.336865 0.813929 +vt 0.336111 0.813900 +vt 0.335542 0.813822 +vt 0.335664 0.813999 +vt 0.336339 0.815514 +vt 0.336384 0.815738 +vt 0.335562 0.813576 +vt 0.335975 0.820462 +vt 0.335363 0.814848 +vt 0.358032 0.453178 +vt 0.359611 0.453190 +vt 0.335454 0.806199 +vt 0.336854 0.806081 +vt 0.335993 0.805859 +vt 0.337754 0.815749 +vt 0.338970 0.820225 +vt 0.339108 0.818663 +vt 0.338736 0.819939 +vt 0.337473 0.807394 +vt 0.336699 0.807758 +vt 0.336562 0.808069 +vt 0.335538 0.814723 +vt 0.337796 0.815517 +vt 0.338647 0.820469 +vt 0.338501 0.820063 +vt 0.335647 0.809115 +vt 0.335427 0.805954 +vt 0.338482 0.820342 +vt 0.337096 0.809313 +vt 0.337040 0.809089 +vt 0.322734 0.831687 +vt 0.338866 0.818294 +vt 0.339103 0.818281 +vt 0.338879 0.818655 +vt 0.336917 0.819991 +vt 0.337747 0.820341 +vt 0.338164 0.819987 +vt 0.337700 0.819998 +vt 0.338225 0.820410 +vt 0.323089 0.827553 +vt 0.318534 0.827599 +vt 0.299359 0.862966 +vt 0.299357 0.863640 +vt 0.300188 0.863503 +vt 0.300265 0.863381 +vt 0.300257 0.863103 +vt 0.300174 0.863004 +vt 0.299646 0.862698 +vt 0.300297 0.862779 +vt 0.300477 0.863024 +vt 0.300502 0.863417 +vt 0.300332 0.863678 +vt 0.317870 0.827942 +vt 0.317895 0.827574 +vt 0.308779 0.827646 +vt 0.357471 0.453223 +vt 0.358034 0.453706 +vt 0.357469 0.453758 +vt 0.354011 0.454184 +vt 0.353986 0.453589 +vt 0.336746 0.805809 +vt 0.335925 0.814967 +vt 0.340207 0.829355 +vt 0.339165 0.829353 +vt 0.339115 0.832606 +vt 0.340249 0.832608 +vt 0.340379 0.832450 +vt 0.323476 0.835203 +vt 0.323128 0.837416 +vt 0.317935 0.837436 +vt 0.299652 0.863857 +vt 0.322736 0.831880 +vt 0.322741 0.833092 +s 0 +f 1547/1339/700 1548/1340/700 1549/1341/700 +f 1550/1342/701 1551/1343/701 1552/1344/701 +f 1550/1342/701 1552/1344/701 1553/1345/701 +f 1547/1339/700 1554/1346/700 1548/1340/700 +f 1555/1347/702 1556/1348/702 1557/1349/702 +f 1555/1347/702 1558/1350/702 1559/1351/702 +f 1557/1349/702 1560/1352/702 1561/1353/702 +f 1562/1354/703 1563/1355/703 1564/1356/703 +f 1563/1355/703 1565/1357/703 1566/1358/703 +f 1561/1353/702 1555/1347/702 1557/1349/702 +f 1567/1359/703 1568/1360/703 1569/1361/703 +f 1570/1362/702 1571/1363/702 1572/1364/702 +f 1573/1365/702 1572/1364/702 1574/1366/702 +f 1575/1367/704 1576/1368/704 1577/1369/704 +f 1571/1363/702 1570/1362/702 1578/1370/702 +f 1562/1354/703 1579/1371/703 1580/1372/703 +f 1581/1373/703 1580/1372/703 1582/1374/703 +f 1583/1375/703 1582/1374/703 1584/1376/703 +f 1585/1377/705 1586/1378/705 1587/1379/705 +f 1571/1363/702 1574/1366/702 1572/1364/702 +f 1588/1380/706 1589/1381/706 1590/1382/706 +f 1591/1383/706 1592/1384/706 1593/1385/706 +f 1594/1386/706 1590/1382/706 1595/1387/706 +f 1596/1388/703 1584/1376/703 1597/1389/703 +f 1556/1348/702 1555/1347/702 1559/1351/702 +f 1579/1371/703 1562/1354/703 1564/1356/703 +f 1564/1356/703 1563/1355/703 1566/1358/703 +f 1597/1389/703 1567/1359/703 1569/1361/703 +f 1598/1390/704 1575/1367/704 1577/1369/704 +f 1599/1391/702 1571/1363/702 1578/1370/702 +f 1581/1373/703 1562/1354/703 1580/1372/703 +f 1583/1375/703 1581/1373/703 1582/1374/703 +f 1596/1388/703 1583/1375/703 1584/1376/703 +f 1600/1392/705 1585/1377/705 1587/1379/705 +f 1594/1386/706 1588/1380/706 1590/1382/706 +f 1595/1387/706 1591/1383/706 1593/1385/706 +f 1593/1385/706 1594/1386/706 1595/1387/706 +f 1569/1361/703 1596/1388/703 1597/1389/703 +f 1567/1359/703 1566/1358/703 1568/1360/703 +s 1 +f 1601/1393/707 1602/1394/708 1603/1395/709 +f 1603/1395/709 1604/1396/710 1605/1397/711 +f 1603/1395/709 1606/1398/712 1601/1393/707 +f 1602/1394/708 1607/1399/713 1603/1395/709 +f 1602/1394/708 1608/1400/714 1607/1399/713 +f 1609/1401/715 1610/1402/716 1611/1403/717 +f 1612/1404/718 1613/1405/719 1551/1343/701 +f 1614/1406/720 1550/1342/701 1553/1345/701 +f 1615/1407/721 1614/1406/720 1616/1408/701 +f 1616/1408/701 1617/1409/701 1615/1407/721 +f 1618/1410/722 1619/1411/723 1620/1412/724 +f 1621/1413/725 1622/1414/726 1623/1415/727 +f 1624/1416/728 1625/1417/729 1626/1418/730 +f 1627/1419/731 1628/1420/732 1629/1421/733 +f 1547/1339/700 1630/1422/734 1554/1346/700 +f 1549/1341/700 1631/1423/735 1632/1424/700 +f 1632/1424/700 1633/1425/736 1634/1426/700 +f 1609/1401/715 1635/1427/716 1610/1402/716 +f 1610/1402/716 1636/1428/737 1611/1403/717 +f 1611/1403/717 1636/1428/737 1637/1429/737 +f 1638/1430/738 1639/1431/739 1640/1432/740 +f 1614/1406/720 1641/1433/701 1550/1342/701 +f 1613/1405/719 1552/1344/701 1551/1343/701 +f 1614/1406/720 1553/1345/701 1616/1408/701 +f 1617/1409/701 1642/1434/741 1615/1407/721 +f 1619/1411/723 1643/1435/742 1620/1412/724 +f 1619/1411/723 1623/1415/727 1643/1435/742 +f 1622/1414/726 1643/1435/742 1623/1415/727 +f 1621/1413/725 1626/1418/730 1622/1414/726 +f 1625/1417/729 1622/1414/726 1626/1418/730 +f 1628/1420/732 1644/1436/743 1629/1421/733 +f 1645/1437/744 1634/1426/700 1646/1438/745 +f 1548/1340/700 1631/1423/735 1549/1341/700 +f 1630/1422/734 1647/1439/746 1554/1346/700 +f 1631/1423/735 1633/1425/736 1632/1424/700 +f 1633/1425/736 1646/1438/745 1634/1426/700 +f 1605/1397/711 1648/1440/747 1606/1398/712 +f 1649/1441/748 1650/1442/749 1651/1443/750 +f 1652/1444/751 1609/1401/715 1633/1425/736 +f 1653/1350/752 1654/1445/753 1655/1446/754 +f 1654/1445/753 1649/1441/748 1656/1447/755 +f 1657/1448/756 1658/1449/757 1659/1450/758 +f 1660/1451/759 1661/1452/760 1662/1453/761 +f 1660/1451/759 1663/1454/701 1664/1455/701 +f 1647/1439/746 1630/1422/734 1665/1456/726 +f 1666/1457/762 1667/1458/763 1668/1459/764 +f 1669/1460/765 1668/1459/764 1667/1458/763 +f 1670/1461/766 1671/1462/767 1672/1458/768 +f 1671/1462/767 1673/1463/769 1674/1464/770 +f 1673/1463/769 1675/1465/771 1676/1460/772 +f 1675/1465/771 1677/1466/773 1678/1459/774 +f 1677/1466/773 1679/1467/775 1680/1468/776 +f 1645/1437/744 1646/1438/745 1681/1469/731 +f 1682/1470/777 1683/1471/778 1684/1472/779 +f 1682/1470/777 1685/1473/780 1686/1474/781 +f 1685/1473/780 1687/1475/782 1688/1476/783 +f 1604/1396/710 1689/1477/784 1605/1397/711 +f 1690/1478/785 1657/1448/756 1691/1479/786 +f 1691/1479/786 1692/1480/787 1693/1481/788 +f 1694/1482/789 1695/1352/790 1696/1483/791 +f 1657/1448/756 1697/1484/792 1691/1479/786 +f 1695/1352/790 1698/1349/793 1696/1483/791 +f 1697/1484/792 1659/1450/758 1689/1477/784 +f 1699/1367/794 1700/1390/795 1694/1482/789 +f 1650/1442/749 1701/1485/796 1702/1454/797 +f 1697/1484/792 1657/1448/756 1659/1450/758 +f 1656/1447/755 1649/1441/748 1651/1443/750 +f 1604/1396/710 1697/1484/792 1689/1477/784 +f 1691/1479/786 1697/1484/792 1692/1480/787 +f 1692/1480/787 1703/1486/798 1693/1481/788 +f 1696/1483/791 1699/1367/794 1694/1482/789 +f 1704/1487/799 1705/1488/800 1684/1472/779 +f 1706/1489/801 1707/1490/802 1708/1491/803 +f 1709/1364/804 1710/1365/805 1711/1492/803 +f 1712/1493/806 1713/1494/807 1714/1495/808 +f 1715/1496/809 1707/1490/802 1716/1497/810 +f 1716/1497/810 1706/1489/801 1717/1498/811 +f 1693/1481/788 1703/1486/798 1718/1499/812 +f 1719/1369/813 1720/1368/814 1721/1500/815 +f 1722/1501/816 1712/1493/806 1723/1502/817 +f 1707/1490/802 1706/1489/801 1716/1497/810 +f 1706/1489/801 1724/1503/818 1717/1498/811 +f 1706/1489/801 1708/1491/803 1725/1504/798 +f 1720/1368/814 1711/1492/803 1721/1500/815 +f 1712/1493/806 1714/1495/808 1723/1502/817 +f 1722/1501/816 1723/1502/817 1726/1505/819 +f 1608/1400/714 1727/1506/820 1728/1507/821 +f 1651/1443/750 1650/1442/749 1702/1454/797 +f 1729/1508/822 1614/1406/720 1615/1407/721 +f 1730/1391/752 1731/1370/752 1732/1509/754 +f 1733/1510/823 1732/1509/754 1734/1511/755 +f 1735/1512/824 1662/1453/761 1736/1513/825 +f 1737/1514/826 1738/1515/827 1736/1513/825 +f 1737/1514/826 1739/1516/828 1740/1505/700 +f 1612/1404/718 1741/1517/724 1742/1518/742 +f 1743/1519/829 1744/1520/830 1745/1521/831 +f 1746/1522/832 1747/1523/833 1748/1524/834 +f 1749/1525/835 1750/1519/836 1751/1524/837 +f 1752/1526/838 1751/1524/837 1753/1523/839 +f 1754/1527/840 1753/1523/839 1755/1522/841 +f 1756/1528/842 1755/1522/841 1757/1521/843 +f 1758/1529/844 1757/1521/843 1759/1520/845 +f 1760/1530/846 1761/1531/847 1762/1532/732 +f 1702/1454/797 1701/1485/796 1763/1455/819 +f 1764/1533/848 1704/1487/799 1765/1534/849 +f 1764/1533/848 1766/1535/850 1767/1536/851 +f 1768/1537/852 1767/1536/851 1769/1379/853 +f 1717/1498/811 1724/1503/818 1728/1507/821 +f 1707/1490/802 1770/1538/854 1708/1491/803 +f 1703/1486/798 1771/1539/855 1718/1499/812 +f 1710/1365/805 1721/1500/815 1711/1492/803 +f 1713/1494/807 1734/1511/755 1714/1495/808 +f 1566/1358/703 1565/1357/703 1568/1360/703 +f 1629/1421/733 1644/1436/743 1622/1414/726 +f 1772/1540/856 1773/1541/856 1638/1430/738 +f 1774/1542/857 1775/1543/857 1776/1544/858 +f 1639/1431/739 1776/1544/858 1640/1432/740 +f 1728/1507/821 1724/1503/818 1608/1400/714 +f 1617/1409/701 1760/1530/846 1642/1434/741 +f 1644/1436/743 1643/1435/742 1622/1414/726 +f 1548/1340/700 1777/1545/700 1631/1423/735 +f 1724/1503/818 1607/1399/713 1608/1400/714 +f 1606/1398/712 1603/1395/709 1605/1397/711 +f 1631/1423/735 1652/1444/751 1633/1425/736 +f 1778/1351/752 1653/1350/752 1655/1446/754 +f 1655/1446/754 1654/1445/753 1656/1447/755 +f 1735/1512/824 1660/1451/759 1662/1453/761 +f 1661/1452/760 1660/1451/759 1664/1455/701 +f 1779/1546/729 1647/1439/746 1665/1456/726 +f 1780/1468/859 1666/1457/762 1668/1459/764 +f 1781/1464/860 1669/1460/765 1667/1458/763 +f 1782/1457/861 1670/1461/766 1672/1458/768 +f 1672/1458/768 1671/1462/767 1674/1464/770 +f 1674/1464/770 1673/1463/769 1676/1460/772 +f 1676/1460/772 1675/1465/771 1678/1459/774 +f 1678/1459/774 1677/1466/773 1680/1468/776 +f 1783/1547/862 1645/1437/744 1681/1469/731 +f 1705/1488/800 1682/1470/777 1684/1472/779 +f 1683/1471/778 1682/1470/777 1686/1474/781 +f 1686/1474/781 1685/1473/780 1688/1476/783 +f 1765/1534/849 1704/1487/799 1684/1472/779 +f 1611/1403/717 1729/1508/822 1615/1407/721 +f 1733/1510/823 1730/1391/752 1732/1509/754 +f 1713/1494/807 1733/1510/823 1734/1511/755 +f 1738/1515/827 1735/1512/824 1736/1513/825 +f 1739/1516/828 1737/1514/826 1736/1513/825 +f 1784/1502/700 1737/1514/826 1740/1505/700 +f 1613/1405/719 1612/1404/718 1742/1518/742 +f 1748/1524/834 1743/1519/829 1745/1521/831 +f 1745/1521/831 1746/1522/832 1748/1524/834 +f 1752/1526/838 1749/1525/835 1751/1524/837 +f 1754/1527/840 1752/1526/838 1753/1523/839 +f 1756/1528/842 1754/1527/840 1755/1522/841 +f 1758/1529/844 1756/1528/842 1757/1521/843 +f 1785/1548/863 1758/1529/844 1759/1520/845 +f 1642/1434/741 1760/1530/846 1762/1532/732 +f 1766/1535/850 1764/1533/848 1765/1534/849 +f 1768/1537/852 1764/1533/848 1767/1536/851 +f 1786/1378/864 1768/1537/852 1769/1379/853 +f 1640/1432/740 1772/1540/856 1638/1430/738 +f 1639/1431/739 1774/1542/857 1776/1544/858 +f 1611/1403/717 1637/1429/737 1787/1549/865 +f 1611/1403/717 1787/1549/865 1729/1508/822 +f 1609/1401/715 1652/1444/751 1788/1550/865 +f 1609/1401/715 1788/1550/865 1635/1427/716 +o slide_pistol_0 +v 1.014517 11.207904 -2.625851 +v 1.014517 11.207904 -2.300617 +v 1.014517 10.723700 -1.978916 +v -1.014517 10.157009 -2.625851 +v -1.014517 11.207904 -2.625851 +v -0.335502 10.613042 -2.625851 +v -1.526129 9.326169 3.920664 +v -1.526129 9.326169 3.413726 +v -1.526129 8.752565 3.413726 +v -1.705540 8.752565 3.920664 +v -1.705540 7.184847 3.920666 +v -1.705540 8.402290 6.532843 +v -1.526129 8.752565 3.920664 +v -1.705540 8.752565 3.920664 +v -1.705540 8.752759 6.288157 +v -1.526129 8.752565 3.920664 +v -1.524936 8.752759 6.288157 +v 1.705540 7.247200 -1.820038 +v 1.526129 7.247200 -1.820038 +v 1.526043 7.614016 -2.276283 +v 1.321148 7.184847 12.021433 +v -1.171832 7.184847 11.897295 +v 1.156401 7.184847 11.897295 +v 1.526043 7.614016 -2.276283 +v 1.526129 7.247200 -1.820038 +v 1.526043 7.184847 -2.765843 +v 1.321148 7.184847 11.214214 +v -1.705540 7.184847 2.105287 +v -1.705540 8.757562 2.105287 +v -1.705540 8.927025 1.935822 +v 1.526129 7.247200 -1.820038 +v 1.526129 7.184847 -1.313099 +v 1.526043 7.184847 -2.765843 +v -1.524936 9.326169 6.288157 +v -1.326382 10.025589 6.288155 +v -1.705540 9.660696 6.288155 +v -1.705540 9.326169 6.288157 +v 0.813732 7.184847 16.849926 +v 1.705540 7.184847 12.021433 +v 1.705540 7.184847 18.319260 +v 1.326382 7.184847 19.492821 +v -1.705540 7.967402 7.346314 +v -1.705540 8.055083 6.892087 +v 1.705540 7.637858 11.214214 +v 1.705540 7.184847 11.214214 +v 1.705540 7.967402 7.346314 +v -1.705540 7.184847 3.920666 +v -1.526129 7.184847 3.920666 +v -1.171832 7.184845 5.830760 +v 1.705540 7.184847 3.920666 +v 1.705540 7.184847 11.214214 +v 1.156401 7.184845 5.830760 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.184845 -4.842924 +v 1.705540 8.782389 -4.842924 +v 1.705540 7.614016 -2.276283 +v 1.231429 7.184845 -4.842924 +v 1.526129 7.184847 -1.313099 +v 1.231024 7.184847 1.879622 +v -1.526129 7.184847 2.105287 +v -1.526129 7.184847 2.612226 +v -1.526129 8.752565 2.612224 +v 1.705540 7.184847 3.920666 +v 1.321148 7.184847 11.214214 +v 1.705540 7.184847 11.214214 +v 1.705540 7.637858 11.214214 +v -0.813732 7.184847 16.849926 +v 1.526129 7.184847 3.920666 +v 0.000000 9.832475 21.944122 +v 0.947015 10.390599 21.944122 +v -0.947015 10.390599 21.944122 +v 1.705540 8.055083 6.892087 +v -1.171832 7.184847 11.897295 +v -1.171832 8.402287 11.660702 +v -1.171832 8.578353 11.777044 +v 0.167762 11.355712 20.190464 +v -0.167762 11.355712 20.190464 +v -0.167762 10.787160 20.190464 +v 0.814306 10.492235 20.190464 +v 0.814306 10.492235 19.285318 +v 0.359371 10.492235 19.285318 +v 0.893030 10.492235 20.116810 +v 0.893030 10.492235 19.372772 +v -1.526129 7.184847 3.413727 +v 1.526129 7.184847 3.413727 +v -0.393269 7.184847 1.879622 +v 0.393269 7.184847 1.879622 +v -1.333642 8.402290 6.532843 +v -1.333642 8.055083 6.892087 +v -1.333642 7.967402 7.346314 +v -1.016029 10.321228 11.777044 +v -0.947015 10.390597 11.777044 +v -0.654714 10.019367 11.777044 +v -0.813732 7.184847 16.849926 +v 0.813732 7.184847 16.849926 +v 0.813732 5.420444 16.849926 +v 0.471660 5.087640 16.849926 +v -0.471660 5.087640 16.849926 +v -0.813732 5.420444 16.849926 +v -1.333642 7.184847 21.944122 +v -1.333642 7.184847 19.492821 +v -0.813732 7.184847 21.944122 +v -1.526129 7.184847 0.796844 +v -1.705540 7.184847 0.796844 +v -1.705540 7.184847 -0.004658 +v -0.728164 8.051682 1.879622 +v -0.393269 9.417000 1.879622 +v -0.393269 7.184847 1.879622 +v -0.728164 7.586768 1.879622 +v -1.238688 7.184847 1.879622 +v 1.231024 9.417000 1.879622 +v 1.231024 8.051682 1.879622 +v 0.728164 8.051682 1.879622 +v 1.526129 7.184847 2.105287 +v 1.526129 7.184847 2.612226 +v 1.705540 7.184847 -1.313099 +v 1.705540 7.184847 -0.511597 +v 1.526129 7.184847 -0.511597 +v 1.705540 7.184847 2.612226 +v 1.705540 7.184847 3.413727 +v 1.526129 7.184847 3.920666 +v 1.526129 9.833411 3.920664 +v 1.705540 9.660696 3.920664 +v 0.408756 10.107763 -3.259712 +v -0.409408 10.107763 -3.259712 +v -0.409408 10.390597 -3.172267 +v 1.705540 9.660696 3.413726 +v 1.526129 9.833411 3.413726 +v 1.526129 7.184847 3.413727 +v -0.392768 7.184845 -4.842924 +v 0.393269 9.417000 1.879622 +v 0.393269 7.184847 1.879622 +v 0.392768 7.184845 -4.842924 +v 1.705540 7.184847 2.612226 +v 1.526129 7.184847 2.612226 +v 1.526129 9.833411 2.612224 +v 1.526129 7.184847 2.105287 +v 1.705540 7.184847 2.105287 +v 1.705540 9.660696 2.105287 +v 0.392768 8.782389 -4.842924 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.184847 1.879622 +v 1.231024 7.586768 1.879622 +v 1.231429 7.587345 -4.842924 +v 0.408756 10.390597 -3.531360 +v 0.408756 10.107763 -3.763228 +v 0.408756 10.107763 -3.259712 +v 1.526129 9.833411 1.303783 +v 1.705540 9.660696 1.303783 +v 1.705540 7.184847 1.303783 +v 0.728571 7.587345 -4.842924 +v 0.728571 8.051105 -4.842924 +v 1.231429 8.051105 -4.842924 +v 1.705540 9.660696 0.796844 +v 1.526129 9.833411 0.796844 +v 1.526129 7.184847 0.796844 +v 0.813732 7.184847 21.944122 +v 1.231024 9.417000 1.879622 +v 0.393269 9.417000 1.879622 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.586768 1.879622 +v 0.728164 7.586768 1.879622 +v 0.728571 7.587345 -4.842924 +v 1.526129 9.833411 -0.004658 +v 1.705540 9.660696 -0.004658 +v 1.705540 7.184847 -0.004658 +v 1.705540 7.184845 -4.842924 +v 1.231429 7.184845 -4.842924 +v 1.231429 7.587345 -4.842924 +v 1.526129 7.184847 -0.511597 +v 1.705540 7.184847 -0.511597 +v 1.705540 9.660696 -0.511597 +v 1.231429 9.417337 -4.333549 +v 1.231429 8.782389 -4.842924 +v 1.231024 9.417000 1.879622 +v 0.728164 7.586768 1.879622 +v 0.728164 8.051682 1.879622 +v 0.728571 8.051105 -4.842924 +v 1.526129 9.833411 -1.313099 +v 1.705540 9.660696 -1.313099 +v 1.705540 7.184847 -1.313099 +v 1.231024 8.051682 1.879622 +v 0.728164 8.051682 1.879622 +v 1.231024 8.051682 1.879622 +v 1.231429 8.051105 -4.842924 +v 0.947015 10.390597 -2.821982 +v -0.947015 10.390597 -2.821982 +v -1.132077 10.212755 -2.753816 +v 1.526129 7.247200 -1.820038 +v 1.705540 7.247200 -1.820038 +v 1.705540 9.660696 -1.820038 +v 1.705540 8.752767 6.288157 +v 1.705540 8.402290 6.532843 +v -1.132077 10.212755 0.576709 +v -0.947015 10.390597 0.637663 +v 0.947015 10.390597 0.637663 +v 1.326382 7.184847 21.944122 +v 1.526129 7.184847 -0.004658 +v -1.526129 7.184847 2.612226 +v -1.238688 7.184847 1.879622 +v 1.705540 7.184847 2.105287 +v 1.526129 7.184847 1.303783 +v 1.705540 7.184847 1.303783 +v 1.526129 7.184847 0.796844 +v 1.705540 7.184847 -0.004658 +v 0.728164 7.586768 1.879622 +v 1.231024 7.586768 1.879622 +v 1.231024 7.184847 1.879622 +v 0.393269 7.184847 1.879622 +v -1.238688 9.417000 1.879622 +v -1.526129 7.184847 2.105287 +v -1.705540 7.184847 -1.313099 +v -1.526129 7.184847 -1.313099 +v -1.526129 7.184847 -0.511597 +v -1.705540 7.184847 2.612226 +v -1.526129 9.326169 3.920664 +v -1.705540 9.326169 3.920664 +v -1.705540 9.660696 3.920664 +v -1.526129 7.184847 3.920666 +v -1.705540 7.184847 3.920666 +v -1.705540 8.752565 3.920664 +v -1.705540 7.184847 3.413727 +v -1.526129 7.184847 3.413727 +v -1.526129 8.752565 3.413726 +v -1.705540 9.326169 3.413726 +v -1.526129 9.326169 3.413726 +v -1.526129 9.833411 3.413726 +v -1.705540 7.184847 2.612226 +v -1.705540 7.184847 3.413727 +v -1.705540 8.752565 3.413726 +v -0.393269 9.417000 1.879622 +v -0.392768 8.782389 -4.842924 +v -0.392768 7.184845 -4.842924 +v -1.526129 9.326169 2.612224 +v -1.705540 9.326169 2.612224 +v -1.705540 9.660696 2.612224 +v -1.526129 7.184847 2.612226 +v -1.705540 7.184847 2.612226 +v -1.705540 8.752565 2.612224 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.184847 1.879622 +v -1.238688 7.184845 -4.842924 +v -1.238688 7.587345 -4.842924 +v -0.409408 10.390597 -3.531360 +v -0.409408 10.390597 -3.172267 +v -0.409408 10.107763 -3.259712 +v -1.526129 9.833411 1.303783 +v -1.526129 7.184847 1.303783 +v -1.705540 7.184847 1.303783 +v -0.728571 7.587345 -4.842924 +v -1.238688 7.587345 -4.842924 +v -1.238688 8.051105 -4.842924 +v -1.705540 9.660696 0.796844 +v -1.705540 7.184847 0.796844 +v -1.526129 7.184847 0.796844 +v -1.238688 9.417000 1.879622 +v -1.238688 9.417337 -4.333549 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.586768 1.879622 +v -1.238688 7.587345 -4.842924 +v -0.728571 7.587345 -4.842924 +v -1.526129 9.833411 -0.004658 +v -1.526129 7.184847 -0.004658 +v -1.705540 7.184847 -0.004658 +v -1.238688 7.184845 -4.842924 +v -1.705540 7.184845 -4.842924 +v -1.526129 7.184847 -0.511597 +v -1.526129 9.833411 -0.511597 +v -1.705540 9.660696 -0.511597 +v -1.238688 8.782389 -4.842924 +v -1.238688 9.417337 -4.333549 +v -1.238688 9.417000 1.879622 +v -0.728164 7.586768 1.879622 +v -0.728571 7.587345 -4.842924 +v -0.728571 8.051105 -4.842924 +v -1.526129 7.184847 -0.004658 +v -1.238688 7.184845 -4.842924 +v -1.526129 9.833411 -1.313099 +v -1.526129 7.184847 -1.313099 +v -1.705540 7.184847 -1.313099 +v -1.238688 8.051682 1.879622 +v -1.238688 8.051105 -4.842924 +v -0.728164 8.051682 1.879622 +v -0.728571 8.051105 -4.842924 +v -1.238688 8.051105 -4.842924 +v -1.705540 7.184845 -4.842924 +v -1.526129 7.184847 -1.820038 +v -1.705540 7.184847 2.105287 +v -1.705540 7.184847 1.303783 +v -1.526129 7.184847 -1.820038 +v -1.526129 9.833411 -1.820038 +v -1.705540 9.660696 -1.820038 +v -1.526129 7.184847 1.303783 +v -1.526129 7.184847 3.413727 +v -1.526129 7.184847 3.920666 +v -1.526129 8.752565 3.920664 +v -0.947015 10.390597 6.288155 +v -0.654714 10.019367 6.288155 +v -0.409408 10.390597 6.288155 +v -1.171832 9.475291 6.288155 +v -0.409408 10.019367 5.830758 +v -0.409408 10.390597 5.830758 +v -0.409408 10.390597 6.288155 +v 0.408756 10.019367 5.830758 +v 0.408756 10.019367 6.288155 +v 0.408756 10.390597 6.288155 +v 0.408756 10.019367 5.830758 +v 0.408756 10.390597 5.830758 +v -0.409408 10.390597 5.830758 +v 0.408756 10.019367 6.288155 +v 0.632517 10.019367 6.288155 +v 0.408756 10.390597 6.288155 +v 0.958007 9.683089 6.288155 +v 1.018419 10.321527 6.288155 +v -1.171832 9.475291 11.777044 +v -1.171832 7.184845 5.830760 +v -1.171832 8.752774 6.288157 +v -1.171832 8.402290 6.532843 +v -0.409408 10.019367 6.288155 +v -1.333642 8.402287 11.660702 +v -1.171832 8.402287 11.660702 +v -1.171832 8.402290 6.532843 +v -0.409408 10.019367 5.830758 +v -0.654714 10.019367 5.830758 +v -1.171832 9.475291 5.830758 +v -1.171832 7.184845 5.830760 +v 1.156401 7.184845 5.830760 +v 1.156401 9.475291 5.830758 +v 1.014517 11.207904 -2.625851 +v 0.335502 10.613042 -2.625851 +v 0.335502 11.207904 -2.625851 +v -0.167762 11.355712 20.190464 +v 0.167762 11.355712 20.190464 +v 0.167762 11.355712 19.816681 +v 0.143185 11.207904 -2.300617 +v 0.143185 11.269897 -2.300617 +v 0.143185 11.269897 -2.690544 +v 1.014517 11.207904 -2.625851 +v 0.335502 11.207904 -2.625851 +v 0.335502 11.207904 -2.300617 +v 1.014517 11.207904 -2.300617 +v 0.335502 11.207904 -2.625851 +v 0.335502 11.269897 -2.690544 +v 0.335502 11.269897 -2.300617 +v 0.335502 10.613042 -2.625851 +v 0.335502 10.613042 -2.690544 +v 0.335502 11.269897 -2.690544 +v 0.143185 11.269897 -2.300617 +v 0.335502 11.269897 -2.300617 +v 0.335502 11.269897 -2.690544 +v -0.720340 8.093419 11.897295 +v -0.389845 7.872592 11.897295 +v -1.171832 7.184847 11.897295 +v -0.941169 8.423914 11.897295 +v -1.018714 8.813759 11.897295 +v 0.000000 7.795045 11.897295 +v 0.471660 5.087640 21.944122 +v 0.813732 5.420444 21.944122 +v -0.813732 5.420444 21.944122 +v 0.813732 7.184847 21.944122 +v -1.333642 7.184847 21.944122 +v -0.813732 7.184847 21.944122 +v -0.720340 8.093421 21.944122 +v -1.018714 8.813761 21.944122 +v -1.326382 10.025591 21.944122 +v -0.720340 9.534101 21.944122 +v 0.720340 9.534101 21.944122 +v 1.326382 10.025591 21.944122 +v 1.018714 8.813761 21.944122 +v 1.326382 7.184847 21.944122 +v 0.720340 8.093421 21.944122 +v 0.941169 9.203606 21.944122 +v 0.389845 9.754930 21.944122 +v -0.941169 9.203606 21.944122 +v -0.941169 8.423916 21.944122 +v -0.389845 7.872591 21.944122 +v 0.000000 7.795045 21.944122 +v 0.389845 7.872591 21.944122 +v 0.941169 8.423916 21.944122 +v -0.471660 5.087640 21.944122 +v -0.389845 9.754930 21.944122 +v 1.321148 7.637858 11.214214 +v 1.321148 7.444347 12.021433 +v 1.321148 7.184847 12.021433 +v 1.705540 7.184847 12.021433 +v 1.321148 7.184847 12.021433 +v 1.321148 7.444347 12.021433 +v 1.705540 7.637858 11.214214 +v 1.705540 7.444347 12.021433 +v 1.321148 7.444347 12.021433 +v -1.526129 9.326169 3.413726 +v -1.705540 9.326169 3.413726 +v -1.705540 9.326169 2.612224 +v -1.524936 9.326169 6.288157 +v -1.705540 9.326169 6.288157 +v -1.705540 9.326169 3.920664 +v -1.526129 8.752565 2.612224 +v -1.705540 8.752565 2.612224 +v -1.705540 8.752565 3.413726 +v -1.526129 8.752565 2.612224 +v 0.632517 10.019367 5.830758 +v 0.335502 10.613042 -2.690544 +v 0.143185 10.723700 -2.690544 +v 0.143185 11.269897 -2.690544 +v -0.335502 10.613042 -2.690544 +v -0.143185 10.723700 -2.690544 +v -0.335502 10.613042 -2.625851 +v -0.335502 10.613042 -2.690544 +v 0.335502 10.613042 -2.690544 +v 0.143185 10.723700 -2.690544 +v 0.143185 10.723700 -1.978916 +v -0.814306 10.492235 20.190464 +v -0.359371 10.492235 20.190464 +v -0.359371 10.492235 19.285318 +v -0.893030 10.492235 20.116810 +v -0.814306 10.492235 19.285318 +v -0.335502 11.207904 -2.625851 +v -0.335502 10.613042 -2.625851 +v -0.335502 11.207904 -2.625851 +v -0.335502 11.269897 -2.690544 +v -0.335502 11.269897 -2.690544 +v -0.143185 11.269897 -2.690544 +v -0.143185 10.723700 -2.690544 +v -0.143185 11.269897 -2.690544 +v -0.143185 11.207904 -2.300617 +v -0.335502 11.207904 -2.625851 +v -0.335502 11.207904 -2.300617 +v -0.335502 11.269897 -2.300617 +v -0.143185 11.269897 -2.300617 +v -0.143185 11.269897 -2.690544 +v -0.335502 11.269897 -2.690544 +v -0.143185 11.269897 -2.300617 +v -0.335502 11.207904 -2.625851 +v -1.014517 11.207904 -2.625851 +v -0.335502 11.207904 -2.300617 +v -1.014517 11.207904 -2.300617 +v 1.014517 10.157009 -2.625851 +v 1.014517 10.606321 -1.825949 +v 1.014517 10.491154 -1.431076 +v 1.014517 10.157009 -2.625851 +v 0.167762 10.787160 20.190464 +v -0.359371 10.492235 20.190464 +v -1.014517 11.207904 -2.625851 +v -1.014517 10.157009 -2.625851 +v -1.014517 10.723700 -1.978916 +v -1.014517 10.606321 -1.825949 +v -1.014517 10.491154 -1.431076 +v 0.359371 10.492235 20.190464 +v -1.014517 11.207904 -2.300617 +v -0.451145 8.974197 5.975873 +v 0.000000 8.787328 5.975873 +v -0.345291 9.132619 5.975873 +v 0.186870 8.336183 5.975873 +v 0.000000 8.299012 5.975873 +v -0.186870 9.238472 5.975873 +v 0.000000 9.275643 5.975873 +v 0.345291 8.442036 5.975873 +v 0.186870 9.238472 5.975873 +v 0.345291 9.132619 5.975873 +v 0.451145 8.600457 5.975873 +v 0.451145 8.974197 5.975873 +v 0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.975873 +v -0.186870 8.336183 5.975873 +v -0.451145 8.600457 5.975873 +v -0.345291 8.442036 5.975873 +v -1.659889 9.270180 6.250484 +v -1.659889 9.270180 2.190354 +v -1.659889 8.796173 2.190354 +v -1.659889 9.139336 2.059509 +v -1.659889 8.927017 2.059509 +v -1.360494 9.270180 6.250484 +v -1.659889 9.270180 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 8.752759 6.288157 +v -1.524936 8.752759 6.288157 +v -1.524936 9.326169 6.288157 +v 1.705540 7.614016 -2.276283 +v -1.705540 7.184847 1.303783 +v -1.705540 9.151711 1.935822 +v 1.321148 7.637858 11.214214 +v 0.359371 10.492235 20.190464 +v -1.238688 7.586768 1.879622 +v 0.393269 9.417000 1.879622 +v 1.705540 7.184847 3.920666 +v 0.408756 10.390597 -3.172267 +v 1.705540 7.184847 3.413727 +v 0.392768 7.184845 -4.842924 +v 1.705540 9.660696 2.612224 +v 1.526129 9.833411 2.105287 +v 1.231429 7.184845 -4.842924 +v 0.408756 10.390597 -3.172267 +v 1.526129 7.184847 1.303783 +v 1.705540 7.184847 0.796844 +v 1.231429 9.417337 -4.333549 +v 1.231429 7.587345 -4.842924 +v 1.526129 7.184847 -0.004658 +v 1.526129 9.833411 -0.511597 +v 0.728571 7.587345 -4.842924 +v 1.526129 7.184847 -1.313099 +v 1.231429 8.051105 -4.842924 +v 0.728571 8.051105 -4.842924 +v 1.132077 10.212755 -2.753816 +v 1.526129 9.833411 -1.820038 +v 1.132077 10.212755 0.576709 +v 1.705540 7.184847 0.796844 +v -1.238688 8.051682 1.879622 +v -1.705540 7.184847 -0.511597 +v -1.705540 7.184847 3.413727 +v -1.526129 9.833411 3.920664 +v -1.526129 8.752565 3.920664 +v -1.705540 8.752565 3.413726 +v -1.705540 9.660696 3.413726 +v -1.705540 8.752565 2.612224 +v -0.393269 7.184847 1.879622 +v -1.526129 9.833411 2.612224 +v -1.526129 8.752565 2.612224 +v -1.705540 7.184847 18.319260 +v -1.238688 7.586768 1.879622 +v -0.409408 10.107763 -3.763228 +v -1.705540 9.660696 1.303783 +v -0.728571 8.051105 -4.842924 +v -1.526129 9.833411 0.796844 +v -0.393269 9.417000 1.879622 +v -0.728164 7.586768 1.879622 +v -1.705540 9.660696 -0.004658 +v -1.705540 7.184847 -0.511597 +v -0.728164 8.051682 1.879622 +v -1.705540 9.660696 -1.313099 +v -1.238688 8.051682 1.879622 +v -1.705540 7.184847 -1.820038 +v -1.705540 7.184847 -1.820038 +v -1.705540 7.184845 -4.842924 +v -1.705540 7.184847 -1.820038 +v -1.705540 8.782389 -4.842924 +v -1.526129 8.752565 3.413726 +v -0.409408 10.019367 6.288155 +v 0.408756 10.390597 5.830758 +v -1.326382 10.025589 11.777044 +v -1.333642 8.402290 6.532843 +v -0.167762 11.355712 19.816681 +v 0.335502 11.207904 -2.300617 +v 0.335502 11.207904 -2.625851 +v 0.143185 11.269897 -2.690544 +v 1.321148 7.184847 11.214214 +v 1.705540 7.444347 12.021433 +v 1.321148 7.637858 11.214214 +v -1.526129 9.326169 2.612224 +v -1.526129 9.326169 3.920664 +v -1.526129 8.752565 3.413726 +v -1.526129 9.326169 2.612224 +v 0.335502 11.269897 -2.690544 +v 0.335502 10.613042 -2.625851 +v -0.893030 10.492235 19.372772 +v -0.335502 10.613042 -2.690544 +v -0.143185 10.723700 -1.978916 +v -0.335502 11.269897 -2.690544 +v -0.335502 11.269897 -2.300617 +v -1.659889 8.796173 6.250484 +v -1.360494 8.796173 6.250484 +v -1.705540 8.402290 6.532843 +v -1.333642 8.402290 6.532843 +v -1.524936 8.752759 6.288157 +v -1.171832 8.752774 6.288157 +v -0.654714 10.019367 11.897295 +v -0.654714 10.019367 11.777044 +v 0.632517 10.019367 11.777044 +v 0.632517 10.019367 11.777044 +v -1.705540 9.660696 6.288155 +v -1.705540 9.660696 3.920664 +v -1.705540 9.326169 3.920664 +v -1.526129 8.752565 2.110280 +v -1.526129 9.321173 2.105287 +v -1.524936 9.151711 1.935822 +v -1.526129 7.184847 1.303783 +v -1.526129 9.833411 1.303783 +v -1.526129 9.833411 0.796844 +v -1.705540 9.660696 1.303783 +v 1.526129 9.833411 -1.820038 +v 1.526129 9.833411 -1.313099 +v -1.171832 9.475291 11.777044 +v 1.705540 7.184847 18.319260 +v 1.705540 7.184847 12.021433 +v 1.705540 7.444347 12.021433 +v 1.705540 9.660696 -1.820038 +v 1.705540 7.247200 -1.820038 +v 1.705540 7.967403 18.319260 +v 1.526043 7.184847 -2.765843 +v 1.705540 7.184845 -4.842924 +v 1.705540 7.184847 -2.765843 +v -1.526129 9.321173 2.105287 +v -1.705540 9.321173 2.105287 +v -1.705540 9.151711 1.935822 +v -1.705540 8.927025 1.935822 +v -1.705540 8.757562 2.105287 +v -1.526129 8.752565 2.110280 +v 1.018714 8.813759 11.876556 +v 1.156401 9.475291 11.866869 +v 1.156401 7.184847 11.897295 +v -1.014517 10.157009 0.196239 +v -1.014517 10.369081 0.196239 +v 0.167762 10.787160 19.556133 +v 0.167762 11.355712 19.816681 +v 0.167762 11.355712 20.190464 +v 0.359371 10.492235 20.190464 +v 0.359371 10.492235 19.285318 +v 0.872165 9.770430 11.711021 +v 1.156401 9.475291 11.866869 +v 0.632517 10.019367 11.897295 +v 1.018419 10.321527 11.521419 +v 1.019789 10.321230 19.320282 +v 1.326382 10.025591 21.944122 +v 0.872165 9.770430 11.711021 +v 0.947015 10.390597 11.752499 +v 1.018419 10.321527 11.521419 +v 1.018419 10.321527 6.288155 +v 0.958007 9.683089 6.288155 +v 0.958007 9.683130 11.555178 +v 0.632517 10.019367 5.830758 +v 1.156401 9.475291 5.830758 +v 0.958007 9.683089 6.288155 +v 1.326382 7.967403 19.492821 +v 1.326382 7.967402 7.346314 +v 1.326382 8.055083 6.892087 +v 1.326382 8.402290 6.532843 +v 1.326382 10.025589 6.288155 +v -1.333642 7.967403 19.492821 +v -1.333642 8.578353 11.777044 +v -1.333642 8.402287 11.660702 +v -1.326382 10.025591 21.944122 +v -1.326382 10.025589 11.777044 +v 0.947015 10.390599 19.208494 +v 0.947015 10.390597 11.752499 +v 0.869641 10.390597 11.777044 +v -0.409408 10.390597 -3.531360 +v -0.409408 10.107763 -3.763228 +v -0.947015 10.390597 -3.531360 +v 0.869641 10.390597 11.777044 +v -1.238688 8.782389 -4.842924 +v -1.333642 8.578353 11.777044 +v -1.526129 7.184847 -0.004658 +v -1.526129 9.833411 -0.004658 +v -1.526129 9.833411 -0.511597 +v -0.947015 10.390597 0.637663 +v -0.947015 10.390597 6.288155 +v -0.409408 10.390597 5.830758 +v 0.408756 10.390597 5.830758 +v 0.947015 10.390597 0.637663 +v 0.408756 10.390597 6.288155 +v 1.018419 10.321527 6.288155 +v -1.171832 9.475291 5.830758 +v -1.171832 9.475291 6.288155 +v 1.018419 10.321527 6.288155 +v 1.326382 10.025589 6.288155 +v 1.132077 10.212755 0.576709 +v -0.409408 10.390597 6.288155 +v -1.526129 9.833411 2.105287 +v -1.526129 9.833411 2.612224 +v -1.132077 10.212755 0.576709 +v -1.526129 9.833411 3.920664 +v -1.326382 10.025589 6.288155 +v -1.526129 9.833411 3.413726 +v 0.947015 10.390597 -3.531360 +v 0.947015 10.390597 -2.821982 +v 1.132077 10.212755 -2.753816 +v 0.947015 10.390599 19.208494 +v -0.947015 10.390599 19.208494 +v -1.016029 10.321230 19.320282 +v 0.947015 10.390599 20.281315 +v -0.947015 10.390599 20.281315 +v -0.947015 10.390599 21.944122 +v 1.705540 7.184847 2.612226 +v 1.705540 9.660696 2.612224 +v 1.705540 9.660696 3.413726 +v 1.019789 10.321230 20.144449 +v -1.016029 10.321230 20.144449 +v 1.326382 7.967403 19.492821 +v 1.326382 7.184847 19.492821 +v 0.471660 5.087640 16.849926 +v 0.813732 5.420444 16.849926 +v 0.813732 5.420444 21.944122 +v 0.408756 10.390597 -3.531360 +v 0.408756 10.390597 -3.172267 +v 1.019789 10.321230 20.144449 +v -0.409408 10.107763 -3.763228 +v -0.409408 10.107763 -3.259712 +v 0.408756 10.107763 -3.259712 +v 1.705540 7.967402 7.346314 +v 1.326382 7.967402 7.346314 +v 1.326382 7.967403 19.492821 +v 1.326382 7.184847 21.944122 +v 1.326382 7.184847 19.492821 +v 1.526129 7.184847 1.303783 +v 1.526129 7.184847 0.796844 +v 1.526129 9.833411 0.796844 +v 1.705540 8.402290 6.532843 +v 1.326382 8.402290 6.532843 +v 1.326382 8.055083 6.892087 +v 1.705540 8.055083 6.892087 +v 1.705540 9.660696 6.288155 +v 1.326382 10.025589 6.288155 +v 1.326382 8.752767 6.288157 +v 1.705540 9.660696 -4.131682 +v 1.231429 9.417337 -4.333549 +v 0.408756 10.107763 -3.763228 +v -0.392768 9.417337 -4.333549 +v -0.409408 10.390597 -3.172267 +v -0.947015 10.390597 -2.821982 +v 0.392768 9.417337 -4.333549 +v 0.392768 8.782389 -4.842924 +v 1.231429 8.782389 -4.842924 +v 1.705540 8.782389 -4.842924 +v 1.705540 9.660696 -4.131682 +v 0.947015 10.390597 -3.531360 +v 1.526129 9.833411 2.612224 +v 1.705540 9.660696 6.288155 +v 1.705540 9.660696 3.920664 +v 1.526129 9.833411 3.920664 +v -1.132077 10.212755 0.576709 +v 1.132077 10.212755 0.576709 +v 1.132077 10.212755 -2.753816 +v 1.705540 9.660696 -1.313099 +v 1.705540 9.660696 -0.511597 +v 1.705540 7.184847 -0.511597 +v 1.705540 9.660696 -0.004658 +v 1.705540 9.660696 0.796844 +v 1.705540 7.184847 0.796844 +v 1.526129 7.184847 2.612226 +v 1.526129 7.184847 2.105287 +v 1.526129 9.833411 2.105287 +v 1.705540 9.660696 3.920664 +v 1.705540 9.660696 6.288155 +v 1.019789 10.321230 19.320282 +v -0.471660 5.087640 16.849926 +v 0.471660 5.087640 21.944122 +v 0.813732 7.184847 16.849926 +v 0.813732 7.184847 21.944122 +v 0.947015 10.390599 20.281315 +v 0.947015 10.390599 21.944122 +v 1.705540 8.752767 6.288157 +v 1.526129 7.184847 3.920666 +v 1.526129 7.184847 3.413727 +v 1.526129 9.833411 3.413726 +v 0.392768 7.184845 -4.842924 +v -0.392768 7.184845 -4.842924 +v -0.392768 8.782389 -4.842924 +v 0.408756 10.390597 -3.531360 +v 1.526129 7.184847 -0.004658 +v 1.526129 7.184847 -0.511597 +v 1.526129 9.833411 -0.511597 +v 1.705540 7.184847 1.303783 +v 1.705540 9.660696 1.303783 +v 1.705540 9.660696 2.105287 +v 1.526129 9.833411 3.413726 +v 1.526129 9.833411 -0.511597 +v 1.526129 9.833411 -1.313099 +v 1.526129 9.833411 -1.820038 +v 1.526129 9.833411 -0.004658 +v 1.526129 9.833411 2.105287 +v 1.526129 9.833411 1.303783 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.614016 -2.276283 +v 1.526043 7.614016 -2.276283 +v -0.947015 10.390597 -3.531360 +v -1.705540 9.660696 -4.131682 +v -1.132077 10.212755 -2.753816 +v -1.705540 7.184847 18.319260 +v -1.705540 7.967403 18.319260 +v -1.526129 9.833411 -1.313099 +v -1.526129 9.833411 -0.511597 +v -1.705540 9.660696 -1.820038 +v -1.526129 9.833411 -1.820038 +v -1.705540 9.660696 3.413726 +v -1.705540 9.660696 2.612224 +v -1.705540 9.326169 2.612224 +v -1.333642 7.184847 19.492821 +v -0.471660 5.087640 21.944122 +v -0.813732 5.420444 21.944122 +v -0.409408 10.390597 -3.531360 +v -1.705540 7.184847 2.105287 +v -1.526129 7.184847 2.105287 +v -1.526129 9.833411 2.105287 +v -1.705540 7.967402 7.346314 +v -1.705540 7.967403 18.319260 +v -1.333642 7.967403 19.492821 +v -1.333642 7.184847 19.492821 +v -1.705540 9.321173 2.105287 +v -1.705540 9.660696 2.105287 +v -1.705540 8.055083 6.892087 +v -1.333642 8.055083 6.892087 +v -1.333642 7.967402 7.346314 +v -1.705540 9.660696 -0.511597 +v -1.238688 9.417337 -4.333549 +v -1.705540 9.660696 -4.131682 +v -1.526129 9.833411 1.303783 +v -1.705540 8.782389 -4.842924 +v -1.705540 9.660696 -1.313099 +v -1.705540 7.184847 -1.313099 +v -1.705540 7.184847 -0.511597 +v -1.705540 9.660696 -0.004658 +v -1.705540 7.184847 -0.004658 +v -1.705540 7.184847 0.796844 +v -1.526129 9.833411 -0.004658 +v -1.705540 9.660696 0.796844 +v -1.526129 9.833411 0.796844 +v -0.813732 5.420444 16.849926 +v -0.813732 7.184847 21.944122 +v -1.526129 7.184847 -1.313099 +v -1.526129 9.833411 -1.313099 +v -1.526129 9.833411 -1.820038 +v -0.947015 10.390597 11.777044 +v -1.016029 10.321228 11.777044 +v -1.705540 8.752759 6.288157 +v -1.526129 9.833411 3.920664 +v -1.526129 9.833411 3.413726 +v -1.526129 9.326169 3.413726 +v 1.326382 8.752767 6.288157 +v -1.171832 8.402290 6.532843 +v -1.171832 8.578353 11.777044 +v -1.171832 8.402287 11.660702 +v 0.632517 10.019367 5.830758 +v 0.632517 10.019367 6.288155 +v 0.408756 10.019367 6.288155 +v -0.654714 10.019367 5.830758 +v -0.409408 10.019367 5.830758 +v -0.409408 10.019367 6.288155 +v 0.632517 10.019367 6.288155 +v 0.958007 9.683130 11.555178 +v 1.156401 7.184845 5.830760 +v 1.156401 7.184847 11.897295 +v 0.941169 9.203604 11.872110 +v 1.018714 8.813759 11.876556 +v 1.018714 8.813761 21.944122 +v 0.720340 9.534099 11.876594 +v 0.941169 9.203606 21.944122 +v 0.389845 9.754928 11.891424 +v 0.720340 9.534101 21.944122 +v 0.000000 9.832473 11.897295 +v 0.389845 9.754930 21.944122 +v 0.814306 10.296816 20.190464 +v 0.814306 10.492235 20.190464 +v 0.000000 9.832475 21.944122 +v -0.389845 9.754930 21.944122 +v -0.389845 9.754928 11.897295 +v -0.720340 9.534101 21.944122 +v -0.720340 9.534099 11.896715 +v 0.893030 10.296816 20.116810 +v 0.893030 10.492235 20.116810 +v 0.893030 10.296816 19.372772 +v 0.893030 10.492235 19.372772 +v -0.941169 9.203604 11.897295 +v -0.941169 9.203606 21.944122 +v -1.018714 8.813761 21.944122 +v -1.018714 8.813759 11.897295 +v -0.941169 8.423916 21.944122 +v -0.941169 8.423914 11.897295 +v -0.720340 8.093421 21.944122 +v -0.720340 8.093419 11.897295 +v -0.389845 7.872591 21.944122 +v -0.389845 7.872592 11.897295 +v 0.000000 7.795045 21.944122 +v 0.000000 7.795045 11.897295 +v 0.000000 7.795045 21.944122 +v 0.389845 7.872591 21.944122 +v 0.389845 7.872592 11.897295 +v 0.720340 8.093421 21.944122 +v 0.720340 8.093419 11.890940 +v 0.814306 10.296816 19.285318 +v 0.814306 10.492235 19.285318 +v 0.893030 10.492235 19.372772 +v 0.941169 8.423914 11.883168 +v 0.941169 8.423916 21.944122 +v 0.359371 10.492235 19.285318 +v -0.814306 10.296816 19.285318 +v -0.359371 10.492235 19.285318 +v -0.167762 10.787160 19.556133 +v 0.167762 10.787160 19.556133 +v -0.167762 11.355712 19.816681 +v 0.167762 11.355712 19.816681 +v -0.814306 10.157009 0.372429 +v 0.814306 10.157009 0.372429 +v 0.814306 10.357646 0.372429 +v 1.014517 10.157009 0.196239 +v 1.014517 10.369081 0.196239 +v -0.143185 10.723700 -1.978916 +v 0.143185 10.723700 -1.978916 +v 0.143185 10.723700 -2.690544 +v 0.143185 11.207904 -2.300617 +v 0.143185 10.723700 -1.978916 +v 0.335502 11.207904 -2.300617 +v 1.014517 10.723700 -1.978916 +v 1.014517 11.207904 -2.300617 +v 1.014517 10.606321 -1.825949 +v -1.014517 10.606321 -1.825949 +v -1.014517 10.491154 -1.431076 +v 1.014517 10.491154 -1.431076 +v -0.814306 10.357646 0.372429 +v 0.814306 10.357646 0.372429 +v 1.014517 10.369081 0.196239 +v -1.014517 10.369081 0.196239 +v -1.171832 9.475291 11.897295 +v 0.632517 10.019367 11.897295 +v 0.720340 9.534099 11.876594 +v 0.000000 9.832473 11.897295 +v -0.654714 10.019367 11.897295 +v -0.720340 9.534099 11.896715 +v -1.171832 9.475291 11.897295 +v 0.941169 8.423914 11.883168 +v 0.720340 8.093419 11.890940 +v 0.389845 7.872592 11.897295 +v -0.941169 9.203604 11.897295 +v -0.389845 9.754928 11.897295 +v 0.389845 9.754928 11.891424 +v 0.941169 9.203604 11.872110 +v -1.524936 8.927025 1.935822 +v -1.526129 9.833411 2.105287 +v -1.526129 9.321173 2.105287 +v -1.526129 9.326169 2.612224 +v 0.335502 11.269897 -2.300617 +v 0.143185 11.269897 -2.300617 +v -0.167762 10.787160 19.556133 +v -0.167762 10.787160 20.190464 +v -0.167762 11.355712 20.190464 +v -0.359371 10.492235 20.190464 +v -0.814306 10.492235 20.190464 +v -0.814306 10.296816 20.190464 +v -0.893030 10.296816 20.116810 +v -0.893030 10.296816 19.372772 +v -0.893030 10.492235 20.116810 +v -0.893030 10.296816 19.372772 +v -0.893030 10.492235 19.372772 +v -0.814306 10.492235 19.285318 +v -0.143185 10.723700 -1.978916 +v -1.014517 10.723700 -1.978916 +v -0.814306 10.357646 0.372429 +v -0.335502 11.269897 -2.300617 +v -0.335502 11.207904 -2.300617 +v -0.143185 11.207904 -2.300617 +v 1.526129 9.833411 0.796844 +v -0.451145 8.974197 5.975873 +v -0.345291 9.132619 5.975873 +v -0.345291 9.132619 5.773399 +v -0.186870 9.238472 5.975873 +v -0.186870 9.238472 5.773399 +v 0.345291 8.442036 5.975873 +v 0.186870 8.336183 5.975873 +v 0.186870 8.336183 5.773399 +v 0.000000 9.275643 5.975873 +v 0.000000 9.275643 5.773399 +v 0.186870 9.238472 5.975873 +v 0.186870 9.238472 5.773399 +v 0.451145 8.600457 5.975873 +v 0.345291 8.442036 5.773399 +v 0.345291 9.132619 5.975873 +v 0.345291 9.132619 5.773399 +v 0.451145 8.974197 5.975873 +v 0.451145 8.974197 5.773399 +v 0.488316 8.787328 5.975873 +v 0.451145 8.600457 5.773399 +v 0.488316 8.787328 5.773399 +v -0.186870 8.336183 5.975873 +v -0.345291 8.442036 5.975873 +v -0.345291 8.442036 5.773399 +v -0.451145 8.600457 5.975873 +v -0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.773399 +v 0.000000 8.299012 5.975873 +v -0.186870 8.336183 5.773399 +v 0.000000 8.299012 5.773399 +v -0.451145 8.974197 5.773399 +v -0.451145 8.600457 5.773399 +v -1.360494 8.796173 2.190354 +v -1.659889 8.796173 2.190354 +v -1.659889 8.927017 2.059509 +v -1.659889 9.139336 2.059509 +v -1.360494 9.139336 2.059509 +v -1.360494 8.927017 2.059509 +v -1.360494 9.270180 2.190354 +v -1.659889 9.270180 2.190354 +v -1.659889 9.270180 6.250484 +v -1.360494 8.796173 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 9.326169 6.288157 +v -1.524936 8.927025 1.935822 +v -1.526129 7.184847 0.796844 +v -1.526129 8.752565 2.110280 +v -1.524936 9.151711 1.935822 +v 0.167762 10.787160 20.190464 +v -1.526129 7.184847 -0.511597 +v 0.947015 10.390599 21.944122 +v 1.705540 7.184847 3.413727 +v 0.408756 10.107763 -3.763228 +v 1.705540 7.967403 18.319260 +v 1.526129 9.833411 1.303783 +v -1.132077 10.212755 -2.753816 +v 1.705540 7.184847 -1.313099 +v 1.705540 7.184847 -0.004658 +v 1.526129 9.833411 2.612224 +v 1.526129 9.833411 3.920664 +v 1.526129 9.833411 -0.004658 +v 1.705540 7.184847 2.105287 +v 1.526043 7.184847 -2.765843 +v -1.705540 9.326169 3.413726 +v -1.333642 7.967403 19.492821 +v -1.705540 9.660696 2.105287 +v -1.333642 7.184847 21.944122 +v -0.813732 7.184847 16.849926 +v -1.526129 7.184847 -1.820038 +v -1.526129 9.326169 3.920664 +v -1.333642 8.402287 11.660702 +v 0.408756 10.019367 5.830758 +v -0.654714 10.019367 6.288155 +v 0.869641 10.390597 11.777044 +v 0.000000 7.795045 11.897295 +v 0.893030 10.296816 19.372772 +v -0.143185 10.723700 -2.690544 +v -1.526129 9.833411 2.612224 +v -0.167762 11.355712 19.816681 +v -0.359371 10.492235 19.285318 +v -0.893030 10.492235 19.372772 +v -0.143185 11.269897 -2.300617 +v -1.014517 11.207904 -2.300617 +v -1.360494 9.270180 6.250484 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0001 +vn -1.0000 -0.0000 0.0005 +vn -0.0000 -0.7793 -0.6266 vn -0.0000 -1.0000 -0.0000 -vn -0.0000 -0.9983 -0.0575 -vn 0.0000 -0.9772 -0.2125 -vn 0.0000 -0.9666 -0.2562 -vn 0.0000 -0.4950 0.8689 -vn 1.0000 -0.0000 0.0000 -vn -0.0053 0.6390 -0.7692 -vn 0.0000 0.6406 -0.7679 -vn -0.0035 0.6415 -0.7671 -vn 0.0000 -0.9606 -0.2778 -vn 0.0000 -0.9397 -0.3420 -vn 0.0000 0.1886 -0.9821 -vn 0.0000 0.6463 -0.7631 -vn -0.0036 0.6433 -0.7656 -vn 0.0000 0.8070 0.5905 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.9924 0.1232 -vn 0.0000 -0.5336 0.8457 -vn -0.0011 -0.5347 0.8451 -vn -0.0007 -0.5346 0.8451 -vn 0.0002 0.9819 0.1892 -vn 0.0000 1.0000 -0.0000 -vn -0.0000 0.8598 0.5106 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.9851 -0.1717 -vn 0.0000 -0.9356 0.3532 -vn 0.0000 -0.9999 0.0171 -vn 0.0000 0.3735 0.9276 -vn 0.0000 -0.2142 0.9768 -vn 0.0000 -0.1128 0.9936 -vn 0.0000 -0.6774 0.7356 -vn 0.0000 -0.5021 0.8648 -vn 0.0000 -0.9934 -0.1149 -vn 0.0000 0.0000 -1.0000 -vn -0.9978 0.0662 -0.0000 -vn -0.8965 0.4430 0.0000 -vn -0.9472 0.3207 -0.0000 -vn -0.9575 -0.1451 0.2492 -vn -0.9344 -0.2629 0.2404 -vn -0.9389 -0.2242 0.2612 -vn -0.8781 -0.1764 0.4448 -vn -0.9776 -0.1677 0.1269 -vn 0.9978 -0.0662 0.0000 +vn 1.0000 0.0001 -0.0001 +vn 1.0000 -0.0005 -0.0001 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.2954 -0.9554 +vn 1.0000 -0.0000 -0.0001 +vn -1.0000 -0.0000 -0.0001 +vn -0.0000 -1.0000 -0.0001 +vn -1.0000 0.0001 -0.0001 +vn -0.0000 0.3579 0.9338 +vn -0.0000 0.3242 -0.9460 +vn -0.0000 -0.9724 -0.2331 +vn -0.0000 0.6488 0.7610 +vn -0.0000 0.6112 0.7915 +vn -0.0000 0.3594 0.9332 +vn -0.0000 0.3979 0.9174 +vn 0.3944 -0.9189 -0.0000 +vn -0.2584 -0.9660 -0.0000 +vn -0.0544 0.0347 -0.9979 +vn -0.9202 0.3915 -0.0000 +vn -0.9202 0.3914 -0.0000 +vn -1.0000 -0.0000 -0.0023 +vn -1.0000 -0.0001 -0.0070 +vn -0.7948 0.6069 -0.0000 +vn -0.8837 0.4681 -0.0000 +vn -0.9815 0.1914 -0.0000 +vn 0.9202 0.3914 -0.0000 +vn 0.7785 0.6277 -0.0000 +vn 0.8716 -0.4902 0.0001 +vn 0.9946 -0.0000 0.1036 +vn 0.9501 0.3120 -0.0000 +vn 0.9922 -0.0000 0.1244 +vn -0.0000 -0.9849 0.1730 +vn -0.0000 -0.8848 0.4659 +vn -0.0000 -0.5054 0.8629 +vn 0.0001 -0.2527 0.9675 +vn -0.0000 -0.3827 0.9239 +vn -0.0001 0.5055 0.8628 +vn -0.0151 0.3827 0.9237 +vn -0.0075 0.3820 0.9241 +vn -0.0098 -0.0134 -0.9999 +vn -0.0135 0.0030 -0.9999 +vn -0.0078 -0.0088 -0.9999 +vn -0.9112 -0.0000 0.4119 +vn 0.9588 0.2841 -0.0000 +vn 0.8386 0.5448 -0.0000 +vn -0.8061 -0.3082 -0.5053 +vn -0.8143 -0.5805 -0.0013 +vn -0.5167 -0.8561 -0.0000 +vn 0.6940 0.7200 -0.0000 +vn 0.4341 0.8971 0.0825 +vn 0.9006 0.4347 0.0001 +vn -0.6892 0.1308 -0.7126 +vn -0.9536 0.0970 -0.2850 +vn -0.9956 0.0942 -0.0000 +vn -0.8233 -0.5676 0.0006 +vn -0.9600 -0.2555 -0.1143 +vn -0.3908 -0.9205 0.0012 +vn -0.9277 -0.3732 0.0009 +vn -0.8233 -0.5676 0.0008 +vn 0.8835 0.4684 -0.0000 +vn -0.9987 0.0005 0.0512 +vn -1.0000 0.0021 -0.0000 +vn -0.9198 0.3925 -0.0002 +vn -0.8535 0.5212 0.0001 +vn 0.1239 0.9740 0.1894 +vn 0.4932 0.8699 -0.0000 +vn -0.0000 0.9039 -0.4278 +vn -0.0000 0.8020 -0.5974 +vn -0.2691 0.9151 -0.3004 +vn -0.1559 0.0685 -0.9854 +vn -0.0000 0.2196 -0.9756 +vn -0.0000 0.2883 -0.9575 +vn -0.8561 0.5167 -0.0000 +vn -0.2979 0.9546 -0.0000 +vn -0.2469 0.9690 -0.0000 +vn 0.0544 0.9985 0.0027 +vn 0.3979 0.9174 0.0029 +vn 0.1126 0.9936 -0.0000 +vn 0.4235 0.9059 0.0029 +vn 0.9695 -0.2451 -0.0000 +vn 0.8716 -0.4902 -0.0000 +vn 0.4233 0.9060 0.0029 +vn 0.6497 0.7602 -0.0000 +vn -0.8837 0.4680 -0.0000 +vn -0.6017 0.7987 -0.0000 +vn -0.8561 0.5168 -0.0000 +vn -0.6934 0.7206 -0.0000 +vn -0.8186 0.5743 -0.0000 +vn 0.2692 0.9150 -0.3004 +vn 0.1831 0.9831 -0.0000 +vn 0.5496 0.8354 -0.0000 +vn -0.2622 0.9451 0.1950 +vn -0.4802 0.8651 0.1452 +vn 0.3027 0.9480 -0.0986 +vn -0.3083 0.9299 -0.2006 +vn -0.2470 0.9690 -0.0000 +vn 0.3052 0.9313 -0.1990 +vn -0.3051 0.9470 -0.1000 +vn 0.9878 -0.0000 0.1556 +vn 0.4972 -0.8676 -0.0000 +vn 0.9665 -0.2568 -0.0000 +vn 0.8580 -0.5136 -0.0000 +vn -0.0000 0.9980 0.0635 +vn -0.0000 0.9919 0.1269 +vn 0.8837 0.4681 -0.0000 +vn -0.0000 0.6730 0.7397 +vn -0.0000 0.6239 0.7815 +vn -0.0000 0.8374 0.5466 +vn -0.0000 0.9284 0.3717 +vn -0.0000 0.1989 0.9800 +vn 0.0033 0.6337 -0.7736 +vn 0.0022 0.6324 -0.7747 +vn -0.0001 0.7210 -0.6930 +vn -0.0000 0.6324 -0.7746 +vn -0.2468 0.9691 -0.0000 +vn -0.0000 0.6332 -0.7740 +vn -0.0001 0.4392 -0.8984 +vn 0.0028 0.4406 -0.8977 +vn 0.8561 0.5169 -0.0001 +vn 0.2691 0.9151 -0.3004 +vn 0.7948 0.6069 -0.0000 +vn 0.8561 0.5168 -0.0000 +vn 0.9660 0.2584 -0.0000 +vn 0.9660 0.2584 0.0001 +vn 0.8561 0.5168 -0.0002 +vn 0.8561 0.5168 -0.0001 +vn -0.3763 -0.9265 -0.0000 +vn 0.2486 -0.9686 -0.0000 +vn 0.3737 0.9275 -0.0000 +vn -0.0001 0.2196 -0.9756 +vn 0.8837 0.4680 -0.0000 +vn 0.7785 0.6276 -0.0000 +vn 0.9202 0.3915 -0.0000 +vn -0.0000 -0.7520 0.6592 +vn -0.8561 0.5169 -0.0001 +vn -0.6262 0.7797 -0.0000 +vn -0.9883 -0.0000 0.1528 +vn -0.9881 0.0006 0.1536 +vn -0.8580 -0.5136 -0.0000 +vn -0.0139 -0.0016 0.9999 +vn -0.0000 -0.0032 1.0000 +vn -0.9881 0.0014 0.1536 +vn -0.0000 0.9284 0.3716 +vn -0.0000 0.8374 0.5465 +vn -0.0022 0.6324 -0.7746 +vn -0.0027 0.6339 -0.7734 +vn -0.0015 0.4406 -0.8977 +vn -0.9660 0.2584 -0.0000 +vn -0.9665 -0.2568 -0.0000 +vn -0.3839 0.9234 -0.0000 +vn -0.6994 0.7147 -0.0000 +vn -0.0000 0.5725 0.8199 +vn -0.0000 0.5724 0.8199 +vn -0.0000 0.2878 -0.9577 +vn -0.0000 0.5513 -0.8343 +vn -0.3908 -0.9205 0.0007 +vn -0.3902 -0.9207 -0.0000 +vn -0.9601 -0.2554 -0.1143 +vn -0.9472 -0.3207 -0.0000 +vn -0.9978 0.0661 -0.0000 +vn -0.9978 -0.0662 -0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn -0.4430 -0.8965 -0.0000 +vn -0.6588 -0.7523 -0.0000 +vn -0.0661 -0.9978 -0.0000 +vn -0.3207 -0.9472 -0.0000 +vn 0.1802 -0.0001 0.9836 +vn 0.4855 -0.0001 0.8742 +vn 0.0662 -0.9978 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.3828 -0.9238 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.8510 -0.0001 0.5252 +vn 0.9649 -0.0001 0.2626 +vn 0.9715 -0.0000 -0.2369 +vn 0.8806 -0.0000 -0.4739 vn 0.8965 -0.4430 -0.0000 vn 0.9472 -0.3207 -0.0000 -vn -0.6588 0.7523 0.0000 +vn 0.9978 0.0662 -0.0000 +vn 0.9978 -0.0662 -0.0000 +vn 0.8965 0.4430 -0.0000 +vn 0.9472 0.3207 -0.0000 +vn 0.6588 0.7523 -0.0000 +vn 0.7523 0.6588 0.0001 +vn 0.3207 0.9472 -0.0000 +vn 0.4430 0.8965 -0.0000 +vn -0.0662 0.9978 -0.0000 +vn 0.0661 0.9978 -0.0000 +vn -0.0661 0.9978 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.3831 0.9237 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.4068 -0.0000 -0.9135 +vn -0.8965 0.4430 -0.0000 +vn -0.9472 0.3207 -0.0000 +vn -0.0000 0.2895 -0.9572 +vn -0.3241 -0.0000 -0.9460 +vn -0.0000 0.2399 -0.9708 +vn -0.0000 0.5962 -0.8028 +vn -0.0000 0.5087 -0.8609 +vn -0.0000 0.4166 -0.9091 +vn -0.2336 -0.0000 0.9723 +vn 0.3531 -0.0000 0.9356 +vn 0.9112 -0.0000 0.4119 +vn -0.0000 0.8520 0.5235 +vn -0.0003 0.7892 0.6142 +vn -0.0000 0.1917 0.9814 +vn -0.0000 0.7892 0.6142 +vn -0.0000 0.4287 0.9035 +vn -0.0000 0.6411 0.7674 +vn -0.0000 0.5534 0.8329 +vn -0.0000 0.8920 0.4521 +vn -0.0000 0.8459 0.5334 +vn -0.0000 0.9771 0.2126 +vn -0.0000 0.9896 0.1439 +vn -0.0000 0.9979 0.0648 +vn -0.0000 0.9977 0.0682 +vn -0.0000 0.9974 0.0716 +vn 0.9695 -0.2451 -0.0001 +vn -0.0111 0.0273 -0.9996 +vn -0.0194 0.0258 -0.9995 +vn -0.0030 0.0101 -0.9999 +vn -0.0000 0.0008 -1.0000 +vn -0.0005 0.0005 -1.0000 +vn -0.0009 -0.0000 -1.0000 +vn -0.0148 -0.0140 -0.9998 +vn -0.0126 -0.0131 -0.9998 +vn -0.0055 -0.0061 -1.0000 +vn -0.0004 -0.0004 -1.0000 +vn 0.0004 0.0004 -1.0000 +vn -0.0138 0.0348 -0.9993 +vn -0.0152 -0.0072 -0.9999 +vn -0.0000 0.2527 0.9675 +vn -0.9588 0.2841 -0.0000 +vn -0.8386 0.5448 -0.0000 +vn -0.4855 -0.0000 0.8742 +vn -0.2428 -0.0000 0.9701 +vn -0.8510 -0.0000 0.5252 +vn -0.9715 0.0001 -0.2369 +vn -0.9649 -0.0000 0.2626 +vn -0.9715 -0.0000 -0.2370 +vn -0.8806 -0.0000 -0.4739 +vn -0.4068 -0.0000 -0.9135 +vn -0.0000 0.8521 0.5234 +vn -0.4670 -0.0000 0.8842 +vn -0.6588 0.7523 -0.0000 vn -0.7523 0.6588 -0.0000 +vn -0.3207 0.9472 -0.0000 +vn -0.4430 0.8965 -0.0000 vn 0.6588 -0.7523 -0.0000 -vn 0.7523 -0.6588 -0.0000 -vn -0.3207 0.9472 -0.0001 -vn -0.4430 0.8965 -0.0001 vn 0.3207 -0.9472 -0.0000 vn 0.4430 -0.8965 -0.0000 -vn 0.0662 0.9978 0.0000 -vn -0.0661 0.9978 0.0000 -vn -0.0662 -0.9978 -0.0000 -vn 0.0661 -0.9978 0.0000 -vn 0.0661 0.9978 0.0000 -vn 0.4430 0.8965 -0.0000 -vn 0.3207 0.9472 0.0000 -vn -0.0661 -0.9978 -0.0000 -vn -0.4430 -0.8965 -0.0000 -vn -0.3207 -0.9472 -0.0000 +vn 0.7523 -0.6588 -0.0000 vn 0.7523 0.6588 -0.0000 -vn 0.6588 0.7523 0.0000 -vn -0.7523 -0.6588 -0.0000 -vn -0.6588 -0.7523 -0.0000 -vn 0.9472 0.3207 -0.0000 -vn 0.8965 0.4430 -0.0001 -vn -0.9472 -0.3207 -0.0000 -vn -0.8965 -0.4430 -0.0000 -vn 0.9978 0.0662 -0.0000 -vn -0.9978 -0.0662 0.0000 -vn 0.8965 -0.4430 0.0001 -vn -0.3207 0.9472 0.0000 -vn -0.4430 0.8965 0.0000 -vn 0.0662 -0.9978 -0.0000 -vn -0.0662 0.9978 0.0000 -vn -0.4430 -0.8965 0.0001 -vn -0.3207 -0.9472 0.0001 -vn 0.8965 0.4430 0.0000 -vn 0.0000 0.9071 -0.4210 -vn 0.0000 0.9960 0.0890 -vn 0.0000 0.9960 -0.0890 -vn 0.0000 0.9960 0.0889 -vn 0.0000 0.8181 0.5750 -vn 0.0000 0.9071 0.4210 -vn 0.0000 0.5751 -0.8181 -vn 0.0000 0.8181 -0.5751 -vn 0.0000 0.4210 0.9071 -vn 0.0000 0.5750 0.8181 -vn 0.0000 0.0890 -0.9960 -vn 0.0000 0.4210 -0.9071 -vn 0.0000 -0.0889 0.9960 -vn 0.0000 0.0889 0.9960 -vn 0.0000 -0.4210 -0.9071 -vn 0.0000 0.0889 -0.9960 -vn -0.0000 -0.0890 -0.9960 -vn 0.0000 -0.5750 0.8181 -vn 0.0000 -0.4210 0.9071 -vn 0.0000 -0.8181 -0.5751 -vn 0.0000 -0.5751 -0.8181 -vn 0.0000 -0.9071 0.4210 -vn 0.0000 -0.8181 0.5750 -vn 0.0000 -0.9960 -0.0890 -vn 0.0000 -0.9071 -0.4210 -vn 0.0000 -0.9960 -0.0889 -vn 0.0000 -0.9960 0.0889 -vn 0.0000 -0.9960 0.0890 -vn 0.0000 -0.8181 -0.5750 -vn 0.0000 -0.5751 0.8181 -vn 0.0000 -0.8181 0.5751 -vn 0.0000 -0.5750 -0.8181 -vn 0.0000 -0.0890 0.9960 -vn -0.0001 -0.0890 -0.9960 -vn 0.0000 0.0890 0.9960 -vn 0.0000 0.5750 -0.8181 -vn 0.0000 0.8181 0.5751 -vn 0.0000 0.5751 0.8181 -vn 0.0000 0.8181 -0.5750 -vn 0.0000 0.9960 -0.0889 -vn -0.8737 -0.1315 -0.4684 -vn -0.9862 -0.0041 -0.1656 -vn -0.8872 0.2205 -0.4054 -vn -0.7168 -0.3702 0.5909 -vn -0.0822 -0.6000 0.7957 -vn -0.6767 -0.2422 0.6953 -vn -0.9125 0.1216 -0.3905 -vn -0.9940 0.0221 -0.1068 -vn -0.9139 -0.0027 -0.4059 -vn -0.9673 0.2232 0.1202 -vn -0.9954 -0.0433 0.0853 -vn -0.9560 0.1006 0.2757 -vn -0.9685 -0.0991 0.2284 -vn -0.9504 -0.2074 0.2318 -vn -0.9883 0.1182 0.0969 -vn -0.4530 0.2801 -0.8464 -vn -0.4864 0.0390 -0.8729 -vn -0.9142 0.0704 -0.3992 -vn -0.1396 0.2721 -0.9521 -vn -0.0360 0.1283 -0.9911 -vn -0.8460 0.1204 -0.5194 -vn -0.9076 0.3995 -0.1294 -vn -0.4854 0.7468 -0.4545 -vn -0.5755 0.8091 -0.1186 -vn -0.0534 0.7747 -0.6301 -vn -0.3445 0.4756 -0.8094 -vn -0.9779 -0.0642 -0.1992 -vn -0.9947 0.0245 -0.0996 -vn -0.9931 -0.0834 -0.0820 -vn -0.9058 -0.1444 -0.3984 -vn -0.9566 0.2613 0.1289 -vn -0.9201 -0.3126 0.2362 -vn -0.9313 -0.3635 0.0218 -vn -0.9227 -0.2852 0.2592 -vn -0.9128 -0.3909 0.1182 -vn -0.9312 -0.3570 0.0740 -vn -0.9684 -0.1692 0.1830 -vn -0.9038 -0.3696 0.2156 -vn -0.9809 -0.1776 0.0789 -vn -0.9786 -0.2002 0.0480 -vn -0.9987 -0.0475 -0.0201 -vn -0.9688 0.2308 0.0903 -vn -0.9376 0.0952 0.3344 -vn -0.9649 0.1135 0.2367 -vn -0.9495 0.2763 0.1486 -vn -0.9832 0.0556 0.1736 -vn -0.9844 0.1276 0.1212 -vn -0.9290 0.2500 0.2729 -vn -0.9956 -0.0665 0.0653 -vn -0.9625 -0.0724 0.2614 -vn -0.9851 -0.1084 0.1335 -vn -0.9833 -0.0502 0.1751 -vn -0.9846 -0.0087 0.1745 -vn -0.9900 0.1007 0.0988 -vn -0.8989 0.0907 0.4287 -vn -0.9942 -0.0403 -0.1002 -vn -0.9968 -0.0448 -0.0663 -vn -0.8695 -0.2858 -0.4029 -vn -0.9335 -0.3023 -0.1926 -vn -0.9089 -0.4170 0.0072 -vn -0.9846 -0.1696 0.0430 -vn -0.9932 -0.0221 -0.1146 -vn -0.9900 0.0999 -0.0998 -vn -0.9920 0.1239 -0.0234 -vn -0.5747 0.5494 0.6065 -vn -0.8998 0.4026 0.1680 -vn -0.0745 0.7122 0.6980 -vn -0.3706 0.2403 0.8972 -vn -0.0963 -0.2070 0.9736 -vn -0.0758 0.2517 0.9648 -vn -0.6409 -0.7662 -0.0458 -vn -0.9298 -0.2330 0.2848 -vn 0.0000 -0.5750 0.8182 -vn 0.0000 -0.5750 -0.8182 -vn 0.0000 -0.8182 -0.5750 -vn 0.0000 0.5750 0.8182 -vn 0.0000 -0.0889 -0.9960 -vn 0.0000 -0.9239 -0.3826 -vn 0.0000 0.9239 -0.3826 -vn 0.0000 0.9675 -0.2527 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 -0.9239 -vn -0.0000 0.8629 -0.5054 -vn 0.0000 -0.9676 -0.2526 -vn -0.0000 -0.8629 -0.5054 -vn 0.0002 -0.9676 -0.2526 -vn 0.0000 0.9906 0.1368 -vn 0.0000 0.6038 0.7972 -vn 0.0000 0.7972 0.6038 -vn 0.0000 -0.1368 0.9906 -vn 0.0000 0.1368 0.9906 -vn 0.0000 -0.7972 0.6037 -vn -0.0000 -0.6038 0.7972 -vn 0.0000 -0.7972 0.6038 -vn 0.0000 -0.9906 -0.1368 -vn 0.0000 -0.9906 0.1368 -vn 0.0000 -0.6038 -0.7972 -vn 0.0000 -0.7972 -0.6038 -vn 0.0000 0.1368 -0.9906 -vn 0.0000 -0.1368 -0.9906 -vn -1.0000 0.0000 0.0037 -vn -1.0000 0.0000 0.0075 -vn 0.0000 0.7972 -0.6038 -vn 0.0000 0.6038 -0.7972 -vn -0.5344 0.1812 0.8256 -vn -0.5073 -0.3627 0.7818 -vn -0.5247 -0.1884 0.8302 -vn -0.3422 0.8174 0.4635 -vn -0.5018 0.4301 0.7505 -vn 0.0000 0.9906 -0.1368 -vn 0.0138 0.7488 -0.6626 -vn -0.0105 0.4047 -0.9144 -vn 0.0087 0.3748 -0.9271 -vn 0.0713 0.8730 -0.4825 -vn -0.0055 0.9136 -0.4067 -vn -0.9958 -0.0324 -0.0853 -vn -0.9474 -0.3190 -0.0268 -vn 0.9932 -0.0426 -0.1083 -vn 0.9930 -0.0531 -0.1054 -vn 0.9015 -0.4270 -0.0701 -vn 0.9474 -0.3190 -0.0268 -vn 0.4260 -0.8999 -0.0934 -vn -0.4482 -0.5058 0.7370 -vn -0.4877 -0.5255 0.6971 -vn -0.9280 -0.3587 -0.1012 -vn -0.8534 -0.4727 -0.2197 -vn -0.4260 -0.8989 -0.1030 -vn 0.9394 -0.1625 -0.3019 -vn 0.5145 -0.3209 0.7952 -vn 0.9295 -0.1383 0.3419 -vn 0.9268 -0.1407 0.3483 -vn -0.6818 -0.5955 -0.4249 -vn -0.9911 0.0000 0.1331 -vn -0.9978 -0.0000 0.0666 -vn 0.9404 0.1281 -0.3149 -vn 0.9304 0.1374 -0.3398 -vn -0.0000 -0.9918 0.1279 -vn -0.0000 -0.9960 -0.0893 -vn 0.1721 0.4024 -0.8991 -vn 0.0000 0.4238 -0.9058 -vn -0.9476 -0.1416 -0.2864 -vn -0.9930 -0.0531 -0.1054 -vn -0.9476 -0.1416 -0.2865 -vn 0.8934 -0.3903 -0.2225 -vn -1.0000 -0.0006 0.0001 -vn -1.0000 -0.0010 -0.0002 -vn -0.9886 -0.0584 0.1389 -vn -1.0000 0.0000 -0.0006 -vn -1.0000 0.0008 -0.0005 -vn -0.8859 -0.1792 0.4279 -vn -0.9569 -0.1081 0.2694 -vn -0.9391 -0.1502 0.3090 -vn -0.9371 -0.1343 0.3223 -vn 0.4203 -0.4751 0.7730 -vn 0.3339 -0.2816 0.8996 -vn 0.8896 -0.1729 0.4226 -vn -0.9473 0.1523 -0.2819 -vn -0.9802 0.0091 -0.1979 -vn -0.2835 -0.4795 -0.8305 -vn -0.2965 -0.1206 -0.9474 -vn -0.0364 0.1142 -0.9928 -vn 0.9363 0.1191 -0.3304 -vn -0.9363 0.1191 -0.3304 -vn 0.9910 0.0439 -0.1265 -vn -0.9910 0.0439 -0.1265 -vn -0.8724 -0.1036 0.4777 -vn -0.9603 0.0267 0.2778 -vn -0.9801 -0.1117 0.1641 -vn -0.9999 -0.0132 -0.0001 -vn -0.9719 -0.0333 0.2329 -vn -0.9376 0.1183 -0.3271 -vn -0.9212 0.1912 -0.3389 -vn 0.0000 -0.9072 -0.4206 -vn 0.0208 -0.2762 -0.9609 -vn 0.0000 0.2238 -0.9746 -vn 0.0000 0.1500 -0.9887 -vn -0.9257 -0.1856 -0.3295 -vn -0.9477 -0.2262 -0.2251 -vn -0.9436 -0.3063 -0.1256 -vn -0.5812 -0.6406 -0.5019 -vn -0.0857 0.9400 -0.3302 -vn -0.0807 0.8763 -0.4749 -vn 0.0006 0.2651 -0.9642 -vn -0.9910 0.0440 -0.1265 -vn -0.9363 0.1191 -0.3303 -vn -0.4139 0.3096 -0.8560 -vn -0.3758 -0.8080 -0.4538 -vn -0.3691 -0.8001 -0.4728 -vn -0.3743 -0.7996 -0.4696 -vn -0.3715 0.2637 -0.8902 -vn -0.3430 0.0002 -0.9393 -vn -0.3595 0.1300 -0.9240 -vn -0.3937 -0.6141 -0.6841 -vn 0.9227 -0.2852 0.2592 -vn 0.8989 0.0907 0.4287 -vn 0.6998 -0.1880 0.6892 -vn 0.9504 -0.2074 0.2318 -vn 0.9201 -0.3126 0.2362 -vn 0.6767 -0.2422 0.6953 -vn 0.9649 0.1135 0.2367 -vn 0.9883 0.1182 0.0969 -vn 0.7168 -0.3702 0.5909 -vn 0.9376 0.0952 0.3344 -vn 0.9560 0.1006 0.2757 -vn 0.4864 0.0390 -0.8729 -vn 0.9142 0.0704 -0.3992 -vn 0.9058 -0.1444 -0.3984 -vn 0.0717 -0.2461 -0.9666 -vn 0.0360 0.1283 -0.9911 -vn 0.9139 -0.0027 -0.4059 -vn 0.9125 0.1216 -0.3905 -vn 0.8460 0.1204 -0.5194 -vn 0.9083 -0.1711 -0.3818 -vn 0.4795 -0.1233 -0.8689 -vn 0.8695 -0.2858 -0.4029 -vn 0.3927 -0.4709 -0.7900 -vn 0.8737 -0.1315 -0.4684 -vn 0.3129 -0.4800 -0.8196 -vn 0.8872 0.2205 -0.4054 -vn 0.3805 -0.0664 -0.9224 -vn 0.5755 0.8091 -0.1186 -vn 0.3592 0.8985 0.2523 -vn 0.8999 0.4025 0.1679 -vn 0.0333 -0.3953 -0.9180 -vn -0.0238 -0.5460 -0.8375 -vn -0.0633 -0.2827 -0.9571 -vn -0.0221 0.3133 -0.9494 -vn 0.3445 0.4756 -0.8094 -vn 0.0128 -0.0140 -0.9998 -vn 0.0009 0.2043 -0.9789 -vn 0.9968 -0.0448 -0.0663 -vn 0.9932 -0.0221 -0.1146 -vn 0.9089 -0.4170 0.0072 -vn 0.9846 -0.1696 0.0430 -vn 0.9298 -0.2330 0.2848 -vn 0.4446 -0.3490 -0.8249 -vn 0.9076 0.3995 -0.1294 -vn 0.0550 0.2948 -0.9540 -vn 0.0963 -0.2070 0.9736 -vn 0.0822 -0.6000 0.7957 -vn 0.9940 0.0221 -0.1068 -vn 0.9954 -0.0433 0.0853 -vn 0.4530 0.2801 -0.8464 -vn 0.4854 0.7468 -0.4545 -vn 0.0534 0.7747 -0.6301 -vn 0.9920 0.1239 -0.0234 -vn 0.9900 0.0999 -0.0998 -vn 0.9900 0.1007 0.0988 -vn 0.9862 -0.0041 -0.1656 -vn -0.1765 -0.9638 -0.1996 -vn 0.6818 -0.5955 -0.4249 -vn 0.3051 -0.5726 -0.7609 -vn 0.2122 -0.9513 -0.2235 -vn 0.0000 0.0901 -0.9959 -vn 0.4259 -0.8802 -0.2092 -vn 0.9999 0.0167 0.0007 -vn 1.0000 0.0019 0.0034 -vn -0.0000 0.9018 -0.4322 -vn 0.0616 0.9395 -0.3370 -vn 0.0000 0.9364 -0.3510 -vn 0.0857 0.9400 -0.3302 -vn 0.0516 0.7096 -0.7027 -vn -0.0000 0.1126 -0.9936 -vn -0.0000 0.2651 -0.9642 -vn 0.0000 0.2199 -0.9755 -vn -0.0000 0.9018 -0.4321 -vn -0.0613 0.7646 -0.6415 -vn 0.9666 0.0118 -0.2559 -vn 0.9053 -0.1764 0.3864 -vn 0.9477 -0.2262 -0.2251 -vn 0.9436 -0.3063 -0.1256 -vn 0.9389 -0.2242 0.2612 -vn 0.9776 -0.1677 0.1269 -vn 0.9978 -0.0000 0.0666 -vn 0.9257 -0.1856 -0.3295 -vn -0.8895 0.4570 0.0000 -vn -0.2763 0.9611 0.0002 -vn -0.5527 0.8333 0.0001 -vn -0.9736 0.2284 -0.0000 -vn -0.0976 -0.7838 0.6132 -vn -0.6439 -0.6219 -0.4457 -vn -0.0928 -0.7999 -0.5929 -vn -0.0690 -0.9541 -0.2914 -vn -0.4446 -0.3490 -0.8249 -vn -0.3592 0.8985 0.2523 -vn -0.1134 0.9756 -0.1878 -vn -0.0002 0.2043 -0.9789 -vn -0.0550 0.2948 -0.9540 -vn -0.6998 -0.1881 0.6892 -vn -0.9083 -0.1711 -0.3818 -vn -0.0717 -0.2461 -0.9666 -vn -0.4795 -0.1233 -0.8689 -vn -0.3927 -0.4709 -0.7900 -vn -0.3129 -0.4800 -0.8196 -vn -0.3805 -0.0664 -0.9224 -vn -0.0333 -0.3953 -0.9180 -vn 0.0238 -0.5460 -0.8375 -vn 0.0633 -0.2827 -0.9571 -vn 0.0221 0.3133 -0.9494 -vn -0.0128 -0.0140 -0.9998 -vn 0.9673 0.2232 0.1202 -vn 0.9685 -0.0991 0.2284 -vn 0.1396 0.2721 -0.9521 -vn 0.9779 -0.0642 -0.1992 -vn 0.9931 -0.0834 -0.0820 -vn 0.9335 -0.3023 -0.1926 -vn 0.9566 0.2613 0.1289 -vn 0.9313 -0.3635 0.0219 -vn 0.9128 -0.3909 0.1182 -vn 0.9786 -0.2002 0.0480 -vn 0.9312 -0.3570 0.0740 -vn 0.9038 -0.3696 0.2156 -vn 0.9684 -0.1692 0.1830 -vn 0.9809 -0.1776 0.0789 -vn 0.9987 -0.0475 -0.0201 -vn 0.9688 0.2308 0.0903 -vn 0.9495 0.2763 0.1486 -vn 0.9290 0.2500 0.2729 -vn 0.9844 0.1276 0.1212 -vn 0.9832 0.0556 0.1736 -vn 0.9956 -0.0665 0.0653 -vn 0.9625 -0.0724 0.2614 -vn 0.9851 -0.1084 0.1335 -vn 0.9833 -0.0502 0.1751 -vn 0.9846 -0.0087 0.1745 -vn 0.9942 -0.0403 -0.1002 -vn 0.9947 0.0245 -0.0996 -vn 0.5747 0.5494 0.6065 -vn 0.3706 0.2403 0.8972 -vn 0.0745 0.7122 0.6980 -vn 0.0758 0.2517 0.9648 -vn 0.6409 -0.7662 -0.0458 -vn 0.1193 -0.7677 0.6296 -vn 0.0973 -0.7840 0.6130 -vn 0.6439 -0.6219 -0.4457 -vn 0.0928 -0.7999 -0.5929 -vn 0.1134 0.9756 -0.1878 -vn 0.0654 0.9680 0.2423 -vn -0.3723 -0.3800 -0.8468 -vn -0.6432 -0.3414 -0.6854 -vn -0.4592 -0.4012 -0.7925 -vn -0.4263 -0.8678 -0.2554 -vn -0.3935 0.1531 -0.9065 -vn -0.5149 0.4477 -0.7311 -vn -0.4133 0.4461 -0.7938 -vn -0.9212 0.1912 -0.3390 -vn -0.9375 0.1183 -0.3271 -vn 0.9999 0.0135 -0.0099 -vn 0.9998 0.0213 0.0011 -vn 0.9996 0.0271 0.0029 -vn -0.9998 0.0213 0.0011 -vn -0.9996 0.0271 0.0029 -vn -0.9997 0.0252 0.0067 -vn 0.8895 0.4570 0.0000 -vn 0.9736 0.2284 0.0000 -vn 0.4196 0.9077 0.0000 -vn -0.0000 -0.9568 -0.2908 -vn -0.9999 0.0167 0.0007 -vn -0.9995 0.0314 -0.0020 -vn -0.0004 -0.2799 0.9600 -vn 0.0001 -0.5968 0.8024 -vn -0.0004 -0.5061 0.8625 -vn 0.0001 -0.7783 0.6279 -vn 0.0000 -0.8622 0.5066 -vn 0.0000 -0.9667 0.2558 -vn -0.0004 -0.2668 0.9638 -vn -0.9911 -0.0000 0.1332 -vn -0.9894 -0.1160 0.0873 -vn 0.8417 -0.2936 0.4532 -vn 0.4395 -0.3448 0.8294 -vn 0.4540 -0.0806 0.8873 -vn -1.0000 0.0006 0.0012 -vn 1.0000 0.0095 -0.0023 -vn 0.9997 0.0252 0.0067 -vn 0.0001 0.2199 -0.9755 -vn -0.0616 0.9395 -0.3370 -vn -0.4392 0.0051 0.8984 -vn -0.3221 -0.2815 0.9039 -vn -0.4149 -0.3225 0.8508 -vn -0.4184 -0.0205 0.9080 -vn 0.0147 -0.3602 0.9328 -vn -0.3221 -0.2814 0.9039 -vn -0.1337 0.9663 0.2198 -vn -0.9800 0.0000 0.1988 -vn -0.5451 0.8383 0.0000 -vn -0.2015 0.9795 0.0001 -vn -0.9362 0.3516 0.0001 -vn -0.9334 -0.3588 -0.0000 -vn -0.5359 -0.8443 -0.0000 -vn -0.0000 0.9989 0.0471 -vn 0.0000 0.9992 0.0392 -vn 0.0000 0.9931 0.1175 -vn 0.0000 0.9992 0.0393 -vn 0.1595 0.9872 0.0003 -vn 0.9363 0.3512 0.0000 -vn 0.9362 0.3516 0.0001 -vn 0.5451 0.8383 0.0001 -vn 0.9334 -0.3588 -0.0000 -vn 0.4063 -0.9137 -0.0000 -vn -0.2679 -0.9634 -0.0000 -vn 0.0000 -0.5363 0.8440 -vn -0.0005 -0.5361 0.8442 -vn 0.0000 -0.8176 -0.5758 -vn -0.9850 -0.0671 0.1589 -vn 0.4464 -0.6134 0.6515 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.7929 0.6094 -vn 0.4465 -0.6134 0.6515 -vn 0.0655 0.8693 0.4899 -vn 0.0479 0.9748 0.2177 -vn 0.0450 0.9407 0.3362 -vn 1.0000 -0.0001 -0.0003 -vn 1.0000 0.0004 -0.0008 -vn 1.0000 -0.0007 -0.0006 -vn 0.9756 -0.0842 0.2027 -vn 1.0000 0.0004 -0.0001 -vn 0.4540 -0.0805 0.8873 -vn 0.0000 -0.1298 0.9915 -vn 0.0112 -0.9503 0.3111 -vn 1.0000 0.0002 -0.0001 -vn 1.0000 -0.0007 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.6037 0.7972 -vn 0.0000 0.7972 0.6037 -vn 0.0000 0.7071 -0.7071 -vn 0.4240 0.3427 -0.8383 -vn -0.9999 0.0135 -0.0099 -vn 0.4193 0.9079 0.0001 -vn -1.0000 0.0095 -0.0023 -vn 0.0001 -0.7972 -0.6037 -vn 0.0000 -0.6037 -0.7972 -vn -0.1722 0.3928 -0.9033 -vn 0.0000 -0.9929 -0.1193 -vn 0.9911 0.0000 0.1332 -vn 0.0000 -0.9478 0.3188 -vn 0.0000 -0.4448 0.8956 -vn -0.0000 -0.8814 -0.4724 -vn -0.9418 0.2820 0.1830 -vn -0.7726 0.5655 0.2886 -vn 0.0646 -0.2831 0.9569 -vn 0.0405 -0.5936 0.8037 -vn 0.5073 -0.3627 0.7818 -vn 0.5247 -0.1884 0.8302 -vn 0.4877 -0.5255 0.6971 -vn 0.3422 0.8174 0.4635 -vn 0.1337 0.9663 0.2198 -vn 0.5018 0.4301 0.7505 -vn 0.5344 0.1812 0.8256 -vn 1.0000 -0.0000 0.0037 -vn 1.0000 0.0000 0.0075 -vn 0.0674 0.0000 0.9977 -vn 0.9894 -0.1160 0.0873 -vn 0.9344 -0.2629 0.2404 -vn -0.9978 -0.0354 0.0555 -vn 0.9575 -0.1436 0.2500 -vn 0.9800 0.0000 0.1988 -vn 0.0000 -0.2272 0.9739 -vn 0.0002 0.6059 0.7955 -vn 0.0000 0.8184 0.5746 -vn -0.0002 0.3029 0.9530 -vn 0.0000 0.6605 0.7508 -vn 0.0000 -0.3632 0.9317 -vn 0.0000 -0.9906 0.1367 -vn 0.4395 -0.3449 0.8294 -vn 0.3228 -0.2420 0.9150 -vn 0.9719 -0.0333 0.2329 -vn 0.9603 0.0267 0.2778 -vn 0.4392 0.0417 0.8974 -vn 0.4198 -0.1075 0.9012 -vn -0.0197 -0.3607 0.9325 -vn -0.0257 -0.3607 0.9323 -vn 0.5470 -0.3017 0.7809 -vn 0.9801 -0.1117 0.1641 -vn 0.8724 -0.1036 0.4777 -vn -0.4184 -0.0204 0.9080 -vn 0.0385 -0.3613 0.9316 -vn 0.5470 -0.3018 0.7808 -vn 0.4198 -0.1076 0.9012 -vn 1.0000 0.0009 -0.0015 -vn 1.0000 0.0001 -0.0016 -vn 1.0000 0.0006 0.0012 -vn 0.0000 -0.4993 0.8664 -vn 0.0000 -0.2667 0.9638 -vn -0.0000 0.0459 0.9989 -vn 0.0000 -0.0351 0.9994 -vn 0.0006 -0.3409 0.9401 -vn 0.0003 -0.5061 0.8625 -vn 0.0003 -0.3136 0.9496 -vn -0.0000 -0.7783 0.6279 -vn -0.0001 -0.5968 0.8024 -vn 0.0000 0.9970 -0.0770 -vn 0.0000 0.8727 -0.4883 -vn -0.0001 0.9526 -0.3041 -vn -0.0000 0.5657 -0.8246 -vn 0.0000 0.6710 -0.7415 -vn 0.0000 0.9914 0.1311 -vn -0.0000 0.9993 -0.0385 -vn 0.0000 0.1546 -0.9880 -vn 0.0000 0.3091 -0.9510 -vn -0.0000 0.8635 0.5044 -vn -0.0000 0.9650 0.2623 -vn 0.0000 -0.1761 -0.9844 -vn 0.0000 -0.0880 -0.9961 -vn -0.0000 0.6016 0.7988 -vn 0.0000 0.7882 0.6154 -vn -0.0000 -0.5913 -0.8065 -vn 0.0000 -0.4311 -0.9023 -vn 0.0000 0.2927 0.9562 -vn -0.0000 0.4905 0.8714 -vn 0.0000 -0.8104 -0.5859 -vn 0.0000 0.2098 0.9777 -vn -0.0002 -0.2799 0.9600 -vn 0.9212 0.1912 -0.3390 -vn 0.9375 0.1183 -0.3271 -vn 0.9363 0.1191 -0.3303 -vn 0.5457 0.2840 -0.7884 -vn 0.4129 0.3969 -0.8198 -vn 0.3689 0.4766 -0.7979 -vn 0.9473 0.1523 -0.2819 -vn 0.5471 0.1521 -0.8231 -vn 0.4428 -0.7141 -0.5422 -vn 0.4578 -0.2885 -0.8409 -vn 0.6432 -0.3414 -0.6854 -vn 0.2347 -0.0372 -0.9713 -vn 0.3723 -0.3800 -0.8468 -vn 0.3937 -0.6141 -0.6841 -vn 0.3430 0.0002 -0.9393 -vn 0.3691 -0.8001 -0.4728 -vn 0.3715 0.2637 -0.8902 -vn 0.4024 0.2750 -0.8731 -vn 0.3595 0.1300 -0.9240 -vn 0.3758 -0.8080 -0.4538 -vn 0.3743 -0.7997 -0.4695 -vn 0.9910 0.0440 -0.1265 -vn 0.9212 0.1912 -0.3389 -vn 0.9376 0.1183 -0.3271 -vn 0.9999 -0.0132 -0.0001 -vn -0.5587 0.3131 -0.7680 -vn -0.1722 0.3928 -0.9034 -vn -0.9404 0.1281 -0.3149 -vn -0.9295 -0.1383 0.3419 -vn -0.9268 -0.1407 0.3483 -vn -0.3897 -0.3446 0.8541 -vn -0.3829 -0.3454 0.8568 -vn -0.9268 -0.1406 0.3483 -vn 0.2529 -0.3618 0.8973 -vn 0.1722 0.4024 -0.8991 -vn -0.0000 -0.6037 0.7972 -vn -0.4024 0.2750 -0.8731 -vn 0.9995 0.0314 -0.0020 -vn -0.1193 -0.7677 0.6296 -vn -0.0654 0.9680 0.2423 -vn 0.0690 -0.9541 -0.2914 -vn -1.0000 0.0019 0.0034 -vn -0.9363 0.3512 0.0000 -vn 0.0373 0.8327 0.5525 -vn 0.0000 0.1951 0.9808 -vn 0.0000 -0.9574 0.2887 -vn 0.0000 0.3827 0.9239 -vn 0.4482 -0.5058 0.7370 -vn 0.0004 -0.3409 0.9401 -vn -0.9304 0.1374 -0.3398 +vn 0.9978 -0.0661 -0.0000 +vn 0.9978 0.0661 -0.0000 +vn -0.9978 -0.0661 -0.0000 +vn 0.0661 -0.9978 -0.0000 +vn -0.0001 -0.8629 -0.5054 +vn -0.0000 -0.9675 -0.2527 +vn -0.0001 -0.5054 -0.8629 +vn -0.0000 0.2527 -0.9675 +vn -0.0000 0.5054 -0.8629 +vn -0.0000 -0.2527 -0.9675 +vn -0.0000 0.9675 -0.2527 +vn 0.0001 0.8629 -0.5054 +vn -1.0000 -0.0000 -0.0068 +vn -1.0000 -0.0000 -0.0028 +vn -0.0000 -0.3821 0.9241 +vn 0.3738 0.9275 -0.0000 +vn 0.0001 0.7210 -0.6930 +vn 0.7948 0.6069 -0.0002 +vn -0.6262 0.7797 -0.0001 +vn 0.7948 0.6069 0.0002 +vn -0.0000 -0.9849 0.1731 +vn -0.9987 -0.0000 0.0512 +vn -1.0000 0.0026 -0.0000 +vn 0.0662 0.9978 -0.0000 +vn 0.9715 -0.0000 -0.2370 +vt 0.665882 0.347767 +vt 0.666023 0.347766 +vt 0.666162 0.347974 +vt 0.668422 0.348903 +vt 0.668420 0.348450 +vt 0.668128 0.348707 +vt 0.670331 0.347891 +vt 0.670113 0.347891 +vt 0.670112 0.348138 +vt 0.648961 0.347035 +vt 0.648963 0.347711 +vt 0.650088 0.347182 +vt 0.670330 0.348139 +vt 0.670330 0.348216 +vt 0.671351 0.348220 +vt 0.671351 0.348142 +vt 0.655673 0.344315 +vt 0.655725 0.344372 +vt 0.655911 0.344201 +vt 0.649593 0.340884 +vt 0.649645 0.341960 +vt 0.649646 0.340955 +vt 0.656134 0.344371 +vt 0.649941 0.340885 +vt 0.655073 0.340475 +vt 0.655070 0.339797 +vt 0.654996 0.339724 +vt 0.671575 0.327451 +vt 0.671356 0.327477 +vt 0.671982 0.327480 +vt 0.644693 0.340192 +vt 0.644385 0.340134 +vt 0.644557 0.340283 +vt 0.644700 0.340269 +vt 0.647509 0.341099 +vt 0.649593 0.340718 +vt 0.646875 0.340713 +vt 0.646368 0.340876 +vt 0.650439 0.347369 +vt 0.650243 0.347332 +vt 0.648903 0.346602 +vt 0.648902 0.346797 +vt 0.650571 0.346464 +vt 0.653087 0.342196 +vt 0.653087 0.342119 +vt 0.652263 0.341965 +vt 0.653089 0.340724 +vt 0.649942 0.340719 +vt 0.652265 0.340960 +vt 0.652957 0.336625 +vt 0.652061 0.336628 +vt 0.652064 0.337317 +vt 0.653168 0.336809 +vt 0.656866 0.340895 +vt 0.655346 0.340806 +vt 0.653970 0.340890 +vt 0.671253 0.338233 +vt 0.671472 0.338233 +vt 0.671470 0.337557 +vt 0.652046 0.346806 +vt 0.665497 0.338599 +vt 0.665663 0.338599 +vt 0.665663 0.338404 +vt 0.647507 0.341802 +vt 0.653089 0.340802 +vt 0.669772 0.341914 +vt 0.669364 0.341701 +vt 0.670181 0.341704 +vt 0.650766 0.346427 +vt 0.652276 0.346675 +vt 0.652808 0.346599 +vt 0.652882 0.346653 +vt 0.666531 0.348446 +vt 0.666675 0.348446 +vt 0.666674 0.348692 +vt 0.671544 0.335436 +vt 0.671154 0.335438 +vt 0.671154 0.335634 +vt 0.671512 0.335403 +vt 0.671191 0.335404 +vt 0.653306 0.342119 +vt 0.653308 0.340802 +vt 0.653969 0.341610 +vt 0.653969 0.341314 +vt 0.657096 0.340687 +vt 0.657251 0.340835 +vt 0.657446 0.340872 +vt 0.666338 0.341178 +vt 0.666344 0.341136 +vt 0.666141 0.341132 +vt 0.671982 0.327709 +vt 0.671281 0.327706 +vt 0.671277 0.328466 +vt 0.671424 0.328610 +vt 0.671831 0.328612 +vt 0.671979 0.328470 +vt 0.645308 0.342022 +vt 0.646366 0.342024 +vt 0.645309 0.341798 +vt 0.654435 0.342121 +vt 0.654435 0.342199 +vt 0.654781 0.342199 +vt 0.671983 0.325746 +vt 0.671796 0.325132 +vt 0.671793 0.326094 +vt 0.671982 0.325897 +vt 0.672220 0.326096 +vt 0.671777 0.334214 +vt 0.671776 0.334827 +vt 0.672010 0.334827 +vt 0.653873 0.340803 +vt 0.653654 0.340803 +vt 0.655346 0.340729 +vt 0.655001 0.340728 +vt 0.655001 0.340805 +vt 0.653654 0.340725 +vt 0.653308 0.340725 +vt 0.671788 0.332239 +vt 0.671789 0.331098 +vt 0.671711 0.331172 +vt 0.652553 0.348753 +vt 0.652553 0.349106 +vt 0.652681 0.349106 +vt 0.672085 0.331172 +vt 0.672007 0.331098 +vt 0.672006 0.332240 +vt 0.656870 0.341615 +vt 0.668193 0.332067 +vt 0.669156 0.332072 +vt 0.669169 0.329174 +vt 0.671795 0.322170 +vt 0.671872 0.322170 +vt 0.671867 0.321028 +vt 0.672090 0.322169 +vt 0.672168 0.322168 +vt 0.672163 0.321101 +vt 0.668481 0.329171 +vt 0.668206 0.329389 +vt 0.666338 0.332059 +vt 0.666535 0.332060 +vt 0.666549 0.329162 +vt 0.652436 0.348631 +vt 0.652336 0.348753 +vt 0.671870 0.322396 +vt 0.671793 0.322471 +vt 0.671795 0.323538 +vt 0.670269 0.345604 +vt 0.670270 0.345453 +vt 0.670505 0.345454 +vt 0.672166 0.322470 +vt 0.672088 0.322396 +vt 0.672090 0.323538 +vt 0.645310 0.341095 +vt 0.667770 0.332065 +vt 0.666770 0.332061 +vt 0.666784 0.329163 +vt 0.671056 0.346443 +vt 0.670979 0.346517 +vt 0.670974 0.347585 +vt 0.670666 0.345804 +vt 0.670503 0.345803 +vt 0.670504 0.345605 +vt 0.671270 0.347586 +vt 0.671347 0.347586 +vt 0.671352 0.346519 +vt 0.667782 0.329387 +vt 0.667509 0.329166 +vt 0.666922 0.332062 +vt 0.666935 0.329164 +vt 0.671361 0.326336 +vt 0.671283 0.326410 +vt 0.671279 0.327477 +vt 0.667157 0.332063 +vt 0.667170 0.329165 +vt 0.657272 0.345497 +vt 0.657273 0.344680 +vt 0.657191 0.344600 +vt 0.671652 0.327452 +vt 0.671656 0.326411 +vt 0.651028 0.346127 +vt 0.650922 0.346278 +vt 0.655755 0.344598 +vt 0.655674 0.344677 +vt 0.655673 0.345494 +vt 0.645310 0.340874 +vt 0.654782 0.340805 +vt 0.653652 0.342120 +vt 0.653968 0.342037 +vt 0.653873 0.340726 +vt 0.654218 0.340804 +vt 0.654219 0.340726 +vt 0.654437 0.340804 +vt 0.654782 0.340727 +vt 0.672010 0.334979 +vt 0.671775 0.334978 +vt 0.671775 0.335176 +vt 0.672199 0.335177 +vt 0.672223 0.325134 +vt 0.653871 0.342120 +vt 0.655345 0.342200 +vt 0.655345 0.342122 +vt 0.655000 0.342122 +vt 0.653652 0.342197 +vt 0.656756 0.344189 +vt 0.656833 0.344189 +vt 0.656833 0.344045 +vt 0.671877 0.347120 +vt 0.671954 0.347119 +vt 0.671951 0.346443 +vt 0.671581 0.347121 +vt 0.671659 0.347121 +vt 0.671655 0.346445 +vt 0.656460 0.344190 +vt 0.656538 0.344190 +vt 0.656537 0.343971 +vt 0.671606 0.348023 +vt 0.671952 0.348024 +vt 0.671954 0.347348 +vt 0.667304 0.332303 +vt 0.667016 0.335199 +vt 0.666328 0.335196 +vt 0.671469 0.337246 +vt 0.671546 0.337245 +vt 0.671544 0.337101 +vt 0.671549 0.338232 +vt 0.671547 0.337557 +vt 0.667291 0.334981 +vt 0.669169 0.332311 +vt 0.669156 0.335209 +vt 0.668958 0.335208 +vt 0.652436 0.349228 +vt 0.652591 0.349228 +vt 0.672007 0.329730 +vt 0.672007 0.330872 +vt 0.672084 0.330872 +vt 0.669596 0.345601 +vt 0.669357 0.345600 +vt 0.669358 0.345449 +vt 0.671711 0.329804 +vt 0.671711 0.330872 +vt 0.671788 0.330872 +vt 0.667731 0.332305 +vt 0.667718 0.334983 +vt 0.668972 0.332310 +vt 0.668720 0.335207 +vt 0.672007 0.332466 +vt 0.672006 0.333607 +vt 0.672083 0.333608 +vt 0.669356 0.345798 +vt 0.669196 0.345797 +vt 0.671787 0.333607 +vt 0.671789 0.332465 +vt 0.671711 0.332540 +vt 0.667991 0.335204 +vt 0.668734 0.332309 +vt 0.668569 0.335206 +vt 0.654781 0.342122 +vt 0.656868 0.342041 +vt 0.672089 0.323764 +vt 0.672090 0.324906 +vt 0.672168 0.324906 +vt 0.668344 0.332307 +vt 0.668331 0.335205 +vt 0.668582 0.332308 +vt 0.656869 0.342187 +vt 0.655687 0.342123 +vt 0.653870 0.342198 +vt 0.654216 0.342198 +vt 0.671872 0.324906 +vt 0.671870 0.323765 +vt 0.671793 0.323839 +vt 0.654216 0.342121 +vt 0.671874 0.346444 +vt 0.644214 0.339986 +vt 0.644362 0.339846 +vt 0.644193 0.339756 +vt 0.644615 0.340046 +vt 0.644334 0.339545 +vt 0.644175 0.339559 +vt 0.661765 0.343274 +vt 0.661774 0.343476 +vt 0.661938 0.343468 +vt 0.644761 0.345897 +vt 0.644761 0.345737 +vt 0.644408 0.345736 +vt 0.661779 0.343575 +vt 0.661664 0.343724 +vt 0.661914 0.343724 +vt 0.666088 0.341451 +vt 0.652408 0.344048 +vt 0.653077 0.344280 +vt 0.652920 0.344378 +vt 0.644352 0.339741 +vt 0.665748 0.341793 +vt 0.665706 0.341738 +vt 0.663936 0.343063 +vt 0.644408 0.345896 +vt 0.644302 0.345896 +vt 0.644079 0.346130 +vt 0.644077 0.347117 +vt 0.645080 0.347119 +vt 0.645082 0.346132 +vt 0.667545 0.348453 +vt 0.667839 0.348708 +vt 0.667838 0.348452 +vt 0.671547 0.336174 +vt 0.671546 0.336029 +vt 0.671385 0.336030 +vt 0.645949 0.348760 +vt 0.645922 0.348760 +vt 0.645922 0.348928 +vt 0.645519 0.348898 +vt 0.645812 0.348899 +vt 0.645813 0.348759 +vt 0.645520 0.348758 +vt 0.645839 0.348927 +vt 0.645839 0.348759 +vt 0.665999 0.338618 +vt 0.666027 0.338619 +vt 0.666027 0.338335 +vt 0.671398 0.339640 +vt 0.671245 0.339741 +vt 0.671571 0.340011 +vt 0.671500 0.339488 +vt 0.671536 0.339308 +vt 0.671066 0.339776 +vt 0.669561 0.343988 +vt 0.669414 0.343844 +vt 0.670116 0.343846 +vt 0.669417 0.343083 +vt 0.670343 0.343087 +vt 0.670119 0.343086 +vt 0.670101 0.342715 +vt 0.670239 0.342384 +vt 0.670344 0.341862 +vt 0.670103 0.342052 +vt 0.669440 0.342050 +vt 0.669200 0.341858 +vt 0.669301 0.342381 +vt 0.669196 0.343083 +vt 0.669438 0.342713 +vt 0.669338 0.342202 +vt 0.669592 0.341949 +vt 0.670204 0.342205 +vt 0.670203 0.342563 +vt 0.669948 0.342816 +vt 0.669769 0.342851 +vt 0.669589 0.342815 +vt 0.669336 0.342560 +vt 0.669968 0.343989 +vt 0.669951 0.341950 +vt 0.665497 0.338404 +vt 0.665149 0.338488 +vt 0.665150 0.338600 +vt 0.664984 0.338600 +vt 0.665458 0.338243 +vt 0.665110 0.338327 +vt 0.670113 0.347813 +vt 0.669767 0.347812 +vt 0.671352 0.347895 +vt 0.671352 0.347817 +vt 0.670331 0.347814 +vt 0.669766 0.348137 +vt 0.669766 0.348214 +vt 0.670112 0.348215 +vt 0.644857 0.345897 +vt 0.666110 0.338571 +vt 0.666110 0.338335 +vt 0.666316 0.338619 +vt 0.666233 0.338571 +vt 0.666316 0.338647 +vt 0.646157 0.348929 +vt 0.646158 0.348622 +vt 0.671549 0.336766 +vt 0.671548 0.336570 +vt 0.671158 0.336572 +vt 0.671517 0.336801 +vt 0.671159 0.336768 +vt 0.668127 0.348451 +vt 0.666344 0.338619 +vt 0.666344 0.338363 +vt 0.666317 0.338336 +vt 0.666234 0.338336 +vt 0.646280 0.348929 +vt 0.646516 0.348930 +vt 0.646490 0.348762 +vt 0.646626 0.348903 +vt 0.646626 0.348763 +vt 0.646599 0.348763 +vt 0.646517 0.348762 +vt 0.646599 0.348931 +vt 0.646918 0.348904 +vt 0.646919 0.348764 +vt 0.665884 0.348220 +vt 0.666228 0.348025 +vt 0.666399 0.348073 +vt 0.667547 0.348906 +vt 0.666529 0.348691 +vt 0.666756 0.348819 +vt 0.669247 0.347752 +vt 0.669249 0.348205 +vt 0.668969 0.347962 +vt 0.668904 0.348013 +vt 0.668734 0.348063 +vt 0.666446 0.348817 +vt 0.669107 0.347753 +vt 0.651009 0.348764 +vt 0.651047 0.348947 +vt 0.651082 0.348764 +vt 0.650945 0.349104 +vt 0.650893 0.349053 +vt 0.651150 0.348791 +vt 0.651202 0.348842 +vt 0.651013 0.349131 +vt 0.651231 0.348909 +vt 0.651231 0.348982 +vt 0.651086 0.349131 +vt 0.651204 0.349050 +vt 0.651153 0.349102 +vt 0.650942 0.348793 +vt 0.650864 0.348986 +vt 0.650891 0.348845 +vt 0.650864 0.348913 +vt 0.672001 0.336533 +vt 0.671992 0.338283 +vt 0.672197 0.338284 +vt 0.672049 0.338339 +vt 0.672140 0.338340 +vt 0.665496 0.328592 +vt 0.665496 0.328721 +vt 0.665700 0.328722 +vt 0.649982 0.347032 +vt 0.655858 0.344144 +vt 0.654727 0.340476 +vt 0.654996 0.339627 +vt 0.671545 0.335632 +vt 0.672221 0.325898 +vt 0.672200 0.334214 +vt 0.671711 0.332239 +vt 0.652681 0.348753 +vt 0.672084 0.332240 +vt 0.656871 0.341319 +vt 0.671790 0.321103 +vt 0.672085 0.321027 +vt 0.666351 0.329161 +vt 0.652591 0.348631 +vt 0.671872 0.323538 +vt 0.672168 0.323538 +vt 0.671051 0.347585 +vt 0.671275 0.346444 +vt 0.657189 0.345576 +vt 0.671579 0.326337 +vt 0.655754 0.345574 +vt 0.654437 0.340727 +vt 0.672221 0.325747 +vt 0.654999 0.342199 +vt 0.653306 0.342197 +vt 0.656755 0.343970 +vt 0.671578 0.346445 +vt 0.656460 0.344046 +vt 0.671609 0.347347 +vt 0.666342 0.332298 +vt 0.671466 0.337028 +vt 0.646872 0.342185 +vt 0.652336 0.349106 +vt 0.672085 0.329805 +vt 0.669596 0.345450 +vt 0.671789 0.329730 +vt 0.672085 0.332540 +vt 0.671710 0.333607 +vt 0.672166 0.323838 +vt 0.655687 0.342193 +vt 0.671795 0.324906 +vt 0.652075 0.340487 +vt 0.653379 0.340482 +vt 0.652073 0.339798 +vt 0.661929 0.343266 +vt 0.666317 0.341361 +vt 0.663978 0.343119 +vt 0.671386 0.336174 +vt 0.665999 0.338362 +vt 0.664984 0.338489 +vt 0.669767 0.347890 +vt 0.666027 0.338646 +vt 0.671197 0.336802 +vt 0.646282 0.348623 +vt 0.672205 0.336534 +vt 0.665701 0.328592 +vt 0.645130 0.340230 +vt 0.645115 0.340070 +vt 0.644939 0.340169 +vt 0.644925 0.340018 +vt 0.653589 0.346722 +vt 0.653589 0.346671 +vt 0.654138 0.346662 +vt 0.665807 0.340688 +vt 0.656870 0.339398 +vt 0.655850 0.339403 +vt 0.655851 0.339547 +vt 0.669550 0.348136 +vt 0.669549 0.347891 +vt 0.669475 0.347964 +vt 0.654722 0.339409 +vt 0.653268 0.346667 +vt 0.645840 0.346789 +vt 0.648555 0.346796 +vt 0.648555 0.346685 +vt 0.653368 0.337690 +vt 0.653364 0.336650 +vt 0.645841 0.346452 +vt 0.655971 0.340807 +vt 0.656866 0.340731 +vt 0.655971 0.340730 +vt 0.671250 0.337251 +vt 0.671173 0.337252 +vt 0.671174 0.337355 +vt 0.671175 0.337452 +vt 0.671176 0.337555 +vt 0.671254 0.337557 +vt 0.670598 0.339307 +vt 0.670569 0.339021 +vt 0.670567 0.340009 +vt 0.668033 0.348210 +vt 0.668032 0.348119 +vt 0.671272 0.335785 +vt 0.654284 0.346628 +vt 0.654463 0.346686 +vt 0.654139 0.346714 +vt 0.653167 0.344749 +vt 0.668714 0.344925 +vt 0.673954 0.344135 +vt 0.665656 0.340670 +vt 0.665851 0.340483 +vt 0.665756 0.340431 +vt 0.664125 0.338873 +vt 0.663934 0.339073 +vt 0.665576 0.340641 +vt 0.654003 0.344111 +vt 0.654328 0.344094 +vt 0.654215 0.344297 +vt 0.669114 0.339976 +vt 0.644900 0.339700 +vt 0.651779 0.345198 +vt 0.651935 0.345050 +vt 0.652048 0.344354 +vt 0.651583 0.345233 +vt 0.662656 0.340850 +vt 0.659345 0.340602 +vt 0.659296 0.340678 +vt 0.674047 0.345242 +vt 0.653814 0.345328 +vt 0.653827 0.348209 +vt 0.646508 0.344057 +vt 0.649684 0.344093 +vt 0.649669 0.344043 +vt 0.669763 0.344216 +vt 0.669762 0.344374 +vt 0.669531 0.344215 +vt 0.665873 0.340511 +vt 0.669360 0.345109 +vt 0.665821 0.341739 +vt 0.654433 0.338957 +vt 0.656867 0.338944 +vt 0.656669 0.338713 +vt 0.656667 0.338361 +vt 0.654429 0.338141 +vt 0.656864 0.338360 +vt 0.656863 0.338096 +vt 0.653400 0.344098 +vt 0.653390 0.344296 +vt 0.652050 0.344171 +vt 0.649802 0.344145 +vt 0.656863 0.337912 +vt 0.654402 0.338030 +vt 0.656866 0.338712 +vt 0.655067 0.339300 +vt 0.655286 0.339299 +vt 0.654407 0.339067 +vt 0.655849 0.339296 +vt 0.656869 0.339171 +vt 0.655631 0.339297 +vt 0.652632 0.338147 +vt 0.652938 0.338146 +vt 0.652967 0.338035 +vt 0.662503 0.338903 +vt 0.662477 0.339733 +vt 0.662538 0.339781 +vt 0.670633 0.340349 +vt 0.670698 0.344205 +vt 0.674042 0.344163 +vt 0.655278 0.336619 +vt 0.655279 0.337686 +vt 0.655624 0.337686 +vt 0.662902 0.338878 +vt 0.662914 0.339780 +vt 0.662981 0.339739 +vt 0.645309 0.346450 +vt 0.645308 0.346788 +vt 0.666773 0.346076 +vt 0.666773 0.346282 +vt 0.668969 0.346283 +vt 0.652633 0.338379 +vt 0.652788 0.338378 +vt 0.642744 0.343779 +vt 0.670357 0.344943 +vt 0.661163 0.348102 +vt 0.661163 0.347939 +vt 0.655926 0.347949 +vt 0.674018 0.338472 +vt 0.669132 0.338416 +vt 0.661578 0.348101 +vt 0.661577 0.347938 +vt 0.661362 0.347939 +vt 0.661362 0.348102 +vt 0.662153 0.348100 +vt 0.662310 0.347937 +vt 0.661761 0.347938 +vt 0.670672 0.344629 +vt 0.670508 0.344764 +vt 0.670115 0.344376 +vt 0.669789 0.344760 +vt 0.652789 0.338731 +vt 0.652941 0.338962 +vt 0.670084 0.344762 +vt 0.670082 0.345113 +vt 0.670506 0.345115 +vt 0.670670 0.345116 +vt 0.652372 0.337694 +vt 0.670348 0.344219 +vt 0.655279 0.337793 +vt 0.656863 0.337685 +vt 0.655843 0.337686 +vt 0.655843 0.337793 +vt 0.653587 0.337690 +vt 0.653932 0.337689 +vt 0.653928 0.336621 +vt 0.654151 0.337688 +vt 0.654496 0.337687 +vt 0.654493 0.336620 +vt 0.652049 0.345739 +vt 0.651029 0.345736 +vt 0.662560 0.338873 +vt 0.666774 0.345670 +vt 0.668969 0.346078 +vt 0.666773 0.347043 +vt 0.668969 0.347044 +vt 0.670627 0.345147 +vt 0.673942 0.345184 +vt 0.646451 0.344107 +vt 0.661762 0.348101 +vt 0.670079 0.345801 +vt 0.669784 0.345800 +vt 0.669787 0.345111 +vt 0.670116 0.344218 +vt 0.654713 0.336619 +vt 0.654715 0.337686 +vt 0.655060 0.337686 +vt 0.655624 0.337793 +vt 0.653933 0.337796 +vt 0.653587 0.337797 +vt 0.653369 0.337798 +vt 0.654151 0.337795 +vt 0.655060 0.337793 +vt 0.654715 0.337794 +vt 0.656181 0.344310 +vt 0.655958 0.344139 +vt 0.652635 0.338964 +vt 0.652378 0.339418 +vt 0.652971 0.339073 +vt 0.655170 0.347691 +vt 0.655169 0.347353 +vt 0.653593 0.339306 +vt 0.653939 0.339305 +vt 0.653375 0.339415 +vt 0.653374 0.339307 +vt 0.655631 0.339404 +vt 0.655286 0.339406 +vt 0.655287 0.339550 +vt 0.655701 0.347689 +vt 0.668970 0.345671 +vt 0.668970 0.345465 +vt 0.652634 0.338732 +vt 0.668641 0.344399 +vt 0.670385 0.344396 +vt 0.671176 0.338233 +vt 0.671248 0.337030 +vt 0.645543 0.340191 +vt 0.650254 0.339752 +vt 0.650742 0.339545 +vt 0.669187 0.349359 +vt 0.669193 0.350916 +vt 0.655068 0.339554 +vt 0.655068 0.339408 +vt 0.645344 0.340210 +vt 0.645329 0.340050 +vt 0.645528 0.340032 +vt 0.653939 0.339413 +vt 0.669362 0.344758 +vt 0.669202 0.344621 +vt 0.654722 0.339302 +vt 0.669200 0.345108 +vt 0.653593 0.339414 +vt 0.653597 0.340482 +vt 0.653943 0.340480 +vt 0.654158 0.339412 +vt 0.654162 0.340479 +vt 0.654508 0.340478 +vt 0.654157 0.339304 +vt 0.654504 0.339410 +vt 0.654503 0.339303 +vt 0.666774 0.345464 +vt 0.668970 0.344705 +vt 0.659341 0.339758 +vt 0.659342 0.339807 +vt 0.644946 0.340247 +vt 0.652042 0.344901 +vt 0.645109 0.340001 +vt 0.665779 0.341683 +vt 0.661666 0.343279 +vt 0.661676 0.343481 +vt 0.653725 0.344114 +vt 0.653832 0.344119 +vt 0.653822 0.344318 +vt 0.654014 0.344308 +vt 0.654333 0.346558 +vt 0.655311 0.344043 +vt 0.655447 0.346648 +vt 0.661438 0.342326 +vt 0.661436 0.342143 +vt 0.657096 0.342143 +vt 0.661436 0.342509 +vt 0.657096 0.342326 +vt 0.661430 0.342692 +vt 0.657096 0.342509 +vt 0.661427 0.342875 +vt 0.657096 0.342692 +vt 0.666250 0.348901 +vt 0.666250 0.348816 +vt 0.657096 0.342875 +vt 0.657096 0.343058 +vt 0.661427 0.343058 +vt 0.657096 0.343240 +vt 0.661427 0.343240 +vt 0.666203 0.348900 +vt 0.666204 0.348816 +vt 0.665882 0.348899 +vt 0.665883 0.348814 +vt 0.661427 0.343423 +vt 0.657096 0.343423 +vt 0.657096 0.343606 +vt 0.661427 0.343606 +vt 0.657096 0.343789 +vt 0.661427 0.343789 +vt 0.657096 0.343972 +vt 0.661427 0.343972 +vt 0.657096 0.344155 +vt 0.661427 0.344155 +vt 0.657096 0.344338 +vt 0.661427 0.344338 +vt 0.657096 0.341411 +vt 0.657096 0.341594 +vt 0.661427 0.341594 +vt 0.657096 0.341777 +vt 0.661430 0.341777 +vt 0.649012 0.349171 +vt 0.649012 0.349086 +vt 0.648961 0.349086 +vt 0.661433 0.341960 +vt 0.657096 0.341960 +vt 0.649208 0.349086 +vt 0.649714 0.349170 +vt 0.649518 0.349086 +vt 0.649435 0.348914 +vt 0.649290 0.348914 +vt 0.649435 0.348644 +vt 0.649290 0.348644 +vt 0.667918 0.348211 +vt 0.667216 0.348214 +vt 0.667216 0.348127 +vt 0.667101 0.348214 +vt 0.667100 0.348123 +vt 0.656458 0.342453 +vt 0.656457 0.342704 +vt 0.656541 0.342453 +vt 0.656833 0.342705 +vt 0.656833 0.342454 +vt 0.656832 0.342788 +vt 0.655958 0.342785 +vt 0.655957 0.342962 +vt 0.656832 0.342965 +vt 0.656041 0.343742 +vt 0.656743 0.343745 +vt 0.656829 0.343669 +vt 0.655955 0.343666 +vt 0.653267 0.346719 +vt 0.670795 0.338787 +vt 0.670736 0.338975 +vt 0.671068 0.338839 +vt 0.671350 0.338788 +vt 0.671399 0.338977 +vt 0.671573 0.339023 +vt 0.670633 0.339486 +vt 0.670735 0.339638 +vt 0.670887 0.339740 +vt 0.671500 0.339129 +vt 0.671247 0.338875 +vt 0.670888 0.338874 +vt 0.670634 0.339127 +vt 0.671253 0.337451 +vt 0.656541 0.342427 +vt 0.656458 0.342426 +vt 0.671274 0.336420 +vt 0.671548 0.336419 +vt 0.666952 0.348820 +vt 0.666952 0.348904 +vt 0.666998 0.348905 +vt 0.667319 0.348906 +vt 0.666998 0.348820 +vt 0.649765 0.349170 +vt 0.649765 0.349086 +vt 0.649714 0.349086 +vt 0.656334 0.342703 +vt 0.655958 0.342702 +vt 0.667918 0.348124 +vt 0.656252 0.342426 +vt 0.656251 0.342452 +vt 0.656334 0.342453 +vt 0.654496 0.337794 +vt 0.651103 0.348667 +vt 0.651206 0.348710 +vt 0.650889 0.349185 +vt 0.651285 0.348789 +vt 0.651328 0.348892 +vt 0.650992 0.349228 +vt 0.651328 0.349003 +vt 0.651285 0.349106 +vt 0.651103 0.349228 +vt 0.651206 0.349185 +vt 0.650767 0.348892 +vt 0.650889 0.348710 +vt 0.650767 0.349003 +vt 0.650810 0.349106 +vt 0.650992 0.348667 +vt 0.650810 0.348789 +vt 0.663495 0.328582 +vt 0.663495 0.328711 +vt 0.663575 0.328712 +vt 0.663666 0.328712 +vt 0.663667 0.328583 +vt 0.663575 0.328583 +vt 0.663746 0.328583 +vt 0.663746 0.328713 +vt 0.661745 0.328574 +vt 0.661745 0.328703 +vt 0.656871 0.339542 +vt 0.669475 0.348061 +vt 0.671252 0.337354 +vt 0.671545 0.335784 +vt 0.674011 0.340319 +vt 0.655624 0.336619 +vt 0.662967 0.338908 +vt 0.656433 0.348111 +vt 0.653583 0.336623 +vt 0.654148 0.336621 +vt 0.655059 0.336619 +vt 0.655632 0.339548 +vt 0.655699 0.347352 +vt 0.659343 0.339981 +vt 0.671171 0.337105 +vt 0.674072 0.350895 +vt 0.666774 0.344703 +vt 0.653715 0.344312 +vt 0.659330 0.338958 +vt 0.661427 0.341411 +vt 0.648961 0.349171 +vt 0.667319 0.348822 +vt 0.656334 0.342426 +vt 0.655959 0.342451 +s 0 +f 1789/1551/866 1790/1552/866 1791/1553/866 +f 1792/1554/867 1793/1555/867 1794/1556/867 +f 1795/1557/868 1796/1558/868 1797/1559/868 +f 1798/1560/868 1799/1561/868 1800/1562/868 +f 1801/1563/869 1802/1564/869 1803/1565/869 +f 1795/1557/870 1804/1563/870 1805/1566/870 +f 1806/1567/871 1807/1568/871 1808/1569/871 +f 1809/1570/872 1810/1571/872 1811/1572/872 +f 1812/1569/873 1813/1568/873 1814/1573/873 +f 1809/1570/872 1811/1572/872 1815/1574/872 +f 1816/1575/868 1817/1576/868 1818/1577/868 +f 1819/1578/874 1820/1579/874 1821/1580/874 +f 1822/1581/875 1823/1582/875 1824/1583/875 +f 1824/1583/875 1825/1584/875 1822/1581/875 +f 1826/1585/872 1809/1570/872 1827/1586/872 +f 1828/1587/872 1829/1588/872 1826/1585/872 +f 1799/1561/868 1830/1589/868 1831/1590/868 +f 1832/1591/866 1833/1592/866 1834/1593/866 +f 1835/1594/872 1836/1595/872 1837/1596/872 +f 1838/1597/872 1839/1598/872 1840/1599/872 +f 1828/1587/872 1826/1585/872 1827/1586/872 +f 1841/1600/866 1842/1601/866 1843/1602/866 +f 1843/1602/866 1844/1603/866 1841/1600/866 +f 1845/1604/872 1846/1605/872 1847/1606/872 +f 1848/1607/868 1849/1608/868 1850/1609/868 +f 1833/1592/866 1851/1610/866 1834/1593/866 +f 1852/1611/875 1853/1612/875 1854/1613/875 +f 1839/1598/872 1815/1574/872 1840/1599/872 +f 1811/1572/872 1840/1599/872 1815/1574/872 +f 1826/1585/872 1855/1614/872 1809/1570/872 +f 1840/1599/872 1856/1615/872 1838/1597/872 +f 1857/1616/875 1858/1617/875 1859/1618/875 +f 1860/1619/866 1834/1593/866 1851/1610/866 +f 1861/1620/866 1862/1621/866 1863/1622/866 +f 1864/1623/875 1865/1624/875 1866/1625/875 +f 1867/1626/876 1868/1627/876 1869/1628/876 +f 1870/1629/876 1871/1630/876 1868/1627/876 +f 1840/1599/872 1837/1596/872 1836/1595/872 +f 1872/1631/872 1873/1632/872 1856/1615/872 +f 1874/1633/872 1875/1634/872 1873/1632/872 +f 1876/1635/868 1877/1636/868 1878/1637/868 +f 1879/1638/867 1880/1639/867 1881/1640/867 +f 1882/1641/867 1883/1642/867 1884/1643/867 +f 1885/1644/867 1886/1645/867 1887/1646/867 +f 1888/1647/872 1889/1648/872 1890/1649/872 +f 1891/1650/872 1892/1651/872 1893/1652/872 +f 1894/1653/867 1895/1654/867 1896/1655/867 +f 1897/1656/867 1896/1655/867 1898/1657/867 +f 1899/1658/867 1900/1659/867 1901/1660/867 +f 1902/1661/872 1903/1662/872 1847/1606/872 +f 1904/1663/872 1905/1664/872 1906/1665/872 +f 1907/1666/872 1908/1667/872 1873/1632/872 +f 1909/1668/867 1910/1669/867 1911/1670/867 +f 1912/1671/877 1913/1672/877 1914/1673/877 +f 1915/1674/875 1916/1675/875 1917/1676/875 +f 1875/1634/872 1874/1633/872 1918/1677/872 +f 1919/1678/878 1920/1679/878 1921/1680/878 +f 1922/1681/867 1923/1682/867 1924/1683/867 +f 1925/1684/875 1926/1685/875 1927/1686/875 +f 1928/1687/873 1929/1688/873 1919/1678/873 +f 1930/1689/879 1931/1690/879 1932/1691/879 +f 1933/1692/868 1934/1693/868 1935/1671/868 +f 1936/1694/867 1937/1695/867 1938/1696/867 +f 1939/1697/867 1940/1698/867 1941/1699/867 +f 1942/1700/875 1943/1701/875 1944/1702/875 +f 1829/1588/872 1945/1703/872 1826/1585/872 +f 1946/1704/880 1947/1678/880 1948/1688/880 +f 1949/1690/880 1950/1705/880 1951/1706/880 +f 1952/1707/867 1953/1708/867 1954/1709/867 +f 1955/1710/867 1956/1711/867 1957/1712/867 +f 1958/1713/875 1959/1714/875 1960/1715/875 +f 1957/1712/867 1941/1699/867 1955/1710/867 +f 1961/1716/881 1962/1717/881 1963/1704/881 +f 1964/1705/879 1965/1718/879 1966/1719/879 +f 1967/1720/867 1968/1721/867 1969/1722/867 +f 1970/1723/879 1963/1704/879 1962/1717/879 +f 1971/1718/869 1972/1723/869 1973/1724/869 +f 1974/1725/882 1975/1726/882 1976/1727/882 +f 1977/1578/875 1978/1728/875 1979/1729/875 +f 1980/1730/866 1981/1731/866 1851/1610/866 +f 1982/1732/883 1983/1733/883 1984/1734/883 +f 1829/1588/872 1985/1735/872 1945/1703/872 +f 1906/1665/872 1986/1736/872 1847/1606/872 +f 1873/1632/872 1875/1634/872 1847/1606/872 +f 1872/1631/872 1987/1737/872 1988/1738/872 +f 1989/1739/872 1902/1661/872 1847/1606/872 +f 1847/1606/872 1990/1740/872 1991/1741/872 +f 1992/1742/872 1990/1740/872 1847/1606/872 +f 1992/1742/872 1986/1736/872 1993/1743/872 +f 1994/1744/867 1995/1745/867 1996/1746/867 +f 1901/1660/867 1994/1744/867 1997/1747/867 +f 1998/1748/867 1895/1654/867 1894/1653/867 +f 1987/1737/872 1999/1749/872 1988/1738/872 +f 2000/1750/872 2001/1751/872 2002/1752/872 +f 2003/1753/872 1987/1737/872 1872/1631/872 +f 2004/1754/867 2005/1755/867 2006/1756/867 +f 2007/1757/867 2008/1758/867 2009/1759/867 +f 2010/1760/875 2011/1761/875 2012/1762/875 +f 2013/1763/875 2014/1764/875 2015/1765/875 +f 2016/1766/868 2017/1767/868 2018/1768/868 +f 2019/1769/879 2020/1770/879 2021/1771/879 +f 2022/1772/867 2023/1773/867 2024/1774/867 +f 2025/1608/867 2026/1775/867 2027/1776/867 +f 1835/1594/872 1810/1571/872 1889/1648/872 +f 2028/1777/881 2020/1770/881 2019/1769/881 +f 2029/1778/866 2030/1779/866 2031/1780/866 +f 2032/1781/866 2033/1782/866 2034/1672/866 +f 2035/1783/867 2036/1784/867 2037/1785/867 +f 1855/1614/872 1889/1648/872 1810/1571/872 +f 2038/1786/867 2039/1787/867 2040/1788/867 +f 2041/1789/875 2042/1790/875 2043/1791/875 +f 1890/1649/872 1889/1648/872 1855/1614/872 +f 2044/1792/880 2045/1793/880 2046/1777/880 +f 2047/1794/880 2048/1780/880 2049/1795/880 +f 2050/1796/867 2051/1797/867 2052/1798/867 +f 2053/1799/867 2054/1800/867 2039/1787/867 +f 2055/1801/875 2056/1802/875 2057/1803/875 +f 2040/1788/867 2039/1787/867 2054/1800/867 +f 2058/1804/866 2059/1793/866 2060/1792/866 +f 2061/1805/878 2062/1795/878 2063/1806/878 +f 1988/1738/872 2064/1807/872 2002/1752/872 +f 2065/1808/872 1988/1738/872 2001/1751/872 +f 2066/1809/867 2067/1810/867 2068/1811/867 +f 2069/1812/866 2070/1813/866 2058/1804/866 +f 2071/1814/869 2072/1806/869 2073/1813/869 +f 2074/1815/872 2065/1808/872 2075/1816/872 +f 2076/1817/872 2077/1818/872 1988/1738/872 +f 2078/1819/875 2079/1820/875 2080/1821/875 +f 2081/1822/872 1988/1738/872 2077/1818/872 +f 2082/1761/868 2083/1757/868 2084/1823/868 +f 1891/1650/872 2064/1807/872 1988/1738/872 +f 2085/1824/875 2086/1825/875 2087/1826/875 +f 1823/1582/875 2088/1827/875 2086/1825/875 +f 1823/1582/875 1822/1581/875 2088/1827/875 +f 2089/1828/866 2090/1829/866 2091/1826/866 +f 2092/1830/868 2093/1831/868 2094/1832/868 +f 2095/1833/875 2096/1834/875 2097/1835/875 +f 2098/1831/875 2099/1836/875 2100/1832/875 +f 2101/1837/875 2102/1838/875 2100/1832/875 +f 1879/1638/867 1881/1640/867 2103/1839/867 +f 2104/1840/866 2105/1841/866 2106/1842/866 +f 2086/1825/875 2107/1843/875 2087/1826/875 +f 2108/1844/876 2109/1845/876 2110/1846/876 +f 2111/1847/875 2112/1848/875 2113/1849/875 +f 2114/1850/875 2115/1851/875 2116/1852/875 +f 2117/1853/867 2118/1854/867 2119/1855/867 +f 2120/1856/876 2121/1857/876 2122/1858/876 +f 2123/1859/868 2124/1860/868 2125/1861/868 +f 2126/1862/876 2127/1863/876 2128/1864/876 +f 2128/1864/876 2129/1865/876 2126/1862/876 +f 2130/1863/866 2131/1866/866 2132/1867/866 +f 2133/1868/866 2134/1869/866 2135/1870/866 +f 2136/1860/876 2137/1867/876 2138/1866/876 +f 2106/1842/866 1862/1621/866 1861/1620/866 +f 1837/1596/872 1810/1571/872 1835/1594/872 +f 2139/1871/867 2140/1872/867 2141/1873/867 +f 2142/1874/867 2139/1871/867 2141/1873/867 +f 2143/1875/867 2142/1874/867 2141/1873/867 +f 2104/1840/866 2106/1842/866 1861/1620/866 +f 2140/1872/867 2144/1876/867 2141/1873/867 +f 2145/1877/875 2146/1878/875 2147/1879/875 +f 2147/1879/875 2146/1878/875 2148/1880/875 +f 2149/1881/875 2150/1882/875 2151/1883/875 +f 2152/1884/875 2153/1885/875 2149/1881/875 +f 1859/1618/875 2153/1885/875 2154/1886/875 +f 2155/1887/875 2156/1888/875 1858/1617/875 +f 2157/1889/875 2158/1890/875 2156/1888/875 +f 2159/1891/875 2148/1880/875 2158/1890/875 +f 2160/1892/875 2157/1889/875 2156/1888/875 +f 2155/1887/875 2160/1892/875 2156/1888/875 +f 1857/1616/875 2161/1893/875 1858/1617/875 +f 2162/1894/875 2154/1886/875 2153/1885/875 +f 2152/1884/875 2162/1894/875 2153/1885/875 +f 2163/1895/875 2152/1884/875 2149/1881/875 +f 2164/1896/875 2151/1883/875 2150/1882/875 +f 2165/1897/875 2164/1896/875 2150/1882/875 +f 2165/1897/875 2150/1882/875 2148/1880/875 +f 2159/1891/875 2166/1898/875 2148/1880/875 +f 2157/1889/875 2167/1899/875 2158/1890/875 +f 2168/1900/875 2145/1877/875 2147/1879/875 +f 2150/1882/875 2147/1879/875 2148/1880/875 +f 2163/1895/875 2149/1881/875 2151/1883/875 +f 2169/1901/875 1859/1618/875 2154/1886/875 +f 2161/1893/875 2155/1887/875 1858/1617/875 +f 2167/1899/875 2159/1891/875 2158/1890/875 +f 2166/1898/875 2165/1897/875 2148/1880/875 +f 2169/1901/875 1857/1616/875 1859/1618/875 +f 2170/1902/866 2171/1903/866 2172/1904/866 +f 1855/1614/872 1810/1571/872 1809/1570/872 +f 2173/1905/867 2174/1904/867 2175/1903/867 +f 2176/1906/884 2177/1907/884 2178/1903/884 +f 2179/1558/872 2180/1908/872 2181/1909/872 +f 2182/1910/872 2183/1911/872 2184/1912/872 +f 2185/1913/876 2186/1914/876 2187/1915/876 +f 2188/1913/868 1797/1559/868 1796/1558/868 +f 2116/1852/875 2189/1916/875 2095/1833/875 +f 2111/1847/875 2113/1849/875 2116/1852/875 +f 2190/1869/867 2191/1917/867 2192/1918/867 +f 2190/1869/867 2193/1919/867 2194/1920/867 +f 2195/1921/872 2196/1919/872 2197/1869/872 +f 2198/1922/868 2199/1923/868 2123/1859/868 +f 2200/1924/876 2201/1925/876 2202/1926/876 +f 2203/1927/876 2200/1924/876 2204/1928/876 +f 1794/1556/867 1793/1555/867 2205/1929/867 +f 2206/1930/868 2207/1931/868 2208/1932/868 +f 2193/1919/867 2209/1932/867 2210/1933/867 +f 2211/1934/866 2212/1935/866 2213/1936/866 +f 2214/1937/868 2215/1938/868 2216/1939/868 +f 2217/1940/876 2218/1935/876 2219/1941/876 +f 2220/1940/866 2213/1936/866 2212/1935/866 +f 2221/1937/876 2222/1942/876 2223/1938/876 +f 2224/1943/876 2223/1938/876 2222/1942/876 +f 2225/1944/866 2226/1945/866 2227/1946/866 +f 2225/1944/866 1791/1553/866 2226/1945/866 +f 1794/1556/867 2118/1854/867 2228/1947/867 +f 2118/1854/867 2117/1853/867 2228/1947/867 +f 2229/1948/875 1866/1625/875 2230/1949/875 +f 2231/1950/868 2232/1951/868 2233/1952/868 +f 2234/1953/868 2233/1952/868 2232/1951/868 +f 2235/1954/868 2234/1953/868 2232/1951/868 +f 1792/1554/867 1794/1556/867 2228/1947/867 +f 2236/1955/875 2229/1948/875 2230/1949/875 +f 2237/1956/868 2231/1950/868 2233/1952/868 +f 2225/1944/866 1789/1551/866 1791/1553/866 +f 2229/1948/875 1864/1623/875 1866/1625/875 +f 2238/1957/875 2239/1958/875 2240/1959/875 +f 2241/1960/875 2239/1958/875 2242/1961/875 +f 2240/1959/875 2239/1958/875 2243/1962/875 +f 2243/1962/875 2239/1958/875 2244/1963/875 +f 2245/1964/875 2239/1958/875 2241/1960/875 +f 2244/1963/875 2239/1958/875 2246/1965/875 +f 2246/1965/875 2239/1958/875 2247/1966/875 +f 2248/1967/875 2239/1958/875 2245/1964/875 +f 2247/1966/875 2239/1958/875 2249/1968/875 +f 2249/1968/875 2239/1958/875 2250/1969/875 +f 2250/1969/875 2239/1958/875 2248/1967/875 +f 2251/1970/875 2239/1958/875 2238/1957/875 +f 2242/1961/875 2239/1958/875 2252/1971/875 +f 2253/1972/875 2239/1958/875 2251/1970/875 +f 2252/1971/875 2239/1958/875 2254/1973/875 +f 2254/1973/875 2239/1958/875 2253/1972/875 +f 2255/1974/868 2256/1975/868 2257/1976/868 +f 2258/1977/868 2259/1978/868 2257/1976/868 +f 2260/1979/875 2261/1980/875 2262/1981/875 +f 1804/1563/868 1795/1557/868 1797/1559/868 +f 2263/1982/868 1798/1560/868 1800/1562/868 +f 2264/1566/869 1801/1563/869 1803/1565/869 +f 2265/1910/870 1795/1557/870 1805/1566/870 +f 2266/1983/871 1806/1567/871 1808/1569/871 +f 2267/1984/868 1816/1575/868 1818/1577/868 +f 1818/1577/868 2268/1985/868 2267/1984/868 +f 1800/1562/868 1799/1561/868 1831/1590/868 +f 2269/1902/875 1852/1611/875 1854/1613/875 +f 1981/1731/866 1860/1619/866 1851/1610/866 +f 2270/1986/876 1867/1626/876 1869/1628/876 +f 1867/1626/876 1870/1629/876 1868/1627/876 +f 1856/1615/872 1840/1599/872 1836/1595/872 +f 1836/1595/872 1872/1631/872 1856/1615/872 +f 1872/1631/872 1874/1633/872 1873/1632/872 +f 1887/1646/867 1882/1641/867 1884/1643/867 +f 1884/1643/867 1885/1644/867 1887/1646/867 +f 2064/1807/872 1891/1650/872 1893/1652/872 +f 1897/1656/867 1894/1653/867 1896/1655/867 +f 2271/1987/867 1897/1656/867 1898/1657/867 +f 2272/1988/867 1899/1658/867 1901/1660/867 +f 1846/1605/872 1904/1663/872 1906/1665/872 +f 1903/1662/872 1907/1666/872 1873/1632/872 +f 2273/1989/867 1909/1668/867 1911/1670/867 +f 2274/1990/877 1912/1671/877 1914/1673/877 +f 2275/1991/875 1915/1674/875 1917/1676/875 +f 2276/1992/872 1875/1634/872 1918/1677/872 +f 1928/1687/878 1919/1678/878 1921/1680/878 +f 2277/1993/867 1922/1681/867 1924/1683/867 +f 2278/1994/875 1925/1684/875 1927/1686/875 +f 2279/1995/879 1930/1689/879 1932/1691/879 +f 2280/1996/868 1933/1692/868 1935/1671/868 +f 2281/1997/867 1936/1694/867 1938/1696/867 +f 1957/1712/867 1939/1697/867 1941/1699/867 +f 2282/1998/875 1942/1700/875 1944/1702/875 +f 2283/1716/880 1946/1704/880 1948/1688/880 +f 2284/1691/880 1949/1690/880 1951/1706/880 +f 2285/1999/867 1952/1707/867 1954/1709/867 +f 2286/2000/875 1958/1713/875 1960/1715/875 +f 2287/1706/879 1964/1705/879 1966/1719/879 +f 2288/1579/867 1967/1720/867 1969/1722/867 +f 2289/1724/879 1970/1723/879 1962/1717/879 +f 2290/1719/869 1971/1718/869 1973/1724/869 +f 2291/2001/882 1974/1725/882 1976/1727/882 +f 2292/2002/875 1977/1578/875 1979/1729/875 +f 2293/2003/883 1982/1732/883 1984/1734/883 +f 1846/1605/872 1906/1665/872 1847/1606/872 +f 1903/1662/872 1873/1632/872 1847/1606/872 +f 1874/1633/872 1872/1631/872 1988/1738/872 +f 1991/1741/872 1989/1739/872 1847/1606/872 +f 1986/1736/872 1992/1742/872 1847/1606/872 +f 2294/2004/872 1992/1742/872 1993/1743/872 +f 1997/1747/867 1994/1744/867 1996/1746/867 +f 2272/1988/867 1901/1660/867 1997/1747/867 +f 2295/2005/867 1998/1748/867 1894/1653/867 +f 2296/2006/872 2000/1750/872 2002/1752/872 +f 2297/2007/872 2003/1753/872 1872/1631/872 +f 2298/2008/867 2004/1754/867 2006/1756/867 +f 2299/1823/867 2007/1757/867 2009/1759/867 +f 2300/2009/875 2010/1760/875 2012/1762/875 +f 2301/2010/875 2013/1763/875 2015/1765/875 +f 2302/2011/868 2016/1766/868 2018/1768/868 +f 2303/2012/879 2019/1769/879 2021/1771/879 +f 2304/2013/867 2022/1772/867 2024/1774/867 +f 2305/1609/867 2025/1608/867 2027/1776/867 +f 2306/2014/872 1835/1594/872 1889/1648/872 +f 2307/1794/866 2029/1778/866 2031/1780/866 +f 2308/2015/866 2032/1781/866 2034/1672/866 +f 2309/2016/867 2035/1783/867 2037/1785/867 +f 2310/2017/867 2038/1786/867 2040/1788/867 +f 2311/2018/875 2041/1789/875 2043/1791/875 +f 2312/1769/880 2044/1792/880 2046/1777/880 +f 2313/1805/880 2047/1794/880 2049/1795/880 +f 2314/2019/867 2050/1796/867 2052/1798/867 +f 2315/2020/875 2055/1801/875 2057/1803/875 +f 2316/1814/878 2061/1805/878 2063/1806/878 +f 2001/1751/872 1988/1738/872 2002/1752/872 +f 2075/1816/872 2065/1808/872 2001/1751/872 +f 2317/2021/867 2066/1809/867 2068/1811/867 +f 2060/1792/866 2069/1812/866 2058/1804/866 +f 2318/1812/869 2071/1814/869 2073/1813/869 +f 2319/2022/872 2074/1815/872 2075/1816/872 +f 1999/1749/872 2076/1817/872 1988/1738/872 +f 2320/2023/875 2078/1819/875 2080/1821/875 +f 2321/2024/868 2322/2025/868 2323/2026/868 +f 2324/1762/868 2082/1761/868 2084/1823/868 +f 2081/1822/872 1891/1650/872 1988/1738/872 +f 2085/1824/875 1823/1582/875 2086/1825/875 +f 2325/1843/866 2089/1828/866 2091/1826/866 +f 2326/2027/868 2092/1830/868 2094/1832/868 +f 2111/1847/875 2095/1833/875 2097/1835/875 +f 2099/1836/875 2101/1837/875 2100/1832/875 +f 2327/2028/867 1879/1638/867 2103/1839/867 +f 2328/2029/876 2108/1844/876 2110/1846/876 +f 2113/1849/875 2114/1850/875 2116/1852/875 +f 2329/2030/876 2120/1856/876 2122/1858/876 +f 2330/1864/866 2130/1863/866 2132/1867/866 +f 2331/2031/866 2133/1868/866 2135/1870/866 +f 2332/1861/876 2136/1860/876 2138/1866/876 +f 2333/1611/866 2170/1902/866 2172/1904/866 +f 2334/2032/867 2173/1905/867 2175/1903/867 +f 2335/1902/884 2176/1906/884 2178/1903/884 +f 2336/2033/872 2179/1558/872 2181/1909/872 +f 2337/1557/872 2182/1910/872 2184/1912/872 +f 2338/1559/876 2185/1913/876 2187/1915/876 +f 2339/2033/868 2188/1913/868 1796/1558/868 +f 2095/1833/875 2111/1847/875 2116/1852/875 +f 2340/1870/867 2190/1869/867 2192/1918/867 +f 2191/1917/867 2190/1869/867 2194/1920/867 +f 2341/2034/872 2195/1921/872 2197/1869/872 +f 2125/1861/868 2198/1922/868 2123/1859/868 +f 2204/1928/876 2200/1924/876 2202/1926/876 +f 2342/2035/876 2203/1927/876 2204/1928/876 +f 2343/1919/868 2206/1930/868 2208/1932/868 +f 2194/1920/867 2193/1919/867 2210/1933/867 +f 2344/2036/866 2211/1934/866 2213/1936/866 +f 2345/1941/868 2214/1937/868 2216/1939/868 +f 2346/1939/876 2217/1940/876 2219/1941/876 +f 2347/2037/868 2255/1974/868 2257/1976/868 +f 2256/1975/868 2258/1977/868 2257/1976/868 +f 2348/2038/875 2260/1979/875 2262/1981/875 s 1 -f 1472/1483/549 1473/1484/549 1474/1485/549 -f 1475/1486/550 1476/1487/549 1477/1488/549 -f 1478/1489/551 1479/1490/551 1480/1491/552 -f 1481/1492/553 1482/1493/553 1483/1494/553 -f 1484/1495/554 1485/1496/554 1486/1497/554 -f 1487/1498/555 1488/1499/556 1489/1500/557 -f 1490/1501/558 1491/1502/551 1478/1489/551 -f 1490/1501/558 1480/1491/552 1492/1503/559 -f 1493/1504/560 1494/1505/560 1495/1506/560 -f 1496/1507/561 1497/1508/561 1498/1509/562 -f 1499/1510/554 1500/1511/554 1501/1512/554 -f 1502/1513/563 1503/1514/563 1504/1515/563 -f 1490/1501/558 1478/1489/551 1480/1491/552 -f 1505/1516/564 1506/1517/564 1507/1518/564 -f 1508/1519/565 1509/1520/565 1510/1521/565 -f 1511/1522/554 1512/1523/554 1513/1524/554 -f 1514/1525/566 1515/1526/567 1516/1527/568 -f 1517/1528/564 1518/1529/564 1519/1530/564 -f 1520/1531/564 1521/1532/564 1522/1533/564 -f 1522/1533/564 1523/1534/564 1524/1535/564 -f 1525/1536/569 1526/1537/570 1527/1538/570 -f 1528/1539/571 1529/1540/570 1525/1536/569 -f 1517/1528/564 1519/1530/564 1530/1541/564 -f 1531/1542/572 1532/1543/572 1533/1544/572 -f 1534/1545/554 1535/1546/554 1536/1547/554 -f 1534/1545/554 1536/1547/554 1537/1548/554 -f 1538/1549/564 1522/1533/564 1524/1535/564 -f 1521/1532/564 1523/1534/564 1522/1533/564 -f 1523/1534/564 1539/1550/564 1524/1535/564 -f 1526/1537/570 1540/1551/570 1527/1538/570 -f 1529/1540/570 1526/1537/570 1525/1536/569 -f 1519/1530/564 1541/1552/564 1530/1541/564 -f 1542/1553/572 1543/1554/572 1532/1543/572 -f 1532/1543/572 1543/1554/572 1533/1544/572 -f 1535/1546/554 1544/1555/554 1536/1547/554 -f 1536/1547/554 1545/1556/554 1537/1548/554 -f 1546/1557/573 1547/1558/574 1548/1559/575 -f 1549/1560/576 1550/1561/576 1528/1539/571 -f 1549/1560/576 1551/1562/577 1552/1563/578 -f 1551/1562/577 1553/1564/579 1554/1565/580 -f 1553/1564/579 1548/1559/575 1547/1558/574 -f 1555/1566/581 1548/1559/575 1475/1486/550 -f 1556/1567/570 1527/1538/570 1540/1551/570 -f 1557/1568/582 1558/1569/582 1559/1570/582 -f 1560/1571/582 1561/1572/582 1562/1573/582 -f 1563/1574/570 1564/1575/570 1565/1576/570 -f 1566/1577/554 1567/1578/554 1568/1579/554 -f 1569/1580/554 1570/1581/554 1571/1582/554 -f 1572/1583/582 1573/1584/582 1574/1585/582 -f 1520/1531/564 1575/1586/564 1521/1532/564 -f 1540/1551/570 1526/1537/570 1576/1587/570 -f 1518/1529/564 1577/1588/564 1519/1530/564 -f 1531/1542/572 1578/1589/572 1532/1543/572 -f 1534/1545/554 1579/1590/554 1535/1546/554 -f 1580/1591/583 1581/1592/584 1582/1593/585 -f 1583/1594/586 1584/1595/587 1585/1596/588 -f 1586/1597/564 1587/1598/564 1588/1599/589 -f 1589/1600/564 1590/1601/564 1591/1602/564 -f 1592/1603/590 1585/1596/588 1584/1595/587 -f 1593/1604/572 1594/1605/572 1595/1606/572 -f 1596/1607/572 1597/1608/572 1598/1609/572 -f 1599/1610/572 1600/1611/572 1601/1612/572 -f 1602/1613/591 1603/1614/592 1604/1615/593 -f 1605/1616/582 1606/1617/582 1607/1618/582 -f 1581/1592/584 1608/1619/594 1609/1620/595 -f 1600/1621/572 1610/1622/572 1611/1623/572 -f 1603/1614/592 1612/1624/596 1613/1625/597 -f 1606/1617/582 1614/1626/582 1615/1627/582 -f 1608/1619/594 1616/1628/598 1617/1629/599 -f 1610/1630/572 1618/1631/572 1619/1632/572 -f 1612/1624/596 1620/1633/600 1621/1634/601 -f 1614/1626/582 1622/1635/582 1623/1636/582 -f 1616/1628/598 1624/1637/602 1625/1638/603 -f 1618/1631/572 1626/1639/572 1627/1640/572 -f 1620/1641/600 1628/1642/604 1629/1643/605 -f 1622/1635/582 1630/1644/582 1631/1645/582 -f 1632/1646/606 1633/1647/607 1634/1648/608 -f 1626/1639/572 1635/1649/572 1636/1650/572 -f 1637/1651/609 1638/1652/610 1639/1653/611 -f 1630/1644/582 1640/1654/582 1641/1655/582 -f 1633/1656/607 1642/1657/612 1643/1658/613 -f 1635/1649/572 1644/1659/572 1645/1660/572 -f 1638/1652/610 1646/1661/614 1647/1662/615 -f 1640/1654/582 1648/1663/582 1649/1664/582 -f 1642/1657/612 1650/1665/616 1651/1666/617 -f 1644/1659/572 1652/1667/572 1653/1668/572 -f 1646/1661/614 1654/1669/618 1655/1670/619 -f 1648/1663/582 1656/1671/582 1657/1672/582 -f 1650/1673/616 1658/1674/591 1659/1675/620 -f 1652/1667/572 1660/1676/572 1661/1677/572 -f 1654/1669/618 1662/1678/583 1663/1679/621 -f 1656/1671/582 1664/1680/582 1665/1681/582 -f 1658/1674/591 1666/1682/622 1667/1683/593 -f 1660/1676/572 1668/1684/572 1669/1685/572 -f 1662/1678/583 1670/1686/584 1671/1687/585 -f 1664/1680/582 1672/1688/582 1673/1689/582 -f 1666/1682/622 1674/1690/596 1675/1691/597 -f 1668/1684/572 1676/1692/572 1677/1693/572 -f 1670/1686/584 1678/1694/594 1679/1695/595 -f 1672/1688/582 1680/1696/582 1681/1697/582 -f 1674/1690/596 1682/1698/600 1683/1699/601 -f 1676/1692/572 1684/1700/572 1685/1701/572 -f 1678/1694/594 1686/1702/623 1687/1703/624 -f 1680/1696/582 1688/1704/582 1689/1705/582 -f 1682/1698/600 1690/1706/604 1691/1707/625 -f 1684/1700/572 1692/1708/572 1693/1709/572 -f 1686/1702/623 1694/1710/602 1695/1711/626 -f 1688/1704/582 1696/1712/582 1697/1713/582 -f 1690/1706/604 1698/1714/627 1699/1715/628 -f 1692/1708/572 1700/1716/572 1701/1717/572 -f 1694/1718/602 1702/1719/607 1703/1720/608 -f 1696/1712/582 1704/1721/582 1705/1722/582 -f 1698/1714/627 1706/1723/614 1707/1724/615 -f 1700/1716/572 1708/1725/572 1709/1726/572 -f 1702/1719/607 1710/1727/612 1711/1728/613 -f 1704/1721/582 1712/1729/582 1713/1730/582 -f 1706/1723/614 1714/1731/618 1715/1732/619 -f 1708/1725/572 1716/1733/572 1717/1734/572 -f 1710/1727/612 1718/1735/616 1719/1736/629 -f 1712/1729/582 1720/1737/582 1721/1738/582 -f 1714/1731/618 1580/1591/583 1722/1739/621 -f 1716/1733/572 1599/1610/572 1723/1740/572 -f 1718/1735/616 1602/1613/591 1724/1741/620 -f 1720/1737/582 1605/1616/582 1725/1742/582 -f 1726/1743/554 1727/1744/554 1728/1745/554 -f 1727/1744/554 1729/1746/554 1730/1747/554 -f 1729/1746/554 1731/1748/554 1732/1749/554 -f 1731/1748/554 1733/1750/554 1734/1751/554 -f 1733/1750/554 1735/1752/554 1736/1753/554 -f 1735/1752/554 1737/1754/554 1738/1755/554 -f 1737/1754/554 1739/1756/554 1740/1757/554 -f 1739/1756/554 1741/1758/554 1742/1759/554 -f 1741/1758/554 1743/1760/554 1744/1761/554 -f 1743/1760/554 1745/1762/554 1746/1763/554 -f 1745/1762/554 1747/1764/554 1748/1765/554 -f 1747/1764/554 1726/1743/554 1749/1766/554 -f 1750/1767/630 1751/1768/631 1752/1769/632 -f 1753/1770/633 1754/1771/634 1755/1772/635 -f 1756/1773/554 1757/1774/554 1758/1775/554 -f 1759/1776/636 1750/1767/630 1760/1777/637 -f 1754/1771/634 1761/1778/638 1762/1779/639 -f 1757/1774/554 1763/1780/554 1758/1775/554 -f 1764/1781/640 1759/1776/636 1765/1782/641 -f 1761/1778/638 1766/1783/642 1767/1784/643 -f 1763/1780/554 1768/1785/554 1758/1775/554 -f 1769/1786/644 1770/1787/645 1771/1788/646 -f 1766/1783/642 1772/1789/647 1773/1790/648 -f 1768/1785/554 1774/1791/554 1758/1775/554 -f 1775/1792/649 1769/1786/644 1776/1793/650 -f 1772/1789/647 1777/1794/651 1778/1795/652 -f 1774/1791/554 1779/1796/554 1758/1775/554 -f 1780/1797/653 1775/1792/649 1781/1798/654 -f 1777/1794/651 1782/1799/655 1783/1800/656 -f 1779/1796/554 1784/1801/554 1758/1775/554 -f 1785/1802/651 1780/1797/653 1786/1803/657 -f 1782/1799/655 1787/1804/658 1788/1805/654 -f 1784/1801/554 1789/1806/554 1758/1775/554 -f 1790/1807/659 1785/1802/651 1791/1808/660 -f 1787/1804/658 1792/1809/644 1793/1810/661 -f 1789/1806/554 1794/1811/554 1758/1775/554 -f 1795/1812/662 1790/1807/659 1796/1813/648 -f 1792/1809/644 1797/1814/645 1798/1815/663 -f 1794/1811/554 1799/1816/554 1758/1775/554 -f 1800/1817/638 1795/1812/662 1801/1818/664 -f 1802/1819/640 1803/1820/665 1804/1821/641 -f 1799/1816/554 1805/1822/554 1758/1775/554 -f 1806/1823/666 1800/1817/638 1807/1824/667 -f 1803/1820/665 1808/1825/630 1809/1826/668 -f 1805/1822/554 1810/1827/554 1758/1775/554 -f 1751/1768/631 1806/1823/666 1811/1828/635 -f 1808/1825/630 1753/1770/633 1812/1829/669 -f 1810/1827/554 1756/1773/554 1758/1775/554 -f 1813/1830/670 1814/1831/671 1815/1832/672 -f 1816/1833/673 1817/1834/674 1818/1835/675 -f 1819/1836/676 1820/1837/677 1821/1838/678 -f 1822/1839/679 1823/1840/680 1824/1841/681 -f 1825/1842/682 1818/1835/675 1826/1843/683 -f 1827/1844/684 1818/1835/675 1825/1842/682 -f 1828/1845/685 1829/1846/686 1830/1847/687 -f 1831/1848/688 1832/1849/689 1828/1845/685 -f 1819/1836/676 1833/1850/690 1828/1845/685 -f 1834/1851/691 1835/1852/692 1815/1832/672 -f 1835/1852/692 1834/1851/691 1836/1853/693 -f 1835/1852/692 1837/1854/694 1838/1855/695 -f 1839/1856/696 1840/1857/697 1830/1847/687 -f 1841/1858/698 1839/1856/696 1842/1859/699 -f 1822/1839/679 1843/1860/700 1823/1840/680 -f 1844/1861/701 1845/1862/702 1826/1843/683 -f 1846/1863/703 1845/1862/702 1844/1861/701 -f 1847/1864/704 1845/1862/702 1848/1865/705 -f 1849/1866/706 1850/1867/707 1851/1868/708 -f 1852/1869/709 1851/1868/708 1850/1867/707 -f 1825/1842/682 1826/1843/683 1853/1870/710 -f 1854/1871/711 1824/1841/681 1855/1872/712 -f 1856/1873/713 1827/1844/684 1854/1871/711 -f 1822/1839/679 1824/1841/681 1857/1874/714 -f 1843/1860/700 1822/1839/679 1857/1874/714 -f 1857/1874/714 1824/1841/681 1854/1871/711 -f 1858/1875/715 1859/1876/716 1860/1877/717 -f 1845/1862/702 1853/1870/710 1826/1843/683 -f 1854/1871/711 1853/1870/710 1861/1878/718 -f 1862/1879/719 1863/1880/720 1847/1864/704 -f 1863/1880/720 1861/1878/718 1845/1862/702 -f 1857/1874/714 1863/1880/720 1862/1879/719 -f 1861/1878/718 1863/1880/720 1857/1874/714 -f 1860/1877/717 1862/1879/719 1858/1875/715 -f 1849/1866/706 1864/1881/721 1862/1879/719 -f 1865/1882/722 1848/1865/705 1846/1863/703 -f 1866/1883/723 1865/1882/722 1867/1884/724 -f 1868/1885/725 1814/1831/671 1813/1830/670 -f 1869/1886/726 1868/1885/725 1870/1887/727 -f 1840/1857/697 1820/1837/677 1819/1836/676 -f 1871/1888/728 1872/1889/729 1873/1890/730 -f 1848/1865/705 1845/1862/702 1846/1863/703 -f 1861/1878/718 1853/1870/710 1845/1862/702 -f 1827/1844/684 1825/1842/682 1853/1870/710 -f 1853/1870/710 1854/1871/711 1827/1844/684 -f 1856/1873/713 1854/1871/711 1855/1872/712 -f 1843/1860/700 1860/1877/717 1859/1876/716 -f 1864/1881/721 1858/1875/715 1862/1879/719 -f 1850/1867/707 1849/1866/706 1862/1879/719 -f 1873/1890/730 1823/1840/680 1841/1858/698 -f 1843/1860/700 1859/1876/716 1823/1840/680 -f 1823/1840/680 1859/1876/716 1840/1857/697 -f 1864/1881/721 1820/1837/677 1858/1875/715 -f 1849/1866/706 1820/1837/677 1864/1881/721 -f 1849/1866/706 1851/1868/708 1820/1837/677 -f 1851/1868/708 1852/1869/709 1874/1891/731 -f 1848/1865/705 1865/1882/722 1852/1869/709 -f 1852/1869/709 1866/1883/723 1869/1886/726 -f 1875/1892/732 1868/1885/725 1876/1893/733 -f 1814/1831/671 1868/1885/725 1875/1892/732 -f 1840/1857/697 1839/1856/696 1841/1858/698 -f 1823/1840/680 1840/1857/697 1841/1858/698 -f 1859/1876/716 1858/1875/715 1840/1857/697 -f 1820/1837/677 1840/1857/697 1858/1875/715 -f 1851/1868/708 1874/1891/731 1820/1837/677 -f 1852/1869/709 1869/1886/726 1874/1891/731 -f 1865/1882/722 1866/1883/723 1852/1869/709 -f 1866/1883/723 1876/1893/733 1869/1886/726 -f 1868/1885/725 1869/1886/726 1876/1893/733 -f 1877/1894/734 1878/1895/735 1867/1884/724 -f 1879/1896/736 1877/1894/734 1880/1897/737 -f 1881/1898/738 1882/1899/739 1880/1897/737 -f 1883/1900/740 1816/1833/673 1884/1901/741 -f 1885/1902/564 1886/1903/564 1887/1904/564 -f 1888/1905/652 1889/1906/648 1890/1907/742 -f 1891/1908/656 1888/1905/652 1892/1909/651 -f 1889/1906/648 1893/1910/643 1894/1911/642 -f 1895/1912/654 1891/1908/656 1896/1913/655 -f 1897/1914/743 1895/1912/654 1898/1915/744 -f 1893/1910/643 1899/1916/745 1900/1917/638 -f 1901/1918/746 1897/1914/743 1902/1919/644 -f 1903/1920/641 1901/1918/746 1904/1921/645 -f 1899/1916/745 1905/1922/635 1906/1923/634 -f 1907/1924/668 1903/1920/641 1908/1925/665 -f 1909/1926/669 1907/1924/668 1910/1927/630 -f 1905/1922/635 1909/1926/669 1911/1928/633 -f 1912/1929/564 1913/1930/564 1914/1931/564 -f 1915/1932/564 1912/1929/564 1916/1933/564 -f 1913/1930/564 1917/1934/564 1918/1935/564 -f 1919/1936/564 1915/1932/564 1920/1937/564 -f 1921/1938/564 1919/1936/564 1922/1939/564 -f 1917/1934/564 1923/1940/564 1924/1941/564 -f 1885/1942/564 1921/1938/564 1925/1943/564 -f 1926/1944/564 1885/1942/564 1927/1945/564 -f 1923/1940/564 1928/1946/564 1929/1947/564 -f 1930/1948/564 1926/1944/564 1931/1949/564 -f 1932/1950/564 1930/1948/564 1933/1951/564 -f 1928/1946/564 1932/1950/564 1934/1952/564 -f 1935/1953/564 1936/1954/564 1937/1955/564 -f 1938/1956/647 1939/1957/651 1940/1958/652 -f 1941/1959/642 1938/1956/647 1942/1960/648 -f 1937/1955/564 1936/1954/564 1943/1961/564 -f 1939/1957/651 1944/1962/655 1945/1963/656 -f 1946/1964/564 1936/1954/564 1935/1953/564 -f 1943/1961/564 1936/1954/564 1947/1965/564 -f 1944/1962/655 1948/1966/658 1949/1967/654 -f 1950/1968/638 1941/1959/642 1951/1969/643 -f 1947/1965/564 1936/1954/564 1952/1970/564 -f 1948/1966/658 1953/1971/747 1954/1972/747 -f 1955/1973/564 1936/1954/564 1946/1964/564 -f 1952/1970/564 1936/1954/564 1956/1974/564 -f 1957/1975/748 1958/1976/748 1959/1977/749 -f 1960/1978/634 1950/1968/638 1961/1979/639 -f 1956/1974/564 1936/1954/564 1962/1980/564 -f 1963/1981/750 1964/1982/751 1965/1983/751 -f 1966/1984/564 1936/1954/564 1955/1973/564 -f 1962/1980/564 1936/1954/564 1967/1985/564 -f 1957/1975/748 1968/1986/630 1969/1987/668 -f 1970/1988/633 1960/1978/634 1971/1989/635 -f 1967/1985/564 1936/1954/564 1972/1990/564 -f 1968/1986/630 1970/1988/633 1973/1991/669 -f 1972/1990/564 1936/1954/564 1966/1984/564 -f 1974/1992/752 1959/1977/749 1965/1983/751 -f 1885/1902/564 1926/1993/564 1886/1903/564 -f 1954/1972/747 1953/1971/747 1975/1994/753 -f 1976/1995/754 1977/1996/755 1963/1981/750 -f 1887/1997/564 1886/1998/564 1978/1999/564 -f 1887/1904/564 1921/2000/564 1885/1902/564 -f 1979/2001/564 1980/2002/564 1981/2003/564 -f 1982/2004/756 1983/2005/757 1984/2006/758 -f 1985/2007/554 1986/2008/554 1987/2009/554 -f 1981/2003/564 1980/2002/564 1988/2010/564 -f 1983/2005/757 1989/2011/759 1990/2012/760 -f 1986/2008/554 1991/2013/554 1987/2009/554 -f 1988/2010/564 1980/2002/564 1992/2014/564 -f 1989/2011/759 1993/2015/761 1994/2016/762 -f 1991/2013/554 1995/2017/554 1987/2009/554 -f 1992/2014/564 1980/2002/564 1996/2018/564 -f 1997/2019/763 1998/2020/764 1999/2021/765 -f 1995/2017/554 2000/2022/554 1987/2009/554 -f 1996/2018/564 1980/2002/564 2001/2023/564 -f 1998/2020/764 2002/2024/766 2003/2025/767 -f 2000/2022/554 2004/2026/554 1987/2009/554 -f 2001/2023/564 1980/2002/564 2005/2027/564 -f 2002/2024/766 2006/2028/768 2007/2029/769 -f 2008/2030/564 2009/2031/770 2010/2032/770 -f 2004/2026/554 2011/2033/554 1987/2009/554 -f 2005/2027/564 1980/2002/564 2012/2034/564 -f 2010/2032/770 2009/2031/770 2013/2035/771 -f 2006/2028/768 2014/2036/772 2015/2037/773 -f 2011/2033/554 2016/2038/554 1987/2009/554 -f 2017/2039/774 2018/2040/775 2019/2041/776 -f 2020/2042/777 2017/2039/774 2021/2043/778 -f 2012/2034/564 1980/2002/564 1979/2001/564 -f 2014/2036/772 1982/2004/756 2022/2044/779 -f 2016/2038/554 1985/2007/554 1987/2009/554 -f 2023/2045/780 2024/2046/781 2025/2047/782 -f 2026/2048/783 2027/2049/784 2023/2045/780 -f 2028/2050/785 2029/2051/786 2030/2052/564 -f 2031/2053/787 2032/2054/788 2033/2055/554 -f 2034/2056/789 2035/2057/790 2036/2058/791 -f 2018/2040/775 2037/2059/792 2038/2060/793 -f 2039/2061/794 2040/2062/795 2041/2063/796 -f 2031/2053/787 2042/2064/797 2032/2054/788 -f 2043/2065/549 2044/2066/549 2045/2067/549 -f 2046/2068/564 2047/2069/564 2048/2070/564 -f 1586/1597/564 2049/2071/564 2050/2072/564 -f 2051/2073/798 2052/2074/799 2053/2075/800 -f 2041/2063/796 2040/2062/795 2054/2076/801 -f 2055/2077/802 2056/2078/803 2057/2079/564 -f 2058/2080/549 2059/2081/549 2060/2082/549 -f 2061/2083/549 2060/2082/549 2059/2081/549 -f 2062/2084/554 2063/2085/554 2064/2086/554 -f 2065/2087/804 2066/2088/805 2053/2075/800 -f 2067/2089/806 2068/2090/549 2069/2091/807 -f 2030/2052/564 2029/2051/786 2070/2092/564 -f 2071/2093/570 2072/2094/570 2073/2095/570 -f 2056/2078/803 2074/2096/564 2057/2079/564 -f 2075/2097/570 2076/2098/570 2077/2099/570 -f 2073/2095/570 2072/2094/570 2075/2100/570 -f 2078/2101/572 2079/2102/572 2080/2103/572 -f 2079/2102/572 2081/2104/572 2082/2105/572 -f 2083/2106/572 2084/2107/572 2082/2105/572 -f 2085/2108/570 2086/2109/570 2087/2110/570 -f 2088/2111/808 2089/2112/809 2090/2113/809 -f 2091/2114/810 2028/2050/785 2092/2115/811 -f 2039/2061/794 2093/2116/785 2094/2117/812 -f 2095/2118/787 2034/2056/789 2096/2119/813 -f 2097/2120/814 2098/2121/815 2099/2122/816 -f 2099/2122/816 2098/2121/815 2100/2123/817 -f 2099/2122/816 2100/2123/817 2101/2124/818 -f 2099/2122/816 2101/2124/818 2102/2125/586 -f 2103/2126/819 2104/2127/820 2105/2128/589 -f 2106/2129/821 2107/2130/822 2108/2131/816 -f 2109/2132/823 2110/2133/824 2111/2134/825 -f 2112/2135/826 2104/2127/820 2113/2136/827 -f 2114/2137/564 2115/2138/564 2113/2136/827 -f 2115/2138/564 2116/2139/564 2113/2136/827 -f 2117/2140/564 2113/2136/827 2116/2139/564 -f 2104/2127/820 2114/2137/564 2113/2136/827 -f 2114/2137/564 2104/2127/820 2103/2126/819 -f 2118/2141/828 2119/2142/829 2120/2143/830 -f 2121/2144/554 2122/2145/554 2123/2146/831 -f 2124/2147/564 2125/2148/564 2126/2149/832 -f 2127/2150/554 2128/2151/554 2129/2152/554 -f 2127/2150/554 2130/2153/833 2131/2154/554 -f 2121/2144/554 2123/2146/831 2132/2155/554 -f 2132/2155/554 2133/2156/554 2134/2157/554 -f 2134/2157/554 2135/2158/554 2136/2159/554 -f 2137/2160/564 2138/2161/564 2139/2162/834 -f 2140/2163/564 2141/2164/564 2142/2165/564 -f 2143/2166/564 2140/2163/564 2144/2167/564 -f 2125/2148/564 2143/2166/564 2145/2168/564 -f 2124/2147/564 2126/2149/832 2146/2169/564 -f 2122/2145/554 2147/2170/554 2130/2153/833 -f 2131/2154/554 2128/2151/554 2127/2150/554 -f 2128/2151/554 2136/2159/554 2129/2152/554 -f 2130/2153/833 2147/2170/554 2131/2154/554 -f 2123/2146/831 2133/2156/554 2132/2155/554 -f 2133/2156/554 2135/2158/554 2134/2157/554 -f 2135/2158/554 2129/2152/554 2136/2159/554 -f 2148/2171/564 2146/2169/564 2139/2162/834 -f 2141/2164/564 2138/2161/564 2137/2160/564 -f 2138/2161/564 2148/2171/564 2139/2162/834 -f 2141/2164/564 2137/2160/564 2142/2165/564 -f 2140/2163/564 2142/2165/564 2144/2167/564 -f 2143/2166/564 2144/2167/564 2145/2168/564 -f 2126/2149/832 2139/2162/834 2146/2169/564 -f 2149/2172/570 2086/2109/570 2085/2108/570 -f 2150/2173/835 2151/2174/836 2152/2175/837 -f 2153/2176/564 2154/2177/838 2151/2174/836 -f 2155/2178/564 2153/2176/564 2156/2179/839 -f 2157/2180/840 2155/2178/564 2158/2181/841 -f 2112/2135/826 2158/2181/841 2156/2179/839 -f 2159/2182/842 2118/2141/828 2160/2183/843 -f 2161/2184/570 2075/2100/570 2077/2185/570 -f 2162/2186/844 2163/2187/845 2024/2046/781 -f 2164/2188/846 2113/2136/827 2117/2140/564 -f 2165/2189/847 2164/2188/846 2117/2140/564 -f 2030/2052/564 2092/2115/811 2028/2050/785 -f 2166/2190/564 2167/2191/564 2168/2192/564 -f 2169/2193/847 2170/2194/848 2171/2195/849 -f 2027/2049/784 2172/2196/850 2173/2197/851 -f 2070/2092/564 2174/2198/848 2117/2140/564 -f 2074/2096/564 2117/2140/564 1585/1596/588 -f 2175/2199/570 2085/2200/570 2176/2201/570 -f 2177/2202/582 2178/2203/582 2179/2204/852 -f 2180/2205/853 2181/2206/854 2182/2207/855 -f 2183/2208/856 2184/2209/857 2185/2210/858 -f 2186/2211/859 2187/2212/860 2188/2213/861 -f 2189/2214/862 2185/2210/858 2184/2209/857 -f 2190/2215/863 2191/2216/864 2192/2217/865 -f 2192/2217/865 2193/2218/866 2194/2219/867 -f 2195/2220/868 2196/2221/869 2197/2222/870 -f 2198/2223/871 2199/2224/872 2196/2221/869 -f 2200/2225/873 2199/2224/872 2198/2223/871 -f 2195/2220/868 2198/2223/871 2196/2221/869 -f 2201/2226/874 2202/2227/875 2203/2228/876 -f 2204/2229/877 2205/2230/878 2201/2226/874 -f 2206/2231/879 2207/2232/880 2208/2233/881 -f 2209/2234/882 2206/2231/879 2210/2235/883 -f 2211/2236/884 2209/2234/882 2212/2237/885 -f 2213/2238/886 2211/2236/884 2214/2239/887 -f 2215/2240/888 2213/2238/886 2216/2241/889 -f 2217/2242/890 2218/2243/891 2219/2244/892 -f 2220/2245/893 2212/2237/885 2210/2235/883 -f 2221/2246/894 2214/2239/887 2212/2237/885 -f 2222/2247/895 2216/2241/889 2214/2239/887 -f 2223/2248/896 2224/2249/897 2216/2241/889 -f 2225/2250/898 2210/2235/883 2226/2251/899 -f 2227/2252/900 2228/2253/901 2209/2234/882 -f 2229/2254/902 2230/2255/903 2231/2256/904 -f 2194/2219/867 2190/2215/863 2192/2217/865 -f 2231/2256/904 2200/2225/873 2198/2223/871 -f 2232/2257/905 2201/2226/874 2203/2228/876 -f 2232/2257/905 2204/2229/877 2201/2226/874 -f 2212/2237/885 2209/2234/882 2210/2235/883 -f 2214/2239/887 2211/2236/884 2212/2237/885 -f 2216/2241/889 2213/2238/886 2214/2239/887 -f 2224/2249/897 2215/2240/888 2216/2241/889 -f 2233/2258/906 2217/2242/890 2219/2244/892 -f 2225/2250/898 2220/2245/893 2210/2235/883 -f 2220/2245/893 2221/2246/894 2212/2237/885 -f 2221/2246/894 2222/2247/895 2214/2239/887 -f 2222/2247/895 2223/2248/896 2216/2241/889 -f 2234/2259/907 2225/2250/898 2226/2251/899 -f 2235/2260/908 2236/2261/909 2195/2220/868 -f 2228/2253/901 2237/2262/910 2206/2231/879 -f 2231/2256/904 2238/2263/911 2200/2225/873 -f 2192/2217/865 2195/2220/868 2193/2218/866 -f 2201/2226/874 2205/2230/878 2239/2264/912 -f 2224/2249/897 2240/2265/913 2215/2240/888 -f 2223/2248/896 2241/2266/914 2224/2249/897 -f 2242/2267/915 2233/2258/906 2219/2244/892 -f 2243/2268/916 2215/2240/888 2233/2258/906 -f 2244/2269/917 2242/2267/915 2219/2244/892 -f 2242/2267/915 2243/2268/916 2233/2258/906 -f 2243/2268/916 2245/2270/918 2215/2240/888 -f 2054/2076/801 2118/2141/828 2246/2271/919 -f 2247/2272/570 2248/2273/570 2076/2098/570 -f 2036/2058/791 2249/2274/920 2096/2119/813 -f 2250/2275/921 2249/2274/920 2251/2276/922 -f 2252/2277/923 2253/2278/845 2025/2047/782 -f 2254/2279/924 2036/2058/791 2035/2057/790 -f 2255/2280/554 2256/2281/554 2257/2282/554 -f 2258/2283/570 2259/2284/570 2260/2285/570 -f 2261/2286/554 2262/2287/554 2263/2288/554 -f 2264/2289/925 2265/2290/926 2266/2291/925 -f 2267/2292/549 2268/2293/549 2269/2294/549 -f 2270/2295/927 2271/2296/927 2272/2297/570 -f 2149/2172/570 2075/2100/570 2072/2094/570 -f 2253/2278/845 2273/2298/844 2025/2047/782 -f 2274/2299/928 2275/2300/929 2027/2049/784 -f 2027/2049/784 2026/2048/783 2276/2301/930 -f 2023/2045/780 2025/2047/782 2277/2302/931 -f 2025/2047/782 2024/2046/781 2278/2303/932 -f 2279/2304/570 2280/2305/570 2281/2306/570 -f 2282/2307/582 2252/2277/923 2283/2308/933 -f 2284/2309/582 2253/2278/845 2252/2277/923 -f 2285/2310/934 2286/2311/582 2287/2312/582 -f 2283/2308/933 2288/2313/935 2289/2314/935 -f 2276/2301/930 2274/2299/928 2027/2049/784 -f 2290/2315/570 2279/2304/570 2291/2316/570 -f 2027/2049/784 2173/2197/851 2292/2317/936 -f 2111/2134/825 2293/2318/937 2294/2319/938 -f 2295/2320/939 2296/2321/940 2297/2322/554 -f 2294/2319/938 2297/2322/554 2298/2323/941 -f 2299/2324/554 2300/2325/554 2301/2326/942 -f 2302/2327/943 2301/2326/942 2303/2328/554 -f 2301/2329/942 2298/2323/941 2299/2330/554 -f 2293/2318/937 2297/2322/554 2294/2319/938 -f 2293/2318/937 2304/2331/944 2297/2322/554 -f 2304/2331/944 2295/2320/939 2297/2322/554 -f 2296/2321/940 2305/2332/554 2297/2322/554 -f 2297/2322/554 2299/2330/554 2298/2323/941 -f 2299/2324/554 2306/2333/554 2300/2325/554 -f 2300/2325/554 2307/2334/554 2301/2326/942 -f 2301/2326/942 2307/2334/554 2303/2328/554 -f 2308/2335/570 2309/2336/570 2310/2337/570 -f 2311/2338/570 2312/2339/570 2309/2340/570 -f 2313/2341/570 2314/2342/570 2308/2335/570 -f 2309/2336/570 2315/2343/570 2310/2337/570 -f 2309/2340/570 2316/2344/570 2311/2338/570 -f 2317/2345/570 2315/2346/570 2309/2340/570 -f 2316/2344/570 2309/2340/570 2280/2305/570 -f 2318/2347/945 2319/2348/946 2320/2349/947 -f 2321/2350/564 2318/2347/945 2322/2351/948 -f 1817/1834/674 1816/1833/673 2323/2352/949 -f 2324/2353/950 1883/1900/740 1872/1889/729 -f 2325/2354/951 2326/2355/952 1883/1900/740 -f 2325/2354/951 2324/2353/950 2327/2356/953 -f 1842/1859/699 2327/2356/953 2324/2353/950 -f 2328/2357/954 1878/1895/735 1877/1894/734 -f 2329/2358/955 1837/1854/694 1835/1852/692 -f 2329/2358/955 1836/1853/693 2328/2357/954 -f 2328/2357/954 1877/1894/734 1879/1896/736 -f 1828/1845/685 2330/2359/956 2331/2360/957 -f 1818/1835/675 1881/1898/738 2332/2361/958 -f 1821/1838/678 1874/1891/731 2333/2362/959 -f 1823/1840/680 1873/1890/730 1884/1901/741 -f 1867/1884/724 2332/2361/958 1880/1897/737 -f 1867/1884/724 1846/1863/703 2332/2361/958 -f 1826/1843/683 2332/2361/958 1844/1861/701 -f 1856/1873/713 1818/1835/675 1827/1844/684 -f 1855/1872/712 1816/1833/673 1856/1873/713 -f 1855/1872/712 1824/1841/681 1816/1833/673 -f 1816/1833/673 1818/1835/675 1856/1873/713 -f 1830/1847/687 1829/1846/686 1842/1859/699 -f 1832/1849/689 2334/2363/960 1829/1846/686 -f 1821/1838/678 2335/2364/961 1833/1850/690 -f 1821/1838/678 2333/2362/959 2335/2364/961 -f 2333/2362/959 1870/1887/727 2336/2365/962 -f 1870/1887/727 1813/1830/670 2337/2366/963 -f 1813/1830/670 1815/1832/672 2338/2367/964 -f 2328/2357/954 1836/1853/693 1878/1895/735 -f 2336/2365/962 2339/2368/965 2335/2364/961 -f 2337/2366/963 2340/2369/966 2336/2365/962 -f 2338/2367/964 2341/2370/967 2337/2366/963 -f 1838/1855/695 2342/2371/968 2338/2367/964 -f 2335/2364/961 2343/2372/969 2330/2359/956 -f 1874/1891/731 1869/1886/726 2333/2362/959 -f 1873/1890/730 1872/1889/729 1884/1901/741 -f 1846/1863/703 1844/1861/701 2332/2361/958 -f 1824/1841/681 1884/1901/741 1816/1833/673 -f 1829/1846/686 2327/2356/953 1842/1859/699 -f 2334/2363/960 2327/2356/953 1829/1846/686 -f 2333/2362/959 2336/2365/962 2335/2364/961 -f 1870/1887/727 2337/2366/963 2336/2365/962 -f 1813/1830/670 2338/2367/964 2337/2366/963 -f 1815/1832/672 1838/1855/695 2338/2367/964 -f 1836/1853/693 1834/1851/691 1878/1895/735 -f 2339/2368/965 2343/2372/969 2335/2364/961 -f 2340/2369/966 2339/2368/965 2336/2365/962 -f 2341/2370/967 2340/2369/966 2337/2366/963 -f 2342/2371/968 2341/2370/967 2338/2367/964 -f 2343/2372/969 2331/2360/957 2330/2359/956 -f 1817/1834/674 1881/1898/738 1818/1835/675 -f 1820/1837/677 1874/1891/731 1821/1838/678 -f 1823/1840/680 1884/1901/741 1824/1841/681 -f 1818/1835/675 2332/2361/958 1826/1843/683 -f 1832/1849/689 1829/1846/686 1828/1845/685 -f 1835/1852/692 1838/1855/695 1815/1832/672 -f 1837/1854/694 2342/2371/968 1838/1855/695 -f 1834/1851/691 1876/1893/733 1878/1895/735 -f 1815/1832/672 1875/1892/732 1834/1851/691 -f 1876/1893/733 1866/1883/723 1878/1895/735 -f 1875/1892/732 1876/1893/733 1834/1851/691 -f 1814/1831/671 1875/1892/732 1815/1832/672 -f 2245/2270/918 2213/2238/886 2215/2240/888 -f 2236/2261/909 2198/2223/871 2195/2220/868 -f 2237/2262/910 2207/2232/880 2206/2231/879 -f 2238/2263/911 2344/2373/970 2200/2225/873 -f 2195/2220/868 2345/2374/971 2193/2218/866 -f 2195/2220/868 2197/2222/870 2345/2374/971 -f 2201/2226/874 2239/2264/912 2202/2227/875 -f 2205/2230/878 2346/2375/972 2239/2264/912 -f 2207/2232/880 2202/2227/875 2239/2264/912 -f 2240/2265/913 2233/2258/906 2215/2240/888 -f 2233/2258/906 2240/2265/913 2217/2242/890 -f 2241/2266/914 2240/2265/913 2224/2249/897 -f 2347/2376/973 2203/2228/876 2202/2227/875 -f 2348/2377/974 2349/2378/975 2203/2228/876 -f 2350/2379/976 2344/2373/970 2238/2263/911 -f 2351/2380/977 2194/2219/867 2193/2218/866 -f 2351/2380/977 2190/2215/863 2194/2219/867 -f 2352/2381/978 2353/2382/979 2354/2383/980 -f 2355/2384/981 2356/2385/982 2357/2386/983 -f 2353/2382/979 2352/2381/978 2355/2384/981 -f 2193/2218/866 2345/2374/971 2358/2387/984 -f 2200/2225/873 2359/2388/985 2199/2224/872 -f 2197/2222/870 2196/2221/869 2359/2388/985 -f 2200/2225/873 2344/2373/970 2360/2389/986 -f 2350/2379/976 2361/2390/987 2360/2389/986 -f 2200/2225/873 2360/2389/986 2359/2388/985 -f 2362/2391/988 2363/2392/989 2361/2390/987 -f 2358/2387/984 2351/2380/977 2193/2218/866 -f 2358/2387/984 2359/2388/985 2364/2393/990 -f 2365/2394/991 2355/2384/981 2352/2381/978 -f 2366/2395/992 2352/2381/978 2351/2380/977 -f 2360/2389/986 2361/2390/987 2365/2394/991 -f 2364/2393/990 2359/2388/985 2360/2389/986 -f 2365/2394/991 2361/2390/987 2363/2392/989 -f 2367/2396/993 2356/2385/982 2365/2394/991 -f 2368/2397/994 2191/2216/864 2190/2215/863 -f 2244/2269/917 2219/2244/892 2191/2216/864 -f 2369/2398/995 2211/2236/884 2213/2238/886 -f 2227/2252/900 2209/2234/882 2211/2236/884 -f 2370/2399/996 2202/2227/875 2207/2232/880 -f 2349/2378/975 2348/2377/974 2230/2255/903 -f 2351/2380/977 2354/2383/980 2190/2215/863 -f 2358/2387/984 2364/2393/990 2351/2380/977 -f 2345/2374/971 2197/2222/870 2358/2387/984 -f 2359/2388/985 2358/2387/984 2197/2222/870 -f 2359/2388/985 2196/2221/869 2199/2224/872 -f 2361/2390/987 2350/2379/976 2362/2391/988 -f 2363/2392/989 2367/2396/993 2365/2394/991 -f 2356/2385/982 2355/2384/981 2365/2394/991 -f 2238/2263/911 2230/2255/903 2348/2377/974 -f 2362/2391/988 2350/2379/976 2238/2263/911 -f 2362/2391/988 2238/2263/911 2370/2399/996 -f 2237/2262/910 2367/2396/993 2363/2392/989 -f 2237/2262/910 2356/2385/982 2367/2396/993 -f 2357/2386/983 2356/2385/982 2237/2262/910 -f 2353/2382/979 2357/2386/983 2228/2253/901 -f 2368/2397/994 2354/2383/980 2353/2382/979 -f 2244/2269/917 2353/2382/979 2227/2252/900 -f 2369/2398/995 2243/2268/916 2242/2267/915 -f 2369/2398/995 2245/2270/918 2243/2268/916 -f 2347/2376/973 2370/2399/996 2348/2377/974 -f 2370/2399/996 2238/2263/911 2348/2377/974 -f 2363/2392/989 2362/2391/988 2370/2399/996 -f 2370/2399/996 2237/2262/910 2363/2392/989 -f 2228/2253/901 2357/2386/983 2237/2262/910 -f 2227/2252/900 2353/2382/979 2228/2253/901 -f 2244/2269/917 2368/2397/994 2353/2382/979 -f 2242/2267/915 2244/2269/917 2227/2252/900 -f 2227/2252/900 2369/2398/995 2242/2267/915 -f 2371/2400/997 2372/2401/998 2191/2216/864 -f 2373/2402/999 2374/2403/1000 2372/2401/998 -f 2235/2260/908 2192/2217/865 2372/2401/998 -f 2375/2404/1001 2229/2254/902 2231/2256/904 -f 2236/2261/909 2376/2405/1002 2377/2406/1003 -f 2378/2407/1004 2349/2378/975 2229/2254/902 -f 2379/2408/1005 2378/2407/1004 2375/2404/1001 -f 2379/2408/1005 2204/2229/877 2232/2257/905 -f 2203/2228/876 2349/2378/975 2378/2407/1004 -f 2219/2244/892 2218/2243/891 2371/2400/997 -f 2380/2409/1006 2217/2242/890 2240/2265/913 -f 2380/2409/1006 2381/2410/1007 2218/2243/891 -f 2218/2243/891 2381/2410/1007 2373/2402/999 -f 2239/2264/912 2346/2375/972 2234/2259/907 -f 2235/2260/908 2195/2220/868 2192/2217/865 -f 2228/2253/901 2206/2231/879 2209/2234/882 -f 2230/2255/903 2238/2263/911 2231/2256/904 -f 2192/2217/865 2191/2216/864 2372/2401/998 -f 2382/2411/1008 2188/2213/861 2187/2212/860 -f 2383/2412/1009 2119/2142/829 2118/2141/828 -f 2057/2079/564 2074/2096/564 2384/2413/564 -f 2054/2076/801 2040/2062/795 2094/2117/812 -f 2246/2271/919 2118/2141/828 2159/2182/842 -f 2385/2414/564 2384/2413/564 1592/1603/590 -f 2246/2271/919 2041/2063/796 2054/2076/801 -f 2171/2195/849 2386/2415/1010 2387/2416/846 -f 2388/2417/786 2389/2418/1011 2170/2194/848 -f 2386/2415/1010 2390/2419/1012 2391/2420/827 -f 2039/2061/794 2041/2063/796 2388/2417/786 -f 2389/2418/1011 2171/2195/849 2170/2194/848 -f 2390/2419/1012 2392/2421/1013 2393/2422/826 -f 2392/2421/1013 2394/2423/1014 2395/2424/1015 -f 2395/2424/1015 2394/2423/1014 2181/2206/854 -f 2182/2207/855 2181/2206/854 2394/2423/1014 -f 2396/2425/1016 2395/2424/1015 2181/2206/854 -f 2093/2116/785 2039/2061/794 2388/2417/786 -f 2397/2426/1017 2398/2427/1018 2399/2428/1019 -f 2400/2429/554 2063/2085/554 2401/2430/554 -f 2087/2110/570 2291/2316/570 2402/2431/570 -f 2400/2429/554 2064/2086/554 2063/2085/554 -f 2062/2084/554 2403/2432/554 2063/2085/554 -f 2404/2433/1020 2405/2434/1021 2406/2435/1022 -f 2075/2100/570 2149/2172/570 2175/2436/570 -f 2407/2437/1023 2408/2438/1024 2409/2439/1025 -f 2410/2440/554 2411/2441/554 2408/2442/1024 -f 2412/2443/564 2413/2444/564 2414/2445/564 -f 2163/2187/845 2278/2303/932 2024/2046/781 -f 2415/2446/564 2413/2444/564 2412/2443/564 -f 2416/2447/564 2168/2192/564 2167/2191/564 -f 2417/2448/570 2418/2449/570 2419/2450/570 -f 2420/2451/564 2421/2452/564 2422/2453/564 -f 2423/2454/1026 2424/2455/1026 2425/2456/1026 -f 2426/2457/1027 2427/2458/1028 2428/2459/1027 -f 2429/2460/1029 2430/2461/1030 2431/2462/1031 -f 2432/2463/1032 2431/2462/1031 2430/2461/1030 -f 2433/2464/1033 2067/2089/806 2434/2465/1034 -f 2435/2466/549 2436/2467/549 2437/2468/549 -f 2431/2462/1031 2438/2469/1035 2429/2460/1029 -f 2248/2273/570 2077/2099/570 2076/2098/570 -f 2439/2470/1036 2440/2471/564 2441/2472/803 -f 2047/2069/564 2442/2473/564 2048/2070/564 -f 2443/2474/927 2444/2475/570 2445/2476/570 -f 2446/2477/564 2442/2473/564 1590/1601/564 -f 2447/2478/564 1590/1601/564 2448/2479/1037 -f 2449/2480/564 2448/2479/1037 2450/2481/587 -f 2451/2482/564 2450/2481/587 2102/2125/586 -f 2452/2483/1038 2453/2484/1039 2454/2485/1040 -f 2049/2071/564 2047/2069/564 2455/2486/564 -f 2048/2070/564 2442/2473/564 2456/2487/564 -f 2456/2487/564 2442/2473/564 2446/2477/564 -f 2447/2478/564 2446/2477/564 1590/1601/564 -f 2449/2480/564 2447/2478/564 2448/2479/1037 -f 2448/2479/1037 1590/1601/564 1589/1600/564 -f 2451/2482/564 2449/2480/564 2450/2481/587 -f 2457/2488/1041 2451/2482/564 2102/2125/586 -f 2457/2488/1041 2102/2125/586 2101/2124/818 -f 1588/1599/589 1587/1598/564 2458/2489/564 -f 2097/2120/814 1588/1599/589 2458/2489/564 -f 2459/2490/564 2047/2069/564 2049/2071/564 -f 2050/2072/564 2049/2071/564 2455/2486/564 -f 2455/2486/564 2047/2069/564 2046/2068/564 -f 2460/2491/1042 2461/2492/1043 2398/2427/1018 -f 2462/2493/572 1597/1608/572 1596/1607/572 -f 1595/1606/572 1594/1605/572 1597/1608/572 -f 2463/2494/582 2177/2202/582 2278/2303/932 -f 2464/2495/1044 2179/2204/852 2178/2203/582 -f 2179/2204/852 2464/2495/1044 2465/2496/935 -f 2466/2497/1045 2172/2196/850 2027/2049/784 -f 2156/2179/839 2151/2174/836 2467/2498/1046 -f 2104/2127/820 2468/2499/1047 2105/2128/589 -f 2469/2500/1048 2470/2501/1049 2150/2173/835 -f 2471/2502/1050 2472/2503/589 2473/2504/1051 -f 2151/2174/836 2150/2173/835 2470/2501/1049 -f 2156/2179/839 2468/2499/1047 2104/2127/820 -f 2385/2414/564 1592/1603/590 2440/2471/564 -f 2023/2045/780 2292/2317/936 2024/2046/781 -f 2275/2300/929 2466/2497/1045 2027/2049/784 -f 2474/2505/564 2475/2506/564 2476/2507/564 -f 2174/2198/848 2165/2189/847 2117/2140/564 -f 2117/2140/564 2106/2129/821 1585/1596/588 -f 2384/2413/564 2074/2096/564 1592/1603/590 -f 1592/1603/590 2441/2472/803 2440/2471/564 -f 1585/1596/588 1592/1603/590 2074/2096/564 -f 2041/2063/796 2389/2418/1011 2388/2417/786 -f 2477/2508/572 2462/2509/572 1596/2510/572 -f 1598/1609/572 1597/1608/572 1594/1605/572 -f 2087/2110/570 2086/2109/570 2291/2316/570 -f 2478/2511/1052 2479/2512/570 2480/2513/570 -f 2481/2514/1053 2056/2078/803 2055/2077/802 -f 2439/2470/1036 2441/2472/803 2482/2515/1053 -f 2483/2516/582 2484/2517/582 2485/2518/582 -f 2486/2519/582 2483/2516/582 2487/2520/582 -f 2485/2518/582 2488/2521/582 2487/2520/582 -f 2483/2516/582 2485/2518/582 2487/2520/582 -f 2486/2519/582 2489/2522/582 2483/2516/582 -f 2490/2523/570 2491/2524/1054 2492/2525/1055 -f 2493/2526/564 2494/2527/564 2495/2528/1056 -f 2496/2529/572 2497/2530/572 2498/2531/572 -f 2499/2532/582 2500/2533/582 2501/2534/582 -f 2502/2535/572 2503/2536/572 2498/2531/572 -f 2495/2528/1056 2492/2525/1055 2491/2524/1054 -f 2504/2537/1057 2505/2538/564 2506/2539/564 -f 2504/2537/1057 2507/2540/1057 2508/2541/1058 -f 2509/2542/1059 2510/2543/1060 2511/2544/1061 -f 2512/2545/582 2513/2546/582 2514/2547/582 -f 2514/2547/582 2513/2546/582 2487/2520/582 -f 2515/2548/554 2516/2549/554 2517/2550/554 -f 2518/2551/570 2519/2552/1062 2520/2553/1063 -f 2521/2554/554 2522/2555/1064 2523/2556/1065 -f 2524/2557/572 2525/2558/572 2526/2559/572 -f 2503/2536/572 2502/2535/572 2527/2560/572 -f 2527/2560/572 2528/2561/572 2526/2559/572 -f 2523/2556/1065 2522/2555/1064 2529/2562/1066 -f 2530/2563/1067 2531/2564/1067 2532/2565/554 -f 2520/2553/1063 2519/2552/1062 2533/2566/1059 -f 2501/2534/582 2489/2522/582 2486/2519/582 -f 2534/2567/564 2535/2568/564 2536/2569/564 -f 2530/2563/1067 2537/2570/1068 2538/2571/1068 -f 2539/2572/1069 2508/2541/1058 2538/2571/1068 -f 2484/2517/582 2540/2573/582 2485/2518/582 -f 2541/2574/564 1505/1516/564 1507/1518/564 -f 2542/2575/565 1508/1519/565 1510/1521/565 -f 2543/2576/554 1511/1522/554 1513/1524/554 -f 2544/2577/566 1514/1525/566 1516/1527/568 -f 2545/2578/564 2546/2579/564 2541/2574/564 -f 2547/2580/1070 1516/1527/568 2548/2581/1071 -f 1507/1518/564 2545/2578/564 2541/2574/564 -f 2546/2579/564 2549/2582/564 2541/2574/564 -f 2542/2575/565 1510/1521/565 2550/2583/565 -f 1513/1524/554 2551/2584/554 2543/2576/554 -f 1516/1527/568 1515/1526/567 2548/2581/1071 -f 2552/2585/1072 2553/2586/1072 2554/2587/1072 -f 2555/2588/1073 1588/1599/589 2097/2120/814 -f 2294/2319/938 2556/2589/1074 2109/2132/823 -f 2294/2319/938 2109/2132/823 2111/2134/825 -f 2110/2133/824 2454/2485/1040 2111/2134/825 -f 2116/2139/564 2107/2130/822 2106/2129/821 -f 2557/2590/1075 2558/2591/1076 2559/2592/1077 -f 2560/2593/1078 2561/2594/1079 2562/2595/1080 -f 2563/2596/1081 2564/2597/1082 2565/2598/1083 -f 2564/2597/1082 2566/2599/1084 2565/2598/1083 -f 2453/2484/1039 2111/2134/825 2454/2485/1040 -f 2562/2595/1080 2561/2594/1079 2567/2600/570 -f 2568/2601/554 2569/2602/1085 2570/2603/554 -f 2571/2604/1084 2556/2589/1074 2294/2319/938 -f 2563/2596/1081 2572/2605/554 2564/2597/1082 -f 2573/2606/1086 2574/2607/824 2575/2608/1087 -f 2576/2609/549 2577/2610/549 2578/2611/1088 -f 2579/2612/1089 2563/2596/1081 2580/2613/1090 -f 2572/2605/554 2581/2614/554 2564/2597/1082 -f 2125/2148/564 2145/2168/564 2126/2149/832 -f 2122/2145/554 2130/2153/833 2123/2146/831 -f 2582/2615/549 2583/2616/549 2584/2617/1091 -f 2585/2618/1092 2586/2619/1093 2587/2620/572 -f 2586/2621/1093 2585/2622/1092 2588/2623/570 -f 2589/2624/582 2590/2625/582 2591/2626/1094 -f 2592/2627/1026 2593/2628/1026 2594/2629/1026 -f 2595/2630/1095 2066/2088/805 2065/2087/804 -f 2593/2628/1026 2596/2631/1026 2594/2629/1026 -f 2597/2632/1026 2592/2627/1026 2598/2633/1026 -f 2029/2051/786 2174/2198/848 2070/2092/564 -f 2599/2634/572 2600/2635/572 2601/2636/572 -f 2602/2637/572 2603/2638/572 2600/2635/572 -f 2404/2433/1020 2604/2639/1096 2405/2434/1021 -f 2112/2135/826 2156/2179/839 2104/2127/820 -f 2158/2181/841 2155/2178/564 2156/2179/839 -f 2593/2628/1026 2423/2454/1026 2425/2456/1026 -f 2605/2640/1026 2425/2456/1026 2424/2455/1026 -f 2153/2176/564 2151/2174/836 2156/2179/839 -f 2598/2633/1026 2592/2627/1026 2594/2629/1026 -f 2154/2177/838 2152/2175/837 2151/2174/836 -f 2086/2109/570 2290/2315/570 2291/2316/570 -f 2461/2492/1043 2399/2428/1019 2398/2427/1018 -f 2319/2348/946 2606/2641/1097 2409/2439/1025 -f 2607/2642/1098 2404/2433/1020 2406/2435/1022 -f 2587/2620/572 2608/2643/1091 2584/2617/1091 -f 2589/2624/582 2609/2644/1099 2610/2645/1100 -f 2591/2626/1094 2611/2646/570 2588/2647/570 -f 2612/2648/549 2610/2645/1100 2609/2644/1099 -f 2613/2649/809 2614/2650/1101 2615/2651/809 -f 2088/2111/808 2090/2113/809 2615/2651/809 -f 2616/2652/572 2617/2653/572 2618/2654/572 -f 2619/2655/572 2620/2656/572 2618/2654/572 -f 2621/2657/572 2622/2658/572 2620/2656/572 -f 2623/2659/570 2073/2095/570 2075/2100/570 -f 2299/2324/554 2624/2660/943 2306/2333/554 -f 2311/2338/570 2625/2661/570 2312/2339/570 -f 2626/2662/790 2033/2055/554 2305/2332/554 -f 2627/2663/806 2628/2664/1034 2629/2665/1102 -f 2630/2666/582 2631/2667/582 2632/2668/582 -f 2633/2669/564 2634/2670/564 2635/2671/564 -f 2636/2672/549 2637/2673/549 2638/2674/549 -f 2639/2675/549 2640/2676/549 2636/2672/549 -f 2624/2660/943 2641/2677/1103 2306/2333/554 -f 2642/2678/1104 2643/2679/1104 2644/2680/1105 -f 2645/2681/1106 2069/2091/807 2629/2665/1102 -f 2646/2682/554 2647/2683/554 2648/2684/554 -f 2649/2685/564 2650/2686/564 2651/2687/564 -f 2652/2688/1107 2653/2689/1107 2654/2690/1108 -f 2578/2611/1088 2655/2691/1109 2656/2692/1110 -f 2657/2693/554 2658/2694/554 2659/2695/554 -f 2660/2696/549 2661/2697/549 2662/2698/549 -f 2663/2699/1111 2664/2700/1112 2665/2701/1113 -f 2666/2702/1114 2667/2703/1115 2668/2704/1116 -f 2669/2705/1117 2668/2704/1116 2664/2700/1112 -f 2670/2706/1118 2671/2707/1119 2672/2708/1119 -f 2673/2709/554 2674/2710/554 2670/2706/1118 -f 2675/2711/572 2676/2712/572 2677/2713/572 -f 2678/2714/572 2679/2715/572 2680/2716/572 -f 2655/2691/1109 2681/2717/1120 2682/2718/1120 -f 2301/2329/942 2683/2719/1121 2684/2720/1122 -f 2685/2721/554 2686/2722/554 2687/2723/554 -f 2688/2724/1107 2689/2725/1107 2690/2726/1123 -f 2647/2683/554 2646/2682/554 2569/2602/1085 -f 2569/2602/1085 2579/2612/1089 2570/2603/554 -f 2691/2727/1124 2294/2319/938 2298/2323/941 -f 2692/2728/1103 2693/2729/1125 2694/2730/1125 -f 2695/2731/1125 2696/2732/1125 2641/2677/1103 -f 2667/2703/1115 2666/2702/1114 2697/2733/570 -f 2462/2509/572 2477/2508/572 2698/2734/572 -f 2699/2735/572 2677/2713/572 2678/2714/572 -f 2700/2736/572 2698/2734/572 2675/2737/572 -f 2701/2738/1126 2702/2739/1126 2703/2740/1126 -f 2691/2727/1124 2571/2604/1084 2294/2319/938 -f 2106/2129/821 2117/2140/564 2116/2139/564 -f 2704/2741/823 2559/2592/1077 2558/2591/1076 -f 2705/2742/549 2706/2743/549 2707/2744/549 -f 2563/2596/1081 2565/2598/1083 2580/2613/1090 -f 2708/2745/1127 2709/2746/1128 2710/2747/1128 -f 2644/2680/1105 2708/2745/1127 2711/2748/1129 -f 2712/2749/549 2643/2679/1104 2642/2678/1104 -f 2713/2750/1130 2714/2751/1130 2715/2752/1130 -f 2716/2753/1131 2717/2754/1131 2718/2755/1131 -f 2719/2756/554 2720/2757/554 2721/2758/554 -f 2722/2759/1132 2723/2760/1132 2724/2761/1132 -f 2725/2762/1133 2472/2503/589 2471/2502/1050 -f 2726/2763/1134 2727/2764/1135 2111/2134/825 -f 2728/2765/1136 2729/2766/1137 2730/2767/1138 -f 2731/2768/1139 2732/2769/1140 2733/2770/1134 -f 2734/2771/1141 2735/2772/1142 2736/2773/1143 -f 2726/2763/1134 2111/2134/825 2453/2484/1039 -f 2727/2764/1135 2726/2763/1134 2729/2766/1137 -f 2737/2774/1137 2738/2775/1046 2739/2776/1144 -f 2738/2775/1046 2737/2774/1137 2733/2770/1134 -f 2732/2769/1140 2740/2777/1145 2473/2504/1051 -f 2741/2778/1048 2742/2779/1146 2743/2780/1147 -f 2678/2714/572 2680/2716/572 2699/2735/572 -f 2699/2735/572 2700/2781/572 2675/2711/572 -f 2744/2782/570 2087/2110/570 2402/2431/570 -f 2657/2693/554 2745/2783/554 2658/2694/554 -f 2646/2682/554 2648/2684/554 2745/2783/554 -f 2657/2693/554 2746/2784/554 2646/2682/554 -f 2555/2588/1073 2097/2120/814 2099/2122/816 -f 2099/2122/816 2650/2686/564 2649/2685/564 -f 2566/2599/1084 2747/2785/1124 2748/2786/1148 -f 2570/2603/554 2579/2612/1089 2580/2613/1090 -f 2749/2787/1149 2565/2598/1083 2566/2599/1084 -f 2747/2785/1124 2750/2788/1150 2748/2786/1148 -f 2751/2789/554 2750/2788/1150 2747/2785/1124 -f 2752/2790/554 2751/2789/554 2753/2791/1122 -f 2685/2721/554 2754/2792/1121 2686/2722/554 -f 2755/2793/554 2752/2790/554 2754/2792/1121 -f 2756/2794/554 2755/2793/554 2685/2721/554 -f 2757/2795/554 2758/2796/554 2756/2794/554 -f 2757/2795/554 2659/2695/554 2758/2796/554 -f 2657/2693/554 2646/2682/554 2745/2783/554 -f 2574/2607/824 2704/2741/823 2759/2797/1151 -f 2753/2791/1122 2751/2789/554 2747/2785/1124 -f 2754/2792/1121 2752/2790/554 2753/2791/1122 -f 2685/2721/554 2755/2793/554 2754/2792/1121 -f 2757/2795/554 2756/2794/554 2685/2721/554 -f 2760/2798/1152 2761/2799/1153 2762/2800/1154 -f 2757/2795/554 2657/2693/554 2659/2695/554 -f 2303/2328/554 2692/2728/1103 2302/2327/943 -f 2310/2337/570 2313/2341/570 2308/2335/570 -f 2763/2801/1155 2764/2802/1156 2765/2803/1157 -f 2429/2460/1029 2438/2469/1035 2763/2801/1155 -f 2766/2804/1033 2767/2805/1158 2628/2664/1034 -f 2767/2805/1158 2766/2804/1033 2768/2806/1159 -f 2768/2806/1159 2765/2803/1157 2764/2802/1156 -f 2769/2807/1160 2770/2808/1161 2771/2809/1162 -f 2770/2808/1161 2772/2810/1163 2773/2811/1164 -f 2774/2812/1165 2769/2807/1160 2775/2813/1166 -f 2772/2810/1163 2776/2814/1167 2777/2815/1168 -f 2778/2816/1169 2774/2812/1165 2779/2817/1170 -f 2776/2814/1167 2780/2818/1171 2781/2819/1172 -f 2782/2820/1173 2778/2816/1169 2783/2821/1174 -f 2780/2818/1171 2784/2822/1175 2785/2823/1176 -f 2786/2824/1177 2782/2820/1173 2787/2825/1178 -f 2784/2822/1175 2645/2681/1106 2788/2826/1179 -f 2761/2799/1153 2786/2824/1177 2789/2827/1180 -f 2790/2828/572 2791/2829/572 2792/2830/1181 -f 2793/2831/564 2634/2670/564 2633/2669/564 -f 2635/2671/564 2794/2832/564 2633/2669/564 -f 2795/2833/549 2796/2834/549 2797/2835/549 -f 2794/2832/564 2798/2836/564 2799/2837/564 -f 2068/2090/549 2800/2838/549 2629/2665/1102 -f 2031/2053/787 2033/2055/554 2626/2662/790 -f 2801/2839/1182 2802/2840/1183 2803/2841/1184 -f 2803/2841/1184 2804/2842/1185 2805/2843/1186 -f 2805/2843/1186 2801/2839/1182 2803/2841/1184 -f 2806/2844/1187 2807/2845/1188 2801/2839/1182 -f 2808/2846/1189 2809/2847/937 2807/2845/1188 -f 2810/2848/1190 2254/2279/924 2811/2849/940 -f 2036/2058/791 2096/2119/813 2034/2056/789 -f 2812/2850/1191 2813/2851/944 2809/2847/937 -f 2254/2279/924 2035/2057/790 2811/2849/940 -f 2810/2848/1190 2814/2852/939 2813/2851/944 -f 2036/2058/791 2251/2276/922 2249/2274/920 -f 2160/2183/843 2250/2275/921 2159/2182/842 -f 2250/2275/921 2251/2276/922 2159/2182/842 -f 2249/2274/920 2815/2853/1192 2816/2854/797 -f 2160/2183/843 2120/2143/830 2817/2855/1193 -f 2815/2853/1192 2249/2274/920 2250/2275/921 -f 2818/2856/1194 2819/2857/1195 2820/2858/1196 -f 2819/2857/1195 2818/2856/1194 2821/2859/1197 -f 2822/2860/1198 2823/2861/1199 2824/2862/1200 -f 2821/2859/1197 2825/2863/1201 2826/2864/1202 -f 2803/2841/1184 2827/2865/1203 2804/2842/1185 -f 2182/2207/855 2394/2423/1014 2805/2843/1186 -f 2394/2423/1014 2392/2421/1013 2806/2844/1187 -f 2390/2419/1012 2386/2415/1010 2812/2850/1191 -f 2806/2844/1187 2392/2421/1013 2390/2419/1012 -f 2386/2415/1010 2171/2195/849 2810/2848/1190 -f 2811/2849/940 2814/2852/939 2810/2848/1190 -f 2828/2866/554 2829/2867/554 2255/2280/554 -f 2095/2118/787 2035/2057/790 2034/2056/789 -f 2246/2271/919 2159/2182/842 2251/2276/922 -f 2810/2848/1190 2171/2195/849 2389/2418/1011 -f 2246/2271/919 2251/2276/922 2036/2058/791 -f 2254/2279/924 2389/2418/1011 2041/2063/796 -f 2830/2868/1188 2293/2318/937 2111/2134/825 -f 2831/2869/1204 2830/2868/1188 2727/2764/1135 -f 2832/2870/554 2833/2871/1205 2831/2869/1204 -f 2834/2872/554 2832/2870/554 2727/2764/1135 -f 2835/2873/1206 2834/2872/554 2728/2765/1136 -f 2728/2765/1136 2736/2773/1143 2735/2772/1142 -f 2316/2344/570 2280/2305/570 2279/2304/570 -f 2727/2764/1135 2830/2868/1188 2111/2134/825 -f 2832/2870/554 2831/2869/1204 2727/2764/1135 -f 2728/2765/1136 2834/2872/554 2727/2764/1135 -f 2735/2772/1142 2835/2873/1206 2728/2765/1136 -f 2296/2321/940 2626/2662/790 2305/2332/554 -f 2836/2874/1026 2837/2875/1026 2838/2876/1026 -f 2839/2877/1026 2840/2878/1026 2841/2879/1026 -f 2839/2877/1026 2841/2879/1026 2838/2876/1026 -f 2837/2875/1026 2839/2877/1026 2838/2876/1026 -f 2837/2875/1026 2836/2874/1026 2842/2880/1026 -f 2842/2880/1026 2843/2881/1026 2844/2882/1026 -f 2605/2640/1026 2424/2455/1026 2844/2882/1026 -f 2845/2883/1207 2846/2884/1208 2847/2885/1209 -f 2847/2885/1209 2848/2886/1210 2849/2887/1211 -f 2850/2888/1212 2851/2889/1213 2852/2890/1214 -f 2853/2891/1215 2851/2889/1213 2850/2888/1212 -f 2595/2630/1095 2854/2892/1216 2846/2884/1208 -f 2592/2627/1026 2597/2632/1026 2840/2878/1026 -f 2844/2882/1026 2855/2893/1026 2842/2880/1026 -f 2161/2894/570 2077/2099/570 2310/2337/570 -f 2856/2895/572 2857/2896/572 2858/2897/572 -f 2859/2898/554 2860/2899/554 2861/2900/554 -f 2862/2901/570 2863/2902/570 2864/2903/570 -f 2861/2904/554 2865/2905/554 2866/2906/554 -f 2867/2907/553 1481/1492/553 1483/1494/553 -f 2868/2908/554 1484/1495/554 1486/1497/554 -f 1498/1509/562 1487/1498/555 1489/1500/557 -f 2869/2909/559 1490/1501/558 1492/1503/559 -f 2870/2910/560 1493/1504/560 1495/1506/560 -f 1489/1500/557 1496/1507/561 1498/1509/562 -f 2871/2911/554 1499/1510/554 1501/1512/554 -f 2872/2912/563 1502/1513/563 1504/1515/563 -f 1555/1566/581 1546/1557/573 1548/1559/575 -f 1525/1536/569 1549/1560/576 1528/1539/571 -f 1550/1561/576 1549/1560/576 1552/1563/578 -f 1552/1563/578 1551/1562/577 1554/1565/580 -f 1554/1565/580 1553/1564/579 1547/1558/574 -f 2873/2913/582 1557/1568/582 1559/1570/582 -f 2874/2914/582 1560/1571/582 1562/1573/582 -f 2875/2915/570 1563/1574/570 1565/1576/570 -f 2876/2916/554 1566/1577/554 1568/1579/554 -f 2877/2917/554 1569/1580/554 1571/1582/554 -f 2878/2918/582 1572/1583/582 1574/1585/582 -f 1722/1739/621 1580/1591/583 1582/1593/585 -f 2106/2129/821 1583/1594/586 1585/1596/588 -f 2049/2071/564 1586/1597/564 1588/1599/589 -f 2879/2919/1037 1592/1603/590 1584/1595/587 -f 2880/2920/572 1596/1607/572 1598/1609/572 -f 1723/1740/572 1599/1610/572 1601/1612/572 -f 1724/1741/620 1602/1613/591 1604/1615/593 -f 1725/1742/582 1605/1616/582 1607/1618/582 -f 1582/1593/585 1581/1592/584 1609/1620/595 -f 1601/1612/572 1600/1611/572 1611/2921/572 -f 1604/1615/593 1603/1614/592 1613/1625/597 -f 1607/1618/582 1606/1617/582 1615/1627/582 -f 1609/1620/595 1608/1619/594 1617/1629/599 -f 1611/2921/572 1610/1630/572 1619/1632/572 -f 1613/1625/597 1612/1624/596 1621/1634/601 -f 1615/1627/582 1614/1626/582 1623/1636/582 -f 1617/2922/599 1616/2923/598 1625/2924/603 -f 1619/1632/572 1618/1631/572 1627/1640/572 -f 1621/2925/601 1620/2926/600 1629/2927/605 -f 1623/1636/582 1622/1635/582 1631/1645/582 -f 2881/2928/626 1632/2929/606 1634/2930/608 -f 1627/1640/572 1626/1639/572 1636/1650/572 -f 2882/2931/625 1637/1651/609 1639/1653/611 -f 1631/1645/582 1630/1644/582 1641/1655/582 -f 1634/2930/608 1633/1656/607 1643/1658/613 -f 1636/1650/572 1635/1649/572 1645/1660/572 -f 1639/1653/611 1638/1652/610 1647/1662/615 -f 1641/1655/582 1640/1654/582 1649/1664/582 -f 1643/1658/613 1642/1657/612 1651/1666/617 -f 1645/1660/572 1644/1659/572 1653/1668/572 -f 1647/1662/615 1646/1661/614 1655/1670/619 -f 1649/1664/582 1648/1663/582 1657/1672/582 -f 1651/1666/617 1650/1665/616 1659/2932/620 -f 1653/1668/572 1652/1667/572 1661/1677/572 -f 1655/1670/619 1654/1669/618 1663/1679/621 -f 1657/1672/582 1656/1671/582 1665/1681/582 -f 1659/2932/620 1658/2933/591 1667/2934/593 -f 1661/1677/572 1660/1676/572 1669/1685/572 -f 1663/1679/621 1662/1678/583 1671/1687/585 -f 1665/1681/582 1664/1680/582 1673/1689/582 -f 1667/2934/593 1666/2935/622 1675/2936/597 -f 1669/1685/572 1668/1684/572 1677/1693/572 -f 1671/1687/585 1670/1686/584 1679/1695/595 -f 1673/1689/582 1672/1688/582 1681/1697/582 -f 1675/2936/597 1674/2937/596 1683/2938/601 -f 1677/1693/572 1676/1692/572 1685/1701/572 -f 1679/1695/595 1678/1694/594 1687/1703/624 -f 1681/1697/582 1680/1696/582 1689/1705/582 -f 1683/1699/601 1682/1698/600 1691/1707/625 -f 1685/1701/572 1684/1700/572 1693/1709/572 -f 1687/1703/624 1686/1702/623 1695/1711/626 -f 1689/1705/582 1688/1704/582 1697/1713/582 -f 1691/1707/625 1690/1706/604 1699/1715/628 -f 1693/1709/572 1692/1708/572 1701/1717/572 -f 1695/2939/626 1694/1718/602 1703/1720/608 -f 1697/1713/582 1696/1712/582 1705/1722/582 -f 1699/1715/628 1698/1714/627 1707/1724/615 -f 1701/1717/572 1700/1716/572 1709/1726/572 -f 1703/1720/608 1702/1719/607 1711/1728/613 -f 1705/1722/582 1704/1721/582 1713/1730/582 -f 1707/1724/615 1706/1723/614 1715/1732/619 -f 1709/1726/572 1708/1725/572 1717/1734/572 -f 1711/1728/613 1710/1727/612 1719/1736/629 -f 1713/1730/582 1712/1729/582 1721/1738/582 -f 1715/1732/619 1714/1731/618 1722/1739/621 -f 1717/1734/572 1716/1733/572 1723/1740/572 -f 1719/1736/629 1718/1735/616 1724/1741/620 -f 1721/1738/582 1720/1737/582 1725/1742/582 -f 1749/1766/554 1726/1743/554 1728/1745/554 -f 1728/1745/554 1727/1744/554 1730/1747/554 -f 1730/1747/554 1729/1746/554 1732/1749/554 -f 1732/1749/554 1731/1748/554 1734/1751/554 -f 1734/1751/554 1733/1750/554 1736/1753/554 -f 1736/1753/554 1735/1752/554 1738/1755/554 -f 1738/1755/554 1737/1754/554 1740/1757/554 -f 1740/1757/554 1739/1756/554 1742/1759/554 -f 1742/1759/554 1741/1758/554 1744/1761/554 -f 1744/1761/554 1743/1760/554 1746/1763/554 -f 1746/1763/554 1745/1762/554 1748/1765/554 -f 1748/1765/554 1747/1764/554 1749/1766/554 -f 1760/1777/637 1750/1767/630 1752/1769/632 -f 1812/1829/669 1753/1770/633 1755/1772/635 -f 1765/1782/641 1759/1776/636 1760/1777/637 -f 1755/1772/635 1754/1771/634 1762/1779/639 -f 2883/2940/746 1764/1781/640 1765/1782/641 -f 1762/1779/639 1761/1778/638 1767/1784/643 -f 1776/1793/650 1769/1786/644 1771/1788/646 -f 1767/1784/643 1766/1783/642 1773/1790/648 -f 1781/1798/654 1775/1792/649 1776/1793/650 -f 1773/1790/648 1772/1789/647 1778/1795/652 -f 1786/1803/657 1780/1797/653 1781/1798/654 -f 1778/1795/652 1777/1794/651 1783/1800/656 -f 1791/1808/660 1785/1802/651 1786/1803/657 -f 1783/1800/656 1782/1799/655 1788/1805/654 -f 1796/1813/648 1790/1807/659 1791/1808/660 -f 1788/1805/654 1787/1804/658 1793/1810/661 -f 1801/1818/664 1795/1812/662 1796/1813/648 -f 1793/1810/661 1792/1809/644 1798/1815/663 -f 1807/1824/667 1800/1817/638 1801/1818/664 -f 2884/2941/746 1802/1819/640 1804/1821/641 -f 1811/1828/635 1806/1823/666 1807/1824/667 -f 1804/1821/641 1803/1820/665 1809/1826/668 -f 1752/1769/632 1751/1768/631 1811/1828/635 -f 1809/1826/668 1808/1825/630 1812/1829/669 -f 1830/1847/687 1819/1836/676 1828/1845/685 -f 1842/1859/699 1839/1856/696 1830/1847/687 -f 1871/1888/728 1841/1858/698 1842/1859/699 -f 1852/1869/709 1847/1864/704 1848/1865/705 -f 1847/1864/704 1852/1869/709 1850/1867/707 -f 1860/1877/717 1843/1860/700 1857/1874/714 -f 1850/1867/707 1862/1879/719 1847/1864/704 -f 1847/1864/704 1863/1880/720 1845/1862/702 -f 1860/1877/717 1857/1874/714 1862/1879/719 -f 1854/1871/711 1861/1878/718 1857/1874/714 -f 1867/1884/724 1865/1882/722 1846/1863/703 -f 1878/1895/735 1866/1883/723 1867/1884/724 -f 1870/1887/727 1868/1885/725 1813/1830/670 -f 2333/2362/959 1869/1886/726 1870/1887/727 -f 1830/1847/687 1840/1857/697 1819/1836/676 -f 1841/1858/698 1871/1888/728 1873/1890/730 -f 1880/1897/737 1877/1894/734 1867/1884/724 -f 1882/1899/739 1879/1896/736 1880/1897/737 -f 2332/2361/958 1881/1898/738 1880/1897/737 -f 1872/1889/729 1883/1900/740 1884/1901/741 -f 1892/1909/651 1888/1905/652 1890/1907/742 -f 1896/1913/655 1891/1908/656 1892/1909/651 -f 1890/1907/742 1889/1906/648 1894/1911/642 -f 1898/1915/744 1895/1912/654 1896/1913/655 -f 1902/1919/644 1897/1914/743 1898/1915/744 -f 1894/1911/642 1893/1910/643 1900/1917/638 -f 1904/1921/645 1901/1918/746 1902/1919/644 -f 1908/1925/665 1903/1920/641 1904/1921/645 -f 1900/1917/638 1899/1916/745 1906/1923/634 -f 1910/1927/630 1907/1924/668 1908/1925/665 -f 1911/1928/633 1909/1926/669 1910/1927/630 -f 1906/1923/634 1905/1922/635 1911/1928/633 -f 1916/1933/564 1912/1929/564 1914/1931/564 -f 1920/1937/564 1915/1932/564 1916/1933/564 -f 1914/1931/564 1913/1930/564 1918/1935/564 -f 1922/1939/564 1919/1936/564 1920/1937/564 -f 1925/1943/564 1921/1938/564 1922/1939/564 -f 1918/1935/564 1917/1934/564 1924/1941/564 -f 1927/1945/564 1885/1942/564 1925/1943/564 -f 1931/1949/564 1926/1944/564 1927/1945/564 -f 1924/1941/564 1923/1940/564 1929/1947/564 -f 1933/1951/564 1930/1948/564 1931/1949/564 -f 1934/1952/564 1932/1950/564 1933/1951/564 -f 1929/1947/564 1928/1946/564 1934/1952/564 -f 1942/1960/648 1938/1956/647 1940/1958/652 -f 1951/1969/643 1941/1959/642 1942/1960/648 -f 1940/1958/652 1939/1957/651 1945/1963/656 -f 1945/1963/656 1944/1962/655 1949/1967/654 -f 1961/1979/639 1950/1968/638 1951/1969/643 -f 1949/1967/654 1948/1966/658 1954/1972/747 -f 1974/1992/752 1957/1975/748 1959/1977/749 -f 1971/1989/635 1960/1978/634 1961/1979/639 -f 2885/2942/750 1963/1981/750 1965/1983/751 -f 1958/1976/748 1957/1975/748 1969/1987/668 -f 1973/1991/669 1970/1988/633 1971/1989/635 -f 1969/1987/668 1968/1986/630 1973/1991/669 -f 1964/1982/751 1974/1992/752 1965/1983/751 -f 2886/2943/754 1954/1972/747 1975/1994/753 -f 2885/2942/750 1976/1995/754 1963/1981/750 -f 2887/2944/564 1887/1997/564 1978/1999/564 -f 2022/2044/779 1982/2004/756 1984/2006/758 -f 1984/2006/758 1983/2005/757 1990/2012/760 -f 1990/2012/760 1989/2011/759 1994/2016/762 -f 2888/2945/1217 1997/2019/763 1999/2021/765 -f 1999/2021/765 1998/2020/764 2003/2025/767 -f 2003/2025/767 2002/2024/766 2007/2029/769 -f 2889/2946/564 2008/2030/564 2010/2032/770 -f 2890/2947/771 2010/2032/770 2013/2035/771 -f 2007/2029/769 2006/2028/768 2015/2037/773 -f 2021/2043/778 2017/2039/774 2019/2041/776 -f 2478/2511/1052 2020/2042/777 2021/2043/778 -f 2015/2037/773 2014/2036/772 2022/2044/779 -f 2277/2302/931 2026/2048/783 2023/2045/780 -f 2019/2041/776 2018/2040/775 2038/2060/793 -f 2891/2948/549 2043/2065/549 2045/2067/549 -f 2853/2891/1215 2051/2073/798 2053/2075/800 -f 2892/2949/549 2058/2080/549 2060/2082/549 -f 2052/2074/799 2065/2087/804 2053/2075/800 -f 2434/2465/1034 2067/2089/806 2069/2091/807 -f 2893/2950/572 2078/2101/572 2080/2103/572 -f 2080/2103/572 2079/2102/572 2082/2105/572 -f 2081/2104/572 2083/2106/572 2082/2105/572 -f 2040/2062/795 2039/2061/794 2094/2117/812 -f 2816/2854/797 2095/2118/787 2096/2119/813 -f 2894/2951/1073 2103/2126/819 2105/2128/589 -f 1583/1594/586 2106/2129/821 2108/2131/816 -f 2160/2183/843 2118/2141/828 2120/2143/830 -f 2175/2436/570 2149/2172/570 2085/2108/570 -f 2895/2952/564 2166/2190/564 2168/2192/564 -f 2278/2303/932 2177/2202/582 2179/2204/852 -f 2896/2953/1218 2186/2211/859 2188/2213/861 -f 2382/2411/1008 2189/2214/862 2184/2209/857 -f 2210/2235/883 2206/2231/879 2208/2233/881 -f 2897/2954/570 2258/2283/570 2260/2285/570 -f 2898/2955/554 2261/2286/554 2263/2288/554 -f 2899/2956/1219 2264/2289/925 2266/2291/925 -f 2900/2957/549 2267/2292/549 2269/2294/549 -f 2901/2958/570 2270/2295/927 2272/2297/570 -f 2252/2277/923 2025/2047/782 2278/2303/932 -f 2287/2312/582 2282/2307/582 2283/2308/933 -f 2282/2307/582 2284/2309/582 2252/2277/923 -f 2283/2308/933 2285/2310/934 2287/2312/582 -f 2285/2310/934 2283/2308/933 2289/2314/935 -f 2023/2045/780 2027/2049/784 2292/2317/936 -f 2312/2339/570 2317/2345/570 2309/2340/570 -f 2322/2351/948 2318/2347/945 2320/2349/947 -f 2902/2959/564 2321/2350/564 2322/2351/948 -f 2903/2960/1220 1817/1834/674 2323/2352/949 -f 1871/1888/728 2324/2353/950 1872/1889/729 -f 2324/2353/950 2325/2354/951 1883/1900/740 -f 2334/2363/960 2325/2354/951 2327/2356/953 -f 1871/1888/728 1842/1859/699 2324/2353/950 -f 1836/1853/693 2329/2358/955 1835/1852/692 -f 2904/2961/1221 2329/2358/955 2328/2357/954 -f 2904/2961/1221 2328/2357/954 1879/1896/736 -f 1831/1848/688 1828/1845/685 2331/2360/957 -f 1819/1836/676 1821/1838/678 1833/1850/690 -f 2208/2233/881 2207/2232/880 2239/2264/912 -f 2370/2399/996 2347/2376/973 2202/2227/875 -f 2347/2376/973 2348/2377/974 2203/2228/876 -f 2351/2380/977 2352/2381/978 2354/2383/980 -f 2357/2386/983 2353/2382/979 2355/2384/981 -f 2344/2373/970 2350/2379/976 2360/2389/986 -f 2366/2395/992 2365/2394/991 2352/2381/978 -f 2364/2393/990 2366/2395/992 2351/2380/977 -f 2366/2395/992 2360/2389/986 2365/2394/991 -f 2366/2395/992 2364/2393/990 2360/2389/986 -f 2354/2383/980 2368/2397/994 2190/2215/863 -f 2368/2397/994 2244/2269/917 2191/2216/864 -f 2245/2270/918 2369/2398/995 2213/2238/886 -f 2369/2398/995 2227/2252/900 2211/2236/884 -f 2237/2262/910 2370/2399/996 2207/2232/880 -f 2229/2254/902 2349/2378/975 2230/2255/903 -f 2219/2244/892 2371/2400/997 2191/2216/864 -f 2371/2400/997 2373/2402/999 2372/2401/998 -f 2374/2403/1000 2235/2260/908 2372/2401/998 -f 2198/2223/871 2375/2404/1001 2231/2256/904 -f 2198/2223/871 2236/2261/909 2377/2406/1003 -f 2375/2404/1001 2378/2407/1004 2229/2254/902 -f 2905/2962/1222 2379/2408/1005 2375/2404/1001 -f 2378/2407/1004 2379/2408/1005 2232/2257/905 -f 2232/2257/905 2203/2228/876 2378/2407/1004 -f 2241/2266/914 2380/2409/1006 2240/2265/913 -f 2217/2242/890 2380/2409/1006 2218/2243/891 -f 2371/2400/997 2218/2243/891 2373/2402/999 -f 2226/2251/899 2239/2264/912 2234/2259/907 -f 2189/2214/862 2382/2411/1008 2187/2212/860 -f 2054/2076/801 2383/2412/1009 2118/2141/828 -f 2383/2412/1009 2054/2076/801 2094/2117/812 -f 2169/2193/847 2171/2195/849 2387/2416/846 -f 2387/2416/846 2386/2415/1010 2391/2420/827 -f 2391/2420/827 2390/2419/1012 2393/2422/826 -f 2393/2422/826 2392/2421/1013 2395/2424/1015 -f 2906/2963/554 2400/2429/554 2401/2430/554 -f 2606/2641/1097 2407/2437/1023 2409/2439/1025 -f 2407/2437/1023 2410/2964/554 2408/2438/1024 -f 2907/2965/564 2412/2966/564 2414/2967/564 -f 2908/2968/570 2417/2448/570 2419/2450/570 -f 2909/2969/564 2420/2451/564 2422/2453/564 -f 2910/2970/1223 2426/2457/1027 2428/2459/1027 -f 2433/2464/1033 2432/2463/1032 2430/2461/1030 -f 2432/2463/1032 2433/2464/1033 2434/2465/1034 -f 2911/2971/549 2435/2466/549 2437/2468/549 -f 2912/2972/927 2443/2474/927 2445/2476/570 -f 2163/2187/845 2463/2494/582 2278/2303/932 -f 2913/2973/582 2464/2495/1044 2178/2203/582 -f 2914/2974/935 2179/2204/852 2465/2496/935 -f 2468/2499/1047 2156/2179/839 2467/2498/1046 -f 2152/2175/837 2469/2500/1048 2150/2173/835 -f 2740/2777/1145 2471/2502/1050 2473/2504/1051 -f 2467/2498/1046 2151/2174/836 2470/2501/1049 -f 2915/2975/564 2474/2505/564 2476/2507/564 -f 2020/2042/777 2478/2511/1052 2480/2513/570 -f 2916/2976/1053 2481/2514/1053 2055/2077/802 -f 2917/2977/1053 2439/2470/1036 2482/2515/1053 -f 2533/2566/1059 2490/2523/570 2492/2525/1055 -f 2918/2978/1224 2493/2526/564 2495/2528/1056 -f 2919/2979/572 2496/2529/572 2498/2531/572 -f 2920/2980/582 2499/2532/582 2501/2534/582 -f 2497/2530/572 2502/2535/572 2498/2531/572 -f 2918/2978/1224 2495/2528/1056 2491/2524/1054 -f 2507/2540/1057 2504/2537/1057 2506/2539/564 -f 2539/2572/1069 2504/2537/1057 2508/2541/1058 -f 2921/2981/1061 2509/2542/1059 2511/2544/1061 -f 2922/2982/582 2512/2545/582 2514/2547/582 -f 2488/2521/582 2514/2547/582 2487/2520/582 -f 2529/2562/1066 2518/2551/570 2520/2553/1063 -f 2923/2983/554 2521/2554/554 2523/2556/1065 -f 2528/2561/572 2524/2557/572 2526/2559/572 -f 2924/2984/572 2503/2536/572 2527/2560/572 -f 2924/2984/572 2527/2560/572 2526/2559/572 -f 2520/2553/1063 2523/2556/1065 2529/2562/1066 -f 2925/2985/554 2530/2563/1067 2532/2565/554 -f 2492/2525/1055 2520/2553/1063 2533/2566/1059 -f 2920/2980/582 2501/2534/582 2486/2519/582 -f 2531/2564/1067 2530/2563/1067 2538/2571/1068 -f 2537/2570/1068 2539/2572/1069 2538/2571/1068 -f 2926/2986/1072 2552/2585/1072 2554/2587/1072 -f 2927/2987/1225 2560/2593/1078 2562/2595/1080 -f 2928/2988/1226 2573/2606/1086 2575/2608/1087 -f 2929/2989/1227 2576/2609/549 2578/2611/1088 -f 2608/2643/1091 2582/2615/549 2584/2617/1091 -f 2930/2990/572 2585/2618/1092 2587/2620/572 -f 2611/2991/570 2586/2621/1093 2588/2623/570 -f 2931/2992/1094 2589/2624/582 2591/2626/1094 -f 2854/2892/1216 2595/2630/1095 2065/2087/804 -f 2932/2993/572 2599/2634/572 2601/2636/572 -f 2599/2634/572 2602/2637/572 2600/2635/572 -f 2596/2631/1026 2593/2628/1026 2425/2456/1026 -f 2320/2349/947 2319/2348/946 2409/2439/1025 -f 2930/2990/572 2587/2620/572 2584/2617/1091 -f 2590/2625/582 2589/2624/582 2610/2645/1100 -f 2931/2992/1094 2591/2626/1094 2588/2647/570 -f 2933/2994/549 2612/2995/549 2609/2996/1099 -f 2614/2650/1101 2088/2111/808 2615/2651/809 -f 2934/2997/572 2616/2652/572 2618/2654/572 -f 2617/2653/572 2619/2655/572 2618/2654/572 -f 2619/2655/572 2621/2657/572 2620/2656/572 -f 2161/2184/570 2623/2659/570 2075/2100/570 -f 2800/2838/549 2627/2663/806 2629/2665/1102 -f 2935/2998/582 2630/2666/582 2632/2668/582 -f 2638/2674/549 2639/2675/549 2636/2672/549 -f 2936/2999/1105 2642/2678/1104 2644/2680/1105 -f 2788/2826/1179 2645/2681/1106 2629/2665/1102 -f 2937/3000/564 2649/2685/564 2651/2687/564 -f 2928/2988/1226 2938/3001/1228 2573/2606/1086 -f 2929/2989/1227 2578/2611/1088 2656/2692/1110 -f 2939/3002/549 2660/2696/549 2662/2698/549 -f 2940/3003/1229 2663/2699/1111 2665/2701/1113 -f 2669/2705/1117 2666/2702/1114 2668/2704/1116 -f 2663/2699/1111 2669/2705/1117 2664/2700/1112 -f 2941/3004/1118 2670/2706/1118 2672/2708/1119 -f 2941/3004/1118 2673/2709/554 2670/2706/1118 -f 2699/2735/572 2675/2711/572 2677/2713/572 -f 2656/2692/1110 2655/2691/1109 2682/2718/1120 -f 2298/2323/941 2301/2329/942 2684/2720/1122 -f 2568/2601/554 2647/2683/554 2569/2602/1085 -f 2684/2720/1122 2691/2727/1124 2298/2323/941 -f 2302/2327/943 2692/2728/1103 2694/2730/1125 -f 2624/2660/943 2695/2731/1125 2641/2677/1103 -f 2942/3005/570 2667/2703/1115 2697/2733/570 -f 2700/2736/572 2462/2509/572 2698/2734/572 -f 2943/3006/1126 2701/2738/1126 2703/2740/1126 -f 2759/2797/1151 2704/2741/823 2558/2591/1076 -f 2944/3007/549 2705/2742/549 2707/2744/549 -f 2711/2748/1129 2708/2745/1127 2710/2747/1128 -f 2936/2999/1105 2644/2680/1105 2711/2748/1129 -f 2945/3008/549 2712/2749/549 2642/2678/1104 -f 2946/3009/1130 2713/2750/1130 2715/2752/1130 -f 2947/3010/1131 2716/2753/1131 2718/2755/1131 -f 2948/3011/554 2719/2756/554 2721/2758/554 -f 2949/3012/1132 2722/2759/1132 2724/2761/1132 -f 2731/2768/1139 2725/2762/1133 2471/2502/1050 -f 2736/2773/1143 2728/2765/1136 2730/2767/1138 -f 2725/2762/1133 2731/2768/1139 2733/2770/1134 -f 2730/2767/1138 2734/2771/1141 2736/2773/1143 -f 2728/2765/1136 2727/2764/1135 2729/2766/1137 -f 2743/2780/1147 2737/2774/1137 2739/2776/1144 -f 2473/2504/1051 2738/2775/1046 2733/2770/1134 -f 2733/2770/1134 2732/2769/1140 2473/2504/1051 -f 2739/2776/1144 2741/2778/1048 2743/2780/1147 -f 2555/2588/1073 2099/2122/816 2649/2685/564 -f 2748/2786/1148 2749/2787/1149 2566/2599/1084 -f 2575/2608/1087 2574/2607/824 2759/2797/1151 -f 2950/3013/1230 2760/2798/1152 2762/2800/1154 -f 2765/2803/1157 2429/2460/1029 2763/2801/1155 -f 2627/2663/806 2766/2804/1033 2628/2664/1034 -f 2764/2802/1156 2767/2805/1158 2768/2806/1159 -f 2775/2813/1166 2769/2807/1160 2771/2809/1162 -f 2771/2809/1162 2770/2808/1161 2773/2811/1164 -f 2779/2817/1170 2774/2812/1165 2775/2813/1166 -f 2773/2811/1164 2772/2810/1163 2777/2815/1168 -f 2783/2821/1174 2778/2816/1169 2779/2817/1170 -f 2777/2815/1168 2776/2814/1167 2781/2819/1172 -f 2787/2825/1178 2782/2820/1173 2783/2821/1174 -f 2781/2819/1172 2780/2818/1171 2785/2823/1176 -f 2789/2827/1180 2786/2824/1177 2787/2825/1178 -f 2785/2823/1176 2784/2822/1175 2788/2826/1179 -f 2762/2800/1154 2761/2799/1153 2789/2827/1180 -f 2951/3014/1157 2790/2828/572 2792/2830/1181 -f 2952/3015/549 2795/2833/549 2797/2835/549 -f 2633/2669/564 2794/2832/564 2799/2837/564 -f 2069/2091/807 2068/2090/549 2629/2665/1102 -f 2805/2843/1186 2806/2844/1187 2801/2839/1182 -f 2806/2844/1187 2808/2846/1189 2807/2845/1188 -f 2808/2846/1189 2812/2850/1191 2809/2847/937 -f 2812/2850/1191 2810/2848/1190 2813/2851/944 -f 2096/2119/813 2249/2274/920 2816/2854/797 -f 2250/2275/921 2160/2183/843 2817/2855/1193 -f 2817/2855/1193 2815/2853/1192 2250/2275/921 -f 2824/2862/1200 2818/2856/1194 2820/2858/1196 -f 2826/2864/1202 2819/2857/1195 2821/2859/1197 -f 2820/2858/1196 2822/2860/1198 2824/2862/1200 -f 2804/2842/1185 2182/2207/855 2805/2843/1186 -f 2805/2843/1186 2394/2423/1014 2806/2844/1187 -f 2808/2846/1189 2390/2419/1012 2812/2850/1191 -f 2808/2846/1189 2806/2844/1187 2390/2419/1012 -f 2812/2850/1191 2386/2415/1010 2810/2848/1190 -f 2257/2282/554 2828/2866/554 2255/2280/554 -f 2254/2279/924 2810/2848/1190 2389/2418/1011 -f 2041/2063/796 2246/2271/919 2036/2058/791 -f 2036/2058/791 2254/2279/924 2041/2063/796 -f 2290/2315/570 2316/2344/570 2279/2304/570 -f 2855/2893/1026 2837/2875/1026 2842/2880/1026 -f 2843/2881/1026 2605/2640/1026 2844/2882/1026 -f 2953/3016/1231 2845/2883/1207 2847/2885/1209 -f 2953/3016/1231 2847/2885/1209 2849/2887/1211 -f 2954/3017/1210 2850/2888/1212 2852/2890/1214 -f 2051/2073/798 2853/2891/1215 2850/2888/1212 -f 2845/2883/1207 2595/2630/1095 2846/2884/1208 -f 2839/2877/1026 2592/2627/1026 2840/2878/1026 -f 2315/2343/570 2161/2894/570 2310/2337/570 -f 2955/3018/572 2856/2895/572 2858/2897/572 -f 2956/3019/570 2862/2901/570 2864/2903/570 -f 2859/2898/554 2861/2900/554 2866/3020/554 -f 1472/1483/549 1474/1485/549 2957/3021/549 -f 1472/1483/549 1477/1488/549 1476/1487/549 -f 1477/1488/549 1472/1483/549 2957/3021/549 -f 1555/1566/581 1475/1486/550 1477/1488/549 +f 2349/2039/885 2350/2040/886 2351/2041/887 +f 2351/2041/887 2352/2042/888 2088/1827/875 +f 2353/2043/889 2354/2044/889 2355/2045/890 +f 2356/2046/891 1881/1640/867 1880/1639/867 +f 2357/2047/892 2358/2048/893 2359/2049/868 +f 2360/2050/894 2361/2051/894 2362/2052/895 +f 2363/1784/868 2364/1783/896 2365/2018/897 +f 2268/1985/868 2366/2053/898 2267/1984/868 +f 2367/2002/899 2368/1720/900 1820/1579/866 +f 2369/2054/901 2354/2044/889 2353/2043/889 +f 2370/2055/902 2371/2056/866 2372/2057/866 +f 1844/1603/866 1843/1602/866 2373/2058/903 +f 2373/2058/903 2374/2059/866 1844/1603/866 +f 2372/2057/866 1832/1591/866 2375/2060/904 +f 1832/1591/866 1834/1593/866 2375/2060/904 +f 1846/1605/872 1845/1604/872 2376/2061/905 +f 2377/2062/872 2378/2063/906 2376/2061/905 +f 2370/2055/902 2372/2057/866 2375/2060/904 +f 2379/2064/907 2380/2065/908 2381/2066/909 +f 2382/2067/910 2383/2068/911 2384/2069/912 +f 2385/2070/913 2386/2071/914 2387/2072/915 +f 2388/2073/916 2389/2074/916 2235/1954/868 +f 2390/2075/917 2391/1858/866 2392/1857/866 +f 2393/1986/918 2394/1628/918 2390/2075/917 +f 2395/2076/919 2396/2077/920 2397/2078/921 +f 2398/2079/922 2399/2080/923 2400/2081/924 +f 2401/2082/919 2402/2083/925 2403/2084/926 +f 2404/2085/927 2405/2086/928 2406/2087/929 +f 2407/2088/930 2408/2089/931 2409/2090/932 +f 2400/2081/924 2410/2091/902 2411/2092/866 +f 2412/2093/866 2413/2094/866 2414/2095/933 +f 2411/2096/866 2412/2093/866 2414/2095/933 +f 2415/2097/934 2416/2098/935 2417/2099/868 +f 2418/2100/936 2419/2101/937 2416/2102/935 +f 2415/2097/934 2417/2099/868 1876/1635/868 +f 2420/2103/938 2421/2104/939 2422/2105/876 +f 2423/2106/940 2424/2107/941 2425/2108/942 +f 2356/2046/891 2426/2109/943 2401/2082/919 +f 2427/2110/944 2040/1788/867 2054/1800/867 +f 2103/1839/867 2428/2111/945 2327/2028/867 +f 2429/1797/868 2430/1796/896 2431/1802/946 +f 2432/2112/947 2433/2113/948 2434/2114/876 +f 2435/2115/949 2436/2116/950 2432/2112/947 +f 2435/2115/949 2437/2117/951 2438/2118/952 +f 2439/2119/953 2440/2120/954 2105/1841/866 +f 2414/2095/933 2441/2121/955 2398/2122/922 +f 2442/2123/933 2443/2124/956 2436/2116/950 +f 2444/2125/876 2434/2114/876 2433/2113/948 +f 2445/2126/957 2446/2127/896 2447/2128/958 +f 2448/2129/959 2449/2130/960 2447/2128/958 +f 2432/2112/947 2447/2128/958 2449/2130/960 +f 2450/2131/961 2448/2129/959 2447/2128/958 +f 2451/2132/962 2452/2133/963 2453/2134/964 +f 2454/2135/938 2455/2136/965 2456/2137/966 +f 2457/2138/967 2458/2139/968 2459/2140/969 +f 2460/2141/866 2461/2142/899 2462/2143/899 +f 2463/2144/970 2464/2145/971 2458/2146/968 +f 2375/2060/904 2465/2147/902 2466/2148/972 +f 2467/2149/973 2468/2150/974 2469/2151/975 +f 2451/2132/962 2470/2152/940 2471/2153/876 +f 2400/2081/924 2414/2154/933 2398/2079/922 +f 2400/2081/924 2399/2080/923 2472/2155/970 +f 2473/2015/941 2474/1672/876 2475/1671/876 +f 2476/2156/976 2477/2157/977 2478/2158/876 +f 2400/2081/924 2479/2159/866 2480/2160/972 +f 2481/1997/866 2482/1702/866 2483/1701/978 +f 2484/2161/979 2485/2162/980 2486/2163/981 +f 2487/2164/982 2486/2163/981 2477/2157/977 +f 2488/2165/875 2489/2166/875 2490/2167/983 +f 2491/2168/984 2492/2169/985 2493/2170/986 +f 2494/2171/987 2424/2107/941 2493/2170/986 +f 2495/2172/876 2496/2173/988 2452/2133/963 +f 2494/2171/987 2497/2174/989 2498/2175/990 +f 2499/2176/944 2492/2169/985 2500/2177/991 +f 2492/2169/985 2497/2174/989 2493/2170/986 +f 2501/2178/992 2373/2058/903 1843/1602/866 +f 2493/2170/986 2502/2179/993 2491/2168/984 +f 2471/2153/876 2452/2133/963 2451/2132/962 +f 2462/2143/899 2461/2142/899 2503/2180/994 +f 2504/2181/995 2505/2182/996 2506/2183/994 +f 2507/1732/958 2508/2003/956 2509/2001/964 +f 2510/2184/997 2511/2185/998 2512/2186/866 +f 2492/2169/985 2491/2168/984 2500/2177/991 +f 2513/2187/996 2514/2188/999 2515/2189/866 +f 2516/1682/866 2517/1684/866 2518/1994/978 +f 2519/2190/996 2520/2191/995 1980/1730/866 +f 2521/2192/923 2456/2137/966 2464/2145/971 +f 2522/2193/1000 2467/2149/973 2523/2194/1001 +f 2468/2150/974 2524/2195/866 2525/2196/866 +f 2526/2197/967 2527/2198/1002 2400/2081/924 +f 2398/2122/922 2421/2104/939 2399/2199/923 +f 2485/2162/980 2484/2161/979 2528/2200/888 +f 2529/1668/866 2530/1676/866 2531/1675/978 +f 2532/2201/867 2533/2202/867 2534/2203/1003 +f 2493/2170/986 2535/2204/940 2502/2179/993 +f 2499/2176/944 2500/2177/991 1955/1710/867 +f 2536/1999/866 2537/1713/866 2538/2000/978 +f 2539/2205/866 2540/2206/899 2541/2207/899 +f 1980/1730/866 1851/1610/866 2519/2190/996 +f 2542/2208/1004 2503/2180/994 2443/2124/956 +f 2543/2209/1004 2544/2210/1005 2443/2124/956 +f 2373/2058/903 2501/2178/992 2453/2134/964 +f 2544/2210/1005 2545/2211/1006 2453/2134/964 +f 2511/2185/998 2510/2184/997 2544/2210/1005 +f 2546/2212/994 2543/2209/1004 2443/2124/956 +f 2514/2188/999 2513/2187/996 2546/2212/994 +f 2547/2213/1004 2548/2214/994 2443/2124/956 +f 2541/2207/899 2540/2206/899 2548/2214/994 +f 2503/2180/994 2547/2213/1004 2443/2124/956 +f 2442/2123/933 2506/2183/994 2443/2124/956 +f 2549/2215/906 2550/2216/1007 2551/1569/1007 +f 2552/2217/942 2553/2218/1008 2554/2219/1009 +f 1799/1561/868 2555/2220/1010 2556/2221/1010 +f 2554/2219/1009 2557/2222/896 2558/2223/959 +f 2559/2224/893 2560/2225/892 2554/2219/1009 +f 2561/2226/893 2562/2227/893 2563/2228/868 +f 2560/2225/892 2557/2222/896 2554/2219/1009 +f 2556/2221/1010 2555/2220/1010 2564/2229/1011 +f 2522/2193/1000 2565/2230/1000 2566/2231/1012 +f 2567/2232/940 2552/2217/942 2495/2172/876 +f 2419/2101/937 2418/2100/936 2456/2233/966 +f 2456/2233/966 2418/2100/936 2464/2234/971 +f 2568/2235/1013 2569/1607/1014 2384/2069/912 +f 2380/2065/908 2379/2064/907 2570/2236/875 +f 2438/2118/952 2436/2116/950 2435/2115/949 +f 2571/2237/976 2572/2238/876 2573/2239/876 +f 2418/2100/936 2415/2240/934 2574/2241/1015 +f 2575/2242/868 2576/2243/959 2366/2053/898 +f 2349/2039/885 2577/2244/1016 2578/2245/1017 +f 2577/2244/1016 2571/2237/976 2579/2246/977 +f 2580/2247/959 2558/2223/959 2557/2222/896 +f 2581/2248/1018 2582/2249/1019 2424/2107/941 +f 2576/2243/959 2445/2126/957 2583/2250/896 +f 2581/2248/1018 2427/2110/944 2584/2251/1020 +f 2494/2171/987 2581/2248/1018 2424/2107/941 +f 2559/2224/893 2553/2218/1008 2323/2026/868 +f 2425/2108/942 2424/2107/941 2582/2249/1019 +f 2496/2173/988 2495/2172/876 2552/2217/942 +f 2561/2226/893 2450/2131/961 2446/2127/896 +f 2357/2047/892 2449/2130/960 2448/2129/959 +f 2585/2252/1021 2586/2253/868 2587/2254/868 +f 2582/2249/1019 2581/2248/1018 2584/2251/1020 +f 2588/2255/1021 2589/2256/868 2590/2257/868 +f 2322/2025/868 2559/2224/893 2323/2026/868 +f 2558/2223/959 2591/2258/896 2447/2128/958 +f 2592/2259/959 2593/2260/957 2591/2258/896 +f 2594/2261/1022 2566/2231/1012 2595/2262/868 +f 2458/2139/968 2464/2234/971 2418/2100/936 +f 2596/1810/868 2597/1809/896 2598/1820/893 +f 2599/2263/1023 2600/2264/1024 2456/2137/966 +f 2349/2039/885 2351/2041/887 2601/2265/1025 +f 2602/2008/959 2603/1765/961 2604/1764/868 +f 2583/2250/896 2445/2126/957 2447/2128/958 +f 2413/2094/866 2605/2266/866 2414/2095/933 +f 2426/2109/943 2402/2083/925 2401/2082/919 +f 2105/1841/866 2104/1840/866 2439/2119/953 +f 2350/2040/886 2606/2267/1026 2352/2042/888 +f 2428/2111/945 2607/2268/1027 2608/1845/1028 +f 2428/2111/945 2103/1839/867 2607/2268/1027 +f 2609/2269/1029 2610/2270/1030 2611/1831/872 +f 2612/2271/889 2613/2272/872 2614/2273/872 +f 2440/2120/954 2439/2119/953 2612/2271/889 +f 2407/2088/930 2409/2090/932 2615/2274/1030 +f 2599/2263/1023 2455/2136/965 2454/2135/938 +f 2416/2102/935 2415/2240/934 2418/2100/936 +f 2421/2104/939 2420/2103/938 2399/2199/923 +f 2396/2077/920 2616/2275/1031 2409/2090/932 +f 2408/2089/931 2617/2276/868 2618/2277/868 +f 2396/2077/920 2395/2076/919 2616/2275/1031 +f 2397/2078/921 2355/2045/890 2395/2076/919 +f 2619/2278/1032 2620/2279/1033 2621/2280/1034 +f 2622/2281/1035 2619/2278/1032 2623/2282/1036 +f 2624/2283/1037 2622/2281/1035 2625/2284/1038 +f 2626/2285/1039 2624/2283/1037 2627/2286/1040 +f 2628/2287/1041 2629/2288/1042 2236/1955/875 +f 2630/2289/1043 2631/2290/1044 2632/2291/1045 +f 2633/2292/1046 2634/2293/1046 2632/2291/1045 +f 2635/2294/1047 2636/2295/1048 2629/2288/1042 +f 2637/2296/1049 2638/2297/1050 2636/2295/1048 +f 2639/2298/1051 2634/2293/1046 2633/2292/1046 +f 2640/2299/1052 2641/2300/1053 2642/2301/1054 +f 2641/2300/1053 2643/2302/1055 2644/2303/1056 +f 2643/2302/1055 2645/2304/1057 2646/2305/1058 +f 2645/2304/1057 2647/2306/1059 2648/2307/1060 +f 2647/2306/1059 2649/2308/1061 2650/2309/1062 +f 2651/2310/1063 2652/2311/1064 2653/2312/1065 +f 2654/2313/1066 2655/2314/1066 2653/2312/1065 +f 2656/2315/1067 2657/2316/1067 2658/2317/1050 +f 2659/2318/1068 2655/2314/1066 2654/2313/1066 +f 2620/2279/1033 2659/2318/1068 2660/2319/1069 +f 2656/2315/1067 2661/2320/1070 2657/2316/1067 +f 2662/2321/1071 2663/2322/1072 2661/2320/1070 +f 2664/2323/1073 2665/2324/1074 2661/2320/1070 +f 2666/2325/1075 2667/2326/1075 2665/2324/1074 +f 2668/2327/1076 2669/2328/1077 2670/2329/1077 +f 2671/2330/1078 2672/2331/1078 2670/2329/1077 +f 2673/2036/1079 2674/1923/1080 2675/1922/876 +f 2676/2332/1081 2677/2333/1082 2678/2334/1083 +f 2679/2335/1084 2680/2336/1085 2678/2334/1083 +f 2677/2333/1082 2681/2337/1086 2679/2335/1084 +f 2682/2338/1087 2681/2337/1086 2677/2333/1082 +f 2683/2339/1088 2684/2340/1089 2681/2337/1086 +f 2685/2341/1090 2686/2342/1090 2687/2343/1091 +f 2688/2344/1092 2687/2343/1091 2684/2340/1089 +f 1863/1622/866 2369/2054/901 2689/2345/1093 +f 2690/2346/1094 2386/2071/914 2691/2347/1095 +f 2692/2348/1096 2693/2349/1097 2690/2346/1094 +f 2694/2350/1098 2695/2351/1099 2693/2349/1097 +f 2143/1875/867 2141/1873/867 2695/2351/1099 +f 2144/1876/867 2387/2072/915 2141/1873/867 +f 2696/2352/1100 2385/2070/913 2387/2072/915 +f 2697/2353/1101 2696/2352/1100 2387/2072/915 +f 2698/2354/1102 2697/2353/1101 2387/2072/915 +f 2144/1876/867 2698/2354/1102 2387/2072/915 +f 2699/2355/1103 2143/1875/867 2695/2351/1099 +f 2694/2350/1098 2699/2355/1103 2695/2351/1099 +f 2692/2348/1096 2700/2356/1104 2693/2349/1097 +f 2701/2357/1105 2692/2348/1096 2690/2346/1094 +f 2702/2358/1106 2691/2347/1095 2386/2071/914 +f 2385/2070/913 2702/2358/1106 2386/2071/914 +f 1861/1620/866 1863/1622/866 2689/2345/1093 +f 2701/2357/1105 2690/2346/1094 2691/2347/1095 +f 2700/2356/1104 2694/2350/1098 2693/2349/1097 +f 2381/2066/909 2382/2067/910 2703/2359/1107 +f 2360/2050/894 2188/1913/868 2339/2033/868 +f 2704/2236/897 2705/2064/894 2706/1772/868 +f 2707/2360/875 2708/2361/875 2676/2332/1081 +f 2709/2362/1108 2710/2363/1108 2711/1856/868 +f 2712/1925/1109 2710/2363/1108 2709/2362/1108 +f 2713/2364/1110 2714/2365/1111 2230/1949/875 +f 2715/2366/1112 2714/2365/1111 2713/2364/1110 +f 2716/2367/1113 2715/2366/1112 2717/2368/1114 +f 2662/2321/1071 2718/2369/1115 2719/2370/1116 +f 2663/2322/1072 2662/2321/1071 2720/2371/1117 +f 2682/2338/1087 2721/2372/1118 2722/2373/1084 +f 2388/2073/916 2668/2327/1076 2723/2374/1119 +f 2724/2375/875 2725/2376/1083 2726/2377/1081 +f 2721/2372/1118 2726/2377/1081 2725/2376/1083 +f 2722/2373/1084 2721/2372/1118 2725/2376/1083 +f 2227/1946/866 2672/2331/1078 2671/2330/1078 +f 2230/1949/875 2714/2365/1111 2628/2287/1041 +f 2225/1944/866 2227/1946/866 2671/2330/1078 +f 2236/1955/875 2230/1949/875 2628/2287/1041 +f 2232/1951/868 2388/2073/916 2235/1954/868 +f 2548/2214/994 2727/2378/1004 2443/2124/956 +f 2544/2210/1005 2453/2134/964 2443/2124/956 +f 2591/2258/896 2593/2260/957 2447/2128/958 +f 2558/2223/959 2447/2128/958 2554/2219/1009 +f 2728/1957/1068 2729/1959/1120 2730/2379/1121 +f 2729/1959/1120 2731/1962/1122 2732/2380/1123 +f 2733/1964/1124 2734/1960/1125 2735/2381/1126 +f 2731/1962/1122 2736/1963/1062 2737/2382/1063 +f 2736/1963/1062 2738/1965/1060 2739/2383/1059 +f 2740/1967/1051 2733/1964/1124 2741/2384/1127 +f 2738/1965/1060 2742/1966/1128 2743/2385/1057 +f 2742/1966/1128 2744/1968/1056 2745/2386/1055 +f 2746/1969/1129 2740/1967/1051 2747/2387/1052 +f 2744/1968/1056 2746/1969/1129 2748/2388/1130 +f 2749/1971/1037 2750/1973/1035 2751/2389/1038 +f 2752/1972/1032 2753/1970/1033 2754/2390/1131 +f 2755/1961/1039 2749/1971/1037 2756/2391/1040 +f 2734/1960/1125 2755/1961/1039 2757/2392/1132 +f 2753/1970/1033 2728/1957/1068 2758/2393/1069 +f 2750/1973/1035 2752/1972/1032 2759/2394/1036 +f 2760/2395/1133 2761/2396/1134 2762/2397/1135 +f 2763/2398/1136 2764/2399/1137 2765/2400/1138 +f 2766/2401/1139 2767/2402/1140 2768/1980/876 +f 2769/2403/872 2770/2404/872 2761/2396/1134 +f 2764/2399/1137 2763/2398/1136 2767/2402/1140 +f 1822/1581/875 2351/2041/887 2088/1827/875 +f 2397/2078/921 2353/2043/889 2355/2045/890 +f 2426/2109/943 2356/2046/891 1880/1639/867 +f 2771/2405/868 2357/2047/892 2359/2049/868 +f 2772/2406/1141 2360/2050/894 2362/2052/895 +f 2773/1791/868 2363/1784/868 2365/2018/897 +f 1819/1578/866 2367/2002/899 1820/1579/866 +f 2689/2345/1093 2369/2054/901 2353/2043/889 +f 1845/1604/872 2377/2062/872 2376/2061/905 +f 2774/2069/1142 1848/1607/868 1850/1609/868 +f 2775/2407/1143 2379/2064/907 2381/2066/909 +f 2703/2359/1107 2382/2067/910 2384/2069/912 +f 2776/2408/917 2390/2075/917 2392/1857/866 +f 2776/2408/917 2393/1986/918 2390/2075/917 +f 2406/2087/929 2401/2082/919 2403/2084/926 +f 2403/2084/926 2404/2085/927 2406/2087/929 +f 2414/2154/933 2400/2081/924 2411/2092/866 +f 1878/1637/868 2415/2097/934 1876/1635/868 +f 2584/2251/1020 2427/2110/944 2054/1800/867 +f 2777/1801/868 2429/1797/868 2431/1802/946 +f 2434/2114/876 2435/2115/949 2432/2112/947 +f 2438/2118/952 2442/2123/933 2436/2116/950 +f 2433/2113/948 2432/2112/947 2449/2130/960 +f 2446/2127/896 2450/2131/961 2447/2128/958 +f 2501/2178/992 2451/2132/962 2453/2134/964 +f 2521/2192/923 2454/2135/938 2456/2137/966 +f 2778/2409/1144 2457/2138/967 2459/2140/969 +f 2779/2410/866 2460/2141/866 2462/2143/899 +f 2457/2411/967 2463/2144/970 2458/2146/968 +f 2370/2055/902 2375/2060/904 2466/2148/972 +f 2523/2194/1001 2467/2149/973 2469/2151/975 +f 2780/1693/1145 2473/2015/941 2475/1671/876 +f 2781/2412/876 2476/2156/976 2478/2158/876 +f 2410/2091/902 2400/2081/924 2480/2160/972 +f 2782/1694/1146 2481/1997/866 2483/1701/978 +f 2487/2164/982 2484/2161/979 2486/2163/981 +f 2476/2156/976 2487/2164/982 2477/2157/977 +f 2528/2200/888 2488/2165/875 2490/2167/983 +f 2497/2174/989 2494/2171/987 2493/2170/986 +f 2471/2153/876 2495/2172/876 2452/2133/963 +f 2534/2203/1003 2494/2171/987 2498/2175/990 +f 2542/2208/1004 2462/2143/899 2503/2180/994 +f 2442/2123/933 2504/2181/995 2506/2183/994 +f 2783/1727/1147 2507/1732/958 2509/2001/964 +f 2784/2413/866 2510/2184/997 2512/2186/866 +f 2785/2414/866 2513/2187/996 2515/2189/866 +f 2786/1683/1146 2516/1682/866 2518/1994/978 +f 2463/2144/970 2521/2192/923 2464/2145/971 +f 2565/2230/1000 2522/2193/1000 2523/2194/1001 +f 2469/2151/975 2468/2150/974 2525/2196/866 +f 2472/2155/970 2526/2197/967 2400/2081/924 +f 2490/2167/983 2485/2162/980 2528/2200/888 +f 2787/1669/1148 2529/1668/866 2531/1675/978 +f 2498/2175/990 2532/2201/867 2534/2203/1003 +f 1941/1699/867 2499/2176/944 1955/1710/867 +f 2788/1707/1146 2536/1999/866 2538/2000/978 +f 2789/2415/866 2539/2205/866 2541/2207/899 +f 2506/2183/994 2542/2208/1004 2443/2124/956 +f 2545/2211/1006 2373/2058/903 2453/2134/964 +f 2543/2209/1004 2511/2185/998 2544/2210/1005 +f 2727/2378/1004 2546/2212/994 2443/2124/956 +f 2727/2378/1004 2514/2188/999 2546/2212/994 +f 2547/2213/1004 2541/2207/899 2548/2214/994 +f 2790/1573/1149 2549/2215/906 2551/1569/1007 +f 2496/2173/988 2552/2217/942 2554/2219/1009 +f 1830/1589/868 1799/1561/868 2556/2221/1010 +f 2553/2218/1008 2559/2224/893 2554/2219/1009 +f 2791/2416/868 2561/2226/893 2563/2228/868 +f 2792/2417/1150 2556/2221/1010 2564/2229/1011 +f 2594/2261/1022 2522/2193/1000 2566/2231/1012 +f 2600/2264/1024 2419/2418/937 2456/2137/966 +f 2383/2068/911 2568/2235/1013 2384/2069/912 +f 2793/2419/875 2380/2065/908 2570/2236/875 +f 2579/2246/977 2571/2237/976 2573/2239/876 +f 2794/2420/1151 2418/2100/936 2574/2241/1015 +f 2268/1985/868 2575/2242/868 2366/2053/898 +f 2350/2040/886 2349/2039/885 2578/2245/1017 +f 2578/2245/1017 2577/2244/1016 2579/2246/977 +f 2585/2252/1021 2580/2247/959 2557/2222/896 +f 2366/2053/898 2576/2243/959 2583/2250/896 +f 2562/2227/893 2561/2226/893 2446/2127/896 +f 2358/2048/893 2357/2047/892 2448/2129/959 +f 2580/2247/959 2585/2252/1021 2587/2254/868 +f 2592/2259/959 2588/2255/1021 2590/2257/868 +f 2588/2255/1021 2592/2259/959 2591/2258/896 +f 2795/2421/868 2594/2261/1022 2595/2262/868 +f 2459/2140/969 2458/2139/968 2418/2100/936 +f 2796/1819/868 2596/1810/868 2598/1820/893 +f 2455/2136/965 2599/2263/1023 2456/2137/966 +f 2797/1754/868 2602/2008/959 2604/1764/868 +f 2593/2260/957 2583/2250/896 2447/2128/958 +f 2351/2041/887 2350/2040/886 2352/2042/888 +f 2798/1844/1028 2428/2111/945 2608/1845/1028 +f 2799/1830/872 2609/2269/1029 2611/1831/872 +f 2800/2422/889 2612/2271/889 2614/2273/872 +f 2800/2422/889 2440/2120/954 2612/2271/889 +f 2801/2423/876 2599/2263/1023 2454/2135/938 +f 2408/2089/931 2396/2077/920 2409/2090/932 +f 2396/2077/920 2408/2089/931 2618/2277/868 +f 2623/2282/1036 2619/2278/1032 2621/2280/1034 +f 2625/2284/1038 2622/2281/1035 2623/2282/1036 +f 2627/2286/1040 2624/2283/1037 2625/2284/1038 +f 2630/2289/1043 2626/2285/1039 2627/2286/1040 +f 2626/2285/1039 2630/2289/1043 2632/2291/1045 +f 2631/2290/1044 2633/2292/1046 2632/2291/1045 +f 2628/2287/1041 2635/2294/1047 2629/2288/1042 +f 2635/2294/1047 2637/2296/1049 2636/2295/1048 +f 2640/2299/1052 2639/2298/1051 2633/2292/1046 +f 2639/2298/1051 2640/2299/1052 2642/2301/1054 +f 2642/2301/1054 2641/2300/1053 2644/2303/1056 +f 2644/2303/1056 2643/2302/1055 2646/2305/1058 +f 2646/2305/1058 2645/2304/1057 2648/2307/1060 +f 2648/2307/1060 2647/2306/1059 2650/2309/1062 +f 2802/2424/1152 2651/2310/1063 2653/2312/1065 +f 2652/2311/1064 2654/2313/1066 2653/2312/1065 +f 2803/2425/1153 2656/2315/1067 2658/2317/1050 +f 2660/2319/1069 2659/2318/1068 2654/2313/1066 +f 2621/2280/1034 2620/2279/1033 2660/2319/1069 +f 2656/2315/1067 2662/2321/1071 2661/2320/1070 +f 2663/2322/1072 2664/2323/1073 2661/2320/1070 +f 2664/2323/1073 2666/2325/1075 2665/2324/1074 +f 2723/2374/1119 2668/2327/1076 2670/2329/1077 +f 2669/2328/1077 2671/2330/1078 2670/2329/1077 +f 2804/1934/876 2673/2036/1079 2675/1922/876 +f 2677/2333/1082 2679/2335/1084 2678/2334/1083 +f 2721/2372/1118 2682/2338/1087 2677/2333/1082 +f 2682/2338/1087 2683/2339/1088 2681/2337/1086 +f 2688/2344/1092 2685/2341/1090 2687/2343/1091 +f 2683/2339/1088 2688/2344/1092 2684/2340/1089 +f 2775/2407/1143 2381/2066/909 2703/2359/1107 +f 2361/2051/894 2360/2050/894 2339/2033/868 +f 2805/2013/896 2704/2236/897 2706/1772/868 +f 2678/2334/1083 2707/2360/875 2676/2332/1081 +f 2806/2030/868 2709/2362/1108 2711/1856/868 +f 2807/1926/1109 2712/1925/1109 2709/2362/1108 +f 2717/2368/1114 2715/2366/1112 2713/2364/1110 +f 2808/2426/1116 2716/2367/1113 2717/2368/1114 +f 2720/2371/1117 2662/2321/1071 2719/2370/1116 +f 2389/2074/916 2388/2073/916 2723/2374/1119 +f 2809/2427/875 2724/2375/875 2726/2377/1081 +f 2810/2428/1085 2722/2373/1084 2725/2376/1083 +f 2758/2393/1069 2728/1957/1068 2730/2379/1121 +f 2730/2379/1121 2729/1959/1120 2732/2380/1123 +f 2741/2384/1127 2733/1964/1124 2735/2381/1126 +f 2732/2380/1123 2731/1962/1122 2737/2382/1063 +f 2737/2382/1063 2736/1963/1062 2739/2383/1059 +f 2747/2387/1052 2740/1967/1051 2741/2384/1127 +f 2739/2383/1059 2738/1965/1060 2743/2385/1057 +f 2743/2385/1057 2742/1966/1128 2745/2386/1055 +f 2748/2388/1130 2746/1969/1129 2747/2387/1052 +f 2745/2386/1055 2744/1968/1056 2748/2388/1130 +f 2756/2391/1040 2749/1971/1037 2751/2389/1038 +f 2759/2394/1036 2752/1972/1032 2754/2390/1131 +f 2757/2392/1132 2755/1961/1039 2756/2391/1040 +f 2735/2381/1126 2734/1960/1125 2757/2392/1132 +f 2754/2390/1131 2753/1970/1033 2758/2393/1069 +f 2751/2389/1038 2750/1973/1035 2759/2394/1036 +f 2765/2400/1138 2760/2395/1133 2762/2397/1135 +f 2762/2397/1135 2763/2398/1136 2765/2400/1138 +f 2811/1979/876 2766/2401/1139 2768/1980/876 +f 2760/2395/1133 2769/2403/872 2761/2396/1134 +f 2766/2401/1139 2764/2399/1137 2767/2402/1140 +o trigger_pistol_0 +v 0.255916 1.582615 6.859656 +v 0.255916 1.449703 6.660409 +v 0.255916 1.810704 6.457509 +v 0.255916 2.466018 6.344805 +v 0.255916 1.892926 6.633237 +v 0.577175 1.435799 6.186546 +v 0.577175 1.810704 6.457509 +v 0.577175 1.449703 6.660409 +v 0.577175 3.484048 5.722968 +v 0.577175 3.243770 6.479858 +v 0.577175 2.895700 6.381779 +v 0.577175 1.924940 5.885275 +v 0.577175 2.439333 5.691723 +v 0.577175 2.466018 6.344805 +v 0.577175 3.484048 5.722968 +v 0.401255 3.484048 5.722968 +v 0.401255 3.243770 6.479858 +v 0.401255 3.588840 6.684443 +v 0.401255 3.243770 6.479858 +v 0.401255 3.484048 5.722968 +v 0.401255 4.331120 5.796535 +v 0.401255 4.331120 7.553139 +v 0.401255 3.911054 6.978125 +v 0.401255 4.776393 4.607953 +v 0.401255 5.500355 4.607955 +v 0.401255 5.500353 7.553141 +v -0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v 0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v 0.401255 5.500355 4.607955 +v 0.401255 4.776393 4.607953 +v 0.577175 2.851677 5.639833 +v -0.577175 3.484048 5.722968 +v -0.577175 3.243770 6.479858 +v -0.401255 3.243770 6.479858 +v -0.255916 1.582615 6.859656 +v -0.255916 1.892926 6.633237 +v -0.255916 1.810704 6.457509 +v -0.401255 3.243770 6.479858 +v -0.401255 3.588840 6.684443 +v -0.401255 3.484048 5.722968 +v -0.401255 4.331120 7.553139 +v -0.401255 4.331120 5.796535 +v -0.401255 3.911054 6.978125 +v -0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v -0.401255 5.500353 7.553141 +v -0.255916 2.466018 6.344805 +v -0.577175 2.466018 6.344805 +v -0.577175 2.895700 6.381779 +v -0.577175 2.851677 5.639833 +v -0.577175 1.810704 6.457509 +v -0.577175 1.435799 6.186546 +v -0.577175 1.449703 6.660409 +v -0.577175 3.484048 5.722968 +v -0.577175 1.924940 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 3.243770 6.479858 +v 0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v -0.401255 3.484048 5.722968 +v -0.255916 1.449703 6.660409 +v -0.577175 3.243770 6.479858 +v -0.255916 1.892926 6.633237 +v 0.255916 1.892926 6.633237 +v 0.255916 2.466018 6.344805 +v 0.577175 2.895700 6.381779 +v 0.577175 3.243770 6.479858 +v 0.401255 3.243770 6.479858 +v -0.401255 3.243770 6.479858 +v -0.577175 2.895700 6.381779 +v -0.136434 1.170199 7.267153 +v 0.136434 1.170199 7.267153 +v 0.255916 1.274902 7.159120 +v -0.255916 1.274902 7.159120 +v 0.255916 1.582615 6.859656 +v -0.255916 1.582615 6.859656 +v -0.136434 1.170199 7.267153 +v -0.140214 0.908800 7.158844 +v 0.140214 0.908800 7.158844 +v 0.255916 1.049089 7.041913 +v 0.255916 1.274902 7.159120 +v 0.136434 1.170199 7.267153 +v 0.255916 2.466018 6.344805 +v 0.577175 2.466018 6.344805 +v 0.577175 1.049089 7.041913 +v 0.255916 1.049089 7.041913 +v 0.140214 0.908800 7.158844 +v -0.140214 0.908800 7.158844 +v -0.238265 0.780517 7.270253 +v 0.238265 0.780517 7.270253 +v 0.577175 1.810704 6.457509 +v 0.255916 1.810704 6.457509 +v 0.255916 1.449703 6.660409 +v 0.577175 1.449703 6.660409 +v -0.242153 0.574700 7.190140 +v 0.242153 0.574700 7.190140 +v 0.238265 0.780517 7.270253 +v 0.557295 0.748790 6.906375 +v 0.577175 1.049089 7.041913 +v 0.577175 1.022907 6.562050 +v -0.255916 2.466018 6.344805 +v -0.401255 4.331120 5.796535 +v 0.401255 4.331120 5.796535 +v 0.401255 3.484048 5.722968 +v 0.401255 3.588840 6.684443 +v -0.401255 3.588840 6.684443 +v 0.401255 3.911054 6.978125 +v 0.401255 4.331120 7.553139 +v -0.401255 4.331120 7.553139 +v -0.401255 3.911054 6.978125 +v 0.401255 5.500353 7.553141 +v -0.401255 5.500353 7.553141 +v 0.577175 2.851677 5.639833 +v 0.577175 3.484048 5.722968 +v -0.577175 2.851677 5.639833 +v -0.401255 3.484048 5.722968 +v 0.577175 1.022907 6.562050 +v -0.577175 1.022907 6.562050 +v -0.577175 1.435799 6.186546 +v 0.577175 1.435799 6.186546 +v -0.577175 1.924940 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 2.439333 5.691723 +v 0.577175 1.924940 5.885275 +v 0.242153 0.574700 7.190140 +v -0.242153 0.574700 7.190140 +v -0.557295 0.748790 6.906375 +v 0.557295 0.748790 6.906375 +v -0.577175 3.243770 6.479858 +v -0.255916 1.049089 7.041913 +v -0.577175 2.466018 6.344805 +v -0.255916 1.274902 7.159120 +v -0.577175 1.049089 7.041913 +v -0.577175 3.484048 5.722968 +v -0.577175 1.810704 6.457509 +v -0.577175 1.449703 6.660409 +v -0.255916 1.449703 6.660409 +v -0.255916 1.810704 6.457509 +v -0.255916 1.049089 7.041913 +v -0.557295 0.748790 6.906375 +v -0.238265 0.780517 7.270253 +v -0.577175 1.022907 6.562050 +v -0.577175 1.049089 7.041913 +v -0.255916 2.466018 6.344805 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.9531 0.3026 +vn -0.0000 -0.9364 -0.3508 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.4977 0.8674 +vn -0.0000 0.5444 0.8388 +vn -0.0000 0.1395 0.9902 +vn -0.0000 -0.1979 0.9802 +vn -0.0000 -0.2712 0.9625 +vn -0.0000 -0.3535 0.9354 +vn -0.0000 -0.3697 0.9291 +vn -0.0000 -0.1606 0.9870 +vn -0.0000 0.7181 0.6960 +vn -0.0000 0.7113 0.7029 +vn -0.0000 0.7044 0.7098 +vn -0.0000 0.6629 0.7487 +vn -0.0000 0.6268 0.7792 +vn -0.4404 -0.3550 0.8247 +vn -0.4552 -0.3352 0.8249 +vn 0.2991 -0.3616 0.8831 +vn 0.9038 -0.1780 0.3893 +vn 0.9745 -0.1034 0.1993 +vn 0.5796 -0.3268 0.7465 +vn 0.0001 0.1395 0.9902 +vn -0.0000 0.0850 0.9964 +vn -0.0023 0.6611 0.7503 +vn -0.0000 0.6735 0.7392 +vn -0.0023 0.6496 0.7603 +vn 0.0017 0.6512 0.7589 +vn 0.0038 0.6541 0.7564 +vn -0.0023 0.6547 0.7559 +vn -0.0000 0.3882 0.9216 +vn -0.0000 0.2799 0.9600 +vn -0.0000 0.5604 0.8282 +vn -0.0000 0.6274 0.7787 +vn -0.2580 -0.3462 0.9020 +vn 0.3908 -0.3275 0.8603 +vn 0.3829 -0.3520 0.8541 +vn 0.8580 -0.2283 0.4601 +vn 0.9627 -0.1436 0.2294 +vn 0.9997 -0.0226 0.0012 +vn -0.0000 0.1148 0.9934 +vn -0.0000 0.0865 -0.9963 +vn -0.0000 0.1129 -0.9936 +vn -0.0000 -0.5671 0.8236 +vn -0.0000 -0.6219 0.7831 +vn -0.0000 -0.7215 0.6924 +vn -0.0001 -0.5953 0.8035 +vn 0.0001 -0.2977 0.9547 +vn -0.0000 -0.7663 0.6425 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0456 -0.9990 +vn -0.0000 0.1303 -0.9915 +vn -0.0000 0.0285 -0.9996 +vn -0.0000 0.1158 -0.9933 +vn -0.0000 -0.7114 -0.7028 +vn -0.0000 -0.7480 -0.6637 +vn -0.0000 -0.6258 -0.7800 +vn -0.0000 -0.5761 -0.8174 +vn -0.0000 -0.4689 -0.8832 +vn -0.0000 -0.2781 -0.9606 +vn -0.0000 -0.2019 -0.9794 +vn -0.0000 -0.4113 -0.9115 +vn -0.0000 -0.8524 -0.5229 +vn -0.0000 -0.8304 -0.5572 +vn -0.0000 -0.8071 -0.5904 +vn -0.9038 -0.1780 0.3893 +vn -0.9745 -0.1034 0.1993 +vn 0.0023 0.6611 0.7503 +vn -0.8580 -0.2283 0.4601 +vn -0.5059 -0.3351 0.7948 +vn -0.9997 -0.0226 0.0012 +vn -0.9627 -0.1436 0.2294 +vn -0.0000 0.1149 0.9934 +vt 0.482997 0.972676 +vt 0.483169 0.972693 +vt 0.483177 0.972380 +vt 0.483034 0.971858 +vt 0.483023 0.972386 +vt 0.471310 0.981774 +vt 0.471246 0.981454 +vt 0.471009 0.981626 +vt 0.472210 0.980596 +vt 0.471654 0.980527 +vt 0.471614 0.980779 +vt 0.471647 0.981549 +vt 0.471923 0.981275 +vt 0.471511 0.981066 +vt 0.472225 0.980472 +vt 0.471669 0.980404 +vt 0.471639 0.980122 +vt 0.472428 0.979907 +vt 0.471300 0.979390 +vt 0.471545 0.979829 +vt 0.473322 0.979971 +vt 0.473535 0.979507 +vt 0.471644 0.978639 +vt 0.480249 0.946278 +vt 0.480249 0.945382 +vt 0.480816 0.945382 +vt 0.480249 0.944870 +vt 0.480816 0.944870 +vt 0.472077 0.981026 +vt 0.468113 0.980573 +vt 0.468670 0.980511 +vt 0.468657 0.980387 +vt 0.482644 0.972678 +vt 0.482622 0.972386 +vt 0.482468 0.972377 +vt 0.468690 0.980106 +vt 0.468100 0.980449 +vt 0.469037 0.979378 +vt 0.467904 0.979882 +vt 0.468786 0.979814 +vt 0.467009 0.979936 +vt 0.466802 0.979469 +vt 0.468701 0.978624 +vt 0.482618 0.971864 +vt 0.468807 0.981051 +vt 0.468707 0.980763 +vt 0.468241 0.981005 +vt 0.469067 0.981441 +vt 0.469000 0.981761 +vt 0.469302 0.981616 +vt 0.468666 0.981532 +vt 0.468393 0.981256 +vt 0.480816 0.946278 +vt 0.482469 0.972694 +vt 0.480078 0.973332 +vt 0.480077 0.973077 +vt 0.479953 0.973077 +vt 0.479387 0.973079 +vt 0.479263 0.973334 +vt 0.482753 0.972998 +vt 0.482894 0.972996 +vt 0.482958 0.972932 +vt 0.482686 0.972938 +vt 0.482726 0.973162 +vt 0.482929 0.973155 +vt 0.483051 0.973046 +vt 0.479852 0.973637 +vt 0.480079 0.973637 +vt 0.480081 0.974789 +vt 0.479855 0.974790 +vt 0.479773 0.974919 +vt 0.479575 0.974919 +vt 0.479506 0.975040 +vt 0.479843 0.975039 +vt 0.480080 0.974106 +vt 0.479853 0.974107 +vt 0.479854 0.974399 +vt 0.480081 0.974399 +vt 0.469982 0.982043 +vt 0.470324 0.982045 +vt 0.470322 0.981889 +vt 0.470645 0.982004 +vt 0.470647 0.981771 +vt 0.470947 0.981928 +vt 0.479491 0.973638 +vt 0.480816 0.946878 +vt 0.479953 0.972794 +vt 0.479386 0.972795 +vt 0.479952 0.972486 +vt 0.479951 0.971983 +vt 0.479384 0.971985 +vt 0.479385 0.972488 +vt 0.479949 0.971158 +vt 0.479382 0.971159 +vt 0.480940 0.947328 +vt 0.480940 0.946878 +vt 0.480125 0.947328 +vt 0.480249 0.946878 +vt 0.480940 0.948810 +vt 0.480125 0.948810 +vt 0.480125 0.948416 +vt 0.480940 0.948415 +vt 0.480125 0.948010 +vt 0.480125 0.947622 +vt 0.480940 0.947622 +vt 0.480940 0.948010 +vt 0.480704 0.949355 +vt 0.480362 0.949355 +vt 0.480139 0.949120 +vt 0.480926 0.949120 +vt 0.479262 0.973079 +vt 0.482592 0.973062 +vt 0.479264 0.973639 +vt 0.479266 0.974791 +vt 0.480125 0.946878 +vt 0.479265 0.974108 +vt 0.479265 0.974401 +vt 0.479492 0.974400 +vt 0.479492 0.974108 +vt 0.479493 0.974791 +vt 0.469662 0.981998 +vt 0.469986 0.981887 +vt 0.469361 0.981919 +vt 0.469663 0.981765 +s 0 +f 2812/2429/1154 2813/2430/1154 2814/2431/1154 +f 2814/2431/1154 2815/2432/1154 2816/2433/1154 +f 2817/2434/1154 2818/2435/1154 2819/2436/1154 +f 2820/2437/1154 2821/2438/1154 2822/2439/1154 +f 2817/2434/1154 2823/2440/1154 2818/2435/1154 +f 2824/2441/1154 2825/2442/1154 2818/2435/1154 +f 2826/2437/1155 2827/2443/1155 2828/2444/1155 +f 2829/2445/1154 2830/2444/1154 2831/2443/1154 +f 2832/2446/1154 2833/2447/1154 2834/2448/1154 +f 2829/2445/1154 2831/2443/1154 2832/2446/1154 +f 2832/2446/1154 2835/2449/1154 2836/2450/1154 +f 2837/2451/1154 2833/2447/1154 2832/2446/1154 +f 2838/2452/1156 2839/2453/1156 2840/2454/1156 +f 2841/2455/1157 2842/2456/1157 2843/2454/1157 +f 2825/2442/1154 2824/2441/1154 2844/2457/1154 +f 2845/2458/1155 2846/2459/1155 2847/2460/1155 +f 2848/2461/1158 2849/2462/1158 2850/2463/1158 +f 2851/2460/1158 2852/2464/1158 2853/2465/1158 +f 2854/2466/1158 2855/2467/1158 2856/2468/1158 +f 2852/2464/1158 2856/2468/1158 2855/2467/1158 +f 2857/2469/1158 2855/2467/1158 2858/2470/1158 +f 2859/2471/1158 2858/2470/1158 2855/2467/1158 +f 2860/2472/1158 2850/2463/1158 2849/2462/1158 +f 2861/2473/1158 2862/2474/1158 2863/2475/1158 +f 2864/2476/1158 2865/2477/1158 2866/2478/1158 +f 2867/2458/1158 2863/2475/1158 2862/2474/1158 +f 2868/2479/1158 2865/2477/1158 2864/2476/1158 +f 2869/2480/1158 2868/2479/1158 2864/2476/1158 +f 2816/2433/1154 2812/2429/1154 2814/2431/1154 +f 2844/2457/1154 2820/2437/1154 2822/2439/1154 +f 2823/2440/1154 2824/2441/1154 2818/2435/1154 +f 2870/2438/1155 2826/2437/1155 2828/2444/1155 +f 2834/2448/1154 2829/2445/1154 2832/2446/1154 +f 2836/2450/1154 2837/2451/1154 2832/2446/1154 +f 2871/2481/1156 2838/2452/1156 2840/2454/1156 +f 2872/2453/1157 2841/2455/1157 2843/2454/1157 +f 2822/2439/1154 2825/2442/1154 2844/2457/1154 +f 2873/2465/1155 2845/2458/1155 2847/2460/1155 +f 2874/2482/1158 2848/2461/1158 2850/2463/1158 +f 2853/2465/1158 2852/2464/1158 2855/2467/1158 +f 2854/2466/1158 2859/2471/1158 2855/2467/1158 +f 2869/2480/1158 2861/2473/1158 2863/2475/1158 +f 2875/2459/1158 2867/2458/1158 2862/2474/1158 +f 2861/2473/1158 2869/2480/1158 2864/2476/1158 +s 1 +f 2876/2462/1159 2877/2433/1160 2878/2432/1161 +f 2879/2483/1162 2880/2484/1163 2881/2485/1164 +f 2882/2486/1165 2883/2487/1166 2879/2483/1162 +f 2884/2488/1167 2885/2489/1167 2886/2490/1168 +f 2887/2491/1169 2886/2490/1168 2888/2429/1170 +f 2877/2433/1160 2876/2462/1159 2889/2461/1171 +f 2890/2488/1172 2891/2492/1173 2892/2493/1174 +f 2893/2494/1175 2894/2490/1176 2895/2489/1177 +f 2896/2495/1178 2897/2496/1179 2879/2483/1162 +f 2813/2430/1154 2812/2429/1154 2894/2490/1176 +f 2898/2497/1180 2899/2498/1181 2900/2499/1182 +f 2901/2500/1183 2902/2501/1184 2903/2502/1185 +f 2904/2503/1186 2905/2504/1187 2906/2505/1188 +f 2897/2496/1179 2896/2495/1178 2905/2504/1187 +f 2899/2498/1181 2898/2497/1180 2907/2506/1189 +f 2908/2507/1190 2909/2508/1191 2910/2509/1192 +f 2911/2510/1193 2912/2511/1194 2910/2509/1192 +f 2913/2512/1195 2819/2436/1154 2912/2511/1194 +f 2913/2512/1195 2817/2434/1154 2819/2436/1154 +f 2883/2487/1166 2914/2513/1196 2896/2495/1178 +f 2915/2452/1197 2916/2481/1197 2917/2514/1198 +f 2918/2515/1199 2919/2516/1200 2882/2486/1165 +f 2919/2516/1200 2918/2515/1199 2920/2517/1201 +f 2921/2518/1202 2922/2519/1203 2923/2520/1204 +f 2924/2521/1205 2925/2522/1205 2922/2519/1203 +f 2926/2523/1206 2917/2514/1198 2927/2524/1207 +f 2928/2525/1208 2929/2526/1209 2917/2514/1198 +f 2930/2527/1210 2931/2528/1211 2932/2529/1212 +f 2933/2530/1213 2932/2529/1212 2934/2531/1214 +f 2935/2532/1215 2936/2533/1216 2937/2534/1217 +f 2928/2525/1208 2926/2523/1206 2936/2533/1216 +f 2938/2535/1218 2939/2536/1218 2940/2537/1219 +f 2931/2528/1211 2930/2527/1210 2941/2538/1220 +f 2942/2539/1163 2883/2487/1166 2882/2486/1165 +f 2943/2540/1221 2891/2492/1173 2890/2488/1172 +f 2944/2541/1179 2914/2513/1196 2883/2487/1166 +f 2874/2482/1158 2943/2540/1221 2945/2491/1222 +f 2946/2542/1223 2902/2501/1184 2901/2500/1183 +f 2929/2526/1209 2928/2525/1208 2947/2543/1207 +f 2948/2544/1186 2949/2545/1189 2950/2546/1188 +f 2944/2541/1179 2948/2544/1186 2951/2547/1187 +f 2952/2548/1181 2950/2546/1188 2949/2545/1189 +f 2953/2549/1224 2908/2507/1190 2954/2550/1225 +f 2955/2551/1226 2953/2549/1224 2956/2552/1227 +f 2865/2477/1158 2955/2551/1226 2866/2478/1158 +f 2957/2472/1228 2876/2462/1159 2878/2432/1161 +f 2881/2485/1164 2882/2486/1165 2879/2483/1162 +f 2887/2491/1169 2884/2488/1167 2886/2490/1168 +f 2889/2461/1171 2887/2491/1169 2888/2429/1170 +f 2888/2429/1170 2877/2433/1160 2889/2461/1171 +f 2895/2489/1177 2890/2488/1172 2892/2493/1174 +f 2892/2493/1174 2893/2494/1175 2895/2489/1177 +f 2893/2494/1175 2813/2430/1154 2894/2490/1176 +f 2903/2502/1185 2898/2497/1180 2900/2499/1182 +f 2900/2499/1182 2901/2500/1183 2903/2502/1185 +f 2907/2506/1189 2904/2503/1186 2906/2505/1188 +f 2904/2503/1186 2897/2496/1179 2905/2504/1187 +f 2906/2505/1188 2899/2498/1181 2907/2506/1189 +f 2954/2550/1225 2908/2507/1190 2910/2509/1192 +f 2909/2508/1191 2911/2510/1193 2910/2509/1192 +f 2911/2510/1193 2913/2512/1195 2912/2511/1194 +f 2879/2483/1162 2883/2487/1166 2896/2495/1178 +f 2929/2526/1209 2915/2452/1197 2917/2514/1198 +f 2881/2485/1164 2918/2515/1199 2882/2486/1165 +f 2923/2520/1204 2919/2516/1200 2920/2517/1201 +f 2920/2517/1201 2921/2518/1202 2923/2520/1204 +f 2921/2518/1202 2924/2521/1205 2922/2519/1203 +f 2926/2523/1206 2928/2525/1208 2917/2514/1198 +f 2933/2530/1213 2930/2527/1210 2932/2529/1212 +f 2937/2534/1217 2933/2530/1213 2934/2531/1214 +f 2934/2531/1214 2935/2532/1215 2937/2534/1217 +f 2935/2532/1215 2928/2525/1208 2936/2533/1216 +f 2941/2538/1220 2938/2535/1218 2940/2537/1219 +f 2940/2537/1219 2931/2528/1211 2941/2538/1220 +f 2945/2491/1222 2943/2540/1221 2890/2488/1172 +f 2848/2461/1158 2874/2482/1158 2945/2491/1222 +f 2952/2548/1181 2946/2542/1223 2901/2500/1183 +f 2951/2547/1187 2948/2544/1186 2950/2546/1188 +f 2914/2513/1196 2944/2541/1179 2951/2547/1187 +f 2946/2542/1223 2952/2548/1181 2949/2545/1189 +f 2956/2552/1227 2953/2549/1224 2954/2550/1225 +f 2866/2478/1158 2955/2551/1226 2956/2552/1227 diff --git a/src/main/resources/assets/hbm/models/weapons/lilmac.obj b/src/main/resources/assets/hbm/models/weapons/lilmac.obj new file mode 100644 index 000000000..1d7d326f6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/lilmac.obj @@ -0,0 +1,8226 @@ +# Blender v2.79 (sub 0) OBJ File: 'lilmac.blend' +# www.blender.org +o Pivot +v 0.000000 0.000000 -0.187500 +v 0.000000 0.132583 -0.132583 +v 0.000000 0.187500 0.000000 +v 0.000000 0.132583 0.132582 +v 0.000000 0.000000 0.187500 +v 0.000000 -0.132583 0.132582 +v 0.000000 -0.187500 0.000000 +v 0.000000 -0.132583 -0.132582 +v -0.812500 0.000000 -0.187500 +v -0.812500 0.132583 -0.132583 +v -0.812500 0.187500 0.000000 +v -0.812500 0.132583 0.132582 +v -0.812500 0.000000 0.187500 +v -0.812500 -0.132583 0.132582 +v -0.812500 -0.187500 0.000000 +v -0.812500 -0.132583 -0.132582 +v 0.062500 1.750000 -0.187500 +v 0.062500 1.882583 -0.132582 +v 0.062500 1.937500 0.000000 +v 0.062500 1.882583 0.132583 +v 0.062500 1.750000 0.187500 +v 0.062500 1.617417 0.132583 +v 0.062500 1.562500 0.000000 +v 0.062500 1.617417 -0.132582 +v -1.001000 1.750000 -0.187500 +v -1.001000 1.882583 -0.132582 +v -1.001000 1.937500 0.000000 +v -1.001000 1.882583 0.132583 +v -1.001000 1.750000 0.187500 +v -1.001000 1.617417 0.132583 +v -1.001000 1.562500 0.000000 +v -1.001000 1.617417 -0.132582 +v -1.001000 1.750000 -0.125000 +v -1.001000 1.838388 -0.088388 +v -1.001000 1.875000 0.000000 +v -1.001000 1.838388 0.088389 +v -1.001000 1.750000 0.125000 +v -1.001000 1.661612 0.088389 +v -1.001000 1.625000 0.000000 +v -1.001000 1.661612 -0.088388 +v -2.937500 1.838388 -0.088388 +v -2.937500 1.750000 -0.125000 +v -2.937500 1.875000 0.000000 +v -2.937500 1.838388 0.088388 +v -2.937500 1.750000 0.125000 +v -2.937500 1.661612 0.088388 +v -2.937500 1.625000 0.000000 +v -2.937500 1.661612 -0.088388 +v 0.000000 -0.187500 0.000000 +v 0.000000 -0.187500 0.375000 +v 0.000000 1.937500 0.000000 +v 0.000000 1.937500 0.375000 +v -0.750000 -0.187500 0.000000 +v -0.750000 -0.187500 0.375000 +v -1.000000 1.937500 0.000000 +v -1.000000 1.937500 0.375000 +v 0.000000 1.437500 0.375000 +v -1.000000 1.437500 0.375000 +v 0.000000 0.312500 0.375000 +v -0.750000 0.312500 0.375000 +v 0.000000 0.687500 0.375000 +v -0.750000 0.687500 0.375000 +v 0.000000 1.062500 0.375000 +v -1.000000 1.062500 0.375000 +v -0.750000 0.500000 0.250000 +v 0.000000 0.500000 0.250000 +v 0.000000 1.250000 0.250000 +v -1.000000 1.250000 0.250000 +v -1.000000 1.062500 0.000000 +v -0.750000 0.687500 0.000000 +vt 0.244604 0.431737 +vt 0.248147 0.442105 +vt 0.244604 0.452473 +vt 0.241007 0.378947 +vt 0.244604 0.368421 +vt 0.244604 0.378947 +vt 0.241007 0.357895 +vt 0.244604 0.357895 +vt 0.244604 0.347368 +vt 0.241007 0.431579 +vt 0.244604 0.421053 +vt 0.244604 0.431579 +vt 0.241007 0.421053 +vt 0.244604 0.410526 +vt 0.241007 0.400000 +vt 0.244604 0.400000 +vt 0.241007 0.389474 +vt 0.244604 0.389474 +vt 0.179841 0.368286 +vt 0.176305 0.357849 +vt 0.179872 0.347504 +vt 0.420863 0.568421 +vt 0.399281 0.610526 +vt 0.399281 0.568421 +vt 0.392086 0.747368 +vt 0.420863 0.705263 +vt 0.420863 0.747368 +vt 0.352518 0.747368 +vt 0.381295 0.778947 +vt 0.352518 0.778947 +vt 0.420863 0.626316 +vt 0.399281 0.642105 +vt 0.399281 0.626316 +vt 0.352518 0.536842 +vt 0.374101 0.568421 +vt 0.352518 0.568421 +vt 0.392086 0.689474 +vt 0.420863 0.673684 +vt 0.420863 0.689474 +vt 0.420863 0.642105 +vt 0.392086 0.705263 +vt 0.420863 0.610526 +vt 0.345324 0.689474 +vt 0.345324 0.626316 +vt 0.388489 0.689474 +vt 0.381295 0.747368 +vt 0.388489 0.626316 +vt 0.381295 0.642105 +vt 0.381295 0.568421 +vt 0.392086 0.673684 +vt 0.392086 0.642105 +vt 0.381295 0.673684 +vt 0.242099 0.449437 +vt 0.241061 0.442105 +vt 0.242099 0.434774 +vt 0.247110 0.434774 +vt 0.247110 0.449437 +vt 0.241007 0.368421 +vt 0.241007 0.347368 +vt 0.241007 0.410526 +vt 0.177334 0.365210 +vt 0.177356 0.350515 +vt 0.182378 0.350579 +vt 0.183407 0.357940 +vt 0.182356 0.365274 +vt 0.374101 0.536842 +vt 0.341727 0.747368 +vt 0.341727 0.705263 +vt 0.341727 0.673684 +vt 0.341727 0.642105 +vt 0.341727 0.610526 +vt 0.341727 0.568421 +vt 0.392086 0.568421 +vt 0.392086 0.610526 +vt 0.374101 0.642105 +vt 0.248201 0.442105 +vt 0.273381 0.431579 +vt 0.273381 0.442105 +vt 0.248201 0.463158 +vt 0.273381 0.452632 +vt 0.273381 0.463158 +vt 0.248201 0.484211 +vt 0.273381 0.473684 +vt 0.273381 0.484211 +vt 0.248201 0.515789 +vt 0.273381 0.505263 +vt 0.273381 0.515789 +vt 0.248201 0.452632 +vt 0.248201 0.473684 +vt 0.248201 0.494737 +vt 0.273381 0.494737 +vt 0.248201 0.505263 +vt 0.273381 0.421053 +vt 0.273381 0.431579 +vt 0.273381 0.357895 +vt 0.273381 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.389474 +vt 0.273381 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.347368 +vt 0.183453 0.357895 +vt 0.183453 0.378947 +vt 0.183453 0.400000 +vt 0.183453 0.410526 +vt 0.183453 0.347368 +vt 0.183453 0.368421 +vt 0.183453 0.389474 +vt 0.183453 0.421053 +vt 0.248201 0.431579 +vt 0.183453 0.431579 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.5547 0.8321 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.5547 0.8321 +vn 1.0000 0.0000 0.0000 +vn -0.8321 -0.5547 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +s off +f 15/1/1 13/2/1 11/3/1 +f 36/4/1 29/5/1 28/6/1 +f 29/5/1 38/7/1 30/8/1 +f 38/7/1 31/9/1 30/8/1 +f 39/10/1 32/11/1 31/12/1 +f 40/13/1 25/14/1 32/11/1 +f 25/14/1 34/15/1 26/16/1 +f 26/16/1 35/17/1 27/18/1 +f 27/18/1 36/4/1 28/6/1 +f 43/19/1 42/20/1 47/21/1 +f 50/22/2 60/23/2 54/24/2 +f 56/25/2 57/26/2 52/27/2 +f 51/28/3 56/29/3 52/30/3 +f 66/31/4 62/32/4 65/33/4 +f 50/34/5 53/35/5 49/36/5 +f 68/37/6 63/38/6 67/39/6 +f 63/38/2 62/32/2 61/40/2 +f 58/41/4 67/39/4 57/26/4 +f 59/42/6 65/33/6 60/23/6 +f 49/36/7 67/43/7 66/44/7 +f 68/45/1 58/41/1 55/46/1 +f 65/47/1 70/48/1 53/49/1 +f 64/50/8 70/48/8 62/51/8 +f 69/52/9 55/46/9 51/28/9 +f 11/3/1 10/53/1 9/54/1 +f 9/54/1 16/55/1 15/1/1 +f 15/1/1 14/56/1 13/2/1 +f 13/2/1 12/57/1 11/3/1 +f 11/3/1 9/54/1 15/1/1 +f 36/4/1 37/58/1 29/5/1 +f 29/5/1 37/58/1 38/7/1 +f 38/7/1 39/59/1 31/9/1 +f 39/10/1 40/13/1 32/11/1 +f 40/13/1 33/60/1 25/14/1 +f 25/14/1 33/60/1 34/15/1 +f 26/16/1 34/15/1 35/17/1 +f 27/18/1 35/17/1 36/4/1 +f 43/19/1 41/61/1 42/20/1 +f 42/20/1 48/62/1 47/21/1 +f 47/21/1 46/63/1 45/64/1 +f 45/64/1 44/65/1 47/21/1 +f 44/65/1 43/19/1 47/21/1 +f 50/22/2 59/42/2 60/23/2 +f 56/25/2 58/41/2 57/26/2 +f 51/28/3 55/46/3 56/29/3 +f 66/31/4 61/40/4 62/32/4 +f 50/34/5 54/66/5 53/35/5 +f 68/37/6 64/50/6 63/38/6 +f 63/38/2 64/50/2 62/32/2 +f 58/41/4 68/37/4 67/39/4 +f 59/42/6 66/31/6 65/33/6 +f 51/28/7 52/67/7 57/68/7 +f 67/43/7 63/69/7 61/70/7 +f 51/28/7 57/68/7 67/43/7 +f 59/71/7 50/72/7 49/36/7 +f 67/43/7 61/70/7 66/44/7 +f 66/44/7 59/71/7 49/36/7 +f 49/36/7 51/28/7 67/43/7 +f 56/25/1 55/46/1 58/41/1 +f 55/46/1 69/52/1 68/45/1 +f 69/52/1 64/50/1 68/45/1 +f 53/49/1 54/73/1 60/74/1 +f 65/47/1 62/51/1 70/48/1 +f 53/49/1 60/74/1 65/47/1 +f 64/50/8 69/52/8 70/48/8 +f 51/28/9 49/36/9 70/75/9 +f 49/36/9 53/35/9 70/75/9 +f 70/75/9 69/52/9 51/28/9 +s 1 +f 14/76/10 7/77/5 6/78/10 +f 12/79/11 5/80/2 4/81/11 +f 10/82/12 3/83/3 2/84/12 +f 15/85/5 8/86/13 7/87/5 +f 13/88/2 6/78/10 5/80/2 +f 11/89/3 4/81/11 3/83/3 +f 9/90/9 2/84/12 1/91/9 +f 16/92/13 1/91/9 8/86/13 +f 31/12/5 24/93/13 23/94/5 +f 29/5/2 22/95/10 21/96/2 +f 27/18/3 20/97/11 19/98/3 +f 25/14/9 18/99/12 17/100/9 +f 32/11/13 17/100/9 24/93/13 +f 30/8/10 23/101/5 22/95/10 +f 28/6/11 21/96/2 20/97/11 +f 26/16/12 19/98/3 18/99/12 +f 37/58/2 46/102/10 38/7/10 +f 35/17/3 44/103/11 36/4/11 +f 33/60/9 41/104/12 34/15/12 +f 40/13/13 42/105/9 33/60/9 +f 38/7/10 47/106/5 39/59/5 +f 36/4/11 45/107/2 37/58/2 +f 34/15/12 43/108/3 35/17/3 +f 39/10/5 48/109/13 40/13/13 +f 14/76/10 15/110/5 7/77/5 +f 12/79/11 13/88/2 5/80/2 +f 10/82/12 11/89/3 3/83/3 +f 15/85/5 16/92/13 8/86/13 +f 13/88/2 14/76/10 6/78/10 +f 11/89/3 12/79/11 4/81/11 +f 9/90/9 10/82/12 2/84/12 +f 16/92/13 9/90/9 1/91/9 +f 31/12/5 32/11/13 24/93/13 +f 29/5/2 30/8/10 22/95/10 +f 27/18/3 28/6/11 20/97/11 +f 25/14/9 26/16/12 18/99/12 +f 32/11/13 25/14/9 17/100/9 +f 30/8/10 31/9/5 23/101/5 +f 28/6/11 29/5/2 21/96/2 +f 26/16/12 27/18/3 19/98/3 +f 37/58/2 45/107/2 46/102/10 +f 35/17/3 43/108/3 44/103/11 +f 33/60/9 42/105/9 41/104/12 +f 40/13/13 48/109/13 42/105/9 +f 38/7/10 46/102/10 47/106/5 +f 36/4/11 44/103/11 45/107/2 +f 34/15/12 41/104/12 43/108/3 +f 39/10/5 47/111/5 48/109/13 +o Casings +v 2.437500 2.500000 -0.328125 +v 2.437500 2.335938 -0.284164 +v 2.437500 2.215835 -0.164062 +v 2.437500 2.171875 0.000000 +v 2.437500 2.215835 0.164062 +v 2.437500 2.335938 0.284164 +v 2.437500 2.500000 0.328125 +v 2.437500 2.664062 0.284164 +v 2.437500 2.784164 0.164062 +v 2.437500 2.828125 0.000000 +v 2.437500 2.784165 -0.164062 +v 2.437500 2.664063 -0.284164 +v 0.500000 2.500000 -0.328125 +v 0.500000 2.335938 -0.284164 +v 0.500000 2.215835 -0.164062 +v 0.500000 2.171875 0.000000 +v 0.500000 2.215835 0.164062 +v 0.500000 2.335938 0.284164 +v 0.500000 2.500000 0.328125 +v 0.500000 2.664062 0.284164 +v 0.500000 2.784164 0.164062 +v 0.500000 2.828125 0.000000 +v 0.500000 2.784165 -0.164062 +v 0.500000 2.664063 -0.284164 +v 2.437500 2.500000 -0.375000 +v 2.437500 2.312500 -0.324759 +v 2.437500 2.175241 -0.187500 +v 2.437500 2.125000 0.000000 +v 2.437500 2.175241 0.187500 +v 2.437500 2.312500 0.324759 +v 2.437500 2.500000 0.375000 +v 2.437500 2.687500 0.324759 +v 2.437500 2.824759 0.187500 +v 2.437500 2.875000 0.000000 +v 2.437500 2.824759 -0.187500 +v 2.437500 2.687500 -0.324759 +v 2.500000 2.687500 -0.324759 +v 2.500000 2.824759 -0.187500 +v 2.500000 2.875000 0.000000 +v 2.500000 2.824759 0.187500 +v 2.500000 2.687500 0.324759 +v 2.500000 2.500000 0.375000 +v 2.500000 2.312500 0.324759 +v 2.500000 2.175241 0.187500 +v 2.500000 2.125000 0.000000 +v 2.500000 2.175241 -0.187500 +v 2.500000 2.312500 -0.324759 +v 2.500000 2.500000 -0.375000 +v 2.500000 2.593750 -0.162380 +v 2.500000 2.500000 -0.187500 +v 2.500000 2.662380 -0.093750 +v 2.500000 2.687500 0.000000 +v 2.500000 2.662380 0.093750 +v 2.500000 2.593750 0.162380 +v 2.500000 2.500000 0.187500 +v 2.500000 2.406250 0.162380 +v 2.500000 2.337620 0.093750 +v 2.500000 2.312500 0.000000 +v 2.500000 2.337620 -0.093750 +v 2.500000 2.406250 -0.162380 +v 2.437500 2.593750 -0.162380 +v 2.437500 2.500000 -0.187500 +v 2.437500 2.662380 -0.093750 +v 2.437500 2.687500 0.000000 +v 2.437500 2.662380 0.093750 +v 2.437500 2.593750 0.162380 +v 2.437500 2.500000 0.187500 +v 2.437500 2.406250 0.162380 +v 2.437500 2.337620 0.093750 +v 2.437500 2.312500 0.000000 +v 2.437500 2.337620 -0.093750 +v 2.437500 2.406250 -0.162380 +v 2.500000 2.582031 -0.142082 +v 2.500000 2.500000 -0.164062 +v 2.500000 2.642082 -0.082031 +v 2.500000 2.664062 0.000000 +v 2.500000 2.642082 0.082031 +v 2.500000 2.582031 0.142082 +v 2.500000 2.500000 0.164062 +v 2.500000 2.417969 0.142082 +v 2.500000 2.357918 0.082031 +v 2.500000 2.335938 0.000000 +v 2.500000 2.357918 -0.082031 +v 2.500000 2.417969 -0.142082 +v 2.500000 2.500000 0.000000 +v 2.437500 1.000000 0.328125 +v 2.437500 1.164062 0.284164 +v 2.437500 1.284165 0.164062 +v 2.437500 1.328125 0.000000 +v 2.437500 1.284165 -0.164062 +v 2.437500 1.164062 -0.284164 +v 2.437500 1.000000 -0.328125 +v 2.437500 0.835938 -0.284164 +v 2.437500 0.715836 -0.164062 +v 2.437500 0.671875 0.000000 +v 2.437500 0.715835 0.164062 +v 2.437500 0.835937 0.284164 +v 0.500000 1.000000 0.328125 +v 0.500000 1.164062 0.284164 +v 0.500000 1.284165 0.164062 +v 0.500000 1.328125 0.000000 +v 0.500000 1.284165 -0.164062 +v 0.500000 1.164062 -0.284164 +v 0.500000 1.000000 -0.328125 +v 0.500000 0.835938 -0.284164 +v 0.500000 0.715836 -0.164062 +v 0.500000 0.671875 0.000000 +v 0.500000 0.715835 0.164062 +v 0.500000 0.835937 0.284164 +v 2.437500 1.000000 0.375000 +v 2.437500 1.187500 0.324759 +v 2.437500 1.324759 0.187500 +v 2.437500 1.375000 0.000000 +v 2.437500 1.324759 -0.187500 +v 2.437500 1.187500 -0.324759 +v 2.437500 1.000000 -0.375000 +v 2.437500 0.812500 -0.324759 +v 2.437500 0.675241 -0.187500 +v 2.437500 0.625000 0.000000 +v 2.437500 0.675241 0.187500 +v 2.437500 0.812500 0.324759 +v 2.500000 0.812500 0.324759 +v 2.500000 0.675241 0.187500 +v 2.500000 0.625000 0.000000 +v 2.500000 0.675241 -0.187500 +v 2.500000 0.812500 -0.324759 +v 2.500000 1.000000 -0.375000 +v 2.500000 1.187500 -0.324759 +v 2.500000 1.324759 -0.187500 +v 2.500000 1.375000 0.000000 +v 2.500000 1.324759 0.187500 +v 2.500000 1.187500 0.324759 +v 2.500000 1.000000 0.375000 +v 2.500000 0.906250 0.162380 +v 2.500000 1.000000 0.187500 +v 2.500000 0.837620 0.093750 +v 2.500000 0.812500 0.000000 +v 2.500000 0.837620 -0.093750 +v 2.500000 0.906250 -0.162380 +v 2.500000 1.000000 -0.187500 +v 2.500000 1.093750 -0.162380 +v 2.500000 1.162380 -0.093750 +v 2.500000 1.187500 0.000000 +v 2.500000 1.162380 0.093750 +v 2.500000 1.093750 0.162380 +v 2.437500 0.906250 0.162380 +v 2.437500 1.000000 0.187500 +v 2.437500 0.837620 0.093750 +v 2.437500 0.812500 0.000000 +v 2.437500 0.837620 -0.093750 +v 2.437500 0.906250 -0.162380 +v 2.437500 1.000000 -0.187500 +v 2.437500 1.093750 -0.162380 +v 2.437500 1.162380 -0.093750 +v 2.437500 1.187500 0.000000 +v 2.437500 1.162380 0.093750 +v 2.437500 1.093750 0.162380 +v 2.500000 0.917969 0.142082 +v 2.500000 1.000000 0.164062 +v 2.500000 0.857918 0.082031 +v 2.500000 0.835938 0.000000 +v 2.500000 0.857918 -0.082031 +v 2.500000 0.917969 -0.142082 +v 2.500000 1.000000 -0.164062 +v 2.500000 1.082031 -0.142082 +v 2.500000 1.142082 -0.082031 +v 2.500000 1.164062 0.000000 +v 2.500000 1.142082 0.082031 +v 2.500000 1.082031 0.142082 +v 2.500000 1.000000 0.000000 +v 2.437500 2.409164 0.485456 +v 2.437500 2.289062 0.365355 +v 2.437500 2.125000 0.321394 +v 2.437500 1.960938 0.365355 +v 2.437500 1.840835 0.485456 +v 2.437500 1.796875 0.649519 +v 2.437500 1.840835 0.813581 +v 2.437500 1.960938 0.933684 +v 2.437500 2.125000 0.977644 +v 2.437500 2.289062 0.933684 +v 2.437500 2.409164 0.813582 +v 2.437500 2.453125 0.649519 +v 0.500000 2.409164 0.485456 +v 0.500000 2.289062 0.365355 +v 0.500000 2.125000 0.321394 +v 0.500000 1.960938 0.365355 +v 0.500000 1.840835 0.485456 +v 0.500000 1.796875 0.649519 +v 0.500000 1.840835 0.813581 +v 0.500000 1.960938 0.933684 +v 0.500000 2.125000 0.977644 +v 0.500000 2.289062 0.933684 +v 0.500000 2.409164 0.813582 +v 0.500000 2.453125 0.649519 +v 2.437500 2.449759 0.462019 +v 2.437500 2.312500 0.324759 +v 2.437500 2.125000 0.274519 +v 2.437500 1.937500 0.324759 +v 2.437500 1.800241 0.462019 +v 2.437500 1.750000 0.649519 +v 2.437500 1.800240 0.837019 +v 2.437500 1.937500 0.974278 +v 2.437500 2.125000 1.024519 +v 2.437500 2.312500 0.974279 +v 2.437500 2.449759 0.837019 +v 2.437500 2.500000 0.649519 +v 2.500000 2.500000 0.649519 +v 2.500000 2.449759 0.837019 +v 2.500000 2.312500 0.974279 +v 2.500000 2.125000 1.024519 +v 2.500000 1.937500 0.974278 +v 2.500000 1.800240 0.837019 +v 2.500000 1.750000 0.649519 +v 2.500000 1.800241 0.462019 +v 2.500000 1.937500 0.324759 +v 2.500000 2.125000 0.274519 +v 2.500000 2.312500 0.324759 +v 2.500000 2.449759 0.462019 +v 2.500000 2.312500 0.649519 +v 2.500000 2.287380 0.555769 +v 2.500000 2.287380 0.743269 +v 2.500000 2.218750 0.811899 +v 2.500000 2.125000 0.837019 +v 2.500000 2.031250 0.811899 +v 2.500000 1.962620 0.743269 +v 2.500000 1.937500 0.649519 +v 2.500000 1.962620 0.555769 +v 2.500000 2.031250 0.487139 +v 2.500000 2.125000 0.462019 +v 2.500000 2.218750 0.487139 +v 2.437500 2.312500 0.649519 +v 2.437500 2.287380 0.555769 +v 2.437500 2.287380 0.743269 +v 2.437500 2.218750 0.811899 +v 2.437500 2.125000 0.837019 +v 2.437500 2.031250 0.811899 +v 2.437500 1.962620 0.743269 +v 2.437500 1.937500 0.649519 +v 2.437500 1.962620 0.555769 +v 2.437500 2.031250 0.487139 +v 2.437500 2.125000 0.462019 +v 2.437500 2.218750 0.487139 +v 2.500000 2.289062 0.649519 +v 2.500000 2.267082 0.567488 +v 2.500000 2.267082 0.731550 +v 2.500000 2.207031 0.791601 +v 2.500000 2.125000 0.813581 +v 2.500000 2.042969 0.791601 +v 2.500000 1.982918 0.731550 +v 2.500000 1.960938 0.649519 +v 2.500000 1.982918 0.567488 +v 2.500000 2.042969 0.507437 +v 2.500000 2.125000 0.485457 +v 2.500000 2.207031 0.507437 +v 2.500000 2.125000 0.649519 +v 2.437500 1.090835 -0.485456 +v 2.437500 1.210938 -0.365355 +v 2.437500 1.375000 -0.321394 +v 2.437500 1.539062 -0.365355 +v 2.437500 1.659165 -0.485456 +v 2.437500 1.703125 -0.649519 +v 2.437500 1.659165 -0.813581 +v 2.437500 1.539062 -0.933684 +v 2.437500 1.375000 -0.977644 +v 2.437500 1.210938 -0.933684 +v 2.437500 1.090835 -0.813582 +v 2.437500 1.046875 -0.649519 +v 0.500000 1.090835 -0.485456 +v 0.500000 1.210938 -0.365355 +v 0.500000 1.375000 -0.321394 +v 0.500000 1.539062 -0.365355 +v 0.500000 1.659165 -0.485456 +v 0.500000 1.703125 -0.649519 +v 0.500000 1.659165 -0.813581 +v 0.500000 1.539062 -0.933684 +v 0.500000 1.375000 -0.977644 +v 0.500000 1.210938 -0.933684 +v 0.500000 1.090835 -0.813582 +v 0.500000 1.046875 -0.649519 +v 2.437500 1.050241 -0.462019 +v 2.437500 1.187500 -0.324759 +v 2.437500 1.375000 -0.274519 +v 2.437500 1.562500 -0.324759 +v 2.437500 1.699759 -0.462019 +v 2.437500 1.750000 -0.649519 +v 2.437500 1.699760 -0.837019 +v 2.437500 1.562500 -0.974278 +v 2.437500 1.375000 -1.024519 +v 2.437500 1.187500 -0.974279 +v 2.437500 1.050241 -0.837019 +v 2.437500 1.000000 -0.649519 +v 2.500000 1.000000 -0.649519 +v 2.500000 1.050241 -0.837019 +v 2.500000 1.187500 -0.974279 +v 2.500000 1.375000 -1.024519 +v 2.500000 1.562500 -0.974278 +v 2.500000 1.699760 -0.837019 +v 2.500000 1.750000 -0.649519 +v 2.500000 1.699759 -0.462019 +v 2.500000 1.562500 -0.324759 +v 2.500000 1.375000 -0.274519 +v 2.500000 1.187500 -0.324759 +v 2.500000 1.050241 -0.462019 +v 2.500000 1.187500 -0.649519 +v 2.500000 1.212620 -0.555769 +v 2.500000 1.212620 -0.743269 +v 2.500000 1.281250 -0.811899 +v 2.500000 1.375000 -0.837019 +v 2.500000 1.468750 -0.811899 +v 2.500000 1.537380 -0.743269 +v 2.500000 1.562500 -0.649519 +v 2.500000 1.537380 -0.555769 +v 2.500000 1.468750 -0.487139 +v 2.500000 1.375000 -0.462019 +v 2.500000 1.281250 -0.487139 +v 2.437500 1.187500 -0.649519 +v 2.437500 1.212620 -0.555769 +v 2.437500 1.212620 -0.743269 +v 2.437500 1.281250 -0.811899 +v 2.437500 1.375000 -0.837019 +v 2.437500 1.468750 -0.811899 +v 2.437500 1.537380 -0.743269 +v 2.437500 1.562500 -0.649519 +v 2.437500 1.537380 -0.555769 +v 2.437500 1.468750 -0.487139 +v 2.437500 1.375000 -0.462019 +v 2.437500 1.281250 -0.487139 +v 2.500000 1.210938 -0.649519 +v 2.500000 1.232918 -0.567488 +v 2.500000 1.232918 -0.731550 +v 2.500000 1.292969 -0.791601 +v 2.500000 1.375000 -0.813581 +v 2.500000 1.457031 -0.791601 +v 2.500000 1.517082 -0.731550 +v 2.500000 1.539062 -0.649519 +v 2.500000 1.517082 -0.567488 +v 2.500000 1.457031 -0.507437 +v 2.500000 1.375000 -0.485457 +v 2.500000 1.292969 -0.507437 +v 2.500000 1.375000 -0.649519 +v 2.437500 1.659165 0.813581 +v 2.437500 1.703125 0.649519 +v 2.437500 1.659165 0.485456 +v 2.437500 1.539062 0.365355 +v 2.437500 1.375000 0.321394 +v 2.437500 1.210938 0.365355 +v 2.437500 1.090835 0.485456 +v 2.437500 1.046875 0.649519 +v 2.437500 1.090835 0.813581 +v 2.437500 1.210937 0.933684 +v 2.437500 1.375000 0.977644 +v 2.437500 1.539062 0.933684 +v 0.500000 1.659165 0.813581 +v 0.500000 1.703125 0.649519 +v 0.500000 1.659165 0.485456 +v 0.500000 1.539062 0.365355 +v 0.500000 1.375000 0.321394 +v 0.500000 1.210938 0.365355 +v 0.500000 1.090835 0.485456 +v 0.500000 1.046875 0.649519 +v 0.500000 1.090835 0.813581 +v 0.500000 1.210937 0.933684 +v 0.500000 1.375000 0.977644 +v 0.500000 1.539062 0.933684 +v 2.437500 1.699759 0.837019 +v 2.437500 1.750000 0.649519 +v 2.437500 1.699759 0.462019 +v 2.437500 1.562500 0.324759 +v 2.437500 1.375000 0.274519 +v 2.437500 1.187500 0.324759 +v 2.437500 1.050241 0.462019 +v 2.437500 1.000000 0.649519 +v 2.437500 1.050241 0.837019 +v 2.437500 1.187500 0.974279 +v 2.437500 1.375000 1.024519 +v 2.437500 1.562500 0.974279 +v 2.500000 1.562500 0.974279 +v 2.500000 1.375000 1.024519 +v 2.500000 1.187500 0.974279 +v 2.500000 1.050241 0.837019 +v 2.500000 1.000000 0.649519 +v 2.500000 1.050241 0.462019 +v 2.500000 1.187500 0.324759 +v 2.500000 1.375000 0.274519 +v 2.500000 1.562500 0.324759 +v 2.500000 1.699759 0.462019 +v 2.500000 1.750000 0.649519 +v 2.500000 1.699759 0.837019 +v 2.500000 1.468750 0.811899 +v 2.500000 1.537380 0.743269 +v 2.500000 1.375000 0.837019 +v 2.500000 1.281250 0.811899 +v 2.500000 1.212620 0.743269 +v 2.500000 1.187500 0.649519 +v 2.500000 1.212620 0.555769 +v 2.500000 1.281250 0.487139 +v 2.500000 1.375000 0.462019 +v 2.500000 1.468750 0.487139 +v 2.500000 1.537380 0.555769 +v 2.500000 1.562500 0.649519 +v 2.437500 1.468750 0.811899 +v 2.437500 1.537380 0.743269 +v 2.437500 1.375000 0.837019 +v 2.437500 1.281250 0.811899 +v 2.437500 1.212620 0.743269 +v 2.437500 1.187500 0.649519 +v 2.437500 1.212620 0.555769 +v 2.437500 1.281250 0.487139 +v 2.437500 1.375000 0.462019 +v 2.437500 1.468750 0.487139 +v 2.437500 1.537380 0.555769 +v 2.437500 1.562500 0.649519 +v 2.500000 1.457031 0.791601 +v 2.500000 1.517082 0.731550 +v 2.500000 1.375000 0.813581 +v 2.500000 1.292969 0.791601 +v 2.500000 1.232918 0.731550 +v 2.500000 1.210937 0.649519 +v 2.500000 1.232918 0.567488 +v 2.500000 1.292969 0.507437 +v 2.500000 1.375000 0.485456 +v 2.500000 1.457031 0.507437 +v 2.500000 1.517082 0.567488 +v 2.500000 1.539062 0.649519 +v 2.500000 1.375000 0.649519 +v 2.437500 1.840835 -0.813581 +v 2.437500 1.796875 -0.649519 +v 2.437500 1.840835 -0.485456 +v 2.437500 1.960938 -0.365355 +v 2.437500 2.125000 -0.321394 +v 2.437500 2.289062 -0.365355 +v 2.437500 2.409165 -0.485456 +v 2.437500 2.453125 -0.649519 +v 2.437500 2.409165 -0.813581 +v 2.437500 2.289062 -0.933684 +v 2.437500 2.125000 -0.977644 +v 2.437500 1.960938 -0.933684 +v 0.500000 1.840835 -0.813581 +v 0.500000 1.796875 -0.649519 +v 0.500000 1.840835 -0.485456 +v 0.500000 1.960938 -0.365355 +v 0.500000 2.125000 -0.321394 +v 0.500000 2.289062 -0.365355 +v 0.500000 2.409165 -0.485456 +v 0.500000 2.453125 -0.649519 +v 0.500000 2.409165 -0.813581 +v 0.500000 2.289062 -0.933684 +v 0.500000 2.125000 -0.977644 +v 0.500000 1.960938 -0.933684 +v 2.437500 1.800241 -0.837019 +v 2.437500 1.750000 -0.649519 +v 2.437500 1.800241 -0.462019 +v 2.437500 1.937500 -0.324759 +v 2.437500 2.125000 -0.274519 +v 2.437500 2.312500 -0.324759 +v 2.437500 2.449759 -0.462019 +v 2.437500 2.500000 -0.649519 +v 2.437500 2.449760 -0.837019 +v 2.437500 2.312500 -0.974279 +v 2.437500 2.125000 -1.024519 +v 2.437500 1.937500 -0.974279 +v 2.500000 1.937500 -0.974279 +v 2.500000 2.125000 -1.024519 +v 2.500000 2.312500 -0.974279 +v 2.500000 2.449760 -0.837019 +v 2.500000 2.500000 -0.649519 +v 2.500000 2.449759 -0.462019 +v 2.500000 2.312500 -0.324759 +v 2.500000 2.125000 -0.274519 +v 2.500000 1.937500 -0.324759 +v 2.500000 1.800241 -0.462019 +v 2.500000 1.750000 -0.649519 +v 2.500000 1.800241 -0.837019 +v 2.500000 2.031250 -0.811899 +v 2.500000 1.962620 -0.743269 +v 2.500000 2.125000 -0.837019 +v 2.500000 2.218750 -0.811899 +v 2.500000 2.287380 -0.743269 +v 2.500000 2.312500 -0.649519 +v 2.500000 2.287380 -0.555769 +v 2.500000 2.218750 -0.487139 +v 2.500000 2.125000 -0.462019 +v 2.500000 2.031250 -0.487139 +v 2.500000 1.962620 -0.555769 +v 2.500000 1.937500 -0.649519 +v 2.437500 2.031250 -0.811899 +v 2.437500 1.962620 -0.743269 +v 2.437500 2.125000 -0.837019 +v 2.437500 2.218750 -0.811899 +v 2.437500 2.287380 -0.743269 +v 2.437500 2.312500 -0.649519 +v 2.437500 2.287380 -0.555769 +v 2.437500 2.218750 -0.487139 +v 2.437500 2.125000 -0.462019 +v 2.437500 2.031250 -0.487139 +v 2.437500 1.962620 -0.555769 +v 2.437500 1.937500 -0.649519 +v 2.500000 2.042969 -0.791601 +v 2.500000 1.982918 -0.731550 +v 2.500000 2.125000 -0.813581 +v 2.500000 2.207031 -0.791601 +v 2.500000 2.267082 -0.731550 +v 2.500000 2.289062 -0.649519 +v 2.500000 2.267082 -0.567488 +v 2.500000 2.207031 -0.507437 +v 2.500000 2.125000 -0.485456 +v 2.500000 2.042969 -0.507437 +v 2.500000 1.982918 -0.567488 +v 2.500000 1.960938 -0.649519 +v 2.500000 2.125000 -0.649519 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.547368 +vt 0.097122 0.536842 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.526316 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.547368 +vt 0.097122 0.536842 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.526316 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.053957 0.547368 +vt 0.043165 0.536842 +vt 0.053957 0.536842 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.547368 +vt 0.118705 0.536842 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.547368 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.043165 0.526316 +vt 0.032374 0.494737 +vt 0.039568 0.494737 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.129496 0.526316 +vt 0.118705 0.494737 +vt 0.125899 0.494737 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.032374 0.526316 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.064748 0.526316 +vt 0.118705 0.526316 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.043165 0.526316 +vt 0.032374 0.494737 +vt 0.039568 0.494737 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.032374 0.526316 +vt 0.064748 0.526316 +vt 0.053957 0.494737 +vt 0.061151 0.494737 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.053957 0.526316 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.547368 +vt 0.064748 0.536842 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.010791 0.547368 +vt 0.000000 0.536842 +vt 0.010791 0.536842 +vt 0.021583 0.547368 +vt 0.021583 0.536842 +vt 0.032374 0.547368 +vt 0.032374 0.536842 +vt 0.043165 0.536842 +vt 0.010791 0.526316 +vt 0.000000 0.494737 +vt 0.007194 0.494737 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.075540 0.526316 +vt 0.064748 0.494737 +vt 0.071942 0.494737 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.064748 0.526316 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.043165 0.547368 +vt 0.053957 0.536842 +vt 0.053957 0.547368 +vt 0.064748 0.536842 +vt 0.064748 0.547368 +vt 0.075540 0.547368 +vt 0.075540 0.536842 +vt 0.086331 0.547368 +vt 0.086331 0.536842 +vt 0.097122 0.536842 +vt 0.097122 0.547368 +vt 0.107914 0.536842 +vt 0.107914 0.547368 +vt 0.118705 0.536842 +vt 0.118705 0.547368 +vt 0.129496 0.536842 +vt 0.129496 0.547368 +vt 0.000000 0.547368 +vt 0.010791 0.536842 +vt 0.010791 0.547368 +vt 0.021583 0.536842 +vt 0.021583 0.547368 +vt 0.032374 0.536842 +vt 0.032374 0.547368 +vt 0.043165 0.536842 +vt -0.000000 0.526316 +vt 0.007194 0.494737 +vt 0.010791 0.526316 +vt 0.032374 0.526316 +vt 0.039568 0.494737 +vt 0.043165 0.526316 +vt 0.064748 0.526316 +vt 0.071942 0.494737 +vt 0.075540 0.526316 +vt 0.118705 0.526316 +vt 0.125899 0.494737 +vt 0.129496 0.526316 +vt 0.021583 0.526316 +vt 0.028777 0.494737 +vt 0.053957 0.526316 +vt 0.061151 0.494737 +vt 0.107914 0.494737 +vt 0.115108 0.494737 +vt 0.097122 0.526316 +vt 0.086331 0.494737 +vt 0.093525 0.494737 +vt 0.017986 0.494737 +vt 0.050360 0.494737 +vt 0.104317 0.494737 +vt 0.107914 0.526316 +vt 0.086331 0.526316 +vt 0.075540 0.494737 +vt 0.082734 0.494737 +vt 0.082734 0.473684 +vt 0.079137 0.473684 +vt 0.082734 0.442105 +vt 0.071942 0.473684 +vt 0.068345 0.473684 +vt 0.071942 0.442105 +vt 0.061151 0.473684 +vt 0.057554 0.473684 +vt 0.061151 0.442105 +vt 0.050360 0.473684 +vt 0.046763 0.473684 +vt 0.050360 0.442105 +vt 0.039568 0.473684 +vt 0.035971 0.473684 +vt 0.039568 0.442105 +vt 0.028777 0.473684 +vt 0.025180 0.473684 +vt 0.028777 0.442105 +vt 0.017986 0.473684 +vt 0.014388 0.473684 +vt 0.017986 0.442105 +vt 0.007194 0.473684 +vt 0.003597 0.473684 +vt 0.007194 0.442105 +vt 0.125899 0.473684 +vt 0.122302 0.473684 +vt 0.125899 0.442105 +vt 0.115108 0.473684 +vt 0.111511 0.473684 +vt 0.115108 0.442105 +vt 0.104317 0.473684 +vt 0.100719 0.473684 +vt 0.104317 0.442105 +vt 0.093525 0.473684 +vt 0.089928 0.473684 +vt 0.093525 0.442105 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.107914 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.107914 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt 0.000000 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.547368 +vt -0.000000 0.526316 +vt 0.032374 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.000000 0.536842 +vt 0.000000 0.494737 +vt 0.032374 0.494737 +vt 0.064748 0.494737 +vt 0.118705 0.494737 +vt 0.021583 0.494737 +vt 0.053957 0.494737 +vt 0.010791 0.494737 +vt 0.043165 0.494737 +vt 0.097122 0.494737 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.064748 0.484211 +vt 0.010791 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.086331 0.484211 +vt 0.010791 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.897306 +vt 0.132184 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt 0.064748 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.053957 0.484211 +vt 0.086331 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.897306 +vt 0.132184 0.897306 +vt 0.043165 0.873684 +vt 0.010791 0.873684 +vt 0.086331 0.873684 +vt 0.107914 0.873684 +vt 0.053957 0.873684 +vt 0.021583 0.873684 +vt 0.118705 0.873684 +vt 0.064748 0.873684 +vt 0.032374 0.873684 +vt -0.000000 0.873684 +vt 0.075540 0.873684 +vt 0.097122 0.873684 +vt 0.082734 0.484211 +vt 0.097122 0.484211 +vt 0.104317 0.484211 +vt 0.007194 0.484211 +vt 0.039568 0.484211 +vt 0.071942 0.484211 +vt 0.125899 0.484211 +vt 0.028777 0.484211 +vt 0.061151 0.484211 +vt 0.115108 0.484211 +vt 0.093525 0.484211 +vt 0.017986 0.484211 +vt 0.050360 0.484211 +vt 0.075540 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.107914 0.484211 +vt 0.149281 0.810651 +vt 0.166377 0.839536 +vt 0.166377 0.897306 +vt 0.129496 0.873684 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.086331 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.097122 0.484211 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.053957 0.484211 +vt 0.107914 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.166377 0.839536 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt -0.000000 0.484211 +vt 0.032374 0.484211 +vt 0.118705 0.484211 +vt 0.021583 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.107914 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.166377 0.839536 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vt 0.129496 0.873684 +vt 0.064748 0.484211 +vt 0.021583 0.484211 +vt 0.053957 0.484211 +vt 0.086331 0.484211 +vt 0.010791 0.484211 +vt 0.043165 0.484211 +vt 0.132184 0.897306 +vt 0.129539 0.868421 +vt 0.132184 0.839536 +vt 0.139410 0.818390 +vt 0.159151 0.818390 +vt 0.169022 0.868421 +vt 0.159151 0.918452 +vt 0.149281 0.926192 +vt 0.139410 0.918452 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 -0.4682 -0.8109 +vn 0.3511 0.8109 -0.4682 +vn 0.3511 0.4682 -0.8109 +vn 0.3511 -0.9363 0.0000 +vn 0.3511 -0.8109 0.4682 +vn 0.3511 0.0000 0.9363 +vn 0.3511 0.4682 0.8109 +vn 0.3511 0.9363 0.0000 +vn 0.3511 -0.8109 -0.4682 +vn 0.3511 -0.4682 0.8109 +vn 0.3511 0.8109 0.4682 +s off +f 78/112/14 103/113/14 79/114/14 +f 80/115/14 103/113/14 104/116/14 +f 81/117/14 104/116/14 105/118/14 +f 82/119/14 105/118/14 106/120/14 +f 71/121/14 106/120/14 95/122/14 +f 71/121/14 96/123/14 72/124/14 +f 72/124/14 97/125/14 73/126/14 +f 73/126/14 98/127/14 74/128/14 +f 75/129/14 98/130/14 99/131/14 +f 76/132/14 99/131/14 100/133/14 +f 77/134/14 100/133/14 101/135/14 +f 77/134/14 102/136/14 78/112/14 +f 115/137/15 127/138/15 114/139/15 +f 112/140/15 124/141/15 111/142/15 +f 109/143/15 121/144/15 108/145/15 +f 116/146/15 128/147/15 115/148/15 +f 113/149/15 125/150/15 112/140/15 +f 110/151/15 122/152/15 109/143/15 +f 117/153/15 129/154/15 116/146/15 +f 118/155/15 119/156/15 120/157/15 +f 114/139/15 126/158/15 113/149/15 +f 111/142/15 123/159/15 110/151/15 +f 118/155/15 130/160/15 117/153/15 +f 107/161/15 121/162/15 119/163/15 +f 143/164/15 145/165/15 155/166/15 +f 145/167/15 146/168/15 155/169/15 +f 146/170/15 147/171/15 155/172/15 +f 147/173/15 148/174/15 155/175/15 +f 148/176/15 149/177/15 155/178/15 +f 149/179/15 150/180/15 155/181/15 +f 150/182/15 151/183/15 155/184/15 +f 151/185/15 152/186/15 155/187/15 +f 152/188/15 153/189/15 155/190/15 +f 153/191/15 154/192/15 155/193/15 +f 154/194/15 144/195/15 155/196/15 +f 144/197/15 143/198/15 155/199/15 +f 163/200/14 188/201/14 164/202/14 +f 165/203/14 188/201/14 189/204/14 +f 166/205/14 189/204/14 190/206/14 +f 167/207/14 190/206/14 191/208/14 +f 156/209/14 191/208/14 180/210/14 +f 156/209/14 181/211/14 157/212/14 +f 157/212/14 182/213/14 158/214/14 +f 158/214/14 183/215/14 159/216/14 +f 160/217/14 183/218/14 184/219/14 +f 161/220/14 184/219/14 185/221/14 +f 162/222/14 185/221/14 186/223/14 +f 162/222/14 187/224/14 163/200/14 +f 200/225/15 212/226/15 199/227/15 +f 197/228/15 209/229/15 196/230/15 +f 194/231/15 206/232/15 193/233/15 +f 201/234/15 213/235/15 200/236/15 +f 198/237/15 210/238/15 197/228/15 +f 195/239/15 207/240/15 194/231/15 +f 202/241/15 214/242/15 201/234/15 +f 203/243/15 204/244/15 205/245/15 +f 199/227/15 211/246/15 198/237/15 +f 196/230/15 208/247/15 195/239/15 +f 203/243/15 215/248/15 202/241/15 +f 192/249/15 206/250/15 204/251/15 +f 228/252/15 230/253/15 240/254/15 +f 230/255/15 231/256/15 240/257/15 +f 231/258/15 232/259/15 240/260/15 +f 232/261/15 233/262/15 240/263/15 +f 233/264/15 234/265/15 240/266/15 +f 234/267/15 235/268/15 240/269/15 +f 235/270/15 236/271/15 240/272/15 +f 236/273/15 237/274/15 240/275/15 +f 237/276/15 238/277/15 240/278/15 +f 238/279/15 239/280/15 240/281/15 +f 239/282/15 229/283/15 240/284/15 +f 229/285/15 228/286/15 240/287/15 +f 249/288/14 272/289/14 273/290/14 +f 250/291/14 273/290/14 274/292/14 +f 251/293/14 274/292/14 275/294/14 +f 252/295/14 275/294/14 276/296/14 +f 252/295/14 265/297/14 241/298/14 +f 241/298/14 266/299/14 242/300/14 +f 243/301/14 266/299/14 267/302/14 +f 243/301/14 268/303/14 244/304/14 +f 245/305/14 268/306/14 269/307/14 +f 246/308/14 269/307/14 270/309/14 +f 247/310/14 270/309/14 271/311/14 +f 247/310/14 272/289/14 248/312/14 +f 285/313/15 297/314/15 284/315/15 +f 281/316/15 295/317/15 294/318/15 +f 278/319/15 292/320/15 291/321/15 +f 285/322/15 299/323/15 298/324/15 +f 283/325/15 295/326/15 282/327/15 +f 280/328/15 292/329/15 279/330/15 +f 286/331/15 300/332/15 299/333/15 +f 288/334/15 289/335/15 290/336/15 +f 284/315/15 296/337/15 283/325/15 +f 281/316/15 293/338/15 280/328/15 +f 288/334/15 300/339/15 287/340/15 +f 277/341/15 291/342/15 289/343/15 +f 313/344/15 315/345/15 325/346/15 +f 315/347/15 316/348/15 325/349/15 +f 316/350/15 317/351/15 325/352/15 +f 317/353/15 318/354/15 325/355/15 +f 318/356/15 319/357/15 325/358/15 +f 319/359/15 320/360/15 325/361/15 +f 320/362/15 321/363/15 325/364/15 +f 321/365/15 322/366/15 325/367/15 +f 322/368/15 323/369/15 325/370/15 +f 323/371/15 324/372/15 325/373/15 +f 324/374/15 314/375/15 325/376/15 +f 314/377/15 313/378/15 325/379/15 +f 333/380/14 358/381/14 334/382/14 +f 335/383/14 358/381/14 359/384/14 +f 336/385/14 359/384/14 360/386/14 +f 337/387/14 360/386/14 361/388/14 +f 337/387/14 350/389/14 326/390/14 +f 326/390/14 351/391/14 327/392/14 +f 327/392/14 352/393/14 328/394/14 +f 328/394/14 353/395/14 329/396/14 +f 330/397/14 353/398/14 354/399/14 +f 331/400/14 354/399/14 355/401/14 +f 332/402/14 355/401/14 356/403/14 +f 332/402/14 357/404/14 333/380/14 +f 370/405/15 382/406/15 369/407/15 +f 366/408/15 380/409/15 379/410/15 +f 363/411/15 377/412/15 376/413/15 +f 371/414/15 383/415/15 370/416/15 +f 368/417/15 380/418/15 367/419/15 +f 364/420/15 378/421/15 377/422/15 +f 371/414/15 385/423/15 384/424/15 +f 373/425/15 374/426/15 375/427/15 +f 369/407/15 381/428/15 368/417/15 +f 366/408/15 378/429/15 365/430/15 +f 373/425/15 385/431/15 372/432/15 +f 362/433/15 376/434/15 374/435/15 +f 398/436/15 400/437/15 410/438/15 +f 400/439/15 401/440/15 410/441/15 +f 401/442/15 402/443/15 410/444/15 +f 402/445/15 403/446/15 410/447/15 +f 403/448/15 404/449/15 410/450/15 +f 404/451/15 405/452/15 410/453/15 +f 405/454/15 406/455/15 410/456/15 +f 406/457/15 407/458/15 410/459/15 +f 407/460/15 408/461/15 410/462/15 +f 408/463/15 409/464/15 410/465/15 +f 409/466/15 399/467/15 410/468/15 +f 399/469/15 398/470/15 410/471/15 +f 418/472/14 443/473/14 419/474/14 +f 420/475/14 443/473/14 444/476/14 +f 421/477/14 444/476/14 445/478/14 +f 422/479/14 445/478/14 446/480/14 +f 422/479/14 435/481/14 411/482/14 +f 411/482/14 436/483/14 412/484/14 +f 412/484/14 437/485/14 413/486/14 +f 413/486/14 438/487/14 414/488/14 +f 415/489/14 438/490/14 439/491/14 +f 416/492/14 439/491/14 440/493/14 +f 417/494/14 440/493/14 441/495/14 +f 417/494/14 442/496/14 418/472/14 +f 454/497/15 468/498/15 467/499/15 +f 452/500/15 464/501/15 451/502/15 +f 448/503/15 462/504/15 461/505/15 +f 456/506/15 468/507/15 455/508/15 +f 453/509/15 465/510/15 452/500/15 +f 450/511/15 462/512/15 449/513/15 +f 456/506/15 470/514/15 469/515/15 +f 458/516/15 459/517/15 460/518/15 +f 454/497/15 466/519/15 453/509/15 +f 451/502/15 463/520/15 450/511/15 +f 458/516/15 470/521/15 457/522/15 +f 447/523/15 461/524/15 459/525/15 +f 483/526/15 485/527/15 495/528/15 +f 485/529/15 486/530/15 495/531/15 +f 486/532/15 487/533/15 495/534/15 +f 487/535/15 488/536/15 495/537/15 +f 488/538/15 489/539/15 495/540/15 +f 489/541/15 490/542/15 495/543/15 +f 490/544/15 491/545/15 495/546/15 +f 491/547/15 492/548/15 495/549/15 +f 492/550/15 493/551/15 495/552/15 +f 493/553/15 494/554/15 495/555/15 +f 494/556/15 484/557/15 495/558/15 +f 484/559/15 483/560/15 495/561/15 +f 503/562/14 528/563/14 504/564/14 +f 504/564/14 529/565/14 505/566/14 +f 506/567/14 529/565/14 530/568/14 +f 507/569/14 530/568/14 531/570/14 +f 507/569/14 520/571/14 496/572/14 +f 496/572/14 521/573/14 497/574/14 +f 497/574/14 522/575/14 498/576/14 +f 498/576/14 523/577/14 499/578/14 +f 499/579/14 524/580/14 500/581/14 +f 500/581/14 525/582/14 501/583/14 +f 501/583/14 526/584/14 502/585/14 +f 502/585/14 527/586/14 503/562/14 +f 540/587/15 552/588/15 539/589/15 +f 537/590/15 549/591/15 536/592/15 +f 534/593/15 546/594/15 533/595/15 +f 541/596/15 553/597/15 540/598/15 +f 538/599/15 550/600/15 537/590/15 +f 535/601/15 547/602/15 534/593/15 +f 541/596/15 555/603/15 554/604/15 +f 543/605/15 544/606/15 545/607/15 +f 539/589/15 551/608/15 538/599/15 +f 536/592/15 548/609/15 535/601/15 +f 543/605/15 555/610/15 542/611/15 +f 532/612/15 546/613/15 544/614/15 +f 568/615/15 570/616/15 580/617/15 +f 570/618/15 571/619/15 580/620/15 +f 571/621/15 572/622/15 580/623/15 +f 572/624/15 573/625/15 580/626/15 +f 573/627/15 574/628/15 580/629/15 +f 574/630/15 575/631/15 580/632/15 +f 575/633/15 576/634/15 580/635/15 +f 576/636/15 577/637/15 580/638/15 +f 577/639/15 578/640/15 580/641/15 +f 578/642/15 579/643/15 580/644/15 +f 579/645/15 569/646/15 580/647/15 +f 569/648/15 568/649/15 580/650/15 +f 78/112/14 102/136/14 103/113/14 +f 80/115/14 79/114/14 103/113/14 +f 81/117/14 80/115/14 104/116/14 +f 82/119/14 81/117/14 105/118/14 +f 71/121/14 82/119/14 106/120/14 +f 71/121/14 95/122/14 96/123/14 +f 72/124/14 96/123/14 97/125/14 +f 73/126/14 97/125/14 98/127/14 +f 75/129/14 74/651/14 98/130/14 +f 76/132/14 75/129/14 99/131/14 +f 77/134/14 76/132/14 100/133/14 +f 77/134/14 101/135/14 102/136/14 +f 115/137/15 128/652/15 127/138/15 +f 112/140/15 125/653/15 124/141/15 +f 109/143/15 122/654/15 121/144/15 +f 116/146/15 129/655/15 128/147/15 +f 113/149/15 126/656/15 125/150/15 +f 110/151/15 123/657/15 122/152/15 +f 117/153/15 130/658/15 129/154/15 +f 118/155/15 107/161/15 119/156/15 +f 114/139/15 127/659/15 126/158/15 +f 111/142/15 124/660/15 123/159/15 +f 118/155/15 120/661/15 130/160/15 +f 107/161/15 108/145/15 121/162/15 +f 163/200/14 187/224/14 188/201/14 +f 165/203/14 164/202/14 188/201/14 +f 166/205/14 165/203/14 189/204/14 +f 167/207/14 166/205/14 190/206/14 +f 156/209/14 167/207/14 191/208/14 +f 156/209/14 180/210/14 181/211/14 +f 157/212/14 181/211/14 182/213/14 +f 158/214/14 182/213/14 183/215/14 +f 160/217/14 159/662/14 183/218/14 +f 161/220/14 160/217/14 184/219/14 +f 162/222/14 161/220/14 185/221/14 +f 162/222/14 186/223/14 187/224/14 +f 200/225/15 213/663/15 212/226/15 +f 197/228/15 210/664/15 209/229/15 +f 194/231/15 207/665/15 206/232/15 +f 201/234/15 214/666/15 213/235/15 +f 198/237/15 211/667/15 210/238/15 +f 195/239/15 208/668/15 207/240/15 +f 202/241/15 215/669/15 214/242/15 +f 203/243/15 192/249/15 204/244/15 +f 199/227/15 212/670/15 211/246/15 +f 196/230/15 209/671/15 208/247/15 +f 203/243/15 205/672/15 215/248/15 +f 192/249/15 193/233/15 206/250/15 +f 249/288/14 248/312/14 272/289/14 +f 250/291/14 249/288/14 273/290/14 +f 251/293/14 250/291/14 274/292/14 +f 252/295/14 251/293/14 275/294/14 +f 252/295/14 276/296/14 265/297/14 +f 241/298/14 265/297/14 266/299/14 +f 243/301/14 242/300/14 266/299/14 +f 243/301/14 267/302/14 268/303/14 +f 245/305/14 244/673/14 268/306/14 +f 246/308/14 245/305/14 269/307/14 +f 247/310/14 246/308/14 270/309/14 +f 247/310/14 271/311/14 272/289/14 +f 285/313/15 298/674/15 297/314/15 +f 281/316/15 282/327/15 295/317/15 +f 278/319/15 279/330/15 292/320/15 +f 285/322/15 286/331/15 299/323/15 +f 283/325/15 296/675/15 295/326/15 +f 280/328/15 293/676/15 292/329/15 +f 286/331/15 287/340/15 300/332/15 +f 288/334/15 277/341/15 289/335/15 +f 284/315/15 297/677/15 296/337/15 +f 281/316/15 294/678/15 293/338/15 +f 288/334/15 290/679/15 300/339/15 +f 277/341/15 278/319/15 291/342/15 +f 333/380/14 357/404/14 358/381/14 +f 335/383/14 334/382/14 358/381/14 +f 336/385/14 335/383/14 359/384/14 +f 337/387/14 336/385/14 360/386/14 +f 337/387/14 361/388/14 350/389/14 +f 326/390/14 350/389/14 351/391/14 +f 327/392/14 351/391/14 352/393/14 +f 328/394/14 352/393/14 353/395/14 +f 330/397/14 329/680/14 353/398/14 +f 331/400/14 330/397/14 354/399/14 +f 332/402/14 331/400/14 355/401/14 +f 332/402/14 356/403/14 357/404/14 +f 370/405/15 383/681/15 382/406/15 +f 366/408/15 367/419/15 380/409/15 +f 363/411/15 364/420/15 377/412/15 +f 371/414/15 384/682/15 383/415/15 +f 368/417/15 381/683/15 380/418/15 +f 364/420/15 365/430/15 378/421/15 +f 371/414/15 372/432/15 385/423/15 +f 373/425/15 362/433/15 374/426/15 +f 369/407/15 382/684/15 381/428/15 +f 366/408/15 379/685/15 378/429/15 +f 373/425/15 375/686/15 385/431/15 +f 362/433/15 363/411/15 376/434/15 +f 418/472/14 442/496/14 443/473/14 +f 420/475/14 419/474/14 443/473/14 +f 421/477/14 420/475/14 444/476/14 +f 422/479/14 421/477/14 445/478/14 +f 422/479/14 446/480/14 435/481/14 +f 411/482/14 435/481/14 436/483/14 +f 412/484/14 436/483/14 437/485/14 +f 413/486/14 437/485/14 438/487/14 +f 415/489/14 414/687/14 438/490/14 +f 416/492/14 415/489/14 439/491/14 +f 417/494/14 416/492/14 440/493/14 +f 417/494/14 441/495/14 442/496/14 +f 454/497/15 455/688/15 468/498/15 +f 452/500/15 465/689/15 464/501/15 +f 448/503/15 449/513/15 462/504/15 +f 456/506/15 469/690/15 468/507/15 +f 453/509/15 466/691/15 465/510/15 +f 450/511/15 463/692/15 462/512/15 +f 456/506/15 457/522/15 470/514/15 +f 458/516/15 447/523/15 459/517/15 +f 454/497/15 467/693/15 466/519/15 +f 451/502/15 464/694/15 463/520/15 +f 458/516/15 460/695/15 470/521/15 +f 447/523/15 448/503/15 461/524/15 +f 503/562/14 527/586/14 528/563/14 +f 504/564/14 528/563/14 529/565/14 +f 506/567/14 505/566/14 529/565/14 +f 507/569/14 506/567/14 530/568/14 +f 507/569/14 531/570/14 520/571/14 +f 496/572/14 520/571/14 521/573/14 +f 497/574/14 521/573/14 522/575/14 +f 498/576/14 522/575/14 523/577/14 +f 499/579/14 523/696/14 524/580/14 +f 500/581/14 524/580/14 525/582/14 +f 501/583/14 525/582/14 526/584/14 +f 502/585/14 526/584/14 527/586/14 +f 540/587/15 553/697/15 552/588/15 +f 537/590/15 550/698/15 549/591/15 +f 534/593/15 547/699/15 546/594/15 +f 541/596/15 554/700/15 553/597/15 +f 538/599/15 551/701/15 550/600/15 +f 535/601/15 548/702/15 547/602/15 +f 541/596/15 542/611/15 555/603/15 +f 543/605/15 532/612/15 544/606/15 +f 539/589/15 552/703/15 551/608/15 +f 536/592/15 549/704/15 548/609/15 +f 543/605/15 545/705/15 555/610/15 +f 532/612/15 533/595/15 546/613/15 +s 1 +f 101/135/16 113/149/17 112/140/16 +f 79/114/18 90/706/19 78/112/19 +f 76/132/17 87/707/20 75/129/20 +f 71/121/21 94/708/22 82/119/22 +f 73/126/23 84/709/24 72/124/24 +f 80/115/25 91/710/18 79/114/18 +f 77/134/16 88/711/17 76/132/17 +f 74/128/26 85/712/23 73/126/23 +f 81/117/27 92/713/25 80/115/25 +f 78/112/19 89/714/16 77/134/16 +f 75/129/20 86/715/26 74/651/26 +f 82/119/22 93/716/27 81/117/27 +f 72/124/24 83/717/21 71/121/21 +f 98/127/26 116/146/23 115/148/26 +f 105/118/27 109/143/25 108/145/27 +f 102/136/19 112/140/16 111/142/19 +f 99/131/20 115/137/26 114/139/20 +f 106/120/22 108/145/27 107/161/22 +f 96/123/24 118/155/21 117/153/24 +f 103/113/18 111/142/19 110/151/18 +f 100/133/17 114/139/20 113/149/17 +f 95/122/21 107/161/22 118/155/21 +f 97/125/23 117/153/24 116/146/23 +f 104/116/25 110/151/18 109/143/25 +f 121/162/20 131/718/17 119/163/17 +f 132/719/28 154/194/29 142/720/29 +f 128/652/25 139/721/27 127/138/27 +f 125/653/21 136/722/24 124/141/24 +f 122/654/26 133/723/20 121/144/20 +f 129/655/18 140/724/25 128/147/25 +f 126/656/22 137/725/21 125/150/21 +f 123/657/23 134/726/26 122/152/26 +f 130/658/19 141/727/18 129/154/18 +f 119/156/17 132/728/16 120/157/16 +f 127/659/27 138/729/22 126/158/22 +f 124/660/24 135/730/23 123/159/23 +f 120/661/16 142/720/19 130/160/19 +f 133/731/30 143/164/31 131/718/31 +f 140/732/32 151/185/33 139/721/33 +f 137/733/34 148/176/35 136/722/35 +f 134/734/36 145/167/30 133/723/30 +f 140/724/32 153/189/37 152/188/32 +f 137/725/34 150/180/38 149/179/34 +f 134/726/36 147/171/39 146/170/36 +f 141/727/37 154/192/29 153/191/37 +f 132/728/28 143/198/31 144/197/28 +f 139/735/33 150/182/38 138/729/38 +f 135/730/39 148/174/35 147/173/39 +f 86/736/14 88/737/14 90/738/14 +f 186/223/21 198/237/22 197/228/21 +f 164/202/23 175/739/24 163/200/24 +f 161/220/22 172/740/27 160/217/27 +f 156/209/16 179/741/17 167/207/17 +f 158/214/18 169/742/19 157/212/19 +f 165/203/26 176/743/23 164/202/23 +f 162/222/21 173/744/22 161/220/22 +f 159/216/25 170/745/18 158/214/18 +f 166/205/20 177/746/26 165/203/26 +f 163/200/24 174/747/21 162/222/21 +f 160/217/27 171/748/25 159/662/25 +f 167/207/17 178/749/20 166/205/20 +f 157/212/19 168/750/16 156/209/16 +f 183/215/25 201/234/18 200/236/25 +f 190/206/20 194/231/26 193/233/20 +f 187/224/24 197/228/21 196/230/24 +f 184/219/27 200/225/25 199/227/27 +f 191/208/17 193/233/20 192/249/17 +f 181/211/19 203/243/16 202/241/19 +f 188/201/23 196/230/24 195/239/23 +f 185/221/22 199/227/27 198/237/22 +f 180/210/16 192/249/17 203/243/16 +f 182/213/18 202/241/19 201/234/18 +f 189/204/26 195/239/23 194/231/26 +f 206/250/27 216/751/22 204/251/22 +f 227/752/35 229/283/34 239/282/35 +f 213/663/26 224/753/20 212/226/20 +f 210/664/16 221/754/19 209/229/19 +f 207/665/25 218/755/27 206/232/27 +f 214/666/23 225/756/26 213/235/26 +f 211/667/17 222/757/16 210/238/16 +f 208/668/18 219/758/25 207/240/25 +f 215/669/24 226/759/23 214/242/23 +f 204/244/22 217/760/21 205/245/21 +f 212/670/20 223/761/17 211/246/17 +f 209/671/19 220/762/18 208/247/18 +f 205/672/21 227/752/24 215/248/24 +f 218/763/33 228/252/38 216/751/38 +f 224/753/30 237/274/36 236/273/30 +f 221/754/29 234/265/28 233/264/29 +f 219/764/32 230/255/33 218/755/33 +f 226/765/39 237/276/36 225/756/36 +f 223/766/31 234/267/28 222/757/28 +f 219/758/32 232/259/37 231/258/32 +f 226/759/39 239/280/35 238/279/39 +f 216/767/38 229/285/34 217/760/34 +f 224/768/30 235/270/31 223/761/31 +f 220/762/37 233/262/29 232/261/37 +f 171/769/14 173/770/14 175/771/14 +f 271/311/20 283/325/26 282/327/20 +f 249/288/16 260/772/17 248/312/17 +f 246/308/26 257/773/23 245/305/23 +f 241/298/27 264/774/25 252/295/25 +f 243/301/21 254/775/22 242/300/22 +f 250/291/19 261/776/16 249/288/16 +f 247/310/20 258/777/26 246/308/26 +f 244/304/24 255/778/21 243/301/21 +f 251/293/18 262/779/19 250/291/19 +f 248/312/17 259/780/20 247/310/20 +f 245/305/23 256/781/24 244/673/24 +f 252/295/25 263/782/18 251/293/18 +f 242/300/22 253/783/27 241/298/27 +f 268/303/24 286/331/21 285/322/24 +f 275/294/18 279/330/19 278/319/18 +f 272/289/17 282/327/20 281/316/17 +f 269/307/23 285/313/24 284/315/23 +f 276/296/25 278/319/18 277/341/25 +f 266/299/22 288/334/27 287/340/22 +f 273/290/16 281/316/17 280/328/16 +f 270/309/26 284/315/23 283/325/26 +f 265/297/27 277/341/25 288/334/27 +f 267/302/21 287/340/22 286/331/21 +f 274/292/19 280/328/16 279/330/19 +f 291/342/23 301/784/26 289/343/26 +f 302/785/30 324/374/31 312/786/31 +f 298/674/19 309/787/18 297/314/18 +f 295/317/27 306/788/22 294/318/22 +f 292/320/24 303/789/23 291/321/23 +f 299/323/16 310/790/19 298/324/19 +f 296/675/25 307/791/27 295/326/27 +f 293/676/21 304/792/24 292/329/24 +f 300/332/17 311/793/16 299/333/16 +f 289/335/26 302/794/20 290/336/20 +f 297/677/18 308/795/25 296/337/25 +f 294/678/22 305/796/21 293/338/21 +f 290/679/20 312/786/17 300/339/17 +f 303/797/39 313/344/36 301/784/36 +f 309/787/37 322/366/29 321/365/37 +f 306/788/38 319/357/33 318/356/38 +f 304/798/35 315/347/39 303/789/39 +f 310/790/29 323/369/28 322/368/29 +f 308/799/32 319/359/33 307/791/33 +f 305/800/34 316/350/35 304/792/35 +f 312/801/31 323/371/28 311/793/28 +f 301/802/36 314/377/30 302/794/30 +f 308/795/32 321/363/37 320/362/32 +f 305/796/34 318/354/38 317/353/34 +f 256/803/14 260/804/14 264/805/14 +f 356/403/27 368/417/25 367/419/27 +f 334/382/21 345/806/22 333/380/22 +f 331/400/25 342/807/18 330/397/18 +f 326/390/20 349/808/26 337/387/26 +f 328/394/16 339/809/17 327/392/17 +f 335/383/24 346/810/21 334/382/21 +f 332/402/27 343/811/25 331/400/25 +f 329/396/19 340/812/16 328/394/16 +f 336/385/23 347/813/24 335/383/24 +f 333/380/22 344/814/27 332/402/27 +f 330/397/18 341/815/19 329/680/19 +f 337/387/26 348/816/23 336/385/23 +f 327/392/17 338/817/20 326/390/20 +f 353/395/19 371/414/16 370/416/19 +f 360/386/23 364/420/24 363/411/23 +f 357/404/22 367/419/27 366/408/22 +f 354/399/18 370/405/19 369/407/18 +f 361/388/26 363/411/23 362/433/26 +f 351/391/17 373/425/20 372/432/17 +f 358/381/21 366/408/22 365/430/21 +f 355/401/25 369/407/18 368/417/25 +f 350/389/20 362/433/26 373/425/20 +f 352/393/16 372/432/17 371/414/16 +f 359/384/24 365/430/21 364/420/24 +f 376/434/18 386/818/25 374/435/25 +f 387/819/33 409/466/38 397/820/38 +f 383/681/24 394/821/23 382/406/23 +f 380/409/20 391/822/17 379/410/17 +f 377/412/19 388/823/18 376/413/18 +f 384/682/21 395/824/24 383/415/24 +f 381/683/26 392/825/20 380/418/20 +f 378/421/16 389/826/19 377/422/19 +f 385/423/22 396/827/21 384/424/21 +f 374/426/25 387/828/27 375/427/27 +f 382/684/23 393/829/26 381/428/26 +f 379/685/17 390/830/16 378/429/16 +f 375/686/27 397/820/22 385/431/22 +f 388/831/37 398/436/32 386/818/32 +f 394/821/39 407/458/35 406/457/39 +f 391/822/31 404/449/30 403/448/31 +f 389/832/29 400/439/37 388/823/37 +f 395/824/35 408/461/34 407/460/35 +f 392/825/30 405/452/36 404/451/30 +f 390/833/28 401/442/29 389/826/29 +f 397/834/38 408/463/34 396/827/34 +f 386/835/32 399/469/33 387/828/33 +f 393/829/36 406/455/39 405/454/36 +f 390/830/28 403/446/31 402/445/28 +f 341/836/14 343/837/14 345/838/14 +f 441/495/23 453/509/24 452/500/23 +f 419/474/20 430/839/26 418/472/26 +f 416/492/24 427/840/21 415/489/21 +f 411/482/18 434/841/19 422/479/19 +f 413/486/27 424/842/25 412/484/25 +f 420/475/17 431/843/20 419/474/20 +f 417/494/23 428/844/24 416/492/24 +f 414/488/22 425/845/27 413/486/27 +f 421/477/16 432/846/17 420/475/17 +f 418/472/26 429/847/23 417/494/23 +f 415/489/21 426/848/22 414/687/22 +f 422/479/19 433/849/16 421/477/16 +f 412/484/25 423/850/18 411/482/18 +f 438/487/22 456/506/27 455/508/22 +f 445/478/16 449/513/17 448/503/16 +f 442/496/26 452/500/23 451/502/26 +f 439/491/21 455/688/22 454/497/21 +f 446/480/19 448/503/16 447/523/19 +f 436/483/25 458/516/18 457/522/25 +f 443/473/20 451/502/26 450/511/20 +f 440/493/24 454/497/21 453/509/24 +f 435/481/18 447/523/19 458/516/18 +f 437/485/27 457/522/25 456/506/27 +f 444/476/17 450/511/20 449/513/17 +f 461/524/21 471/851/24 459/525/24 +f 472/852/39 494/556/36 482/853/36 +f 468/498/17 479/854/16 467/499/16 +f 465/689/18 476/855/25 464/501/25 +f 462/504/22 473/856/21 461/505/21 +f 469/690/20 480/857/17 468/507/17 +f 466/691/19 477/858/18 465/510/18 +f 463/692/27 474/859/22 462/512/22 +f 470/514/26 481/860/20 469/515/20 +f 459/517/24 472/861/23 460/518/23 +f 467/693/16 478/862/19 466/519/19 +f 464/694/25 475/863/27 463/520/27 +f 460/695/23 482/853/26 470/521/26 +f 473/864/34 483/526/35 471/851/35 +f 480/865/31 491/547/28 479/854/28 +f 477/866/37 488/538/32 476/855/32 +f 473/856/34 486/530/38 485/529/34 +f 481/867/30 492/550/31 480/857/31 +f 477/858/37 490/542/29 489/541/37 +f 475/868/33 486/532/38 474/859/38 +f 481/860/30 494/554/36 493/553/30 +f 471/869/35 484/559/39 472/861/39 +f 478/862/29 491/545/28 490/544/29 +f 475/863/33 488/536/32 487/535/33 +f 426/870/14 430/871/14 434/872/14 +f 526/584/18 538/599/19 537/590/18 +f 504/564/27 515/873/25 503/562/25 +f 501/583/19 512/874/16 500/581/16 +f 496/572/23 519/875/24 507/569/24 +f 498/576/20 509/876/26 497/574/26 +f 505/566/22 516/877/27 504/564/27 +f 502/585/18 513/878/19 501/583/19 +f 499/578/17 510/879/20 498/576/20 +f 506/567/21 517/880/22 505/566/22 +f 503/562/25 514/881/18 502/585/18 +f 500/581/16 511/882/17 499/579/17 +f 507/569/24 518/883/21 506/567/21 +f 497/574/26 508/884/23 496/572/23 +f 523/577/17 541/596/20 540/598/17 +f 530/568/21 534/593/22 533/595/21 +f 527/586/25 537/590/18 536/592/25 +f 524/580/16 540/587/17 539/589/16 +f 531/570/24 533/595/21 532/612/24 +f 521/573/26 543/605/23 542/611/26 +f 528/563/27 536/592/25 535/601/27 +f 525/582/19 539/589/16 538/599/19 +f 520/571/23 532/612/24 543/605/23 +f 522/575/20 542/611/26 541/596/20 +f 529/565/22 535/601/27 534/593/22 +f 546/613/16 556/885/19 544/614/19 +f 557/886/37 579/645/32 567/887/32 +f 553/697/22 564/888/21 552/588/21 +f 550/698/23 561/889/26 549/591/26 +f 547/699/17 558/890/16 546/594/16 +f 554/700/27 565/891/22 553/597/22 +f 551/701/24 562/892/23 550/600/23 +f 548/702/20 559/893/17 547/602/17 +f 555/603/25 566/894/27 554/604/27 +f 544/606/19 557/895/18 545/607/18 +f 552/703/21 563/896/24 551/608/24 +f 549/704/26 560/897/20 548/609/20 +f 545/705/18 567/887/25 555/610/25 +f 558/898/28 568/615/29 556/885/29 +f 565/899/38 576/636/34 564/888/34 +f 562/900/39 573/627/36 561/889/36 +f 558/890/28 571/619/31 570/618/28 +f 566/901/33 577/639/38 565/891/38 +f 562/892/39 575/631/35 574/630/39 +f 559/893/31 572/622/30 571/621/31 +f 567/902/32 578/642/33 566/894/33 +f 557/895/37 568/649/29 569/648/37 +f 563/896/35 576/634/34 575/633/35 +f 560/897/30 573/625/36 572/624/30 +f 511/903/14 513/904/14 515/905/14 +f 101/135/16 100/133/17 113/149/17 +f 79/114/18 91/710/18 90/706/19 +f 76/132/17 88/711/17 87/707/20 +f 71/121/21 83/717/21 94/708/22 +f 73/126/23 85/712/23 84/709/24 +f 80/115/25 92/713/25 91/710/18 +f 77/134/16 89/714/16 88/711/17 +f 74/128/26 86/906/26 85/712/23 +f 81/117/27 93/716/27 92/713/25 +f 78/112/19 90/706/19 89/714/16 +f 75/129/20 87/707/20 86/715/26 +f 82/119/22 94/708/22 93/716/27 +f 72/124/24 84/709/24 83/717/21 +f 98/127/26 97/125/23 116/146/23 +f 105/118/27 104/116/25 109/143/25 +f 102/136/19 101/135/16 112/140/16 +f 99/131/20 98/130/26 115/137/26 +f 106/120/22 105/118/27 108/145/27 +f 96/123/24 95/122/21 118/155/21 +f 103/113/18 102/136/19 111/142/19 +f 100/133/17 99/131/20 114/139/20 +f 95/122/21 106/120/22 107/161/22 +f 97/125/23 96/123/24 117/153/24 +f 104/116/25 103/113/18 110/151/18 +f 121/162/20 133/731/20 131/718/17 +f 132/719/28 144/195/28 154/194/29 +f 128/652/25 140/732/25 139/721/27 +f 125/653/21 137/733/21 136/722/24 +f 122/654/26 134/734/26 133/723/20 +f 129/655/18 141/907/18 140/724/25 +f 126/656/22 138/908/22 137/725/21 +f 123/657/23 135/909/23 134/726/26 +f 130/658/19 142/910/19 141/727/18 +f 119/156/17 131/911/17 132/728/16 +f 127/659/27 139/735/27 138/729/22 +f 124/660/24 136/912/24 135/730/23 +f 120/661/16 132/719/16 142/720/19 +f 133/731/30 145/165/30 143/164/31 +f 140/732/32 152/186/32 151/185/33 +f 137/733/34 149/177/34 148/176/35 +f 134/734/36 146/168/36 145/167/30 +f 140/724/32 141/907/37 153/189/37 +f 137/725/34 138/908/38 150/180/38 +f 134/726/36 135/909/39 147/171/39 +f 141/727/37 142/910/29 154/192/29 +f 132/728/28 131/911/31 143/198/31 +f 139/735/33 151/183/33 150/182/38 +f 135/730/39 136/912/35 148/174/35 +f 94/913/14 83/914/14 84/915/14 +f 84/915/14 85/916/14 86/736/14 +f 86/736/14 87/917/14 88/737/14 +f 88/737/14 89/918/14 90/738/14 +f 90/738/14 91/919/14 94/913/14 +f 91/919/14 92/920/14 94/913/14 +f 92/920/14 93/921/14 94/913/14 +f 94/913/14 84/915/14 90/738/14 +f 84/915/14 86/736/14 90/738/14 +f 186/223/21 185/221/22 198/237/22 +f 164/202/23 176/743/23 175/739/24 +f 161/220/22 173/744/22 172/740/27 +f 156/209/16 168/750/16 179/741/17 +f 158/214/18 170/745/18 169/742/19 +f 165/203/26 177/746/26 176/743/23 +f 162/222/21 174/747/21 173/744/22 +f 159/216/25 171/922/25 170/745/18 +f 166/205/20 178/749/20 177/746/26 +f 163/200/24 175/739/24 174/747/21 +f 160/217/27 172/740/27 171/748/25 +f 167/207/17 179/741/17 178/749/20 +f 157/212/19 169/742/19 168/750/16 +f 183/215/25 182/213/18 201/234/18 +f 190/206/20 189/204/26 194/231/26 +f 187/224/24 186/223/21 197/228/21 +f 184/219/27 183/218/25 200/225/25 +f 191/208/17 190/206/20 193/233/20 +f 181/211/19 180/210/16 203/243/16 +f 188/201/23 187/224/24 196/230/24 +f 185/221/22 184/219/27 199/227/27 +f 180/210/16 191/208/17 192/249/17 +f 182/213/18 181/211/19 202/241/19 +f 189/204/26 188/201/23 195/239/23 +f 206/250/27 218/763/27 216/751/22 +f 227/752/35 217/923/34 229/283/34 +f 213/663/26 225/924/26 224/753/20 +f 210/664/16 222/925/16 221/754/19 +f 207/665/25 219/764/25 218/755/27 +f 214/666/23 226/765/23 225/756/26 +f 211/667/17 223/766/17 222/757/16 +f 208/668/18 220/926/18 219/758/25 +f 215/669/24 227/927/24 226/759/23 +f 204/244/22 216/767/22 217/760/21 +f 212/670/20 224/768/20 223/761/17 +f 209/671/19 221/928/19 220/762/18 +f 205/672/21 217/923/21 227/752/24 +f 218/763/33 230/253/33 228/252/38 +f 224/753/30 225/924/36 237/274/36 +f 221/754/29 222/925/28 234/265/28 +f 219/764/32 231/256/32 230/255/33 +f 226/765/39 238/277/39 237/276/36 +f 223/766/31 235/268/31 234/267/28 +f 219/758/32 220/926/37 232/259/37 +f 226/759/39 227/927/35 239/280/35 +f 216/767/38 228/286/38 229/285/34 +f 224/768/30 236/271/30 235/270/31 +f 220/762/37 221/928/29 233/262/29 +f 179/929/14 168/930/14 169/931/14 +f 169/931/14 170/932/14 171/769/14 +f 171/769/14 172/933/14 173/770/14 +f 173/770/14 174/934/14 175/771/14 +f 175/771/14 176/935/14 179/929/14 +f 176/935/14 177/936/14 179/929/14 +f 177/936/14 178/937/14 179/929/14 +f 179/929/14 169/931/14 175/771/14 +f 169/931/14 171/769/14 175/771/14 +f 271/311/20 270/309/26 283/325/26 +f 249/288/16 261/776/16 260/772/17 +f 246/308/26 258/777/26 257/773/23 +f 241/298/27 253/783/27 264/774/25 +f 243/301/21 255/778/21 254/775/22 +f 250/291/19 262/779/19 261/776/16 +f 247/310/20 259/780/20 258/777/26 +f 244/304/24 256/938/24 255/778/21 +f 251/293/18 263/782/18 262/779/19 +f 248/312/17 260/772/17 259/780/20 +f 245/305/23 257/773/23 256/781/24 +f 252/295/25 264/774/25 263/782/18 +f 242/300/22 254/775/22 253/783/27 +f 268/303/24 267/302/21 286/331/21 +f 275/294/18 274/292/19 279/330/19 +f 272/289/17 271/311/20 282/327/20 +f 269/307/23 268/306/24 285/313/24 +f 276/296/25 275/294/18 278/319/18 +f 266/299/22 265/297/27 288/334/27 +f 273/290/16 272/289/17 281/316/17 +f 270/309/26 269/307/23 284/315/23 +f 265/297/27 276/296/25 277/341/25 +f 267/302/21 266/299/22 287/340/22 +f 274/292/19 273/290/16 280/328/16 +f 291/342/23 303/797/23 301/784/26 +f 302/785/30 314/375/30 324/374/31 +f 298/674/19 310/939/19 309/787/18 +f 295/317/27 307/940/27 306/788/22 +f 292/320/24 304/798/24 303/789/23 +f 299/323/16 311/941/16 310/790/19 +f 296/675/25 308/799/25 307/791/27 +f 293/676/21 305/800/21 304/792/24 +f 300/332/17 312/801/17 311/793/16 +f 289/335/26 301/802/26 302/794/20 +f 297/677/18 309/942/18 308/795/25 +f 294/678/22 306/943/22 305/796/21 +f 290/679/20 302/785/20 312/786/17 +f 303/797/39 315/345/39 313/344/36 +f 309/787/37 310/939/29 322/366/29 +f 306/788/38 307/940/33 319/357/33 +f 304/798/35 316/348/35 315/347/39 +f 310/790/29 311/941/28 323/369/28 +f 308/799/32 320/360/32 319/359/33 +f 305/800/34 317/351/34 316/350/35 +f 312/801/31 324/372/31 323/371/28 +f 301/802/36 313/378/36 314/377/30 +f 308/795/32 309/942/37 321/363/37 +f 305/796/34 306/943/38 318/354/38 +f 264/805/14 253/944/14 256/803/14 +f 253/944/14 254/945/14 256/803/14 +f 254/945/14 255/946/14 256/803/14 +f 256/803/14 257/947/14 258/948/14 +f 258/948/14 259/949/14 260/804/14 +f 260/804/14 261/950/14 264/805/14 +f 261/950/14 262/951/14 264/805/14 +f 262/951/14 263/952/14 264/805/14 +f 256/803/14 258/948/14 260/804/14 +f 356/403/27 355/401/25 368/417/25 +f 334/382/21 346/810/21 345/806/22 +f 331/400/25 343/811/25 342/807/18 +f 326/390/20 338/817/20 349/808/26 +f 328/394/16 340/812/16 339/809/17 +f 335/383/24 347/813/24 346/810/21 +f 332/402/27 344/814/27 343/811/25 +f 329/396/19 341/953/19 340/812/16 +f 336/385/23 348/816/23 347/813/24 +f 333/380/22 345/806/22 344/814/27 +f 330/397/18 342/807/18 341/815/19 +f 337/387/26 349/808/26 348/816/23 +f 327/392/17 339/809/17 338/817/20 +f 353/395/19 352/393/16 371/414/16 +f 360/386/23 359/384/24 364/420/24 +f 357/404/22 356/403/27 367/419/27 +f 354/399/18 353/398/19 370/405/19 +f 361/388/26 360/386/23 363/411/23 +f 351/391/17 350/389/20 373/425/20 +f 358/381/21 357/404/22 366/408/22 +f 355/401/25 354/399/18 369/407/18 +f 350/389/20 361/388/26 362/433/26 +f 352/393/16 351/391/17 372/432/17 +f 359/384/24 358/381/21 365/430/21 +f 376/434/18 388/831/18 386/818/25 +f 387/819/33 399/467/33 409/466/38 +f 383/681/24 395/954/24 394/821/23 +f 380/409/20 392/955/20 391/822/17 +f 377/412/19 389/832/19 388/823/18 +f 384/682/21 396/956/21 395/824/24 +f 381/683/26 393/957/26 392/825/20 +f 378/421/16 390/833/16 389/826/19 +f 385/423/22 397/834/22 396/827/21 +f 374/426/25 386/835/25 387/828/27 +f 382/684/23 394/958/23 393/829/26 +f 379/685/17 391/959/17 390/830/16 +f 375/686/27 387/819/27 397/820/22 +f 388/831/37 400/437/37 398/436/32 +f 394/821/39 395/954/35 407/458/35 +f 391/822/31 392/955/30 404/449/30 +f 389/832/29 401/440/29 400/439/37 +f 395/824/35 396/956/34 408/461/34 +f 392/825/30 393/957/36 405/452/36 +f 390/833/28 402/443/28 401/442/29 +f 397/834/38 409/464/38 408/463/34 +f 386/835/32 398/470/32 399/469/33 +f 393/829/36 394/958/39 406/455/39 +f 390/830/28 391/959/31 403/446/31 +f 349/960/14 338/961/14 339/962/14 +f 339/962/14 340/963/14 341/836/14 +f 341/836/14 342/964/14 343/837/14 +f 343/837/14 344/965/14 345/838/14 +f 345/838/14 346/966/14 349/960/14 +f 346/966/14 347/967/14 349/960/14 +f 347/967/14 348/968/14 349/960/14 +f 349/960/14 339/962/14 345/838/14 +f 339/962/14 341/836/14 345/838/14 +f 441/495/23 440/493/24 453/509/24 +f 419/474/20 431/843/20 430/839/26 +f 416/492/24 428/844/24 427/840/21 +f 411/482/18 423/850/18 434/841/19 +f 413/486/27 425/845/27 424/842/25 +f 420/475/17 432/846/17 431/843/20 +f 417/494/23 429/847/23 428/844/24 +f 414/488/22 426/969/22 425/845/27 +f 421/477/16 433/849/16 432/846/17 +f 418/472/26 430/839/26 429/847/23 +f 415/489/21 427/840/21 426/848/22 +f 422/479/19 434/841/19 433/849/16 +f 412/484/25 424/842/25 423/850/18 +f 438/487/22 437/485/27 456/506/27 +f 445/478/16 444/476/17 449/513/17 +f 442/496/26 441/495/23 452/500/23 +f 439/491/21 438/490/22 455/688/22 +f 446/480/19 445/478/16 448/503/16 +f 436/483/25 435/481/18 458/516/18 +f 443/473/20 442/496/26 451/502/26 +f 440/493/24 439/491/21 454/497/21 +f 435/481/18 446/480/19 447/523/19 +f 437/485/27 436/483/25 457/522/25 +f 444/476/17 443/473/20 450/511/20 +f 461/524/21 473/864/21 471/851/24 +f 472/852/39 484/557/39 494/556/36 +f 468/498/17 480/865/17 479/854/16 +f 465/689/18 477/866/18 476/855/25 +f 462/504/22 474/970/22 473/856/21 +f 469/690/20 481/867/20 480/857/17 +f 466/691/19 478/971/19 477/858/18 +f 463/692/27 475/868/27 474/859/22 +f 470/514/26 482/972/26 481/860/20 +f 459/517/24 471/869/24 472/861/23 +f 467/693/16 479/973/16 478/862/19 +f 464/694/25 476/974/25 475/863/27 +f 460/695/23 472/852/23 482/853/26 +f 473/864/34 485/527/34 483/526/35 +f 480/865/31 492/548/31 491/547/28 +f 477/866/37 489/539/37 488/538/32 +f 473/856/34 474/970/38 486/530/38 +f 481/867/30 493/551/30 492/550/31 +f 477/858/37 478/971/29 490/542/29 +f 475/868/33 487/533/33 486/532/38 +f 481/860/30 482/972/36 494/554/36 +f 471/869/35 483/560/35 484/559/39 +f 478/862/29 479/973/28 491/545/28 +f 475/863/33 476/974/32 488/536/32 +f 434/872/14 423/975/14 424/976/14 +f 424/976/14 425/977/14 426/870/14 +f 426/870/14 427/978/14 428/979/14 +f 428/979/14 429/980/14 430/871/14 +f 430/871/14 431/981/14 432/982/14 +f 432/982/14 433/983/14 430/871/14 +f 433/983/14 434/872/14 430/871/14 +f 434/872/14 424/976/14 426/870/14 +f 426/870/14 428/979/14 430/871/14 +f 526/584/18 525/582/19 538/599/19 +f 504/564/27 516/877/27 515/873/25 +f 501/583/19 513/878/19 512/874/16 +f 496/572/23 508/884/23 519/875/24 +f 498/576/20 510/879/20 509/876/26 +f 505/566/22 517/880/22 516/877/27 +f 502/585/18 514/881/18 513/878/19 +f 499/578/17 511/984/17 510/879/20 +f 506/567/21 518/883/21 517/880/22 +f 503/562/25 515/873/25 514/881/18 +f 500/581/16 512/874/16 511/882/17 +f 507/569/24 519/875/24 518/883/21 +f 497/574/26 509/876/26 508/884/23 +f 523/577/17 522/575/20 541/596/20 +f 530/568/21 529/565/22 534/593/22 +f 527/586/25 526/584/18 537/590/18 +f 524/580/16 523/696/17 540/587/17 +f 531/570/24 530/568/21 533/595/21 +f 521/573/26 520/571/23 543/605/23 +f 528/563/27 527/586/25 536/592/25 +f 525/582/19 524/580/16 539/589/16 +f 520/571/23 531/570/24 532/612/24 +f 522/575/20 521/573/26 542/611/26 +f 529/565/22 528/563/27 535/601/27 +f 546/613/16 558/898/16 556/885/19 +f 557/886/37 569/646/37 579/645/32 +f 553/697/22 565/899/22 564/888/21 +f 550/698/23 562/900/23 561/889/26 +f 547/699/17 559/985/17 558/890/16 +f 554/700/27 566/901/27 565/891/22 +f 551/701/24 563/986/24 562/892/23 +f 548/702/20 560/987/20 559/893/17 +f 555/603/25 567/902/25 566/894/27 +f 544/606/19 556/988/19 557/895/18 +f 552/703/21 564/989/21 563/896/24 +f 549/704/26 561/990/26 560/897/20 +f 545/705/18 557/886/18 567/887/25 +f 558/898/28 570/616/28 568/615/29 +f 565/899/38 577/637/38 576/636/34 +f 562/900/39 574/628/39 573/627/36 +f 558/890/28 559/985/31 571/619/31 +f 566/901/33 578/640/33 577/639/38 +f 562/892/39 563/986/35 575/631/35 +f 559/893/31 560/987/30 572/622/30 +f 567/902/32 579/643/32 578/642/33 +f 557/895/37 556/988/29 568/649/29 +f 563/896/35 564/989/34 576/634/34 +f 560/897/30 561/990/36 573/625/36 +f 519/991/14 508/992/14 509/993/14 +f 509/993/14 510/994/14 511/903/14 +f 511/903/14 512/995/14 513/904/14 +f 513/904/14 514/996/14 515/905/14 +f 515/905/14 516/997/14 517/998/14 +f 517/998/14 518/999/14 515/905/14 +f 518/999/14 519/991/14 515/905/14 +f 519/991/14 509/993/14 515/905/14 +f 509/993/14 511/903/14 515/905/14 +o Bullets +v 0.250000 2.541016 -0.071041 +v 0.250000 2.571041 -0.041016 +v 0.250000 2.582031 0.000000 +v 0.250000 2.571041 0.041016 +v 0.250000 2.541016 0.071041 +v 0.250000 2.500000 0.082031 +v 0.250000 2.458984 0.071041 +v 0.250000 2.428959 0.041016 +v 0.250000 2.417969 0.000000 +v 0.250000 2.428959 -0.041016 +v 0.250000 2.458984 -0.071041 +v 0.250000 2.500000 -0.082031 +v 0.125000 2.541016 -0.071041 +v 0.125000 2.571041 -0.041016 +v 0.125000 2.582031 0.000000 +v 0.125000 2.571041 0.041016 +v 0.125000 2.541016 0.071041 +v 0.125000 2.500000 0.082031 +v 0.125000 2.458984 0.071041 +v 0.125000 2.428959 0.041016 +v 0.125000 2.417969 0.000000 +v 0.125000 2.428959 -0.041016 +v 0.125000 2.458984 -0.071041 +v 0.125000 2.500000 -0.082031 +v 0.125000 2.582031 -0.142082 +v 0.125000 2.642082 -0.082031 +v 0.125000 2.664062 0.000000 +v 0.125000 2.642082 0.082031 +v 0.125000 2.582031 0.142082 +v 0.125000 2.500000 0.164062 +v 0.125000 2.417969 0.142082 +v 0.125000 2.357918 0.082031 +v 0.125000 2.335938 0.000000 +v 0.125000 2.357918 -0.082031 +v 0.125000 2.417969 -0.142082 +v 0.125000 2.500000 -0.164062 +v 0.500000 2.664063 -0.284164 +v 0.500000 2.784165 -0.164062 +v 0.500000 2.828125 0.000000 +v 0.500000 2.784164 0.164062 +v 0.500000 2.664062 0.284164 +v 0.500000 2.500000 0.328125 +v 0.500000 2.335938 0.284164 +v 0.500000 2.215835 0.164062 +v 0.500000 2.171875 0.000000 +v 0.500000 2.215835 -0.164062 +v 0.500000 2.335938 -0.284164 +v 0.500000 2.500000 -0.328125 +v 0.250000 0.958984 0.071041 +v 0.250000 0.928959 0.041016 +v 0.250000 0.917969 0.000000 +v 0.250000 0.928959 -0.041016 +v 0.250000 0.958984 -0.071041 +v 0.250000 1.000000 -0.082031 +v 0.250000 1.041016 -0.071041 +v 0.250000 1.071041 -0.041016 +v 0.250000 1.082031 0.000000 +v 0.250000 1.071041 0.041016 +v 0.250000 1.041016 0.071041 +v 0.250000 1.000000 0.082031 +v 0.125000 0.958984 0.071041 +v 0.125000 0.928959 0.041016 +v 0.125000 0.917969 0.000000 +v 0.125000 0.928959 -0.041016 +v 0.125000 0.958984 -0.071041 +v 0.125000 1.000000 -0.082031 +v 0.125000 1.041016 -0.071041 +v 0.125000 1.071041 -0.041016 +v 0.125000 1.082031 0.000000 +v 0.125000 1.071041 0.041016 +v 0.125000 1.041016 0.071041 +v 0.125000 1.000000 0.082031 +v 0.125000 0.917969 0.142082 +v 0.125000 0.857918 0.082031 +v 0.125000 0.835938 0.000000 +v 0.125000 0.857918 -0.082031 +v 0.125000 0.917969 -0.142082 +v 0.125000 1.000000 -0.164062 +v 0.125000 1.082031 -0.142082 +v 0.125000 1.142082 -0.082031 +v 0.125000 1.164062 0.000000 +v 0.125000 1.142082 0.082031 +v 0.125000 1.082031 0.142082 +v 0.125000 1.000000 0.164062 +v 0.500000 0.835937 0.284164 +v 0.500000 0.715835 0.164062 +v 0.500000 0.671875 0.000000 +v 0.500000 0.715836 -0.164062 +v 0.500000 0.835938 -0.284164 +v 0.500000 1.000000 -0.328125 +v 0.500000 1.164062 -0.284164 +v 0.500000 1.284165 -0.164062 +v 0.500000 1.328125 0.000000 +v 0.500000 1.284165 0.164062 +v 0.500000 1.164062 0.284164 +v 0.500000 1.000000 0.328125 +v 0.250000 2.207031 0.649519 +v 0.250000 2.196041 0.690535 +v 0.250000 2.166016 0.720560 +v 0.250000 2.125000 0.731550 +v 0.250000 2.083984 0.720560 +v 0.250000 2.053959 0.690535 +v 0.250000 2.042969 0.649519 +v 0.250000 2.053959 0.608504 +v 0.250000 2.083984 0.578478 +v 0.250000 2.125000 0.567488 +v 0.250000 2.166016 0.578478 +v 0.250000 2.196041 0.608503 +v 0.125000 2.207031 0.649519 +v 0.125000 2.196041 0.690535 +v 0.125000 2.166016 0.720560 +v 0.125000 2.125000 0.731550 +v 0.125000 2.083984 0.720560 +v 0.125000 2.053959 0.690535 +v 0.125000 2.042969 0.649519 +v 0.125000 2.053959 0.608504 +v 0.125000 2.083984 0.578478 +v 0.125000 2.125000 0.567488 +v 0.125000 2.166016 0.578478 +v 0.125000 2.196041 0.608503 +v 0.125000 2.289062 0.649519 +v 0.125000 2.267082 0.731550 +v 0.125000 2.207031 0.791601 +v 0.125000 2.125000 0.813581 +v 0.125000 2.042969 0.791601 +v 0.125000 1.982918 0.731550 +v 0.125000 1.960938 0.649519 +v 0.125000 1.982918 0.567488 +v 0.125000 2.042969 0.507437 +v 0.125000 2.125000 0.485457 +v 0.125000 2.207031 0.507437 +v 0.125000 2.267082 0.567488 +v 0.500000 2.453125 0.649519 +v 0.500000 2.409164 0.813582 +v 0.500000 2.289062 0.933684 +v 0.500000 2.125000 0.977644 +v 0.500000 1.960938 0.933684 +v 0.500000 1.840835 0.813581 +v 0.500000 1.796875 0.649519 +v 0.500000 1.840835 0.485456 +v 0.500000 1.960938 0.365355 +v 0.500000 2.125000 0.321394 +v 0.500000 2.289062 0.365355 +v 0.500000 2.409164 0.485456 +v 0.250000 1.292969 -0.649519 +v 0.250000 1.303959 -0.690535 +v 0.250000 1.333984 -0.720560 +v 0.250000 1.375000 -0.731550 +v 0.250000 1.416016 -0.720560 +v 0.250000 1.446041 -0.690535 +v 0.250000 1.457031 -0.649519 +v 0.250000 1.446041 -0.608504 +v 0.250000 1.416016 -0.578478 +v 0.250000 1.375000 -0.567488 +v 0.250000 1.333984 -0.578478 +v 0.250000 1.303959 -0.608503 +v 0.125000 1.292969 -0.649519 +v 0.125000 1.303959 -0.690535 +v 0.125000 1.333984 -0.720560 +v 0.125000 1.375000 -0.731550 +v 0.125000 1.416016 -0.720560 +v 0.125000 1.446041 -0.690535 +v 0.125000 1.457031 -0.649519 +v 0.125000 1.446041 -0.608504 +v 0.125000 1.416016 -0.578478 +v 0.125000 1.375000 -0.567488 +v 0.125000 1.333984 -0.578478 +v 0.125000 1.303959 -0.608503 +v 0.125000 1.210938 -0.649519 +v 0.125000 1.232918 -0.731550 +v 0.125000 1.292969 -0.791601 +v 0.125000 1.375000 -0.813581 +v 0.125000 1.457031 -0.791601 +v 0.125000 1.517082 -0.731550 +v 0.125000 1.539062 -0.649519 +v 0.125000 1.517082 -0.567488 +v 0.125000 1.457031 -0.507437 +v 0.125000 1.375000 -0.485457 +v 0.125000 1.292969 -0.507437 +v 0.125000 1.232918 -0.567488 +v 0.500000 1.046875 -0.649519 +v 0.500000 1.090835 -0.813582 +v 0.500000 1.210938 -0.933684 +v 0.500000 1.375000 -0.977644 +v 0.500000 1.539062 -0.933684 +v 0.500000 1.659165 -0.813581 +v 0.500000 1.703125 -0.649519 +v 0.500000 1.659165 -0.485456 +v 0.500000 1.539062 -0.365355 +v 0.500000 1.375000 -0.321394 +v 0.500000 1.210938 -0.365355 +v 0.500000 1.090835 -0.485456 +v 0.250000 1.416016 0.720560 +v 0.250000 1.375000 0.731550 +v 0.250000 1.333984 0.720560 +v 0.250000 1.303959 0.690535 +v 0.250000 1.292969 0.649519 +v 0.250000 1.303959 0.608503 +v 0.250000 1.333984 0.578478 +v 0.250000 1.375000 0.567488 +v 0.250000 1.416016 0.578478 +v 0.250000 1.446041 0.608503 +v 0.250000 1.457031 0.649519 +v 0.250000 1.446041 0.690535 +v 0.125000 1.416016 0.720560 +v 0.125000 1.375000 0.731550 +v 0.125000 1.333984 0.720560 +v 0.125000 1.303959 0.690535 +v 0.125000 1.292969 0.649519 +v 0.125000 1.303959 0.608503 +v 0.125000 1.333984 0.578478 +v 0.125000 1.375000 0.567488 +v 0.125000 1.416016 0.578478 +v 0.125000 1.446041 0.608503 +v 0.125000 1.457031 0.649519 +v 0.125000 1.446041 0.690535 +v 0.125000 1.457031 0.791601 +v 0.125000 1.375000 0.813581 +v 0.125000 1.292969 0.791601 +v 0.125000 1.232918 0.731550 +v 0.125000 1.210937 0.649519 +v 0.125000 1.232918 0.567488 +v 0.125000 1.292969 0.507437 +v 0.125000 1.375000 0.485456 +v 0.125000 1.457031 0.507437 +v 0.125000 1.517082 0.567488 +v 0.125000 1.539062 0.649519 +v 0.125000 1.517082 0.731550 +v 0.500000 1.539062 0.933684 +v 0.500000 1.375000 0.977644 +v 0.500000 1.210937 0.933684 +v 0.500000 1.090835 0.813581 +v 0.500000 1.046875 0.649519 +v 0.500000 1.090835 0.485456 +v 0.500000 1.210938 0.365355 +v 0.500000 1.375000 0.321394 +v 0.500000 1.539062 0.365355 +v 0.500000 1.659165 0.485456 +v 0.500000 1.703125 0.649519 +v 0.500000 1.659165 0.813581 +v 0.250000 2.083984 -0.720560 +v 0.250000 2.125000 -0.731550 +v 0.250000 2.166016 -0.720560 +v 0.250000 2.196041 -0.690535 +v 0.250000 2.207031 -0.649519 +v 0.250000 2.196041 -0.608503 +v 0.250000 2.166016 -0.578478 +v 0.250000 2.125000 -0.567488 +v 0.250000 2.083984 -0.578478 +v 0.250000 2.053959 -0.608503 +v 0.250000 2.042969 -0.649519 +v 0.250000 2.053959 -0.690535 +v 0.125000 2.083984 -0.720560 +v 0.125000 2.125000 -0.731550 +v 0.125000 2.166016 -0.720560 +v 0.125000 2.196041 -0.690535 +v 0.125000 2.207031 -0.649519 +v 0.125000 2.196041 -0.608503 +v 0.125000 2.166016 -0.578478 +v 0.125000 2.125000 -0.567488 +v 0.125000 2.083984 -0.578478 +v 0.125000 2.053959 -0.608503 +v 0.125000 2.042969 -0.649519 +v 0.125000 2.053959 -0.690535 +v 0.125000 2.042969 -0.791601 +v 0.125000 2.125000 -0.813581 +v 0.125000 2.207031 -0.791601 +v 0.125000 2.267082 -0.731550 +v 0.125000 2.289062 -0.649519 +v 0.125000 2.267082 -0.567488 +v 0.125000 2.207031 -0.507437 +v 0.125000 2.125000 -0.485456 +v 0.125000 2.042969 -0.507437 +v 0.125000 1.982918 -0.567488 +v 0.125000 1.960938 -0.649519 +v 0.125000 1.982918 -0.731550 +v 0.500000 1.960938 -0.933684 +v 0.500000 2.125000 -0.977644 +v 0.500000 2.289062 -0.933684 +v 0.500000 2.409165 -0.813581 +v 0.500000 2.453125 -0.649519 +v 0.500000 2.409165 -0.485456 +v 0.500000 2.289062 -0.365355 +v 0.500000 2.125000 -0.321394 +v 0.500000 1.960938 -0.365355 +v 0.500000 1.840835 -0.485456 +v 0.500000 1.796875 -0.649519 +v 0.500000 1.840835 -0.813581 +vt 0.000769 0.976393 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.089928 0.936842 +vt 0.093525 0.947368 +vt 0.089928 0.947368 +vt 0.017986 0.936842 +vt 0.014388 0.947368 +vt 0.014388 0.936842 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.039568 0.936842 +vt 0.035971 0.947368 +vt 0.035971 0.936842 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.025180 0.936842 +vt 0.028777 0.947368 +vt 0.025180 0.947368 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.089928 0.936842 +vt 0.093525 0.947368 +vt 0.089928 0.947368 +vt 0.017986 0.936842 +vt 0.014388 0.947368 +vt 0.014388 0.936842 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.039568 0.936842 +vt 0.035971 0.947368 +vt 0.035971 0.936842 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.025180 0.936842 +vt 0.028777 0.947368 +vt 0.025180 0.947368 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.046763 0.936842 +vt 0.050360 0.947368 +vt 0.046763 0.947368 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.046763 0.936842 +vt 0.050360 0.947368 +vt 0.046763 0.947368 +vt 0.100719 0.936842 +vt 0.104317 0.947368 +vt 0.100719 0.947368 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.100719 0.936842 +vt 0.104317 0.947368 +vt 0.100719 0.947368 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.005396 0.968575 +vt 0.010023 0.992028 +vt 0.000769 0.992028 +vt 0.057554 0.936842 +vt 0.061151 0.947368 +vt 0.057554 0.947368 +vt 0.115108 0.936842 +vt 0.111511 0.947368 +vt 0.111511 0.936842 +vt 0.093525 0.936842 +vt 0.089928 0.947368 +vt 0.089928 0.936842 +vt 0.014388 0.936842 +vt 0.017986 0.947368 +vt 0.014388 0.947368 +vt 0.050360 0.936842 +vt 0.046763 0.947368 +vt 0.046763 0.936842 +vt 0.104317 0.936842 +vt 0.100719 0.947368 +vt 0.100719 0.936842 +vt 0.082734 0.936842 +vt 0.079137 0.947368 +vt 0.079137 0.936842 +vt 0.007194 0.936842 +vt 0.003597 0.947368 +vt 0.003597 0.936842 +vt 0.035971 0.936842 +vt 0.039568 0.947368 +vt 0.035971 0.947368 +vt 0.071942 0.936842 +vt 0.068345 0.947368 +vt 0.068345 0.936842 +vt 0.122302 0.936842 +vt 0.125899 0.947368 +vt 0.122302 0.947368 +vt 0.028777 0.936842 +vt 0.025180 0.947368 +vt 0.025180 0.936842 +vt 0.000769 0.992028 +vt 0.000053 0.984211 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.936842 +vt 0.017986 0.947368 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.947368 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.936842 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.936842 +vt 0.017986 0.947368 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.947368 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.936842 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.936842 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.936842 +vt 0.104317 0.936842 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.947368 +vt 0.104317 0.936842 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.000053 0.984211 +vt 0.000769 0.976393 +vt 0.002724 0.970670 +vt 0.008067 0.970670 +vt 0.010023 0.976393 +vt 0.010739 0.984211 +vt 0.008067 0.997751 +vt 0.005396 0.999846 +vt 0.002724 0.997751 +vt 0.061151 0.936842 +vt 0.115108 0.947368 +vt 0.093525 0.947368 +vt 0.017986 0.936842 +vt 0.050360 0.947368 +vt 0.104317 0.947368 +vt 0.082734 0.947368 +vt 0.007194 0.947368 +vt 0.039568 0.936842 +vt 0.071942 0.947368 +vt 0.125899 0.936842 +vt 0.028777 0.947368 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.064748 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.107914 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.097122 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.118705 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.064748 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.118705 0.873684 +vt 0.107914 0.873684 +vt 0.097122 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.032374 0.873684 +vt 0.129496 0.873684 +vt 0.014388 0.968421 +vt 0.046763 0.968421 +vt 0.100719 0.968421 +vt 0.079137 0.968421 +vt 0.003597 0.968421 +vt 0.035971 0.968421 +vt 0.068345 0.968421 +vt 0.122302 0.968421 +vt 0.025180 0.968421 +vt 0.057554 0.968421 +vt 0.111511 0.968421 +vt 0.089928 0.968421 +vt 0.032374 0.873684 +vt 0.021583 0.873684 +vt 0.064748 0.873684 +vt 0.053957 0.873684 +vt 0.107914 0.873684 +vt 0.086331 0.873684 +vt 0.010791 0.873684 +vt 0.043165 0.873684 +vt 0.097122 0.873684 +vt 0.075540 0.873684 +vt -0.000000 0.873684 +vt 0.118705 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.017986 0.968421 +vt 0.050360 0.968421 +vt 0.104317 0.968421 +vt 0.082734 0.968421 +vt 0.007194 0.968421 +vt 0.039568 0.968421 +vt 0.071942 0.968421 +vt 0.125899 0.968421 +vt 0.028777 0.968421 +vt 0.061151 0.968421 +vt 0.115108 0.968421 +vt 0.093525 0.968421 +vt 0.129496 0.873684 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.8660 0.5000 +vn -0.4008 0.0000 0.9162 +vn -0.4008 -0.4581 0.7934 +vn -0.4008 0.7934 0.4581 +vn -0.4008 0.9162 0.0000 +vn -0.4008 -0.7934 -0.4581 +vn -0.4008 -0.4581 -0.7934 +vn -0.4008 -0.0000 -0.9162 +vn -0.4008 0.4581 -0.7934 +vn -0.4008 -0.7934 0.4581 +vn -0.4008 0.4581 0.7934 +vn -0.4008 0.7934 -0.4581 +vn -0.4008 -0.9162 0.0000 +s off +f 591/1000/40 589/1001/40 585/1002/40 +f 608/1003/40 595/1004/40 596/1005/40 +f 614/1006/40 603/1007/40 615/1008/40 +f 605/1009/40 604/1010/40 593/1011/40 +f 611/1012/40 600/1013/40 612/1014/40 +f 608/1015/40 597/1016/40 609/1017/40 +f 615/1018/40 604/1019/40 616/1020/40 +f 605/1021/40 594/1022/40 606/1023/40 +f 612/1024/40 601/1025/40 613/1026/40 +f 609/1027/40 598/1028/40 610/1029/40 +f 606/1030/40 595/1031/40 607/1032/40 +f 614/1033/40 601/1034/40 602/1035/40 +f 611/1036/40 598/1037/40 599/1038/40 +f 637/1039/40 633/1040/40 629/1041/40 +f 656/1042/40 643/1043/40 644/1044/40 +f 662/1045/40 651/1046/40 663/1047/40 +f 653/1048/40 652/1049/40 641/1050/40 +f 659/1051/40 648/1052/40 660/1053/40 +f 656/1054/40 645/1055/40 657/1056/40 +f 663/1057/40 652/1058/40 664/1059/40 +f 653/1060/40 642/1061/40 654/1062/40 +f 660/1063/40 649/1064/40 661/1065/40 +f 657/1066/40 646/1067/40 658/1068/40 +f 654/1069/40 643/1070/40 655/1071/40 +f 662/1072/40 649/1073/40 650/1074/40 +f 659/1075/40 646/1076/40 647/1077/40 +f 685/1078/40 681/1079/40 677/1080/40 +f 704/1081/40 691/1082/40 692/1083/40 +f 710/1084/40 699/1085/40 711/1086/40 +f 712/1087/40 689/1088/40 701/1089/40 +f 708/1090/40 695/1091/40 696/1092/40 +f 705/1093/40 692/1094/40 693/1095/40 +f 711/1096/40 700/1097/40 712/1098/40 +f 701/1099/40 690/1100/40 702/1101/40 +f 708/1102/40 697/1103/40 709/1104/40 +f 706/1105/40 693/1106/40 694/1107/40 +f 702/1108/40 691/1109/40 703/1110/40 +f 710/1111/40 697/1112/40 698/1113/40 +f 706/1114/40 695/1115/40 707/1116/40 +f 733/1117/40 729/1118/40 725/1119/40 +f 752/1120/40 739/1121/40 740/1122/40 +f 758/1123/40 747/1124/40 759/1125/40 +f 760/1126/40 737/1127/40 749/1128/40 +f 756/1129/40 743/1130/40 744/1131/40 +f 753/1132/40 740/1133/40 741/1134/40 +f 760/1135/40 747/1136/40 748/1137/40 +f 749/1138/40 738/1139/40 750/1140/40 +f 756/1141/40 745/1142/40 757/1143/40 +f 754/1144/40 741/1145/40 742/1146/40 +f 750/1147/40 739/1148/40 751/1149/40 +f 758/1150/40 745/1151/40 746/1152/40 +f 754/1153/40 743/1154/40 755/1155/40 +f 781/1156/40 777/1157/40 773/1158/40 +f 800/1159/40 787/1160/40 788/1161/40 +f 806/1162/40 795/1163/40 807/1164/40 +f 808/1165/40 785/1166/40 797/1167/40 +f 804/1168/40 791/1169/40 792/1170/40 +f 800/1171/40 789/1172/40 801/1173/40 +f 808/1174/40 795/1175/40 796/1176/40 +f 797/1177/40 786/1178/40 798/1179/40 +f 804/1180/40 793/1181/40 805/1182/40 +f 802/1183/40 789/1184/40 790/1185/40 +f 798/1186/40 787/1187/40 799/1188/40 +f 806/1189/40 793/1190/40 794/1191/40 +f 802/1192/40 791/1193/40 803/1194/40 +f 829/1195/40 825/1196/40 821/1197/40 +f 848/1198/40 835/1199/40 836/1200/40 +f 854/1201/40 843/1202/40 855/1203/40 +f 856/1204/40 833/1205/40 845/1206/40 +f 852/1207/40 839/1208/40 840/1209/40 +f 848/1210/40 837/1211/40 849/1212/40 +f 855/1213/40 844/1214/40 856/1215/40 +f 845/1216/40 834/1217/40 846/1218/40 +f 852/1219/40 841/1220/40 853/1221/40 +f 850/1222/40 837/1223/40 838/1224/40 +f 846/1225/40 835/1226/40 847/1227/40 +f 854/1228/40 841/1229/40 842/1230/40 +f 850/1231/40 839/1232/40 851/1233/40 +f 581/1234/40 592/1235/40 591/1000/40 +f 591/1000/40 590/1236/40 589/1001/40 +f 589/1001/40 588/1237/40 585/1002/40 +f 588/1237/40 587/1238/40 585/1002/40 +f 587/1238/40 586/1239/40 585/1002/40 +f 585/1002/40 584/1240/40 581/1234/40 +f 584/1240/40 583/1241/40 581/1234/40 +f 583/1241/40 582/1242/40 581/1234/40 +f 581/1234/40 591/1000/40 585/1002/40 +f 608/1003/40 607/1243/40 595/1004/40 +f 614/1006/40 602/1244/40 603/1007/40 +f 605/1009/40 616/1245/40 604/1010/40 +f 611/1012/40 599/1246/40 600/1013/40 +f 608/1015/40 596/1247/40 597/1016/40 +f 615/1018/40 603/1248/40 604/1019/40 +f 605/1021/40 593/1249/40 594/1022/40 +f 612/1024/40 600/1250/40 601/1025/40 +f 609/1027/40 597/1251/40 598/1028/40 +f 606/1030/40 594/1252/40 595/1031/40 +f 614/1033/40 613/1253/40 601/1034/40 +f 611/1036/40 610/1254/40 598/1037/40 +f 629/1041/40 640/1255/40 639/1256/40 +f 639/1256/40 638/1257/40 629/1041/40 +f 638/1257/40 637/1039/40 629/1041/40 +f 637/1039/40 636/1258/40 633/1040/40 +f 636/1258/40 635/1259/40 633/1040/40 +f 635/1259/40 634/1260/40 633/1040/40 +f 633/1040/40 632/1261/40 631/1262/40 +f 631/1262/40 630/1263/40 633/1040/40 +f 630/1263/40 629/1041/40 633/1040/40 +f 656/1042/40 655/1264/40 643/1043/40 +f 662/1045/40 650/1265/40 651/1046/40 +f 653/1048/40 664/1266/40 652/1049/40 +f 659/1051/40 647/1267/40 648/1052/40 +f 656/1054/40 644/1268/40 645/1055/40 +f 663/1057/40 651/1269/40 652/1058/40 +f 653/1060/40 641/1270/40 642/1061/40 +f 660/1063/40 648/1271/40 649/1064/40 +f 657/1066/40 645/1272/40 646/1067/40 +f 654/1069/40 642/1273/40 643/1070/40 +f 662/1072/40 661/1274/40 649/1073/40 +f 659/1075/40 658/1275/40 646/1076/40 +f 677/1080/40 688/1276/40 687/1277/40 +f 687/1277/40 686/1278/40 677/1080/40 +f 686/1278/40 685/1078/40 677/1080/40 +f 685/1078/40 684/1279/40 681/1079/40 +f 684/1279/40 683/1280/40 681/1079/40 +f 683/1280/40 682/1281/40 681/1079/40 +f 681/1079/40 680/1282/40 679/1283/40 +f 679/1283/40 678/1284/40 681/1079/40 +f 678/1284/40 677/1080/40 681/1079/40 +f 704/1081/40 703/1285/40 691/1082/40 +f 710/1084/40 698/1286/40 699/1085/40 +f 712/1087/40 700/1287/40 689/1088/40 +f 708/1090/40 707/1288/40 695/1091/40 +f 705/1093/40 704/1289/40 692/1094/40 +f 711/1096/40 699/1290/40 700/1097/40 +f 701/1099/40 689/1291/40 690/1100/40 +f 708/1102/40 696/1292/40 697/1103/40 +f 706/1105/40 705/1293/40 693/1106/40 +f 702/1108/40 690/1294/40 691/1109/40 +f 710/1111/40 709/1295/40 697/1112/40 +f 706/1114/40 694/1296/40 695/1115/40 +f 725/1119/40 736/1297/40 735/1298/40 +f 735/1298/40 734/1299/40 725/1119/40 +f 734/1299/40 733/1117/40 725/1119/40 +f 733/1117/40 732/1300/40 729/1118/40 +f 732/1300/40 731/1301/40 729/1118/40 +f 731/1301/40 730/1302/40 729/1118/40 +f 729/1118/40 728/1303/40 727/1304/40 +f 727/1304/40 726/1305/40 729/1118/40 +f 726/1305/40 725/1119/40 729/1118/40 +f 752/1120/40 751/1306/40 739/1121/40 +f 758/1123/40 746/1307/40 747/1124/40 +f 760/1126/40 748/1308/40 737/1127/40 +f 756/1129/40 755/1309/40 743/1130/40 +f 753/1132/40 752/1310/40 740/1133/40 +f 760/1135/40 759/1311/40 747/1136/40 +f 749/1138/40 737/1312/40 738/1139/40 +f 756/1141/40 744/1313/40 745/1142/40 +f 754/1144/40 753/1314/40 741/1145/40 +f 750/1147/40 738/1315/40 739/1148/40 +f 758/1150/40 757/1316/40 745/1151/40 +f 754/1153/40 742/1317/40 743/1154/40 +f 773/1158/40 784/1318/40 783/1319/40 +f 783/1319/40 782/1320/40 773/1158/40 +f 782/1320/40 781/1156/40 773/1158/40 +f 781/1156/40 780/1321/40 777/1157/40 +f 780/1321/40 779/1322/40 777/1157/40 +f 779/1322/40 778/1323/40 777/1157/40 +f 777/1157/40 776/1324/40 773/1158/40 +f 776/1324/40 775/1325/40 773/1158/40 +f 775/1325/40 774/1326/40 773/1158/40 +f 800/1159/40 799/1327/40 787/1160/40 +f 806/1162/40 794/1328/40 795/1163/40 +f 808/1165/40 796/1329/40 785/1166/40 +f 804/1168/40 803/1330/40 791/1169/40 +f 800/1171/40 788/1331/40 789/1172/40 +f 808/1174/40 807/1332/40 795/1175/40 +f 797/1177/40 785/1333/40 786/1178/40 +f 804/1180/40 792/1334/40 793/1181/40 +f 802/1183/40 801/1335/40 789/1184/40 +f 798/1186/40 786/1336/40 787/1187/40 +f 806/1189/40 805/1337/40 793/1190/40 +f 802/1192/40 790/1338/40 791/1193/40 +f 821/1197/40 832/1339/40 831/1340/40 +f 831/1340/40 830/1341/40 821/1197/40 +f 830/1341/40 829/1195/40 821/1197/40 +f 829/1195/40 828/1342/40 825/1196/40 +f 828/1342/40 827/1343/40 825/1196/40 +f 827/1343/40 826/1344/40 825/1196/40 +f 825/1196/40 824/1345/40 821/1197/40 +f 824/1345/40 823/1346/40 821/1197/40 +f 823/1346/40 822/1347/40 821/1197/40 +f 848/1198/40 847/1348/40 835/1199/40 +f 854/1201/40 842/1349/40 843/1202/40 +f 856/1204/40 844/1350/40 833/1205/40 +f 852/1207/40 851/1351/40 839/1208/40 +f 848/1210/40 836/1352/40 837/1211/40 +f 855/1213/40 843/1353/40 844/1214/40 +f 845/1216/40 833/1354/40 834/1217/40 +f 852/1219/40 840/1355/40 841/1220/40 +f 850/1222/40 849/1356/40 837/1223/40 +f 846/1225/40 834/1357/40 835/1226/40 +f 854/1228/40 853/1358/40 841/1229/40 +f 850/1231/40 838/1359/40 839/1232/40 +s 1 +f 599/1246/41 588/1360/42 600/1013/42 +f 596/1247/43 585/1361/44 597/1016/44 +f 603/1248/45 592/1362/46 604/1019/46 +f 593/1249/47 582/1363/48 594/1022/48 +f 600/1250/42 589/1364/49 601/1025/49 +f 597/1251/44 586/1365/50 598/1028/50 +f 594/1252/48 583/1366/51 595/1031/51 +f 601/1034/49 590/1367/52 602/1035/52 +f 598/1037/50 587/1368/41 599/1038/41 +f 595/1004/51 584/1369/43 596/1005/43 +f 602/1244/52 591/1370/45 603/1007/45 +f 604/1010/46 581/1371/47 593/1011/47 +f 622/1372/53 611/1036/54 623/1373/54 +f 620/1374/55 607/1243/56 608/1003/55 +f 626/1375/57 615/1008/58 627/1376/58 +f 628/1377/59 605/1009/60 617/1378/60 +f 623/1373/54 612/1014/61 624/1379/61 +f 620/1374/55 609/1017/62 621/1380/62 +f 627/1376/58 616/1020/59 628/1377/59 +f 617/1378/60 606/1023/63 618/1381/63 +f 624/1379/61 613/1026/64 625/1382/64 +f 621/1380/62 610/1029/53 622/1372/53 +f 618/1381/63 607/1032/56 619/1383/56 +f 626/1375/57 613/1253/64 614/1033/57 +f 647/1267/47 636/1384/48 648/1052/48 +f 644/1268/52 633/1385/45 645/1055/45 +f 651/1269/44 640/1386/50 652/1058/50 +f 641/1270/41 630/1387/42 642/1061/42 +f 648/1271/48 637/1388/51 649/1064/51 +f 645/1272/45 634/1389/46 646/1067/46 +f 642/1273/42 631/1390/49 643/1070/49 +f 649/1073/51 638/1391/43 650/1074/43 +f 646/1076/46 635/1392/47 647/1077/47 +f 643/1043/49 632/1393/52 644/1044/52 +f 650/1265/43 639/1394/44 651/1046/44 +f 652/1049/50 629/1395/41 641/1050/41 +f 671/1396/60 658/1275/59 659/1075/60 +f 667/1397/64 656/1042/57 668/1398/57 +f 675/1399/62 662/1045/55 663/1047/62 +f 665/1400/54 664/1266/53 653/1048/54 +f 671/1396/60 660/1053/63 672/1401/63 +f 668/1398/57 657/1056/58 669/1402/58 +f 675/1399/62 664/1059/53 676/1403/53 +f 666/1404/61 653/1060/54 654/1062/61 +f 672/1401/63 661/1065/56 673/1405/56 +f 669/1402/58 658/1068/59 670/1406/59 +f 666/1404/61 655/1071/64 667/1397/64 +f 674/1407/55 661/1274/56 662/1072/55 +f 695/1091/49 684/1408/52 696/1092/52 +f 692/1094/50 681/1409/41 693/1095/41 +f 699/1290/47 688/1410/48 700/1097/48 +f 689/1291/51 678/1411/43 690/1100/43 +f 696/1292/52 685/1412/45 697/1103/45 +f 693/1106/41 682/1413/42 694/1107/42 +f 690/1294/43 679/1414/44 691/1109/44 +f 697/1112/45 686/1415/46 698/1113/46 +f 694/1296/42 683/1416/49 695/1115/49 +f 691/1082/44 680/1417/50 692/1083/50 +f 698/1286/46 687/1418/47 699/1085/47 +f 700/1287/48 677/1419/51 689/1088/51 +f 718/1420/61 707/1116/64 719/1421/64 +f 715/1422/62 704/1081/53 716/1423/53 +f 722/1424/59 711/1086/60 723/1425/60 +f 724/1426/63 701/1089/56 713/1427/56 +f 719/1421/64 708/1090/57 720/1428/57 +f 716/1423/53 705/1093/54 717/1429/54 +f 724/1426/63 711/1096/60 712/1098/63 +f 713/1427/56 702/1101/55 714/1430/55 +f 720/1428/57 709/1104/58 721/1431/58 +f 718/1420/61 705/1293/54 706/1105/61 +f 714/1430/55 703/1110/62 715/1422/62 +f 722/1424/59 709/1295/58 710/1111/59 +f 743/1130/51 732/1432/43 744/1131/43 +f 740/1133/46 729/1433/47 741/1134/47 +f 747/1136/41 736/1434/42 748/1137/42 +f 737/1312/49 726/1435/52 738/1139/52 +f 744/1313/43 733/1436/44 745/1142/44 +f 741/1145/47 730/1437/48 742/1146/48 +f 738/1315/52 727/1438/45 739/1148/45 +f 745/1151/44 734/1439/50 746/1152/50 +f 742/1317/48 731/1440/51 743/1154/51 +f 739/1121/45 728/1441/46 740/1122/46 +f 746/1307/50 735/1442/41 747/1124/41 +f 748/1308/42 725/1443/49 737/1127/49 +f 767/1444/56 754/1153/63 755/1155/56 +f 764/1445/59 751/1306/58 752/1120/59 +f 770/1446/53 759/1125/54 771/1447/54 +f 772/1448/61 749/1128/64 761/1449/64 +f 767/1444/56 756/1129/55 768/1450/55 +f 764/1445/59 753/1132/60 765/1451/60 +f 771/1447/54 760/1135/61 772/1448/61 +f 761/1449/64 750/1140/57 762/1452/57 +f 768/1450/55 757/1143/62 769/1453/62 +f 765/1451/60 754/1144/63 766/1454/63 +f 762/1452/57 751/1149/58 763/1455/58 +f 770/1446/53 757/1316/62 758/1150/53 +f 791/1169/45 780/1456/46 792/1170/46 +f 788/1331/42 777/1457/49 789/1172/49 +f 795/1175/51 784/1458/43 796/1176/43 +f 785/1333/44 774/1459/50 786/1178/50 +f 792/1334/46 781/1460/47 793/1181/47 +f 789/1184/49 778/1461/52 790/1185/52 +f 786/1336/50 775/1462/41 787/1187/41 +f 793/1190/47 782/1463/48 794/1191/48 +f 790/1338/52 779/1464/45 791/1193/45 +f 787/1160/41 776/1465/42 788/1161/42 +f 794/1328/48 783/1466/51 795/1163/51 +f 796/1329/43 773/1467/44 785/1166/44 +f 815/1468/58 802/1192/57 803/1194/58 +f 811/1469/54 800/1159/61 812/1470/61 +f 818/1471/63 807/1164/56 819/1472/56 +f 820/1473/55 797/1167/62 809/1474/62 +f 815/1468/58 804/1168/59 816/1475/59 +f 813/1476/64 800/1171/61 801/1173/64 +f 819/1472/56 808/1174/55 820/1473/55 +f 809/1474/62 798/1179/53 810/1477/53 +f 817/1478/60 804/1180/59 805/1182/60 +f 814/1479/57 801/1335/64 802/1183/57 +f 810/1477/53 799/1188/54 811/1469/54 +f 817/1480/60 806/1189/63 818/1471/63 +f 839/1208/44 828/1481/50 840/1209/50 +f 836/1352/48 825/1482/51 837/1211/51 +f 843/1353/49 832/1483/52 844/1214/52 +f 833/1354/45 822/1484/46 834/1217/46 +f 840/1355/50 829/1485/41 841/1220/41 +f 837/1223/51 826/1486/43 838/1224/43 +f 834/1357/46 823/1487/47 835/1226/47 +f 841/1229/41 830/1488/42 842/1230/42 +f 838/1359/43 827/1489/44 839/1232/44 +f 835/1199/47 824/1490/48 836/1200/48 +f 842/1349/42 831/1491/49 843/1202/49 +f 844/1350/52 821/1492/45 833/1205/45 +f 862/1493/55 851/1233/62 863/1494/62 +f 859/1495/60 848/1198/63 860/1496/63 +f 867/1497/64 854/1201/61 855/1203/64 +f 857/1498/58 856/1204/57 845/1206/58 +f 863/1494/62 852/1207/53 864/1499/53 +f 860/1496/63 849/1212/56 861/1500/56 +f 867/1497/64 856/1215/57 868/1501/57 +f 857/1498/58 846/1218/59 858/1502/59 +f 864/1499/53 853/1221/54 865/1503/54 +f 862/1493/55 849/1356/56 850/1222/55 +f 858/1502/59 847/1227/60 859/1495/60 +f 866/1504/61 853/1358/54 854/1228/61 +f 599/1246/41 587/1505/41 588/1360/42 +f 596/1247/43 584/1506/43 585/1361/44 +f 603/1248/45 591/1507/45 592/1362/46 +f 593/1249/47 581/1508/47 582/1363/48 +f 600/1250/42 588/1509/42 589/1364/49 +f 597/1251/44 585/1510/44 586/1365/50 +f 594/1252/48 582/1511/48 583/1366/51 +f 601/1034/49 589/1512/49 590/1367/52 +f 598/1037/50 586/1513/50 587/1368/41 +f 595/1004/51 583/1514/51 584/1369/43 +f 602/1244/52 590/1515/52 591/1370/45 +f 604/1010/46 592/1516/46 581/1371/47 +f 622/1372/53 610/1254/53 611/1036/54 +f 620/1374/55 619/1383/56 607/1243/56 +f 626/1375/57 614/1006/57 615/1008/58 +f 628/1377/59 616/1245/59 605/1009/60 +f 623/1373/54 611/1012/54 612/1014/61 +f 620/1374/55 608/1015/55 609/1017/62 +f 627/1376/58 615/1018/58 616/1020/59 +f 617/1378/60 605/1021/60 606/1023/63 +f 624/1379/61 612/1024/61 613/1026/64 +f 621/1380/62 609/1027/62 610/1029/53 +f 618/1381/63 606/1030/63 607/1032/56 +f 626/1375/57 625/1517/64 613/1253/64 +f 647/1267/47 635/1518/47 636/1384/48 +f 644/1268/52 632/1519/52 633/1385/45 +f 651/1269/44 639/1520/44 640/1386/50 +f 641/1270/41 629/1521/41 630/1387/42 +f 648/1271/48 636/1522/48 637/1388/51 +f 645/1272/45 633/1523/45 634/1389/46 +f 642/1273/42 630/1524/42 631/1390/49 +f 649/1073/51 637/1525/51 638/1391/43 +f 646/1076/46 634/1526/46 635/1392/47 +f 643/1043/49 631/1527/49 632/1393/52 +f 650/1265/43 638/1528/43 639/1394/44 +f 652/1049/50 640/1529/50 629/1395/41 +f 671/1396/60 670/1406/59 658/1275/59 +f 667/1397/64 655/1264/64 656/1042/57 +f 675/1399/62 674/1407/55 662/1045/55 +f 665/1400/54 676/1403/53 664/1266/53 +f 671/1396/60 659/1051/60 660/1053/63 +f 668/1398/57 656/1054/57 657/1056/58 +f 675/1399/62 663/1057/62 664/1059/53 +f 666/1404/61 665/1400/54 653/1060/54 +f 672/1401/63 660/1063/63 661/1065/56 +f 669/1402/58 657/1066/58 658/1068/59 +f 666/1404/61 654/1069/61 655/1071/64 +f 674/1407/55 673/1530/56 661/1274/56 +f 695/1091/49 683/1531/49 684/1408/52 +f 692/1094/50 680/1532/50 681/1409/41 +f 699/1290/47 687/1533/47 688/1410/48 +f 689/1291/51 677/1534/51 678/1411/43 +f 696/1292/52 684/1535/52 685/1412/45 +f 693/1106/41 681/1536/41 682/1413/42 +f 690/1294/43 678/1537/43 679/1414/44 +f 697/1112/45 685/1538/45 686/1415/46 +f 694/1296/42 682/1539/42 683/1416/49 +f 691/1082/44 679/1540/44 680/1417/50 +f 698/1286/46 686/1541/46 687/1418/47 +f 700/1287/48 688/1542/48 677/1419/51 +f 718/1420/61 706/1114/61 707/1116/64 +f 715/1422/62 703/1285/62 704/1081/53 +f 722/1424/59 710/1084/59 711/1086/60 +f 724/1426/63 712/1087/63 701/1089/56 +f 719/1421/64 707/1288/64 708/1090/57 +f 716/1423/53 704/1289/53 705/1093/54 +f 724/1426/63 723/1425/60 711/1096/60 +f 713/1427/56 701/1099/56 702/1101/55 +f 720/1428/57 708/1102/57 709/1104/58 +f 718/1420/61 717/1429/54 705/1293/54 +f 714/1430/55 702/1108/55 703/1110/62 +f 722/1424/59 721/1543/58 709/1295/58 +f 743/1130/51 731/1544/51 732/1432/43 +f 740/1133/46 728/1545/46 729/1433/47 +f 747/1136/41 735/1546/41 736/1434/42 +f 737/1312/49 725/1547/49 726/1435/52 +f 744/1313/43 732/1548/43 733/1436/44 +f 741/1145/47 729/1549/47 730/1437/48 +f 738/1315/52 726/1550/52 727/1438/45 +f 745/1151/44 733/1551/44 734/1439/50 +f 742/1317/48 730/1552/48 731/1440/51 +f 739/1121/45 727/1553/45 728/1441/46 +f 746/1307/50 734/1554/50 735/1442/41 +f 748/1308/42 736/1555/42 725/1443/49 +f 767/1444/56 766/1454/63 754/1153/63 +f 764/1445/59 763/1455/58 751/1306/58 +f 770/1446/53 758/1123/53 759/1125/54 +f 772/1448/61 760/1126/61 749/1128/64 +f 767/1444/56 755/1309/56 756/1129/55 +f 764/1445/59 752/1310/59 753/1132/60 +f 771/1447/54 759/1311/54 760/1135/61 +f 761/1449/64 749/1138/64 750/1140/57 +f 768/1450/55 756/1141/55 757/1143/62 +f 765/1451/60 753/1314/60 754/1144/63 +f 762/1452/57 750/1147/57 751/1149/58 +f 770/1446/53 769/1556/62 757/1316/62 +f 791/1169/45 779/1557/45 780/1456/46 +f 788/1331/42 776/1558/42 777/1457/49 +f 795/1175/51 783/1559/51 784/1458/43 +f 785/1333/44 773/1560/44 774/1459/50 +f 792/1334/46 780/1561/46 781/1460/47 +f 789/1184/49 777/1562/49 778/1461/52 +f 786/1336/50 774/1563/50 775/1462/41 +f 793/1190/47 781/1564/47 782/1463/48 +f 790/1338/52 778/1565/52 779/1464/45 +f 787/1160/41 775/1566/41 776/1465/42 +f 794/1328/48 782/1567/48 783/1466/51 +f 796/1329/43 784/1568/43 773/1467/44 +f 815/1468/58 814/1479/57 802/1192/57 +f 811/1469/54 799/1327/54 800/1159/61 +f 818/1471/63 806/1162/63 807/1164/56 +f 820/1473/55 808/1165/55 797/1167/62 +f 815/1468/58 803/1330/58 804/1168/59 +f 813/1476/64 812/1470/61 800/1171/61 +f 819/1472/56 807/1332/56 808/1174/55 +f 809/1474/62 797/1177/62 798/1179/53 +f 817/1478/60 816/1475/59 804/1180/59 +f 814/1479/57 813/1476/64 801/1335/64 +f 810/1477/53 798/1186/53 799/1188/54 +f 817/1480/60 805/1337/60 806/1189/63 +f 839/1208/44 827/1569/44 828/1481/50 +f 836/1352/48 824/1570/48 825/1482/51 +f 843/1353/49 831/1571/49 832/1483/52 +f 833/1354/45 821/1572/45 822/1484/46 +f 840/1355/50 828/1573/50 829/1485/41 +f 837/1223/51 825/1574/51 826/1486/43 +f 834/1357/46 822/1575/46 823/1487/47 +f 841/1229/41 829/1576/41 830/1488/42 +f 838/1359/43 826/1577/43 827/1489/44 +f 835/1199/47 823/1578/47 824/1490/48 +f 842/1349/42 830/1579/42 831/1491/49 +f 844/1350/52 832/1580/52 821/1492/45 +f 862/1493/55 850/1231/55 851/1233/62 +f 859/1495/60 847/1348/60 848/1198/63 +f 867/1497/64 866/1504/61 854/1201/61 +f 857/1498/58 868/1501/57 856/1204/57 +f 863/1494/62 851/1351/62 852/1207/53 +f 860/1496/63 848/1210/63 849/1212/56 +f 867/1497/64 855/1213/64 856/1215/57 +f 857/1498/58 845/1216/58 846/1218/59 +f 864/1499/53 852/1219/53 853/1221/54 +f 862/1493/55 861/1500/56 849/1356/56 +f 858/1502/59 846/1225/59 847/1227/60 +f 866/1504/61 865/1581/54 853/1358/54 +o Hammer +v 4.000000 2.687500 0.250000 +v 4.000000 2.687500 -0.250000 +v 3.250000 2.687500 0.250000 +v 3.250000 2.687500 -0.250000 +v 4.125000 2.187500 0.250000 +v 4.125000 2.187500 -0.250000 +v 4.562500 2.437500 0.250000 +v 4.562500 2.437500 -0.250000 +v 4.812500 2.437500 0.375000 +v 4.812500 2.437500 -0.375000 +v 5.062500 2.437500 0.375000 +v 5.062500 2.437500 -0.375000 +v 5.312500 2.437500 0.250000 +v 5.312500 2.437500 -0.250000 +v 4.562500 2.312500 0.250000 +v 4.562500 2.312500 -0.250000 +v 4.812500 2.312500 0.375000 +v 4.812500 2.312500 -0.375000 +v 5.062500 2.312500 0.375000 +v 5.062500 2.312500 -0.375000 +v 5.312500 2.312500 0.250000 +v 5.312500 2.312500 -0.250000 +v 4.312500 2.187500 0.250000 +v 4.312500 2.187500 -0.250000 +v 4.812500 1.812500 0.250000 +v 4.812500 1.812500 -0.250000 +v 4.812500 1.562500 0.250000 +v 4.812500 1.562500 -0.250000 +v 3.250000 2.437500 0.250000 +v 3.250000 2.437500 -0.250000 +v 3.750000 2.437500 0.250000 +v 3.750000 2.437500 -0.250000 +v 4.000000 1.687500 0.250000 +v 4.000000 1.687500 -0.250000 +vt 0.370504 0.905263 +vt 0.392086 0.863158 +vt 0.392086 0.905263 +vt 0.406475 0.863158 +vt 0.287770 0.484211 +vt 0.273381 0.526316 +vt 0.273381 0.484211 +vt 0.294964 0.473684 +vt 0.287770 0.526316 +vt 0.302158 0.473684 +vt 0.294964 0.536842 +vt 0.309353 0.484211 +vt 0.302158 0.536842 +vt 0.287770 0.463158 +vt 0.287770 0.473684 +vt 0.309353 0.547368 +vt 0.309353 0.536842 +vt 0.312950 0.484211 +vt 0.309353 0.526316 +vt 0.294964 0.463158 +vt 0.294964 0.547368 +vt 0.287770 0.536842 +vt 0.302158 0.463158 +vt 0.309353 0.473684 +vt 0.302158 0.547368 +vt 0.320144 0.536842 +vt 0.312950 0.526316 +vt 0.327338 0.473684 +vt 0.320144 0.473684 +vt 0.334532 0.484211 +vt 0.327338 0.536842 +vt 0.341727 0.526316 +vt 0.334532 0.526316 +vt 0.273381 0.547368 +vt 0.291367 0.589474 +vt 0.273381 0.589474 +vt 0.291367 0.547368 +vt 0.298561 0.589474 +vt 0.363309 0.863158 +vt 0.370504 0.863158 +vt 0.363309 0.905263 +vt 0.348921 0.863158 +vt 0.348921 0.905263 +vt 0.327338 0.863158 +vt 0.384892 0.926316 +vt 0.384892 0.842105 +vt 0.395683 0.947368 +vt 0.395683 0.821053 +vt 0.276978 0.463158 +vt 0.276978 0.473684 +vt 0.276978 0.547368 +vt 0.276978 0.536842 +vt 0.392086 0.989474 +vt 0.402878 0.947368 +vt 0.392086 0.778947 +vt 0.420863 0.768421 +vt 0.420863 0.789474 +vt 0.406475 0.905263 +vt 0.287770 0.547368 +vt 0.309353 0.463158 +vt 0.341727 0.484211 +vt 0.298561 0.547368 +vt 0.327338 0.905263 +vt 0.370504 0.926316 +vt 0.370504 0.842105 +vt 0.420863 0.978947 +vt 0.420863 1.000000 +vt 0.402878 0.821053 +vn 0.0000 1.0000 0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.4961 0.8682 0.0000 +vn -0.4472 0.0000 0.8944 +vn 0.4472 0.0000 -0.8944 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 0.8944 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.4472 -0.8944 0.0000 +vn 0.6000 0.8000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9487 -0.3162 0.0000 +s off +f 872/1582/65 869/1583/65 870/1584/65 +f 873/1585/66 870/1584/66 869/1583/66 +f 875/1586/67 874/1587/67 873/1588/67 +f 877/1589/65 876/1590/65 875/1586/65 +f 879/1591/65 878/1592/65 877/1589/65 +f 881/1593/65 880/1594/65 879/1591/65 +f 883/1595/68 877/1589/68 875/1596/68 +f 890/1597/69 880/1594/69 882/1598/69 +f 889/1599/70 882/1600/70 881/1593/70 +f 885/1601/71 879/1591/71 877/1589/71 +f 886/1602/72 876/1603/72 878/1592/72 +f 887/1604/73 881/1605/73 879/1591/73 +f 888/1606/74 878/1592/74 880/1594/74 +f 889/1599/75 888/1607/75 890/1608/75 +f 885/1609/75 888/1607/75 887/1610/75 +f 883/1611/75 886/1612/75 885/1609/75 +f 883/1611/76 892/1613/76 884/1614/76 +f 891/1615/77 894/1616/77 892/1617/77 +f 893/1618/70 896/1619/70 894/1616/70 +f 872/1582/78 897/1620/78 871/1621/78 +f 898/1622/75 899/1623/75 897/1620/75 +f 900/1624/79 901/1625/79 899/1623/79 +f 900/1626/74 872/1582/74 870/1584/74 +f 871/1621/71 899/1627/71 869/1583/71 +f 874/1628/74 900/1626/74 870/1584/74 +f 899/1627/71 873/1629/71 869/1583/71 +f 891/1630/71 875/1596/71 873/1631/71 +f 876/1603/74 892/1632/74 874/1633/74 +f 902/1634/74 874/1628/74 892/1635/74 +f 901/1636/71 895/1637/71 893/1638/71 +f 872/1582/65 871/1621/65 869/1583/65 +f 873/1585/66 874/1639/66 870/1584/66 +f 875/1586/67 876/1590/67 874/1587/67 +f 877/1589/65 878/1592/65 876/1590/65 +f 879/1591/65 880/1594/65 878/1592/65 +f 881/1593/65 882/1600/65 880/1594/65 +f 883/1595/68 885/1601/68 877/1589/68 +f 890/1597/69 888/1606/69 880/1594/69 +f 889/1599/70 890/1608/70 882/1600/70 +f 885/1601/71 887/1604/71 879/1591/71 +f 886/1602/72 884/1640/72 876/1603/72 +f 887/1604/73 889/1641/73 881/1605/73 +f 888/1606/74 886/1602/74 878/1592/74 +f 889/1599/75 887/1610/75 888/1607/75 +f 885/1609/75 886/1612/75 888/1607/75 +f 883/1611/75 884/1614/75 886/1612/75 +f 883/1611/76 891/1642/76 892/1613/76 +f 891/1615/77 893/1618/77 894/1616/77 +f 893/1618/70 895/1643/70 896/1619/70 +f 872/1582/78 898/1622/78 897/1620/78 +f 898/1622/75 900/1624/75 899/1623/75 +f 900/1624/79 902/1644/79 901/1625/79 +f 900/1626/74 898/1645/74 872/1582/74 +f 871/1621/71 897/1646/71 899/1627/71 +f 874/1628/74 902/1634/74 900/1626/74 +f 899/1627/71 901/1636/71 873/1629/71 +f 891/1630/71 883/1595/71 875/1596/71 +f 876/1603/74 884/1640/74 892/1632/74 +f 892/1635/74 894/1647/74 902/1634/74 +f 894/1647/74 896/1648/74 902/1634/74 +f 893/1638/71 891/1649/71 901/1636/71 +f 891/1649/71 873/1629/71 901/1636/71 +o Cylinder +v 2.437500 1.750000 -1.187500 +v 2.437500 2.343750 -1.028405 +v 2.437500 2.778405 -0.593750 +v 2.437500 2.937500 0.000000 +v 2.437500 2.778405 0.593750 +v 2.437500 2.343750 1.028405 +v 2.437500 1.750000 1.187500 +v 2.437500 1.156250 1.028405 +v 2.437500 0.721595 0.593750 +v 2.437500 0.562500 0.000001 +v 2.437500 0.721594 -0.593749 +v 2.437500 1.156249 -1.028404 +v 0.062500 1.750000 -1.187500 +v 0.062500 2.343750 -1.028405 +v 0.062500 2.778405 -0.593750 +v 0.062500 2.937500 0.000000 +v 0.062500 2.778405 0.593750 +v 0.062500 2.343750 1.028405 +v 0.062500 1.750000 1.187500 +v 0.062500 1.156250 1.028405 +v 0.062500 0.721595 0.593750 +v 0.062500 0.562500 0.000001 +v 0.062500 0.721594 -0.593749 +v 0.062500 1.156249 -1.028404 +v 0.062500 2.500000 -0.328125 +v 0.062500 2.335938 -0.284164 +v 0.062500 2.215835 -0.164062 +v 0.062500 2.171875 0.000000 +v 0.062500 2.215835 0.164062 +v 0.062500 2.335938 0.284164 +v 0.062500 2.500000 0.328125 +v 0.062500 2.664062 0.284164 +v 0.062500 2.784164 0.164062 +v 0.062500 2.828125 0.000000 +v 0.062500 2.784165 -0.164062 +v 0.062500 2.664063 -0.284164 +v 2.437500 2.500000 -0.328125 +v 2.437500 2.335938 -0.284164 +v 2.437500 2.215835 -0.164062 +v 2.437500 2.171875 0.000000 +v 2.437500 2.215835 0.164062 +v 2.437500 2.335938 0.284164 +v 2.437500 2.500000 0.328125 +v 2.437500 2.664062 0.284164 +v 2.437500 2.784164 0.164062 +v 2.437500 2.828125 0.000000 +v 2.437500 2.784165 -0.164062 +v 2.437500 2.664063 -0.284164 +v 0.062500 1.000000 0.328126 +v 0.062500 1.164062 0.284165 +v 0.062500 1.284165 0.164063 +v 0.062500 1.328125 0.000001 +v 0.062500 1.284165 -0.164062 +v 0.062500 1.164063 -0.284164 +v 0.062500 1.000000 -0.328124 +v 0.062500 0.835938 -0.284164 +v 0.062500 0.715836 -0.164062 +v 0.062500 0.671875 0.000000 +v 0.062500 0.715835 0.164063 +v 0.062500 0.835937 0.284165 +v 2.437500 1.000000 0.328126 +v 2.437500 1.164062 0.284165 +v 2.437500 1.284165 0.164063 +v 2.437500 1.328125 0.000001 +v 2.437500 1.284165 -0.164062 +v 2.437500 1.164063 -0.284164 +v 2.437500 1.000000 -0.328124 +v 2.437500 0.835938 -0.284164 +v 2.437500 0.715836 -0.164062 +v 2.437500 0.671875 0.000000 +v 2.437500 0.715835 0.164063 +v 2.437500 0.835937 0.284165 +v 0.062500 2.409165 0.485456 +v 0.062500 2.289063 0.365355 +v 0.062500 2.125000 0.321394 +v 0.062500 1.960938 0.365355 +v 0.062500 1.840836 0.485456 +v 0.062500 1.796875 0.649519 +v 0.062500 1.840836 0.813581 +v 0.062500 1.960938 0.933684 +v 0.062500 2.125000 0.977644 +v 0.062500 2.289063 0.933684 +v 0.062500 2.409165 0.813582 +v 0.062500 2.453125 0.649519 +v 2.437500 2.409165 0.485456 +v 2.437500 2.289063 0.365355 +v 2.437500 2.125000 0.321394 +v 2.437500 1.960938 0.365355 +v 2.437500 1.840836 0.485456 +v 2.437500 1.796875 0.649519 +v 2.437500 1.840836 0.813581 +v 2.437500 1.960938 0.933684 +v 2.437500 2.125000 0.977644 +v 2.437500 2.289063 0.933684 +v 2.437500 2.409165 0.813582 +v 2.437500 2.453125 0.649519 +v 0.062500 1.090835 -0.485456 +v 0.062500 1.210937 -0.365354 +v 0.062500 1.375000 -0.321393 +v 0.062500 1.539062 -0.365354 +v 0.062500 1.659164 -0.485456 +v 0.062500 1.703125 -0.649518 +v 0.062500 1.659164 -0.813581 +v 0.062500 1.539062 -0.933683 +v 0.062500 1.375000 -0.977643 +v 0.062500 1.210938 -0.933683 +v 0.062500 1.090835 -0.813581 +v 0.062500 1.046875 -0.649519 +v 2.437500 1.090835 -0.485456 +v 2.437500 1.210937 -0.365354 +v 2.437500 1.375000 -0.321393 +v 2.437500 1.539062 -0.365354 +v 2.437500 1.659164 -0.485456 +v 2.437500 1.703125 -0.649518 +v 2.437500 1.659164 -0.813581 +v 2.437500 1.539062 -0.933683 +v 2.437500 1.375000 -0.977643 +v 2.437500 1.210938 -0.933683 +v 2.437500 1.090835 -0.813581 +v 2.437500 1.046875 -0.649519 +v 0.062500 1.659165 0.813582 +v 0.062500 1.703125 0.649520 +v 0.062500 1.659165 0.485457 +v 0.062500 1.539063 0.365355 +v 0.062500 1.375000 0.321394 +v 0.062500 1.210938 0.365355 +v 0.062500 1.090836 0.485457 +v 0.062500 1.046875 0.649519 +v 0.062500 1.090836 0.813582 +v 0.062500 1.210938 0.933684 +v 0.062500 1.375000 0.977644 +v 0.062500 1.539062 0.933684 +v 2.437500 1.659165 0.813582 +v 2.437500 1.703125 0.649520 +v 2.437500 1.659165 0.485457 +v 2.437500 1.539063 0.365355 +v 2.437500 1.375000 0.321394 +v 2.437500 1.210938 0.365355 +v 2.437500 1.090836 0.485457 +v 2.437500 1.046875 0.649519 +v 2.437500 1.090836 0.813582 +v 2.437500 1.210938 0.933684 +v 2.437500 1.375000 0.977644 +v 2.437500 1.539062 0.933684 +v 0.062500 1.840835 -0.813581 +v 0.062500 1.796875 -0.649519 +v 0.062500 1.840835 -0.485456 +v 0.062500 1.960937 -0.365355 +v 0.062500 2.125000 -0.321394 +v 0.062500 2.289062 -0.365354 +v 0.062500 2.409164 -0.485456 +v 0.062500 2.453125 -0.649518 +v 0.062500 2.409164 -0.813581 +v 0.062500 2.289062 -0.933683 +v 0.062500 2.125000 -0.977644 +v 0.062500 1.960938 -0.933683 +v 2.437500 1.840835 -0.813581 +v 2.437500 1.796875 -0.649519 +v 2.437500 1.840835 -0.485456 +v 2.437500 1.960937 -0.365355 +v 2.437500 2.125000 -0.321394 +v 2.437500 2.289062 -0.365354 +v 2.437500 2.409164 -0.485456 +v 2.437500 2.453125 -0.649518 +v 2.437500 2.409164 -0.813581 +v 2.437500 2.289062 -0.933683 +v 2.437500 2.125000 -0.977644 +v 2.437500 1.960938 -0.933683 +vt 0.365512 0.481693 +vt 0.371235 0.475600 +vt 0.367820 0.485593 +vt 0.386287 0.481693 +vt 0.385229 0.499243 +vt 0.383979 0.485593 +vt 0.394366 0.432942 +vt 0.399031 0.444400 +vt 0.394366 0.440742 +vt 0.386287 0.391992 +vt 0.380564 0.398084 +vt 0.383979 0.388092 +vt 0.365512 0.391992 +vt 0.366570 0.374441 +vt 0.367820 0.388092 +vt 0.357432 0.440742 +vt 0.352768 0.429284 +vt 0.357432 0.432942 +vt 0.375899 0.401742 +vt 0.386287 0.419292 +vt 0.375899 0.471942 +vt 0.349353 0.419292 +vt 0.342136 0.436842 +vt 0.362097 0.381999 +vt 0.357432 0.378341 +vt 0.359018 0.351278 +vt 0.385229 0.374441 +vt 0.383979 0.360791 +vt 0.392781 0.351278 +vt 0.399031 0.429285 +vt 0.402446 0.419292 +vt 0.409662 0.436842 +vt 0.389702 0.491685 +vt 0.394366 0.495343 +vt 0.392781 0.522406 +vt 0.366570 0.499243 +vt 0.367820 0.512893 +vt 0.359018 0.522406 +vt 0.433857 0.481693 +vt 0.435107 0.468042 +vt 0.436165 0.485593 +vt 0.454632 0.481693 +vt 0.458047 0.491685 +vt 0.452324 0.485593 +vt 0.462712 0.440742 +vt 0.458047 0.444400 +vt 0.462712 0.432942 +vt 0.454632 0.391992 +vt 0.453383 0.405642 +vt 0.452324 0.388092 +vt 0.433857 0.391992 +vt 0.430442 0.381999 +vt 0.436165 0.388092 +vt 0.425778 0.432942 +vt 0.430442 0.429285 +vt 0.425778 0.440742 +vt 0.454632 0.419292 +vt 0.454632 0.454392 +vt 0.433857 0.419292 +vt 0.417698 0.419292 +vt 0.421113 0.429285 +vt 0.410482 0.436842 +vt 0.436165 0.360791 +vt 0.434915 0.374441 +vt 0.427363 0.351278 +vt 0.462712 0.378341 +vt 0.458047 0.381999 +vt 0.461126 0.351278 +vt 0.467376 0.429284 +vt 0.470791 0.419292 +vt 0.478008 0.436842 +vt 0.452324 0.512893 +vt 0.453574 0.499243 +vt 0.461126 0.522406 +vt 0.425778 0.495343 +vt 0.430442 0.491685 +vt 0.427363 0.522406 +vt 0.362097 0.491685 +vt 0.366761 0.468042 +vt 0.380564 0.475600 +vt 0.385037 0.468042 +vt 0.389702 0.444400 +vt 0.389702 0.429285 +vt 0.389702 0.381999 +vt 0.385037 0.405642 +vt 0.371235 0.398084 +vt 0.366761 0.405642 +vt 0.362097 0.429284 +vt 0.362097 0.444400 +vt 0.352768 0.444400 +vt 0.365512 0.454392 +vt 0.386287 0.454392 +vt 0.365512 0.419292 +vt 0.349353 0.481693 +vt 0.346660 0.486243 +vt 0.348103 0.468042 +vt 0.346660 0.387441 +vt 0.348103 0.405642 +vt 0.349353 0.391992 +vt 0.349353 0.454392 +vt 0.375899 0.338041 +vt 0.371235 0.350799 +vt 0.375899 0.347141 +vt 0.352768 0.381999 +vt 0.367820 0.360791 +vt 0.405139 0.387442 +vt 0.399031 0.381999 +vt 0.402446 0.391992 +vt 0.380564 0.350799 +vt 0.394366 0.378341 +vt 0.405139 0.486243 +vt 0.403696 0.468042 +vt 0.402446 0.481693 +vt 0.403696 0.405642 +vt 0.402446 0.454392 +vt 0.375899 0.535643 +vt 0.380564 0.522886 +vt 0.375899 0.526543 +vt 0.399031 0.491685 +vt 0.383979 0.512893 +vt 0.352768 0.491685 +vt 0.371235 0.522886 +vt 0.357432 0.495343 +vt 0.439580 0.475600 +vt 0.434915 0.499243 +vt 0.448909 0.475600 +vt 0.453383 0.468042 +vt 0.458047 0.429284 +vt 0.467376 0.444400 +vt 0.448909 0.398084 +vt 0.453574 0.374441 +vt 0.439580 0.398084 +vt 0.435107 0.405642 +vt 0.430442 0.444400 +vt 0.421113 0.444400 +vt 0.444245 0.471942 +vt 0.433857 0.454392 +vt 0.444245 0.401742 +vt 0.417698 0.481693 +vt 0.415005 0.486243 +vt 0.416448 0.468042 +vt 0.415005 0.387442 +vt 0.416448 0.405642 +vt 0.417698 0.391992 +vt 0.417698 0.454392 +vt 0.421113 0.381999 +vt 0.444245 0.338041 +vt 0.439580 0.350799 +vt 0.444245 0.347141 +vt 0.425778 0.378341 +vt 0.448909 0.350799 +vt 0.473484 0.387441 +vt 0.467376 0.381999 +vt 0.470791 0.391992 +vt 0.452324 0.360791 +vt 0.473484 0.486243 +vt 0.472041 0.468042 +vt 0.470791 0.481693 +vt 0.472041 0.405642 +vt 0.470791 0.454392 +vt 0.467376 0.491685 +vt 0.444245 0.535643 +vt 0.448909 0.522886 +vt 0.444245 0.526543 +vt 0.462712 0.495343 +vt 0.439580 0.522886 +vt 0.421113 0.491685 +vt 0.436165 0.512893 +vt 0.517986 0.157895 +vt 0.586331 0.105263 +vt 0.586331 0.157895 +vt 0.517986 0.315789 +vt 0.586331 0.263158 +vt 0.586331 0.315789 +vt 0.517986 0.578947 +vt 0.586331 0.526316 +vt 0.586331 0.578947 +vt 0.517986 0.473684 +vt 0.586331 0.421053 +vt 0.586331 0.473684 +vt 0.517986 0.105263 +vt 0.586331 0.052632 +vt 0.517986 0.263158 +vt 0.586331 0.210526 +vt 0.517986 0.526316 +vt 0.517986 0.421053 +vt 0.586331 0.368421 +vt 0.517986 0.052632 +vt 0.586331 0.000000 +vt 0.517986 0.210526 +vt 0.517986 0.368421 +vt 0.517986 0.631579 +vt 0.586331 0.631579 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.341727 0.442105 +vt 0.273381 0.452632 +vt 0.273381 0.442105 +vt 0.341727 0.368421 +vt 0.273381 0.378947 +vt 0.273381 0.368421 +vt 0.341727 0.347368 +vt 0.273381 0.357895 +vt 0.273381 0.347368 +vt 0.341727 0.400000 +vt 0.273381 0.410526 +vt 0.273381 0.400000 +vt 0.341727 0.431579 +vt 0.273381 0.431579 +vt 0.341727 0.336842 +vt 0.273381 0.336842 +vt 0.341727 0.389474 +vt 0.273381 0.389474 +vt 0.341727 0.421053 +vt 0.273381 0.421053 +vt 0.341727 0.452632 +vt 0.273381 0.463158 +vt 0.341727 0.378947 +vt 0.341727 0.357895 +vt 0.341727 0.410526 +vt 0.517986 0.000000 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vt 0.341727 0.463158 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -1.0000 0.0000 +s off +f 1052/1650/80 929/1651/80 928/1652/80 +f 976/1653/80 933/1654/80 932/1655/80 +f 1024/1656/80 981/1657/80 980/1658/80 +f 1028/1659/80 953/1660/80 952/1661/80 +f 1000/1662/80 957/1663/80 956/1664/80 +f 1048/1665/80 1005/1666/80 1004/1667/80 +f 954/1668/80 1026/1669/80 930/1670/80 +f 1006/1671/80 1005/1666/80 915/1672/80 +f 999/1673/80 1010/1674/80 925/1675/80 +f 951/1676/80 962/1677/80 923/1678/80 +f 1023/1679/80 1034/1680/80 921/1681/80 +f 975/1682/80 986/1683/80 919/1684/80 +f 927/1685/80 938/1686/80 917/1687/80 +f 988/1688/81 989/1689/81 944/1690/81 +f 1064/1691/81 1065/1692/81 940/1693/81 +f 1060/1694/81 1061/1695/81 1016/1696/81 +f 1012/1697/81 1013/1698/81 968/1699/81 +f 1040/1700/81 1041/1701/81 964/1702/81 +f 1036/1703/81 1037/1704/81 992/1705/81 +f 1014/1706/81 1062/1707/81 1038/1708/81 +f 1046/1709/81 1035/1710/81 909/1711/81 +f 974/1712/81 963/1713/81 911/1714/81 +f 1022/1715/81 1011/1716/81 913/1717/81 +f 1017/1718/81 1018/1719/81 903/1720/81 +f 950/1721/81 939/1722/81 905/1723/81 +f 998/1724/81 987/1725/81 907/1726/81 +f 928/1652/80 927/1685/80 1053/1727/80 +f 1052/1650/80 1051/1728/80 929/1651/80 +f 928/1652/80 1053/1727/80 1052/1650/80 +f 932/1655/80 931/1729/80 977/1730/80 +f 976/1653/80 975/1682/80 933/1654/80 +f 932/1655/80 977/1730/80 976/1653/80 +f 980/1658/80 979/1731/80 1025/1732/80 +f 1024/1656/80 1023/1679/80 981/1657/80 +f 980/1658/80 1025/1732/80 1024/1656/80 +f 952/1661/80 951/1676/80 1029/1733/80 +f 1028/1659/80 1027/1734/80 953/1660/80 +f 952/1661/80 1029/1733/80 1028/1659/80 +f 956/1664/80 955/1735/80 1001/1736/80 +f 1000/1662/80 999/1673/80 957/1663/80 +f 956/1664/80 1001/1736/80 1000/1662/80 +f 1004/1667/80 1003/1737/80 1049/1738/80 +f 1048/1665/80 1047/1739/80 1005/1666/80 +f 1004/1667/80 1049/1738/80 1048/1665/80 +f 930/1670/80 929/1651/80 1051/1728/80 +f 1050/1740/80 1049/1738/80 1003/1737/80 +f 930/1670/80 1051/1728/80 1050/1740/80 +f 977/1730/80 931/1729/80 978/1741/80 +f 931/1729/80 930/1670/80 978/1741/80 +f 1025/1732/80 979/1731/80 978/1741/80 +f 930/1670/80 1050/1740/80 1002/1742/80 +f 1050/1740/80 1003/1737/80 1002/1742/80 +f 1002/1742/80 1001/1736/80 955/1735/80 +f 1025/1732/80 978/1741/80 1026/1669/80 +f 978/1741/80 930/1670/80 1026/1669/80 +f 953/1660/80 1027/1734/80 954/1668/80 +f 1027/1734/80 1026/1669/80 954/1668/80 +f 930/1670/80 1002/1742/80 954/1668/80 +f 1002/1742/80 955/1735/80 954/1668/80 +f 1056/1743/80 916/1744/80 1057/1745/80 +f 916/1744/80 915/1672/80 1057/1745/80 +f 915/1672/80 926/1746/80 1007/1747/80 +f 926/1746/80 1008/1748/80 1007/1747/80 +f 1005/1666/80 1047/1739/80 915/1672/80 +f 1047/1739/80 1058/1749/80 915/1672/80 +f 1058/1749/80 1057/1745/80 915/1672/80 +f 915/1672/80 1007/1747/80 1006/1671/80 +f 925/1675/80 924/1750/80 959/1751/80 +f 924/1750/80 960/1752/80 959/1751/80 +f 1008/1748/80 926/1746/80 1009/1753/80 +f 926/1746/80 925/1675/80 1009/1753/80 +f 925/1675/80 959/1751/80 958/1754/80 +f 958/1754/80 957/1663/80 925/1675/80 +f 957/1663/80 999/1673/80 925/1675/80 +f 1010/1674/80 1009/1753/80 925/1675/80 +f 923/1678/80 922/1755/80 1031/1756/80 +f 922/1755/80 1032/1757/80 1031/1756/80 +f 960/1752/80 924/1750/80 961/1758/80 +f 924/1750/80 923/1678/80 961/1758/80 +f 923/1678/80 1031/1756/80 1030/1759/80 +f 1030/1759/80 1029/1733/80 923/1678/80 +f 1029/1733/80 951/1676/80 923/1678/80 +f 962/1677/80 961/1758/80 923/1678/80 +f 921/1681/80 920/1760/80 983/1761/80 +f 920/1760/80 984/1762/80 983/1761/80 +f 1032/1757/80 922/1755/80 1033/1763/80 +f 922/1755/80 921/1681/80 1033/1763/80 +f 921/1681/80 983/1761/80 982/1764/80 +f 982/1764/80 981/1657/80 921/1681/80 +f 981/1657/80 1023/1679/80 921/1681/80 +f 1034/1680/80 1033/1763/80 921/1681/80 +f 919/1684/80 918/1765/80 935/1766/80 +f 918/1765/80 936/1767/80 935/1766/80 +f 984/1762/80 920/1760/80 985/1768/80 +f 920/1760/80 919/1684/80 985/1768/80 +f 919/1684/80 935/1766/80 934/1769/80 +f 934/1769/80 933/1654/80 919/1684/80 +f 933/1654/80 975/1682/80 919/1684/80 +f 986/1683/80 985/1768/80 919/1684/80 +f 917/1687/80 916/1744/80 1055/1770/80 +f 916/1744/80 1056/1743/80 1055/1770/80 +f 936/1767/80 918/1765/80 937/1771/80 +f 918/1765/80 917/1687/80 937/1771/80 +f 917/1687/80 1055/1770/80 1054/1772/80 +f 1054/1772/80 1053/1727/80 917/1687/80 +f 1053/1727/80 927/1685/80 917/1687/80 +f 938/1686/80 937/1771/80 917/1687/80 +f 989/1689/81 943/1773/81 944/1690/81 +f 944/1690/81 945/1774/81 988/1688/81 +f 945/1774/81 987/1725/81 988/1688/81 +f 1065/1692/81 939/1722/81 940/1693/81 +f 940/1693/81 941/1775/81 1064/1691/81 +f 941/1775/81 1063/1776/81 1064/1691/81 +f 1061/1695/81 1015/1777/81 1016/1696/81 +f 1016/1696/81 1017/1718/81 1060/1694/81 +f 1017/1718/81 1059/1778/81 1060/1694/81 +f 1013/1698/81 967/1779/81 968/1699/81 +f 968/1699/81 969/1780/81 1012/1697/81 +f 969/1780/81 1011/1716/81 1012/1697/81 +f 1041/1701/81 963/1713/81 964/1702/81 +f 964/1702/81 965/1781/81 1040/1700/81 +f 965/1781/81 1039/1782/81 1040/1700/81 +f 1037/1704/81 991/1783/81 992/1705/81 +f 992/1705/81 993/1784/81 1036/1703/81 +f 993/1784/81 1035/1710/81 1036/1703/81 +f 1063/1776/81 941/1775/81 942/1785/81 +f 942/1785/81 943/1773/81 990/1786/81 +f 943/1773/81 989/1689/81 990/1786/81 +f 990/1786/81 991/1783/81 1038/1708/81 +f 991/1783/81 1037/1704/81 1038/1708/81 +f 1062/1707/81 1063/1776/81 942/1785/81 +f 1015/1777/81 1061/1695/81 1062/1707/81 +f 967/1779/81 1013/1698/81 1014/1706/81 +f 1014/1706/81 1015/1777/81 1062/1707/81 +f 1062/1707/81 942/1785/81 990/1786/81 +f 1038/1708/81 1039/1782/81 966/1787/81 +f 1039/1782/81 965/1781/81 966/1787/81 +f 966/1787/81 967/1779/81 1014/1706/81 +f 1062/1707/81 990/1786/81 1038/1708/81 +f 966/1787/81 1014/1706/81 1038/1708/81 +f 996/1788/81 908/1789/81 995/1790/81 +f 908/1789/81 909/1711/81 995/1790/81 +f 909/1711/81 910/1791/81 1045/1792/81 +f 910/1791/81 1044/1793/81 1045/1792/81 +f 1035/1710/81 993/1784/81 909/1711/81 +f 993/1784/81 994/1794/81 909/1711/81 +f 994/1794/81 995/1790/81 909/1711/81 +f 909/1711/81 1045/1792/81 1046/1709/81 +f 1044/1793/81 910/1791/81 1043/1795/81 +f 910/1791/81 911/1714/81 1043/1795/81 +f 911/1714/81 912/1796/81 973/1797/81 +f 912/1796/81 972/1798/81 973/1797/81 +f 963/1713/81 1041/1701/81 911/1714/81 +f 1041/1701/81 1042/1799/81 911/1714/81 +f 1042/1799/81 1043/1795/81 911/1714/81 +f 911/1714/81 973/1797/81 974/1712/81 +f 972/1798/81 912/1796/81 971/1800/81 +f 912/1796/81 913/1717/81 971/1800/81 +f 913/1717/81 914/1801/81 1021/1802/81 +f 914/1801/81 1020/1803/81 1021/1802/81 +f 1011/1716/81 969/1780/81 913/1717/81 +f 969/1780/81 970/1804/81 913/1717/81 +f 970/1804/81 971/1800/81 913/1717/81 +f 913/1717/81 1021/1802/81 1022/1715/81 +f 903/1720/81 904/1805/81 1069/1806/81 +f 904/1805/81 1068/1807/81 1069/1806/81 +f 1020/1803/81 914/1801/81 1019/1808/81 +f 914/1801/81 903/1720/81 1019/1808/81 +f 903/1720/81 1069/1806/81 1070/1809/81 +f 1070/1809/81 1059/1778/81 903/1720/81 +f 1059/1778/81 1017/1718/81 903/1720/81 +f 1018/1719/81 1019/1808/81 903/1720/81 +f 1068/1807/81 904/1805/81 1067/1810/81 +f 904/1805/81 905/1723/81 1067/1810/81 +f 905/1723/81 906/1811/81 949/1812/81 +f 906/1811/81 948/1813/81 949/1812/81 +f 939/1722/81 1065/1692/81 905/1723/81 +f 1065/1692/81 1066/1814/81 905/1723/81 +f 1066/1814/81 1067/1810/81 905/1723/81 +f 905/1723/81 949/1812/81 950/1721/81 +f 948/1813/81 906/1811/81 947/1815/81 +f 906/1811/81 907/1726/81 947/1815/81 +f 907/1726/81 908/1789/81 997/1816/81 +f 908/1789/81 996/1788/81 997/1816/81 +f 987/1725/81 945/1774/81 907/1726/81 +f 945/1774/81 946/1817/81 907/1726/81 +f 946/1817/81 947/1815/81 907/1726/81 +f 907/1726/81 997/1816/81 998/1724/81 +s 1 +f 921/1818/82 910/1819/83 909/1820/82 +f 918/1821/84 907/1822/85 906/1823/84 +f 925/1824/86 914/1825/87 913/1826/86 +f 915/1827/88 904/1828/89 903/1829/88 +f 922/1830/83 911/1831/90 910/1819/83 +f 919/1832/85 908/1833/91 907/1822/85 +f 926/1834/87 903/1829/88 914/1825/87 +f 916/1835/89 905/1836/92 904/1828/89 +f 923/1837/90 912/1838/93 911/1831/90 +f 920/1839/91 909/1820/82 908/1833/91 +f 917/1840/92 906/1823/84 905/1836/92 +f 924/1841/93 913/1826/86 912/1842/93 +f 944/1843/89 931/1844/92 932/1845/89 +f 939/1846/82 938/1847/83 927/1848/82 +f 941/1849/85 928/1850/91 929/1851/85 +f 948/1852/93 935/1853/86 936/1854/93 +f 945/1855/88 932/1845/89 933/1856/88 +f 942/1857/84 929/1851/85 930/1858/84 +f 949/1859/90 936/1854/93 937/1860/90 +f 946/1861/87 933/1856/88 934/1862/87 +f 943/1863/92 930/1864/84 931/1844/92 +f 950/1865/83 937/1860/90 938/1847/83 +f 940/1866/91 927/1848/82 928/1850/91 +f 947/1867/86 934/1862/87 935/1853/86 +f 968/1868/83 955/1869/90 956/1870/83 +f 963/1871/88 962/1872/89 951/1873/88 +f 965/1874/86 952/1875/87 953/1876/86 +f 972/1877/84 959/1878/85 960/1879/84 +f 969/1880/82 956/1870/83 957/1881/82 +f 966/1882/93 953/1876/86 954/1883/93 +f 973/1884/92 960/1879/84 961/1885/92 +f 970/1886/91 957/1881/82 958/1887/91 +f 967/1888/90 954/1889/93 955/1869/90 +f 974/1890/89 961/1885/92 962/1872/89 +f 964/1891/87 951/1873/88 952/1875/87 +f 971/1892/85 958/1887/91 959/1878/85 +f 992/1893/84 979/1894/85 980/1895/84 +f 987/1896/90 986/1897/93 975/1898/90 +f 989/1899/82 976/1900/83 977/1901/82 +f 996/1902/87 983/1903/88 984/1904/87 +f 993/1905/92 980/1895/84 981/1906/92 +f 990/1907/91 977/1901/82 978/1908/91 +f 997/1909/86 984/1904/87 985/1910/86 +f 994/1911/89 981/1906/92 982/1912/89 +f 991/1913/85 978/1914/91 979/1894/85 +f 998/1915/93 985/1910/86 986/1897/93 +f 988/1916/83 975/1898/90 976/1900/83 +f 995/1917/88 982/1912/89 983/1903/88 +f 1016/1918/93 1003/1919/86 1004/1920/93 +f 1011/1921/92 1010/1922/84 999/1923/92 +f 1013/1924/88 1000/1925/89 1001/1926/88 +f 1020/1927/91 1007/1928/82 1008/1929/91 +f 1017/1930/90 1004/1920/93 1005/1931/90 +f 1014/1932/87 1001/1926/88 1002/1933/87 +f 1021/1934/85 1008/1929/91 1009/1935/85 +f 1018/1936/83 1005/1931/90 1006/1937/83 +f 1015/1938/86 1002/1939/87 1003/1919/86 +f 1022/1940/84 1009/1935/85 1010/1922/84 +f 1012/1941/89 999/1923/92 1000/1925/89 +f 1019/1942/82 1006/1937/83 1007/1928/82 +f 1040/1943/91 1027/1944/82 1028/1945/91 +f 1035/1946/86 1034/1947/87 1023/1948/86 +f 1037/1949/90 1024/1950/93 1025/1951/90 +f 1044/1952/89 1031/1953/92 1032/1954/89 +f 1041/1955/85 1028/1945/91 1029/1956/85 +f 1038/1957/83 1025/1951/90 1026/1958/83 +f 1045/1959/88 1032/1954/89 1033/1960/88 +f 1042/1961/84 1029/1956/85 1030/1962/84 +f 1039/1963/82 1026/1964/83 1027/1944/82 +f 1046/1965/87 1033/1960/88 1034/1947/87 +f 1036/1966/93 1023/1948/86 1024/1950/93 +f 1043/1967/92 1030/1962/84 1031/1953/92 +f 1064/1968/87 1051/1969/88 1052/1970/87 +f 1059/1971/85 1058/1972/91 1047/1973/85 +f 1061/1974/92 1048/1975/84 1049/1976/92 +f 1068/1977/83 1055/1978/90 1056/1979/83 +f 1065/1980/86 1052/1970/87 1053/1981/86 +f 1062/1982/89 1049/1976/92 1050/1983/89 +f 1069/1984/82 1056/1979/83 1057/1985/82 +f 1066/1986/93 1053/1981/86 1054/1987/93 +f 1063/1988/88 1050/1989/89 1051/1969/88 +f 1070/1990/91 1057/1985/82 1058/1972/91 +f 1060/1991/84 1047/1973/85 1048/1975/84 +f 1067/1992/90 1054/1987/93 1055/1978/90 +f 921/1818/82 922/1830/83 910/1819/83 +f 918/1821/84 919/1832/85 907/1822/85 +f 925/1824/86 926/1834/87 914/1825/87 +f 915/1827/88 916/1835/89 904/1828/89 +f 922/1830/83 923/1837/90 911/1831/90 +f 919/1832/85 920/1839/91 908/1833/91 +f 926/1834/87 915/1827/88 903/1829/88 +f 916/1835/89 917/1840/92 905/1836/92 +f 923/1837/90 924/1993/93 912/1838/93 +f 920/1839/91 921/1818/82 909/1820/82 +f 917/1840/92 918/1821/84 906/1823/84 +f 924/1841/93 925/1824/86 913/1826/86 +f 944/1843/89 943/1863/92 931/1844/92 +f 939/1846/82 950/1865/83 938/1847/83 +f 941/1849/85 940/1866/91 928/1850/91 +f 948/1852/93 947/1867/86 935/1853/86 +f 945/1855/88 944/1843/89 932/1845/89 +f 942/1857/84 941/1849/85 929/1851/85 +f 949/1859/90 948/1852/93 936/1854/93 +f 946/1861/87 945/1855/88 933/1856/88 +f 943/1863/92 942/1994/84 930/1864/84 +f 950/1865/83 949/1859/90 937/1860/90 +f 940/1866/91 939/1846/82 927/1848/82 +f 947/1867/86 946/1861/87 934/1862/87 +f 968/1868/83 967/1888/90 955/1869/90 +f 963/1871/88 974/1890/89 962/1872/89 +f 965/1874/86 964/1891/87 952/1875/87 +f 972/1877/84 971/1892/85 959/1878/85 +f 969/1880/82 968/1868/83 956/1870/83 +f 966/1882/93 965/1874/86 953/1876/86 +f 973/1884/92 972/1877/84 960/1879/84 +f 970/1886/91 969/1880/82 957/1881/82 +f 967/1888/90 966/1995/93 954/1889/93 +f 974/1890/89 973/1884/92 961/1885/92 +f 964/1891/87 963/1871/88 951/1873/88 +f 971/1892/85 970/1886/91 958/1887/91 +f 992/1893/84 991/1913/85 979/1894/85 +f 987/1896/90 998/1915/93 986/1897/93 +f 989/1899/82 988/1916/83 976/1900/83 +f 996/1902/87 995/1917/88 983/1903/88 +f 993/1905/92 992/1893/84 980/1895/84 +f 990/1907/91 989/1899/82 977/1901/82 +f 997/1909/86 996/1902/87 984/1904/87 +f 994/1911/89 993/1905/92 981/1906/92 +f 991/1913/85 990/1996/91 978/1914/91 +f 998/1915/93 997/1909/86 985/1910/86 +f 988/1916/83 987/1896/90 975/1898/90 +f 995/1917/88 994/1911/89 982/1912/89 +f 1016/1918/93 1015/1938/86 1003/1919/86 +f 1011/1921/92 1022/1940/84 1010/1922/84 +f 1013/1924/88 1012/1941/89 1000/1925/89 +f 1020/1927/91 1019/1942/82 1007/1928/82 +f 1017/1930/90 1016/1918/93 1004/1920/93 +f 1014/1932/87 1013/1924/88 1001/1926/88 +f 1021/1934/85 1020/1927/91 1008/1929/91 +f 1018/1936/83 1017/1930/90 1005/1931/90 +f 1015/1938/86 1014/1997/87 1002/1939/87 +f 1022/1940/84 1021/1934/85 1009/1935/85 +f 1012/1941/89 1011/1921/92 999/1923/92 +f 1019/1942/82 1018/1936/83 1006/1937/83 +f 1040/1943/91 1039/1963/82 1027/1944/82 +f 1035/1946/86 1046/1965/87 1034/1947/87 +f 1037/1949/90 1036/1966/93 1024/1950/93 +f 1044/1952/89 1043/1967/92 1031/1953/92 +f 1041/1955/85 1040/1943/91 1028/1945/91 +f 1038/1957/83 1037/1949/90 1025/1951/90 +f 1045/1959/88 1044/1952/89 1032/1954/89 +f 1042/1961/84 1041/1955/85 1029/1956/85 +f 1039/1963/82 1038/1998/83 1026/1964/83 +f 1046/1965/87 1045/1959/88 1033/1960/88 +f 1036/1966/93 1035/1946/86 1023/1948/86 +f 1043/1967/92 1042/1961/84 1030/1962/84 +f 1064/1968/87 1063/1988/88 1051/1969/88 +f 1059/1971/85 1070/1990/91 1058/1972/91 +f 1061/1974/92 1060/1991/84 1048/1975/84 +f 1068/1977/83 1067/1992/90 1055/1978/90 +f 1065/1980/86 1064/1968/87 1052/1970/87 +f 1062/1982/89 1061/1974/92 1049/1976/92 +f 1069/1984/82 1068/1977/83 1056/1979/83 +f 1066/1986/93 1065/1980/86 1053/1981/86 +f 1063/1988/88 1062/1999/89 1050/1989/89 +f 1070/1990/91 1069/1984/82 1057/1985/82 +f 1060/1991/84 1059/1971/85 1047/1973/85 +f 1067/1992/90 1066/1986/93 1054/1987/93 +o Scope +v -3.125000 3.437500 0.375000 +v 3.125000 3.437500 0.375000 +v -3.125000 3.437500 -0.375000 +v 3.125000 3.437500 -0.375000 +v -3.125000 3.812500 -0.375000 +v -3.125000 3.812500 0.375000 +v 3.125000 3.812500 0.375000 +v 3.125000 3.812500 -0.375000 +v 3.125000 3.437500 0.125000 +v 3.000000 3.187500 0.125000 +v 3.125000 3.437500 -0.125000 +v 3.000000 3.187500 -0.125000 +v -1.125000 3.437500 0.125000 +v -1.000000 3.187500 0.125000 +v -1.125000 3.437500 -0.125000 +v -1.000000 3.187500 -0.125000 +v 2.875000 4.875000 -0.625000 +v 2.875000 5.187500 -0.541266 +v 2.875000 5.416266 -0.312500 +v 2.875000 5.500000 0.000000 +v 2.875000 5.416266 0.312500 +v 2.875000 5.187500 0.541266 +v 2.875000 4.875000 0.625000 +v 2.875000 4.562500 0.541266 +v 2.875000 4.333735 0.312500 +v 2.875000 4.250000 0.000000 +v 2.875000 4.333734 -0.312500 +v 2.875000 4.562500 -0.541265 +v -2.625000 4.875000 -0.625000 +v -2.625000 5.187500 -0.541266 +v -2.625000 5.416266 -0.312500 +v -2.625000 5.500000 0.000000 +v -2.625000 5.416266 0.312500 +v -2.625000 5.187500 0.541266 +v -2.625000 4.875000 0.625000 +v -2.625000 4.562500 0.541266 +v -2.625000 4.333735 0.312500 +v -2.625000 4.250000 0.000000 +v -2.625000 4.333734 -0.312500 +v -2.625000 4.562500 -0.541265 +v 3.875000 4.875000 -0.750000 +v 3.875000 5.250000 -0.649519 +v 3.875000 5.524519 -0.375000 +v 3.875000 5.625000 0.000000 +v 3.875000 5.524519 0.375000 +v 3.875000 5.250000 0.649519 +v 3.875000 4.875000 0.750000 +v 3.875000 4.500000 0.649519 +v 3.875000 4.225481 0.375000 +v 3.875000 4.125000 0.000000 +v 3.875000 4.225481 -0.374999 +v 3.875000 4.500000 -0.649518 +v 5.125000 4.875000 -0.750000 +v 5.125000 5.250000 -0.649519 +v 5.125000 5.524519 -0.375000 +v 5.125000 5.625000 0.000000 +v 5.125000 5.524519 0.375000 +v 5.125000 5.250000 0.649519 +v 5.125000 4.875000 0.750000 +v 5.125000 4.500000 0.649519 +v 5.125000 4.225481 0.375000 +v 5.125000 4.125000 0.000000 +v 5.125000 4.225481 -0.374999 +v 5.125000 4.500000 -0.649518 +v 5.125000 4.875000 -0.625000 +v 5.125000 5.187500 -0.541266 +v 5.125000 5.416266 -0.312500 +v 5.125000 5.500000 0.000000 +v 5.125000 5.416266 0.312500 +v 5.125000 5.187500 0.541266 +v 5.125000 4.875000 0.625000 +v 5.125000 4.562500 0.541266 +v 5.125000 4.333735 0.312500 +v 5.125000 4.250000 0.000000 +v 5.125000 4.333734 -0.312500 +v 5.125000 4.562500 -0.541265 +v 4.875000 4.875000 -0.625000 +v 4.875000 5.187500 -0.541266 +v 4.875000 5.416266 -0.312500 +v 4.875000 5.500000 0.000000 +v 4.875000 5.416266 0.312500 +v 4.875000 5.187500 0.541266 +v 4.875000 4.875000 0.625000 +v 4.875000 4.562500 0.541266 +v 4.875000 4.333735 0.312500 +v 4.875000 4.250000 0.000000 +v 4.875000 4.333734 -0.312500 +v 4.875000 4.562500 -0.541265 +v -3.125000 4.875000 -0.750000 +v -3.125000 5.250000 -0.649519 +v -3.125000 5.524519 -0.375000 +v -3.125000 5.625000 0.000000 +v -3.125000 5.524519 0.375000 +v -3.125000 5.250000 0.649519 +v -3.125000 4.875000 0.750000 +v -3.125000 4.500000 0.649519 +v -3.125000 4.225481 0.375000 +v -3.125000 4.125000 0.000000 +v -3.125000 4.225481 -0.374999 +v -3.125000 4.500000 -0.649518 +v -3.625000 4.875000 -0.750000 +v -3.625000 5.250000 -0.649519 +v -3.625000 5.524519 -0.375000 +v -3.625000 5.625000 0.000000 +v -3.625000 5.524519 0.375000 +v -3.625000 5.250000 0.649519 +v -3.625000 4.875000 0.750000 +v -3.625000 4.500000 0.649519 +v -3.625000 4.225481 0.375000 +v -3.625000 4.125000 0.000000 +v -3.625000 4.225481 -0.374999 +v -3.625000 4.500000 -0.649518 +v -4.125001 4.875000 -0.937500 +v -4.125001 5.343750 -0.811898 +v -4.125001 5.686898 -0.468750 +v -4.125001 5.812499 0.000000 +v -4.125001 5.686898 0.468750 +v -4.125001 5.343750 0.811899 +v -4.125001 4.875000 0.937500 +v -4.125001 4.406250 0.811899 +v -4.125001 4.063101 0.468750 +v -4.125001 3.937500 0.000001 +v -4.125001 4.063101 -0.468749 +v -4.125001 4.406249 -0.811898 +v -5.375001 4.875000 -0.937500 +v -5.375001 5.343750 -0.811898 +v -5.375001 5.686898 -0.468750 +v -5.375001 5.812499 0.000000 +v -5.375001 5.686898 0.468750 +v -5.375001 5.343750 0.811899 +v -5.375001 4.875000 0.937500 +v -5.375001 4.406250 0.811899 +v -5.375001 4.063101 0.468750 +v -5.375001 3.937500 0.000001 +v -5.375001 4.063101 -0.468749 +v -5.375001 4.406249 -0.811898 +v -5.375001 4.875000 -0.812500 +v -5.375001 5.281250 -0.703645 +v -5.375001 5.578646 -0.406250 +v -5.375001 5.687500 0.000000 +v -5.375001 5.578646 0.406250 +v -5.375001 5.281250 0.703646 +v -5.375001 4.875000 0.812500 +v -5.375001 4.468750 0.703646 +v -5.375001 4.171354 0.406251 +v -5.375001 4.062500 0.000001 +v -5.375001 4.171353 -0.406249 +v -5.375001 4.468750 -0.703645 +v -5.125001 4.875000 -0.812500 +v -5.125001 5.281250 -0.703645 +v -5.125001 5.578646 -0.406250 +v -5.125001 5.687500 0.000000 +v -5.125001 5.578646 0.406250 +v -5.125001 5.281250 0.703646 +v -5.125001 4.875000 0.812500 +v -5.125001 4.468750 0.703646 +v -5.125001 4.171354 0.406251 +v -5.125001 4.062500 0.000001 +v -5.125001 4.171353 -0.406249 +v -5.125001 4.468750 -0.703645 +v 1.375000 5.625000 0.000000 +v 1.375000 5.558013 0.500000 +v 1.375000 5.125000 1.000000 +v 1.375000 4.191987 -0.500000 +v 1.375000 4.125000 0.000000 +v 1.375000 4.191988 0.500000 +v 1.375000 4.625000 1.000000 +v 1.375000 4.625000 -1.000000 +v 1.375000 5.558013 -0.500000 +v 1.375000 5.125000 -1.000000 +v 2.625000 4.625000 -1.000000 +v 2.625000 4.625000 1.000000 +v 2.625000 4.191988 0.500000 +v 2.625000 4.125000 0.000000 +v 2.625000 4.191987 -0.500000 +v 2.625000 5.125000 1.000000 +v 2.625000 5.558013 0.500000 +v 2.625000 5.625000 0.000000 +v 2.625000 5.558013 -0.500000 +v 2.625000 5.125000 -1.000000 +v 1.500000 4.191988 0.500000 +v 1.500000 4.191987 -0.500000 +v 2.500000 4.191988 0.500000 +v 2.500000 4.191987 -0.500000 +v 1.500000 3.566988 0.500000 +v 1.500000 3.566987 -0.500000 +v 2.500000 3.566988 0.500000 +v 2.500000 3.566987 -0.500000 +v -0.625000 4.187500 0.687500 +v -0.625000 5.562500 0.687500 +v -0.625000 4.187500 -0.687500 +v -0.625000 5.562500 -0.687500 +v 0.875000 4.187500 0.687500 +v 0.875000 5.562500 0.687500 +v 0.875000 4.187500 -0.687500 +v 0.875000 5.562500 -0.687500 +v -0.750000 4.312500 -0.562500 +v -0.750000 4.312500 0.562500 +v -0.750000 5.437500 0.562500 +v -0.750000 5.437500 -0.562500 +v 0.125000 5.562500 -0.562500 +v -0.156250 5.562500 -0.487139 +v -0.362139 5.562500 -0.281250 +v -0.437500 5.562500 0.000000 +v -0.362139 5.562500 0.281250 +v -0.156250 5.562500 0.487139 +v 0.125000 5.562500 0.562500 +v 0.406250 5.562500 0.487140 +v 0.612139 5.562500 0.281250 +v 0.687500 5.562500 0.000000 +v 0.612139 5.562500 -0.281250 +v 0.406250 5.562500 -0.487139 +v 0.125000 5.687500 -0.562500 +v -0.156250 5.687500 -0.487139 +v -0.362139 5.687500 -0.281250 +v -0.437500 5.687500 0.000000 +v -0.362139 5.687500 0.281250 +v -0.156250 5.687500 0.487139 +v 0.125000 5.687500 0.562500 +v 0.406250 5.687500 0.487140 +v 0.612139 5.687500 0.281250 +v 0.687500 5.687500 0.000000 +v 0.612139 5.687500 -0.281250 +v 0.406250 5.687500 -0.487139 +v 0.125000 5.687500 -0.656250 +v -0.203125 5.687500 -0.568329 +v -0.443329 5.687500 -0.328125 +v -0.531250 5.687500 0.000000 +v -0.443329 5.687500 0.328125 +v -0.203125 5.687500 0.568330 +v 0.125000 5.687500 0.656250 +v 0.453125 5.687500 0.568330 +v 0.693329 5.687500 0.328126 +v 0.781250 5.687500 0.000001 +v 0.693329 5.687500 -0.328124 +v 0.453125 5.687500 -0.568328 +v 0.125000 6.062500 -0.656250 +v -0.203125 6.062500 -0.568329 +v -0.443329 6.062500 -0.328125 +v -0.531250 6.062500 0.000000 +v -0.443329 6.062500 0.328125 +v -0.203125 6.062500 0.568330 +v 0.125000 6.062500 0.656250 +v 0.453125 6.062500 0.568330 +v 0.693329 6.062500 0.328126 +v 0.781250 6.062500 0.000001 +v 0.693329 6.062500 -0.328124 +v 0.453125 6.062500 -0.568328 +v -2.375000 5.625000 0.000000 +v -2.375000 5.558013 0.500000 +v -2.375000 5.125000 1.000000 +v -2.375000 4.191987 -0.500000 +v -2.375000 4.125000 0.000000 +v -2.375000 4.191988 0.500000 +v -2.375000 4.625000 1.000000 +v -2.375000 4.625000 -1.000000 +v -2.375000 5.558013 -0.500000 +v -2.375000 5.125000 -1.000000 +v -1.125000 4.625000 -1.000000 +v -1.125000 4.625000 1.000000 +v -1.125000 4.191988 0.500000 +v -1.125000 4.125000 0.000000 +v -1.125000 4.191987 -0.500000 +v -1.125000 5.125000 1.000000 +v -1.125000 5.558013 0.500000 +v -1.125000 5.625000 0.000000 +v -1.125000 5.558013 -0.500000 +v -1.125000 5.125000 -1.000000 +v 0.125000 5.437500 0.687500 +v -0.156250 5.362139 0.687500 +v -0.362139 5.156250 0.687500 +v -0.437500 4.875000 0.687500 +v -0.362139 4.593750 0.687500 +v -0.156250 4.387861 0.687500 +v 0.125000 4.312500 0.687500 +v 0.406250 4.387860 0.687500 +v 0.612139 4.593750 0.687500 +v 0.687500 4.875000 0.687500 +v 0.612139 5.156250 0.687500 +v 0.406250 5.362139 0.687500 +v 0.125000 5.437500 0.812500 +v -0.156250 5.362139 0.812500 +v -0.362139 5.156250 0.812500 +v -0.437500 4.875000 0.812500 +v -0.362139 4.593750 0.812500 +v -0.156250 4.387861 0.812500 +v 0.125000 4.312500 0.812500 +v 0.406250 4.387860 0.812500 +v 0.612139 4.593750 0.812500 +v 0.687500 4.875000 0.812500 +v 0.612139 5.156250 0.812500 +v 0.406250 5.362139 0.812500 +v 0.125000 5.531250 0.812500 +v -0.203125 5.443329 0.812500 +v -0.443329 5.203125 0.812500 +v -0.531250 4.875000 0.812500 +v -0.443329 4.546875 0.812500 +v -0.203125 4.306671 0.812500 +v 0.125000 4.218750 0.812500 +v 0.453125 4.306670 0.812500 +v 0.693329 4.546875 0.812500 +v 0.781250 4.875000 0.812500 +v 0.693329 5.203125 0.812500 +v 0.453125 5.443328 0.812500 +v 0.125000 5.531250 1.187500 +v -0.203125 5.443329 1.187500 +v -0.443329 5.203125 1.187500 +v -0.531250 4.875000 1.187500 +v -0.443329 4.546875 1.187500 +v -0.203125 4.306671 1.187500 +v 0.125000 4.218750 1.187500 +v 0.453125 4.306670 1.187500 +v 0.693329 4.546875 1.187500 +v 0.781250 4.875000 1.187500 +v 0.693329 5.203125 1.187500 +v 0.453125 5.443328 1.187500 +v -2.250000 4.191988 0.500000 +v -2.250000 4.191987 -0.500000 +v -1.250000 4.191988 0.500000 +v -1.250000 4.191987 -0.500000 +v -2.250000 3.566988 0.500000 +v -2.250000 3.566987 -0.500000 +v -1.250000 3.566988 0.500000 +v -1.250000 3.566987 -0.500000 +vt 0.436170 0.387097 +vt 0.968085 0.451613 +vt 0.436170 0.451613 +vt 0.968085 0.483871 +vt 0.436170 0.548387 +vt 0.436170 0.483871 +vt 1.000000 0.548387 +vt 1.000000 0.483871 +vt 0.404255 0.483871 +vt 0.404255 0.548387 +vt 0.436170 0.580645 +vt 0.968085 0.548387 +vt 0.968085 0.580645 +vt 0.978723 0.580645 +vt 1.000000 0.602151 +vt 0.978723 0.602151 +vt 0.968085 0.623656 +vt 0.617021 0.602151 +vt 0.978723 0.602151 +vt 0.627660 0.580645 +vt 0.968085 0.580645 +vt 0.595745 0.602151 +vt 0.617021 0.580645 +vt 0.617021 0.602151 +vt 0.968085 0.193548 +vt 0.978723 0.161290 +vt 0.978723 0.193548 +vt 0.968085 0.225806 +vt 0.978723 0.225806 +vt 0.968085 0.258065 +vt 0.978723 0.258065 +vt 0.968085 0.290323 +vt 0.978723 0.290323 +vt 0.978723 0.322581 +vt 0.968085 0.322581 +vt 0.978723 0.354839 +vt 0.968085 0.354839 +vt 0.978723 0.387097 +vt 0.968085 0.387097 +vt 0.968085 -0.000000 +vt 0.978723 0.032258 +vt 0.968085 0.032258 +vt 0.978723 0.064516 +vt 0.968085 0.064516 +vt 0.978723 0.096774 +vt 0.968085 0.096774 +vt 0.978723 0.129032 +vt 0.968085 0.129032 +vt 0.968085 0.161290 +vt 0.026755 0.616174 +vt 0.026755 0.523611 +vt 0.106064 0.569892 +vt 0.031915 0.258065 +vt 0.021277 0.215054 +vt 0.031915 0.215054 +vt 0.031915 0.172043 +vt 0.021277 0.172043 +vt 0.031915 0.129032 +vt 0.021277 0.129032 +vt 0.031915 0.086022 +vt 0.021277 0.043011 +vt 0.031915 0.043011 +vt 0.021277 0.000000 +vt 0.031915 0.000000 +vt 0.031915 0.516129 +vt 0.021277 0.473118 +vt 0.031915 0.473118 +vt 0.021277 0.430108 +vt 0.031915 0.430108 +vt 0.021277 0.387097 +vt 0.031915 0.387097 +vt 0.021277 0.344086 +vt 0.031915 0.344086 +vt 0.021277 0.301075 +vt 0.031915 0.301075 +vt 0.327040 0.396614 +vt 0.361527 0.456989 +vt 0.258066 0.517365 +vt 0.638298 0.677696 +vt 0.680669 0.683433 +vt 0.638298 0.806175 +vt 0.872523 0.800438 +vt 0.830152 0.763349 +vt 0.872523 0.683433 +vt 0.861702 1.000000 +vt 0.946809 0.946237 +vt 0.946809 1.000000 +vt 0.946809 0.860215 +vt 0.861702 0.806452 +vt 0.946809 0.806452 +vt 0.861702 0.946237 +vt 0.808511 0.860215 +vt 0.861702 0.860215 +vt 1.000000 0.860215 +vt 1.000000 0.946237 +vt 0.202128 0.881720 +vt 0.191489 0.774194 +vt 0.202128 0.763441 +vt 0.329787 0.881720 +vt 0.329787 0.763441 +vt 0.446809 0.645161 +vt 0.446809 0.763441 +vt 0.329787 0.645161 +vt 0.202128 0.526882 +vt 0.329787 0.526882 +vt 0.202128 1.000000 +vt 0.191489 0.655914 +vt 0.095745 0.752688 +vt 0.095745 0.655914 +vt 0.202128 0.645161 +vt 0.191489 0.537634 +vt 0.191489 0.892473 +vt 0.553191 0.870968 +vt 0.521277 0.881720 +vt 0.521277 0.870968 +vt 0.585106 0.870968 +vt 0.553191 0.881720 +vt 0.617021 0.870968 +vt 0.585106 0.881720 +vt 0.648936 0.870968 +vt 0.617021 0.881720 +vt 0.680851 0.881720 +vt 0.648936 0.881720 +vt 0.680851 0.870968 +vt 0.712766 0.881720 +vt 0.712766 0.870968 +vt 0.744681 0.881720 +vt 0.744681 0.870968 +vt 0.776596 0.881720 +vt 0.776596 0.870968 +vt 0.808511 0.881720 +vt 0.457447 0.870968 +vt 0.425532 0.881720 +vt 0.425532 0.870968 +vt 0.489362 0.870968 +vt 0.457447 0.881720 +vt 0.489362 0.881720 +vt 0.103745 0.863006 +vt 0.103745 0.760650 +vt 0.191446 0.811828 +vt 0.638298 0.677696 +vt 0.680669 0.683433 +vt 0.638298 0.806175 +vt 0.872523 0.800438 +vt 0.830152 0.763349 +vt 0.872523 0.683433 +vt 0.553191 0.870968 +vt 0.521277 0.881720 +vt 0.521277 0.870968 +vt 0.585106 0.870968 +vt 0.553191 0.881720 +vt 0.617021 0.870968 +vt 0.585106 0.881720 +vt 0.648936 0.870968 +vt 0.617021 0.881720 +vt 0.680851 0.881720 +vt 0.648936 0.881720 +vt 0.712766 0.870968 +vt 0.680851 0.870968 +vt 0.744681 0.870968 +vt 0.712766 0.881720 +vt 0.776596 0.881720 +vt 0.744681 0.881720 +vt 0.776596 0.870968 +vt 0.808511 0.881720 +vt 0.457447 0.870968 +vt 0.425532 0.881720 +vt 0.425532 0.870968 +vt 0.489362 0.870968 +vt 0.457447 0.881720 +vt 0.489362 0.881720 +vt 0.103745 0.863006 +vt 0.103745 0.760650 +vt 0.191446 0.811828 +vt 0.861702 1.000000 +vt 0.946809 0.946237 +vt 0.946809 1.000000 +vt 0.946809 0.860215 +vt 0.861702 0.806452 +vt 0.946809 0.806452 +vt 0.861702 0.946237 +vt 0.808511 0.860215 +vt 0.861702 0.860215 +vt 1.000000 0.860215 +vt 1.000000 0.946237 +vt 0.968085 0.387097 +vt 1.000000 0.580645 +vt 0.627660 0.623656 +vt 0.595745 0.580645 +vt 0.978723 0.000000 +vt 0.098980 0.596613 +vt 0.079628 0.616174 +vt 0.053191 0.623333 +vt 0.007403 0.596613 +vt 0.000319 0.569892 +vt 0.007403 0.543172 +vt 0.053191 0.516451 +vt 0.079628 0.523611 +vt 0.098980 0.543172 +vt 0.021277 0.258065 +vt 0.021277 0.086022 +vt 0.021277 0.516129 +vt 0.232820 0.491847 +vt 0.223579 0.456989 +vt 0.232820 0.422131 +vt 0.258066 0.396614 +vt 0.292553 0.387274 +vt 0.352286 0.422131 +vt 0.352286 0.491847 +vt 0.327040 0.517365 +vt 0.292553 0.526705 +vt 0.723040 0.720522 +vt 0.723040 0.763349 +vt 0.680669 0.800438 +vt 0.595927 0.800438 +vt 0.595927 0.683433 +vt 0.553556 0.763349 +vt 0.553556 0.720522 +vt 0.830152 0.720522 +vt 0.914894 0.677696 +vt 0.914894 0.806175 +vt 0.957264 0.683433 +vt 0.999636 0.720522 +vt 0.999636 0.763349 +vt 0.957264 0.800438 +vt 0.808511 0.946237 +vt 0.191489 0.870968 +vt 0.329787 1.000000 +vt 0.191489 0.752688 +vt 0.191489 0.634409 +vt 0.191489 0.989247 +vt 0.808511 0.870968 +vt 0.183613 0.841376 +vt 0.162212 0.863006 +vt 0.132979 0.870924 +vt 0.082345 0.841376 +vt 0.074512 0.811828 +vt 0.082345 0.782280 +vt 0.132979 0.752732 +vt 0.162212 0.760650 +vt 0.183613 0.782280 +vt 0.723040 0.720522 +vt 0.723040 0.763349 +vt 0.680669 0.800438 +vt 0.595927 0.800438 +vt 0.595927 0.683433 +vt 0.553556 0.763349 +vt 0.553556 0.720522 +vt 0.830152 0.720522 +vt 0.914894 0.677696 +vt 0.914894 0.806175 +vt 0.957264 0.683433 +vt 0.999636 0.720522 +vt 0.999636 0.763349 +vt 0.957264 0.800438 +vt 0.808511 0.870968 +vt 0.183613 0.841376 +vt 0.162212 0.863006 +vt 0.132979 0.870924 +vt 0.082345 0.841376 +vt 0.074512 0.811828 +vt 0.082345 0.782280 +vt 0.132979 0.752732 +vt 0.162212 0.760650 +vt 0.183613 0.782280 +vt 0.808511 0.946237 +vt 0.308511 0.258065 +vt 0.776596 0.225806 +vt 0.776596 0.258065 +vt 0.308511 0.032258 +vt 0.776596 -0.000000 +vt 0.776596 0.032258 +vt 0.308511 0.129032 +vt 0.776596 0.096774 +vt 0.776596 0.129032 +vt 0.308511 0.225806 +vt 0.776596 0.193548 +vt 0.308511 0.387097 +vt 0.776596 0.354839 +vt 0.776596 0.387097 +vt 0.308511 0.096774 +vt 0.776596 0.064516 +vt 0.308511 0.193548 +vt 0.776596 0.161290 +vt 0.308511 0.354839 +vt 0.776596 0.322581 +vt 0.308511 0.290323 +vt 0.776596 0.290323 +vt 0.308511 0.064516 +vt 0.308511 0.161290 +vt 0.308511 0.322581 +vt 0.861702 0.161290 +vt 0.861702 0.193548 +vt 0.861702 0.225806 +vt 0.861702 0.258065 +vt 0.861702 0.290323 +vt 0.861702 0.322581 +vt 0.861702 0.354839 +vt 0.861702 0.387097 +vt 0.861702 0.032258 +vt 0.861702 0.064516 +vt 0.861702 0.096774 +vt 0.861702 0.129032 +vt 0.861702 -0.000000 +vt 1.000000 0.225806 +vt 1.000000 0.387097 +vt 1.000000 0.096774 +vt 1.000000 0.193548 +vt 1.000000 0.354839 +vt 1.000000 0.290323 +vt 1.000000 0.064516 +vt 1.000000 0.161290 +vt 1.000000 0.322581 +vt 1.000000 0.258065 +vt 1.000000 0.032258 +vt 1.000000 0.129032 +vt 0.265957 0.129032 +vt 0.265957 0.193548 +vt 0.265957 0.225806 +vt 0.265957 0.258065 +vt 0.265957 0.290323 +vt 0.265957 0.322581 +vt 0.265957 0.354839 +vt 0.265957 0.000000 +vt 0.308511 -0.000000 +vt 0.265957 0.064516 +vt 0.265957 0.096774 +vt 0.223404 0.096774 +vt 0.223404 0.193548 +vt 0.265957 0.387097 +vt 0.223404 0.354839 +vt 0.223404 0.064516 +vt 0.223404 0.161290 +vt 0.265957 0.161290 +vt 0.223404 0.322581 +vt 0.223404 0.258065 +vt 0.223404 0.032258 +vt 0.265957 0.032258 +vt 0.223404 0.129032 +vt 0.223404 0.290323 +vt 0.223404 0.225806 +vt 0.223404 0.000000 +vt 0.138298 0.215054 +vt 0.223404 0.172043 +vt 0.223404 0.204301 +vt 0.138298 0.258065 +vt 0.223404 0.215054 +vt 0.223404 0.247312 +vt 0.223404 0.290323 +vt 0.223404 0.258065 +vt 0.223404 0.333333 +vt 0.138298 0.301075 +vt 0.223404 0.301075 +vt 0.138298 0.387097 +vt 0.223404 0.344086 +vt 0.223404 0.376344 +vt 0.223404 0.419355 +vt 0.223404 0.387097 +vt 0.138298 0.473118 +vt 0.223404 0.430108 +vt 0.223404 0.462366 +vt 0.138298 0.516129 +vt 0.223404 0.473118 +vt 0.223404 0.505376 +vt 0.138298 0.043011 +vt 0.138298 0.086022 +vt 0.223404 0.043011 +vt 0.223404 0.075269 +vt 0.223404 0.118280 +vt 0.223404 0.086022 +vt 0.138298 0.172043 +vt 0.223404 0.129032 +vt 0.223404 0.161290 +vt 0.138298 0.000000 +vt 0.138298 0.129032 +vt 0.138298 0.430108 +vt 0.138298 0.344086 +vt 0.000000 0.172043 +vt 0.000000 0.387097 +vt -0.000000 0.301075 +vt -0.000000 0.000000 +vt 0.000000 0.129032 +vt -0.000000 0.258065 +vt 0.000000 0.473118 +vt -0.000000 0.086022 +vt -0.000000 0.215054 +vt 0.000000 0.430108 +vt 0.000000 0.344086 +vt 0.000000 0.043011 +vt 0.446809 0.666667 +vt 0.553191 0.720430 +vt 0.446809 0.720430 +vt 0.829787 0.763441 +vt 0.723404 0.720430 +vt 0.829787 0.720430 +vt 0.829787 0.666667 +vt 0.723404 0.623656 +vt 0.829787 0.623656 +vt 0.829787 0.817204 +vt 0.723404 0.763441 +vt 0.553191 0.763441 +vt 0.723404 0.666667 +vt 0.446809 0.817204 +vt 0.553191 0.860215 +vt 0.446809 0.860215 +vt 0.446809 0.623656 +vt 0.553191 0.666667 +vt 0.829787 0.860215 +vt 0.723404 0.817204 +vt 0.446809 0.763441 +vt 0.553191 0.817204 +vt 0.617021 0.860215 +vt 0.585106 0.860215 +vt 0.521277 0.860215 +vt 0.489362 0.860215 +vt 0.744681 0.860215 +vt 0.712766 0.860215 +vt 0.648936 0.860215 +vt 0.553191 0.860215 +vt 0.776596 0.860215 +vt 0.457447 0.860215 +vt 0.425532 0.860215 +vt 0.680851 0.860215 +vt 0.808511 0.860215 +vt 0.521277 0.913979 +vt 0.744681 0.913979 +vt 0.425532 0.913979 +vt 0.648936 0.913979 +vt 0.553191 0.913979 +vt 0.776596 0.913979 +vt 0.457447 0.913979 +vt 0.680851 0.913979 +vt 0.585106 0.913979 +vt 0.489362 0.913979 +vt 0.712766 0.913979 +vt 0.617021 0.913979 +vt 0.446809 0.666667 +vt 0.553191 0.720430 +vt 0.446809 0.720430 +vt 0.829787 0.763441 +vt 0.723404 0.720430 +vt 0.829787 0.720430 +vt 0.829787 0.666667 +vt 0.723404 0.623656 +vt 0.829787 0.623656 +vt 0.829787 0.817204 +vt 0.723404 0.763441 +vt 0.553191 0.763441 +vt 0.723404 0.666667 +vt 0.446809 0.817204 +vt 0.553191 0.860215 +vt 0.446809 0.860215 +vt 0.446809 0.623656 +vt 0.553191 0.666667 +vt 0.829787 0.860215 +vt 0.723404 0.817204 +vt 0.446809 0.763441 +vt 0.553191 0.817204 +vt 0.617021 0.860215 +vt 0.585106 0.860215 +vt 0.521277 0.860215 +vt 0.489362 0.860215 +vt 0.744681 0.860215 +vt 0.712766 0.860215 +vt 0.648936 0.860215 +vt 0.553191 0.860215 +vt 0.776596 0.860215 +vt 0.457447 0.860215 +vt 0.425532 0.860215 +vt 0.680851 0.860215 +vt 0.808511 0.860215 +vt 0.521277 0.913979 +vt 0.744681 0.913979 +vt 0.425532 0.913979 +vt 0.648936 0.913979 +vt 0.553191 0.913979 +vt 0.776596 0.913979 +vt 0.457447 0.913979 +vt 0.680851 0.913979 +vt 0.585106 0.913979 +vt 0.489362 0.913979 +vt 0.712766 0.913979 +vt 0.617021 0.913979 +vt 1.000000 -0.000000 +vt 0.223404 0.387097 +vt -0.000000 0.516129 +vt 0.553191 0.623656 +vt 0.723404 0.860215 +vt 0.808511 0.913979 +vt 0.553191 0.623656 +vt 0.723404 0.860215 +vt 0.808511 0.913979 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.5000 -0.8660 +vn -0.1240 0.4961 0.8593 +vn -0.1240 0.8593 0.4961 +vn -0.1240 0.9923 0.0000 +vn -0.1240 0.8593 -0.4961 +vn -0.1240 0.4961 -0.8593 +vn -0.1240 -0.0000 -0.9923 +vn -0.1240 -0.4961 -0.8593 +vn -0.1240 -0.8593 -0.4961 +vn -0.1240 -0.9923 0.0000 +vn -0.1240 -0.8593 0.4961 +vn -0.1240 -0.4961 0.8593 +vn -0.1240 0.0000 0.9923 +vn 0.2425 0.8402 0.4851 +vn 0.2425 0.4851 0.8402 +vn 0.2425 0.9701 0.0000 +vn 0.2425 0.8402 -0.4851 +vn 0.2425 0.4851 -0.8402 +vn 0.2425 -0.0000 -0.9701 +vn 0.2425 -0.4851 -0.8402 +vn 0.2425 -0.8402 -0.4851 +vn 0.2425 -0.9701 0.0000 +vn 0.2425 -0.8402 0.4851 +vn 0.2425 -0.4851 0.8402 +vn 0.2425 -0.0000 0.9701 +vn 0.3511 0.8109 0.4682 +vn 0.3511 0.4682 0.8109 +vn 0.3511 0.9363 -0.0000 +vn 0.3511 0.8109 -0.4682 +vn 0.3511 0.4682 -0.8109 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 -0.4682 -0.8109 +vn 0.3511 -0.8109 -0.4682 +vn 0.3511 -0.9363 -0.0000 +vn 0.3511 -0.8109 0.4682 +vn 0.3511 -0.4682 0.8109 +vn 0.3511 0.0000 0.9363 +vn 0.0000 -0.9117 0.4109 +vn 0.0000 -0.4155 0.9096 +vn 0.0000 0.4155 -0.9096 +vn 0.0000 -0.4155 -0.9096 +vn 0.0000 -0.9117 -0.4109 +vn 0.0000 0.9117 -0.4109 +vn 0.0000 0.4155 0.9096 +vn 0.0000 0.9117 0.4109 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +s off +f 1073/2000/94 1072/2001/94 1071/2002/94 +f 1077/2003/95 1075/2004/95 1076/2005/95 +f 1074/2006/96 1077/2003/96 1072/2007/96 +f 1071/2008/97 1075/2004/97 1073/2009/97 +f 1073/2010/98 1078/2011/98 1074/2012/98 +f 1072/2001/99 1076/2005/99 1071/2002/99 +f 1080/2013/100 1081/2014/100 1079/2015/100 +f 1082/2016/98 1085/2017/98 1081/2018/98 +f 1079/2015/99 1084/2019/99 1080/2020/99 +f 1085/2021/101 1084/2022/101 1083/2023/101 +f 1126/2024/96 1139/2025/96 1138/2026/96 +f 1125/2027/96 1138/2026/96 1137/2028/96 +f 1124/2029/96 1137/2028/96 1136/2030/96 +f 1123/2031/96 1136/2030/96 1135/2032/96 +f 1123/2031/96 1146/2033/96 1134/2034/96 +f 1134/2034/96 1145/2035/96 1133/2036/96 +f 1133/2036/96 1144/2037/96 1132/2038/96 +f 1132/2039/96 1143/2040/96 1131/2041/96 +f 1131/2041/96 1142/2042/96 1130/2043/96 +f 1130/2043/96 1141/2044/96 1129/2045/96 +f 1129/2045/96 1140/2046/96 1128/2047/96 +f 1127/2048/96 1140/2046/96 1139/2025/96 +f 1151/2049/96 1155/2050/96 1147/2051/96 +f 1198/2052/97 1211/2053/97 1199/2054/97 +f 1211/2053/97 1200/2055/97 1199/2054/97 +f 1212/2056/97 1201/2057/97 1200/2055/97 +f 1213/2058/97 1202/2059/97 1201/2057/97 +f 1202/2059/97 1215/2060/97 1203/2061/97 +f 1203/2061/97 1216/2062/97 1204/2063/97 +f 1204/2064/97 1217/2065/97 1205/2066/97 +f 1205/2066/97 1218/2067/97 1206/2068/97 +f 1206/2068/97 1207/2069/97 1195/2070/97 +f 1195/2070/97 1208/2071/97 1196/2072/97 +f 1196/2072/97 1209/2073/97 1197/2074/97 +f 1209/2073/97 1198/2052/97 1197/2074/97 +f 1227/2075/97 1225/2076/97 1221/2077/97 +f 1244/2078/96 1245/2079/96 1248/2080/96 +f 1239/2081/97 1240/2082/97 1234/2083/97 +f 1251/2084/99 1257/2085/99 1253/2086/99 +f 1258/2087/98 1252/2088/98 1254/2089/98 +f 1255/2090/97 1252/2091/97 1256/2092/97 +f 1257/2085/94 1256/2092/94 1258/2087/94 +f 1257/2085/96 1254/2093/96 1253/2094/96 +f 1261/2095/102 1270/2096/102 1262/2097/102 +f 1262/2097/98 1265/2098/98 1261/2095/98 +f 1266/2099/96 1263/2100/96 1265/2101/96 +f 1264/2102/99 1259/2103/99 1263/2104/99 +f 1265/2098/94 1259/2105/94 1261/2095/94 +f 1262/2097/95 1264/2102/95 1266/2099/95 +f 1269/2106/97 1267/2107/97 1268/2108/97 +f 1260/2109/103 1268/2110/103 1259/2103/103 +f 1262/2097/104 1269/2106/104 1260/2109/104 +f 1259/2105/105 1267/2111/105 1261/2095/105 +f 1287/2112/94 1298/2113/94 1286/2114/94 +f 1288/2115/94 1299/2116/94 1287/2112/94 +f 1289/2117/94 1300/2118/94 1288/2115/94 +f 1290/2119/94 1301/2120/94 1289/2117/94 +f 1290/2119/94 1303/2121/94 1302/2122/94 +f 1291/2123/94 1304/2124/94 1303/2121/94 +f 1292/2125/94 1305/2126/94 1304/2124/94 +f 1293/2127/94 1306/2128/94 1305/2126/94 +f 1294/2129/94 1295/2130/94 1306/2128/94 +f 1284/2131/94 1295/2132/94 1283/2133/94 +f 1285/2134/94 1296/2135/94 1284/2131/94 +f 1286/2114/94 1297/2136/94 1285/2134/94 +f 1311/2137/95 1315/2138/95 1307/2139/95 +f 1332/2140/96 1333/2141/96 1336/2142/96 +f 1327/2143/97 1328/2144/97 1322/2145/97 +f 1355/2146/98 1366/2147/98 1354/2148/98 +f 1356/2149/98 1367/2150/98 1355/2146/98 +f 1357/2151/98 1368/2152/98 1356/2149/98 +f 1358/2153/98 1369/2154/98 1357/2151/98 +f 1358/2153/98 1371/2155/98 1370/2156/98 +f 1360/2157/98 1371/2155/98 1359/2158/98 +f 1361/2159/98 1372/2160/98 1360/2157/98 +f 1361/2159/98 1374/2161/98 1373/2162/98 +f 1362/2163/98 1363/2164/98 1374/2161/98 +f 1352/2165/98 1363/2166/98 1351/2167/98 +f 1353/2168/98 1364/2169/98 1352/2165/98 +f 1354/2148/98 1365/2170/98 1353/2168/98 +f 1379/2171/99 1383/2172/99 1375/2173/99 +f 1387/2174/99 1393/2175/99 1389/2176/99 +f 1394/2177/98 1388/2178/98 1390/2179/98 +f 1391/2180/97 1388/2181/97 1392/2182/97 +f 1393/2175/94 1392/2182/94 1394/2177/94 +f 1393/2175/96 1390/2183/96 1389/2184/96 +f 1073/2000/94 1074/2185/94 1072/2001/94 +f 1077/2003/95 1078/2011/95 1075/2004/95 +f 1074/2006/96 1078/2011/96 1077/2003/96 +f 1071/2008/97 1076/2005/97 1075/2004/97 +f 1073/2010/98 1075/2004/98 1078/2011/98 +f 1072/2001/99 1077/2003/99 1076/2005/99 +f 1080/2013/100 1082/2186/100 1081/2014/100 +f 1082/2016/98 1086/2187/98 1085/2017/98 +f 1079/2015/99 1083/2023/99 1084/2019/99 +f 1085/2021/101 1086/2188/101 1084/2022/101 +f 1126/2024/96 1127/2048/96 1139/2025/96 +f 1125/2027/96 1126/2024/96 1138/2026/96 +f 1124/2029/96 1125/2027/96 1137/2028/96 +f 1123/2031/96 1124/2029/96 1136/2030/96 +f 1123/2031/96 1135/2032/96 1146/2033/96 +f 1134/2034/96 1146/2033/96 1145/2035/96 +f 1133/2036/96 1145/2035/96 1144/2037/96 +f 1132/2039/96 1144/2189/96 1143/2040/96 +f 1131/2041/96 1143/2040/96 1142/2042/96 +f 1130/2043/96 1142/2042/96 1141/2044/96 +f 1129/2045/96 1141/2044/96 1140/2046/96 +f 1127/2048/96 1128/2047/96 1140/2046/96 +f 1147/2051/96 1148/2190/96 1149/2191/96 +f 1149/2191/96 1150/2192/96 1147/2051/96 +f 1150/2192/96 1151/2049/96 1147/2051/96 +f 1151/2049/96 1152/2193/96 1153/2194/96 +f 1153/2194/96 1154/2195/96 1155/2050/96 +f 1155/2050/96 1156/2196/96 1157/2197/96 +f 1157/2197/96 1158/2198/96 1155/2050/96 +f 1158/2198/96 1147/2051/96 1155/2050/96 +f 1151/2049/96 1153/2194/96 1155/2050/96 +f 1198/2052/97 1210/2199/97 1211/2053/97 +f 1211/2053/97 1212/2056/97 1200/2055/97 +f 1212/2056/97 1213/2058/97 1201/2057/97 +f 1213/2058/97 1214/2200/97 1202/2059/97 +f 1202/2059/97 1214/2200/97 1215/2060/97 +f 1203/2061/97 1215/2060/97 1216/2062/97 +f 1204/2064/97 1216/2201/97 1217/2065/97 +f 1205/2066/97 1217/2065/97 1218/2067/97 +f 1206/2068/97 1218/2067/97 1207/2069/97 +f 1195/2070/97 1207/2069/97 1208/2071/97 +f 1196/2072/97 1208/2071/97 1209/2073/97 +f 1209/2073/97 1210/2199/97 1198/2052/97 +f 1221/2077/97 1220/2202/97 1219/2203/97 +f 1219/2203/97 1230/2204/97 1221/2077/97 +f 1230/2204/97 1229/2205/97 1221/2077/97 +f 1229/2205/97 1228/2206/97 1227/2075/97 +f 1227/2075/97 1226/2207/97 1225/2076/97 +f 1225/2076/97 1224/2208/97 1223/2209/97 +f 1223/2209/97 1222/2210/97 1225/2076/97 +f 1222/2210/97 1221/2077/97 1225/2076/97 +f 1229/2205/97 1227/2075/97 1221/2077/97 +f 1245/2079/96 1241/2211/96 1250/2212/96 +f 1250/2212/96 1249/2213/96 1245/2079/96 +f 1249/2213/96 1248/2080/96 1245/2079/96 +f 1248/2080/96 1247/2214/96 1243/2215/96 +f 1247/2214/96 1246/2216/96 1243/2215/96 +f 1246/2216/96 1242/2217/96 1243/2215/96 +f 1243/2215/96 1244/2078/96 1248/2080/96 +f 1240/2082/97 1238/2218/97 1234/2083/97 +f 1234/2083/97 1235/2219/97 1231/2220/97 +f 1235/2219/97 1236/2221/97 1231/2220/97 +f 1236/2221/97 1237/2222/97 1233/2223/97 +f 1233/2223/97 1232/2224/97 1236/2221/97 +f 1232/2224/97 1231/2220/97 1236/2221/97 +f 1231/2220/97 1239/2081/97 1234/2083/97 +f 1251/2084/99 1255/2090/99 1257/2085/99 +f 1258/2087/98 1256/2092/98 1252/2088/98 +f 1255/2090/97 1251/2225/97 1252/2091/97 +f 1257/2085/94 1255/2090/94 1256/2092/94 +f 1257/2085/96 1258/2087/96 1254/2093/96 +f 1261/2095/102 1267/2226/102 1270/2096/102 +f 1262/2097/98 1266/2099/98 1265/2098/98 +f 1266/2099/96 1264/2102/96 1263/2100/96 +f 1264/2102/99 1260/2109/99 1259/2103/99 +f 1265/2098/94 1263/2227/94 1259/2105/94 +f 1262/2097/95 1260/2109/95 1264/2102/95 +f 1269/2106/97 1270/2228/97 1267/2107/97 +f 1260/2109/103 1269/2229/103 1268/2110/103 +f 1262/2097/104 1270/2228/104 1269/2106/104 +f 1259/2105/105 1268/2230/105 1267/2111/105 +f 1287/2112/94 1299/2116/94 1298/2113/94 +f 1288/2115/94 1300/2118/94 1299/2116/94 +f 1289/2117/94 1301/2120/94 1300/2118/94 +f 1290/2119/94 1302/2122/94 1301/2120/94 +f 1290/2119/94 1291/2123/94 1303/2121/94 +f 1291/2123/94 1292/2125/94 1304/2124/94 +f 1292/2125/94 1293/2127/94 1305/2126/94 +f 1293/2127/94 1294/2129/94 1306/2128/94 +f 1294/2129/94 1283/2231/94 1295/2130/94 +f 1284/2131/94 1296/2135/94 1295/2132/94 +f 1285/2134/94 1297/2136/94 1296/2135/94 +f 1286/2114/94 1298/2113/94 1297/2136/94 +f 1307/2139/95 1308/2232/95 1311/2137/95 +f 1308/2232/95 1309/2233/95 1311/2137/95 +f 1309/2233/95 1310/2234/95 1311/2137/95 +f 1311/2137/95 1312/2235/95 1313/2236/95 +f 1313/2236/95 1314/2237/95 1315/2138/95 +f 1315/2138/95 1316/2238/95 1317/2239/95 +f 1317/2239/95 1318/2240/95 1315/2138/95 +f 1318/2240/95 1307/2139/95 1315/2138/95 +f 1311/2137/95 1313/2236/95 1315/2138/95 +f 1333/2141/96 1329/2241/96 1338/2242/96 +f 1338/2242/96 1337/2243/96 1333/2141/96 +f 1337/2243/96 1336/2142/96 1333/2141/96 +f 1336/2142/96 1335/2244/96 1331/2245/96 +f 1335/2244/96 1334/2246/96 1331/2245/96 +f 1334/2246/96 1330/2247/96 1331/2245/96 +f 1331/2245/96 1332/2140/96 1336/2142/96 +f 1328/2144/97 1326/2248/97 1322/2145/97 +f 1322/2145/97 1323/2249/97 1319/2250/97 +f 1323/2249/97 1324/2251/97 1319/2250/97 +f 1324/2251/97 1325/2252/97 1321/2253/97 +f 1321/2253/97 1320/2254/97 1324/2251/97 +f 1320/2254/97 1319/2250/97 1324/2251/97 +f 1319/2250/97 1327/2143/97 1322/2145/97 +f 1355/2146/98 1367/2150/98 1366/2147/98 +f 1356/2149/98 1368/2152/98 1367/2150/98 +f 1357/2151/98 1369/2154/98 1368/2152/98 +f 1358/2153/98 1370/2156/98 1369/2154/98 +f 1358/2153/98 1359/2158/98 1371/2155/98 +f 1360/2157/98 1372/2160/98 1371/2155/98 +f 1361/2159/98 1373/2162/98 1372/2160/98 +f 1361/2159/98 1362/2163/98 1374/2161/98 +f 1362/2163/98 1351/2255/98 1363/2164/98 +f 1352/2165/98 1364/2169/98 1363/2166/98 +f 1353/2168/98 1365/2170/98 1364/2169/98 +f 1354/2148/98 1366/2147/98 1365/2170/98 +f 1375/2173/99 1376/2256/99 1377/2257/99 +f 1377/2257/99 1378/2258/99 1379/2171/99 +f 1379/2171/99 1380/2259/99 1383/2172/99 +f 1380/2259/99 1381/2260/99 1383/2172/99 +f 1381/2260/99 1382/2261/99 1383/2172/99 +f 1383/2172/99 1384/2262/99 1385/2263/99 +f 1385/2263/99 1386/2264/99 1383/2172/99 +f 1386/2264/99 1375/2173/99 1383/2172/99 +f 1375/2173/99 1377/2257/99 1379/2171/99 +f 1387/2174/99 1391/2180/99 1393/2175/99 +f 1394/2177/98 1392/2182/98 1388/2178/98 +f 1391/2180/97 1387/2265/97 1388/2181/97 +f 1393/2175/94 1391/2180/94 1392/2182/94 +f 1393/2175/96 1394/2177/96 1390/2183/96 +s 1 +f 1100/2266/106 1089/2267/107 1088/2268/106 +f 1107/2269/108 1096/2270/94 1095/2271/108 +f 1104/2272/109 1093/2273/99 1092/2274/109 +f 1101/2275/107 1090/2276/95 1089/2267/107 +f 1108/2277/94 1097/2278/110 1096/2279/94 +f 1105/2280/99 1094/2281/111 1093/2273/99 +f 1102/2282/95 1091/2283/112 1090/2276/95 +f 1109/2284/110 1098/2285/113 1097/2278/110 +f 1099/2286/98 1088/2268/106 1087/2287/98 +f 1106/2288/111 1095/2271/108 1094/2281/111 +f 1103/2289/112 1092/2274/109 1091/2283/112 +f 1110/2290/113 1087/2287/98 1098/2285/113 +f 1092/2274/114 1115/2291/115 1091/2283/115 +f 1091/2283/115 1114/2292/116 1090/2276/116 +f 1090/2276/116 1113/2293/117 1089/2267/117 +f 1089/2267/117 1112/2294/118 1088/2268/118 +f 1088/2268/118 1111/2295/119 1087/2287/119 +f 1087/2287/119 1122/2296/120 1098/2285/120 +f 1097/2278/121 1122/2296/120 1121/2297/121 +f 1096/2279/122 1121/2297/121 1120/2298/122 +f 1096/2270/122 1119/2299/123 1095/2271/123 +f 1095/2271/123 1118/2300/124 1094/2281/124 +f 1094/2281/124 1117/2301/125 1093/2273/125 +f 1092/2274/114 1117/2301/125 1116/2302/114 +f 1118/2300/111 1129/2045/99 1117/2301/99 +f 1115/2291/112 1126/2024/95 1114/2292/95 +f 1122/2296/113 1133/2036/110 1121/2297/110 +f 1112/2294/106 1123/2031/98 1111/2295/98 +f 1119/2299/108 1130/2043/111 1118/2300/111 +f 1116/2302/109 1127/2048/112 1115/2291/112 +f 1111/2295/98 1134/2034/113 1122/2296/113 +f 1113/2293/107 1124/2029/106 1112/2294/106 +f 1120/2303/94 1131/2041/108 1119/2299/108 +f 1117/2301/99 1128/2047/109 1116/2302/109 +f 1114/2292/95 1125/2027/107 1113/2293/107 +f 1121/2297/110 1132/2038/94 1120/2298/94 +f 1138/2026/94 1149/2304/108 1137/2028/108 +f 1145/2035/112 1156/2305/95 1144/2037/95 +f 1142/2042/106 1153/2306/98 1141/2044/98 +f 1139/2025/110 1150/2307/94 1138/2026/94 +f 1146/2033/109 1157/2308/112 1145/2035/112 +f 1136/2030/111 1147/2309/99 1135/2032/99 +f 1143/2040/107 1154/2310/106 1142/2042/106 +f 1140/2046/113 1151/2311/110 1139/2025/110 +f 1135/2032/99 1158/2312/109 1146/2033/109 +f 1137/2028/108 1148/2313/111 1136/2030/111 +f 1144/2189/95 1155/2314/107 1143/2040/107 +f 1141/2044/98 1152/2315/113 1140/2046/113 +f 1103/2289/126 1164/2316/127 1104/2272/127 +f 1162/2317/128 1103/2289/126 1102/2282/128 +f 1161/2318/129 1102/2282/128 1101/2275/129 +f 1100/2266/130 1161/2318/129 1101/2275/129 +f 1099/2286/131 1160/2319/130 1100/2266/130 +f 1110/2290/132 1159/2320/131 1099/2286/131 +f 1109/2284/133 1170/2321/132 1110/2290/132 +f 1108/2277/134 1169/2322/133 1109/2284/133 +f 1107/2269/135 1168/2323/134 1108/2324/134 +f 1166/2325/136 1107/2269/135 1106/2288/136 +f 1165/2326/137 1106/2288/136 1105/2280/137 +f 1164/2316/127 1105/2280/137 1104/2272/127 +f 1164/2316/109 1177/2327/99 1165/2326/99 +f 1161/2318/107 1174/2328/95 1162/2317/95 +f 1168/2329/94 1181/2330/110 1169/2322/110 +f 1165/2326/99 1178/2331/111 1166/2325/111 +f 1162/2317/95 1175/2332/112 1163/2333/112 +f 1169/2322/110 1182/2334/113 1170/2321/113 +f 1159/2320/98 1172/2335/106 1160/2319/106 +f 1166/2325/111 1179/2336/108 1167/2337/108 +f 1163/2333/112 1176/2338/109 1164/2316/109 +f 1170/2321/113 1171/2339/98 1159/2320/98 +f 1160/2319/106 1173/2340/107 1161/2318/107 +f 1167/2337/108 1180/2341/94 1168/2323/94 +f 1187/2342/138 1176/2343/139 1175/2344/138 +f 1186/2345/140 1175/2346/138 1174/2347/140 +f 1173/2348/141 1186/2345/140 1174/2349/140 +f 1172/2350/142 1185/2351/141 1173/2352/141 +f 1183/2353/143 1172/2354/142 1171/2355/143 +f 1182/2356/144 1183/2353/143 1171/2357/143 +f 1193/2358/145 1182/2359/144 1181/2360/145 +f 1192/2361/146 1181/2362/145 1180/2363/146 +f 1191/2364/147 1180/2341/146 1179/2336/147 +f 1190/2365/148 1179/2366/147 1178/2367/148 +f 1177/2368/149 1190/2365/148 1178/2369/148 +f 1188/2370/139 1177/2371/149 1176/2372/139 +f 1191/2364/108 1204/2063/94 1192/2373/94 +f 1188/2370/109 1201/2057/99 1189/2374/99 +f 1185/2351/107 1198/2052/95 1186/2345/95 +f 1192/2361/94 1205/2066/110 1193/2358/110 +f 1189/2374/99 1202/2059/111 1190/2365/111 +f 1186/2345/95 1199/2054/112 1187/2342/112 +f 1193/2358/110 1206/2068/113 1194/2375/113 +f 1183/2353/98 1196/2072/106 1184/2376/106 +f 1190/2365/111 1203/2061/108 1191/2364/108 +f 1187/2342/112 1200/2055/109 1188/2370/109 +f 1194/2375/113 1195/2070/98 1183/2353/98 +f 1184/2376/106 1197/2074/107 1185/2351/107 +f 1211/2053/110 1224/2377/113 1212/2056/113 +f 1218/2067/109 1219/2378/99 1207/2069/99 +f 1208/2071/111 1221/2379/108 1209/2073/108 +f 1215/2060/107 1228/2380/95 1216/2062/95 +f 1212/2056/113 1225/2381/98 1213/2058/98 +f 1209/2073/108 1222/2382/94 1210/2199/94 +f 1216/2201/95 1229/2383/112 1217/2065/112 +f 1213/2058/98 1226/2384/106 1214/2200/106 +f 1210/2199/94 1223/2385/110 1211/2053/110 +f 1217/2065/112 1230/2386/109 1218/2067/109 +f 1207/2069/99 1220/2387/111 1208/2071/111 +f 1214/2200/106 1227/2388/107 1215/2060/107 +f 1236/2389/150 1242/2390/151 1237/2391/151 +f 1240/2392/152 1241/2393/153 1238/2394/153 +f 1234/2395/154 1244/2396/94 1235/2397/94 +f 1239/2398/155 1250/2399/152 1240/2392/152 +f 1246/2400/156 1237/2391/151 1242/2390/151 +f 1238/2394/153 1245/2401/154 1234/2395/154 +f 1232/2402/157 1248/2403/95 1231/2404/95 +f 1235/2405/94 1243/2406/150 1236/2389/150 +f 1231/2407/95 1249/2408/155 1239/2398/155 +f 1233/2409/156 1247/2410/157 1232/2402/157 +f 1277/2411/99 1288/2115/158 1276/2412/158 +f 1274/2413/97 1285/2134/159 1273/2414/159 +f 1281/2415/160 1292/2125/96 1280/2416/96 +f 1278/2417/161 1289/2117/99 1277/2411/99 +f 1275/2418/162 1286/2114/97 1274/2413/97 +f 1282/2419/163 1293/2127/160 1281/2415/160 +f 1272/2420/164 1283/2133/98 1271/2421/98 +f 1279/2422/165 1290/2119/161 1278/2417/161 +f 1276/2412/158 1287/2112/162 1275/2418/162 +f 1271/2423/98 1294/2129/163 1282/2419/163 +f 1273/2414/159 1284/2131/164 1272/2420/164 +f 1280/2416/96 1291/2123/165 1279/2422/165 +f 1299/2116/162 1310/2424/97 1298/2113/97 +f 1306/2128/163 1317/2425/160 1305/2126/160 +f 1296/2135/164 1307/2426/98 1295/2132/98 +f 1303/2121/165 1314/2427/161 1302/2122/161 +f 1300/2118/158 1311/2428/162 1299/2116/162 +f 1295/2130/98 1318/2429/163 1306/2128/163 +f 1297/2136/159 1308/2430/164 1296/2135/164 +f 1304/2124/96 1315/2431/165 1303/2121/165 +f 1301/2120/99 1312/2432/158 1300/2118/158 +f 1298/2113/97 1309/2433/159 1297/2136/159 +f 1305/2126/160 1316/2434/96 1304/2124/96 +f 1302/2122/161 1313/2435/99 1301/2120/99 +f 1324/2436/150 1330/2437/151 1325/2438/151 +f 1328/2439/152 1329/2440/153 1326/2441/153 +f 1322/2442/154 1332/2443/94 1323/2444/94 +f 1327/2445/155 1338/2446/152 1328/2439/152 +f 1334/2447/156 1325/2438/151 1330/2437/151 +f 1326/2441/153 1333/2448/154 1322/2442/154 +f 1320/2449/157 1336/2450/95 1319/2451/95 +f 1323/2452/94 1331/2453/150 1324/2436/150 +f 1319/2454/95 1337/2455/155 1327/2445/155 +f 1321/2456/156 1335/2457/157 1320/2449/157 +f 1345/2458/94 1356/2149/166 1344/2459/166 +f 1342/2460/97 1353/2168/167 1341/2461/167 +f 1349/2462/168 1360/2157/96 1348/2463/96 +f 1346/2464/169 1357/2151/94 1345/2458/94 +f 1343/2465/170 1354/2148/97 1342/2460/97 +f 1350/2466/171 1361/2159/168 1349/2462/168 +f 1340/2467/172 1351/2167/95 1339/2468/95 +f 1347/2469/173 1358/2153/169 1346/2464/169 +f 1344/2459/166 1355/2146/170 1343/2465/170 +f 1339/2470/95 1362/2163/171 1350/2466/171 +f 1341/2461/167 1352/2165/172 1340/2467/172 +f 1348/2463/96 1359/2158/173 1347/2469/173 +f 1367/2150/170 1378/2471/97 1366/2147/97 +f 1374/2161/171 1385/2472/168 1373/2162/168 +f 1364/2169/172 1375/2473/95 1363/2166/95 +f 1371/2155/173 1382/2474/169 1370/2156/169 +f 1368/2152/166 1379/2475/170 1367/2150/170 +f 1363/2164/95 1386/2476/171 1374/2161/171 +f 1365/2170/167 1376/2477/172 1364/2169/172 +f 1372/2160/96 1383/2478/173 1371/2155/173 +f 1369/2154/94 1380/2479/166 1368/2152/166 +f 1366/2147/97 1377/2480/167 1365/2170/167 +f 1373/2162/168 1384/2481/96 1372/2160/96 +f 1370/2156/169 1381/2482/94 1369/2154/94 +f 1100/2266/106 1101/2275/107 1089/2267/107 +f 1107/2269/108 1108/2324/94 1096/2270/94 +f 1104/2272/109 1105/2280/99 1093/2273/99 +f 1101/2275/107 1102/2282/95 1090/2276/95 +f 1108/2277/94 1109/2284/110 1097/2278/110 +f 1105/2280/99 1106/2288/111 1094/2281/111 +f 1102/2282/95 1103/2289/112 1091/2283/112 +f 1109/2284/110 1110/2290/113 1098/2285/113 +f 1099/2286/98 1100/2266/106 1088/2268/106 +f 1106/2288/111 1107/2269/108 1095/2271/108 +f 1103/2289/112 1104/2272/109 1092/2274/109 +f 1110/2290/113 1099/2286/98 1087/2287/98 +f 1092/2274/114 1116/2302/114 1115/2291/115 +f 1091/2283/115 1115/2291/115 1114/2292/116 +f 1090/2276/116 1114/2292/116 1113/2293/117 +f 1089/2267/117 1113/2293/117 1112/2294/118 +f 1088/2268/118 1112/2294/118 1111/2295/119 +f 1087/2287/119 1111/2295/119 1122/2296/120 +f 1097/2278/121 1098/2285/120 1122/2296/120 +f 1096/2279/122 1097/2278/121 1121/2297/121 +f 1096/2270/122 1120/2303/122 1119/2299/123 +f 1095/2271/123 1119/2299/123 1118/2300/124 +f 1094/2281/124 1118/2300/124 1117/2301/125 +f 1092/2274/114 1093/2273/125 1117/2301/125 +f 1118/2300/111 1130/2043/111 1129/2045/99 +f 1115/2291/112 1127/2048/112 1126/2024/95 +f 1122/2296/113 1134/2034/113 1133/2036/110 +f 1112/2294/106 1124/2029/106 1123/2031/98 +f 1119/2299/108 1131/2041/108 1130/2043/111 +f 1116/2302/109 1128/2047/109 1127/2048/112 +f 1111/2295/98 1123/2031/98 1134/2034/113 +f 1113/2293/107 1125/2027/107 1124/2029/106 +f 1120/2303/94 1132/2039/94 1131/2041/108 +f 1117/2301/99 1129/2045/99 1128/2047/109 +f 1114/2292/95 1126/2024/95 1125/2027/107 +f 1121/2297/110 1133/2036/110 1132/2038/94 +f 1138/2026/94 1150/2307/94 1149/2304/108 +f 1145/2035/112 1157/2308/112 1156/2305/95 +f 1142/2042/106 1154/2310/106 1153/2306/98 +f 1139/2025/110 1151/2311/110 1150/2307/94 +f 1146/2033/109 1158/2312/109 1157/2308/112 +f 1136/2030/111 1148/2313/111 1147/2309/99 +f 1143/2040/107 1155/2314/107 1154/2310/106 +f 1140/2046/113 1152/2315/113 1151/2311/110 +f 1135/2032/99 1147/2309/99 1158/2312/109 +f 1137/2028/108 1149/2304/108 1148/2313/111 +f 1144/2189/95 1156/2483/95 1155/2314/107 +f 1141/2044/98 1153/2306/98 1152/2315/113 +f 1103/2289/126 1163/2333/126 1164/2316/127 +f 1162/2317/128 1163/2333/126 1103/2289/126 +f 1161/2318/129 1162/2317/128 1102/2282/128 +f 1100/2266/130 1160/2319/130 1161/2318/129 +f 1099/2286/131 1159/2320/131 1160/2319/130 +f 1110/2290/132 1170/2321/132 1159/2320/131 +f 1109/2284/133 1169/2322/133 1170/2321/132 +f 1108/2277/134 1168/2329/134 1169/2322/133 +f 1107/2269/135 1167/2337/135 1168/2323/134 +f 1166/2325/136 1167/2337/135 1107/2269/135 +f 1165/2326/137 1166/2325/136 1106/2288/136 +f 1164/2316/127 1165/2326/137 1105/2280/137 +f 1164/2316/109 1176/2338/109 1177/2327/99 +f 1161/2318/107 1173/2340/107 1174/2328/95 +f 1168/2329/94 1180/2484/94 1181/2330/110 +f 1165/2326/99 1177/2327/99 1178/2331/111 +f 1162/2317/95 1174/2328/95 1175/2332/112 +f 1169/2322/110 1181/2330/110 1182/2334/113 +f 1159/2320/98 1171/2339/98 1172/2335/106 +f 1166/2325/111 1178/2331/111 1179/2336/108 +f 1163/2333/112 1175/2332/112 1176/2338/109 +f 1170/2321/113 1182/2334/113 1171/2339/98 +f 1160/2319/106 1172/2335/106 1173/2340/107 +f 1167/2337/108 1179/2336/108 1180/2341/94 +f 1187/2342/138 1188/2370/139 1176/2343/139 +f 1186/2345/140 1187/2342/138 1175/2346/138 +f 1173/2348/141 1185/2351/141 1186/2345/140 +f 1172/2350/142 1184/2376/142 1185/2351/141 +f 1183/2353/143 1184/2376/142 1172/2354/142 +f 1182/2356/144 1194/2375/144 1183/2353/143 +f 1193/2358/145 1194/2375/144 1182/2359/144 +f 1192/2361/146 1193/2358/145 1181/2362/145 +f 1191/2364/147 1192/2373/146 1180/2341/146 +f 1190/2365/148 1191/2364/147 1179/2366/147 +f 1177/2368/149 1189/2374/149 1190/2365/148 +f 1188/2370/139 1189/2374/149 1177/2371/149 +f 1191/2364/108 1203/2061/108 1204/2063/94 +f 1188/2370/109 1200/2055/109 1201/2057/99 +f 1185/2351/107 1197/2074/107 1198/2052/95 +f 1192/2361/94 1204/2064/94 1205/2066/110 +f 1189/2374/99 1201/2057/99 1202/2059/111 +f 1186/2345/95 1198/2052/95 1199/2054/112 +f 1193/2358/110 1205/2066/110 1206/2068/113 +f 1183/2353/98 1195/2070/98 1196/2072/106 +f 1190/2365/111 1202/2059/111 1203/2061/108 +f 1187/2342/112 1199/2054/112 1200/2055/109 +f 1194/2375/113 1206/2068/113 1195/2070/98 +f 1184/2376/106 1196/2072/106 1197/2074/107 +f 1211/2053/110 1223/2385/110 1224/2377/113 +f 1218/2067/109 1230/2386/109 1219/2378/99 +f 1208/2071/111 1220/2387/111 1221/2379/108 +f 1215/2060/107 1227/2388/107 1228/2380/95 +f 1212/2056/113 1224/2377/113 1225/2381/98 +f 1209/2073/108 1221/2379/108 1222/2382/94 +f 1216/2201/95 1228/2485/95 1229/2383/112 +f 1213/2058/98 1225/2381/98 1226/2384/106 +f 1210/2199/94 1222/2382/94 1223/2385/110 +f 1217/2065/112 1229/2383/112 1230/2386/109 +f 1207/2069/99 1219/2378/99 1220/2387/111 +f 1214/2200/106 1226/2384/106 1227/2388/107 +f 1236/2389/150 1243/2406/150 1242/2390/151 +f 1240/2392/152 1250/2399/152 1241/2393/153 +f 1234/2395/154 1245/2401/154 1244/2396/94 +f 1239/2398/155 1249/2408/155 1250/2399/152 +f 1246/2400/156 1233/2409/156 1237/2391/151 +f 1238/2394/153 1241/2393/153 1245/2401/154 +f 1232/2402/157 1247/2410/157 1248/2403/95 +f 1235/2405/94 1244/2486/94 1243/2406/150 +f 1231/2407/95 1248/2487/95 1249/2408/155 +f 1233/2409/156 1246/2400/156 1247/2410/157 +f 1277/2411/99 1289/2117/99 1288/2115/158 +f 1274/2413/97 1286/2114/97 1285/2134/159 +f 1281/2415/160 1293/2127/160 1292/2125/96 +f 1278/2417/161 1290/2119/161 1289/2117/99 +f 1275/2418/162 1287/2112/162 1286/2114/97 +f 1282/2419/163 1294/2129/163 1293/2127/160 +f 1272/2420/164 1284/2131/164 1283/2133/98 +f 1279/2422/165 1291/2123/165 1290/2119/161 +f 1276/2412/158 1288/2115/158 1287/2112/162 +f 1271/2423/98 1283/2231/98 1294/2129/163 +f 1273/2414/159 1285/2134/159 1284/2131/164 +f 1280/2416/96 1292/2125/96 1291/2123/165 +f 1299/2116/162 1311/2428/162 1310/2424/97 +f 1306/2128/163 1318/2429/163 1317/2425/160 +f 1296/2135/164 1308/2430/164 1307/2426/98 +f 1303/2121/165 1315/2431/165 1314/2427/161 +f 1300/2118/158 1312/2432/158 1311/2428/162 +f 1295/2130/98 1307/2488/98 1318/2429/163 +f 1297/2136/159 1309/2433/159 1308/2430/164 +f 1304/2124/96 1316/2434/96 1315/2431/165 +f 1301/2120/99 1313/2435/99 1312/2432/158 +f 1298/2113/97 1310/2424/97 1309/2433/159 +f 1305/2126/160 1317/2425/160 1316/2434/96 +f 1302/2122/161 1314/2427/161 1313/2435/99 +f 1324/2436/150 1331/2453/150 1330/2437/151 +f 1328/2439/152 1338/2446/152 1329/2440/153 +f 1322/2442/154 1333/2448/154 1332/2443/94 +f 1327/2445/155 1337/2455/155 1338/2446/152 +f 1334/2447/156 1321/2456/156 1325/2438/151 +f 1326/2441/153 1329/2440/153 1333/2448/154 +f 1320/2449/157 1335/2457/157 1336/2450/95 +f 1323/2452/94 1332/2489/94 1331/2453/150 +f 1319/2454/95 1336/2490/95 1337/2455/155 +f 1321/2456/156 1334/2447/156 1335/2457/157 +f 1345/2458/94 1357/2151/94 1356/2149/166 +f 1342/2460/97 1354/2148/97 1353/2168/167 +f 1349/2462/168 1361/2159/168 1360/2157/96 +f 1346/2464/169 1358/2153/169 1357/2151/94 +f 1343/2465/170 1355/2146/170 1354/2148/97 +f 1350/2466/171 1362/2163/171 1361/2159/168 +f 1340/2467/172 1352/2165/172 1351/2167/95 +f 1347/2469/173 1359/2158/173 1358/2153/169 +f 1344/2459/166 1356/2149/166 1355/2146/170 +f 1339/2470/95 1351/2255/95 1362/2163/171 +f 1341/2461/167 1353/2168/167 1352/2165/172 +f 1348/2463/96 1360/2157/96 1359/2158/173 +f 1367/2150/170 1379/2475/170 1378/2471/97 +f 1374/2161/171 1386/2476/171 1385/2472/168 +f 1364/2169/172 1376/2477/172 1375/2473/95 +f 1371/2155/173 1383/2478/173 1382/2474/169 +f 1368/2152/166 1380/2479/166 1379/2475/170 +f 1363/2164/95 1375/2491/95 1386/2476/171 +f 1365/2170/167 1377/2480/167 1376/2477/172 +f 1372/2160/96 1384/2481/96 1383/2478/173 +f 1369/2154/94 1381/2482/94 1380/2479/166 +f 1366/2147/97 1378/2471/97 1377/2480/167 +f 1373/2162/168 1385/2472/168 1384/2481/96 +f 1370/2156/169 1382/2474/169 1381/2482/94 +o Gun +v -8.750000 2.500000 -0.500000 +v -1.000000 2.500000 -0.500000 +v -8.750000 2.250000 -0.433013 +v -1.000000 2.250000 -0.433013 +v -8.750000 2.066987 -0.250000 +v -1.000000 2.066987 -0.250000 +v -8.750000 2.000000 0.000000 +v -1.000000 2.000000 0.000000 +v -8.750000 2.066987 0.250000 +v -1.000000 2.066987 0.250000 +v -8.750000 2.250000 0.433013 +v -1.000000 2.250000 0.433013 +v -8.750000 2.500000 0.500000 +v -1.000000 2.500000 0.500000 +v -8.750000 2.750000 0.433013 +v -1.000000 2.750000 0.433013 +v -8.750000 2.933012 0.250000 +v -1.000000 2.933012 0.250000 +v -8.750000 3.000000 0.000000 +v -1.000000 3.000000 0.000000 +v -8.750000 2.933013 -0.250000 +v -1.000000 2.933013 -0.250000 +v -8.750000 2.750000 -0.433012 +v -1.000000 2.750000 -0.433012 +v -8.750000 2.500000 -0.375000 +v -8.750000 2.312500 -0.324759 +v -8.750000 2.175241 -0.187500 +v -8.750000 2.125000 0.000000 +v -8.750000 2.175241 0.187500 +v -8.750000 2.312500 0.324759 +v -8.750000 2.500000 0.375000 +v -8.750000 2.687500 0.324759 +v -8.750000 2.824759 0.187500 +v -8.750000 2.875000 0.000000 +v -8.750000 2.824759 -0.187500 +v -8.750000 2.687500 -0.324759 +v 0.001000 2.500000 -0.375000 +v 0.001000 2.312500 -0.324759 +v 0.001000 2.175241 -0.187500 +v 0.001000 2.125000 0.000000 +v 0.001000 2.175241 0.187500 +v 0.001000 2.312500 0.324759 +v 0.001000 2.500000 0.375000 +v 0.001000 2.687500 0.324759 +v 0.001000 2.824759 0.187500 +v 0.001000 2.875000 0.000000 +v 0.001000 2.824759 -0.187500 +v 0.001000 2.687500 -0.324759 +v -1.000000 2.500000 -0.625000 +v -1.000000 2.187500 -0.541266 +v -1.000000 1.958734 -0.312500 +v -1.000000 1.875000 0.000000 +v -1.000000 1.958734 0.312500 +v -1.000000 2.187500 0.541265 +v -1.000000 2.500000 0.625000 +v -1.000000 2.812500 0.541266 +v -1.000000 3.041266 0.312500 +v -1.000000 3.125000 0.000000 +v -1.000000 3.041266 -0.312500 +v -1.000000 2.812500 -0.541265 +v 0.001000 2.500000 -0.625000 +v 0.001000 2.187500 -0.541266 +v 0.001000 1.958734 -0.312500 +v 0.001000 1.875000 0.000000 +v 0.001000 1.958734 0.312500 +v 0.001000 2.187500 0.541265 +v 0.001000 2.500000 0.625000 +v 0.001000 2.812500 0.541266 +v 0.001000 3.041266 0.312500 +v 0.001000 3.125000 0.000000 +v 0.001000 3.041266 -0.312500 +v 0.001000 2.812500 -0.541265 +v 0.000000 0.562500 0.500000 +v 2.500000 0.562500 0.500000 +v 0.000000 0.562500 -0.500000 +v 2.500000 0.562500 -0.500000 +v 2.500000 -0.187500 0.500000 +v 2.500000 -0.187500 -0.500000 +v 0.000000 -0.187500 -0.500000 +v 0.000000 -0.187500 0.500000 +v 2.500000 2.937500 0.500000 +v 2.500000 2.937500 -0.500000 +v -0.999000 3.187500 0.500000 +v -0.999000 3.187500 -0.500000 +v 0.625000 3.187500 0.500000 +v 0.625000 3.187500 -0.500000 +v 1.375000 3.437500 0.500000 +v 1.375000 3.437500 -0.500000 +v 2.750000 3.437500 0.500000 +v 2.750000 3.437500 -0.500000 +v 2.750000 3.187500 0.500000 +v 2.750000 3.187500 -0.500000 +v 3.000000 3.187500 0.500000 +v 3.000000 3.187500 -0.500000 +v 0.000000 2.937500 -0.500000 +v 0.000000 2.937500 0.500000 +v 0.000000 -0.187500 -0.500000 +v 0.000000 -0.187500 0.000000 +v -0.750000 -0.187500 -0.500000 +v 0.000000 2.187500 -0.500000 +v -3.750000 1.250000 0.250000 +v -1.000000 1.250000 0.250000 +v -3.750000 1.250000 -0.250000 +v -1.000000 1.250000 -0.250000 +v 0.000000 1.750000 -0.187500 +v 0.000000 1.882583 -0.132582 +v 0.000000 1.937500 0.000000 +v 0.000000 1.562500 0.000000 +v 0.000000 1.617417 -0.132582 +v -1.000000 1.750000 -0.187500 +v -1.000000 1.882583 -0.132582 +v -1.000000 1.937500 0.000000 +v -1.000000 1.562500 0.000000 +v -1.000000 1.617417 -0.132582 +v -0.750000 -0.187500 0.000000 +v -1.000000 2.187500 -0.500000 +v -0.750000 0.687500 -0.500000 +v -0.750000 0.687500 0.000000 +v -1.000000 1.062500 -0.500000 +v -1.000000 1.062500 0.000000 +v -4.250000 2.125000 -0.250000 +v -4.250000 2.125000 0.250000 +v -1.000000 2.125000 0.250000 +v -1.000000 2.125000 -0.250000 +v -1.000000 1.625000 0.250000 +v -3.000000 1.625000 0.250000 +v -3.000000 1.875000 0.250000 +v -1.000000 1.875000 0.250000 +v -1.000000 1.625000 -0.125000 +v -3.000000 1.625000 -0.125000 +v -3.000000 1.875000 -0.125000 +v -1.000000 1.875000 -0.125000 +v 3.625000 2.437500 0.500000 +v 3.625000 2.437500 -0.500000 +v 4.875000 1.687500 0.500000 +v 4.875000 1.687500 -0.500000 +v 5.875000 1.312500 0.500000 +v 5.875000 1.312500 -0.500000 +v 5.875000 0.687500 0.500000 +v 5.875000 0.687500 -0.500000 +v 7.875000 -3.687500 -0.500000 +v 7.875000 -3.687500 0.500000 +v 6.875000 -0.937500 0.500000 +v 6.875000 -0.937500 -0.500000 +v 4.750000 -3.687500 -0.500000 +v 4.750000 -3.687500 0.500000 +v 4.750000 -2.937500 -0.500000 +v 4.750000 -2.937500 0.500000 +v 4.500000 -1.937500 -0.500000 +v 4.500000 -1.937500 0.500000 +v 3.875000 -1.062500 -0.500000 +v 3.875000 -1.062500 0.500000 +v 3.125000 -0.937500 -0.500000 +v 3.125000 -0.937500 0.500000 +v 2.875000 -0.437500 -0.500000 +v 2.875000 -0.437500 0.500000 +v 4.750000 -4.312500 -0.500000 +v 7.875000 -4.312500 0.500000 +v 7.875000 -4.312500 -0.500000 +v 4.750000 -4.312500 0.500000 +v 5.500000 1.312500 0.500000 +v 5.750000 0.687500 0.500000 +v 7.750000 -3.687500 0.500000 +v 6.750000 -0.937500 0.500000 +v 4.750000 1.062500 0.500000 +v 3.500000 -0.187500 0.500000 +v 4.875000 -3.687500 0.500000 +v 4.875000 -2.937500 0.500000 +v 4.625000 -1.937500 0.500000 +v 4.000000 -0.937500 0.500000 +v 3.250000 -0.812500 0.500000 +v 7.625000 -4.062500 1.000000 +v 5.000000 -4.062500 1.000000 +v 5.250000 0.687500 0.750000 +v 7.500000 -3.687500 1.000000 +v 6.500000 -0.937500 1.000000 +v 5.125000 -3.687500 1.000000 +v 5.125000 -2.937500 1.000000 +v 4.875000 -1.937500 1.000000 +v 4.250000 -0.812500 1.000000 +v 3.750000 -0.562500 0.750000 +v 5.500000 1.312500 -0.500000 +v 5.750000 0.687500 -0.500000 +v 7.750000 -3.687500 -0.500000 +v 6.750000 -0.937500 -0.500000 +v 4.750000 1.062500 -0.500000 +v 3.500000 -0.187500 -0.500000 +v 4.875000 -3.687500 -0.500000 +v 4.875000 -2.937500 -0.500000 +v 4.625000 -1.937500 -0.500000 +v 4.000000 -0.937500 -0.500000 +v 3.250000 -0.812500 -0.500000 +v 7.625000 -4.062500 -1.000000 +v 5.000000 -4.062500 -1.000000 +v 5.250000 0.625000 -0.750000 +v 7.500000 -3.687500 -1.000000 +v 6.500000 -0.937500 -1.000000 +v 5.125000 -3.687500 -1.000000 +v 5.125000 -2.937500 -1.000000 +v 4.875000 -1.937500 -1.000000 +v 4.250000 -0.687500 -1.000000 +v 3.750000 -0.562500 -0.750000 +v 3.625000 2.437500 0.250000 +v 3.187500 2.812500 0.250000 +v 3.625000 2.437500 -0.250000 +v 4.875000 1.687500 0.250000 +v 3.500000 2.312500 -0.250000 +v 4.875000 1.687500 -0.250000 +v 3.312500 2.812500 -0.250000 +v 3.500000 2.312500 0.250000 +v 4.875000 1.562500 -0.250000 +v 3.187500 2.812500 -0.250000 +v 3.312500 2.812500 0.250000 +v 4.875000 1.562500 0.250000 +v 2.853553 2.169845 -0.729640 +v 2.500000 2.778405 -0.687500 +v 2.853553 2.477192 -0.632583 +v 2.853553 0.910311 0.500000 +v 2.500000 0.562500 0.500000 +v 2.500000 2.937500 -0.500000 +v 2.853553 1.022808 0.632583 +v 2.500000 0.721595 0.687500 +v 2.853553 2.589689 -0.500000 +v 2.853553 1.330155 0.729640 +v 2.500000 1.156250 0.824759 +v 3.000000 1.750000 -0.500000 +v 2.853553 1.750000 0.765165 +v 2.500000 1.750000 0.875000 +v 2.500000 0.562500 -0.500000 +v 2.853553 2.169845 0.729640 +v 2.500000 2.343750 0.824759 +v 2.853553 0.910311 -0.500000 +v 3.000000 1.750000 0.500000 +v 2.853553 2.477192 0.632583 +v 2.500000 2.778405 0.687500 +v 2.500000 0.721595 -0.687500 +v 2.853553 2.589689 0.500000 +v 2.500000 2.937500 0.500000 +v 2.853553 1.022808 -0.632583 +v 2.500000 1.156250 -0.824759 +v 2.853553 1.330155 -0.729640 +v 2.500000 1.750000 -0.875000 +v 2.500000 2.343750 -0.824759 +v 2.853553 1.750000 -0.765165 +v -8.749000 3.125000 -0.250000 +v -1.000000 3.125000 -0.250000 +v -8.749000 3.125000 0.250000 +v -1.000000 3.125000 0.250000 +v -8.749000 2.875000 -0.250000 +v -1.000000 2.875000 -0.250000 +v -8.749000 2.875000 0.250000 +v -1.000000 2.875000 0.250000 +v -8.500000 3.125000 -0.187500 +v -8.500000 3.125000 0.187500 +v -6.250000 3.125000 -0.187500 +v -6.250000 3.125000 0.187500 +v -8.500000 3.437500 0.187500 +v -8.500000 3.437500 -0.187500 +v -7.125000 3.437500 0.187500 +v -7.125000 3.437500 -0.187500 +v -8.437500 3.437500 -0.125000 +v -8.437500 3.437500 0.125000 +v -7.312500 3.437500 -0.125000 +v -7.312500 3.437500 0.125000 +v -8.312500 3.812500 0.062500 +v -8.312500 3.812500 -0.062500 +v -8.187500 3.812500 0.062500 +v -8.187500 3.812500 -0.062500 +v 0.500000 -0.187500 0.375000 +v 0.875000 -0.187500 0.375000 +v 0.500000 -0.187500 -0.375000 +v 0.875000 -0.187500 -0.375000 +v 0.750000 -0.937500 0.375000 +v 0.750000 -0.937500 -0.375000 +v 1.500000 -1.562500 0.375000 +v 1.500000 -1.562500 -0.375000 +v 2.500000 -1.562500 0.375000 +v 2.500000 -1.562500 -0.375000 +v 2.884670 -1.312500 0.375000 +v 2.884670 -1.312500 -0.375000 +v 3.125000 -0.925000 0.375000 +v 3.125000 -0.925000 -0.375000 +v 1.000000 -0.937500 0.375000 +v 1.000000 -0.937500 -0.375000 +v 1.500000 -1.312500 0.375000 +v 1.500000 -1.312500 -0.375000 +v 2.500000 -1.312500 0.375000 +v 2.500000 -1.312500 -0.375000 +v 2.750000 -1.187500 0.375000 +v 2.750000 -1.187500 -0.375000 +v 2.875000 -0.437500 0.375000 +v 2.875000 -0.437500 -0.375000 +v 1.875000 -0.187500 0.250000 +v 1.875000 -0.187500 -0.250000 +v 2.062500 -0.562500 0.250000 +v 2.062500 -0.562500 -0.250000 +v 2.062500 -0.937500 0.250000 +v 2.062500 -0.937500 -0.250000 +v 1.812500 -1.187500 0.250000 +v 1.812500 -1.187500 -0.250000 +v 2.000000 -1.187500 0.250000 +v 2.000000 -1.187500 -0.250000 +v 2.250000 -0.937500 0.250000 +v 2.250000 -0.937500 -0.250000 +v 2.250000 -0.437500 0.250000 +v 2.250000 -0.437500 -0.250000 +v 2.500000 -0.187500 0.250000 +v 2.500000 -0.187500 -0.250000 +v 0.000000 2.812500 0.500000 +v -0.999000 2.812500 0.500000 +v 0.000000 2.812500 -0.500000 +v -0.999000 2.812500 -0.500000 +v 0.000000 2.937500 0.000000 +v -0.999000 2.937500 0.000000 +v 0.000000 2.812500 0.250000 +v 0.000000 2.812500 -0.250000 +v -0.999000 2.812500 0.250000 +v -0.999000 2.812500 -0.250000 +v 5.187500 -3.312500 1.010000 +v 6.687500 -3.312500 1.010000 +v 5.187500 -1.812500 1.010000 +v 6.687500 -1.812500 1.010000 +vt 0.255396 0.168421 +vt 0.251799 0.147368 +vt 0.255396 0.147368 +vt 0.255396 0.252632 +vt 0.251799 0.231579 +vt 0.255396 0.231579 +vt 0.251799 0.210526 +vt 0.255396 0.210526 +vt 0.251799 0.126316 +vt 0.255396 0.126316 +vt 0.251799 0.105263 +vt 0.255396 0.105263 +vt 0.251799 0.084211 +vt 0.255396 0.084211 +vt 0.251799 0.063158 +vt 0.255396 0.063158 +vt 0.255396 0.042105 +vt 0.251799 0.042105 +vt 0.255396 0.021053 +vt 0.251799 0.021053 +vt 0.251799 0.000000 +vt 0.255396 -0.000000 +vt 0.255396 0.189474 +vt 0.251799 0.168421 +vt 0.251799 0.189474 +vt 0.478417 0.031579 +vt 0.482014 0.063158 +vt 0.478417 0.052632 +vt 0.478417 -0.000000 +vt 0.482014 0.031579 +vt 0.478417 0.021053 +vt 0.478417 0.273684 +vt 0.482014 0.252632 +vt 0.482014 0.284211 +vt 0.478417 0.305263 +vt 0.482014 0.315789 +vt 0.478417 0.347368 +vt 0.482014 0.378947 +vt 0.478417 0.368421 +vt 0.478417 0.221053 +vt 0.478417 0.242105 +vt 0.478417 0.315789 +vt 0.482014 0.347368 +vt 0.478417 0.336842 +vt 0.478417 0.210526 +vt 0.482014 0.189474 +vt 0.482014 0.221053 +vt 0.478417 0.178947 +vt 0.482014 0.157895 +vt 0.478417 0.126316 +vt 0.478417 0.147368 +vt 0.478417 0.115789 +vt 0.482014 0.094737 +vt 0.482014 0.126316 +vt 0.478417 0.063158 +vt 0.478417 0.084211 +vt 0.517986 0.178947 +vt 0.510791 0.157895 +vt 0.517986 0.157895 +vt 0.517986 0.210526 +vt 0.510791 0.189474 +vt 0.517986 0.189474 +vt 0.517986 0.221053 +vt 0.510791 0.252632 +vt 0.510791 0.221053 +vt 0.517986 0.273684 +vt 0.517986 0.252632 +vt 0.517986 0.305263 +vt 0.510791 0.284211 +vt 0.517986 0.284211 +vt 0.517986 0.336842 +vt 0.510791 0.315789 +vt 0.517986 0.315789 +vt 0.517986 0.368421 +vt 0.510791 0.347368 +vt 0.517986 0.347368 +vt 0.517986 0.000000 +vt 0.510791 0.031579 +vt 0.510791 -0.000000 +vt 0.517986 0.031579 +vt 0.510791 0.063158 +vt 0.517986 0.084211 +vt 0.517986 0.063158 +vt 0.517986 0.094737 +vt 0.510791 0.126316 +vt 0.510791 0.094737 +vt 0.517986 0.126316 +vt 0.687050 0.442105 +vt 0.615108 0.526316 +vt 0.615108 0.442105 +vt 0.586331 0.442105 +vt 0.615108 0.378947 +vt 0.812950 0.452632 +vt 0.784173 0.652632 +vt 0.784173 0.452632 +vt 0.586331 0.684211 +vt 0.633094 0.768421 +vt 0.586331 0.768421 +vt 0.633094 0.684211 +vt 0.654676 0.768421 +vt 0.654676 0.684211 +vt 0.694245 0.768421 +vt 0.694245 0.684211 +vt 0.701439 0.768421 +vt 0.701439 0.684211 +vt 0.708633 0.768421 +vt 0.687050 0.642105 +vt 0.615108 0.642105 +vt 0.615108 0.600000 +vt 0.507194 0.578947 +vt 0.507194 0.778947 +vt 0.496648 0.730873 +vt 0.025180 0.326316 +vt 0.104317 0.368421 +vt 0.025180 0.368421 +vt 0.687050 0.378947 +vt 0.615108 0.442105 +vt 0.687050 0.442105 +vt 0.492806 0.578947 +vt 0.471223 0.536842 +vt 0.492806 0.536842 +vt 0.464029 0.652632 +vt 0.449640 0.684211 +vt 0.449640 0.652632 +vt 0.464029 0.578947 +vt 0.449640 0.578947 +vt 0.449640 0.778947 +vt 0.420863 0.778947 +vt 0.458633 0.742105 +vt 0.460214 0.753268 +vt 0.471223 0.652632 +vt 0.471223 0.578947 +vt 0.000000 0.326316 +vt 0.104317 0.252632 +vt 0.104317 0.326316 +vt 0.046763 0.421053 +vt 0.010791 0.442105 +vt 0.046763 0.400000 +vt 0.104317 0.400000 +vt 0.104317 0.442105 +vt 0.118705 0.410526 +vt 0.176259 0.378947 +vt 0.176259 0.410526 +vt 0.107914 0.357895 +vt 0.118705 0.378947 +vt 0.107914 0.378947 +vt 0.176259 0.326316 +vt 0.118705 0.357895 +vt 0.118705 0.326316 +vt 0.176259 0.357895 +vt 0.715827 0.778947 +vt 0.719424 0.821053 +vt 0.715827 0.821053 +vt 0.730216 0.684211 +vt 0.766187 0.705263 +vt 0.730216 0.705263 +vt 0.794964 0.684211 +vt 0.794964 0.768421 +vt 0.841727 0.084211 +vt 0.751799 0.000000 +vt 0.841727 0.000000 +vt 0.615108 0.642105 +vt 0.586331 0.631579 +vt 0.586331 0.663158 +vt 0.751799 0.147368 +vt 0.751799 0.084211 +vt 0.812950 0.315789 +vt 0.751799 0.147368 +vt 0.744604 0.231579 +vt 0.726619 0.305263 +vt 0.784173 0.452632 +vt 0.755396 0.536842 +vt 0.726619 0.305263 +vt 0.697842 0.357895 +vt 0.755396 0.536842 +vt 0.701439 0.663158 +vt 0.694245 0.663158 +vt 0.730216 0.747368 +vt 0.766187 0.768421 +vt 0.730216 0.768421 +vt 0.719424 0.705263 +vt 0.708633 0.684211 +vt 0.719424 0.747368 +vt 0.769784 0.821053 +vt 0.766187 0.778947 +vt 0.769784 0.778947 +vt 0.730216 0.821053 +vt 0.723022 0.831579 +vt 0.762590 0.831579 +vt 0.730216 0.831579 +vt 0.723022 0.768421 +vt 0.730216 0.778947 +vt 0.719424 0.778947 +vt 0.762590 0.768421 +vt 0.766187 0.821053 +vt 0.161880 0.631283 +vt 0.161880 0.431875 +vt 0.172639 0.531579 +vt 0.152543 0.581431 +vt 0.151102 0.531579 +vt 0.161861 0.631283 +vt 0.255396 0.273684 +vt 0.478417 0.315789 +vt 0.255396 0.315789 +vt 0.255396 0.252632 +vt 0.478417 0.273684 +vt 0.478417 0.336842 +vt 0.248201 0.315789 +vt 0.183453 0.284211 +vt 0.223022 0.315789 +vt 0.183453 0.315789 +vt 0.183453 0.257895 +vt 0.223022 0.284211 +vt 0.248201 0.315789 +vt 0.248201 0.284211 +vt 0.183453 0.342105 +vt 0.248201 0.342105 +vt 0.174460 0.284211 +vt 0.174460 0.315789 +vt 0.143885 0.284211 +vt 0.147482 0.294737 +vt 0.143885 0.294737 +vt 0.140288 0.326316 +vt 0.172662 0.326316 +vt 0.133094 0.284211 +vt 0.133094 0.294737 +vt 0.140288 0.252632 +vt 0.147482 0.284211 +vt 0.172662 0.294737 +vt 0.172662 0.284211 +vt 0.262590 0.821053 +vt 0.269784 0.757895 +vt 0.273381 0.821053 +vt 0.262590 0.757895 +vt 0.269784 0.694737 +vt 0.262590 0.694737 +vt 0.269784 0.610526 +vt 0.262590 0.610526 +vt 0.269784 0.578947 +vt 0.262590 0.578947 +vt 0.273381 0.547368 +vt 0.233813 0.757895 +vt 0.241007 0.821053 +vt 0.230216 0.821053 +vt 0.233813 0.694737 +vt 0.241007 0.757895 +vt 0.241007 0.610526 +vt 0.233813 0.610526 +vt 0.233813 0.578947 +vt 0.230216 0.547368 +vt 0.241007 0.578947 +vt 0.302158 0.673684 +vt 0.312950 0.705263 +vt 0.305755 0.705263 +vt 0.312950 0.736842 +vt 0.305755 0.736842 +vt 0.312950 0.768421 +vt 0.305755 0.768421 +vt 0.305755 0.842105 +vt 0.312950 0.810526 +vt 0.312950 0.842105 +vt 0.305755 0.873684 +vt 0.312950 0.873684 +vt 0.302158 0.905263 +vt 0.320144 0.905263 +vt 0.575540 0.768421 +vt 0.546763 0.747368 +vt 0.575540 0.747368 +vt 0.586331 0.631579 +vt 0.586331 0.663158 +vt 0.687050 0.642105 +vt 0.633094 0.663158 +vt 0.633094 0.663158 +vt 0.543165 0.684211 +vt 0.546763 0.705263 +vt 0.543165 0.726316 +vt 0.579137 0.726316 +vt 0.543165 0.768421 +vt 0.546763 0.768421 +vt 0.575540 0.705263 +vt 0.546763 0.684211 +vt 0.575540 0.684211 +vt 0.575540 0.726316 +vt 0.546763 0.726316 +vt 0.187050 0.642105 +vt 0.129496 0.810526 +vt 0.129496 0.642105 +vt 0.115108 0.284211 +vt 0.104317 0.252632 +vt 0.118705 0.252632 +vt 0.118705 0.326316 +vt 0.115108 0.305263 +vt 0.104317 0.326316 +vt 0.104317 0.305263 +vt 0.251799 0.252632 +vt 0.482014 -0.000000 +vt 0.478417 0.252632 +vt 0.478417 0.284211 +vt 0.478417 0.189474 +vt 0.478417 0.157895 +vt 0.478417 0.094737 +vt 0.517986 0.242105 +vt 0.510791 0.378947 +vt 0.517986 0.021053 +vt 0.517986 0.052632 +vt 0.517986 0.115789 +vt 0.517986 0.147368 +vt 0.687050 0.526316 +vt 0.586331 0.378947 +vt 0.812950 0.652632 +vt 0.615108 0.557895 +vt 0.687050 0.557895 +vt 0.492806 0.726316 +vt 0.492806 0.757895 +vt 0.496648 0.753357 +vt 0.498202 0.742118 +vt 0.687050 0.378947 +vt 0.615108 0.378947 +vt 0.464029 0.684211 +vt 0.420863 0.578947 +vt 0.442446 0.652632 +vt 0.442446 0.578947 +vt 0.464029 0.757895 +vt 0.460214 0.730942 +vt 0.464029 0.726316 +vt 0.000000 0.368421 +vt 0.010791 0.252632 +vt 0.104317 0.421053 +vt 0.766187 0.684211 +vt 0.766187 0.747368 +vt 0.615108 0.631579 +vt 0.812950 0.315789 +vt 0.744604 0.231579 +vt 0.841727 0.084211 +vt 0.751799 0.084211 +vt 0.784173 0.452632 +vt 0.784173 0.505263 +vt 0.697842 0.357895 +vt 0.705036 0.315789 +vt 0.784173 0.505263 +vt 0.705036 0.315789 +vt 0.719424 0.600000 +vt 0.719424 0.600000 +vt 0.694245 0.663158 +vt 0.701439 0.663158 +vt 0.730216 0.768421 +vt 0.167259 0.445233 +vt 0.171198 0.481727 +vt 0.171198 0.581431 +vt 0.167259 0.617925 +vt 0.152543 0.481727 +vt 0.161861 0.431875 +vt 0.156482 0.445233 +vt 0.156482 0.617925 +vt 0.478417 0.252632 +vt 0.255396 0.336842 +vt 0.248201 0.273684 +vt 0.248201 0.257895 +vt 0.172662 0.252632 +vt 0.262590 0.515789 +vt 0.241007 0.694737 +vt 0.241007 0.515789 +vt 0.320144 0.673684 +vt 0.305755 0.810526 +vt 0.615108 0.631579 +vt 0.654676 0.684211 +vt 0.694245 0.684211 +vt 0.187050 0.810526 +vt 0.104317 0.284211 +vt 0.478417 0.189474 +vt 0.478417 0.210526 +vt 0.478417 0.231579 +vt 0.478417 0.042105 +vt 0.478417 0.063158 +vt 0.478417 0.084211 +vt 0.478417 0.105263 +vt 0.478417 0.126316 +vt 0.478417 0.147368 +vt 0.478417 0.168421 +vt 0.000000 0.042105 +vt -0.000000 0.231579 +vt -0.000000 0.126316 +vt 0.000000 0.063158 +vt 0.000000 0.000000 +vt 0.000000 0.147368 +vt -0.000000 0.189474 +vt -0.000000 0.084211 +vt 0.000000 0.021053 +vt 0.000000 0.168421 +vt 0.000000 0.210526 +vt 0.000000 0.105263 +vt 0.615108 0.168421 +vt 0.492806 0.750000 +vt 0.464029 0.742105 +vt 0.492806 0.742105 +vt 0.464029 0.734210 +vt 0.492806 0.734210 +vt 0.464029 0.750000 +vt 0.812950 0.768421 +vt 0.859712 0.684211 +vt 0.938849 0.768421 +vt 0.859712 0.768421 +vt 0.812950 0.684211 +vt 0.730216 -0.000000 +vt 0.730216 0.084211 +vt 0.701439 0.000000 +vt 0.701439 0.084211 +vt 0.676259 0.000000 +vt 0.676259 0.084211 +vt 0.654676 0.000000 +vt 0.615108 0.094737 +vt 0.586331 0.136842 +vt 0.586331 0.094737 +vt 0.586331 0.168421 +vt 0.870504 0.105263 +vt 0.946043 0.084211 +vt 0.859712 0.084211 +vt 0.946043 0.084211 +vt 0.870504 0.105263 +vt 0.859712 0.084211 +vt 0.859712 0.200000 +vt 0.863309 0.284211 +vt 0.852518 0.284211 +vt 0.845324 0.378947 +vt 0.834532 0.368421 +vt 0.881295 0.557895 +vt 0.859712 0.536842 +vt 0.874101 0.505263 +vt 0.917266 0.368421 +vt 0.935252 0.136842 +vt 0.946043 0.136842 +vt 0.834532 0.368421 +vt 0.812950 0.378947 +vt 0.830935 0.400000 +vt 0.859712 0.136842 +vt 0.870504 0.200000 +vt 0.888489 0.505263 +vt 0.906475 0.357895 +vt 0.935252 0.105263 +vt 0.812950 0.378947 +vt 0.830935 0.400000 +vt 0.823741 0.431579 +vt 0.863309 0.284211 +vt 0.859712 0.200000 +vt 0.852518 0.284211 +vt 0.845324 0.378947 +vt 0.881295 0.557895 +vt 0.874101 0.505263 +vt 0.859712 0.536842 +vt 0.935252 0.136842 +vt 0.917266 0.368421 +vt 0.946043 0.136842 +vt 0.870504 0.200000 +vt 0.859712 0.136842 +vt 0.906475 0.357895 +vt 0.888489 0.505263 +vt 0.870504 0.136842 +vt 0.935252 0.105263 +vt 0.823741 0.431579 +vt 0.964029 0.000000 +vt 0.964029 0.084211 +vt 0.946043 0.000000 +vt 0.859712 0.000000 +vt 0.841727 0.000000 +vt 0.841727 0.084211 +vt 0.183453 0.431579 +vt 0.194245 0.442105 +vt 0.183453 0.452632 +vt 0.172662 0.452632 +vt 0.172662 0.431579 +vt 0.172662 0.494737 +vt 0.194245 0.473684 +vt 0.183453 0.494737 +vt 0.172662 0.536842 +vt 0.194245 0.515789 +vt 0.183453 0.536842 +vt 0.140288 0.578947 +vt 0.151079 0.536842 +vt 0.151079 0.578947 +vt 0.183453 0.578947 +vt 0.172662 0.578947 +vt 0.129496 0.557895 +vt 0.140288 0.536842 +vt 0.194245 0.557895 +vt 0.140288 0.621053 +vt 0.151079 0.621053 +vt 0.183453 0.621053 +vt 0.172662 0.621053 +vt 0.129496 0.600000 +vt 0.194245 0.600000 +vt 0.140288 0.642105 +vt 0.151079 0.642105 +vt 0.183453 0.642105 +vt 0.172662 0.642105 +vt 0.129496 0.631579 +vt 0.194245 0.631579 +vt 0.151079 0.452632 +vt 0.140288 0.431579 +vt 0.151079 0.431579 +vt 0.140288 0.452632 +vt 0.129496 0.442105 +vt 0.151079 0.494737 +vt 0.140288 0.494737 +vt 0.129496 0.473684 +vt 0.129496 0.515789 +vt 0.208633 0.821053 +vt 0.230216 0.757895 +vt 0.208633 0.757895 +vt 0.230216 0.694737 +vt 0.208633 0.694737 +vt 0.230216 0.610526 +vt 0.208633 0.610526 +vt 0.230216 0.578947 +vt 0.208633 0.578947 +vt 0.230216 0.515789 +vt 0.284173 0.768421 +vt 0.273381 0.810526 +vt 0.273381 0.768421 +vt 0.294964 0.768421 +vt 0.284173 0.810526 +vt 0.294964 0.810526 +vt 0.323741 0.768421 +vt 0.334532 0.768421 +vt 0.323741 0.810526 +vt 0.345324 0.768421 +vt 0.334532 0.810526 +vt 0.870504 0.136842 +vt 0.478417 0.252632 +vt 0.000000 0.252632 +vt 0.938849 0.684211 +vt 0.654676 0.084211 +vt 0.615108 0.136842 +vt 0.208633 0.515789 +vt 0.345324 0.810526 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.8321 -0.5547 0.0000 +vn -0.8682 -0.4961 0.0000 +vn 0.5145 0.8575 0.0000 +vn 0.3511 0.9363 0.0000 +vn 0.7682 0.6402 0.0000 +vn 0.8480 0.5300 0.0000 +vn 0.4789 0.8779 0.0000 +vn 0.3363 0.9417 0.0000 +vn 0.0000 0.1644 -0.9864 +vn -0.9487 0.3162 0.0000 +vn 0.0000 0.1644 0.9864 +vn 0.3939 0.9191 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn -0.2898 -0.9571 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 0.3827 +vn 0.9622 0.2723 0.0000 +vn 0.9004 0.4352 0.0000 +vn 0.9398 0.3417 0.0000 +vn -0.9925 -0.1222 0.0000 +vn -0.9079 -0.4192 0.0000 +vn -0.5294 -0.8484 0.0000 +vn -0.1644 -0.9864 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.7497 -0.6618 0.0000 +vn -0.5007 -0.3427 -0.7949 +vn 0.7406 -0.6169 -0.2663 +vn -0.7406 -0.6169 -0.2663 +vn 0.7406 -0.6169 0.2663 +vn -0.5007 -0.3427 0.7949 +vn -0.7406 -0.6169 0.2663 +vn -0.8887 -0.1134 0.4443 +vn -0.4707 -0.1788 0.8640 +vn -0.8315 -0.3492 0.4322 +vn -0.4194 -0.1220 0.8996 +vn -0.5483 -0.5987 0.5839 +vn 0.1422 0.3181 0.9373 +vn -0.2154 0.3448 0.9136 +vn 0.0554 0.3108 0.9489 +vn 0.8250 0.3864 0.4125 +vn 0.5084 0.1779 0.8426 +vn 0.9294 0.2459 0.2753 +vn -0.4982 -0.5710 -0.6525 +vn -0.3586 -0.1955 -0.9128 +vn -0.3854 -0.0823 -0.9191 +vn -0.9463 0.1453 0.2889 +vn -0.4925 -0.0586 0.8683 +vn 0.4609 0.3511 0.8150 +vn 0.4887 0.2771 0.8273 +vn 0.5007 -0.3427 0.7949 +vn -0.3586 -0.1955 0.9128 +vn -0.3986 -0.0784 0.9137 +vn -0.4147 0.2969 0.8601 +vn -0.4784 -0.1713 -0.8613 +vn -0.8887 -0.1134 -0.4443 +vn -0.8319 -0.3300 -0.4461 +vn -0.3833 -0.0513 -0.9222 +vn 0.1298 0.2968 -0.9461 +vn 0.0450 0.3020 -0.9522 +vn -0.2014 0.3023 -0.9317 +vn 0.5084 0.1779 -0.8426 +vn 0.8250 0.3864 -0.4125 +vn 0.9294 0.2459 -0.2753 +vn -0.4925 -0.0586 -0.8683 +vn -0.9463 0.1453 -0.2889 +vn 0.4890 0.2775 -0.8270 +vn 0.4349 0.3349 -0.8359 +vn -0.4808 0.0746 -0.8736 +vn 0.5007 -0.3427 -0.7949 +vn -0.3802 0.3015 -0.8744 +vn 0.7513 -0.5032 0.4270 +vn 0.9061 0.0000 0.4231 +vn 0.7541 -0.3297 0.5681 +vn 0.5431 -0.5168 0.6618 +vn 0.6001 -0.6100 0.5176 +vn 0.3474 -0.2058 0.9149 +vn 0.6619 -0.1418 0.7361 +vn 0.2967 -0.0000 0.9550 +vn 0.6220 -0.0000 0.7830 +vn 0.6619 0.1418 -0.7361 +vn 0.2967 -0.0000 -0.9550 +vn 0.3474 0.2058 -0.9149 +vn 0.6619 0.1418 0.7361 +vn 0.3474 0.2058 0.9149 +vn 0.9061 0.0000 -0.4231 +vn 0.6220 -0.0000 -0.7830 +vn 0.7541 0.3297 -0.5681 +vn 0.5431 0.5168 -0.6618 +vn 0.7541 0.3297 0.5681 +vn 0.5431 0.5168 0.6618 +vn 0.7513 0.5032 -0.4270 +vn 0.6001 0.6100 -0.5176 +vn 0.7513 0.5032 0.4270 +vn 0.6001 0.6100 0.5176 +vn 0.5431 -0.5168 -0.6618 +vn 0.7513 -0.5032 -0.4270 +vn 0.6001 -0.6100 -0.5176 +vn 0.7541 -0.3297 -0.5681 +vn 0.3474 -0.2058 -0.9149 +vn 0.6619 -0.1418 -0.7361 +vn -0.9487 -0.3162 0.0000 +vn -0.8260 -0.5637 0.0000 +vn -0.3404 -0.9403 0.0000 +vn 0.2842 -0.9588 0.0000 +vn 0.7146 -0.6996 0.0000 +vn 0.7145 -0.6996 0.0000 +vn 0.8498 -0.5271 0.0000 +vn 0.9864 0.1644 0.0000 +vn 0.8545 0.5195 0.0000 +vn 0.3162 0.9487 0.0000 +vn -0.2298 0.9732 0.0000 +vn -0.8044 0.5941 0.0000 +vn -0.9864 0.1644 0.0000 +vn -0.9732 -0.2298 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.4808 0.0746 0.8736 +s off +f 1417/2492/174 1429/2493/174 1415/2494/174 +f 1401/2495/174 1421/2496/174 1399/2497/174 +f 1399/2497/174 1420/2498/174 1397/2499/174 +f 1415/2494/174 1428/2500/174 1413/2501/174 +f 1413/2501/174 1427/2502/174 1411/2503/174 +f 1411/2503/174 1426/2504/174 1409/2505/174 +f 1409/2505/174 1425/2506/174 1407/2507/174 +f 1405/2508/174 1425/2506/174 1424/2509/174 +f 1403/2510/174 1424/2509/174 1423/2511/174 +f 1403/2510/174 1422/2512/174 1401/2513/174 +f 1395/2514/174 1430/2515/174 1417/2492/174 +f 1397/2499/174 1419/2516/174 1395/2514/174 +f 1404/2517/174 1448/2518/174 1406/2519/174 +f 1402/2520/174 1447/2521/174 1404/2522/174 +f 1396/2523/174 1454/2524/174 1443/2525/174 +f 1398/2526/174 1443/2525/174 1444/2527/174 +f 1400/2528/174 1446/2529/174 1402/2530/174 +f 1416/2531/174 1454/2524/174 1418/2532/174 +f 1398/2533/174 1445/2534/174 1400/2535/174 +f 1416/2536/174 1452/2537/174 1453/2538/174 +f 1414/2539/174 1451/2540/174 1452/2537/174 +f 1410/2541/174 1451/2540/174 1412/2542/174 +f 1410/2543/174 1449/2544/174 1450/2545/174 +f 1406/2546/174 1449/2544/174 1408/2547/174 +f 1440/2548/175 1463/2549/175 1439/2550/175 +f 1441/2551/175 1464/2552/175 1440/2553/175 +f 1441/2554/175 1466/2555/175 1465/2556/175 +f 1431/2557/175 1466/2555/175 1442/2558/175 +f 1432/2559/175 1455/2560/175 1431/2561/175 +f 1433/2562/175 1456/2563/175 1432/2564/175 +f 1434/2565/175 1457/2566/175 1433/2567/175 +f 1434/2568/175 1459/2569/175 1458/2570/175 +f 1435/2571/175 1460/2572/175 1459/2569/175 +f 1437/2573/175 1460/2572/175 1436/2574/175 +f 1437/2575/175 1462/2576/175 1461/2577/175 +f 1438/2578/175 1463/2549/175 1462/2576/175 +f 1468/2579/176 1469/2580/176 1467/2581/176 +f 1469/2582/174 1474/2583/174 1467/2581/174 +f 1468/2584/174 1476/2585/174 1470/2586/174 +f 1477/2587/176 1480/2588/176 1478/2589/176 +f 1479/2590/177 1482/2591/177 1480/2588/177 +f 1481/2592/176 1484/2593/176 1482/2591/176 +f 1483/2594/175 1486/2595/175 1484/2593/175 +f 1485/2596/176 1488/2597/176 1486/2595/176 +f 1475/2598/178 1490/2599/178 1707/2600/178 +f 1491/2601/175 1494/2602/175 1503/2603/175 +f 1497/2604/178 1496/2605/178 1495/2606/178 +f 1474/2583/179 1468/2579/179 1467/2581/179 +f 1472/2607/180 1469/2608/180 1470/2609/180 +f 1492/2610/178 1493/2611/178 1491/2612/178 +f 1512/2613/181 1513/2614/181 1511/2615/181 +f 1509/2616/174 1511/2615/174 1493/2617/174 +f 1513/2614/180 1510/2618/180 1494/2619/180 +f 1504/2620/174 1505/2621/174 1510/2618/174 +f 1512/2622/179 1509/2623/179 1492/2610/179 +f 1495/2606/182 1515/2624/182 1497/2604/182 +f 1497/2604/180 1518/2625/180 1498/2626/180 +f 1495/2606/179 1521/2627/179 1516/2628/179 +f 1520/2629/179 1496/2605/179 1519/2630/179 +f 1521/2627/179 1517/2631/179 1516/2628/179 +f 1521/2632/178 1526/2633/178 1522/2634/178 +f 1520/2635/175 1525/2636/175 1521/2637/175 +f 1519/2638/176 1524/2639/176 1520/2640/176 +f 1526/2633/179 1524/2639/179 1523/2641/179 +f 1607/2642/178 1606/2643/178 1603/2644/178 +f 1527/2645/183 1600/2646/183 1597/2647/183 +f 1600/2646/184 1531/2648/184 1532/2649/184 +f 1536/2650/178 1539/2651/178 1535/2652/178 +f 1489/2653/180 1706/2654/180 1478/2655/180 +f 1542/2656/179 1540/2657/179 1536/2650/179 +f 1538/2658/180 1541/2659/180 1543/2660/180 +f 1546/2661/179 1533/2662/179 1529/2663/179 +f 1545/2664/180 1549/2665/180 1530/2666/180 +f 1487/2667/179 1485/2668/179 1475/2598/179 +f 1530/2666/180 1472/2607/180 1470/2609/180 +f 1599/2669/183 1530/2670/183 1528/2671/183 +f 1607/2672/185 1527/2645/185 1597/2647/185 +f 1487/2673/185 1603/2674/185 1488/2597/185 +f 1602/2675/174 1608/2676/174 1600/2677/174 +f 1603/2674/185 1528/2671/185 1488/2597/185 +f 1601/2678/179 1603/2679/179 1606/2643/179 +f 1601/2678/179 1602/2680/179 1599/2681/179 +f 1607/2682/180 1604/2683/180 1598/2684/180 +f 1604/2683/180 1600/2685/180 1608/2676/180 +f 1601/2678/186 1598/2684/186 1604/2683/186 +f 1604/2683/187 1605/2686/187 1601/2678/187 +f 1632/2687/174 1613/2688/174 1622/2689/174 +f 1637/2690/174 1636/2691/174 1614/2692/174 +f 1641/2693/176 1640/2694/176 1639/2695/176 +f 1645/2696/179 1642/2697/179 1641/2693/179 +f 1644/2698/180 1639/2695/180 1640/2694/180 +f 1643/2699/174 1641/2693/174 1639/2695/174 +f 1651/2700/176 1654/2701/176 1652/2702/176 +f 1648/2703/179 1653/2704/179 1651/2700/179 +f 1649/2705/188 1653/2704/188 1650/2706/188 +f 1647/2707/180 1654/2701/180 1649/2708/180 +f 1648/2709/174 1652/2702/174 1647/2710/174 +f 1659/2711/176 1662/2712/176 1660/2713/176 +f 1655/2714/189 1662/2712/189 1657/2715/189 +f 1656/2716/190 1660/2713/190 1655/2717/190 +f 1656/2718/191 1661/2719/191 1659/2711/191 +f 1657/2720/192 1661/2719/192 1658/2721/192 +f 1666/2722/180 1668/2723/180 1665/2724/180 +f 1678/2725/180 1670/2726/180 1668/2723/180 +f 1680/2727/180 1672/2728/180 1670/2726/180 +f 1682/2729/180 1674/2730/180 1672/2728/180 +f 1684/2731/180 1676/2732/180 1674/2730/180 +f 1667/2733/179 1664/2734/179 1663/2735/179 +f 1669/2736/179 1677/2737/179 1667/2733/179 +f 1681/2738/179 1669/2736/179 1671/2739/179 +f 1673/2740/179 1681/2738/179 1671/2739/179 +f 1675/2741/179 1683/2742/179 1673/2740/179 +f 1688/2743/180 1700/2744/180 1690/2745/180 +f 1690/2745/180 1698/2746/180 1692/2747/180 +f 1692/2747/180 1696/2748/180 1694/2749/180 +f 1691/2750/179 1695/2751/179 1697/2752/179 +f 1689/2753/179 1697/2752/179 1699/2754/179 +f 1687/2755/179 1699/2754/179 1701/2756/179 +f 1706/2757/178 1710/2758/178 1712/2759/178 +f 1704/2760/179 1490/2599/179 1477/2761/179 +f 1476/2762/180 1489/2653/180 1480/2763/180 +f 1481/2592/179 1479/2764/179 1475/2598/179 +f 1490/2765/175 1709/2766/175 1707/2767/175 +f 1478/2589/174 1712/2759/174 1708/2768/174 +f 1489/2769/175 1710/2758/175 1705/2770/175 +f 1711/2771/178 1703/2772/178 1704/2773/178 +f 1709/2766/193 1708/2774/193 1707/2775/193 +f 1708/2774/194 1710/2758/194 1707/2775/194 +f 1714/2776/179 1715/2777/179 1713/2778/179 +f 1523/2779/175 1496/2780/175 1498/2781/175 +f 1518/2782/175 1523/2779/175 1498/2781/175 +f 1526/2783/175 1517/2784/175 1522/2785/175 +f 1417/2492/174 1430/2515/174 1429/2493/174 +f 1401/2495/174 1422/2786/174 1421/2496/174 +f 1399/2497/174 1421/2496/174 1420/2498/174 +f 1415/2494/174 1429/2493/174 1428/2500/174 +f 1413/2501/174 1428/2500/174 1427/2502/174 +f 1411/2503/174 1427/2502/174 1426/2504/174 +f 1409/2505/174 1426/2504/174 1425/2506/174 +f 1405/2508/174 1407/2507/174 1425/2506/174 +f 1403/2510/174 1405/2508/174 1424/2509/174 +f 1403/2510/174 1423/2511/174 1422/2512/174 +f 1395/2514/174 1419/2516/174 1430/2515/174 +f 1397/2499/174 1420/2498/174 1419/2516/174 +f 1404/2517/174 1447/2521/174 1448/2518/174 +f 1402/2520/174 1446/2787/174 1447/2521/174 +f 1396/2523/174 1418/2788/174 1454/2524/174 +f 1398/2526/174 1396/2789/174 1443/2525/174 +f 1400/2528/174 1445/2534/174 1446/2529/174 +f 1416/2531/174 1453/2538/174 1454/2524/174 +f 1398/2533/174 1444/2527/174 1445/2534/174 +f 1416/2536/174 1414/2790/174 1452/2537/174 +f 1414/2539/174 1412/2791/174 1451/2540/174 +f 1410/2541/174 1450/2545/174 1451/2540/174 +f 1410/2543/174 1408/2792/174 1449/2544/174 +f 1406/2546/174 1448/2518/174 1449/2544/174 +f 1440/2548/175 1464/2552/175 1463/2549/175 +f 1441/2551/175 1465/2556/175 1464/2552/175 +f 1441/2554/175 1442/2793/175 1466/2555/175 +f 1431/2557/175 1455/2560/175 1466/2555/175 +f 1432/2559/175 1456/2563/175 1455/2560/175 +f 1433/2562/175 1457/2566/175 1456/2563/175 +f 1434/2565/175 1458/2794/175 1457/2566/175 +f 1434/2568/175 1435/2795/175 1459/2569/175 +f 1435/2571/175 1436/2796/175 1460/2572/175 +f 1437/2573/175 1461/2577/175 1460/2572/175 +f 1437/2575/175 1438/2797/175 1462/2576/175 +f 1438/2578/175 1439/2798/175 1463/2549/175 +f 1468/2579/176 1470/2799/176 1469/2580/176 +f 1469/2582/174 1473/2800/174 1474/2583/174 +f 1468/2584/174 1475/2801/174 1476/2585/174 +f 1477/2587/176 1479/2590/176 1480/2588/176 +f 1479/2590/177 1481/2592/177 1482/2591/177 +f 1481/2592/176 1483/2594/176 1484/2593/176 +f 1483/2594/175 1485/2596/175 1486/2595/175 +f 1485/2596/176 1487/2673/176 1488/2597/176 +f 1489/2802/178 1476/2803/178 1707/2600/178 +f 1476/2803/178 1475/2598/178 1707/2600/178 +f 1502/2804/175 1492/2610/175 1491/2601/175 +f 1494/2602/175 1501/2805/175 1500/2806/175 +f 1494/2602/175 1500/2806/175 1499/2807/175 +f 1503/2603/175 1502/2804/175 1491/2601/175 +f 1494/2602/175 1499/2807/175 1503/2603/175 +f 1497/2604/178 1498/2626/178 1496/2605/178 +f 1474/2583/179 1471/2808/179 1468/2579/179 +f 1472/2607/180 1473/2809/180 1469/2608/180 +f 1492/2610/178 1509/2623/178 1493/2611/178 +f 1512/2613/181 1514/2810/181 1513/2614/181 +f 1509/2616/174 1512/2613/174 1511/2615/174 +f 1494/2619/180 1491/2811/180 1511/2812/180 +f 1491/2811/180 1493/2813/180 1511/2812/180 +f 1511/2812/180 1513/2614/180 1494/2619/180 +f 1505/2621/174 1506/2814/174 1510/2618/174 +f 1510/2618/174 1513/2614/174 1504/2620/174 +f 1513/2614/174 1514/2810/174 1508/2815/174 +f 1504/2620/174 1513/2614/174 1508/2815/174 +f 1514/2810/174 1507/2816/174 1508/2815/174 +f 1492/2610/179 1502/2804/179 1512/2622/179 +f 1502/2804/179 1507/2816/179 1514/2810/179 +f 1512/2622/179 1502/2804/179 1514/2810/179 +f 1495/2606/182 1516/2817/182 1515/2624/182 +f 1497/2604/180 1515/2818/180 1518/2625/180 +f 1495/2606/179 1520/2629/179 1521/2627/179 +f 1520/2629/179 1495/2606/179 1496/2605/179 +f 1521/2627/179 1522/2819/179 1517/2631/179 +f 1521/2632/178 1525/2636/178 1526/2633/178 +f 1520/2635/175 1524/2639/175 1525/2636/175 +f 1519/2638/176 1523/2641/176 1524/2639/176 +f 1526/2633/179 1525/2636/179 1524/2639/179 +f 1607/2642/178 1598/2684/178 1606/2643/178 +f 1527/2645/183 1529/2820/183 1600/2646/183 +f 1532/2649/184 1530/2670/184 1602/2821/184 +f 1600/2646/184 1529/2820/184 1531/2648/184 +f 1532/2649/184 1602/2821/184 1600/2646/184 +f 1536/2650/178 1540/2657/178 1539/2651/178 +f 1489/2653/180 1705/2822/180 1706/2654/180 +f 1536/2650/179 1537/2823/179 1542/2656/179 +f 1537/2823/179 1533/2662/179 1544/2824/179 +f 1542/2656/179 1537/2823/179 1544/2824/179 +f 1533/2662/179 1546/2661/179 1544/2824/179 +f 1538/2658/180 1535/2825/180 1541/2659/180 +f 1535/2825/180 1539/2826/180 1541/2659/180 +f 1545/2664/180 1534/2827/180 1543/2660/180 +f 1534/2827/180 1538/2658/180 1543/2660/180 +f 1531/2828/179 1529/2663/179 1533/2662/179 +f 1529/2663/179 1471/2808/179 1550/2829/179 +f 1550/2829/179 1548/2830/179 1546/2661/179 +f 1529/2663/179 1550/2829/179 1546/2661/179 +f 1530/2666/180 1532/2831/180 1534/2827/180 +f 1534/2827/180 1545/2664/180 1530/2666/180 +f 1545/2664/180 1547/2832/180 1549/2665/180 +f 1549/2665/180 1472/2607/180 1530/2666/180 +f 1475/2598/179 1468/2579/179 1527/2833/179 +f 1468/2579/179 1471/2808/179 1529/2663/179 +f 1475/2598/179 1527/2833/179 1487/2667/179 +f 1529/2663/179 1527/2833/179 1468/2579/179 +f 1470/2609/180 1476/2762/180 1528/2834/180 +f 1476/2762/180 1486/2835/180 1488/2836/180 +f 1528/2834/180 1476/2762/180 1488/2836/180 +f 1528/2834/180 1530/2666/180 1470/2609/180 +f 1599/2669/183 1602/2821/183 1530/2670/183 +f 1607/2672/185 1487/2673/185 1527/2645/185 +f 1487/2673/185 1607/2672/185 1603/2674/185 +f 1602/2675/174 1605/2686/174 1608/2676/174 +f 1603/2674/185 1599/2669/185 1528/2671/185 +f 1601/2678/179 1599/2681/179 1603/2679/179 +f 1601/2678/179 1605/2686/179 1602/2680/179 +f 1607/2682/180 1597/2837/180 1604/2683/180 +f 1604/2683/180 1597/2837/180 1600/2685/180 +f 1601/2678/186 1606/2643/186 1598/2684/186 +f 1604/2683/187 1608/2676/187 1605/2686/187 +f 1613/2688/174 1616/2838/174 1619/2839/174 +f 1619/2839/174 1622/2689/174 1613/2688/174 +f 1622/2689/174 1625/2840/174 1632/2687/174 +f 1625/2840/174 1629/2841/174 1632/2687/174 +f 1636/2691/174 1634/2842/174 1623/2843/174 +f 1634/2842/174 1630/2844/174 1623/2843/174 +f 1623/2843/174 1614/2692/174 1636/2691/174 +f 1614/2692/174 1610/2845/174 1637/2690/174 +f 1641/2693/176 1642/2697/176 1640/2694/176 +f 1645/2696/179 1646/2846/179 1642/2697/179 +f 1644/2698/180 1643/2847/180 1639/2695/180 +f 1643/2699/174 1645/2848/174 1641/2693/174 +f 1651/2700/176 1653/2704/176 1654/2701/176 +f 1648/2703/179 1650/2849/179 1653/2704/179 +f 1649/2705/188 1654/2701/188 1653/2704/188 +f 1647/2707/180 1652/2702/180 1654/2701/180 +f 1648/2709/174 1651/2700/174 1652/2702/174 +f 1659/2711/176 1661/2719/176 1662/2712/176 +f 1655/2714/189 1660/2713/189 1662/2712/189 +f 1656/2716/190 1659/2711/190 1660/2713/190 +f 1656/2718/191 1658/2850/191 1661/2719/191 +f 1657/2720/192 1662/2712/192 1661/2719/192 +f 1666/2722/180 1678/2725/180 1668/2723/180 +f 1678/2725/180 1680/2727/180 1670/2726/180 +f 1680/2727/180 1682/2729/180 1672/2728/180 +f 1682/2729/180 1684/2731/180 1674/2730/180 +f 1684/2731/180 1686/2851/180 1676/2732/180 +f 1667/2733/179 1677/2737/179 1664/2734/179 +f 1669/2736/179 1679/2852/179 1677/2737/179 +f 1681/2738/179 1679/2852/179 1669/2736/179 +f 1673/2740/179 1683/2742/179 1681/2738/179 +f 1675/2741/179 1685/2853/179 1683/2742/179 +f 1688/2743/180 1702/2854/180 1700/2744/180 +f 1690/2745/180 1700/2744/180 1698/2746/180 +f 1692/2747/180 1698/2746/180 1696/2748/180 +f 1691/2750/179 1693/2855/179 1695/2751/179 +f 1689/2753/179 1691/2750/179 1697/2752/179 +f 1687/2755/179 1689/2753/179 1699/2754/179 +f 1706/2757/178 1705/2770/178 1710/2758/178 +f 1704/2760/179 1703/2856/179 1490/2599/179 +f 1489/2653/180 1478/2655/180 1480/2763/180 +f 1480/2763/180 1482/2857/180 1476/2762/180 +f 1482/2857/180 1484/2858/180 1476/2762/180 +f 1484/2858/180 1486/2835/180 1476/2762/180 +f 1477/2761/179 1490/2599/179 1479/2764/179 +f 1490/2599/179 1475/2598/179 1479/2764/179 +f 1475/2598/179 1485/2668/179 1483/2594/179 +f 1483/2594/179 1481/2592/179 1475/2598/179 +f 1490/2765/175 1703/2772/175 1709/2766/175 +f 1704/2773/174 1477/2587/174 1711/2771/174 +f 1477/2587/174 1478/2589/174 1708/2768/174 +f 1478/2589/174 1706/2757/174 1712/2759/174 +f 1708/2768/174 1711/2771/174 1477/2587/174 +f 1489/2769/175 1707/2767/175 1710/2758/175 +f 1711/2771/178 1709/2766/178 1703/2772/178 +f 1709/2766/193 1711/2771/193 1708/2774/193 +f 1708/2774/194 1712/2759/194 1710/2758/194 +f 1714/2776/179 1716/2859/179 1715/2777/179 +f 1523/2779/175 1519/2860/175 1496/2780/175 +f 1518/2782/175 1526/2783/175 1523/2779/175 +f 1526/2783/175 1518/2782/175 1517/2784/175 +s 1 +f 1396/2861/180 1397/2499/195 1395/2514/180 +f 1398/2862/195 1399/2497/196 1397/2499/195 +f 1400/2863/196 1401/2495/178 1399/2497/196 +f 1402/2520/178 1403/2510/197 1401/2513/178 +f 1404/2522/197 1405/2508/198 1403/2510/197 +f 1406/2864/198 1407/2507/179 1405/2508/198 +f 1408/2865/179 1409/2505/199 1407/2507/179 +f 1410/2866/199 1411/2503/200 1409/2505/199 +f 1412/2867/200 1413/2501/176 1411/2503/200 +f 1414/2868/176 1415/2494/201 1413/2501/176 +f 1416/2869/201 1417/2492/202 1415/2494/201 +f 1418/2870/202 1395/2514/180 1417/2492/202 +f 1425/2506/180 1436/2871/202 1424/2509/202 +f 1422/2786/176 1433/2872/200 1421/2496/200 +f 1429/2493/197 1440/2873/178 1428/2500/178 +f 1426/2504/195 1437/2874/180 1425/2506/180 +f 1423/2511/201 1434/2875/176 1422/2512/176 +f 1430/2515/198 1441/2876/197 1429/2493/197 +f 1420/2498/199 1431/2877/179 1419/2516/179 +f 1427/2502/196 1438/2878/195 1426/2504/195 +f 1424/2509/202 1435/2879/201 1423/2511/201 +f 1419/2516/179 1442/2880/198 1430/2515/198 +f 1421/2496/200 1432/2881/199 1420/2498/199 +f 1428/2500/178 1439/2882/196 1427/2502/196 +f 1451/2540/200 1464/2552/176 1452/2537/176 +f 1448/2518/198 1461/2577/179 1449/2544/179 +f 1445/2534/196 1458/2794/178 1446/2529/178 +f 1452/2537/176 1465/2556/201 1453/2538/201 +f 1449/2544/179 1462/2576/199 1450/2545/199 +f 1446/2787/178 1459/2569/197 1447/2521/197 +f 1453/2538/201 1466/2555/202 1454/2524/202 +f 1443/2525/180 1456/2563/195 1444/2527/195 +f 1450/2545/199 1463/2549/200 1451/2540/200 +f 1447/2521/197 1460/2572/198 1448/2518/198 +f 1443/2525/180 1466/2555/202 1455/2560/180 +f 1444/2527/195 1457/2566/196 1445/2534/196 +f 1473/2800/178 1471/2883/203 1474/2583/178 +f 1500/2884/204 1504/2885/179 1499/2886/179 +f 1499/2886/179 1508/2887/205 1503/2888/205 +f 1501/2805/206 1505/2889/204 1500/2884/204 +f 1503/2888/205 1507/2816/207 1502/2804/207 +f 1531/2648/175 1534/2890/208 1532/2649/175 +f 1537/2891/209 1535/2892/210 1538/2893/209 +f 1537/2891/209 1534/2890/208 1533/2894/208 +f 1540/2657/174 1541/2895/211 1539/2651/174 +f 1542/2896/211 1543/2897/212 1541/2895/211 +f 1544/2898/212 1545/2899/213 1543/2897/212 +f 1546/2900/213 1547/2901/214 1545/2899/213 +f 1548/2902/215 1549/2903/216 1547/2904/215 +f 1549/2903/216 1471/2883/203 1472/2905/203 +f 1588/2906/217 1553/2907/218 1551/2908/219 +f 1552/2909/220 1567/2910/221 1554/2911/222 +f 1562/2912/223 1573/2913/224 1563/2914/225 +f 1563/2914/225 1574/2915/226 1564/2916/227 +f 1555/2917/228 1559/2918/229 1568/2919/230 +f 1558/2920/231 1569/2921/232 1557/2922/233 +f 1585/2923/234 1586/2924/235 1596/2925/236 +f 1561/2926/237 1572/2927/238 1562/2912/223 +f 1558/2920/231 1556/2928/239 1570/2929/240 +f 1556/2928/239 1555/2917/228 1568/2919/230 +f 1567/2910/221 1561/2926/237 1554/2911/222 +f 1552/2909/220 1557/2922/233 1566/2930/241 +f 1565/2931/242 1575/2932/243 1560/2933/244 +f 1575/2932/243 1559/2918/229 1560/2933/244 +f 1569/2921/232 1567/2910/221 1566/2930/241 +f 1594/2934/245 1583/2935/246 1584/2936/247 +f 1574/2915/226 1570/2929/240 1568/2919/230 +f 1568/2919/230 1575/2932/243 1574/2915/226 +f 1595/2937/248 1584/2936/247 1585/2923/234 +f 1576/2938/249 1589/2939/250 1580/2940/251 +f 1590/2941/252 1579/2942/253 1578/2943/254 +f 1596/2925/236 1595/2937/248 1585/2923/234 +f 1593/2944/255 1582/2945/256 1583/2935/246 +f 1579/2942/253 1591/2946/257 1577/2947/258 +f 1577/2947/258 1589/2939/250 1576/2938/249 +f 1588/2906/217 1582/2945/256 1592/2948/259 +f 1553/2907/218 1587/2949/260 1578/2943/254 +f 1586/2924/235 1581/2950/261 1596/2925/236 +f 1581/2950/261 1589/2939/250 1596/2925/236 +f 1588/2906/217 1590/2941/252 1587/2949/260 +f 1595/2937/248 1589/2939/250 1591/2946/257 +f 1589/2939/250 1595/2937/248 1596/2925/236 +f 1552/2909/220 1578/2951/254 1557/2952/233 +f 1553/2953/218 1554/2911/222 1551/2954/219 +f 1582/2955/256 1554/2911/222 1561/2956/237 +f 1612/2957/262 1627/2958/263 1615/2959/264 +f 1612/2957/262 1616/2960/265 1613/2961/266 +f 1615/2959/264 1619/2962/267 1616/2960/265 +f 1615/2959/264 1627/2963/263 1618/2964/268 +f 1618/2964/268 1622/2965/269 1619/2962/267 +f 1618/2964/268 1627/2966/263 1621/2967/270 +f 1609/2968/271 1636/2969/272 1637/2970/273 +f 1622/2965/269 1624/2971/274 1625/2972/275 +f 1609/2968/271 1620/2973/276 1638/2974/277 +f 1621/2967/270 1627/2975/263 1624/2971/274 +f 1611/2976/278 1637/2970/273 1610/2977/279 +f 1625/2972/275 1628/2978/280 1629/2979/281 +f 1611/2976/278 1620/2980/276 1609/2968/271 +f 1624/2971/274 1627/2981/263 1628/2978/280 +f 1617/2982/282 1610/2977/279 1614/2983/283 +f 1629/2979/281 1631/2984/284 1632/2985/285 +f 1617/2982/282 1620/2986/276 1611/2976/278 +f 1628/2978/280 1627/2987/263 1631/2984/284 +f 1630/2988/286 1626/2989/287 1623/2990/288 +f 1633/2991/289 1620/2992/276 1626/2989/287 +f 1634/2993/290 1633/2991/289 1630/2988/286 +f 1635/2994/291 1620/2995/276 1633/2991/289 +f 1636/2969/272 1635/2994/291 1634/2993/290 +f 1638/2974/277 1620/2996/276 1635/2994/291 +f 1572/2927/238 1570/2929/240 1573/2913/224 +f 1573/2913/224 1570/2929/240 1574/2915/226 +f 1591/2946/257 1594/2934/245 1595/2937/248 +f 1593/2944/255 1591/2946/257 1590/2941/252 +f 1575/2932/243 1564/2916/227 1574/2915/226 +f 1565/2931/242 1564/2916/227 1575/2932/243 +f 1665/2997/292 1667/2998/293 1663/2735/292 +f 1668/2999/293 1669/3000/294 1667/2998/293 +f 1670/3001/294 1671/3002/295 1669/3000/294 +f 1672/3003/295 1673/3004/296 1671/3002/295 +f 1674/3005/297 1675/3006/298 1673/3004/296 +f 1664/2734/299 1678/2725/300 1666/2722/299 +f 1677/2737/300 1680/2727/301 1678/2725/300 +f 1679/2852/301 1682/2729/302 1680/2727/301 +f 1681/2738/302 1684/2731/303 1682/2729/302 +f 1683/2742/303 1686/2851/304 1684/2731/303 +f 1690/3007/305 1687/3008/215 1688/3009/215 +f 1692/3010/306 1689/3011/305 1690/3007/305 +f 1694/2749/307 1691/3012/306 1692/3010/306 +f 1696/2748/308 1693/2855/307 1694/2749/307 +f 1698/3013/309 1695/2751/308 1696/2748/308 +f 1700/3014/309 1697/3015/309 1698/3013/309 +f 1702/3016/310 1699/3017/309 1700/3014/309 +f 1570/2929/240 1556/2928/239 1568/2919/230 +f 1577/2947/258 1591/2946/257 1589/2939/250 +f 1571/3018/311 1569/2921/232 1572/2927/238 +f 1590/2941/252 1592/2948/259 1593/2944/255 +f 1566/2930/241 1557/2922/233 1569/2921/232 +f 1578/2943/254 1587/2949/260 1590/2941/252 +f 1396/2861/180 1398/2862/195 1397/2499/195 +f 1398/2862/195 1400/2863/196 1399/2497/196 +f 1400/2863/196 1402/3019/178 1401/2495/178 +f 1402/2520/178 1404/2522/197 1403/2510/197 +f 1404/2522/197 1406/2864/198 1405/2508/198 +f 1406/2864/198 1408/2865/179 1407/2507/179 +f 1408/2865/179 1410/2866/199 1409/2505/199 +f 1410/2866/199 1412/2867/200 1411/2503/200 +f 1412/2867/200 1414/2868/176 1413/2501/176 +f 1414/2868/176 1416/2869/201 1415/2494/201 +f 1416/2869/201 1418/2870/202 1417/2492/202 +f 1418/2870/202 1396/2861/180 1395/2514/180 +f 1425/2506/180 1437/2874/180 1436/2871/202 +f 1422/2786/176 1434/3020/176 1433/2872/200 +f 1429/2493/197 1441/2876/197 1440/2873/178 +f 1426/2504/195 1438/2878/195 1437/2874/180 +f 1423/2511/201 1435/2879/201 1434/2875/176 +f 1430/2515/198 1442/2880/198 1441/2876/197 +f 1420/2498/199 1432/2881/199 1431/2877/179 +f 1427/2502/196 1439/2882/196 1438/2878/195 +f 1424/2509/202 1436/2871/202 1435/2879/201 +f 1419/2516/179 1431/2877/179 1442/2880/198 +f 1421/2496/200 1433/2872/200 1432/2881/199 +f 1428/2500/178 1440/2873/178 1439/2882/196 +f 1451/2540/200 1463/2549/200 1464/2552/176 +f 1448/2518/198 1460/2572/198 1461/2577/179 +f 1445/2534/196 1457/2566/196 1458/2794/178 +f 1452/2537/176 1464/2552/176 1465/2556/201 +f 1449/2544/179 1461/2577/179 1462/2576/199 +f 1446/2787/178 1458/2570/178 1459/2569/197 +f 1453/2538/201 1465/2556/201 1466/2555/202 +f 1443/2525/180 1455/2560/180 1456/2563/195 +f 1450/2545/199 1462/2576/199 1463/2549/200 +f 1447/2521/197 1459/2569/197 1460/2572/198 +f 1443/2525/180 1454/2524/202 1466/2555/202 +f 1444/2527/195 1456/2563/195 1457/2566/196 +f 1473/2800/178 1472/2905/203 1471/2883/203 +f 1500/2884/204 1505/2889/204 1504/2885/179 +f 1499/2886/179 1504/2885/179 1508/2887/205 +f 1501/2805/206 1506/2814/206 1505/2889/204 +f 1503/2888/205 1508/2887/205 1507/2816/207 +f 1531/2648/175 1533/2894/208 1534/2890/208 +f 1537/2891/209 1536/3021/210 1535/2892/210 +f 1537/2891/209 1538/2893/209 1534/2890/208 +f 1540/2657/174 1542/2896/211 1541/2895/211 +f 1542/2896/211 1544/2898/212 1543/2897/212 +f 1544/2898/212 1546/2900/213 1545/2899/213 +f 1546/2900/213 1548/3022/214 1547/2901/214 +f 1548/2902/215 1550/3023/216 1549/2903/216 +f 1549/2903/216 1550/3023/216 1471/2883/203 +f 1588/2906/217 1587/2949/260 1553/2907/218 +f 1552/2909/220 1566/2930/241 1567/2910/221 +f 1562/2912/223 1572/2927/238 1573/2913/224 +f 1563/2914/225 1573/2913/224 1574/2915/226 +f 1558/2920/231 1570/2929/240 1569/2921/232 +f 1561/2926/237 1571/3018/311 1572/2927/238 +f 1567/2910/221 1571/3018/311 1561/2926/237 +f 1575/2932/243 1568/2919/230 1559/2918/229 +f 1569/2921/232 1571/3018/311 1567/2910/221 +f 1594/2934/245 1593/2944/255 1583/2935/246 +f 1595/2937/248 1594/2934/245 1584/2936/247 +f 1590/2941/252 1591/2946/257 1579/2942/253 +f 1593/2944/255 1592/2948/259 1582/2945/256 +f 1588/2906/217 1551/2908/219 1582/2945/256 +f 1581/2950/261 1580/2940/251 1589/2939/250 +f 1588/2906/217 1592/2948/259 1590/2941/252 +f 1552/2909/220 1553/2953/218 1578/2951/254 +f 1553/2953/218 1552/2909/220 1554/2911/222 +f 1582/2955/256 1551/2954/219 1554/2911/222 +f 1612/2957/262 1615/2959/264 1616/2960/265 +f 1615/2959/264 1618/2964/268 1619/2962/267 +f 1618/2964/268 1621/2967/270 1622/2965/269 +f 1609/2968/271 1638/2974/277 1636/2969/272 +f 1622/2965/269 1621/2967/270 1624/2971/274 +f 1611/2976/278 1609/2968/271 1637/2970/273 +f 1625/2972/275 1624/2971/274 1628/2978/280 +f 1617/2982/282 1611/2976/278 1610/2977/279 +f 1629/2979/281 1628/2978/280 1631/2984/284 +f 1630/2988/286 1633/2991/289 1626/2989/287 +f 1634/2993/290 1635/2994/291 1633/2991/289 +f 1636/2969/272 1638/2974/277 1635/2994/291 +f 1572/2927/238 1569/2921/232 1570/2929/240 +f 1593/2944/255 1594/2934/245 1591/2946/257 +f 1665/2997/292 1668/2999/293 1667/2998/293 +f 1668/2999/293 1670/3001/294 1669/3000/294 +f 1670/3001/294 1672/3003/295 1671/3002/295 +f 1672/3003/295 1674/3005/297 1673/3004/296 +f 1674/3005/297 1676/3024/298 1675/3006/298 +f 1664/2734/299 1677/2737/300 1678/2725/300 +f 1677/2737/300 1679/2852/301 1680/2727/301 +f 1679/2852/301 1681/2738/302 1682/2729/302 +f 1681/2738/302 1683/2742/303 1684/2731/303 +f 1683/2742/303 1685/2853/304 1686/2851/304 +f 1690/3007/305 1689/3011/305 1687/3008/215 +f 1692/3010/306 1691/3012/306 1689/3011/305 +f 1694/2749/307 1693/2855/307 1691/3012/306 +f 1696/2748/308 1695/2751/308 1693/2855/307 +f 1698/3013/309 1697/3015/309 1695/2751/308 +f 1700/3014/309 1699/3017/309 1697/3015/309 +f 1702/3016/310 1701/3025/310 1699/3017/309 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index d2c6248c7..b7038f609 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -59,6 +59,7 @@ "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, "block.reactorLoop": {"category": "block", "sounds": [{"name": "block/reactorLoop", "stream": false}]}, + "block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, @@ -67,7 +68,20 @@ "door.sliding_door_shut": {"category": "block", "sounds": [{"name": "block/door/sliding_door_shut", "stream": false}]}, "door.sliding_door_opened": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opened", "stream": false}]}, "door.sliding_door_opening": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opening", "stream": false}]}, - + + "door.garage_move": { "category": "block", "sounds": [{"name": "block/door/garage_move", "stream": false}] }, + "door.garage_stop": { "category": "block", "sounds": [{"name": "block/door/garage_stop", "stream": false}] }, + "door.lever": {"category": "block", "sounds": [{"name": "block/door/lever1", "stream": false}]}, + "door.wgh_start": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": false}]}, + "door.wgh_stop": {"category": "block", "sounds": [{"name": "block/door/wgh_stop", "stream": false}]}, + "door.wgh_big_start": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_start", "stream": false}]}, + "door.wgh_big_stop": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_stop", "stream": false}]}, + "door.qe_sliding_shut": {"category": "block", "sounds": [{"name": "block/door/doorshut_1", "stream": false}]}, + "door.qe_sliding_opened": {"category": "block", "sounds": [{"name": "block/door/doorslide_opened1", "stream": false}]}, + "door.qe_sliding_opening": {"category": "block", "sounds": [{"name": "block/door/doorslide_opening1", "stream": false}]}, + "door.sliding_seal_open": {"category": "block", "sounds": [{"name": "block/door/doormove2", "stream": false}]}, + "door.sliding_seal_stop": {"category": "block", "sounds": [{"name": "block/door/metal_stop1", "stream": false}]}, + "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, "item.geiger1": {"category": "player", "sounds": [{"name": "tool/geiger1", "stream": false}]}, @@ -187,6 +201,8 @@ "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, + "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, + "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg new file mode 100644 index 000000000..e85c687ae Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg new file mode 100644 index 000000000..c5322cd1a Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doormove2.ogg b/src/main/resources/assets/hbm/sounds/block/door/doormove2.ogg new file mode 100644 index 000000000..b41c4a6d0 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doormove2.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorshut_1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorshut_1.ogg new file mode 100644 index 000000000..d3dd53ceb Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doorshut_1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg new file mode 100644 index 000000000..4e9f5cd4e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg new file mode 100644 index 000000000..ded65d1a1 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg b/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg new file mode 100644 index 000000000..9a8c707a1 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/garage_stop.ogg b/src/main/resources/assets/hbm/sounds/block/door/garage_stop.ogg new file mode 100644 index 000000000..3d31adb02 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/garage_stop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/lever1.ogg b/src/main/resources/assets/hbm/sounds/block/door/lever1.ogg new file mode 100644 index 000000000..e6dd7e05c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/lever1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg b/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg new file mode 100644 index 000000000..e131a539b Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/fel.ogg b/src/main/resources/assets/hbm/sounds/block/fel.ogg new file mode 100644 index 000000000..f5927a707 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/fel.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg b/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg index 428ddeabb..95ac0c523 100644 Binary files a/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg and b/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg new file mode 100644 index 000000000..b76f3c389 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/44Shoot.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg b/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg new file mode 100644 index 000000000..22b179fda Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png new file mode 100644 index 000000000..b42795dcc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png new file mode 100644 index 000000000..ae2f704d8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png new file mode 100644 index 000000000..e8b931433 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png new file mode 100644 index 000000000..67edc2382 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png b/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png index 95ddf654f..55e55b543 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png and b/src/main/resources/assets/hbm/textures/blocks/block_advanced_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png b/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png index 69c2027cb..1a8d8d450 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png and b/src/main/resources/assets/hbm/textures/blocks/block_red_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red.png b/src/main/resources/assets/hbm/textures/blocks/brick_red.png new file mode 100644 index 000000000..21fc140e0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/brick_red.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red_top.png b/src/main/resources/assets/hbm/textures/blocks/brick_red_top.png new file mode 100644 index 000000000..c928f1f98 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/brick_red_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png new file mode 100644 index 000000000..5ad266bbe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/brick_red_top_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png b/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png new file mode 100644 index 000000000..206104da9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png new file mode 100644 index 000000000..91b4ab950 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png new file mode 100644 index 000000000..c81f1996e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_top.png new file mode 100644 index 000000000..5ed43ff9c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png new file mode 100644 index 000000000..c70303bb1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_top.png new file mode 100644 index 000000000..de67f9b0c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png new file mode 100644 index 000000000..1cf5cdafa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png new file mode 100644 index 000000000..adb2fdb8a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png new file mode 100644 index 000000000..df5c9a664 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png new file mode 100644 index 000000000..dc1fd209b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png new file mode 100644 index 000000000..275cf2485 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/diamond_block.png b/src/main/resources/assets/hbm/textures/blocks/diamond_block.png deleted file mode 100644 index f2e2e771a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/diamond_block.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/diamond_ore.png b/src/main/resources/assets/hbm/textures/blocks/diamond_ore.png deleted file mode 100644 index 735ecdaa9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/diamond_ore.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png b/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png new file mode 100644 index 000000000..d3771415f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/door_red_lower.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/door_red_upper.png b/src/main/resources/assets/hbm/textures/blocks/door_red_upper.png new file mode 100644 index 000000000..daff0a752 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/door_red_upper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png new file mode 100644 index 000000000..dbc6e87ca Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png new file mode 100644 index 000000000..c7d04c9a3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png new file mode 100644 index 000000000..add80fb8d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png new file mode 100644 index 000000000..824bd9421 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png new file mode 100644 index 000000000..2b75efcb7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png new file mode 100644 index 000000000..70d40f070 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png new file mode 100644 index 000000000..e8d4476ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png new file mode 100644 index 000000000..bb54d31ae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png new file mode 100644 index 000000000..4d38b8ec7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png new file mode 100644 index 000000000..67ebd79ec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png new file mode 100644 index 000000000..fd71122a6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_dock_top.png new file mode 100644 index 000000000..2186e84bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_dock_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png new file mode 100644 index 000000000..658409299 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png new file mode 100644 index 000000000..730f2a051 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png b/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png deleted file mode 100644 index a26c35f6a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png deleted file mode 100644 index 541a53c5f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png new file mode 100644 index 000000000..a0fa4d8e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested.png new file mode 100644 index 000000000..50c058246 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested_alt.png new file mode 100644 index 000000000..7cfa0d2da Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_infested_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs.png new file mode 100644 index 000000000..8f1e021e5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_alt.png new file mode 100644 index 000000000..f641f7f24 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base.png new file mode 100644 index 000000000..8d0ed4045 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png new file mode 100644 index 000000000..c4308d58a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base_infested.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png new file mode 100644 index 000000000..93786bc31 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_infested.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png deleted file mode 100644 index 88988d8af..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png deleted file mode 100644 index 696252554..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on.png deleted file mode 100644 index b7be137c4..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on_alt.png deleted file mode 100644 index fd3db8a9a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png deleted file mode 100644 index ae621d7a0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_side_alt.png deleted file mode 100644 index 326238314..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png new file mode 100644 index 000000000..40cdfa516 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png new file mode 100644 index 000000000..0ffb54e3d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_bottom.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_side.png new file mode 100644 index 000000000..16410b2ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png new file mode 100644 index 000000000..151899a23 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pedestal_side.png b/src/main/resources/assets/hbm/textures/blocks/pedestal_side.png new file mode 100644 index 000000000..a23df00a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pedestal_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pedestal_top.png b/src/main/resources/assets/hbm/textures/blocks/pedestal_top.png new file mode 100644 index 000000000..b53306641 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pedestal_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/radio_telex.png b/src/main/resources/assets/hbm/textures/blocks/radio_telex.png new file mode 100644 index 000000000..fddb508dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/radio_telex.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png new file mode 100644 index 000000000..29c3e3cf2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png new file mode 100644 index 000000000..f4a60e3c8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rail_switch_sign_flipped.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png new file mode 100644 index 000000000..b083e0730 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/boat_rubber.png b/src/main/resources/assets/hbm/textures/entity/boat_rubber.png new file mode 100644 index 000000000..9cde41461 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/boat_rubber.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png b/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png new file mode 100644 index 000000000..524358e73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/glyphid_digger.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_infestation.png b/src/main/resources/assets/hbm/textures/entity/glyphid_infestation.png new file mode 100644 index 000000000..4362c8e90 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/glyphid_infestation.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png b/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png new file mode 100644 index 000000000..9bc94381b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/parasite_maggot.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/pigeon.png b/src/main/resources/assets/hbm/textures/entity/pigeon.png new file mode 100644 index 000000000..94ccc073f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/pigeon.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/plasticbag.png b/src/main/resources/assets/hbm/textures/entity/plasticbag.png new file mode 100644 index 000000000..079d1ba4f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/plasticbag.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/GUICoal.png b/src/main/resources/assets/hbm/textures/gui/GUICoal.png index 55baf1719..64a2c1bff 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/GUICoal.png and b/src/main/resources/assets/hbm/textures/gui/GUICoal.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png new file mode 100644 index 000000000..e84993786 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png new file mode 100644 index 000000000..8c2fb1710 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png new file mode 100644 index 000000000..997a31214 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png new file mode 100644 index 000000000..63fdd9ec9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png b/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png new file mode 100644 index 000000000..bcde8c277 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png new file mode 100644 index 000000000..8517917d8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/pheromone_m.png b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone_m.png new file mode 100644 index 000000000..b82a63ab3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/pheromone_m.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png new file mode 100644 index 000000000..08d2f02dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png new file mode 100644 index 000000000..dc5671d92 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_inserter.png b/src/main/resources/assets/hbm/textures/gui/gui_inserter.png deleted file mode 100644 index a38ebf127..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_inserter.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_turbofan.png b/src/main/resources/assets/hbm/textures/gui/gui_turbofan.png deleted file mode 100644 index 89631642e..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_turbofan.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png index 9c5334115..956ddeecc 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_pattern.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_pattern.png deleted file mode 100644 index 306cf24f7..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_pattern.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png new file mode 100644 index 000000000..423352af0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png new file mode 100644 index 000000000..572179845 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png new file mode 100644 index 000000000..32635945d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png new file mode 100644 index 000000000..82c982cfa Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png new file mode 100644 index 000000000..24701a27f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png new file mode 100644 index 000000000..23f79d504 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_funnel.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png index 877132937..5222274f9 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png new file mode 100644 index 000000000..a0afa8019 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png new file mode 100644 index 000000000..4bcea800c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png new file mode 100644 index 000000000..a0b473215 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_requester.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_requester.png new file mode 100644 index 000000000..2b20d19e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_requester.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_plastic_bag.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_plastic_bag.png new file mode 100644 index 000000000..9f1c71dc6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_plastic_bag.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png index d51aeb1a2..3da9d72c8 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png and b/src/main/resources/assets/hbm/textures/gui/weapon/gadgetSchematic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ball_resin.png b/src/main/resources/assets/hbm/textures/items/ball_resin.png new file mode 100644 index 000000000..5c4657a99 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ball_resin.png differ diff --git a/src/main/resources/assets/hbm/textures/items/boat_rubber.png b/src/main/resources/assets/hbm/textures/items/boat_rubber.png new file mode 100644 index 000000000..6a1d428df Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/boat_rubber.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt.png b/src/main/resources/assets/hbm/textures/items/bolt.png new file mode 100644 index 000000000..32c36b42e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bolt.png differ diff --git a/src/main/resources/assets/hbm/textures/items/book_of_2.png b/src/main/resources/assets/hbm/textures/items/book_of_2.png new file mode 100644 index 000000000..d737a7b7b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/book_of_2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_MEAT_PROCESSING.png b/src/main/resources/assets/hbm/textures/items/chem_icon_MEAT_PROCESSING.png new file mode 100644 index 000000000..44f694ed7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chem_icon_MEAT_PROCESSING.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coal_eternal.png b/src/main/resources/assets/hbm/textures/items/coal_eternal.png new file mode 100644 index 000000000..36ee856f8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/coal_eternal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png b/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png index 291ff9f9f..aa44989b0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png and b/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_copper.png b/src/main/resources/assets/hbm/textures/items/coil_copper.png index a31ac7dc5..332bb627b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_copper.png and b/src/main/resources/assets/hbm/textures/items/coil_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_gold.png b/src/main/resources/assets/hbm/textures/items/coil_gold.png index 6d22668a3..849d394ac 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_gold.png and b/src/main/resources/assets/hbm/textures/items/coil_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png b/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png index 149d1c432..2118d79ff 100644 Binary files a/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png and b/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png differ diff --git a/src/main/resources/assets/hbm/textures/items/disperser_canister.png b/src/main/resources/assets/hbm/textures/items/disperser_canister.png new file mode 100644 index 000000000..4a5653488 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/disperser_canister.png differ diff --git a/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png b/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png new file mode 100644 index 000000000..1dcba8865 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/disperser_canister_overlay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dnt_sword.png b/src/main/resources/assets/hbm/textures/items/dnt_sword.png index fb74fb890..6a2fbb9fe 100644 Binary files a/src/main/resources/assets/hbm/textures/items/dnt_sword.png and b/src/main/resources/assets/hbm/textures/items/dnt_sword.png differ diff --git a/src/main/resources/assets/hbm/textures/items/dont_they_know.png b/src/main/resources/assets/hbm/textures/items/dont_they_know.png deleted file mode 100644 index b906a88b5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dont_they_know.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/door_red.png b/src/main/resources/assets/hbm/textures/items/door_red.png new file mode 100644 index 000000000..4fde1b889 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/door_red.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol.png b/src/main/resources/assets/hbm/textures/items/drone.patrol.png new file mode 100644 index 000000000..a1bd3424a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol_chunkloading.png b/src/main/resources/assets/hbm/textures/items/drone.patrol_chunkloading.png new file mode 100644 index 000000000..011d7827c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol_chunkloading.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol_express.png b/src/main/resources/assets/hbm/textures/items/drone.patrol_express.png new file mode 100644 index 000000000..fdea391f4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol_express.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.patrol_express_chunkloading.png b/src/main/resources/assets/hbm/textures/items/drone.patrol_express_chunkloading.png new file mode 100644 index 000000000..de3f8af73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.patrol_express_chunkloading.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone.request.png b/src/main/resources/assets/hbm/textures/items/drone.request.png new file mode 100644 index 000000000..33f2be57e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone.request.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone_linker.png b/src/main/resources/assets/hbm/textures/items/drone_linker.png new file mode 100644 index 000000000..6e0a5e7cd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/drone_linker.png differ diff --git a/src/main/resources/assets/hbm/textures/items/drone_linker.png.mcmeta b/src/main/resources/assets/hbm/textures/items/drone_linker.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/items/drone_linker.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_base.png b/src/main/resources/assets/hbm/textures/items/dynosphere_base.png deleted file mode 100644 index 8bc3b3769..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_desh.png b/src/main/resources/assets/hbm/textures/items/dynosphere_desh.png deleted file mode 100644 index 715386484..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_desh.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_desh_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_desh_charged.png deleted file mode 100644 index 34398c603..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_desh_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium.png deleted file mode 100644 index 7b79c52aa..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium_charged.png deleted file mode 100644 index 98495bcad..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_dineutronium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium.png deleted file mode 100644 index 6b44d7721..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium_charged.png deleted file mode 100644 index 5b66a3bc4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_euphemium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png deleted file mode 100644 index 8204ae217..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png deleted file mode 100644 index 9d6c03146..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_schrabidium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium.png b/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium.png deleted file mode 100644 index c7080411e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium_charged.png b/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium_charged.png deleted file mode 100644 index f05c034de..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/dynosphere_tetraneutronium_charged.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png index 1a6b4cb1b..afa1cbaf0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png deleted file mode 100644 index 198a44430..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png index a7cd568d9..cd1ac2e15 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png deleted file mode 100644 index 9674e50ab..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png index d2ac3f1dc..23345a9ea 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png deleted file mode 100644 index 15f8dbacf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png b/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png deleted file mode 100644 index 4a2c066f0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_base.png b/src/main/resources/assets/hbm/textures/items/fuelcell_base.png deleted file mode 100644 index b74dc7b35..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png deleted file mode 100644 index 0acd3351e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png deleted file mode 100644 index b4edaede1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png deleted file mode 100644 index f05ccd94d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png deleted file mode 100644 index 237092dbb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png deleted file mode 100644 index 86ba25294..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png deleted file mode 100644 index 9ce019f88..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/glyphid_gland.png b/src/main/resources/assets/hbm/textures/items/glyphid_gland.png new file mode 100644 index 000000000..0b1a48e6f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/glyphid_gland.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png index cb8f06db8..a7e2968c4 100644 Binary files a/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png and b/src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/heavy_component.png b/src/main/resources/assets/hbm/textures/items/heavy_component.png new file mode 100644 index 000000000..276fb9e48 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/heavy_component.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png b/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png new file mode 100644 index 000000000..7094fdeff Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_cft.png b/src/main/resources/assets/hbm/textures/items/ingot_cft.png new file mode 100644 index 000000000..9346dbb5a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_cft.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_crystalline.png b/src/main/resources/assets/hbm/textures/items/ingot_crystalline.png new file mode 100644 index 000000000..e120cf4ee Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_crystalline.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_uzh.png b/src/main/resources/assets/hbm/textures/items/ingot_uzh.png new file mode 100644 index 000000000..9c1bdf702 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_uzh.png differ diff --git a/src/main/resources/assets/hbm/textures/items/key.png b/src/main/resources/assets/hbm/textures/items/key.png index 403bbd9fc..593227c1c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/key.png and b/src/main/resources/assets/hbm/textures/items/key.png differ diff --git a/src/main/resources/assets/hbm/textures/items/key_red.png b/src/main/resources/assets/hbm/textures/items/key_red.png index 4b54458f6..206d0f966 100644 Binary files a/src/main/resources/assets/hbm/textures/items/key_red.png and b/src/main/resources/assets/hbm/textures/items/key_red.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_buster.png b/src/main/resources/assets/hbm/textures/items/missile_buster.png index 40afe848b..2fff7c4a0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_buster.png and b/src/main/resources/assets/hbm/textures/items/missile_buster.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_cluster.png b/src/main/resources/assets/hbm/textures/items/missile_cluster.png index 5b11a9d3a..d1b9a056f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_cluster.png and b/src/main/resources/assets/hbm/textures/items/missile_cluster.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_decoy.png b/src/main/resources/assets/hbm/textures/items/missile_decoy.png new file mode 100644 index 000000000..a3a736bb3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/missile_decoy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_generic.png b/src/main/resources/assets/hbm/textures/items/missile_generic.png index f06a2fd60..0e51204a0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_generic.png and b/src/main/resources/assets/hbm/textures/items/missile_generic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_incendiary.png b/src/main/resources/assets/hbm/textures/items/missile_incendiary.png index d468e0133..d73c8b473 100644 Binary files a/src/main/resources/assets/hbm/textures/items/missile_incendiary.png and b/src/main/resources/assets/hbm/textures/items/missile_incendiary.png differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_stealth.png b/src/main/resources/assets/hbm/textures/items/missile_stealth.png new file mode 100644 index 000000000..f7a8d3af2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/missile_stealth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png new file mode 100644 index 000000000..2dc03fe36 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png differ diff --git a/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png new file mode 100644 index 000000000..4c4df12b9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nitra.png b/src/main/resources/assets/hbm/textures/items/nitra.png new file mode 100644 index 000000000..8dcc2e36a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nitra.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nitra_small.png b/src/main/resources/assets/hbm/textures/items/nitra_small.png new file mode 100644 index 000000000..856147709 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nitra_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/page_of_.png b/src/main/resources/assets/hbm/textures/items/page_of_.png new file mode 100644 index 000000000..c1fef7b72 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/page_of_.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pattern.png b/src/main/resources/assets/hbm/textures/items/pattern.png deleted file mode 100644 index 9a263db7b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pattern.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pattern_drawn.png b/src/main/resources/assets/hbm/textures/items/pattern_drawn.png deleted file mode 100644 index ca8a8505a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pattern_drawn.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/plan_c_alt.png b/src/main/resources/assets/hbm/textures/items/plan_c_alt.png deleted file mode 100644 index 0a44d8317..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/plan_c_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/plastic_bag.png b/src/main/resources/assets/hbm/textures/items/plastic_bag.png new file mode 100644 index 000000000..5074bd920 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plastic_bag.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_welded.png b/src/main/resources/assets/hbm/textures/items/plate_welded.png new file mode 100644 index 000000000..6ef667101 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plate_welded.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png b/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png new file mode 100644 index 000000000..15e4bae5c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png b/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png new file mode 100644 index 000000000..31ca1e7f7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png b/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png new file mode 100644 index 000000000..664b4aa40 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png differ diff --git a/src/main/resources/assets/hbm/textures/items/radar_linker.png b/src/main/resources/assets/hbm/textures/items/radar_linker.png new file mode 100644 index 000000000..274181b4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/radar_linker.png differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_crystal.png b/src/main/resources/assets/hbm/textures/items/recycled_crystal.png deleted file mode 100644 index 89635cfba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_crystal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_electronic.png b/src/main/resources/assets/hbm/textures/items/recycled_electronic.png deleted file mode 100644 index 6076ee251..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_electronic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_explosive.png b/src/main/resources/assets/hbm/textures/items/recycled_explosive.png deleted file mode 100644 index f3e3135c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_explosive.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_ground.png b/src/main/resources/assets/hbm/textures/items/recycled_ground.png deleted file mode 100644 index 282c680a2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_ground.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_metal.png b/src/main/resources/assets/hbm/textures/items/recycled_metal.png deleted file mode 100644 index b1f504225..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_metal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_misc.png b/src/main/resources/assets/hbm/textures/items/recycled_misc.png deleted file mode 100644 index 23a4459a6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_misc.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_nuclear.png b/src/main/resources/assets/hbm/textures/items/recycled_nuclear.png deleted file mode 100644 index 9846b2c4a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_nuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_organic.png b/src/main/resources/assets/hbm/textures/items/recycled_organic.png deleted file mode 100644 index 6f065f58f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_organic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_overlay.png b/src/main/resources/assets/hbm/textures/items/recycled_overlay.png deleted file mode 100644 index e3d5183a6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_refined.png b/src/main/resources/assets/hbm/textures/items/recycled_refined.png deleted file mode 100644 index 2c346dbbd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_refined.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/recycled_rock.png b/src/main/resources/assets/hbm/textures/items/recycled_rock.png deleted file mode 100644 index 257a053a9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/recycled_rock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_relay.png b/src/main/resources/assets/hbm/textures/items/sat_relay.png new file mode 100644 index 000000000..2c104ddf7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/sat_relay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stamp_book.png b/src/main/resources/assets/hbm/textures/items/stamp_book.png new file mode 100644 index 000000000..30f65b906 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/stamp_book.png differ diff --git a/src/main/resources/assets/hbm/textures/items/structure_custommachine.png b/src/main/resources/assets/hbm/textures/items/structure_custommachine.png new file mode 100644 index 000000000..3f95a0a78 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/structure_custommachine.png differ diff --git a/src/main/resources/assets/hbm/textures/items/swordTemplate.png b/src/main/resources/assets/hbm/textures/items/swordTemplate.png deleted file mode 100644 index cda8f964c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/swordTemplate.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/template_folder_alt.png b/src/main/resources/assets/hbm/textures/items/template_folder_alt.png deleted file mode 100644 index 442aa6af4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/template_folder_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large.png b/src/main/resources/assets/hbm/textures/items/thruster_large.png index b93646e4f..669b2a68a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_large.png and b/src/main/resources/assets/hbm/textures/items/thruster_large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png deleted file mode 100644 index ee64287d3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_medium.png b/src/main/resources/assets/hbm/textures/items/thruster_medium.png index c880ffed8..3437a340a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_medium.png and b/src/main/resources/assets/hbm/textures/items/thruster_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png deleted file mode 100644 index b480e5999..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_small.png b/src/main/resources/assets/hbm/textures/items/thruster_small.png index f1881cd3c..192d0bd6e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_small.png and b/src/main/resources/assets/hbm/textures/items/thruster_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png deleted file mode 100644 index 30c695f30..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png new file mode 100644 index 000000000..509f7cae6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png new file mode 100644 index 000000000..b12e0e69f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png new file mode 100644 index 000000000..48e7b3e7c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png differ diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_plate.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_plate.png new file mode 100644 index 000000000..27b3fa9c3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/trenchmaster_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_dense.png b/src/main/resources/assets/hbm/textures/items/wire_dense.png new file mode 100644 index 000000000..2482676ab Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/wire_dense.png differ diff --git a/src/main/resources/assets/hbm/textures/models/TheGadget3_tex.png b/src/main/resources/assets/hbm/textures/models/TheGadget3_tex.png deleted file mode 100644 index 81b6e10d6..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/TheGadget3_tex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/gadget.png b/src/main/resources/assets/hbm/textures/models/bombs/gadget.png new file mode 100644 index 000000000..684d42e4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/gadget.png differ diff --git a/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png b/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png index 5225fc86d..1282cfb02 100644 Binary files a/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png and b/src/main/resources/assets/hbm/textures/models/capes/CapeAdam.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png b/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png new file mode 100644 index 000000000..3085d29d2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png b/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png new file mode 100644 index 000000000..9fa8b809f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/qe_containment.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png b/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png new file mode 100644 index 000000000..cd095da96 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png b/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png new file mode 100644 index 000000000..f46977bcb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png b/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png new file mode 100644 index 000000000..c5bafb762 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png b/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png new file mode 100644 index 000000000..108b7cefd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png new file mode 100644 index 000000000..9b64dbfe2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/water_door.png b/src/main/resources/assets/hbm/textures/models/doors/water_door.png new file mode 100644 index 000000000..1db668c8e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/water_door.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png b/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png new file mode 100644 index 000000000..7dc4193e8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/chimney_industrial.png b/src/main/resources/assets/hbm/textures/models/machines/chimney_industrial.png new file mode 100644 index 000000000..e89a56543 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/chimney_industrial.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/condenser.png b/src/main/resources/assets/hbm/textures/models/machines/condenser.png new file mode 100644 index 000000000..cb3573db1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/condenser.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png new file mode 100644 index 000000000..6464d8f83 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/conveyor_press_belt.png b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press_belt.png new file mode 100644 index 000000000..e99f266f0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press_belt.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png b/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png index b10a0d1db..6cfaeb008 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png and b/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone.png b/src/main/resources/assets/hbm/textures/models/machines/drone.png new file mode 100644 index 000000000..66c3240ba Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/drone.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone_express.png b/src/main/resources/assets/hbm/textures/models/machines/drone_express.png new file mode 100644 index 000000000..af1d99522 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/drone_express.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone_request.png b/src/main/resources/assets/hbm/textures/models/machines/drone_request.png new file mode 100644 index 000000000..314d79655 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/drone_request.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png new file mode 100644 index 000000000..36fefae3b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/fel.png b/src/main/resources/assets/hbm/textures/models/machines/fel.png index d3e0ed944..c0830a7c4 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/fel.png and b/src/main/resources/assets/hbm/textures/models/machines/fel.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/igen.png b/src/main/resources/assets/hbm/textures/models/machines/igen.png index 571094da1..8356c2e3c 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/igen.png and b/src/main/resources/assets/hbm/textures/models/machines/igen.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png b/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png new file mode 100644 index 000000000..ca6baef2d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/pump_steam.png b/src/main/resources/assets/hbm/textures/models/machines/pump_steam.png new file mode 100644 index 000000000..8a1306035 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/pump_steam.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png b/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png new file mode 100644 index 000000000..82e959a1c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png b/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png new file mode 100644 index 000000000..96f371d95 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/telex.png b/src/main/resources/assets/hbm/textures/models/machines/telex.png new file mode 100644 index 000000000..3cc38b488 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/telex.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png b/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png new file mode 100644 index 000000000..282ac5a5f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png differ diff --git a/src/main/resources/assets/hbm/textures/models/mas.png b/src/main/resources/assets/hbm/textures/models/mas.png new file mode 100644 index 000000000..a39ae81a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/mas.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missileAA.png b/src/main/resources/assets/hbm/textures/models/missileAA.png deleted file mode 100644 index 0c74ad150..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileAA.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_BU.png b/src/main/resources/assets/hbm/textures/models/missileHuge_BU.png deleted file mode 100644 index 2df487384..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_BU.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_CL.png b/src/main/resources/assets/hbm/textures/models/missileHuge_CL.png deleted file mode 100644 index cba5500d5..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_CL.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png b/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png deleted file mode 100644 index 2e647789c..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png b/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png deleted file mode 100644 index 0cb6be630..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileMIRV.png b/src/main/resources/assets/hbm/textures/models/missileMIRV.png deleted file mode 100644 index dd01c3d04..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileMIRV.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileNuclear.png b/src/main/resources/assets/hbm/textures/models/missileNuclear.png deleted file mode 100644 index 3ff7998b2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileNuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_BU.png b/src/main/resources/assets/hbm/textures/models/missileStrong_BU.png deleted file mode 100644 index 081321cca..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_BU.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png b/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png deleted file mode 100644 index 0c86da908..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png b/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png deleted file mode 100644 index a981e35a8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png b/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png deleted file mode 100644 index fb7624aa1..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_IN.png b/src/main/resources/assets/hbm/textures/models/missileStrong_IN.png deleted file mode 100644 index 3578037af..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileStrong_IN.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_BU.png b/src/main/resources/assets/hbm/textures/models/missileV2_BU.png deleted file mode 100644 index 48a2bcda9..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_BU.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_CL.png b/src/main/resources/assets/hbm/textures/models/missileV2_CL.png deleted file mode 100644 index f373109a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_CL.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_HE.png b/src/main/resources/assets/hbm/textures/models/missileV2_HE.png deleted file mode 100644 index bf8e01d18..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_HE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_IN.png b/src/main/resources/assets/hbm/textures/models/missileV2_IN.png deleted file mode 100644 index 4b01e70d2..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/missileV2_IN.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_abm.png b/src/main/resources/assets/hbm/textures/models/missile_abm.png new file mode 100644 index 000000000..0b56f1d54 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_abm.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge.png b/src/main/resources/assets/hbm/textures/models/missile_huge.png new file mode 100644 index 000000000..30eff35ce Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png b/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png new file mode 100644 index 000000000..fdc91812e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png b/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png new file mode 100644 index 000000000..9047f2918 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_inc.png b/src/main/resources/assets/hbm/textures/models/missile_huge_inc.png new file mode 100644 index 000000000..be1ed784a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_huge_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_stealth.png b/src/main/resources/assets/hbm/textures/models/missile_stealth.png new file mode 100644 index 000000000..8ebb99bfe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_stealth.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong.png b/src/main/resources/assets/hbm/textures/models/missile_strong.png new file mode 100644 index 000000000..25fb3e3c3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png b/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png new file mode 100644 index 000000000..e2521a650 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_cl.png b/src/main/resources/assets/hbm/textures/models/missile_strong_cl.png new file mode 100644 index 000000000..5f0236417 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_emp.png b/src/main/resources/assets/hbm/textures/models/missile_strong_emp.png new file mode 100644 index 000000000..cbb22f1bc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_emp.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png b/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png new file mode 100644 index 000000000..c9a536443 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2.png b/src/main/resources/assets/hbm/textures/models/missile_v2.png new file mode 100644 index 000000000..9959468ec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png b/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png new file mode 100644 index 000000000..84ca714b3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png b/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png new file mode 100644 index 000000000..7399458d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png b/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png new file mode 100644 index 000000000..191b0c97f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png b/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png new file mode 100644 index 000000000..18faa37ef Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/telex.png b/src/main/resources/assets/hbm/textures/models/telex.png deleted file mode 100644 index 2ba7d96c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/telex.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png new file mode 100644 index 000000000..8490d4f2a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lilmac.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png new file mode 100644 index 000000000..5df1f5069 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_plume.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lilmac_scope.png b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_scope.png new file mode 100644 index 000000000..0025df545 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/lilmac_scope.png differ