diff --git a/build-data/additional-spigot-member-mappings.csrg b/build-data/additional-spigot-member-mappings.csrg index 05907c24c4..c6301f91b6 100644 --- a/build-data/additional-spigot-member-mappings.csrg +++ b/build-data/additional-spigot-member-mappings.csrg @@ -2,5 +2,6 @@ # Merchant.getLevel() # Entity.getCommandSenderWorld() # to getWorld(), which confuses our ability to map this method properly. This patch disambiguates it -net/minecraft/world/item/trading/IMerchant fE ()Lnet/minecraft/world/level/World; getLevel -net/minecraft/world/entity/npc/EntityVillagerAbstract fE ()Lnet/minecraft/world/level/World; getLevel +# 1.18 todo: check these +#net/minecraft/world/item/trading/IMerchant fE ()Lnet/minecraft/world/level/World; getLevel +#net/minecraft/world/entity/npc/EntityVillagerAbstract fE ()Lnet/minecraft/world/level/World; getLevel diff --git a/build-data/craftbukkit-patch-patches/BehaviorWorkComposter.patch.patch b/build-data/craftbukkit-patch-patches/BehaviorWorkComposter.patch.patch deleted file mode 100644 index 9f2bdc4a2c..0000000000 --- a/build-data/craftbukkit-patch-patches/BehaviorWorkComposter.patch.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch -+++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch -@@ -1,14 +1,5 @@ - --- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java - +++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java --@@ -23,7 +23,7 @@ -- public BehaviorWorkComposter() {} -- -- @Override --- protected void a(WorldServer worldserver, EntityVillager entityvillager) { --+ protected void doWork(WorldServer worldserver, EntityVillager entityvillager) { // PAIL -- Optional optional = entityvillager.getBehaviorController().getMemory(MemoryModuleType.JOB_SITE); -- -- if (optional.isPresent()) { - @@ -42,7 +42,7 @@ - BlockPosition blockposition = globalpos.getBlockPosition(); - diff --git a/build-data/mappings-patch.tiny b/build-data/mappings-patch.tiny index 3e893934c8..38cfe3750c 100644 --- a/build-data/mappings-patch.tiny +++ b/build-data/mappings-patch.tiny @@ -1,111 +1,113 @@ tiny 2 0 spigot mojang+yarn +# 1.18 todo: check these + # Originally DistanceManager, which also implements DistanceManager, so clashes since the implemented class # is imported and not fully qualified. Easiest fix is to just change the name c net/minecraft/server/level/PlayerChunkMap$a net/minecraft/server/level/ChunkMap$ChunkDistanceManager -c net/minecraft/server/network/PlayerConnection net/minecraft/server/network/ServerGamePacketListenerImpl - # CB adds getPlayer()CraftPlayer, conflicts with getPlayer()ServerPlayer - m ()Lorg/bukkit/craftbukkit/entity/CraftPlayer; getPlayer getCraftPlayer - m (DDDFFLorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)V a teleport - # CB adds int, ItemStack to end of params - m (Ljava/util/List;Ljava/util/function/UnaryOperator;Lnet/minecraft/world/item/ItemStack;ILnet/minecraft/world/item/ItemStack;)V a updateBookPages - -# CraftBukkit adds the getType() method, clashes with a Mojang method -c net/minecraft/world/entity/EntityAreaEffectCloud net/minecraft/world/entity/AreaEffectCloud - m ()Ljava/lang/String; getType getPotionType - -# CraftBukkit adds the getType() method, clashes with a Mojang method -c net/minecraft/world/entity/projectile/EntityTippedArrow net/minecraft/world/entity/projectile/Arrow - m ()Ljava/lang/String; getType getPotionType - -# CraftBukkit adds a new `a` method which allows passing the Entity parameter -# It uses `a` to match the original method (with just 1 param), so this patch makes them match -c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel - m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform - -# CraftBukkit adds limit param -c net/minecraft/world/level/SpawnerCreature$d net/minecraft/world/level/NaturalSpawner$SpawnState - m (Lnet/minecraft/world/entity/EnumCreatureType;I)Z a canSpawnForCategory - -# CraftBukkit adds a TeleportCause to methods in ServerPLayer -c net/minecraft/server/level/EntityPlayer net/minecraft/server/level/ServerPlayer - m (Lnet/minecraft/server/level/WorldServer;Lorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)Lnet/minecraft/world/entity/Entity; b changeDimension - m (Lnet/minecraft/server/level/WorldServer;DDDFFLorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)V a teleportTo - p 0 targetWorld - p 1 x - p 2 y - p 3 z - p 4 yaw - p 5 pitch - -# We add the getLevel method back to Hopper since mojang removed it - we need the method for hooper optimization -# We add the method with this name to match the mojmap method of the same name in BlockEntity -# Since we add the method we need to add the mapping for it so reobf works as expected -c net/minecraft/world/level/block/entity/IHopper net/minecraft/world/level/block/entity/Hopper - m ()Lnet/minecraft/world/level/World; getWorld getLevel - -# Commands performCommand adds a stripSlash boolean -c net/minecraft/commands/CommandDispatcher net/minecraft/commands/Commands - m (Lnet/minecraft/commands/CommandListenerWrapper;Ljava/lang/String;Ljava/lang/String;Z)I a performCommand - -# CraftBukkit overloads equipItemIfPossible in Mob adding an ItemEntity parameter -c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob - m (Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/entity/item/EntityItem;)Z j equipItemIfPossible - -# CraftBukkit overloads convertTo in Mob adding various API reasons -c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob - m (Lnet/minecraft/world/entity/EntityTypes;ZLorg/bukkit/event/entity/EntityTransformEvent$TransformReason;Lorg/bukkit/event/entity/CreatureSpawnEvent$SpawnReason;)Lnet/minecraft/world/entity/EntityInsentient; a convertTo - -# CraftBukkit changes the signature of DefaultDispenseItemBehavior#spawnItem -c net/minecraft/core/dispenser/DispenseBehaviorItem net/minecraft/core/dispenser/DefaultDispenseItemBehavior - m (Lnet/minecraft/world/level/World;Lnet/minecraft/world/item/ItemStack;ILnet/minecraft/core/EnumDirection;Lnet/minecraft/core/ISourceBlock;)Z a spawnItem - -# Craftbukkit adds args to ShearsDispenseItemBehavior -c net/minecraft/core/dispenser/DispenseBehaviorShears net/minecraft/core/dispenser/ShearsDispenseItemBehavior - m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/core/BlockPosition;Lorg/bukkit/block/Block;Lorg/bukkit/craftbukkit/inventory/CraftItemStack;)Z b tryShearLivingEntity - -# CraftBukkit adds ServerPlayer parameter to ServerEntity#sendPairingData -c net/minecraft/server/level/EntityTrackerEntry net/minecraft/server/level/ServerEntity - m (Ljava/util/function/Consumer;Lnet/minecraft/server/level/EntityPlayer;)V a sendPairingData - -# CraftBukkit overloads LivingEntity#removeEffectNoUpdate -c net/minecraft/world/entity/EntityLiving net/minecraft/world/entity/LivingEntity - m (Lnet/minecraft/world/effect/MobEffectList;Lorg/bukkit/event/entity/EntityPotionEffectEvent$Cause;)Lnet/minecraft/world/effect/MobEffect; c removeEffectNoUpdate - -# CraftBukkit adds an Entity parameter to methods in BigDripleafBlock -c net/minecraft/world/level/block/BigDripleafBlock net/minecraft/world/level/block/BigDripleafBlock - m (Lnet/minecraft/world/level/block/state/IBlockData;Lnet/minecraft/world/level/World;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/world/level/block/state/properties/Tilt;Lnet/minecraft/sounds/SoundEffect;Lnet/minecraft/world/entity/Entity;)V a setTiltAndScheduleTick - m (Lnet/minecraft/world/level/block/state/IBlockData;Lnet/minecraft/world/level/World;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/world/level/block/state/properties/Tilt;Lnet/minecraft/world/entity/Entity;)Z a setTilt - -# CraftBukkit adds the source BlockPos to MultifaceBlock#spreadToFace -c net/minecraft/world/level/block/MultifaceBlock net/minecraft/world/level/block/MultifaceBlock - m (Lnet/minecraft/world/level/GeneratorAccess;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/core/EnumDirection;ZLnet/minecraft/core/BlockPosition;)Z a spreadToFace - -# CraftBukkit adds the source BlockPos to PointedDripstoneBlock#createDripstone -c net/minecraft/world/level/block/PointedDripstoneBlock net/minecraft/world/level/block/PointedDripstoneBlock - m (Lnet/minecraft/world/level/GeneratorAccess;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/core/EnumDirection;Lnet/minecraft/world/level/block/state/properties/DripstoneThickness;Lnet/minecraft/core/BlockPosition;)V a createDripstone - -# CraftBukkit modifies methods in AbstraftFurnaceBlockEntity -c net/minecraft/world/level/block/entity/TileEntityFurnace net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity - m (Lnet/minecraft/server/level/EntityPlayer;Lnet/minecraft/world/item/ItemStack;I)V a awardUsedRecipesAndPopExperience - m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/phys/Vec3D;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/server/level/EntityPlayer;Lnet/minecraft/world/item/ItemStack;I)Ljava/util/List; a getRecipesToAwardAndPopExperience - m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/phys/Vec3D;IFLnet/minecraft/core/BlockPosition;Lnet/minecraft/world/entity/player/EntityHuman;Lnet/minecraft/world/item/ItemStack;I)V a createExperience - -# CraftBukkit overloads PersistentEntitySectionManager#storeChunkSections -c net/minecraft/world/level/entity/PersistentEntitySectionManager net/minecraft/world/level/entity/PersistentEntitySectionManager - m (JLjava/util/function/Consumer;Z)Z a storeChunkSections - p 0 chunkPos - p 1 action - -# CraftBukkit adds parameters to PortalShape#createPortalInfo -c net/minecraft/world/level/portal/BlockPortalShape net/minecraft/world/level/portal/PortalShape - m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/BlockUtil$Rectangle;Lnet/minecraft/core/EnumDirection$EnumAxis;Lnet/minecraft/world/phys/Vec3D;Lnet/minecraft/world/entity/EntitySize;Lnet/minecraft/world/phys/Vec3D;FFLorg/bukkit/craftbukkit/event/CraftPortalEvent;)Lnet/minecraft/world/level/portal/ShapeDetectorShape; a createPortalInfo - -# CraftBukkit adds a byte array parameter to MapItemSavedData$HoldingPlayer#createPatch -c net/minecraft/world/level/saveddata/maps/WorldMap$WorldMapHumanTracker net/minecraft/world/level/saveddata/maps/MapItemSavedData$HoldingPlayer - m ([B)Lnet/minecraft/world/level/saveddata/maps/WorldMap$b; a createPatch - -# CraftBukkit adds a level resource key to LevelStorageSource#createAccess -c net/minecraft/world/level/storage/Convertable net/minecraft/world/level/storage/LevelStorageSource - m (Ljava/lang/String;Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/world/level/storage/Convertable$ConversionSession; c createAccess +#c net/minecraft/server/network/PlayerConnection net/minecraft/server/network/ServerGamePacketListenerImpl +# # CB adds getPlayer()CraftPlayer, conflicts with getPlayer()ServerPlayer +# m ()Lorg/bukkit/craftbukkit/entity/CraftPlayer; getPlayer getCraftPlayer +# m (DDDFFLorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)V a teleport +# # CB adds int, ItemStack to end of params +# m (Ljava/util/List;Ljava/util/function/UnaryOperator;Lnet/minecraft/world/item/ItemStack;ILnet/minecraft/world/item/ItemStack;)V a updateBookPages +# +## CraftBukkit adds the getType() method, clashes with a Mojang method +#c net/minecraft/world/entity/EntityAreaEffectCloud net/minecraft/world/entity/AreaEffectCloud +# m ()Ljava/lang/String; getType getPotionType +# +## CraftBukkit adds the getType() method, clashes with a Mojang method +#c net/minecraft/world/entity/projectile/EntityTippedArrow net/minecraft/world/entity/projectile/Arrow +# m ()Ljava/lang/String; getType getPotionType +# +## CraftBukkit adds a new `a` method which allows passing the Entity parameter +## It uses `a` to match the original method (with just 1 param), so this patch makes them match +#c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel +# m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform +# +## CraftBukkit adds limit param +#c net/minecraft/world/level/SpawnerCreature$d net/minecraft/world/level/NaturalSpawner$SpawnState +# m (Lnet/minecraft/world/entity/EnumCreatureType;I)Z a canSpawnForCategory +# +## CraftBukkit adds a TeleportCause to methods in ServerPLayer +#c net/minecraft/server/level/EntityPlayer net/minecraft/server/level/ServerPlayer +# m (Lnet/minecraft/server/level/WorldServer;Lorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)Lnet/minecraft/world/entity/Entity; b changeDimension +# m (Lnet/minecraft/server/level/WorldServer;DDDFFLorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)V a teleportTo +# p 0 targetWorld +# p 1 x +# p 2 y +# p 3 z +# p 4 yaw +# p 5 pitch +# +## We add the getLevel method back to Hopper since mojang removed it - we need the method for hooper optimization +## We add the method with this name to match the mojmap method of the same name in BlockEntity +## Since we add the method we need to add the mapping for it so reobf works as expected +#c net/minecraft/world/level/block/entity/IHopper net/minecraft/world/level/block/entity/Hopper +# m ()Lnet/minecraft/world/level/World; getWorld getLevel +# +## Commands performCommand adds a stripSlash boolean +#c net/minecraft/commands/CommandDispatcher net/minecraft/commands/Commands +# m (Lnet/minecraft/commands/CommandListenerWrapper;Ljava/lang/String;Ljava/lang/String;Z)I a performCommand +# +## CraftBukkit overloads equipItemIfPossible in Mob adding an ItemEntity parameter +#c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob +# m (Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/entity/item/EntityItem;)Z j equipItemIfPossible +# +## CraftBukkit overloads convertTo in Mob adding various API reasons +#c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob +# m (Lnet/minecraft/world/entity/EntityTypes;ZLorg/bukkit/event/entity/EntityTransformEvent$TransformReason;Lorg/bukkit/event/entity/CreatureSpawnEvent$SpawnReason;)Lnet/minecraft/world/entity/EntityInsentient; a convertTo +# +## CraftBukkit changes the signature of DefaultDispenseItemBehavior#spawnItem +#c net/minecraft/core/dispenser/DispenseBehaviorItem net/minecraft/core/dispenser/DefaultDispenseItemBehavior +# m (Lnet/minecraft/world/level/World;Lnet/minecraft/world/item/ItemStack;ILnet/minecraft/core/EnumDirection;Lnet/minecraft/core/ISourceBlock;)Z a spawnItem +# +## Craftbukkit adds args to ShearsDispenseItemBehavior +#c net/minecraft/core/dispenser/DispenseBehaviorShears net/minecraft/core/dispenser/ShearsDispenseItemBehavior +# m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/core/BlockPosition;Lorg/bukkit/block/Block;Lorg/bukkit/craftbukkit/inventory/CraftItemStack;)Z b tryShearLivingEntity +# +## CraftBukkit adds ServerPlayer parameter to ServerEntity#sendPairingData +#c net/minecraft/server/level/EntityTrackerEntry net/minecraft/server/level/ServerEntity +# m (Ljava/util/function/Consumer;Lnet/minecraft/server/level/EntityPlayer;)V a sendPairingData +# +## CraftBukkit overloads LivingEntity#removeEffectNoUpdate +#c net/minecraft/world/entity/EntityLiving net/minecraft/world/entity/LivingEntity +# m (Lnet/minecraft/world/effect/MobEffectList;Lorg/bukkit/event/entity/EntityPotionEffectEvent$Cause;)Lnet/minecraft/world/effect/MobEffect; c removeEffectNoUpdate +# +## CraftBukkit adds an Entity parameter to methods in BigDripleafBlock +#c net/minecraft/world/level/block/BigDripleafBlock net/minecraft/world/level/block/BigDripleafBlock +# m (Lnet/minecraft/world/level/block/state/IBlockData;Lnet/minecraft/world/level/World;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/world/level/block/state/properties/Tilt;Lnet/minecraft/sounds/SoundEffect;Lnet/minecraft/world/entity/Entity;)V a setTiltAndScheduleTick +# m (Lnet/minecraft/world/level/block/state/IBlockData;Lnet/minecraft/world/level/World;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/world/level/block/state/properties/Tilt;Lnet/minecraft/world/entity/Entity;)Z a setTilt +# +## CraftBukkit adds the source BlockPos to MultifaceBlock#spreadToFace +#c net/minecraft/world/level/block/MultifaceBlock net/minecraft/world/level/block/MultifaceBlock +# m (Lnet/minecraft/world/level/GeneratorAccess;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/core/EnumDirection;ZLnet/minecraft/core/BlockPosition;)Z a spreadToFace +# +## CraftBukkit adds the source BlockPos to PointedDripstoneBlock#createDripstone +#c net/minecraft/world/level/block/PointedDripstoneBlock net/minecraft/world/level/block/PointedDripstoneBlock +# m (Lnet/minecraft/world/level/GeneratorAccess;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/core/EnumDirection;Lnet/minecraft/world/level/block/state/properties/DripstoneThickness;Lnet/minecraft/core/BlockPosition;)V a createDripstone +# +## CraftBukkit modifies methods in AbstraftFurnaceBlockEntity +#c net/minecraft/world/level/block/entity/TileEntityFurnace net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity +# m (Lnet/minecraft/server/level/EntityPlayer;Lnet/minecraft/world/item/ItemStack;I)V a awardUsedRecipesAndPopExperience +# m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/phys/Vec3D;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/server/level/EntityPlayer;Lnet/minecraft/world/item/ItemStack;I)Ljava/util/List; a getRecipesToAwardAndPopExperience +# m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/phys/Vec3D;IFLnet/minecraft/core/BlockPosition;Lnet/minecraft/world/entity/player/EntityHuman;Lnet/minecraft/world/item/ItemStack;I)V a createExperience +# +## CraftBukkit overloads PersistentEntitySectionManager#storeChunkSections +#c net/minecraft/world/level/entity/PersistentEntitySectionManager net/minecraft/world/level/entity/PersistentEntitySectionManager +# m (JLjava/util/function/Consumer;Z)Z a storeChunkSections +# p 0 chunkPos +# p 1 action +# +## CraftBukkit adds parameters to PortalShape#createPortalInfo +#c net/minecraft/world/level/portal/BlockPortalShape net/minecraft/world/level/portal/PortalShape +# m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/BlockUtil$Rectangle;Lnet/minecraft/core/EnumDirection$EnumAxis;Lnet/minecraft/world/phys/Vec3D;Lnet/minecraft/world/entity/EntitySize;Lnet/minecraft/world/phys/Vec3D;FFLorg/bukkit/craftbukkit/event/CraftPortalEvent;)Lnet/minecraft/world/level/portal/ShapeDetectorShape; a createPortalInfo +# +## CraftBukkit adds a byte array parameter to MapItemSavedData$HoldingPlayer#createPatch +#c net/minecraft/world/level/saveddata/maps/WorldMap$WorldMapHumanTracker net/minecraft/world/level/saveddata/maps/MapItemSavedData$HoldingPlayer +# m ([B)Lnet/minecraft/world/level/saveddata/maps/WorldMap$b; a createPatch +# +## CraftBukkit adds a level resource key to LevelStorageSource#createAccess +#c net/minecraft/world/level/storage/Convertable net/minecraft/world/level/storage/LevelStorageSource +# m (Ljava/lang/String;Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/world/level/storage/Convertable$ConversionSession; c createAccess diff --git a/build-data/reobf-mappings-patch.tiny b/build-data/reobf-mappings-patch.tiny index 945731b50d..050623a519 100644 --- a/build-data/reobf-mappings-patch.tiny +++ b/build-data/reobf-mappings-patch.tiny @@ -12,13 +12,15 @@ tiny 2 0 mojang+yarn spigot -# CraftBukkit changes type -c net/minecraft/server/level/ServerLevel net/minecraft/server/level/WorldServer - f Lnet/minecraft/world/level/storage/PrimaryLevelData; serverLevelData E +# 1.18 todo: check these -c net/minecraft/world/level/chunk/LevelChunk net/minecraft/world/level/chunk/Chunk - f Lnet/minecraft/server/level/ServerLevel; level i +# CraftBukkit changes type +#c net/minecraft/server/level/ServerLevel net/minecraft/server/level/WorldServer +# f Lnet/minecraft/world/level/storage/PrimaryLevelData; serverLevelData E + +#c net/minecraft/world/level/chunk/LevelChunk net/minecraft/world/level/chunk/Chunk +# f Lnet/minecraft/server/level/ServerLevel; level i # Paper changes type -c net/minecraft/core/MappedRegistry net/minecraft/core/RegistryMaterials - f Lit/unimi/dsi/fastutil/objects/Reference2IntOpenHashMap; toId bw +#c net/minecraft/core/MappedRegistry net/minecraft/core/RegistryMaterials +# f Lit/unimi/dsi/fastutil/objects/Reference2IntOpenHashMap; toId bw diff --git a/build.gradle.kts b/build.gradle.kts index d4ab625585..54d1374e1c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -68,7 +68,6 @@ paperweight { reobfMappingsPatch.set(layout.projectDirectory.file("build-data/reobf-mappings-patch.tiny")) additionalSpigotMemberMappings.set(layout.projectDirectory.file("build-data/additional-spigot-member-mappings.csrg")) - craftBukkitPatchPatchesDir.set(layout.projectDirectory.dir("build-data/craftbukkit-patch-patches")) reobfPackagesToFix.addAll( "co.aikar.timings", diff --git a/work/BuildData b/work/BuildData index a478570497..b364c062bb 160000 --- a/work/BuildData +++ b/work/BuildData @@ -1 +1 @@ -Subproject commit a4785704979a469daa2b7f6826c84e7fe886bb03 +Subproject commit b364c062bb9b9534c0dd34c7a46f3f1acbfb195d