From 0eb3a83beaa6f5e3790b6a0b9be2aa34ef989a77 Mon Sep 17 00:00:00 2001
From: Aram
Date: Wed, 4 Sep 2024 15:12:58 +0200
Subject: [PATCH 01/62] Updated Workflow
---
.github/workflows/ci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f2afdf6d..61217505 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,11 +16,11 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Cache Gradle packages
uses: actions/cache@v3
From 92a9cd1278e084eaff747837fe8de9b5d6146d83 Mon Sep 17 00:00:00 2001
From: Aram
Date: Wed, 4 Sep 2024 15:56:43 +0200
Subject: [PATCH 02/62] Create PullRequest.md
---
.github/PULL_REQUEST_TEMPLATE/PullRequest.md | 26 ++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 .github/PULL_REQUEST_TEMPLATE/PullRequest.md
diff --git a/.github/PULL_REQUEST_TEMPLATE/PullRequest.md b/.github/PULL_REQUEST_TEMPLATE/PullRequest.md
new file mode 100644
index 00000000..2241979c
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE/PullRequest.md
@@ -0,0 +1,26 @@
+## Description
+
+
+## Changes
+- **Change 1**: Description of what was changed.
+- **Change 2**: Description of what was changed.
+
+## How has this been tested?
+
+
+## Screenshots (if applicable)
+
+
+## Type of Change
+- [ ] Bug fix
+- [ ] New feature
+- [ ] Documentation update
+
+## Checklist
+- [ ] My code follows the style guidelines of this project. [Contributing](https://github.com/MeAlam1/BlueLib/blob/1.21/CONTRIBUTING.md)
+- [ ] I have performed a self-review of my own code.
+- [ ] I have commented my code following the guidelines. [Contributing](https://github.com/MeAlam1/BlueLib/blob/1.21/CONTRIBUTING.md)
+- [ ] My changes generate no new warnings.
+
+## Related Issues
+
\ No newline at end of file
From 69c49ef1dcffe21f533074e834efad27e11ff5f1 Mon Sep 17 00:00:00 2001
From: Aram
Date: Wed, 4 Sep 2024 16:06:47 +0200
Subject: [PATCH 03/62] Update PULL_REQUEST_TEMPLATE.md
---
.../PullRequest.md => PULL_REQUEST_TEMPLATE.md} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename .github/{PULL_REQUEST_TEMPLATE/PullRequest.md => PULL_REQUEST_TEMPLATE.md} (100%)
diff --git a/.github/PULL_REQUEST_TEMPLATE/PullRequest.md b/.github/PULL_REQUEST_TEMPLATE.md
similarity index 100%
rename from .github/PULL_REQUEST_TEMPLATE/PullRequest.md
rename to .github/PULL_REQUEST_TEMPLATE.md
From f4b5466fea97bcbbf5052ace6fc51f6f3fca4486 Mon Sep 17 00:00:00 2001
From: Aram
Date: Wed, 4 Sep 2024 19:43:20 +0200
Subject: [PATCH 04/62] Ported Forge from 1.20 to 1.21
---
.../bluelib/event/ReloadEventHandler.java | 4 +-
.../example/entity/dragon/DragonEntity.java | 25 ++++++-----
.../example/entity/dragon/DragonModel.java | 4 +-
.../bluelib/example/entity/rex/RexEntity.java | 43 +++++++++++--------
.../bluelib/example/entity/rex/RexModel.java | 4 +-
.../bluelib/example/init/ModEntities.java | 4 +-
.../variant/base/IVariantEntityBase.java | 2 +-
7 files changed, 48 insertions(+), 38 deletions(-)
diff --git a/Forge/src/main/java/software/bluelib/event/ReloadEventHandler.java b/Forge/src/main/java/software/bluelib/event/ReloadEventHandler.java
index 9a095c52..9da36f9a 100644
--- a/Forge/src/main/java/software/bluelib/event/ReloadEventHandler.java
+++ b/Forge/src/main/java/software/bluelib/event/ReloadEventHandler.java
@@ -65,8 +65,8 @@ public class ReloadEventHandler {
* @since 1.0.0
*/
protected static void registerEntityVariants(MinecraftServer pServer, String pEntityName, String pModID, String pModPathLocation, String pDataPathLocation) {
- ResourceLocation modLocation = new ResourceLocation(pModID, pModPathLocation);
- ResourceLocation dataLocation = new ResourceLocation(pModID, pDataPathLocation);
+ ResourceLocation modLocation = ResourceLocation.fromNamespaceAndPath(pModID, pModPathLocation);
+ ResourceLocation dataLocation = ResourceLocation.fromNamespaceAndPath(pModID, pDataPathLocation);
try {
VariantLoader.loadVariants(modLocation, dataLocation, pServer, pEntityName);
} catch (JsonParseException pException) {
diff --git a/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonEntity.java b/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonEntity.java
index 00e15560..56a55393 100644
--- a/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonEntity.java
+++ b/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonEntity.java
@@ -11,13 +11,14 @@
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
+import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.ServerLevelAccessor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import software.bernie.geckolib.animatable.GeoEntity;
-import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
-import software.bernie.geckolib.core.animation.AnimatableManager;
+import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
+import software.bernie.geckolib.animation.AnimatableManager;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bluelib.interfaces.variant.IVariantEntity;
import software.bluelib.utils.ParameterUtils;
@@ -33,10 +34,10 @@
*
* Key Methods:
*
- * - {@link #defineSynchedData()} - Defines the synchronized data for the dragon entity, including its variant.
+ * - {@link #defineSynchedData(SynchedEntityData.Builder)} - Defines the synchronized data for the dragon entity, including its variant.
* - {@link #addAdditionalSaveData(CompoundTag)} - Adds custom data to the entity's NBT for saving.
* - {@link #readAdditionalSaveData(CompoundTag)} - Reads custom data from the entity's NBT for loading.
- * - {@link #finalizeSpawn(ServerLevelAccessor, DifficultyInstance, MobSpawnType, SpawnGroupData, CompoundTag)} - Finalizes the spawning process and sets up parameters.
+ * - {@link #finalizeSpawn(ServerLevelAccessor, DifficultyInstance, MobSpawnType, SpawnGroupData)} - Finalizes the spawning process and sets up parameters.
* - {@link #setVariantName(String)} - Sets the variant name of the dragon.
* - {@link #getVariantName()} - Retrieves the current variant name of the dragon.
*
@@ -89,9 +90,9 @@ public DragonEntity(EntityType extends TamableAnimal> pEntityType, Level pLeve
* @Co-author Dan
*/
@Override
- protected void defineSynchedData() {
- super.defineSynchedData();
- this.entityData.define(VARIANT, "normal");
+ protected void defineSynchedData(SynchedEntityData.@NotNull Builder pBuilder) {
+ super.defineSynchedData(pBuilder);
+ pBuilder.define(VARIANT, "normal");
}
/**
@@ -140,7 +141,6 @@ public void readAdditionalSaveData(@NotNull CompoundTag pCompound) {
* @param pDifficulty {@link DifficultyInstance} - The difficulty instance for spawning.
* @param pReason {@link MobSpawnType} - The reason for spawning the entity.
* @param pSpawnData {@link SpawnGroupData} - Data related to the spawn.
- * @param pDataTag {@link CompoundTag} - Additional data for spawning.
* @return {@link SpawnGroupData} - Updated spawn data.
*
* @since 1.0.0
@@ -148,7 +148,7 @@ public void readAdditionalSaveData(@NotNull CompoundTag pCompound) {
* @Co-author Dan
*/
@Override
- public SpawnGroupData finalizeSpawn(@NotNull ServerLevelAccessor pLevel, @NotNull DifficultyInstance pDifficulty, @NotNull MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) {
+ public SpawnGroupData finalizeSpawn(@NotNull ServerLevelAccessor pLevel, @NotNull DifficultyInstance pDifficulty, @NotNull MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData) {
if (getVariantName() == null || getVariantName().isEmpty()) {
this.setVariantName(getRandomVariant(getEntityVariants(entityName), "normal"));
ParameterUtils.ParameterBuilder.forVariant(entityName,this.getVariantName())
@@ -158,7 +158,7 @@ public SpawnGroupData finalizeSpawn(@NotNull ServerLevelAccessor pLevel, @NotNul
.withParameter("array")
.connect();
}
- return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData, pDataTag);
+ return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData);
}
/**
@@ -217,4 +217,9 @@ public AnimatableInstanceCache getAnimatableInstanceCache() {
public AgeableMob getBreedOffspring(@NotNull ServerLevel pLevel, @NotNull AgeableMob pOtherParent) {
return null;
}
+
+ @Override
+ public boolean isFood(@NotNull ItemStack pItemStack) {
+ return false;
+ }
}
diff --git a/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonModel.java b/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonModel.java
index 67091901..49db6249 100644
--- a/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonModel.java
+++ b/Forge/src/main/java/software/bluelib/example/entity/dragon/DragonModel.java
@@ -12,7 +12,7 @@ public class DragonModel extends GeoModel {
// Get the Model Location
@Override
public ResourceLocation getModelResource(DragonEntity pObject) {
- return new ResourceLocation(BlueLib.MODID, "geo/dragon.geo.json");
+ return ResourceLocation.fromNamespaceAndPath(BlueLib.MODID, "geo/dragon.geo.json");
}
// Get the Texture Location
@@ -24,6 +24,6 @@ public ResourceLocation getTextureResource(DragonEntity pObject) {
// Get the Animation Location
@Override
public ResourceLocation getAnimationResource(DragonEntity pAnimatable) {
- return new ResourceLocation(BlueLib.MODID, "animations/dragon.animation.json");
+ return ResourceLocation.fromNamespaceAndPath(BlueLib.MODID, "animations/dragon.animation.json");
}
}
diff --git a/Forge/src/main/java/software/bluelib/example/entity/rex/RexEntity.java b/Forge/src/main/java/software/bluelib/example/entity/rex/RexEntity.java
index fcb85a52..1823e889 100644
--- a/Forge/src/main/java/software/bluelib/example/entity/rex/RexEntity.java
+++ b/Forge/src/main/java/software/bluelib/example/entity/rex/RexEntity.java
@@ -11,13 +11,14 @@
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
+import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.ServerLevelAccessor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import software.bernie.geckolib.animatable.GeoEntity;
-import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
-import software.bernie.geckolib.core.animation.AnimatableManager;
+import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
+import software.bernie.geckolib.animation.AnimatableManager;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bluelib.interfaces.variant.IVariantEntity;
import software.bluelib.utils.ParameterUtils;
@@ -26,19 +27,19 @@
* A {@code RexEntity} class representing a Rex entity in the game, which extends {@link TamableAnimal}
* and implements {@link IVariantEntity} and {@link GeoEntity}.
*
- * This class manages the rex's variant system, its data synchronization, and integrates with the GeckoLib
+ * This class manages the Rex's variant system, its data synchronization, and integrates with the GeckoLib
* animation system.
*
*
*
* Key Methods:
*
- * - {@link #defineSynchedData()} - Defines the synchronized data for the rex entity, including its variant.
+ * - {@link #defineSynchedData(SynchedEntityData.Builder)} - Defines the synchronized data for the Rex entity, including its variant.
* - {@link #addAdditionalSaveData(CompoundTag)} - Adds custom data to the entity's NBT for saving.
* - {@link #readAdditionalSaveData(CompoundTag)} - Reads custom data from the entity's NBT for loading.
- * - {@link #finalizeSpawn(ServerLevelAccessor, DifficultyInstance, MobSpawnType, SpawnGroupData, CompoundTag)} - Finalizes the spawning process and sets up parameters.
- * - {@link #setVariantName(String)} - Sets the variant name of the rex.
- * - {@link #getVariantName()} - Retrieves the current variant name of the rex.
+ * - {@link #finalizeSpawn(ServerLevelAccessor, DifficultyInstance, MobSpawnType, SpawnGroupData)} - Finalizes the spawning process and sets up parameters.
+ * - {@link #setVariantName(String)} - Sets the variant name of the Rex.
+ * - {@link #getVariantName()} - Retrieves the current variant name of the Rex.
*
*
*
@@ -48,7 +49,7 @@
*/
public class RexEntity extends TamableAnimal implements IVariantEntity, GeoEntity {
/**
- * Entity data accessor for the variant of the rex.
+ * Entity data accessor for the variant of the Rex.
*
* This is used to store and retrieve the variant data for synchronization between server and client.
*
@@ -62,7 +63,7 @@ public class RexEntity extends TamableAnimal implements IVariantEntity, GeoEntit
* @Co-author MeAlam, Dan
* @since 1.0.0
*/
- protected final String entityName = "rex";
+ protected final String entityName = "Rex";
/**
* Constructs a new {@link RexEntity} instance with the specified entity type and level.
@@ -79,7 +80,7 @@ public RexEntity(EntityType extends TamableAnimal> pEntityType, Level pLevel)
}
/**
- * Defines the synchronized data for this rex entity, including the variant.
+ * Defines the synchronized data for this Rex entity, including the variant.
*
* This method initializes the {@link EntityDataAccessor} to handle the variant data.
*
@@ -89,9 +90,9 @@ public RexEntity(EntityType extends TamableAnimal> pEntityType, Level pLevel)
* @Co-author Dan
*/
@Override
- protected void defineSynchedData() {
- super.defineSynchedData();
- this.entityData.define(VARIANT, "normal");
+ protected void defineSynchedData(SynchedEntityData.@NotNull Builder pBuilder) {
+ super.defineSynchedData(pBuilder);
+ pBuilder.define(VARIANT, "normal");
}
/**
@@ -131,7 +132,7 @@ public void readAdditionalSaveData(@NotNull CompoundTag pCompound) {
}
/**
- * Finalizes the spawning of the rex entity.
+ * Finalizes the spawning of the Rex entity.
*
* This method sets up the variant for the entity and connects parameters if needed.
*
@@ -140,7 +141,6 @@ public void readAdditionalSaveData(@NotNull CompoundTag pCompound) {
* @param pDifficulty {@link DifficultyInstance} - The difficulty instance for spawning.
* @param pReason {@link MobSpawnType} - The reason for spawning the entity.
* @param pSpawnData {@link SpawnGroupData} - Data related to the spawn.
- * @param pDataTag {@link CompoundTag} - Additional data for spawning.
* @return {@link SpawnGroupData} - Updated spawn data.
*
* @since 1.0.0
@@ -148,7 +148,7 @@ public void readAdditionalSaveData(@NotNull CompoundTag pCompound) {
* @Co-author Dan
*/
@Override
- public SpawnGroupData finalizeSpawn(@NotNull ServerLevelAccessor pLevel, @NotNull DifficultyInstance pDifficulty, @NotNull MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) {
+ public SpawnGroupData finalizeSpawn(@NotNull ServerLevelAccessor pLevel, @NotNull DifficultyInstance pDifficulty, @NotNull MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData) {
if (getVariantName() == null || getVariantName().isEmpty()) {
this.setVariantName(getRandomVariant(getEntityVariants(entityName), "normal"));
ParameterUtils.ParameterBuilder.forVariant(entityName,this.getVariantName())
@@ -158,11 +158,11 @@ public SpawnGroupData finalizeSpawn(@NotNull ServerLevelAccessor pLevel, @NotNul
.withParameter("array")
.connect();
}
- return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData, pDataTag);
+ return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData);
}
/**
- * Sets the variant name for the rex entity.
+ * Sets the variant name for the Rex entity.
*
* @param pName {@link String} - The name of the variant to set.
*
@@ -175,7 +175,7 @@ public void setVariantName(String pName) {
}
/**
- * Retrieves the current variant name of the rex entity.
+ * Retrieves the current variant name of the Rex entity.
*
* @return {@link String} - The current variant name.
*
@@ -217,4 +217,9 @@ public AnimatableInstanceCache getAnimatableInstanceCache() {
public AgeableMob getBreedOffspring(@NotNull ServerLevel pLevel, @NotNull AgeableMob pOtherParent) {
return null;
}
+
+ @Override
+ public boolean isFood(@NotNull ItemStack pItemStack) {
+ return false;
+ }
}
diff --git a/Forge/src/main/java/software/bluelib/example/entity/rex/RexModel.java b/Forge/src/main/java/software/bluelib/example/entity/rex/RexModel.java
index 6084892c..1e0f85e3 100644
--- a/Forge/src/main/java/software/bluelib/example/entity/rex/RexModel.java
+++ b/Forge/src/main/java/software/bluelib/example/entity/rex/RexModel.java
@@ -12,7 +12,7 @@ public class RexModel extends GeoModel {
// Get the Model Location
@Override
public ResourceLocation getModelResource(RexEntity pObject) {
- return new ResourceLocation(BlueLib.MODID, "geo/rex.geo.json");
+ return ResourceLocation.fromNamespaceAndPath(BlueLib.MODID, "geo/rex.geo.json");
}
// Get the Texture Location
@@ -24,6 +24,6 @@ public ResourceLocation getTextureResource(RexEntity pObject) {
// Get the Animation Location
@Override
public ResourceLocation getAnimationResource(RexEntity pAnimatable) {
- return new ResourceLocation(BlueLib.MODID, "animations/rex.animation.json");
+ return ResourceLocation.fromNamespaceAndPath(BlueLib.MODID, "animations/rex.animation.json");
}
}
diff --git a/Forge/src/main/java/software/bluelib/example/init/ModEntities.java b/Forge/src/main/java/software/bluelib/example/init/ModEntities.java
index 2825e2fe..6f82f193 100644
--- a/Forge/src/main/java/software/bluelib/example/init/ModEntities.java
+++ b/Forge/src/main/java/software/bluelib/example/init/ModEntities.java
@@ -25,7 +25,7 @@ public class ModEntities {
.setUpdateInterval(3)
.fireImmune()
.sized(0.6f, 1.8f)
- .build(new ResourceLocation(BlueLib.MODID, "dragon").toString()));
+ .build(ResourceLocation.fromNamespaceAndPath(BlueLib.MODID, "dragon").toString()));
public static final RegistryObject> REX =
REGISTER.register("example_two", () -> EntityType.Builder.of(RexEntity::new, MobCategory.AMBIENT)
@@ -34,7 +34,7 @@ public class ModEntities {
.setUpdateInterval(3)
.fireImmune()
.sized(0.6f, 1.8f)
- .build(new ResourceLocation(BlueLib.MODID, "rex").toString()));
+ .build(ResourceLocation.fromNamespaceAndPath(BlueLib.MODID, "rex").toString()));
public static void register(IEventBus eventBus) {
REGISTER.register(eventBus);
diff --git a/Forge/src/main/java/software/bluelib/interfaces/variant/base/IVariantEntityBase.java b/Forge/src/main/java/software/bluelib/interfaces/variant/base/IVariantEntityBase.java
index 3b905d28..baecfe62 100644
--- a/Forge/src/main/java/software/bluelib/interfaces/variant/base/IVariantEntityBase.java
+++ b/Forge/src/main/java/software/bluelib/interfaces/variant/base/IVariantEntityBase.java
@@ -41,7 +41,7 @@ public interface IVariantEntityBase {
* @since 1.0.0
*/
default ResourceLocation getTextureLocation(String pModId, String pPath) {
- return new ResourceLocation(pModId, pPath);
+ return ResourceLocation.fromNamespaceAndPath(pModId, pPath);
}
/**
From 32e45fcf5f2cd34017967a5ac5a78a4eb6c2cf0b Mon Sep 17 00:00:00 2001
From: Aram
Date: Wed, 4 Sep 2024 21:37:41 +0200
Subject: [PATCH 05/62] Fixed Forge 1.21
---
Forge/build.gradle | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Forge/build.gradle b/Forge/build.gradle
index 340258b7..2225558a 100644
--- a/Forge/build.gradle
+++ b/Forge/build.gradle
@@ -2,7 +2,7 @@ plugins {
id 'eclipse'
id 'idea'
id 'maven-publish'
- id 'net.minecraftforge.gradle' version '[6.0.16,6.2)'
+ id 'net.minecraftforge.gradle' version '[6.0.24,6.2)'
id 'org.spongepowered.mixin' version '0.7.+'
}
@@ -34,7 +34,7 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(java_version)
println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"
minecraft {
mappings channel: mapping_channel, version: mapping_version
-
+ reobf = false
copyIdeResources = true
runs {
@@ -80,6 +80,7 @@ dependencies {
//runtimeOnly fg.deobf("software.bernie.geckolib:geckolib-forge-${minecraft_version}:${geckolib_version}")
runtimeOnly "curse.maven:geckolib-388172:${geckolib_file}"
compileOnly "curse.maven:geckolib-388172:${geckolib_file}"
+ implementation('net.sf.jopt-simple:jopt-simple:5.0.4') { version { strictly '5.0.4' } }
}
tasks.named('processResources', ProcessResources).configure {
From 203871282f81ca6ededc60da35a9df83881a4f73 Mon Sep 17 00:00:00 2001
From: Aram
Date: Thu, 5 Sep 2024 14:41:38 +0200
Subject: [PATCH 06/62] Added Logo
---
Forge/src/main/resources/META-INF/mods.toml | 4 ++--
Forge/src/main/resources/bluelib.png | Bin 0 -> 145980 bytes
NeoForge/src/main/resources/META-INF/mods.toml | 4 ++--
NeoForge/src/main/resources/bluelib.png | Bin 0 -> 145980 bytes
4 files changed, 4 insertions(+), 4 deletions(-)
create mode 100644 Forge/src/main/resources/bluelib.png
create mode 100644 NeoForge/src/main/resources/bluelib.png
diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml
index d79a67b3..cf09a122 100644
--- a/Forge/src/main/resources/META-INF/mods.toml
+++ b/Forge/src/main/resources/META-INF/mods.toml
@@ -6,8 +6,8 @@ license="${mod_license}"
modId="${mod_id}"
version="${mod_version}"
displayName="${mod_name}"
-displayURL="https://github.com/MeAlam1/BlueLib/wiki"
-#logoFile="examplemod.png"
+displayURL="https://mealam1.github.io/BlueLib/"
+logoFile="bluelib.png"
credits="Anyone who contributed to the Source Code of BlueLib!"
authors="${mod_authors}"
description='''${mod_description}'''
diff --git a/Forge/src/main/resources/bluelib.png b/Forge/src/main/resources/bluelib.png
new file mode 100644
index 0000000000000000000000000000000000000000..1896bcddc2e07570d39d3922ac91b9824e85c4b5
GIT binary patch
literal 145980
zcmV)HK)t_-P)E2R`E$!kQN5z?dUlqH_#0Z2{Pc8F{jbChL-JEc@a4csR&7XPHmqe`m^pw{1xqFeIVtf<`o
z=INye`h)I~I8;6O{!1rRZ^7rL?|&Tl{^uc7+{0PE$$JB?|1FzefK^*lw{hvvEOH{bCZpUTF24AA1RB{G1M74|nnG!gtxVICA+x-q~k~S7@`oxlE4BH|y!?*x#kA^M+^kqw~!1efrn*
z%(ylA;9@I&k)CPc`C52X3B1F1AiWWg)ua=4+#DwjblwH?wQI`cay!=L%7uSliLdbl
zmoW0A`@zD2$yZB=p*F|Y~bo2*LI<&|`3oiU~IP<(QF+{%GnOMG-TrGij=me4qPo8=@@r3a7_?k>`
zf007+e5D;C<#xGxj@_#vcW|^ed%5IIehC}vp
z@v%3{&FS#1h4bosjR)L5o%?7<=|gr`*>}A?-s`{Pu{G;Dir(`dy|WJVq9^pk!S90D
zjm*rq%f>Fg=z|{F;MQz(T=eE0t{Ybm9p+9bE7Udt-qY2yIDy
z<*vKzuKD;@z3MiuL@#CoX1F0ykv_=LOY!FS!r1Rwc?9pB@j&*9Y*A~L%M)rtL3GV-0UhTBCC
zZ}OXTLgYg0I*y8Gf?VTU)7^2A>A3C#_?`}b54&veyJTkG@C84o(Fbl9J^Zmd^9BEx
zH*6CKg)^k=OfZmx7ZcQHC8ZZ27(D@UO-mWJ&bOb-+l7`;n$js?oIPibD
zV46TEs1)#8L8Ks$;#-qFE-p60pL9a-i6@+SlkU77_ZKbR%VA&r9hGnN@M}7T>Je#5
z3U?L!CG%$I%fOjqolZkd(uA=Y9CX1}viRN%@4~Xk1_w{^g}kj~V3)|2fr-|W;Y$cj
z@vBd6HaFh0*}V8jF?V`UD>&zO4ZnsfJtOEmiIe}t!d*@1reR4(kj4FLs!o-Ex`2YA8q7@Zi?)v+QxwT~G8TL_YKx7ksy|hU@e{ukqyV
z?F^5~Yit$YND@i&s5pb3>AEmrI&Fk_3E{8w7ES1x9=?Ru2V3+-7qUR`OKR(S=il0F
zZo6-@Vcox?`bovTw*i42~nq;=Gh
z6aTT2N7+4w?wjAU+1&Zz&F0n*D1YBBtHaSf9(28FGc$Ylt@DR(rti`Nf9H+-zOdVy
z^V4b3-Su~RkFW9W!tL|zolU!f9Z1hO1v^(vrymucD-8bN5_a4iCmrbg!M&C6O7zTS
zaV5Imitk-!m+cuZpN;Bx;`(_|?>c+uR(yy^$D5&12FO-OU>M9(5`3q1Jqzm)@akQw
z)a&21**yGT%H|Cc)qwuFpXrQ~J{&;jaAXH>=(9gl`mS$X2HDqNUG%(mVbZsf#P1W;
z;R>!e7&avaHo@})mj{B@MCL+WGrfqr!N
za7{Gy(2^zuQeVL@*tdR-UNlU3AHGI=c*ECy*hkwXAN*geaK{AF3+v07;Zy`R*5bh>
zocX$MyLi$7I`6J{*RhM|ICvWVF1Q?jcIkMl_#OE(y8B#wgFR`&fvhPT%UEKw&7Nfg*f66&qx0LW^?}5&E|mzH=B?DC)=8tQ0!OG`vxQI1rkp<<15X;
zdd(@hA-yl04b$!rf8O`+N#^>^=Fy+sY+l##&;V@hY8Ub2DEd&Q$Wb!ko%r6+B=PD?
znn2{^3DI7^sPqeRZO7zshjuC#zqHw$ylt~N`$yuNkDg*DA@=5ctl`2>7$1pu*~le?
z-eDI$JfU};(1M@&LL-b!=Oqq=wxkaHpYfr;v%?(|$X6m$DR68hK8Kx_cz8%tDLq|0
zTPtSKw;DD)Zzs(5kJ7!1|I5+9cG)T)2YEz9P`nS|PQwomKl#a^33zZXS?@H2Hx8bK
z1giqdHEy+2wrme=W-0o6SQyYI)=zZZ_whf^&hZ(yS#HQ5P=>B0(1a
zR&Odz+-xa&(yEdCUzEP&7|6Sj***yO96K8yz&?6bYoDpG@9t2nej?rcveO9+Gcaz%_`Gp^!ws0w4~XooK_j!q{;i$=Y@-{nLYT}BAs}6J1+4x
zIrwK;aFHQ?rLapsdPD2>j_YTaxl$kh{K%)Lt$1`)hL57Js5B}C9(vM*Jsvt?;kO1h
zp;MoOH98W)z>oAH<{@?Yk@DyA1@}nII_~<*d^3?!#LOy(26G(u`jXc;CI%0D$
z6mG^tkInEVobXHpH|Y2b-LIY3&HKm0xE@}w`y@;nIlfxw5_ZksnR)VMCa++o*JA}b^-cDbOhd1GDFFGSTr@_xM;eF?ZwUoTf4BY&FH5fIp%Z3zS1d~n(p7_dd
zYw`#^dLoBtrxEWETEb4-7Y~2JeY|fMEw%_R2O>AifM&-MFCD#|C%AWJxMv4KhR7%d)iTU^=Y2mY^d+6;{!=wH
zZF!FcO^5lD?jiA{XQeB62AeV9MK&Swsbu1jPY4d^JPT&I&U~Hrm5z5`F2i5Md@te%
zf33dTAg(Eq$%etW=$DS6KXx^s*}mky?x!`r
zaCD;k4?JG_+5e+xDHmk0kBpkPcR)rIKDM#P4hq^nnCQ1^@pRJz64PWrUSEAt;j|Nr
zIz-uh-1@;~zyD!%f`F~mWKmKHS?3V`v
zUazv?M*MY}?9V5!;-$?*+MqTqmC;X*z78u?}~
zjdSRh76vblS{mCzmb`I?2uGX#s&XXXIDzjyU5**WWrbEO2c*u^<1m(vOdeb1Tjge4
zDfQ$bd?pbF=n)T3g*Fv?4CVssA}$?6Z_)~H(fy7GenRa}0~0rSKl9IZY{E)8dI&2{
z;7Np?OZf_I>qxD1i{sdE`-e4H>bQn7c};`o>h7cL5#0F^y{Do+gD-S;o@g@I!HR#m
z0&MJ<+=dU`cFGAHapZx9_t90A8xsaM&u@IU%qV}at1c)PCJyeQT&;nQqp;UCalWFX
zF}DTL;e7+Yjw*vS`WntoPM4Xlr;{IWK+;R<;JOPRj_5p!5B~5*HaNoL$cv3W@z4)1
zleOE7FDPw4r|!!ah16f({!e%}vh1$IVxRs*0zKc5aUJD)RXe
zl_rV_3e~161fRjjbokV0$G{P!@QVT>??7-yxBUj?g4srold2Caya{#Lrz5m94yCVEBR>6*+)@0+&uWlShdmgHy5e_WJo)WK({aT03(Cb(I7Ciq
z6?l_wK2tW&er8!Mj`RBn!Pw(9_!<{oguSjRZZTcPZc+Fi-&qfm*&0l6p>UpbG)a8@
zf1$R=Bq6}(PyY8Bgz84_2_1=m^Da|yw^JsT0%+`7-st{7BTZ<>iR=bC?`sc}L{t_bonB1{d|H>$88b=y#bA4fBHDzV4%Ka~`CUkAy{uD$4R24MgwK
zu^LXYnq^Wr_oR-Po?3j2vdAQT=Qk-Yni%k%dNI=Xz1&pKP0duEJjj2|z4O8rB-D_7<*<;~ml9jagSBoFa-
zAAh5R&chL_x55?$2
z9)u-JerKN#3A|NAd`#H&fYZ;U#3_3QP7S0tX^^;49sQ&_M~)VlSkFG%{O$UPmmU{x
zbOr|*{VA`)C+{Qy$f;ZOZPmZhg9dX68Am*HMbG@F@?Vo*;H(C`mp`k#)L=y&bU(Am
zDU}}RuuYnsfc+@qINFTz9pOD%v7dfGI;y@ogMQ}U7IX7810o%rcSSsTshiQ^zf>LG
zex&Sn*c)ZLiw?f>F!CN;=?)n_Cf^ep=>0AV?Nq!}A;(S(`aB%-^5^wP^5;;}K#aWW
z!F>&Y`njkF2VQzYlZTG<+}BW~wzdV3Yp+Mc_6%{;7}4Zi@y`!LfC!9jt5h*(8;J&aGV7*SiLQfa!6Q8ag{Q1
zIYA>%XI03m@Yega>tKLTe7u8D`Mdp$_yo^CE}ylc+yZnpupM0-f)71m@ut4Y#9$lg
ziQi(vMJ{RQqja8B9zOI_m8jse|5*9af&n1E3}QU}`lp(tPX1ykw@nzxihsTyZNlO*&o5zrS
z45jiI?TYfQa>b;f*FkWE!s9o)xiJWa7ab`FGLkrQftJA*b;eVdF6+)e>xm$E#ZTU<
zBhqg>$j`gKM{)W0!2QhyK3GP+{PL2JbKa8__k;nNMvK-m5gQVUPh08s=Q)L`07>9(2Xaah3HUEpefagvi2}IAMNAjS=zrNJA?OvA06H0+d?iaiB6d
zf9;eGMZ;r7b_kH!1v5`OQUy(rPMG58p{>V1GnYRNH#(q59wbV4
zak^~6?))VoKKO6^$Y%4PR)rm&RXM(DNFDuzElH$6}%WnZyM41wWK#kmue9gDmAw-Sem~ePmL-*Z~{%fA={Qi*X|?bX34gaG
ze}IsdR9zz%2Fbbp!xTM9M~OoG@ZvZ)@!;P}kA!&&8=on=bVJ-l3!X4>_@leyz`sSH
z?pXxzv|K*-bLre$RCZYG7!wGM0Z_(hz*`{PXiOnc04apvjtckiQ;u%jYV=GT3=|X!
zm5v=c2FFyK33Aii9b5ENO6p-WCJ>Ud$;s|zO(N1m-t7yMN6Ja+4NW(`9-@bDSJ>o-
z@9=^jnK}?YrNQ8i_o{p}5YRwg)sKmU34=J3$N3jjRw}Q1zwuxox=yRj>oss($N&`m
z3Z1_)=RvZ}xd_R>(j9-`4TP=KL3zh_$l*x{N^u_pDg5AnrZ{z3z+m$w)iH+6qp0nZ
z7C&{*%wToGxh)7s*%NnuOk8-t=f-;SimC46o!_E+01qrWAn@Ys=l>Ok7ahq1x>(TM
zsyg7FfqfJYtN1Vd$&$vF{ly3TS=3mO1|b_^y|CHuz6F6|W~)YztWQPBjfiWy4T5iN>GA
zbDZRKF61%L{Bl0QOW#;*gtyrUDk`?Z5aF+Q+Q(3lNO;Bi@P90JEx0;RMlXJ*W8PvM
zJF(eSfDf(H6A!J+TxOg{r+N4x3k4PcPyd$c@+&rh^a@tSwk8mzUsIzRH>k-RnNCpg
z1+(KC{$5xqK#8zY%8rAb4*F^AVPW#%<|M~e{--zHCUO0YLV&!`=_X*{u)@ej`NX%D
z#3y&AHR6Q3@vdbTLM0v>%KzaKJ|W$qB
z0|UnwJef5n5LA@iEnCuqDx1~C@!&uXqT(}HsF2|e4{80jSmfs^O>+0>IHkk$S`A-(
zN*HVv*sS>Na}9bX6_4u|{bk4Lv;*N7q?uHWmtaD4_&tsfEIg#yMey_yJgmy?G`baM
z;s(dNQJkmaBdb_e{XD*lf9wb{!Px~a;0O|`ebYwR8BjN|VIEy7TgyNXQow+Zylucx
zx=fT$N#bV!9J`V8nhdxIDSaeC~Y4&>N3Zjt{FyoK0|oY^
zk07>@M~Ufc%8Hjx%NxdYw5}KO8o*DbzVL{2YrxtI*tH`|m?%El*Afo?_A~1II)?Bh
zDTWJLJ@GRj0AmwmH}aYW2I})_`F{fgUI+17OmYra(k>&(WY?B5?tY`v_^#VXU95N_
z$R1@$*}wlkU+TVdoYji?($oRmHYDS+@TDXuV+JsQ2?E{9s|Rt#IqqbjK+ua4{NV?$
z0)THm-SBRuh46bEPwIb;{L6)AgV>e4ClBf75!q8}x85B~H;Wo>wsSKU9D^ph7?2H;
z9bt?XozCui6O#2xUW~{_WXLJPWWz4qN2D;Ii=X17UX*mY%6ISx{nDda+&r!}q(ud~
zxNk?>z#aoBH*YB`>ykXjXvCqffqnEvRO%png(KkT7j*oieg>bShUhS3kQGMfgdWMr
zf+%^Tf>%iNp&wC*j}7?3z|+4jM0k&~71{77eVh=Pqx47bQG8{Og+9Ar!nAQ7Nv2Kh
zs|**Fw=Gw5cr~{Txhi1eDsPyu9+O7I`-@8cof0~4I-TR
zLdyAU8VNR$I|QZ2fiCd)_+n-(;e8zhKiM7e6pPDbHdwZ1)ug#!!cEMb&>HiW+S19H
zJY_`3W<^N;Z_*%l4XahbB{h^+gm;HWmwxV~rY;xgH*4j^{SRm-)zIGc0o|O|VAml7
z7N%1k_~bN<%|Y|Fw8>K%+#$76HF+(#q+chXjH(iy!wBvP))n
z{Kel{bXi7q#IYh12~Lr9@b1)A4wN%E??B`u$F{U}|HCSk%^G9^yPye{Qvt6yOON>}
zfB<$WFNIvI;GO^gAOJ~3K~&_`wv}X3<9N#H;&;FWT`EUhWT3|dc;5iDAJ&Nx*JW@kjC12Djb$m(ff(JkR;-~t-+X(6byC9jVLK&4;{1o)o|4N3h
zcpWP4hAOmGMPIWAJ7`uk%$O%NpwTI_YOzfUK$S^nd{sYoJ=wC`9Ck{Nf~`2|R7%We
z#XNi>5~2mBOIKbb@|C=eJa;iW))9)A4JvkZ0zsz9Im)H^cF%Wfpx5BaB*Zf5pq#T~$$((64LP_|(UX
zVJ(<-t6YZbu&hMy@R@;m#jNC`tmDYR`6{3S<%p0MrRWrjVrqiRz`i$^Z%is;?Q5eG9|=<
zas)jP6xuhU#OvqP4;{$N$Ggx8(cwX-mBo?L@`KLq&t#WRmLblsfs>s_v@_aj-~G{L
zKw`9D>rT3MabWIL%H7I;#N!4rQdm)A9bF!2~Dj4nu;
zJO`~v;v*ElClM4N+vULl!4V?315STfXSWX@CZ5x(%I`3ol{;#-uFtdqu{$l@?dmR)NEQrY4UzT6Ak~9gU6h05}WXn
zC`cJ4O^A&*83x3c$;c*<16M!exah~ikw<+ECRDr!9ba*F%k02tD;`h856OMB;;68n
zL?O8C~Scnu{tx4oaKck8c`Y&O5B*hEg}aEE=EGI!D0$8Vd*eC
z`Qx|7D~7F(E;jt&En03mGShn?5&pQ~f4YO=_&5m~&87Syc+cO~p!)60fQEf&o_uw5
z<+M;%DcZe%Q@)+iXU_l0GT@1H0AivpZq}sDu?OYIaRNtL9DSv}PH8aY;RS5J^l0JH
z0s=#85Io^7zL{sz!(jHn-_r!B9chP`HRz!8HFlut7}u!TVgiUtBE&r)Do<`lF!7_z
z1mxX$q`nKlKcXc=(9o57g~TqzyPdKJ4zMoaoE_O@P~`LS$XXs-`eB361*EubDh!0?Fq50;
ze#BOx?;DBP{Z47#L?6euC_y*SbS?;8p~;`B0)IcuZ7;kKi1QP#Rds#f>WAO)Vc3+I
zAu=T3Clo&u>&*`>3xXT(*Y5nY+F|^no>=^dcvRONINg9|Vf>k)Z#g|EX7t7m#S8F{AaG0Mm^TMC$T=?skIED7W
zzq720*&cB}#Geh(3W(zsb`8k5BU6})>(3X?9(lW!RrFX*io}3SXFadU!-b|wN#hv>
zj1HiDg1#s=c8QlQRyJEJW68J?c2?P-=25p3uu%-;husJN2f;Tk6=woG4y0qd6HEe_
zFjOS|-2eSLw))m(g;tbp
zt^CO++l=Bl6p_4{$31$Hjg$6Kba(KQg`b7Mo2p9&a3&D$HE|z;y5{(bC#hV2vVRC<
zjGZ+605a@Y(k^L(Zg=I6+blk+U)TlWMY~mH;MINdRr=^tTZ@%Ocb>$@(}>hnC;kgv_Fqf6wdsk?fY*twdSFXZR1;)A=Sh3AyRV?0NPRnppl!yNS;&g}|`@I~QcO
zDoXkpr1-EKHw``D;e&p|6)FUjD#x-#U$E^;2IV7z4ZxYJ^FSaS?yT^jTe|!YkI;Qk
zFiNbXL5T+$@^(RujVH1CKyJAm7ghu#FX1_az{o=68E)=-q|KNKCN?o-u=K4%7G&Vb{`C!*k$md+~{B~AMw%o
zut|Og2!BO@d@paM@BT3jN;e+XdQLu)#|xi6pivL_m#3g_eN)i6MF*
zQI9;L%773VLM9KFh43BR79_~v!7(g8QjQ$GzVNAq6CT^3eF^Z%Z4SKn4Im4=^J#XF
zrLM6bd$2kyzAXCQpbp7X0GfX3V-_g>EtdF|5HWls6o38|g3C%gs9<5n{i2s1Tgr^x
zDvPOwsIa2=eYO1JsV=hW2Vc;U^0hLv8)u_s+gQ!mDNX
zU4Lci6P{RwXZ*SCVb!S?BX8&^EIl1f`tS|@z;9|jBim4ZrG
zybgq8g_(xNbJf@;opR{xiQ}#ZHFQq-3XgRZ?Z&(Hh~eL?$)j*IO6>7Zd_MmRDq~H;
zr|(_-2KSyH)e8PQWarxD2@|&I7k+U`Q!l*l!Tk?|{9wg&PLnk|LIwot!S4Z(AJwJJ
zmTeyUjo*cGI(4!r-EkcP6CHe&@pYQm?*FJ%PQ0&Z00LN)T>ShJ-@3-nhO|mu7+_qd
z;=%V!3MpsPMC$yo^0W$NLRm7XeDU`e<#YYUS9a5W_d_<|;UzTQ7a3p!N#S4Dh0=A3f0pe}P7ov6hP@<;pT
z0f*D?SDV#Xa_&);`SY@&KF-4i8?{wz`yB`^3gVMu1|F;4Dt{&UM9bEj=arAes2FVA
z;s^S`30On|^fAUBCL?~suG*pHiyz(rBV)pd&c6s?!t$7;Ho}gk*XfY^N=DZFUhFH!
z`yho_JPe$V|G!E|;a%!nJT=8c0Zgn54x|c?|5(ONU{-P*cd^~)Mj|V6b{$k6s}%~$
zzou-fF$wRNoiqq~pi|>u(xBq9%C;{}9>+M6V1Qk%MA2If@2r-%I6Q1@QDq!
z?B1EET$sF{6V9Dh<;~GmjzRGIRXUsStPs)9Zf3lAbfDHTTz6f>_bCi*tGJlzYXqqC}75436ceSGCg3
zSvkk3+z99CFL;NZVN5syJ4D(e^~S)l>nS_0>?LbcgxJTnfH-=*l3!51deNYK17l~f
zB&~=6|NPU^BcD;6@-PcNUj|TS&S%Ns+pvi)e3cFOC^zRrA**9PFGGK(e*z4AW)Ks*
zU@xBVPkK&f5hE7vCHlb8WM|K
z7V4ZN5cj{N(86xOl77
z#KQpKl@;k7;6Xfm)qqEb6#czF
zv6L$}YylcL=b)eexbAEGs!_{?nKFSvG;Du6Npap+;O2A6$1BHk(uGg(
ziUxlgzg;aF7CDpUJT~<;=#G>g;`tE`P4RueI~foCyNiD_-z(L5UVTz|Q#}58B2=CM
zo6&`kvKr+I5grp1C@hf?v5(3>av_3y@zI4}*rn|jPxz8ICJqmp*bwl95=T3$ARgH8
z&pxU@L?8U@WT=M@TMu0zFIj9;4%CJ3O@UK-DF}tc17$OL11pi`zG
ziKEX6;WTlO4~XD64t+zDE|bL;h~~G~B};xeg#Zwx9_cea9YDW;zuUdx$-eZZ
zoXjS@d>@QF(O>CruPIzI(R9wy*qHD>O4Io0Hln;<7Eqw*CA<d5L
z7%u+4CIkKKv;sO3t9{Px_}|gISd|Ws9528
zqol(Js^DDciqk+?4Y6&;j$e4(Qz(|Bli=9IH|k?V#M9&D1G_T@Sn}%*B0Y2pAN}Af
zG6lVJ5O;%wuHU`itKHpSQDdym0G$;Y?;y~KT~4yWKx0?A=;u|Cg3zDb!pD_3lBGmG4$4QqjC)H+d*KY=1
z9)yPp`W1GNK;)2B+-iL>b;&PvNf`)lHgv$F&_0r0*vHlF6ujiDxA+GGk+KtBP+mM~
zapQ89Jnb$2_X9d$n+hp!>#lOOkKl`k|IHB_iW%6oQ>R{hDP$mI*H4}K-iWxs8RXxn
zgF=m<<;U5myx1q0LNC0_N_xv>IZ-^Kr!1WpF~E~J{SMY$;K`?K5cmBx)h~S|rY%cC
z^a_SL_bCndl!+G+gR&i=92n63)SUV?yENLr+xa%@=H<^#2qhWI9{iDIN6-D*dp@?j
zX#1IepgLB693UTAw6V+a#!!%>AT{)
z^zGu;@VrjKfk5IYFUNK@QU*G2M>VN%{+<>=BW0!Z*w2;HWKba!1UDeLcfqQHG=)zm
z9d_bFLg{l}eOW4s)fk-@`#edp3dr*-xz6K`w1V$ETk+^yDg&LP!i!JbkmVfy$zN1w&_s%2@aT`QpL7vFW$1wnz1UQT3D9|7
zR=IG`!}2JAuNcMz4GtusbgTi#2bA}CIjPA+;m9ir(AR;qGq51<`w4Ye@;1SXs!xEO
z$Hm8%I9Hb?Z6taL6DNvp(Z`@iI`$MMe=dhU+DXUAv-mtvN;H6+WuYObkU`w%)S^+w
zE)(ImpnR*qddC1m8A}&CYwB+cq=&CKvkS@21Rd<&{bY{f?kfmE(9bq}0a=hd&UleW
z87fYm>^hgKd&<(~fb8@eG?7xi!^DUj$Qd=^NiuPcPZFU^u*GJl785KEd9jkk(e)ZP
zm`tg&)afF@S^UO09k
zW)Y5o>`Q;7enKS*naXAb!Dp12G(35*>aK>{)eckW;-`jAr)9N6#W7)c;zB+0L!fB^
zhkv_Z53T3f14q}fq8C+mfsU(4@;k)9jl>dR@VMuDmrmi`g_KZU?ARXp8SyAzcCibh
zUwCil6>`rbI~TN4He*0kn$_3HX4eCAd;+iESk*!UI=_^#OQeHQ9=&|b8s3Cfuzq3Z
zbnkaJ9gXc}j@V?2$%A)50v>{}3DK$abR^+d0-Df9f2
zr%?}Gf#Te6jBSTKzm3-eaiz^t?ZtZSw1_RtP6YZ~wpN3WP5*Y{fIu6fy;+Ci0}#fM
zgcaw=>G7Xm+TbZIW*BRjgnWdqv4lZ<=QuEwFA?%^{rfkYZ~Q(@8pv)re87xv>^8lN
zU*i$Z?J4ane#1*Vuq(Z$GcrBwy1>u+I`47fv%cfV9Pq46AR*2fB0b~6+e10T8GgSR
z$Uy(-&o1(A^wp_YQS;;k74CCMRiL3|ii%@P#}N^e1|5!_22U$6KyJYi{<)ziAF)BG
zpBwL%vdc)2pVH^fhA4Joqs0duo`C4wG{5D2ngBGZ0-kg~S(C?tasx$g)Y^v9lrP(C
z{yzkhF+iuxxw1P`gz#ks;p|t@yow^e#*1v>xdF<~GJcpe%aF$QjE7nHo4-v*V_HSd
zzztC*Jb2FinS#Ep@66IWR5x2=au6@^F#*>AWmaTGgABNRBw>Wn%SHGtdfB4g&>kQE
z1^KDn0_DCFs@{gT$2V1_
zi3W<#1MnCv6@-pd6cfTZ{Wi}m70o}ff#%6V0|+-uXk4r~=%k)xcKImw<3McV7ahl)
zLm__kBcENm%r|wERJL8?GW&?JT_E0jzei7&=*Z7URN}*@7av`|bw$48bM%t7N-k>H
zxz{tkB__1rU}ZpqM?YL5Ze7%Y;_isT+g)9txsIu40D_559b5``9Y+tE$TPqUKjDlH
z;ww5pVgI3@ROhWp6V`y=K39ST#`!-9b_wlcp{%;=@9}N1WtA&j>KyWx&y_wjpqfz^
z$};*1`3c8jhTkCwZxOa^iROIJmQ;t{MRtDa<>3o_wH$R;W$HA%=s<^sE>Gb_7E}c{$%c%p8Ok*>3%B1q-zgcjUDWBKR@i;pOFKp$*)wk6V
z*fa!UHsGwtCxEd58@E2Z*k|lANS8s(<Q66eVmhUT%?+pIo7x_WS0)jT%=iL_cOg;S
zLg#}t`U29q1<-=)d|OOA61(KUAEoOk`VNzO&>De&IJGOTM(c)f3^cMIARHruBTxx?38Z{JeFJokq7VrK8)np(EG$9K~isUVlbg
z=$}wSV@0Nh_u#i^Mf9`Fi2RID(o9RDMXigo=R6HGe1o+Z33|2%
zNrW5DXadz_I|Jp!W5#sYmsAc+9t>=wj!X9}cic33*6PAOcW1Fl`C|`!!ZMU{@r!}b
zBb%~JSr`AVfNx)Uf-DAn;{`ka^B-(B$Yed2#l$vT2|like4sPL=vSKj0tAo`l@rMR
zBPnK=sp0`x*hRw|U%^GT`cae$<7AN-FLA+EN-WHlzN1?@?PiHG*i
z6ALFAcj~D0*6&ciRC~Kx`dp{T$_{UjUsPLTM{`pBkA*D1B2cD+n5nYbR
zcn{^NUs`sEWqvEL`^iHnq-Pv7@;L*1z#46#9O&AmH++QfsBFFrP!mWr$MK{Ig>z+h
z+>SWgL$-{)pm;&YjS@XOzz*iH`z8>@5Gzm7KYZq4s}j
zYn#&`$=ewX3iiib2bY(%ss#M>)n^ouBZqW==yia=42Oh@0l7xosjB!W^D&7aDgoC`
zl^>Hk>5-RSuFX!|n^9iKgs6}-$G(R^g08bDAPrN}O~CC$X|e#=HwKaJn<lLXQ#oxdwxNE?);}Es~yLsn?#UJAA5-ozrQ-J8RfS3i==UbqvHF2
zXtVjuKN4>M-vJ6kagx2wKr)1{r&EC7pi@UU-tkHvf?k)%*{H%U*W-s2TronWoeUin
z?z2@+@}Wh(ixXAM{LlQh@*{dWVQ4AnHMLufO#(v(<|HaKZ!08s>{%&v`1NB2Lr6o|
z2We=Bc+epvD)ZC~4cvKDg`)RbGQ6YlBQ01V^@G94&}Q!dbgBOVAYVeoSp
zJ>gU6_6r}l&`A@AjxXT{-{Yi#;JUofd@GK&W;0uO2Zyi+Q^60KAP@Q7d<`RRig$o^Au@WQIWHV=SMFZ6wv31TI;6$)>CvN`+T
z%QEeDt2~fB25=ALq>j_sK@5<+*VMl*Y5;RUjKAVI|F{-x8lPBf<(>wU2*x6j98Zpwr6%Xh`fD8c7
z49EkW2Ck>gaK)FaH&>nd?-ngFierfrD(wnBhVl3On9dgOD}IUc=?%V}l|mV6N92G8
z4|Z&;h2mJnf#348>ol=0@*CH!S0N39Bc6HHXKv}B!SJ*NZ?SR?&EP&4JUVz5pMjoE
z&CPFqOdi}2=37cU-swk_HBcu13=%wT!?WfzM9#jEVG#DN;kR|ql0bH~&g
z?~J?cyEdEm|Bc1gO#9-OlphUVFMM1b{d0|qf%4DTGU%XaE~n~TE~ns|8b?Je@fKP1
z58aXNAw;FqPOSub`VC>?#Y+%lu+Bgm@Pi}TdGX)y`0%LPUFl`fLtT3DBjHg$6`%Ds
zhRa6)03ZNKL_t)U9zKX=)Of{bA4vOG1m_K08X7u!oOA>D^Knr=xXC*mv?uGVvan7e
z5_()ghnY$lbma0YIxHORawNu0cRpv5wp@~10rK2iL;&hv4(5h
zujM^7^m6RQgk=zsdn*2vh$fqJPb_@sML$Pb=zjKhi+>7|PiK#O)zA4&S%QN>bdWf6qM@c_&nl5RGv5T4LF|CPnnDuF0Y*l;e0IAiAN(r666(ZwM9B?d!umR@kf
z1cji)NGmxKAd6u8(10!G1-17odvOojZX7faDoOT7V*#aso|hk4S>$|`mz4N~y}!oV
z4N=*eD6Ur{V&%fBg~9Yqh5jD{vcam7o7nIBJImv_*aOH9+hZmv1`P&}FRBqf^E*oe
zH4oK7S>f}@z!E2!VqgNJk#k<|4kml(W1z`kgFb){+PVBCJjyhRU?5)UK?mR9TCL>x
zoD5Hf0hg3d>_*PWeu=X!Onx5x@#aU9d0jf0JovWK1(o5EAfKat@PYuyPmdc}m&$8|
zJL{HQlW~1ek7dwDSJBh>Ml`evJs=b3hmP`%cF6H1WywN-Iy8tcb&>XiEQ=KeQEnjf
zC@`N8p)En{_sU$>;L2a?Y;k01CvJy}MY|TiJW!R7Cd*GVv@#g^=zP)D`4E*ao;U~t
zC71jWCeOAdn_k6Bh9|Drq0?WOP?;dOf5=XNg%mi-B_C?ET-otgr`4wTucjR+Oa5g6
zI{5w>{|o)%*(ICU$32e|itvpp{>^c|j?Ib7{XeMh)BS>YTK*+w1qnxaf)*cs4R)B4
zpu7MJDyZ}rr$|Gi9(F-=&GgbaY|ZqymR5;JaY7s*o^YSy<}4M!|BtpBU0CIFe02yU
zLjh8d;WdvFia{%(t%ek2SJ>?1??}Q+qUoxn2YLo5(^Mg;oSWab+`pj#2DqQY#|r6W
z9+)XEbnC~Ps)k#N&T3o}h$~kE022x?+x^KuSQ_`kKc(`yd6}pfB>3SYlgyL9qNw;;
z#RZc0gy7xy7+ml{fbXoDp4Q|8c*mhU5jrkDCbzC*+^j7f$hGJa?+6$K?6`Qg-dlY6
zfZeO`S9$OR%D`vNrZ0MW2)`z4{_n*a@Sg_(?j>z~G6EfRAfW48Fv}p*NcM#bym72}
zw}R*d+4*84%+O}u@Em1BqGk;rp?*%5P1+Z2z<9N{_`)DU`5Gj^LV$OD*nKjgQ_p-l
zhlKu62}%Z0#t-@z4{z`U)=Q5r$~gVti`3DN43i_Dk>>`v``p5M_$r;ehsBSl
zM)^m1?(^jvHlNeP#lKiMsT~W)bsX0}pj|YJ&(Hm=RKhDh{Vk9PVd)`E{>-E_y0;*_
z;Ps3ma-{9dBS%b-br*Nsn!SJ0FW@sNvE-xVfTfv^ZL!?Qp53&Zv>*F
z^g7U`k|PhJKto7~xm|H+y8!>Y9DKsLA{1uQ01b{aQg$7EyK9;*{O820KBK|&!KK4e
z9BJtA45&^H4WNT_^Nq=e=lTEee^@3Ej<0xx@xJd<(;_#FlNrTc%ehgN&Ejzx~r8JWy
zlM?q_e55tYN`YM5g6q%ds8AEq8u0lN2GUo4Pt+#pyt?ogw9P;#5}QhIb+m3EJi(Dq
z^Z})Zyfu^C3FJj|piAnRbbva{Bmgdhp6Q(tL~OzrnsBM-)RFTY9_*@}nMd)l7!dsi
zwbNI=xYWVoq}sLGV0I?HKS6$FEl64Q5GMV+sENQF
zq6C=&=Mw{hl(owUT;Uyt$D9i-szD9e&O_pFa9mX4bp$p8Tp~SaRkOB^3<=W3|UldX=(`wWMYM(qf)n)grD+L
z=yEpln3vew#U7*Bc#76Ji3ONgz9nl#?5|@c1ywSiGdei+K2n
z4?wOGt90q%c!fz8K6q&8{Boql07c$`t2A((P~P9r4#g8A`C3T6zWawomtSjeLFM$i
zCXox8WCzIJX&q5uDzK#CY(qu$vH_et6S8LNM^DPS|B!
zcf%rQ8=!?_0_7~<_pqWz@|hG8Vvq7Bd?RHhe*2bC$x)U)j_(D|TTg>ed104dmwhgi1v`NZN*A`9`$Iou2&NUUbtyh35i>1(rfn%Q
zX8&c<`<8Sp7E~H>21JjOWYnPymTYW&V${Hk2uH_{s|8o
zg9w9k{1ECOj;?~(B$-Jlv>xIgH~RB+52!P*0Y{7cE3Kh^?tjM2tGIYt)_E2M<&5U+5nH*GpT04?h9d
zAG##K1WG=<>yxYjMWruaO9o%rcK?<EY^7Bmir`ke(N%!
z;EPSiKE6#rd7OSo_gyrJ(B9tj6MAw`CkT16aj=W;mJcgy^kd4YbPhU^j>C7QUAM(F
z$V5apOU2C+yh5S|m}p~x(wpR>WTf^-X4(DRp;jwIxI@yz(?*;PDa~7)&;5ZahEd{D$kWAcR+
zyl=WQaL6y@X>@*RPI0#dWQ9w^*vc+66iXKarY8?{X<#A044mM35^M})<@+c<_y@}7ynj*Gx5GQdif7eE2>&HosG{?ki(K`!}q9U(^>QMoesGwAbT
zo6SKhyA-$cNhpXrPQa%h<$AS37Bqec0zMe^^D37(yn;mEpiP$i&JY0_afA?w9vnkI
zv<~2uF1CfTl_+MIq{9y`fZD~=X=N)mSpe}5@fZ{Ggcc$9Gx@Ci)-iVJ=YN3kvg~_*
za=AZ}HU+uVV^K;qW_(0r$L}iMeG3z9fwF1f_EEU7^_NoddrZb%Cpr+AaZUG;(KY$u
z#F5frU=*tO9D*j(axxVVsS!%Xc~D0@r@`ct|MT*016#A$oYGp8tUM;-li#pcA0-SiKILC{krId2oZ5r2h|b3GlCT
zd2*^Bak&97Xsbh7PjiMSs}biVbacuGKjtVL10QdQzoFH(ed`TO{-INUhae3Pn&1DR
z8mTMNYRC-sGN&i>Qu4a
zK)xx!g!l}%FWX}9VdqFdUkAwy6cKbNG*0oGA3R{D4)`K3-;SDna2_S(8{TR^OyH>U
zKMTW#6&{oi$wCd9(_CbS8}S>}8~>rwpZ`#qqY#|{Y{VT_qVGJssDfeT#{g)Nq7erY
zE~x`V@CjYcNx(cD8Inr`9?>8lf-WCo!!h~t3ux#Xz=ZO^52dH9f@$4UIGJZmM<$tslnDVQ!z=nd8oco@Tk?{nMUVduyqwPs=Cg;H;)FD7O
zvVl1r{JszwpzB#M^Ocq)h`^FMxZ*TGm`oY5T*eu(l23ko$t>Tq^7*QCl6e=9&gCB=C=4kg~(~tX@|>upjc9bkOJZ
z)6Q=OjsSMSMU~4%j;AEglP)eF>alFnQT@O`DHwwdc=!Yis=lvOc|NWBJg-53|4cW7
z%ck;zE$V!%60s>r`S@sJK^^~^a*9OKvcsy^|9C7kLTr}ZfhLVyLdCtqReoLPmGAK5
zFYF1uD}@K7K*h2J+)!tbgb$W2^E0B-OeT9L5z&Vz5j804YT$$-zFdeL0DfmMHP(y=
z{A0}Njy9ey3%aKdtn7|)n!vkjj05-mz-IG-|4?!DDMQ(zjnL;m_y4G^X>2)lpN_x(
zRB_3UK1zP8ZbtuC;oI%_PPy30C4WJendQY#^a$a641(+=PKEXkYe%OGyiwjsyYS&T
zimvV!)+LNnq{i%yaL;2E1e`Y>|&gz}jpdatm5s;6EWScJ+Z#8`B>t#a2^f8^nJeo*0oL6uf44A|j
zAboBw+$eNK@zr%hnWr)o-D-!0Z{($VB#Up9H8&?ONyjDGvcJN=smYLu~~}Ek^H_zFv6J$Hc*d
zFpvM-fn6pKFFZsa{AGKL17&!;r$Zj3J4c$Z$90RMONbH29KI;uOTj7x5ZV$n_U*gu
z*R7TlhJ-7o$Er*`qkvZU(A6u@arC+rCV}Gh%Dh(+{DB@1jBccCK4WQU{y|b
znM@4G@@s&pEq#sVXe%#to{+B^t2g}L4z~~Kdqcjz_OwDxfHNR|y#~#b@^KBgZ$h45
zQD@}QQhdg>Cp
zGC-T5Ugq}VvQvhr-#foyxdDzVyhZ+u+QeR{a^!x|3_RX_2q+6|DPVWW(`fiZJ(K^m
zY2@I^k8~zk_ydWOzw~9wJ#q7uk8TeUAPl~uAw@S1WvmFhL*#-eX6ki-XpjSk%6kyR
zSB#b?57LtbVZ!LzvJoA7LU!~I{rkEv^&yot?G#1jCw+8J_+gSRJcwWr
zzfT>Mun$c>69ojz!Ao3u0D7J+<_iRqmrL=I2)R)Yctb4Tw|M46cxU{aUgxV3b&Yuq
zCnZ}xDLwQOr$vJxXz}0{O0kIEcM6Np5D)9&FbD;@sngra=U;_&h4_|W=p)6
zvErb4Joh4a=l%NWK$>0eMafXn(FR_+`Xmx?rzVL}Y~fXc0nZsXQ1QgD6etiA~2zmr?w+U&TWZ
z8X5M0ETNQBbire}C`@PtyD#th9=%omeam7l6K}X_CoC2p`Ddy^P8$IFwRC%-r_klg
zI3SY80`(6A2>2=q11RzU&T;7a6{|TtW>kBztS^h4+qk*v(gkNcX=HctbpE5_hjr8h
z0wK`j!L5X3FqMpm3$SGA9Jk!7j-mna6%7a%=$t74@xbd2RQzNv(P8QkVo(ONSsEV$
zHqU-@6vPubDKyS_!C!oC(cuQxAH+bMDhM%M|5<4w@>kS=b;Ikodr8H-sYw)
zBkN;98DK%cB*McESsXBkpo87w1Ako;y6Pa#up8wYP*4A^a2VYI$;TQGk9Bw0%BK>i
z)h_+?SZA8z_?LV_a@vvM>VbrKc?_GjIBY2r_dPg55W+gEFe?~(!aooyOD1AuOpA_1
z)nMz9^ha3v`66NKm<^VoeNtP5*Yd5+6w87yb-~Tyb!yXRep0*02bcB`+wd_t@Xi+Z
zMEI)s06VFaLQfV6$vc40_!gfO9c3sU`wLEd-Zddlyy^mRV3Z*Ucoaky`d%<|aS#tg
zdD4WPx8v91(Y5GNPkAeVk|>J2(yZogzH1o($7dFFOz`9A;Ds}<8GeZ-ivygNrQ|L}c2xIuf!z99YlERNOb4PQ1i;wolgv=wrEO1zb
zvpZ#1;z>cOiC@%&0w4Dp_^*q=z28~?{7ZGvfrg?zsbFpJVI@5%!>vXHVGX>fpr
z6q?DH<6R;L_vOmY78a+}ec8w-j-t+LknZ=mu?}U83N`8CC6$g~`
zW4@()pq1t^Xde6B1s9Zm?n&@e*K5xm_&0o&4)kR}Dieb-6K+;?Ok!Tqu@V%Z=alYi
z@hK1{2zDT}Ki}t&?Hlh@S~!k$_#_DWvkRo&zWzTD&ppC3XauB_W600^^CKn?@%vbW
zJm}}+$mpmrN0p;uMh3;8IG>6+-Rg0W70KW@a7}l|^*Ai!=_2LX?M>z3Hn*5uCT``?
z`d#>qUdliZC?3)#D;<Mz(aKTlHT^>toE3|JGkx!%NbvTyR7{KfUAO
zHhC;)_d^z;pZ>>c?~fL;2h!m-P_{cMx{ZSm9@=4;(sn`A(!%e@uoey~71$gv25
zKleX)%88Codt|}G(VHg|1PiFwb5Cn`{fi3E2D>Muj0C=CvP8#~2
z%?}@uq8X=4sYuZn?f#^UvwLSEw*QhFyAflr~yZ}%0
zM4k_y9XWw4V*9Tvg=BlO3F)ryYP*gd`SvH$wXJvKENe`Zta9RSR=wt#^rW$6VhNd$
z!N&t;4N&y@F?q;G7fqE<{03R5E&6C+DUldb+K-lMf<{LgaoBnY&2((kk0;Vzt-(AE
znWL%`OdJZG50oIQfR`7kTdxAaH=wON^urA?MX~Ak3Q$xNz+e##1I`0T;sp4)B#omk
z5Fa?j&uMbt6DvIFMqgY5zs)Wo@{bMLrWMH#{#)cN?^Sa0iN(%yf2hIW5xJ`}VsaVx
zo0<_OBJNx9k-eqTr0+eAp`u^-Ek$sC7l`Ib4LW@NSIHR%YhX<^{p`H%@o;SC_DjJ9
z5a{W`yNp#9On7_^fY4tZm4@D*E-JSY;wh$tnCkH|z0}X5_Q19B(eys98g;&3N8LQ}uk<9{w=5GhrxrXM6L6bQd+1|8Xoo`bfss9seAzGfTHY>QPc!M{XQf_Be0N0p?Sy{Ja#8+XwwT|UkcjT_jP9@#ekcBL@KJ0g5(la~wU
zK_PY+0Q16O8sI2YDWTEfZ*~^&xM5KFEl4bq^=qj+9^Y6-oX
zogI-pdA#)@3GD#>L!2ib?9cMZ-~+Z4DyR#Q0`ST!WpRzl6?O)7c6F39pW4}~n-cQ?
z5t_no``(YK>@@LoIqdVb*C&5zQILl%ZhcT+I(S0uUz0U}-uM1(EmH2&y|+j81kW!o
zgDs9RAODEF^#RXD1k}
zs7Fp7$TvH)OIi^6E6k#?LvsBiQ1+wK`U>3#!D7RL!RZOvam4LU@ngq*k93n`G3I)&
zwqTcZ@dFp-A7#$HQh;~4_{UM!p|Tz}(Ql5+zffM=&K~GEW%
zNyICcMWqXRt5A>Ud`zu|TOCpycYL!t@B8Gp21Xb3EG3(Cg0p{*(Oy*m03ZNKL_t)r
z5OBc*7G=P1_DKy57$nh&Z^4XEnj;oET8>)06Jci)!HT%^5!Wv?hq_37K}LUYN|#&F
z=5XX=3tI`vjI1@a?cVC4VTyPYg3U&$l?BrG>S
z8)+-b(c$|vdGO&r{J8yt8fZ1?oc*_AQ(4Rl7w@>i(-p~FfJ(-vjw>I*JKE9_yPS}P
z5HC;Cr}sfl3{I+D@q-mf@2I)c>_+XoL_uI2^gt|qCtNvV1MImjCVz5IPl9P;mEW5Jap0uqQ;5B
zA0WHZJ@G9?#kYo=RUC&$RX>ZZr%_grRR*8jCesx7+$qee+<);iT6t;}#_ogjWeS2u
zd%Ze3=hO3(H@w%tWb?KhW0k*b{rOLWykU-RS4Pniu=;)M=X4gXP9M5g5G~)vj~ZPh
zNs@ODWa;ox3a#WvIaQiT)GIv6cwn9Nk}h0G4t2rIfDl2TyXe_fgwJ)9#7dZK@*>qW
zoQtbY88G?(BupMxYk|P(%?(`g)DLwB50kF*86{o6a2)$l{wdc^PTV^kCD5ODXx7x3
zpFB4r6EKrlCMfcNPdrt`WWZoSwTsQri>y#1;A4h-dBANoSP5{Sg#Y)jc1#tvTO`ZB
zG~hdG*o}|Z%KrE-c+Ky~`F#`c`NcufmDdbv7S|o)EUQ#S%FbxX;PQJdJp*
z`~xmMD|?h-jH-SD0~f?)gdQ*8?@p4Ao#3%8o0OGF!e{pZdw_A)JQ^z)GyTFc0?`L!
z;^cAW)+_`jS7$^|G`K!ie
zkPa$u-o+I4Ed}_+JpeweNXJem+)^eURwnF2|g7BMJiTD8?I}Oq)ywg#+Z-L}PXL9B1
zx$HdnQtJuoMgztPm5=Qsh;G@k&sAQY3~_9-3%kox!TbM?Q#&s%Z`c`(w6HLgKFSn`
zpG#`Fl6@wB1~Ed~87pB1df$H#{W|g^U94Zk=JHoy82M7_UEiv9qD4k;C(zG7t)q_L
zD1jZp&1dw8vUVE&Hd!kNCfb)itNVYCE`lbJAGMVLM=5C((6LEg$(w=ruJR4fF+%j&
z{=~~EfeB$yIBY|b5N(4t!R{lwO(tmCZ|cYSP?~|yWr!ZtiEYA%E^ycfX#|PGKp8;h
z=n?z=6&o}!Vh@WA43izc@#W{!AJXp|wP?LxdenCD_a)uGdg>o4EH`rPk`uiHmqoF$ar
zt(9f>W%dKv%Z1oJEH{rR#nByzP#jj;Nbm9PH^5(V5rax^49P4M(@ONHn>uKJSFytU0lCh|H|p6pH=
z2wbjsMtzkj;7O%R8uVC2
z@|dnCk+OlGSrIZC^W|I$331myx+Y)&K}Wdd{S#qIGPwclKpCV^g`d&QS7`lzE94vR
zE*S62GI^Z5Wtlvv)AMK5@g70}8ij9usaly6w*cSo`R=+e)_7@${EzIjf4s%MmEc|)
z69+F?_C7$nWX1S|b}i3pumX}F1~=dHB7gFi$E`cyg4;F7<`1iXmQO&lo|b$!YH`@0p&~W{fYlc`OShQ
zM8d|qm4Va1bE_;1ucD%e|^EL0qEfi;8!z7F&vAR
zeE$Cv3FhcdoDfL3q_+8>(J(qhzT@`Aqd)c+UOYYmBG}lfJnSS5t9Kr=Q5XP>ijSRz
z(q5qmJ&v!6jYjhF6B3y-DtZcM%M~TuDX~#N8sO`>@A|f-@ke%{NI(3t!4ns(rg--t
zfNfS*H)`h+Tjr0ALLSO*6hx@f_+#D)kIwjRQs@qkx^Ti0`+SQZ$h*WlIi?D=b{8@j`(%cfJ@JiCx%2ip
zyjw7s8&)_U$!Rbg%EFhhu_v0mCj?I%V6vuPlK1PH4n8Nt5#DL7lCx8y&$81zE&Iqb
zd2nRN$%Jy-_bN}KKlQ(;EYz0Ww&BAk<##~ofW8Irfg|j&3nv~Q3oE3Y
z@PYC}2NU97xGA!rlq
zHt+Z*@s{1eH$^TmVF~ygHoBRh@Qb6)d@_VViH^-A=kwqic&SqcH`)$9-TVNW4j}%6
zA+%$CeoH%#3>~WHyY1$Px-4G`qP0K^DU8M)9C&Tb}S0LgP(&KFt!k+qe1&6Sr5s
zlEnppmw_4mdEqiZJ@QV4`+yjEvX8j4D5WQfONIw$Fhc#225eK8=qH`Nl=ePoCR)sw
z(f$j?LgBi1FO$Wo56F-A$baQ4FVBt)9;i5o$;fMJU;gf#^2h*w%STn;Pw0r~=N2~1
zTSv9mjBE2TvokaKdSGZJMh3<21?pM(t1-sqjvW;ulZ5kH1;Or!#SP`o{YcvQfZ6Vx
z9*jF8@OPOM{tot4^ntu;WDQ{01yvX!(`nrxN@jE_rHS*n;Aw5$=;Qzm>w+3u{3hh+
zXuRodE?uH8X~M#F)EtK;=d__waXfy>e;4CPn$TTo^a3iffI)yC9cVOQDLsbisBqX+
z4*WR26UO>8MQ7bBX3<<|0rM#_8
zCM+9Th3R;XTKr#x|k)15|{rqi-Z^=CvBcX=q>Ql$iV_|opEyZ&s5$Oke?
zu$sH+Ax#3`AX_wl6bg@?bI<5V^EZ^<0ZcmoKX-2$v)OUo`MvCw-E20yn>)Knc2gup
zEha^+-Yv@>uSv#923Y|klguQ83@{0hK>{TCpa2OHBnXfRFvy32F~DFF3<3oC5DZ{s
zvB#cq?8uTViIzl(6xkHl=F(i7?3JD0?|mI(JPK-`#ohWwVs@OaZ>XkRr%|HadWuWpPTK=kTf*a2ktIKS7ZQg~_1&>jCKk=#@
z-RtlOuCqDYqG^g-v>NFs*z$|X-{|g%OS?rf+zz?YvM$DJ%ZqT2i#>6Qc4MSuKBz5G
zY3)5mAM!BIgOuw{biT}*l6W!DXm4tOyNmqSAq{c8TkOcMQ}2&4yM26P?2@U0*%sdT
zimUOx5VH^O1Mqiw_6+jj5|y8ZwocD8ULUIa8w@n$*W6Cz8ts=4xu+Hf(
zwzxI>@0}YhfIs5BKK_wT!_UD4+;-|JGwabMHD~D7T~5-`7L|8rdKsB_-9hnD?3hmF
zqx|$LFllFt?$umoX~w(61aS=uw20*wlfdR(STT1o=u~MqOK{ea8wy533#eOi^fN0X
z?k1f({#_2z{FlfIGqqW;aTSw24=I#M48sd|5|ks(l=rL1neyaJI%fB}lt}-!#PlH&SyX<9(qEOf7TcRL*5%?Czb?ig8
ztt$_4e39@?3M1drMtDm|6Tkji{ALWky+eB>uOc+Io4+)zC|?q?(b$mPq!Q8@w#pqx
z7y1*|&Q!WK0^dee0lDscr5Ev}JC>U~2xShg{5y&;jXLo$1~q<+Q&aj1ODCX1dWBbk
zWfJCcg*eH_U|p{Z!^Q2wLywNu{RD6Rjk|C#P0Hnse#TU{-kzcUEYngTMiWeXp+1x7
zFwz<@uJBKyzAsS_dN?4vPFF`kZ^uu5vN>JhW{fm8m%LjS=MGrq5Fcd+;zEa3vWLD)w>EfuCe4JDwx{6#?!ZlIw2sE>Ao?2z7J3g?K&QA(iV
z6vNV~hST{q><~&6aC$)>d1`S|Ic)?~Nk}7_zW3116Iu!lbp4={h5Fi)D8S<_OuXU;
z>t-PPf;7i6(QZ-8x9L$9)j5ak7U+k#_zkkwjoY;JPWi<`8qME)JK_#M4bMFTulO)u
zIcH9tID&WNs1gmGAvh^jRXe4wu(8~O(dZk;{1L%ZO5+T*;gnJ3uYD{t@$}GWrgp?KdsohW4m?DA`x0e+Cpaqj4;b8x
z-%UNcC$ch_msSP~ahkvF#79~25prMyyC~L6%0ryi4t68MSvire@hBwsX+vi&Es6H9
zjHe!FnZ4p_7HpPgKLZ)#l%<(th2xHwe>~$^r7LG3>3muo
z!)?%ZO10#XApYb#o1;pZfM10v^!cVZ4ctx7C?q1(ZI+^!uqXdSbX4S3CT~4M7?qU@
z4MDMS^DL~}66W<39vih|ZS^1Ag}y27Gm-p|Rfit(
zNl#B1OD5ty{$Ij54^c3><%zr&y_5;~NnV10
z4Zw}=4GbrA_$zjA`{|Z$7gkp5$8^q>0zrZ2E$4<1ezB(>!5c^GMWFE$C;4@6V*|7d
zNaGUt;<$99{HQ!$`r2S_h=+%AdHYY&A+qE(&8zgJ(~sOOBW=E@{j%3QC%r0V1x;6J0+$^K4H}@D0esAyjD*ISZAnI4V
zn19`g--zs@P452`isOsO6>Zac`B8z(r{|tqF?BN~w0w-29DIj=>MeOT-{i}@D;ELm
zkqzZS5C5cznOT>9f^lpg&VWYFr8r@s57*_~mn48mr6LCbUi1BEC
z%^suS1WlnfQx&I~8g?)TZ>1mx(qTl!p#l*cp}2HnnkpgJq<4YuC@`a2{3A%3G{AT5
ztN>}}Pk(3|*R(R?!OtU}{h50C^EwHYh5pi#CmW7$|Jng$2qa+&E9KQH+F63iL>zfF
z(0h?wmQW~EUOD1uTmjSK7|TOD5XI5TN?M*Ia&&5k;wdp{`GRGE-%t1L?`Z?B@G%`c
zEWbR>o-orY|7M1#jz6p*kv5NeQ{pSw@{)Vbf-vyVtj0(j4Ucz<>n6G}$Z_2*@;T0Z|myYIw)qEBZNARAl4bZ~+
zVo_#bDbV}tq5Bene#hJ=0B=1nb23+`IUQ*pjM&m1h-`4iL-}^8_B;fvgFYRj?_eoy
z|EK9Eet|M}c2|rS(I0{N$hVMx^H`al<3Z-9;pJCmi)Vc+N49&*K>NX?9Z|wnBKA#g
znoC!?a!^wJMh4#WYw@={kv#{ry8Vb;e;^?B((^XqXG3_$%BrSUn=^
zuiMDYKW1}lL{U-?zJcx~gq0C_s66Q%8ki&C;TQ7kC@ix#o*qMDF}}PUyl2tBcU7I%
z5njKeUPr16&ve6Md8BY~Oc;_@)m`yjQDTN6_{F?LI_Ec09^xPU;vj2@+y1OW-wiS8
z!ze~)r9Qr}ssahG(66Nkqj@q*xf=l_@d`>F%ALRv8ho@G-?m~{jqZy^mEn;15T|9e
zZvtxKbRg={*SD#`uv*qnY*)eU#y`oEtO6Q}Rn19@Uq>e*Z){+y8J=
z9LUd)a>g;_cKH9=pVAlo4*V$WTY)N+nK)H;kxR-x1KkeqwN3^v)3s(e^Yav4!xKlf<`lSZ?GGtzk*m$
z_|1Lz7y@!=J#I884XII8t{;*haP9f#PP9!f!nOBDv4f!h+K*zbtrx!4Dk{fItrenBWb&Y
z<)9#W#NC78C8HHra)NQRXG$&K4dO?bUwT{yC0})^=EYZMFd;N5bD67zMQ!%Vn*)f=
zK(V#FL&mrrty1<5PLBRO`RWEhMo?y7{OVBe=G6lh4rWZ-derUlU9X_%>$#V+kvG$A
z1s&d-y%_^r4M+Jhy^&Qaqm;-mHozCLZ#g^?SlL@I!d+Nh6J7+&zx{KS4Qtk+w}AkpnA@?vL7dgnHfgKf*<2R4e>?
z3xn-q16V#C?m~DM<{;60I#{-k=<~dwJfNlAdEL@pWXU>@JX(%zMqXrh+ny*_XTkQ7
zc^}Gh77A%Idk`moeY{D~f>XSWKn~5Q0sb|lYLsQ_pJ0U<{5d#q6B?9RgdMd)>62?Q
z=%mW6>0ZPtU_n|)erF
zb6`h49wIPd;#^>=z5!Z#lVsP?`T)~h4;gKiN$$eJJWpCC7sXw1TRo@@Z~fe&^01Eb
ziR3>S$)(=?4#*y4$owf+DiB{#bvZVJ3(BO2mPGHhZkG=bik&e450^^g-vY~CW@H41
zZk0q{I>Ww`Oq!+m5ZdSw`N*Q5bz3r5(Jx
zB5z{0^sERK);Xn^Mi4sKQ#lBu6|(@ut3uXa_JmR%x<#>Jx|aCbNgP52VC_kiz4ASx
z8PLFGF(Ei0xT&u&c#)&ZB@MCg3HM}@LKQ$@u6c;(eq6*^L+I9SBhEj=G_e^-I+RH%
zk95S)_sv$5$;c-b9RmS^VsFkNyEv+D#0w5+7WD$2aRJ$}W2p`$p8UP#(wq(>X~EQb
z(`PWX%zz_c`L=A_$TyzXm`owj`CBN%DH86aV`HN{r(iklX=QUQWqg73&dH}w2T_7m
z2>9!EY3ijv>yVn&51)C-qAwO&-VR87N5rpJ)}BWn%X}mcmJ-5XJ2kjNt*(
zrVji%qj}v)2YK-4D5HnLr^8!ds73iv8gJ1zo&TR3Tkw7v*}3^Y=6gXXJmKKy$;U{nR-7g2>O;&scQ
zgoe-_Vf1MkTN2ixZOa;l6VoY0OG{7f6H~PETP6fI--p0-jn@KrjYj53&vz+mNgy4$
z^b5w4DUWqiG^gCTRTVaKG?&>(fep3fI(~^zpV4o
zyR(Lz9S^^p@vhNC5(Lrwk25d?>6)MBxeH`7!n8D}rA}Z{W|tqqB#w>MWaUZIzxZhq
z&nIDq`$)?$ae>N9BFlp~_`5{mEG*Yj1aru*@#J3|0kj2s(G@3$5TvOcu#5x^NAqKV
zo-^Qwq_V7p=@OQ_DJ!+~Q=M+npCK`L!Goh-zm{2pg~DycQO+pd(NPu>u&z>fDk9vk
z(s^vQ(e5&Ymnh1wWq$BD1Ei;iJV>^9*Djbh{mhGHx^B?{5MWpj^5cHr7*+@pX!i1|
zc+NVM374`;c0_mYL*=645UjrobYgo@A|+4aDHoQRpnvL_zvKtErZb)3n7EO6rC6&6EYexuL{B>Y@tCpR9PKm79Aw0NEkd3+gezcgF$#I}`GyRw
zbO`wSIZsKCJm?V0qq)mF1x#3$i)`3{h3|5MQ^7TsvH~5^BGp1R&{ojjdXCC*`bRwR
zi}x{3vn=y3yu>XBW*V6$Y2^gOq5Oh3cxA)e
zm(iqI;ApgP58PS48%;YnA+rxmM_!j`&_XFd37K99c4>?W1lhjmBTf6U{{EGAZ!Gy
z
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