From 323a966516c19eb5e9452c7cdcee2ca1b07f4670 Mon Sep 17 00:00:00 2001 From: austin Date: Mon, 7 Jun 2021 20:11:56 -0400 Subject: [PATCH] Attaching items to entity's bones --- .../entity/EntityDataStrings.java | 17 ++++++ .../electrosphere/entity/EntityManager.java | 21 ++++++++ .../entity/types/creature/CreatureUtils.java | 2 +- .../creature/creaturemap/HitboxData.java | 5 ++ .../entity/types/hitbox/HitboxUtils.java | 12 ++++- .../entity/types/item/ItemUtils.java | 45 ++++++++++++++++ .../game/state/AliveManager.java | 33 ++++++++++++ .../electrosphere/game/state/AttachUtils.java | 42 +++++++++++++++ .../game/state/LoadingThread.java | 7 +++ .../java/electrosphere/game/world/World.java | 2 +- src/main/java/electrosphere/main/Globals.java | 6 +++ src/main/java/electrosphere/main/Main.java | 8 +++ .../net/server/ServerConnectionHandler.java | 6 +++ .../java/electrosphere/renderer/Actor.java | 4 +- .../electrosphere/renderer/RenderUtils.java | 7 +-- src/main/resources/Data/entity_map.json | 49 +++++++++++++++++- src/main/resources/Models/katana1.fbx | Bin 0 -> 126236 bytes src/main/resources/Models/katana1alt.fbx | Bin 0 -> 126396 bytes .../Textures/default_texture_map.json | 6 +++ src/main/resources/Textures/katana1.png | Bin 0 -> 3670 bytes 20 files changed, 259 insertions(+), 13 deletions(-) create mode 100644 src/main/java/electrosphere/entity/types/item/ItemUtils.java create mode 100644 src/main/java/electrosphere/game/state/AliveManager.java create mode 100644 src/main/java/electrosphere/game/state/AttachUtils.java create mode 100644 src/main/resources/Models/katana1.fbx create mode 100644 src/main/resources/Models/katana1alt.fbx create mode 100644 src/main/resources/Textures/katana1.png diff --git a/src/main/java/electrosphere/entity/EntityDataStrings.java b/src/main/java/electrosphere/entity/EntityDataStrings.java index 32b000b7..d9db05f2 100644 --- a/src/main/java/electrosphere/entity/EntityDataStrings.java +++ b/src/main/java/electrosphere/entity/EntityDataStrings.java @@ -75,10 +75,27 @@ public class EntityDataStrings { public static final String DATA_STRING_COLLISION_ENTITY_TYPE_SPHERE = "collisionSphere"; public static final String COLLISION_ENTITY_DATA_TYPE = "collisionDataType"; + public static final String COLLISION_ENTITY_DATA_TYPE_HIT = "collisionDataTypeHit"; + public static final String COLLISION_ENTITY_DATA_TYPE_HURT = "collisionDataTypeHurt"; public static final String COLLISION_ENTITY_DATA_PARENT = "collisionDataParent"; public static final String COLLISION_ENTITY_DATA_BONE = "collisionDataBone"; + public static final String COLLISION_ENTITY_DATA_SIZE = "collisionSphereSize"; + + + /* + Attach Entity + */ + public static final String ATTACH_ENTITY_IS_ATTACHED = "attachIsAttached"; + public static final String ATTACH_PARENT = "attachParent"; + public static final String ATTACH_TARGET_BONE = "attachTargetBone"; + + /* + Item Entity + */ + public static final String ITEM_IS_ITEM = "itemIsItem"; + public static final String ITEM_TYPE = "itemType"; } diff --git a/src/main/java/electrosphere/entity/EntityManager.java b/src/main/java/electrosphere/entity/EntityManager.java index 839af30b..d7b2b6d3 100644 --- a/src/main/java/electrosphere/entity/EntityManager.java +++ b/src/main/java/electrosphere/entity/EntityManager.java @@ -17,6 +17,8 @@ public class EntityManager { static CopyOnWriteArrayList moveableList = new CopyOnWriteArrayList(); static CopyOnWriteArrayList lightList = new CopyOnWriteArrayList(); static CopyOnWriteArrayList uiList = new CopyOnWriteArrayList(); + static CopyOnWriteArrayList itemList = new CopyOnWriteArrayList(); + static CopyOnWriteArrayList attachList = new CopyOnWriteArrayList(); public EntityManager(){ @@ -59,6 +61,22 @@ public class EntityManager { return uiList; } + public void registerItemEntity(Entity e){ + itemList.add(e); + } + + public CopyOnWriteArrayList getItemEntities(){ + return itemList; + } + + public void registerAttachedEntity(Entity e){ + attachList.add(e); + } + + public CopyOnWriteArrayList getAttachedEntities(){ + return attachList; + } + public void deregisterEntity(Entity e){ if(lightList.contains(e)){ lightList.remove(e); @@ -76,6 +94,9 @@ public class EntityManager { if(uiList.contains(e)){ uiList.remove(e); } + if(itemList.contains(e)){ + itemList.remove(e); + } } public void overrideEntityId(Entity e, int id){ diff --git a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java index f06934f3..60e4bfa3 100644 --- a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java +++ b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java @@ -44,7 +44,7 @@ public class CreatureUtils { CreatureType rawType = Globals.entityTypeMap.get(creatureId); Entity rVal = EntityUtils.spawnDrawableEntity(rawType.getModelPath()); for(HitboxData hitboxdata : rawType.getHitboxes()){ - Globals.hitboxManager.registerHitbox(HitboxUtils.spawnRegularHitbox(rVal, hitboxdata.getBone())); + Globals.hitboxManager.registerHitbox(HitboxUtils.spawnRegularHitbox(rVal, hitboxdata.getBone(), hitboxdata.getSize())); } rVal.putData(EntityDataStrings.DATA_STRING_CREATURE_IS_CREATURE, true); rVal.putData(EntityDataStrings.DATA_STRING_CREATURE_TYPE, creatureId); diff --git a/src/main/java/electrosphere/entity/types/creature/creaturemap/HitboxData.java b/src/main/java/electrosphere/entity/types/creature/creaturemap/HitboxData.java index 41a3c374..6b574e5d 100644 --- a/src/main/java/electrosphere/entity/types/creature/creaturemap/HitboxData.java +++ b/src/main/java/electrosphere/entity/types/creature/creaturemap/HitboxData.java @@ -7,6 +7,7 @@ package electrosphere.entity.types.creature.creaturemap; public class HitboxData { String type; String bone; + float size; public String getType() { return type; @@ -16,5 +17,9 @@ public class HitboxData { return bone; } + public float getSize() { + return size; + } + } diff --git a/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java b/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java index 63c586b8..fb0967a6 100644 --- a/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java +++ b/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java @@ -15,10 +15,20 @@ import org.joml.Vector4f; public class HitboxUtils { - public static Entity spawnRegularHitbox(Entity parent, String bone){ + public static Entity spawnRegularHitbox(Entity parent, String bone, float size){ Entity rVal = new Entity(); rVal.putData(EntityDataStrings.COLLISION_ENTITY_DATA_PARENT, parent); rVal.putData(EntityDataStrings.COLLISION_ENTITY_DATA_BONE, bone); + rVal.putData(EntityDataStrings.COLLISION_ENTITY_DATA_SIZE,size); + rVal.putData(EntityDataStrings.DATA_STRING_POSITION, new Vector3f(0,0,0)); + return rVal; + } + + public static Entity spawnRegularHurtbox(Entity parent, String bone, float size){ + Entity rVal = new Entity(); + rVal.putData(EntityDataStrings.COLLISION_ENTITY_DATA_PARENT, parent); + rVal.putData(EntityDataStrings.COLLISION_ENTITY_DATA_BONE, bone); + rVal.putData(EntityDataStrings.COLLISION_ENTITY_DATA_SIZE,size); rVal.putData(EntityDataStrings.DATA_STRING_POSITION, new Vector3f(0,0,0)); return rVal; } diff --git a/src/main/java/electrosphere/entity/types/item/ItemUtils.java b/src/main/java/electrosphere/entity/types/item/ItemUtils.java new file mode 100644 index 00000000..5c42501e --- /dev/null +++ b/src/main/java/electrosphere/entity/types/item/ItemUtils.java @@ -0,0 +1,45 @@ +package electrosphere.entity.types.item; + +import electrosphere.entity.Entity; +import electrosphere.entity.EntityDataStrings; +import electrosphere.entity.EntityUtils; +import electrosphere.entity.state.MovementTree; +import electrosphere.entity.types.creature.creaturemap.CreatureType; +import electrosphere.entity.types.creature.creaturemap.HitboxData; +import electrosphere.entity.types.hitbox.HitboxUtils; +import electrosphere.main.Globals; +import electrosphere.renderer.Actor; +import electrosphere.renderer.Model; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +/** + * + * @author amaterasu + */ +public class ItemUtils { + public static Entity spawnBasicItem(int itemId){ + CreatureType rawType = Globals.entityTypeMap.get(itemId); + Entity rVal = EntityUtils.spawnDrawableEntity(rawType.getModelPath()); + for(HitboxData hitboxdata : rawType.getHitboxes()){ + Globals.hitboxManager.registerHitbox(HitboxUtils.spawnRegularHitbox(rVal, hitboxdata.getBone(), hitboxdata.getSize())); + } + rVal.putData(EntityDataStrings.ITEM_IS_ITEM, true); + rVal.putData(EntityDataStrings.ITEM_TYPE, itemId); + rVal.putData(EntityDataStrings.DATA_STRING_SCALE, new Vector3f(0.005f,0.005f,0.005f)); + rVal.putData(EntityDataStrings.DATA_STRING_ROTATION, new Quaternionf().identity().rotateY((float)(-Math.PI/2)).rotateZ(-(float)(Math.PI/2))); + Globals.entityManager.registerItemEntity(rVal); + return rVal; + } + + public static void updateItemActorAnimation(Entity item){ + Actor actor = EntityUtils.getEntityActor(item); + if(actor.getCurrentAnimation() == null){ +// Model model; +// if((model = Globals.assetManager.fetchModel(actor.getModelPath()))!=null){ +// model.describeAllAnimations(); +// } + actor.playAnimation("Sword|Idle"); + } + } +} diff --git a/src/main/java/electrosphere/game/state/AliveManager.java b/src/main/java/electrosphere/game/state/AliveManager.java new file mode 100644 index 00000000..433a9101 --- /dev/null +++ b/src/main/java/electrosphere/game/state/AliveManager.java @@ -0,0 +1,33 @@ +package electrosphere.game.state; + +import electrosphere.entity.Entity; +import java.util.ArrayList; +import java.util.List; + +/** + * + * @author amaterasu + */ +public class AliveManager { + List aliveList = new ArrayList(); + List deadList = new ArrayList(); + List invulnerableList = new ArrayList(); + + public List getAliveEntities(){ + return aliveList; + } + + public List getDeadEntities(){ + return deadList; + } + + public List getInvulnerableEntities(){ + return invulnerableList; + } + + + public void registerAliveEntity(Entity e){ + aliveList.add(e); + } + +} diff --git a/src/main/java/electrosphere/game/state/AttachUtils.java b/src/main/java/electrosphere/game/state/AttachUtils.java new file mode 100644 index 00000000..daeec331 --- /dev/null +++ b/src/main/java/electrosphere/game/state/AttachUtils.java @@ -0,0 +1,42 @@ +package electrosphere.game.state; + +import electrosphere.entity.Entity; +import electrosphere.entity.EntityDataStrings; +import electrosphere.entity.EntityUtils; +import electrosphere.main.Globals; +import electrosphere.renderer.Actor; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +/** + * + * @author amaterasu + */ +public class AttachUtils { + + + public static void attachEntityToEntityAtBone(Entity parent, Entity toAttach, String boneName){ + Globals.entityManager.registerAttachedEntity(toAttach); + toAttach.putData(EntityDataStrings.ATTACH_ENTITY_IS_ATTACHED, true); + toAttach.putData(EntityDataStrings.ATTACH_PARENT, parent); + toAttach.putData(EntityDataStrings.ATTACH_TARGET_BONE, boneName); + } + + public static void updateAttachedEntityPositions(){ + for(Entity currentEntity : Globals.entityManager.getAttachedEntities()){ + Entity parent; + if((parent = (Entity)currentEntity.getData(EntityDataStrings.ATTACH_PARENT))!=null){ + String targetBone; + if((targetBone = (String)currentEntity.getData(EntityDataStrings.ATTACH_TARGET_BONE))!=null){ + Actor parentActor = EntityUtils.getEntityActor(parent); + Vector3f position = new Vector3f(parentActor.getBonePosition(targetBone)); + position = position.mul(((Vector3f)EntityUtils.getEntityScale(parent))); + position = position.rotate(((Quaternionf)EntityUtils.getEntityRotation(parent))); + position.add(new Vector3f(EntityUtils.getEntityPosition(parent))); + EntityUtils.getEntityPosition(currentEntity).set(position); + EntityUtils.getEntityRotation(currentEntity).add(EntityUtils.getEntityRotation(parent)).normalize(); + } + } + } + } +} diff --git a/src/main/java/electrosphere/game/state/LoadingThread.java b/src/main/java/electrosphere/game/state/LoadingThread.java index 7f779ac1..9f7d5d2f 100644 --- a/src/main/java/electrosphere/game/state/LoadingThread.java +++ b/src/main/java/electrosphere/game/state/LoadingThread.java @@ -6,6 +6,7 @@ import electrosphere.entity.Entity; import electrosphere.entity.EntityUtils; import electrosphere.entity.collision.CollisionEngine; import electrosphere.entity.types.creature.CreatureUtils; +import electrosphere.entity.types.item.ItemUtils; import electrosphere.game.cell.DrawCellManager; import electrosphere.game.state.SimulationState.SimulationStateMachine; import electrosphere.game.terrain.TerrainManager; @@ -379,6 +380,12 @@ public class LoadingThread extends Thread { // EntityUtils.getEntityPosition(creature).set(rand.nextFloat() * 10, rand.nextFloat() * 10, rand.nextFloat() * 10); // EntityUtils.getEntityScale(creature).set(0.01f); // } + + Entity sword = ItemUtils.spawnBasicItem(2); + Entity testHomie = CreatureUtils.spawnBasicCreature(0, 0.1f, 0.5f); + EntityUtils.getEntityScale(testHomie).set(0.005f); + EntityUtils.getEntityPosition(testHomie).set(2,0,2); + AttachUtils.attachEntityToEntityAtBone(testHomie, sword, "Bone.020"); } diff --git a/src/main/java/electrosphere/game/world/World.java b/src/main/java/electrosphere/game/world/World.java index 7e253426..ba33b916 100644 --- a/src/main/java/electrosphere/game/world/World.java +++ b/src/main/java/electrosphere/game/world/World.java @@ -57,7 +57,7 @@ public class World { rVal.type = WorldType.GAME_WORLD; rVal.terrainManager = terrainManager; rVal.worldMinPoint = new Vector3f(0,0,0); - int worldDim = rVal.terrainManager.getWorldDiscreteSize(); + int worldDim = rVal.terrainManager.getWorldDiscreteSize() * rVal.terrainManager.getChunkWidth(); rVal.worldMaxPoint = new Vector3f(worldDim,0,worldDim); return rVal; } diff --git a/src/main/java/electrosphere/main/Globals.java b/src/main/java/electrosphere/main/Globals.java index 4f1232e9..13c28cd5 100644 --- a/src/main/java/electrosphere/main/Globals.java +++ b/src/main/java/electrosphere/main/Globals.java @@ -18,6 +18,7 @@ import electrosphere.entity.types.creature.creaturemap.CreatureType; import electrosphere.entity.types.creature.creaturemap.CreatureTypeList; import electrosphere.entity.types.hitbox.HitboxManager; import electrosphere.game.cell.DrawCellManager; +import electrosphere.game.state.AliveManager; import electrosphere.game.state.LoadingThread; import electrosphere.game.terrain.TerrainManager; import electrosphere.game.world.World; @@ -185,6 +186,9 @@ public class Globals { //ui text box for loading text public static TextBox loadingBox; + //life status entity manager + public static AliveManager aliveManager; + //the player camera entity public static Entity playerCamera; @@ -225,6 +229,8 @@ public class Globals { widgetManager = new WidgetManager(); //hitbox manager hitboxManager = new HitboxManager(); + //alive manager + aliveManager = new AliveManager(); } public static void initDefaultGraphicalResources(){ diff --git a/src/main/java/electrosphere/main/Main.java b/src/main/java/electrosphere/main/Main.java index 599065f3..cf4f343a 100644 --- a/src/main/java/electrosphere/main/Main.java +++ b/src/main/java/electrosphere/main/Main.java @@ -16,7 +16,9 @@ import electrosphere.entity.EntityDataStrings; import electrosphere.entity.EntityUtils; import electrosphere.entity.state.MovementTree; import electrosphere.entity.types.hitbox.HitboxUtils; +import electrosphere.entity.types.item.ItemUtils; import electrosphere.game.cell.DrawCellManager; +import electrosphere.game.state.AttachUtils; import electrosphere.game.state.LoadingThread; import electrosphere.game.state.SimulationState; import electrosphere.game.state.SimulationState.SimulationStateMachine; @@ -210,6 +212,12 @@ public class Main { /// C L I E N T S I M U L A T I O N S T U F F /// if(SimulationState.simulationState == SimulationStateMachine.MAIN_SIMULATION || SimulationState.simulationState == SimulationStateMachine.ARENA_SIMULATION){ + //make items play idle animation + for(Entity item : Globals.entityManager.getItemEntities()){ + ItemUtils.updateItemActorAnimation(item); + } + //update attached entity positions + AttachUtils.updateAttachedEntityPositions(); //simulate creature behavior trees for(Entity currentMoveable : Globals.entityManager.getMoveable()){ MovementTree behaviorTree = CreatureUtils.getEntityMovementTree(currentMoveable); diff --git a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java index e0165f6a..ed89669f 100644 --- a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java +++ b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java @@ -3,6 +3,8 @@ package electrosphere.net.server; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.Entity; import electrosphere.entity.EntityUtils; +import electrosphere.entity.types.item.ItemUtils; +import electrosphere.game.state.AttachUtils; import electrosphere.main.Globals; import electrosphere.main.Main; import electrosphere.net.NetUtils; @@ -88,6 +90,10 @@ public class ServerConnectionHandler implements Runnable { Entity newPlayerCharacter = CreatureUtils.spawnBasicCreature(0, 0.001f, 0.05f); EntityUtils.getEntityScale(newPlayerCharacter).set(0.005f); EntityUtils.getEntityPosition(newPlayerCharacter).set(Globals.spawnPoint.x,Globals.drawCellManager.getElevationAtRealPoint(Globals.spawnPoint.x, Globals.spawnPoint.z),Globals.spawnPoint.z); + //spawn player sword + Entity sword = ItemUtils.spawnBasicItem(2); + AttachUtils.attachEntityToEntityAtBone(newPlayerCharacter, sword, "Bone.020"); + //set controller id CreatureUtils.setControllerPlayerId(newPlayerCharacter, playerID); if(Globals.mainConfig.runServer && Main.playerId == -1){ Globals.playerCharacter = newPlayerCharacter; diff --git a/src/main/java/electrosphere/renderer/Actor.java b/src/main/java/electrosphere/renderer/Actor.java index 21fbf746..1c852330 100644 --- a/src/main/java/electrosphere/renderer/Actor.java +++ b/src/main/java/electrosphere/renderer/Actor.java @@ -111,9 +111,7 @@ public class Actor { model.playAnimation(animation); model.incrementTime(0.001); model.incrementTime(animationTime); - if(model.currentAnimation == null){ - playingAnimation = false; - } + model.update_node_transform(model.root_anim_node); Bone currentBone = model.boneMap.get(boneName); if(currentBone != null){ Vector4f result = currentBone.final_transform.transform(new Matrix4f(currentBone.inverseBindPoseMatrix).invert().transform(new Vector4f(rVal.x,rVal.y,rVal.z,1))); diff --git a/src/main/java/electrosphere/renderer/RenderUtils.java b/src/main/java/electrosphere/renderer/RenderUtils.java index 3ebe36fc..35e0e450 100644 --- a/src/main/java/electrosphere/renderer/RenderUtils.java +++ b/src/main/java/electrosphere/renderer/RenderUtils.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package electrosphere.renderer; import electrosphere.entity.CameraEntityUtils; @@ -685,7 +680,7 @@ public class RenderUtils { modelTransformMatrix.identity(); modelTransformMatrix.translate(new Vector3f(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera)).sub(new Vector3f(0,1,0))); // modelTransformMatrix.translate(-0.25f, 0.0f, 0.5f); //center sphere - modelTransformMatrix.scale(0.1f); + modelTransformMatrix.scale((Float)currentHitbox.getData(EntityDataStrings.COLLISION_ENTITY_DATA_SIZE)); hitboxModel.modelMatrix = modelTransformMatrix; hitboxModel.draw(); } diff --git a/src/main/resources/Data/entity_map.json b/src/main/resources/Data/entity_map.json index e9052728..58d435e9 100644 --- a/src/main/resources/Data/entity_map.json +++ b/src/main/resources/Data/entity_map.json @@ -5,7 +5,36 @@ "modelPath" : "Models/person1walkanim.fbx", "hitboxes" : [ { - "bone": "Bone.031" + "bone": "Bone.031", + "size": 0.08 + }, + { + "bone": "Bone.017", + "size": 0.08 + }, + { + "bone": "Bone.012", + "size": 0.08 + }, + { + "bone": "Bone.003", + "size": 0.08 + }, + { + "bone": "Bone.010", + "size": 0.11 + }, + { + "bone": "Bone.001", + "size": 0.11 + }, + { + "bone": "Bone", + "size": 0.15 + }, + { + "bone": "Bone.014", + "size": 0.12 } ] }, @@ -13,6 +42,24 @@ "id" : 1, "modelPath" : "", "hitboxes" : [] + }, + { + "id" : 2, + "modelPath" : "Models/katana1alt.fbx", + "hitboxes" : [ + { + "bone": "Blade1", + "size": 0.08 + }, + { + "bone": "Blade2", + "size": 0.08 + }, + { + "bone": "Blade3", + "size": 0.08 + } + ] } ] } diff --git a/src/main/resources/Models/katana1.fbx b/src/main/resources/Models/katana1.fbx new file mode 100644 index 0000000000000000000000000000000000000000..f1a3f5229d16e016dcf4045657949b565e792e1b GIT binary patch literal 126236 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/Models/katana1alt.fbx b/src/main/resources/Models/katana1alt.fbx new file mode 100644 index 0000000000000000000000000000000000000000..43202aedff5dddf1728be297194c638d5c379077 GIT binary patch literal 126396 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/Textures/default_texture_map.json b/src/main/resources/Textures/default_texture_map.json index a6093c1c..c40ca4b3 100644 --- a/src/main/resources/Textures/default_texture_map.json +++ b/src/main/resources/Textures/default_texture_map.json @@ -23,6 +23,12 @@ "Textures/transparent_blue.png", "Textures/transparent_blue.png" ] + }, + "Models/katana1.fbx": { + "SwordMesh": [ + "Textures/katana1.png", + "Textures/katana1.png" + ] } } } \ No newline at end of file diff --git a/src/main/resources/Textures/katana1.png b/src/main/resources/Textures/katana1.png new file mode 100644 index 0000000000000000000000000000000000000000..82774c70da4fe1083e6e55c1e2fba187aa1bd65c GIT binary patch literal 3670 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 KuI0|0^#1^Ta9Rog literal 0 HcmV?d00001