From 7fb26605fab38cc8e13ec980550338f1364b822d Mon Sep 17 00:00:00 2001 From: Alex <45095641+runsonmypc@users.noreply.github.com> Date: Sun, 24 May 2026 20:11:04 -0400 Subject: [PATCH 01/27] fix(birdhouse): invoke Rs2Walker in TELEPORTING state, hardcode mushtree transport MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TELEPORTING was a no-op that immediately advanced to DISMANTLE_HOUSE_1 without ever calling Rs2Walker, so the player never left the bank. Now calls Rs2Walker.walkTo(birdhouseLocation1) which routes via digsite pendant to Fossil Island. MUSHROOM_TELEPORT was also a no-op relying on Rs2Walker to route through the mushtree, but the walker kept detouring to the bank instead. Replaced with direct object interaction: Use mushtree → select Mushroom Meadow from the Mycelium Transportation System widget. --- .../microbot/birdhouseruns/FornBirdhouseRunsPlugin.java | 2 +- .../microbot/birdhouseruns/FornBirdhouseRunsScript.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsPlugin.java index 3be4a82047..795fc3e042 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsPlugin.java @@ -26,7 +26,7 @@ ) @Slf4j public class FornBirdhouseRunsPlugin extends Plugin { - final static String version = "1.1.3"; + final static String version = "1.1.4"; @Provides FornBirdhouseRunsConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(FornBirdhouseRunsConfig.class); diff --git a/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsScript.java b/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsScript.java index f4986560ca..9b82c54715 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/birdhouseruns/FornBirdhouseRunsScript.java @@ -22,6 +22,7 @@ import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; import net.runelite.client.plugins.microbot.shortestpath.Restriction; import net.runelite.client.plugins.microbot.shortestpath.ShortestPathPlugin; +import net.runelite.client.plugins.microbot.util.widget.Rs2Widget; import net.runelite.client.plugins.microbot.util.inventory.Rs2ItemModel; @@ -42,6 +43,8 @@ public class FornBirdhouseRunsScript extends Script { private static final WorldPoint birdhouseLocation3 = new WorldPoint(3677, 3882, 0); private static final WorldPoint birdhouseLocation4 = new WorldPoint(3679, 3815, 0); private static final WorldPoint SOUTH_ROWBOAT = new WorldPoint(3724, 3807, 0); + private static final WorldPoint VERDANT_MUSHTREE = new WorldPoint(3757, 3757, 0); + private static final int MUSHTREE_OBJECT_ID = 30924; // Each location maps to a BIRDHOUSE_TRANSMIT_* varp. See isEmpty/isBuilt/isSeeded // below for the canonical state decoding (matches RuneLite's BirdHouseState). private static final int VARP_HOUSE_1 = VarPlayerID.BIRDHOUSE_TRANSMIT_D; // Verdant SW @@ -176,6 +179,7 @@ public boolean run() { switch (botStatus) { case TELEPORTING: case VERDANT_TELEPORT: + Rs2Walker.walkTo(birdhouseLocation1); botStatus = states.DISMANTLE_HOUSE_1; advanced = true; break; @@ -216,6 +220,10 @@ public boolean run() { } break; case MUSHROOM_TELEPORT: + Rs2GameObject.interact(MUSHTREE_OBJECT_ID, "Use"); + sleepUntil(() -> Rs2Widget.findWidget("Mycelium Transportation System") != null, 5000); + Rs2Widget.clickWidget("Mushroom Meadow"); + sleepUntil(() -> Rs2Player.distanceTo(birdhouseLocation3) < 20, 10000); botStatus = states.DISMANTLE_HOUSE_3; advanced = true; break; From e7fc93228b77f65e08dcdd5a44bc10ac11f75c52 Mon Sep 17 00:00:00 2001 From: runsonmypc Date: Tue, 9 Jun 2026 11:44:21 -0400 Subject: [PATCH 02/27] feat(AutoLooter): add Priority Mode to interrupt other plugins for loot pickup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When running alongside another plugin (e.g. alching while farming seaweed), the looter's pickup clicks get overridden. Priority Mode holds pauseAllScripts for the full detect→click→walk→pickup cycle, same pattern as GiantSeaweedSporeScript and AIO Fighter's force-loot. --- .../microbot/looter/AutoLooterConfig.java | 11 ++ .../microbot/looter/AutoLooterPlugin.java | 6 +- .../looter/scripts/DefaultScript.java | 108 ++++++++++++------ 3 files changed, 87 insertions(+), 38 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterConfig.java b/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterConfig.java index dcef70b44e..b95c0dc78c 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterConfig.java +++ b/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterConfig.java @@ -83,6 +83,17 @@ default boolean useNextWorld() { return false; } + @ConfigItem( + keyName = "priorityMode", + name = "Priority Mode", + description = "Pauses other plugins during loot pickup. Use when running alongside another plugin (e.g. alching).", + position = 4, + section = generalSection + ) + default boolean priorityMode() { + return false; + } + @ConfigItem( name = "Loot Style", keyName = "lootStyle", diff --git a/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterPlugin.java index 29dc4412da..58b4089697 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/looter/AutoLooterPlugin.java @@ -25,7 +25,7 @@ isExternal = PluginConstants.IS_EXTERNAL ) public class AutoLooterPlugin extends Plugin { - public static final String version = "1.1.3"; + public static final String version = "1.2.0"; @Inject DefaultScript defaultScript; @Inject @@ -52,7 +52,9 @@ protected void startUp() throws AWTException { switch (config.looterActivity()) { case DEFAULT: defaultScript.run(config); - defaultScript.handleWalk(config); + if (!config.priorityMode()) { + defaultScript.handleWalk(config); + } break; case FLAX: flaxScript.run(config); diff --git a/src/main/java/net/runelite/client/plugins/microbot/looter/scripts/DefaultScript.java b/src/main/java/net/runelite/client/plugins/microbot/looter/scripts/DefaultScript.java index 79bd84eb48..48a217e8df 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/looter/scripts/DefaultScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/looter/scripts/DefaultScript.java @@ -42,6 +42,11 @@ public boolean run(AutoLooterConfig config) { if (!Microbot.isLoggedIn() || Rs2Combat.inCombat()) return; if (Rs2AntibanSettings.actionCooldownActive) return; + if (config.priorityMode()) { + handlePriorityLoot(config); + return; + } + long startTime = System.currentTimeMillis(); if (initialPlayerLocation == null) { @@ -55,48 +60,14 @@ public boolean run(AutoLooterConfig config) { if (isAwayFromBase(config)) return; if (config.worldHop()) { - if (config.looterStyle() == DefaultLooterStyle.ITEM_LIST) { - lootExists = Arrays.stream(config.listOfItemsToLoot().trim().split(",")) - .anyMatch(itemName -> Rs2GroundItem.exists(itemName, config.distanceToStray())); - } else if (config.looterStyle() == DefaultLooterStyle.GE_PRICE_RANGE) { - lootExists = Rs2GroundItem.isItemBasedOnValueOnGround(config.minPriceOfItem(), config.distanceToStray()); - } else if (config.looterStyle() == DefaultLooterStyle.MIXED) { - lootExists = Arrays.stream(config.listOfItemsToLoot().trim().split(",")) - .anyMatch(itemName -> Rs2GroundItem.exists(itemName, config.distanceToStray())) - || Rs2GroundItem.isItemBasedOnValueOnGround(config.minPriceOfItem(), config.distanceToStray()); - } + lootExists = hasMatchingLoot(config); } else { lootExists = true; } if (lootExists) { failedLootAttempts = 0; - - if (config.looterStyle() == DefaultLooterStyle.ITEM_LIST || config.looterStyle() == DefaultLooterStyle.MIXED) { - LootingParameters itemLootParams = new LootingParameters( - config.distanceToStray(), - 1, - 1, - config.minFreeSlots(), - config.toggleDelayedLooting(), - config.toggleLootMyItemsOnly(), - config.listOfItemsToLoot().split(",") - ); - Rs2GroundItem.lootItemsBasedOnNames(itemLootParams); - } - - if (config.looterStyle() == DefaultLooterStyle.GE_PRICE_RANGE || config.looterStyle() == DefaultLooterStyle.MIXED) { - LootingParameters valueParams = new LootingParameters( - config.minPriceOfItem(), - config.maxPriceOfItem(), - config.distanceToStray(), - 1, - config.minFreeSlots(), - config.toggleDelayedLooting(), - config.toggleLootMyItemsOnly() - ); - Rs2GroundItem.lootItemBasedOnValue(valueParams); - } + lootItems(config); Microbot.pauseAllScripts.set(false); Rs2Antiban.actionCooldown(); @@ -156,6 +127,7 @@ public boolean run(AutoLooterConfig config) { @Override public void shutdown() { + Microbot.pauseAllScripts.set(false); super.shutdown(); Rs2Antiban.resetAntibanSettings(); } @@ -193,6 +165,70 @@ public boolean handleWalk(AutoLooterConfig config) { return true; } + private void handlePriorityLoot(AutoLooterConfig config) { + if (!hasMatchingLoot(config)) return; + if (Rs2Inventory.emptySlotCount() <= config.minFreeSlots()) return; + + Microbot.pauseAllScripts.set(true); + try { + while (hasMatchingLoot(config) + && Rs2Inventory.emptySlotCount() > config.minFreeSlots() + && this.isRunning()) { + lootItems(config); + } + } finally { + Microbot.pauseAllScripts.set(false); + } + + Rs2Antiban.actionCooldown(); + Rs2Antiban.takeMicroBreakByChance(); + } + + private boolean hasMatchingLoot(AutoLooterConfig config) { + int distance = config.distanceToStray(); + switch (config.looterStyle()) { + case ITEM_LIST: + return Arrays.stream(config.listOfItemsToLoot().trim().split(",")) + .anyMatch(name -> Rs2GroundItem.exists(name.trim(), distance)); + case GE_PRICE_RANGE: + return Rs2GroundItem.isItemBasedOnValueOnGround(config.minPriceOfItem(), distance); + case MIXED: + return Arrays.stream(config.listOfItemsToLoot().trim().split(",")) + .anyMatch(name -> Rs2GroundItem.exists(name.trim(), distance)) + || Rs2GroundItem.isItemBasedOnValueOnGround(config.minPriceOfItem(), distance); + default: + return false; + } + } + + private void lootItems(AutoLooterConfig config) { + if (config.looterStyle() == DefaultLooterStyle.ITEM_LIST || config.looterStyle() == DefaultLooterStyle.MIXED) { + LootingParameters itemLootParams = new LootingParameters( + config.distanceToStray(), + 1, + 1, + config.minFreeSlots(), + config.toggleDelayedLooting(), + config.toggleLootMyItemsOnly(), + config.listOfItemsToLoot().split(",") + ); + Rs2GroundItem.lootItemsBasedOnNames(itemLootParams); + } + + if (config.looterStyle() == DefaultLooterStyle.GE_PRICE_RANGE || config.looterStyle() == DefaultLooterStyle.MIXED) { + LootingParameters valueParams = new LootingParameters( + config.minPriceOfItem(), + config.maxPriceOfItem(), + config.distanceToStray(), + 1, + config.minFreeSlots(), + config.toggleDelayedLooting(), + config.toggleLootMyItemsOnly() + ); + Rs2GroundItem.lootItemBasedOnValue(valueParams); + } + } + private boolean isAwayFromBase(AutoLooterConfig config) { return initialPlayerLocation == null || Rs2Player.isMoving() From 91dcae4d7b43073dcb4d3f800c3db274008180b8 Mon Sep 17 00:00:00 2001 From: runsonmypc Date: Tue, 9 Jun 2026 18:31:24 -0400 Subject: [PATCH 03/27] fix(eventdismiss): dismiss lamp award dialogue so blocking event releases After confirming a skill on a lamp, the XP-award "Click here to continue" dialogue was left open, so the lamp was never consumed. UseLampEvent then kept re-queuing and the BlockingEventManager pause gate never released, freezing other plugins. Dismiss the continue dialogue (bounded waits) before checking consumption so the event clears and scripts resume cleanly. Also rename the plugin display name and overlay title to "Random Event Handler" (config group key left unchanged to preserve user settings) and bump version to 2.1.1. --- .../microbot/eventdismiss/EventDismissOverlay.java | 2 +- .../microbot/eventdismiss/EventDismissPlugin.java | 4 ++-- .../plugins/microbot/eventdismiss/LampUtility.java | 10 ++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissOverlay.java b/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissOverlay.java index d0f7e4c067..384956de17 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissOverlay.java +++ b/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissOverlay.java @@ -37,7 +37,7 @@ public Dimension render(Graphics2D graphics) { panelComponent.setPreferredSize(new Dimension(200, 0)); panelComponent.getChildren().add(TitleComponent.builder() - .text("Event Dismiss") + .text("Random Event Handler") .color(Color.CYAN) .build()); diff --git a/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissPlugin.java index 3f5547c93c..d69c72d140 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/EventDismissPlugin.java @@ -13,7 +13,7 @@ import java.awt.*; @PluginDescriptor( - name = PluginDescriptor.Default + "Event Dismiss", + name = PluginDescriptor.Default + "Random Event Handler", description = "Dismisses random events and optionally accepts lamps from Genie/Count Check", tags = {"random", "events", "microbot", "lamp", "genie"}, authors = {"Unknown"}, @@ -26,7 +26,7 @@ ) @Slf4j public class EventDismissPlugin extends Plugin { - public static final String version = "2.1.0"; + public static final String version = "2.1.1"; @Inject private EventDismissConfig config; diff --git a/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/LampUtility.java b/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/LampUtility.java index ce655080b8..9aafaaa268 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/LampUtility.java +++ b/src/main/java/net/runelite/client/plugins/microbot/eventdismiss/LampUtility.java @@ -5,6 +5,7 @@ import net.runelite.api.ItemID; import net.runelite.api.Skill; import net.runelite.client.plugins.microbot.util.Global; +import net.runelite.client.plugins.microbot.util.dialogues.Rs2Dialogue; import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; import net.runelite.client.plugins.microbot.util.widget.Rs2Widget; @@ -83,6 +84,15 @@ public static boolean useLamp(Skill skill) { Rs2Widget.clickWidget(LAMP_WIDGET_GROUP, LAMP_CONFIRM_BUTTON); + // Confirming the skill produces an XP-award "Click here to continue" dialogue. + // Dismiss it so the lamp is actually consumed and the leftover dialogue does not + // block other plugins once this blocking event releases the script-pause gate. + Global.sleepUntil(() -> Rs2Dialogue.hasContinue() || !Rs2Inventory.contains(ItemID.LAMP), 2000); + for (int i = 0; i < 5 && Rs2Dialogue.hasContinue(); i++) { + Rs2Dialogue.clickContinue(); + Global.sleep(600, 1200); + } + if (!Global.sleepUntil(() -> !Rs2Inventory.contains(ItemID.LAMP), 3000)) { log.warn("Lamp was not consumed after confirm"); return false; From 3cb38b2622a3c8555712633dd82c800366bbbe74 Mon Sep 17 00:00:00 2001 From: runsonmypc Date: Tue, 9 Jun 2026 18:40:19 -0400 Subject: [PATCH 04/27] fix(motherloadmine): keep mining loop alive after a thrown tick executeTask runs via scheduleWithFixedDelay, whose JDK contract silently cancels all future executions once any run throws. A blocking event (e.g. EventDismiss using a stray lamp) running concurrently with the deposit/ empty workflow could leave game state that made a later tick throw, permanently freezing the plugin on its last status (IDLE) with no log and no recovery, even across plugin restarts. Wrap the loop body in try/catch (mirroring AutoMiningScript) and log the stack trace, so a transient failure recovers on the next 600ms tick instead of killing the script. Bump 1.9.5 -> 1.9.6. --- .../motherloadmine/MotherloadMinePlugin.java | 2 +- .../motherloadmine/MotherloadMineScript.java | 70 +++++++++++-------- 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java index da326260b1..acadbec918 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java @@ -29,7 +29,7 @@ ) public class MotherloadMinePlugin extends Plugin { - static final String version = "1.9.5"; + static final String version = "1.9.6"; @Inject private MotherloadMineConfig config; diff --git a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java index c4584ae674..08d218e9b0 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java @@ -127,40 +127,50 @@ private void initialize() private void executeTask() { - if (!super.run() || !Microbot.isLoggedIn()) + // Guard the whole loop body: an unhandled exception on a single tick would otherwise + // silently cancel the scheduleWithFixedDelay task (JDK semantics), freezing the plugin + // on its last status with no log. Catching here lets the next 600ms tick recover state. + try { - resetMiningState(true); - return; - } + if (!super.run() || !Microbot.isLoggedIn()) + { + resetMiningState(true); + return; + } - determineStatusFromInventory(); - logStatusTransitionIfChanged(); + determineStatusFromInventory(); + logStatusTransitionIfChanged(); - switch (status) + switch (status) + { + case IDLE: + break; + case MINING: + Rs2Antiban.setActivityIntensity(Rs2Antiban.getActivity().getActivityIntensity()); + handleMining(); + break; + case EMPTY_SACK: + if (Rs2Player.isAnimating()) return; + Rs2Antiban.setActivityIntensity(ActivityIntensity.EXTREME); + emptySack(); + break; + case FIXING_WATERWHEEL: + if (Rs2Player.isAnimating()) return; + fixWaterwheel(); + break; + case DEPOSIT_HOPPER: + if (Rs2Player.isAnimating()) return; + depositHopper(); + break; + case DROP_GEMS: + if (Rs2Player.isAnimating()) return; + dropGems(); + break; + } + } + catch (Exception ex) { - case IDLE: - break; - case MINING: - Rs2Antiban.setActivityIntensity(Rs2Antiban.getActivity().getActivityIntensity()); - handleMining(); - break; - case EMPTY_SACK: - if (Rs2Player.isAnimating()) return; - Rs2Antiban.setActivityIntensity(ActivityIntensity.EXTREME); - emptySack(); - break; - case FIXING_WATERWHEEL: - if (Rs2Player.isAnimating()) return; - fixWaterwheel(); - break; - case DEPOSIT_HOPPER: - if (Rs2Player.isAnimating()) return; - depositHopper(); - break; - case DROP_GEMS: - if (Rs2Player.isAnimating()) return; - dropGems(); - break; + log.error("MLM executeTask error; recovering on next tick", ex); } } From 1f7e053c0180184a90ae46cd4978d2666aafbd99 Mon Sep 17 00:00:00 2001 From: pjmarz Date: Tue, 9 Jun 2026 18:44:59 -0400 Subject: [PATCH 05/27] fix(cooking): correct botanical pie name typo and uncooked egg item ids Co-Authored-By: Claude Fable 5 --- .../client/plugins/microbot/cooking/AutoCookingPlugin.java | 2 +- .../client/plugins/microbot/cooking/enums/CookingItem.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/cooking/AutoCookingPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/cooking/AutoCookingPlugin.java index 9d700132ad..31568553d8 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/cooking/AutoCookingPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/cooking/AutoCookingPlugin.java @@ -30,7 +30,7 @@ ) @Slf4j public class AutoCookingPlugin extends Plugin { - public final static String version = "1.1.4"; + public final static String version = "1.1.5"; @Inject AutoCookingScript autoCookingScript; @Inject diff --git a/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java b/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java index 340ea01491..ab21e8eb0a 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java +++ b/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java @@ -48,7 +48,7 @@ public enum CookingItem UNCOOKED_APPLE_PIE("uncooked apple pie", ItemID.UNCOOKED_APPLE_PIE, 30, "apple pie", ItemID.APPLE_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), RAW_GARDEN_PIE("raw garden pie", ItemID.UNCOOKED_GARDEN_PIE, 34, "garden pie", ItemID.GARDEN_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), RAW_FISH_PIE("raw fish pie", ItemID.UNCOOKED_FISH_PIE, 47, "fish pie", ItemID.FISH_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), - UNCOOKED_BOTANICAL_PIE("uncooked batanical pie", ItemID.UNCOOKED_BOTANICAL_PIE, 52, "botanical pie", ItemID.BOTANICAL_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), + UNCOOKED_BOTANICAL_PIE("uncooked botanical pie", ItemID.UNCOOKED_BOTANICAL_PIE, 52, "botanical pie", ItemID.BOTANICAL_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), UNCOOKED_MUSHROOM_PIE("uncooked mushroom pie", ItemID.UNCOOKED_MUSHROOM_PIE, 60, "mushroom pie", ItemID.MUSHROOM_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), RAW_ADMIRAL_PIE("raw admiral pie", ItemID.UNCOOKED_ADMIRAL_PIE, 70, "admiral pie", ItemID.ADMIRAL_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), UNCOOKED_DRAGONFRUIT_PIE("uncooked dragonfruit pie", ItemID.UNCOOKED_DRAGONFRUIT_PIE, 73, "dragonfruit pie", ItemID.DRAGONFRUIT_PIE, "burnt pie", ItemID.BURNT_PIE, CookingAreaType.RANGE), @@ -63,7 +63,7 @@ public enum CookingItem UNCOOKED_CAKE("uncooked cake", ItemID.UNCOOKED_CAKE, 40, "cake", ItemID.CAKE, "burnt cake", ItemID.BURNT_CAKE, CookingAreaType.RANGE), // Vegetable POTATO("potato", ItemID.POTATO, 7, "baked potato", ItemID.POTATO_BAKED, "burnt potato", ItemID.POTATO_BURNT, CookingAreaType.RANGE), - UNCOOKED_EGG("uncooked egg", ItemID.SCRAMBLED_EGG, 13, "scrambled egg", ItemID.SCRAMBLED_EGG, "burnt egg", ItemID.BOWL_EGG_BURNT, CookingAreaType.BOTH), + UNCOOKED_EGG("uncooked egg", ItemID.BOWL_EGG_RAW, 13, "scrambled egg", ItemID.BOWL_EGG_SCRAMBLED, "burnt egg", ItemID.BOWL_EGG_BURNT, CookingAreaType.RANGE), SWEETCORN("sweetcorn", ItemID.SWEETCORN, 28, "cooked sweetcorn", ItemID.SWEETCORN_COOKED, "burnt sweetcorn", ItemID.SWEETCORN_BURNT, CookingAreaType.BOTH), ; From ac17654596afaebdd91314f3c6fd1c6d2f61b4fd Mon Sep 17 00:00:00 2001 From: pjmarz Date: Tue, 9 Jun 2026 18:46:12 -0400 Subject: [PATCH 06/27] feat(attackrangesplus): add Attack Ranges Plus plugin (v0.2.3) Co-Authored-By: Claude Fable 5 --- .../AttackRangesPlusCalc.java | 94 +++++ .../AttackRangesPlusConfig.java | 110 ++++++ .../AttackRangesPlusOverlay.java | 344 ++++++++++++++++++ .../AttackRangesPlusPlugin.java | 53 +++ .../attackrangesplus/DisplayMode.java | 31 ++ .../microbot/attackrangesplus/RangeMode.java | 34 ++ .../microbot/attackrangesplus/docs/README.md | 64 ++++ .../attackrangesplus/docs/assets/card.png | Bin 0 -> 142877 bytes .../attackrangesplus/docs/assets/icon.png | Bin 0 -> 40859 bytes 9 files changed, 730 insertions(+) create mode 100644 src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusConfig.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusPlugin.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/DisplayMode.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/RangeMode.java create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/README.md create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/assets/card.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/assets/icon.png diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java new file mode 100644 index 0000000000..3898b2382c --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java @@ -0,0 +1,94 @@ +package net.runelite.client.plugins.microbot.attackrangesplus; + +import net.runelite.client.plugins.microbot.util.combat.Rs2Combat; +import net.runelite.client.plugins.microbot.util.combat.weapons.Melee; +import net.runelite.client.plugins.microbot.util.combat.weapons.Weapon; +import net.runelite.client.plugins.microbot.util.combat.weapons.WeaponsGenerator; + +import javax.inject.Inject; +import java.util.Map; + +/** + * Resolves the attack radius (in tiles) for the overlay. + * + *

Player: AUTO delegates to {@link Rs2Combat#getAttackRange()}, the maintained Microbot + * helper that reads the equipped weapon and the selected attack style and returns the real range: + * accurate per weapon, long-range aware, the spell range while autocasting, halberds = 2, and 1 for + * melee/unknown. The manual modes are fixed representative ranges for previewing a style you are not + * currently using.

+ * + *

Opponent: another player's attack-style varbits are not readable, so their range is + * looked up from their equipped weapon id against the same weapon data Microbot uses + * ({@link WeaponsGenerator#generate()}). That gives the weapon's base reach (no style modifier); + * melee weapons resolve to 1 since their stored range is the special-attack range.

+ */ +public class AttackRangesPlusCalc +{ + @Inject + private AttackRangesPlusConfig config; + + private static final int MELEE_RADIUS = 1; + private static final int RANGED_PREVIEW_RADIUS = 7; + private static final int MAGIC_RADIUS = 10; + + // Built once from the same data Rs2Combat uses; reused for opponent weapon lookups. + private static Map weaponsMap; + + private static Map weapons() + { + if (weaponsMap == null) + { + weaponsMap = WeaponsGenerator.generate(); + } + return weaponsMap; + } + + /** + * @return the local player's attack radius in tiles (>= 0). Never throws. + */ + public int getPlayerRangeRadius() + { + switch (config.style()) + { + case MELEE: + return MELEE_RADIUS; + case RANGED: + return RANGED_PREVIEW_RADIUS; + case MAGIC: + return MAGIC_RADIUS; + case AUTO: + default: + try + { + return Math.max(Rs2Combat.getAttackRange(), 0); + } + catch (Exception e) + { + return MELEE_RADIUS; + } + } + } + + /** + * Threat radius for another player's equipped weapon. Their attack style is not knowable, so + * this is the weapon's base reach. + * + * @param weaponId the opponent's equipped weapon item id + * @return the radius in tiles (>= 1) + */ + public int getWeaponRadius(int weaponId) + { + final Weapon w = weapons().get(weaponId); + if (w == null) + { + return MELEE_RADIUS; // unknown weapon -> assume melee reach + } + if (w instanceof Melee) + { + return MELEE_RADIUS; // Melee.range stores the special-attack range, not normal reach + } + // "Accurate" yields the weapon's base (non-long-range) reach across all Weapon subtypes: + // Halberd=2, ranged base, magic/powered-staff spell range. + return Math.max(w.getRange("Accurate"), MELEE_RADIUS); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusConfig.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusConfig.java new file mode 100644 index 0000000000..18ff37c6f1 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusConfig.java @@ -0,0 +1,110 @@ +package net.runelite.client.plugins.microbot.attackrangesplus; + +import net.runelite.client.config.Alpha; +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigInformation; +import net.runelite.client.config.ConfigItem; + +import java.awt.Color; + +@ConfigGroup("attackrangesplus") +@ConfigInformation("

Attack Ranges Plus

" + + "

Version: " + AttackRangesPlusPlugin.version + "

" + + "

This overlay draws your attack range on the ground, clipped to line of sight. It runs no script and never moves or banks for you.

" + + "

" + + "

1. Attack style: how the range is sized. Auto reads your weapon and falls back to melee. Pick Melee, Ranged, or Magic to force a size. Use Magic when casting at 10 tiles.

" + + "

" + + "

2. Line color: the color of the range outline.

" + + "

" + + "

3. Fill area: shades the tiles inside your range. The shading is redrawn every frame and can cost FPS at large ranges like magic. Leave it off for the cheapest outline only overlay.

" + + "

" + + "

4. Fill color: the color and opacity of the shaded area. Used only when Fill area is on.

" + + "

" + + "

5. Show overlay: when to draw it. Always shows it everywhere. In PvP areas limits it to the Wilderness, PvP and Deadman worlds, and PvP flagged zones.

" + + "

" + + "

6. Show target's range: also outline the range of the player you are fighting. Their exact style is not knowable, so this is their weapon's base reach.

" + + "

" + + "

7. Target line color: the outline color used for your target's range.

") +public interface AttackRangesPlusConfig extends Config +{ + @ConfigItem( + keyName = "style", + name = "Attack style", + description = "How to size the overlay. Auto detects ranged weapons and falls back to melee. Pick Magic when casting (10 tiles).", + position = 0 + ) + default RangeMode style() + { + return RangeMode.AUTO; + } + + @Alpha + @ConfigItem( + keyName = "borderColor", + name = "Line color", + description = "Color of the attack-range outline.", + position = 1 + ) + default Color borderColor() + { + return Color.WHITE; + } + + @ConfigItem( + keyName = "showFill", + name = "Fill area", + description = "Shade the tiles inside your attack range. Note: the fill is repainted every frame and costs FPS at large ranges (e.g. magic). Leave off for the cheapest outline-only overlay.", + position = 2 + ) + default boolean showFill() + { + return false; + } + + @Alpha + @ConfigItem( + keyName = "fillColor", + name = "Fill color", + description = "Color and opacity of the shaded area (used only when Fill area is on).", + position = 3 + ) + default Color fillColor() + { + return new Color(0, 0, 0, 35); + } + + @ConfigItem( + keyName = "displayMode", + name = "Show overlay", + description = "When to show the overlay. 'In PvP areas' covers the Wilderness, PvP/Deadman worlds, and PvP-flagged zones.", + position = 4 + ) + default DisplayMode displayMode() + { + return DisplayMode.ALWAYS; + } + + @ConfigItem( + keyName = "showOpponent", + name = "Show target's range", + description = "Also outline the attack range of the player you are fighting. Their exact style is not knowable, so this is their weapon's base reach.", + position = 5 + ) + default boolean showOpponent() + { + return false; + } + + @Alpha + @ConfigItem( + keyName = "opponentColor", + name = "Target line color", + description = "Outline color for your target's range.", + position = 6 + ) + default Color opponentColor() + { + return new Color(255, 64, 64); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java new file mode 100644 index 0000000000..6622059c2c --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java @@ -0,0 +1,344 @@ +package net.runelite.client.plugins.microbot.attackrangesplus; + +import net.runelite.api.Actor; +import net.runelite.api.Client; +import net.runelite.api.Perspective; +import net.runelite.api.Player; +import net.runelite.api.Point; +import net.runelite.api.WorldType; +import net.runelite.api.WorldView; +import net.runelite.api.coords.LocalPoint; +import net.runelite.api.coords.WorldArea; +import net.runelite.api.coords.WorldPoint; +import net.runelite.api.gameval.VarbitID; +import net.runelite.api.kit.KitType; +import net.runelite.client.plugins.microbot.util.player.Rs2Pvp; +import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayLayer; +import net.runelite.client.ui.overlay.OverlayPosition; +import net.runelite.client.ui.overlay.OverlayPriority; + +import javax.inject.Inject; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.geom.GeneralPath; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; + +/** + * Draws the tiles you can actually attack: the Chebyshev attack square clipped to the tiles in line + * of sight, outlined along its boundary so it "molds" around walls. Optionally also draws the same + * for the player you are fighting (their weapon's reach), clipped to their line of sight. + * + *

Performance: the line-of-sight set and the projected fill/outline paths are cached per region. + * The LOS set is rebuilt when the region's origin/radius changes or once per game tick (so dynamic + * obstacles that change reachability are picked up); the projected paths are rebuilt on those changes + * or when the camera moves. A static scene therefore paints one fill plus one stroke per region per + * frame instead of doing work per tile every frame.

+ */ +class AttackRangesPlusOverlay extends Overlay +{ + private static final int HALF = Perspective.LOCAL_HALF_TILE_SIZE; + + private final Client client; + private final AttackRangesPlusCalc rangesCalc; + private final AttackRangesPlusConfig config; + + private final Region playerRegion = new Region(); + private final Region opponentRegion = new Region(); + + // Shared camera state; a change invalidates every region's projected paths. + private boolean haveCamera = false; + private int camX, camY, camZ, camPitch, camYaw; + + // Radius derivation (and the line-of-sight set) are refreshed at most once per game tick rather + // than per render frame: the resolved radius depends on an enum/struct varbit chain that does not + // change between ticks, and recomputing the LOS set each tick picks up dynamic obstacles (doors, + // gates, walls) that change reachability while the player stands still. + private int lastTick = -1; + private int cachedPlayerRadius; + private int cachedOpponentWeaponId = Integer.MIN_VALUE; + private int cachedOpponentRadius; + + @Inject + private AttackRangesPlusOverlay(Client client, AttackRangesPlusCalc rangesCalc, AttackRangesPlusConfig config) + { + this.client = client; + this.rangesCalc = rangesCalc; + this.config = config; + setPosition(OverlayPosition.DYNAMIC); + setLayer(OverlayLayer.ABOVE_SCENE); + setPriority(OverlayPriority.MED); + } + + @Override + public Dimension render(Graphics2D graphics) + { + if (!shouldDisplay()) + { + return null; + } + + final Player local = client.getLocalPlayer(); + if (local == null) + { + return null; + } + final WorldView wv = local.getWorldView(); + if (wv == null) + { + return null; + } + + final int ncamX = client.getCameraX(); + final int ncamY = client.getCameraY(); + final int ncamZ = client.getCameraZ(); + final int ncamPitch = client.getCameraPitch(); + final int ncamYaw = client.getCameraYaw(); + final boolean cameraChanged = !haveCamera + || ncamX != camX || ncamY != camY || ncamZ != camZ + || ncamPitch != camPitch || ncamYaw != camYaw; + + final int tick = client.getTickCount(); + final boolean tickChanged = tick != lastTick; + if (tickChanged) + { + cachedPlayerRadius = rangesCalc.getPlayerRangeRadius(); + lastTick = tick; + } + + final boolean havePlayer = playerRegion.update( + local.getWorldArea(), wv, local.getWorldLocation(), cachedPlayerRadius, cameraChanged, tickChanged); + + boolean haveOpponent = false; + if (config.showOpponent()) + { + final Actor target = local.getInteracting(); + if (target instanceof Player && target != local) + { + final Player opp = (Player) target; + final int weaponId = opp.getPlayerComposition() != null + ? opp.getPlayerComposition().getEquipmentId(KitType.WEAPON) + : -1; + if (weaponId != cachedOpponentWeaponId) + { + cachedOpponentRadius = rangesCalc.getWeaponRadius(weaponId); + cachedOpponentWeaponId = weaponId; + } + haveOpponent = opponentRegion.update( + opp.getWorldArea(), wv, opp.getWorldLocation(), cachedOpponentRadius, cameraChanged, tickChanged); + } + else + { + opponentRegion.clear(); + cachedOpponentWeaponId = Integer.MIN_VALUE; + } + } + else + { + opponentRegion.clear(); + cachedOpponentWeaponId = Integer.MIN_VALUE; + } + + camX = ncamX; + camY = ncamY; + camZ = ncamZ; + camPitch = ncamPitch; + camYaw = ncamYaw; + haveCamera = true; + + if (havePlayer) + { + paint(graphics, playerRegion, config.borderColor(), config.fillColor()); + } + if (haveOpponent) + { + paint(graphics, opponentRegion, config.opponentColor(), faint(config.opponentColor())); + } + return null; + } + + private void paint(Graphics2D graphics, Region region, Color border, Color fill) + { + if (config.showFill() && region.fill != null) + { + // The fill needs no edge antialiasing (the outline covers its border); turning AA off + // here makes the per-frame area fill a bit cheaper. + final Object aa = graphics.getRenderingHint(RenderingHints.KEY_ANTIALIASING); + graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); + graphics.setColor(fill); + graphics.fill(region.fill); + graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + aa != null ? aa : RenderingHints.VALUE_ANTIALIAS_DEFAULT); + } + if (region.outline != null) + { + graphics.setColor(border); + graphics.draw(region.outline); + } + } + + private static Color faint(Color c) + { + return new Color(c.getRed(), c.getGreen(), c.getBlue(), 40); + } + + private boolean shouldDisplay() + { + switch (config.displayMode()) + { + case WILDERNESS_ONLY: + return Rs2Pvp.isInWilderness(); + case IN_PVP_AREAS: + return inPvpSituation(); + case ALWAYS: + default: + return true; + } + } + + private boolean inPvpSituation() + { + if (Rs2Pvp.isInWilderness()) + { + return true; + } + final EnumSet worldTypes = client.getWorldType(); + if (worldTypes != null && (worldTypes.contains(WorldType.PVP) || worldTypes.contains(WorldType.DEADMAN))) + { + return true; + } + return client.getVarbitValue(VarbitID.PVP_AREA_CLIENT) == 1; + } + + private Set computeAttackable(WorldArea area, WorldView wv, WorldPoint origin, int radius) + { + final int plane = origin.getPlane(); + final Set tiles = new HashSet<>(); + for (int dx = -radius; dx <= radius; dx++) + { + for (int dy = -radius; dy <= radius; dy++) + { + WorldPoint tile = new WorldPoint(origin.getX() + dx, origin.getY() + dy, plane); + if (area.hasLineOfSightTo(wv, tile)) + { + tiles.add(tile); + } + } + } + return tiles; + } + + private Point project(int localX, int localY, WorldView wv, int plane) + { + return Perspective.localToCanvas(client, new LocalPoint(localX, localY, wv), plane); + } + + private static void segment(GeneralPath path, Point a, Point b) + { + path.moveTo(a.getX(), a.getY()); + path.lineTo(b.getX(), b.getY()); + } + + /** + * One attackable area (the player's, or the opponent's) with its own caches. + */ + private final class Region + { + private WorldPoint origin; + private int radius = -1; + private Set set = new HashSet<>(); + private GeneralPath fill; + private GeneralPath outline; + + boolean update(WorldArea area, WorldView wv, WorldPoint o, int r, boolean cameraChanged, boolean tickChanged) + { + if (area == null || o == null || r <= 0) + { + clear(); + return false; + } + + // A new tick forces an LOS recompute even when the origin and radius are unchanged, so a + // door/gate/wall toggling reachability under a stationary player is picked up. + final boolean setChanged = !o.equals(origin) || r != radius || tickChanged; + if (setChanged) + { + set = computeAttackable(area, wv, o, r); + origin = o; + radius = r; + } + if (setChanged || cameraChanged || fill == null) + { + buildPaths(wv, o.getPlane()); + } + return outline != null; + } + + void clear() + { + origin = null; + radius = -1; + fill = null; + outline = null; + if (!set.isEmpty()) + { + set = new HashSet<>(); + } + } + + private void buildPaths(WorldView wv, int plane) + { + final GeneralPath f = new GeneralPath(GeneralPath.WIND_NON_ZERO); + final GeneralPath o = new GeneralPath(); + + for (WorldPoint tile : set) + { + final LocalPoint lp = LocalPoint.fromWorld(client, tile); + if (lp == null) + { + continue; // off-scene + } + final int cx = lp.getX(); + final int cy = lp.getY(); + + final Point sw = project(cx - HALF, cy - HALF, wv, plane); + final Point se = project(cx + HALF, cy - HALF, wv, plane); + final Point ne = project(cx + HALF, cy + HALF, wv, plane); + final Point nw = project(cx - HALF, cy + HALF, wv, plane); + + if (sw != null && se != null && ne != null && nw != null) + { + f.moveTo(sw.getX(), sw.getY()); + f.lineTo(se.getX(), se.getY()); + f.lineTo(ne.getX(), ne.getY()); + f.lineTo(nw.getX(), nw.getY()); + f.closePath(); + } + + if (!set.contains(tile.dy(1)) && nw != null && ne != null) // north + { + segment(o, nw, ne); + } + if (!set.contains(tile.dy(-1)) && sw != null && se != null) // south + { + segment(o, sw, se); + } + if (!set.contains(tile.dx(1)) && se != null && ne != null) // east + { + segment(o, se, ne); + } + if (!set.contains(tile.dx(-1)) && sw != null && nw != null) // west + { + segment(o, sw, nw); + } + } + + fill = f; + outline = o; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusPlugin.java new file mode 100644 index 0000000000..5426303b77 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusPlugin.java @@ -0,0 +1,53 @@ +package net.runelite.client.plugins.microbot.attackrangesplus; + +import com.google.inject.Provides; +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.microbot.PluginConstants; +import net.runelite.client.ui.overlay.OverlayManager; + +import javax.inject.Inject; + +@Slf4j +@PluginDescriptor( + name = "[P] " + "Attack Ranges Plus", + description = "Draws your attack range (and optionally your target's), auto-detected from your weapon and clipped to line of sight.", + tags = {"range", "pvp", "combat", "overlay"}, + authors = {"pjmarz"}, + version = AttackRangesPlusPlugin.version, + minClientVersion = "2.0.13", + cardUrl = "https://chsami.github.io/Microbot-Hub/AttackRangesPlusPlugin/assets/card.png", + iconUrl = "https://chsami.github.io/Microbot-Hub/AttackRangesPlusPlugin/assets/icon.png", + enabledByDefault = PluginConstants.DEFAULT_ENABLED, + isExternal = PluginConstants.IS_EXTERNAL +) +public class AttackRangesPlusPlugin extends Plugin +{ + public static final String version = "0.2.3"; + + @Inject + private OverlayManager overlayManager; + + @Inject + private AttackRangesPlusOverlay overlay; + + @Provides + AttackRangesPlusConfig provideConfig(ConfigManager configManager) + { + return configManager.getConfig(AttackRangesPlusConfig.class); + } + + @Override + protected void startUp() + { + overlayManager.add(overlay); + } + + @Override + protected void shutDown() + { + overlayManager.remove(overlay); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/DisplayMode.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/DisplayMode.java new file mode 100644 index 0000000000..baa214acb8 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/DisplayMode.java @@ -0,0 +1,31 @@ +package net.runelite.client.plugins.microbot.attackrangesplus; + +/** + * When the overlay is shown. + * + *
    + *
  • {@link #ALWAYS} - always.
  • + *
  • {@link #IN_PVP_AREAS} - only where players can fight: the Wilderness, PvP/Deadman worlds, + * and PvP-flagged areas.
  • + *
  • {@link #WILDERNESS_ONLY} - only in the Wilderness.
  • + *
+ */ +public enum DisplayMode +{ + ALWAYS("Always"), + IN_PVP_AREAS("In PvP areas"), + WILDERNESS_ONLY("Wilderness only"); + + private final String label; + + DisplayMode(String label) + { + this.label = label; + } + + @Override + public String toString() + { + return label; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/RangeMode.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/RangeMode.java new file mode 100644 index 0000000000..9eb8f7e9d3 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/RangeMode.java @@ -0,0 +1,34 @@ +package net.runelite.client.plugins.microbot.attackrangesplus; + +/** + * How the overlay decides your attack radius. + * + *
    + *
  • {@link #AUTO} - read your equipped weapon and selected attack style (via the maintained + * Rs2Combat helper) and use the real range: ranged with long-range, the spell range while + * autocasting, halberds 2, melee 1. This is the recommended setting.
  • + *
  • {@link #MELEE} - fixed 1 tile.
  • + *
  • {@link #RANGED} - fixed 7 tiles (a representative preview; AUTO gives the exact value).
  • + *
  • {@link #MAGIC} - fixed 10 tiles (use this if you click-cast without an autocast set).
  • + *
+ */ +public enum RangeMode +{ + AUTO("Auto (detect)"), + MELEE("Melee (1)"), + RANGED("Ranged (7)"), + MAGIC("Magic (10)"); + + private final String label; + + RangeMode(String label) + { + this.label = label; + } + + @Override + public String toString() + { + return label; + } +} diff --git a/src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/README.md new file mode 100644 index 0000000000..631736cf5a --- /dev/null +++ b/src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/README.md @@ -0,0 +1,64 @@ +# Attack Ranges Plus + +![preview](assets/card.png) + +Attack Ranges Plus draws a live ground outline showing every tile you can actually reach with your current weapon and attack style, clipped to line of sight so the shape molds around walls and obstacles. It is part of the Microbot "Plus" suite of overlay and utility plugins. + +--- + +## Feature Overview + +| Feature | Description | +|---------|-------------| +| **Attack style - Auto (detect)** | Reads your equipped weapon and selected attack style to show your exact reach - long-range, autocast spell range, halberds at 2 tiles, melee at 1. Recommended. | +| **Attack style - Melee / Ranged / Magic** | Fixed overrides: Melee forces 1 tile, Ranged forces 7 tiles (representative preview), Magic forces 10 tiles (use this when you click-cast without autocast set). | +| **Line color** | Color of the attack-range outline drawn on the ground. | +| **Fill area** | Shades the tiles inside your attack range. Off by default - the fill is repainted every frame and costs FPS at large ranges such as magic. The outline alone is cheap. | +| **Fill color** | Color and opacity of the shaded area (used only when Fill area is on). | +| **Show overlay** | Controls when the overlay appears: Always, In PvP areas (Wilderness, PvP/Deadman worlds, and PvP-flagged zones), or Wilderness only. | +| **Show target's range** | Also outlines the attack range of the player you are currently fighting, based on their equipped weapon's base reach. | +| **Target line color** | Outline color used for the target's range indicator. | + +--- + +## Requirements + +- Microbot RuneLite client +- No skill level, quest, or item requirements - the overlay works with any weapon and style +- Works in F2P and P2P; PvP-specific visibility modes are useful in the Wilderness, PvP worlds, and Deadman worlds + +--- + +## How It Works + +1. Enable the plugin from the Microbot plugin list and configure your preferred settings. +2. Log in and equip your weapon. With Attack style set to Auto, the plugin reads your weapon and active attack style each frame. +3. The overlay computes the Chebyshev (king-move) attack square from your position, then clips it to only the tiles you have line of sight to - matching where shots and strikes actually connect. +4. The resulting area is outlined along its outer edge. If Fill area is enabled, the tiles inside are shaded as well. +5. If Show target's range is on and you are interacting with another player, a second outline appears around the tiles they can reach from their position. +6. The outline updates in real time as you move, rotate the camera, or change weapons. + +--- + +## Configuration + +Set **Attack style** to Auto for accurate real-time detection. Use the fixed overrides only when you want to preview a style before switching gear, or when you click-cast spells without an autocast configured (use Magic in that case). + +Set **Show overlay** to "In PvP areas" or "Wilderness only" if you only want the overlay active during PvP content - this keeps your screen clean during PvM. + +**Target's range** is useful for PvP spacing but has limits - see Limitations below. + +--- + +## Limitations + +- **Your own range works everywhere** (PvM and PvP) because it is based on your own equipped weapon and style. The target outline is players only - RuneLite does not expose NPC attack ranges, so the overlay cannot be drawn for monsters without hardcoding per-boss data. +- **Target's range is approximate.** Another player's attack-style varbits are not readable, so the target outline uses their equipped weapon's base reach. It does not account for the long-range modifier and cannot detect whether a staff user is autocasting or click-casting. +- Auto magic detection requires an autocast spell to be set. If you click-cast without autocast, use the Magic style override. +- Line-of-sight is computed in world coordinates and is not designed for instanced areas. This is generally not relevant for Wilderness and PvP use cases. + +--- + +## Credits + +Originally ported from [ry-java/AttackRanges2](https://github.com/ry-java/AttackRanges2) and rebuilt for the Microbot client. diff --git a/src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/assets/card.png b/src/main/resources/net/runelite/client/plugins/microbot/attackrangesplus/docs/assets/card.png new file mode 100644 index 0000000000000000000000000000000000000000..59e31e67aff5875ae1e5b49baa2e0cf78e68d0a7 GIT binary patch literal 142877 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ΝTK8sxdF|W6FzCQ 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 literal 0 HcmV?d00001 From 0546f260238e01d9ca6fbc4ff16e0758e444a85e Mon Sep 17 00:00:00 2001 From: pjmarz Date: Tue, 9 Jun 2026 18:46:12 -0400 Subject: [PATCH 07/27] feat(firemakingplus): add Auto Firemaking Plus plugin (v0.2.2) Co-Authored-By: Claude Fable 5 --- .../AutoFiremakingPlusConfig.java | 140 +++++ .../AutoFiremakingPlusOverlay.java | 167 ++++++ .../AutoFiremakingPlusPlugin.java | 71 +++ .../AutoFiremakingPlusScript.java | 491 ++++++++++++++++++ .../microbot/firemakingplus/FireLine.java | 21 + .../firemakingplus/FiremakingMethod.java | 20 + .../plugins/microbot/firemakingplus/Logs.java | 49 ++ .../microbot/firemakingplus/State.java | 13 + .../microbot/firemakingplus/TileScanner.java | 113 ++++ .../microbot/firemakingplus/docs/README.md | 70 +++ .../firemakingplus/docs/assets/card.png | Bin 0 -> 160459 bytes .../firemakingplus/docs/assets/icon.png | Bin 0 -> 37031 bytes 12 files changed, 1155 insertions(+) create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusConfig.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusOverlay.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusPlugin.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FireLine.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FiremakingMethod.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/Logs.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/State.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/README.md create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/assets/card.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/assets/icon.png diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusConfig.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusConfig.java new file mode 100644 index 0000000000..7c0af73dc6 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusConfig.java @@ -0,0 +1,140 @@ +package net.runelite.client.plugins.microbot.firemakingplus; + +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigInformation; +import net.runelite.client.config.ConfigItem; +import net.runelite.client.config.ConfigSection; +import net.runelite.client.config.Range; + +@ConfigGroup("FiremakingPlus") +@ConfigInformation("

Auto Firemaking Plus

" + + "

Version: " + AutoFiremakingPlusPlugin.version + "

" + + "

1. Method: Forester's Campfire (stand at a bank, add logs to a " + + "campfire, creating one if none is nearby - AFK) or Line firemaking (light logs in a " + + "line stepping west, then bank - higher XP/hr). Stand near a bank (the Grand Exchange is ideal) " + + "with logs + a tinderbox in the bank.

" + + "

2. Log type: which logs to burn. Progressive auto-picks the " + + "best logs your level can burn.

" + + "

3. Scan radius (Line only): how far to search for an open line.

" + + "

4. Stop after / Target level: auto-shutdown thresholds. Target level banks first.

" + + "

5. League mode: periodic arrow-key press to defeat the idle-logout.

" + + "

6. Speed mode: disables Microbot antiban. Throwaway accounts only.

") +public interface AutoFiremakingPlusConfig extends Config { + + @ConfigSection(name = "General", description = "General settings", position = 0) + String generalSection = "general"; + + @ConfigItem( + keyName = "method", + name = "Method", + description = "Forester's Campfire (AFK, one spot) or Line firemaking (higher XP/hr, walks a line).", + position = 0, + section = generalSection + ) + default FiremakingMethod method() { + return FiremakingMethod.CAMPFIRE; + } + + @ConfigItem( + keyName = "logType", + name = "Log type", + description = "Which logs to burn (ignored when Progressive is on).", + position = 1, + section = generalSection + ) + default Logs logType() { + return Logs.MAPLE; + } + + @ConfigItem( + keyName = "progressiveMode", + name = "Progressive", + description = "Automatically burn the best logs your Firemaking level allows.", + position = 2, + section = generalSection + ) + default boolean progressiveMode() { + return false; + } + + @ConfigItem( + keyName = "maximizeLogSpace", + name = "Maximize log space", + description = "Campfire method only: when a Forester's Campfire is already nearby, bank the " + + "tinderbox and carry one extra log (28 instead of 27). When no campfire is up it still " + + "withdraws a tinderbox to light its own. Off = always carry a tinderbox (fewer bank trips).", + position = 3, + section = generalSection + ) + default boolean maximizeLogSpace() { + return true; + } + + @Range(min = 10, max = 50) + @ConfigItem( + keyName = "scanRadius", + name = "Scan radius", + description = "Line firemaking only: how far around your start tile to search for an open line.", + position = 4, + section = generalSection + ) + default int scanRadius() { + return 25; + } + + @ConfigItem( + keyName = "stopAfterMinutes", + name = "Stop after (minutes)", + description = "Auto-shutdown after this many minutes of runtime. 0 = no limit.", + position = 5, + section = generalSection + ) + default int stopAfterMinutes() { + return 0; + } + + @ConfigItem( + keyName = "stopAfterXp", + name = "Stop after (XP gained)", + description = "Auto-shutdown after gaining this much Firemaking XP. 0 = no limit.", + position = 6, + section = generalSection + ) + default int stopAfterXp() { + return 0; + } + + @ConfigItem( + keyName = "targetLevel", + name = "Target level", + description = "Stop when Firemaking reaches this level. Banks the inventory first. 0 = disabled.", + position = 7, + section = generalSection + ) + default int targetLevel() { + return 0; + } + + @ConfigItem( + keyName = "leagueMode", + name = "League mode (anti-AFK)", + description = "Periodically presses an arrow key to reset the idle-logout timer.", + position = 8, + section = generalSection + ) + default boolean leagueMode() { + return false; + } + + @ConfigItem( + keyName = "speedMode", + name = "Speed mode (less antiban)", + description = "Disables Microbot's antiban. Faster, more pattern-detectable. Throwaway only.", + position = 9, + section = generalSection + ) + default boolean speedMode() { + return false; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusOverlay.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusOverlay.java new file mode 100644 index 0000000000..402f9e6471 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusOverlay.java @@ -0,0 +1,167 @@ +package net.runelite.client.plugins.microbot.firemakingplus; + +import net.runelite.api.Client; +import net.runelite.api.Experience; +import net.runelite.api.Skill; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; +import net.runelite.client.ui.FontManager; +import net.runelite.client.ui.overlay.OverlayPanel; +import net.runelite.client.ui.overlay.OverlayPosition; +import net.runelite.client.ui.overlay.components.ButtonComponent; +import net.runelite.client.ui.overlay.components.LineComponent; +import net.runelite.client.ui.overlay.components.TitleComponent; + +import javax.inject.Inject; +import java.awt.*; +import java.text.NumberFormat; +import java.time.Duration; + +public class AutoFiremakingPlusOverlay extends OverlayPanel { + private static final Color TITLE_COLOR = new Color(0, 170, 0); + private static final Color HEADER_COLOR = new Color(140, 220, 140); + private static final Color NORMAL_TEXT_COLOR = Color.WHITE; + private static final Color HIGHLIGHT_COLOR = new Color(255, 235, 145); + + private final AutoFiremakingPlusPlugin plugin; + private final Client client; + private final AutoFiremakingPlusConfig config; + + public final ButtonComponent pauseButton; + + @Inject + AutoFiremakingPlusOverlay(AutoFiremakingPlusPlugin plugin, Client client, AutoFiremakingPlusConfig config) { + super(plugin); + this.plugin = plugin; + this.client = client; + this.config = config; + setPosition(OverlayPosition.TOP_LEFT); + setNaughty(); + + pauseButton = new ButtonComponent("Pause"); + pauseButton.setPreferredSize(new Dimension(100, 25)); + pauseButton.setParentOverlay(this); + pauseButton.setFont(FontManager.getRunescapeBoldFont()); + pauseButton.setOnClick(() -> { + Microbot.pauseAllScripts.set(!Microbot.pauseAllScripts.get()); + if (Microbot.pauseAllScripts.get()) { + Rs2Walker.setTarget(null); + } + }); + } + + @Override + public Dimension render(Graphics2D graphics) { + try { + panelComponent.setPreferredSize(new Dimension(240, 300)); + + panelComponent.getChildren().add(TitleComponent.builder() + .text("AutoFiremakingPlus v" + AutoFiremakingPlusPlugin.version) + .color(TITLE_COLOR) + .build()); + + panelComponent.getChildren().add(LineComponent.builder() + .left("Status:") + .right(Microbot.status == null ? "Idle" : Microbot.status) + .rightColor(HIGHLIGHT_COLOR) + .build()); + + panelComponent.getChildren().add(LineComponent.builder().left("").build()); + + panelComponent.getChildren().add(LineComponent.builder() + .left("Statistics") + .leftColor(HEADER_COLOR) + .build()); + + AutoFiremakingPlusScript script = plugin.getScript(); + if (script != null && script.getStartTimeMillis() > 0) { + int currentLevel = client.getRealSkillLevel(Skill.FIREMAKING); + int currentXp = client.getSkillExperience(Skill.FIREMAKING); + int xpGained = currentXp - script.getStartSkillXp(); + long runtimeMillis = System.currentTimeMillis() - script.getStartTimeMillis(); + long xpPerHour = (runtimeMillis > 1000) ? (xpGained * 3600000L / runtimeMillis) : 0; + + int levelDelta = currentLevel - script.getStartSkillLevel(); + String levelStr = currentLevel + (levelDelta > 0 ? " (+" + levelDelta + ")" : ""); + + panelComponent.getChildren().add(LineComponent.builder() + .left("Firemaking level:") + .right(levelStr) + .rightColor(NORMAL_TEXT_COLOR) + .build()); + + panelComponent.getChildren().add(LineComponent.builder() + .left("XP gained:") + .right(NumberFormat.getInstance().format(xpGained)) + .rightColor(NORMAL_TEXT_COLOR) + .build()); + + panelComponent.getChildren().add(LineComponent.builder() + .left("XP/hr:") + .right(NumberFormat.getInstance().format(xpPerHour)) + .rightColor(NORMAL_TEXT_COLOR) + .build()); + + panelComponent.getChildren().add(LineComponent.builder() + .left("Logs burnt:") + .right(String.valueOf(script.getActionsCompleted())) + .rightColor(NORMAL_TEXT_COLOR) + .build()); + + // Firemaking spends logs (no product), so this is a cost rate, not profit. Uses the + // configured log's GE price (approximate under Progressive, which varies the log). + long logCostPerHour = 0; + if (config.logType() != null && runtimeMillis > 1000) { + int logPrice = Microbot.getItemManager().getItemPrice(config.logType().getItemId()); + if (logPrice > 0) { + logCostPerHour = (long) script.getActionsCompleted() * logPrice * 3600000L / runtimeMillis; + } + } + panelComponent.getChildren().add(LineComponent.builder() + .left("Log cost/hr:") + .right(logCostPerHour > 0 ? "-" + NumberFormat.getInstance().format(logCostPerHour) : "0") + .rightColor(NORMAL_TEXT_COLOR) + .build()); + + panelComponent.getChildren().add(LineComponent.builder() + .left("Runtime:") + .right(formatDuration(Duration.ofMillis(runtimeMillis))) + .rightColor(NORMAL_TEXT_COLOR) + .build()); + + if (config.targetLevel() > 0) { + int toGo = Math.max(0, config.targetLevel() - currentLevel); + panelComponent.getChildren().add(LineComponent.builder() + .left("Target:") + .right(config.targetLevel() + (toGo > 0 ? " (" + toGo + " to go)" : " (reached)")) + .rightColor(HIGHLIGHT_COLOR) + .build()); + if (toGo > 0 && xpPerHour > 0) { + long xpRemaining = Math.max(0, Experience.getXpForLevel(config.targetLevel()) - currentXp); + panelComponent.getChildren().add(LineComponent.builder() + .left("ETA:") + .right(formatDuration(Duration.ofMillis(xpRemaining * 3600000L / xpPerHour))) + .rightColor(HIGHLIGHT_COLOR) + .build()); + } + } + } else { + panelComponent.getChildren().add(LineComponent.builder() + .left("(not running)") + .leftColor(NORMAL_TEXT_COLOR) + .build()); + } + + pauseButton.setText(Microbot.pauseAllScripts.get() ? "Resume" : "Pause"); + panelComponent.getChildren().add(pauseButton); + + } catch (Exception ex) { + Microbot.logStackTrace(this.getClass().getSimpleName(), ex); + } + return super.render(graphics); + } + + private String formatDuration(Duration duration) { + return String.format("%02d:%02d:%02d", duration.toHours(), duration.toMinutesPart(), duration.toSecondsPart()); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusPlugin.java new file mode 100644 index 0000000000..7023cbc79e --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusPlugin.java @@ -0,0 +1,71 @@ +package net.runelite.client.plugins.microbot.firemakingplus; + +import com.google.inject.Provides; +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.PluginConstants; +import net.runelite.client.ui.overlay.OverlayManager; + +import javax.inject.Inject; +import java.awt.*; + +@PluginDescriptor( + name = "[P] " + "Auto Firemaking Plus", + description = "Firemaking trainer: add logs to a Forester's Campfire or light a line of fires, with stop conditions, target level, and overlay/pause.", + tags = {"firemaking", "campfire", "skilling", "microbot", "plus"}, + authors = {"pjmarz"}, + version = AutoFiremakingPlusPlugin.version, + minClientVersion = "2.0.13", + cardUrl = "https://chsami.github.io/Microbot-Hub/AutoFiremakingPlusPlugin/assets/card.png", + iconUrl = "https://chsami.github.io/Microbot-Hub/AutoFiremakingPlusPlugin/assets/icon.png", + enabledByDefault = PluginConstants.DEFAULT_ENABLED, + isExternal = PluginConstants.IS_EXTERNAL +) +@Slf4j +public class AutoFiremakingPlusPlugin extends Plugin { + public static final String version = "0.2.2"; + + @Inject + private AutoFiremakingPlusConfig config; + + @Provides + AutoFiremakingPlusConfig provideConfig(ConfigManager configManager) { + return configManager.getConfig(AutoFiremakingPlusConfig.class); + } + + @Inject + private OverlayManager overlayManager; + + @Inject + private AutoFiremakingPlusOverlay overlay; + + @Inject + AutoFiremakingPlusScript script; + + @Override + protected void startUp() throws AWTException { + Microbot.pauseAllScripts.compareAndSet(true, false); + if (overlayManager != null) { + overlayManager.add(overlay); + overlay.pauseButton.hookMouseListener(); + } + script.run(config); + } + + @Override + protected void shutDown() { + Microbot.pauseAllScripts.compareAndSet(true, false); + script.shutdown(); + if (overlay != null) { + overlay.pauseButton.unhookMouseListener(); + } + overlayManager.remove(overlay); + } + + public AutoFiremakingPlusScript getScript() { + return script; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java new file mode 100644 index 0000000000..75b8f86f5b --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java @@ -0,0 +1,491 @@ +package net.runelite.client.plugins.microbot.firemakingplus; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.api.Skill; +import net.runelite.api.coords.WorldPoint; +import net.runelite.api.gameval.ItemID; +import net.runelite.api.gameval.ObjectID; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.Script; +import net.runelite.client.plugins.microbot.api.tileobject.models.Rs2TileObjectModel; +import net.runelite.client.plugins.microbot.util.antiban.Rs2Antiban; +import net.runelite.client.plugins.microbot.util.antiban.Rs2AntibanSettings; +import net.runelite.client.plugins.microbot.util.bank.Rs2Bank; +import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject; +import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; +import net.runelite.client.plugins.microbot.util.keyboard.Rs2Keyboard; +import net.runelite.client.plugins.microbot.util.math.Rs2Random; +import net.runelite.client.plugins.microbot.util.player.Rs2Player; +import net.runelite.client.plugins.microbot.util.tile.Rs2Tile; +import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; +import net.runelite.client.plugins.microbot.util.widget.Rs2Widget; + +import java.awt.event.KeyEvent; +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * Firemaking trainer with two selectable methods (Forester's Campfire and Line firemaking) wrapped + * in the Plus layer (stop conditions, target level + clean shutdown, overlay/pause, speed/league + * modes). + * + *

The LINE method does tinderbox-on-log, auto-steps west, and uses TileScanner line finding with + * a blocked-line guard. The CAMPFIRE method stands at a bank, finds or lights a fire, then uses logs + * on it until the inventory is empty.

+ */ +@Slf4j +public class AutoFiremakingPlusScript extends Script { + + private static final int TINDERBOX_ID = ItemID.TINDERBOX; + private static final String TINDERBOX_NAME = "Tinderbox"; + private static final int FIRE_ID = ObjectID.FIRE; + private static final int FIRE_ID_ALT = 49927; + // Using a log on a Forester's Campfire opens this "Burn" make-X dialog; SPACE burns the whole + // inventory. + private static final int BURN_INTERFACE_WIDGET = 17694735; + + private State state = State.SCANNING; + private WorldPoint startPosition; + private Logs activeLog; + private FireLine currentLine; + + // Line blocked-line guard: the Y of the last line that blocked, excluded from the next scan. + private int blockedLineY = Integer.MIN_VALUE; + private int emptyScans = 0; + + // Stats (read by AutoFiremakingPlusOverlay). + private long startTimeMillis = 0; + private int startSkillXp = 0; + private int startSkillLevel = 0; + private int actionsCompleted = 0; + + private boolean shutdownAfterCleanup = false; + + // Campfire burn tracking (tick-driven). + // lastLogCount = active-log count observed last tick (-1 = reset/unknown); + // lastBurnProgressMs = last time the count dropped or we (re)initiated a burn. + private int lastLogCount = -1; + private long lastBurnProgressMs = 0; + + public long getStartTimeMillis() { return startTimeMillis; } + public int getStartSkillXp() { return startSkillXp; } + public int getStartSkillLevel() { return startSkillLevel; } + public int getActionsCompleted() { return actionsCompleted; } + + public boolean run(AutoFiremakingPlusConfig config) { + startPosition = null; + state = State.SCANNING; + activeLog = null; + currentLine = null; + blockedLineY = Integer.MIN_VALUE; + emptyScans = 0; + lastLogCount = -1; + lastBurnProgressMs = 0; + + startTimeMillis = System.currentTimeMillis(); + startSkillXp = Microbot.getClientThread().runOnClientThreadOptional(() -> + Microbot.getClient().getSkillExperience(Skill.FIREMAKING)).orElse(0); + startSkillLevel = Microbot.getClientThread().runOnClientThreadOptional(() -> + Microbot.getClient().getRealSkillLevel(Skill.FIREMAKING)).orElse(1); + actionsCompleted = 0; + shutdownAfterCleanup = false; + + Microbot.enableAutoRunOn = true; + Rs2Walker.disableTeleports = true; // keep banking on foot + Rs2Antiban.resetAntibanSettings(); + Rs2Antiban.antibanSetupTemplates.applyFiremakingSetup(); + if (config.speedMode()) { + Rs2AntibanSettings.antibanEnabled = false; + } + + mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> { + try { + if (!Microbot.isLoggedIn()) return; + if (!super.run()) return; + + if (Microbot.pauseAllScripts.get()) { + Microbot.status = "[PAUSED]"; + return; + } + + if (config.stopAfterMinutes() > 0 + && (System.currentTimeMillis() - startTimeMillis) / 60000 >= config.stopAfterMinutes()) { + Microbot.log("AutoFiremakingPlus: reached stopAfterMinutes. Shutting down."); + super.shutdown(); + return; + } + if (config.stopAfterXp() > 0) { + int currentXp = Microbot.getClientThread().runOnClientThreadOptional(() -> + Microbot.getClient().getSkillExperience(Skill.FIREMAKING)).orElse(startSkillXp); + if (currentXp - startSkillXp >= config.stopAfterXp()) { + Microbot.log("AutoFiremakingPlus: reached stopAfterXp. Shutting down."); + super.shutdown(); + return; + } + } + if (config.targetLevel() > 0 && !shutdownAfterCleanup) { + int currentLevel = Microbot.getClientThread().runOnClientThreadOptional(() -> + Microbot.getClient().getRealSkillLevel(Skill.FIREMAKING)).orElse(startSkillLevel); + if (currentLevel >= config.targetLevel()) { + Microbot.log("AutoFiremakingPlus: reached targetLevel (" + currentLevel + + "). Banking then shutting down."); + shutdownAfterCleanup = true; + state = State.BANKING; + } + } + + if (config.leagueMode() && Rs2Player.checkIdleLogout(Rs2Random.between(500, 1500))) { + int[] arrowKeys = { KeyEvent.VK_LEFT, KeyEvent.VK_RIGHT, KeyEvent.VK_UP, KeyEvent.VK_DOWN }; + Rs2Keyboard.keyPress(arrowKeys[Rs2Random.between(0, arrowKeys.length - 1)]); + } + + // Skip the tick while the global action cooldown is active. Speed mode bypasses the + // gate entirely so it actually runs without antiban pacing. + if (!config.speedMode() && Rs2AntibanSettings.actionCooldownActive) return; + + if (startPosition == null) startPosition = Rs2Player.getWorldLocation(); + + activeLog = config.progressiveMode() ? Logs.getBestForLevel() : config.logType(); + if (activeLog == null || !activeLog.hasRequiredLevel()) { + Microbot.status = "Firemaking level too low for " + + (activeLog != null ? activeLog.getLogName() : "any logs"); + return; + } + + if (config.method() == FiremakingMethod.CAMPFIRE) { + runCampfire(config); + } else { + runLine(config); + } + // Arm the cooldown / micro-break by chance after each tick's work, unless speed mode + // has disabled antiban. + if (!config.speedMode()) { + Rs2Antiban.actionCooldown(); + Rs2Antiban.takeMicroBreakByChance(); + } + } catch (Exception ex) { + Microbot.logStackTrace("AutoFiremakingPlusScript", ex); + } + }, 0, 600, TimeUnit.MILLISECONDS); + return true; + } + + // --- Forester's Campfire: stand at a bank, find/light a fire, use logs on it until empty. --- + + private void runCampfire(AutoFiremakingPlusConfig config) { + if (shutdownAfterCleanup || !Rs2Inventory.hasItem(activeLog.getItemId())) { + lastLogCount = -1; // reset burn tracking before banking + handleBanking(config); + return; + } + // Only block on movement (walking back from the bank). The burn is tick-driven below. + if (Rs2Player.isMoving()) { + Microbot.status = "Returning to campfire"; + return; + } + + WorldPoint anchor = Rs2Player.getWorldLocation(); + Rs2TileObjectModel target = findCampfire(anchor, 12); + + if (target == null) { + // No fire or campfire nearby: light our own fire with a tinderbox, then burn logs on it. + // Using logs on a self-lit fire opens the same Burn dialog as a Forester's Campfire, so + // the burn logic below handles either one. + if (!Rs2Inventory.hasItem(TINDERBOX_NAME)) { + Microbot.status = "No tinderbox - banking for one"; + lastLogCount = -1; + handleBanking(config); + return; + } + Microbot.status = "Lighting own fire"; + WorldPoint here = Rs2Player.getWorldLocation(); + Rs2Inventory.combine(TINDERBOX_NAME, activeLog.getLogName()); + if (Rs2Player.waitForXpDrop(Skill.FIREMAKING, 5000)) { + // Fire lit (one log burned); the player auto-steps back. Next tick findCampfire + // finds the new fire and the burn logic adds the rest of the inventory to it. + actionsCompleted++; + lastLogCount = -1; + } else { + // "You can't light a fire here" -> step to a nearby lightable tile and retry. + Microbot.status = "Can't light here - repositioning"; + WorldPoint spot = findLightableTile(here); + if (spot != null) { + Rs2Walker.walkTo(spot, 0); + sleepUntil(() -> !Rs2Player.isMoving(), 3000); + } + } + return; + } + + int count = Rs2Inventory.count(activeLog.getItemId()); + long now = System.currentTimeMillis(); + + // Burn in progress: the count dropped since last tick. Credit each log burned and let it + // keep going -- do NOT re-initiate, which would re-open the dialog mid-burn. + if (lastLogCount >= 0 && count < lastLogCount) { + actionsCompleted += (lastLogCount - count); + lastLogCount = count; + lastBurnProgressMs = now; + Microbot.status = "Burning logs (" + count + " left)"; + return; + } + // Recently (re)initiated and still inside the grace window: give the burn time to tick + // before re-kicking. The loop stays responsive (pause/stop honoured every tick). + if (lastLogCount >= 0 && now - lastBurnProgressMs < 5000) { + lastLogCount = count; + Microbot.status = "Burning logs (" + count + " left)"; + return; + } + + // Fresh start, or the burn stalled with logs remaining -> (re)initiate it. Use a log on the + // campfire (menu-based) -> "Burn" make-X dialog (widget 17694735) -> SPACE. Using a log is + // what yields XP. Select the log and wait for it to actually enter "use" mode before + // interacting, since useItemOnObject's internal 100ms check is too tight under antiban. + Microbot.status = "Adding logs to campfire"; + Rs2Inventory.use(activeLog.getItemId()); + if (!sleepUntil(Rs2Inventory::isItemSelected, 2000)) { + Microbot.log("[Firemaking] log did not select; retrying next tick"); + return; + } + Rs2GameObject.interact(target); + if (sleepUntil(() -> Rs2Widget.getWidget(BURN_INTERFACE_WIDGET) != null, 5000)) { + Rs2Keyboard.keyPress(KeyEvent.VK_SPACE); + lastLogCount = count; + lastBurnProgressMs = System.currentTimeMillis(); + sleep(600, 900); + } else { + Microbot.log("[Firemaking] burn dialog did NOT open; retrying next tick"); + } + } + + /** + * Find a nearby Forester's Campfire (by name) or plain fire (by id) within radius of anchor. + * Queried on the client thread: the script loop runs on a background thread, and off-thread reads + * of the tile-object cache can return a stale campfire that has already burned out. On the client + * thread the cache reflects the despawn, so this correctly returns null when no fire exists. + */ + private Rs2TileObjectModel findCampfire(WorldPoint anchor, int radius) { + return Microbot.getClientThread().runOnClientThreadOptional(() -> { + Rs2TileObjectModel t = Microbot.getRs2TileObjectCache().query() + .withNameContains("ampfire") + .nearest(anchor, radius); + if (t == null) { + t = Microbot.getRs2TileObjectCache().query() + .where(o -> o.getId() == FIRE_ID || o.getId() == FIRE_ID_ALT) + .nearest(anchor, radius); + } + return t; + }).orElse(null); + } + + /** Find a nearby walkable tile with no fire on it, so we can light our own there. */ + private WorldPoint findLightableTile(WorldPoint from) { + int[][] offsets = { {-1, 0}, {1, 0}, {0, -1}, {0, 1}, {-1, -1}, {1, 1}, {-1, 1}, {1, -1} }; + for (int[] o : offsets) { + WorldPoint p = new WorldPoint(from.getX() + o[0], from.getY() + o[1], from.getPlane()); + if (Rs2Tile.isWalkable(p) && !TileScanner.hasFire(p)) { + return p; + } + } + return null; + } + + // --- Line firemaking: light logs in a line stepping west, with a blocked-line guard. --- + + private void runLine(AutoFiremakingPlusConfig config) { + switch (state) { + case SCANNING: + lineScan(config); + break; + case WALKING_TO_LINE: + lineWalkTo(); + break; + case BURNING: + lineBurn(); + break; + case BANKING: + handleBanking(config); + break; + case WALKING_BACK: + lineWalkBack(config); + break; + } + } + + private void lineScan(AutoFiremakingPlusConfig config) { + Microbot.status = "Scanning for open space"; + if (!Rs2Inventory.hasItem(activeLog.getItemId())) { + state = State.BANKING; + return; + } + // Scan once and derive both the best line and the blocked-row fallback from the same list + // (findFireLines returns lines already sorted best-first). + List lines = TileScanner.findFireLines(startPosition, config.scanRadius()); + FireLine line = lines.isEmpty() ? null : lines.get(0); + // Guard: if the best line is the same row we just got blocked on, pick a different row. + if (line != null && line.getY() == blockedLineY) { + line = lines.stream() + .filter(l -> l.getY() != blockedLineY) + .findFirst().orElse(null); + } + if (line == null) { + emptyScans++; + if (emptyScans >= 5) { + Microbot.status = "No open line found - move me to open ground"; + emptyScans = 0; + blockedLineY = Integer.MIN_VALUE; // reset so banking->return can retry fresh + state = State.BANKING; + } else { + Microbot.status = "No open space found - retrying"; + } + return; + } + emptyScans = 0; + currentLine = line; + Microbot.status = "Found line: " + line.getLength() + " tiles"; + state = State.WALKING_TO_LINE; + } + + private void lineWalkTo() { + if (currentLine == null) { + state = State.SCANNING; + return; + } + WorldPoint eastEnd = currentLine.getEastEnd(); + Microbot.status = "Walking to line"; + if (Rs2Player.getWorldLocation().distanceTo(eastEnd) <= 1) { + state = State.BURNING; + return; + } + if (!Rs2Player.isMoving()) { + Rs2Walker.walkTo(eastEnd, 0); + } + } + + private void lineBurn() { + if (!Rs2Inventory.hasItem(activeLog.getItemId())) { + state = State.BANKING; + return; + } + if (Rs2Player.isMoving()) { + Microbot.status = "Walking after lighting"; + return; + } + if (Rs2Player.isAnimating()) { + Microbot.status = "Lighting animation"; + return; + } + if (!Rs2Inventory.hasItem(TINDERBOX_NAME)) { + state = State.BANKING; + return; + } + + WorldPoint playerPos = Rs2Player.getWorldLocation(); + if (TileScanner.hasFire(playerPos)) { + WorldPoint westTile = new WorldPoint(playerPos.getX() - 1, playerPos.getY(), playerPos.getPlane()); + if (!Rs2Tile.isWalkable(westTile)) { + blockedLineY = playerPos.getY(); // remember this row so the next scan avoids it + Microbot.status = "Blocked west - rescanning"; + state = State.SCANNING; + return; + } + Rs2Walker.walkTo(westTile, 0); + sleepUntil(() -> Rs2Player.getWorldLocation().distanceTo(westTile) <= 0, 3000); + return; + } + if (!Rs2Tile.isWalkable(playerPos)) { + blockedLineY = playerPos.getY(); + Microbot.status = "Blocked tile - rescanning"; + state = State.SCANNING; + return; + } + + Microbot.status = "Lighting " + activeLog.getLogName(); + WorldPoint before = Rs2Player.getWorldLocation(); + Rs2Inventory.combine(TINDERBOX_NAME, activeLog.getLogName()); + if (Rs2Player.waitForXpDrop(Skill.FIREMAKING, 10000)) { + actionsCompleted++; + sleepUntil(() -> !Rs2Player.getWorldLocation().equals(before), 3000); + sleep(200, 400); + } + } + + private void lineWalkBack(AutoFiremakingPlusConfig config) { + Microbot.status = "Walking back"; + if (Rs2Player.getWorldLocation().distanceTo(startPosition) <= config.scanRadius()) { + state = State.SCANNING; + return; + } + if (!Rs2Player.isMoving()) { + Rs2Walker.walkTo(startPosition, 3); + } + } + + // --- Shared banking (both methods). --- + + private void handleBanking(AutoFiremakingPlusConfig config) { + if (Rs2Player.isMoving()) return; + Microbot.status = "Banking"; + if (!Rs2Bank.isOpen()) { + if (!Rs2Bank.walkToBankAndUseBank()) return; + } + if (!Rs2Bank.isOpen()) return; + + // Decide whether to carry a tinderbox this trip. The line method always lights fires, so it + // always needs one. The campfire method needs one only to light its OWN fire: if a Forester's + // Campfire is already within burn range and maximizeLogSpace is on, bank the tinderbox and + // carry one extra log instead. findCampfire reads on the client thread (live scene) and uses + // the same radius runCampfire burns at, so it reliably predicts whether we will need to light. + boolean needTinderbox = config.method() == FiremakingMethod.LINE + || !config.maximizeLogSpace() + || findCampfire(Rs2Player.getWorldLocation(), 12) == null; + + if (needTinderbox) { + Rs2Bank.depositAllExcept(TINDERBOX_NAME, activeLog.getLogName()); + } else { + // A campfire is up: bank the tinderbox too, freeing a slot for one more log. + Rs2Bank.depositAllExcept(activeLog.getLogName()); + } + sleep(300); + + if (shutdownAfterCleanup) { + Rs2Bank.closeBank(); + Microbot.log("AutoFiremakingPlus: target reached, banked, shutting down."); + super.shutdown(); + return; + } + + if (needTinderbox && !Rs2Inventory.hasItem(TINDERBOX_NAME)) { + if (!Rs2Bank.hasItem(TINDERBOX_ID)) { + Microbot.showMessage("No tinderbox in the bank!"); + super.shutdown(); + return; + } + Rs2Bank.withdrawOne(TINDERBOX_ID); + sleepUntil(() -> Rs2Inventory.hasItem(TINDERBOX_NAME), 3000); + } + + if (!Rs2Bank.hasItem(activeLog.getItemId())) { + Microbot.showMessage("No " + activeLog.getLogName() + " in the bank!"); + super.shutdown(); + return; + } + Microbot.status = "Withdrawing logs"; + Rs2Bank.withdrawAll(activeLog.getItemId()); + sleepUntil(() -> Rs2Inventory.hasItem(activeLog.getItemId()), 3000); + Rs2Random.wait(300, 700); + Rs2Bank.closeBank(); + + // Resume: campfire burns where it stands; line walks back to its start area then rescans. + state = (config.method() == FiremakingMethod.CAMPFIRE) ? State.BURNING : State.WALKING_BACK; + } + + @Override + public void shutdown() { + super.shutdown(); + Rs2Walker.disableTeleports = false; + Rs2Antiban.resetAntibanSettings(); + startPosition = null; + currentLine = null; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FireLine.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FireLine.java new file mode 100644 index 0000000000..1a125ebaa4 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FireLine.java @@ -0,0 +1,21 @@ +// Adapted from the leaguesfiremaking plugin (FireLine). +package net.runelite.client.plugins.microbot.firemakingplus; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import net.runelite.api.coords.WorldPoint; + +/** + * A horizontal run of open tiles to lay fires along. + */ +@Getter +@RequiredArgsConstructor +public class FireLine { + private final WorldPoint westEnd; + private final WorldPoint eastEnd; + private final int length; + + public int getY() { + return westEnd.getY(); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FiremakingMethod.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FiremakingMethod.java new file mode 100644 index 0000000000..073d4c6d75 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/FiremakingMethod.java @@ -0,0 +1,20 @@ +package net.runelite.client.plugins.microbot.firemakingplus; + +/** + * Which firemaking method AutoFiremakingPlus performs. + */ +public enum FiremakingMethod { + CAMPFIRE("Forester's Campfire"), + LINE("Line firemaking"); + + private final String label; + + FiremakingMethod(String label) { + this.label = label; + } + + @Override + public String toString() { + return label; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/Logs.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/Logs.java new file mode 100644 index 0000000000..8f8040da5b --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/Logs.java @@ -0,0 +1,49 @@ +// Adapted from the leaguesfiremaking plugin (LogType). +package net.runelite.client.plugins.microbot.firemakingplus; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import net.runelite.api.Skill; +import net.runelite.api.gameval.ItemID; +import net.runelite.client.plugins.microbot.util.player.Rs2Player; + +/** + * Logs burnable for Firemaking, with level requirements. + */ +@Getter +@RequiredArgsConstructor +public enum Logs { + LOGS("Logs", ItemID.LOGS, 1), + OAK("Oak logs", ItemID.OAK_LOGS, 15), + WILLOW("Willow logs", ItemID.WILLOW_LOGS, 30), + TEAK("Teak logs", ItemID.TEAK_LOGS, 35), + MAPLE("Maple logs", ItemID.MAPLE_LOGS, 45), + MAHOGANY("Mahogany logs", ItemID.MAHOGANY_LOGS, 50), + YEW("Yew logs", ItemID.YEW_LOGS, 60), + MAGIC("Magic logs", ItemID.MAGIC_LOGS, 75), + REDWOOD("Redwood logs", ItemID.REDWOOD_LOGS, 90); + + private final String logName; + private final int itemId; + private final int levelRequired; + + public boolean hasRequiredLevel() { + return Rs2Player.getSkillRequirement(Skill.FIREMAKING, levelRequired); + } + + /** Highest-level log the player can currently burn (for progressive mode). */ + public static Logs getBestForLevel() { + Logs best = LOGS; + for (Logs log : values()) { + if (log.hasRequiredLevel()) { + best = log; + } + } + return best; + } + + @Override + public String toString() { + return logName; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/State.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/State.java new file mode 100644 index 0000000000..9b00ec770c --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/State.java @@ -0,0 +1,13 @@ +package net.runelite.client.plugins.microbot.firemakingplus; + +/** + * Script states. The CAMPFIRE method only uses BURNING/BANKING (driven by inventory); the LINE + * method walks the full scan -> walk-to -> burn -> bank -> walk-back cycle. + */ +public enum State { + SCANNING, + WALKING_TO_LINE, + BURNING, + BANKING, + WALKING_BACK +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java new file mode 100644 index 0000000000..e03292dbc3 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java @@ -0,0 +1,113 @@ +// Adapted from the leaguesfiremaking plugin (TileScanner). +package net.runelite.client.plugins.microbot.firemakingplus; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.api.coords.WorldPoint; +import net.runelite.api.gameval.ObjectID; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.util.tile.Rs2Tile; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Finds horizontal lines of open tiles for line firemaking and detects fire tiles. + */ +@Slf4j +public class TileScanner { + + private static final int FIRE_ID = ObjectID.FIRE; + private static final int FIRE_ID_ALT = 49927; + + private enum TileState { + OPEN, + FIRE, + BLOCKED + } + + private static TileState classifyTile(WorldPoint point, Set fireTiles, Set objectTiles) { + if (fireTiles.contains(point)) return TileState.FIRE; + if (objectTiles.contains(point)) return TileState.BLOCKED; + if (!Rs2Tile.isWalkable(point)) return TileState.BLOCKED; + return TileState.OPEN; + } + + public static List findFireLines(WorldPoint center, int radius) { + final Set fireTiles = new HashSet<>(); + final Set objectTiles = new HashSet<>(); + + // Consume the live scene stream on the client thread; the grid loop below is safe off-thread + // because classifyTile's Rs2Tile.isWalkable self-guards to the client thread per tile. + Microbot.getClientThread().runOnClientThreadOptional(() -> { + Microbot.getRs2TileObjectCache().getStream() + .filter(obj -> obj.getWorldLocation().distanceTo(center) <= radius) + .forEach(obj -> { + int id = obj.getId(); + WorldPoint loc = obj.getWorldLocation(); + if (id == FIRE_ID || id == FIRE_ID_ALT) { + fireTiles.add(loc); + } else { + objectTiles.add(loc); + } + }); + return Boolean.TRUE; + }); + + List lines = new ArrayList<>(); + int plane = center.getPlane(); + + for (int y = center.getY() - radius; y <= center.getY() + radius; y++) { + int runStartX = -1; + int runLength = 0; + + for (int x = center.getX() - radius; x <= center.getX() + radius; x++) { + WorldPoint point = new WorldPoint(x, y, plane); + TileState state = classifyTile(point, fireTiles, objectTiles); + + if (state == TileState.OPEN) { + if (runStartX == -1) { + runStartX = x; + } + runLength++; + } else { + if (runLength >= 5) { + lines.add(new FireLine( + new WorldPoint(runStartX, y, plane), + new WorldPoint(runStartX + runLength - 1, y, plane), + runLength + )); + } + runStartX = -1; + runLength = 0; + } + } + if (runLength >= 5) { + lines.add(new FireLine( + new WorldPoint(runStartX, y, plane), + new WorldPoint(runStartX + runLength - 1, y, plane), + runLength + )); + } + } + + // Score lines: balance length vs proximity to start position. + // A nearby shorter line beats a far-away longer one. + lines.sort(Comparator.comparingDouble((FireLine l) -> { + int distance = center.distanceTo(l.getEastEnd()); + return -(l.getLength() - distance * 0.5); + })); + + return lines; + } + + public static boolean hasFire(WorldPoint point) { + return Microbot.getClientThread().runOnClientThreadOptional(() -> + Microbot.getRs2TileObjectCache().getStream() + .anyMatch(obj -> obj.getWorldLocation().equals(point) + && (obj.getId() == FIRE_ID || obj.getId() == FIRE_ID_ALT)) + ).orElse(false); + } +} diff --git a/src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/README.md new file mode 100644 index 0000000000..64876f064a --- /dev/null +++ b/src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/README.md @@ -0,0 +1,70 @@ +# Auto Firemaking Plus + +![preview](assets/card.png) + +Auto Firemaking Plus trains Firemaking on a bank-and-burn loop with two selectable methods, progressive log selection, and a live statistics overlay. It is part of the Microbot "Plus" suite and shares the same stop-condition system and overlay as the other Plus plugins. It is fully F2P friendly. + +--- + +## Feature Overview + +| Feature | Description | +|---------|-------------| +| **Method** | Forester's Campfire (default, AFK) or Line firemaking (higher XP/hr). | +| **Forester's Campfire** | Adds logs to a nearby campfire or fire. If none is found, the bot lights its own with a tinderbox, then burns on it. Once a fire is established you rarely move. | +| **Line firemaking** | Lights a horizontal line of fires stepping west, walks back, banks, and repeats. Needs an open run of tiles. | +| **Log type** | Which logs to burn. Ignored when Progressive is on. | +| **Progressive** | Burns the best logs your current level allows: Logs (1), Oak (15), Willow (30), Teak (35), Maple (45), Mahogany (50), Yew (60), Magic (75), Redwood (90). | +| **Maximize log space** | Campfire method only. When a campfire is already active nearby, the tinderbox is banked so a 28th log is carried; otherwise a tinderbox is kept to light a new fire. | +| **Scan radius** | Line firemaking only. How far around the start tile to search for an open row (range 10 to 50). | +| **Stop conditions** | Stop after minutes, XP gained, or Target level. The bot banks before shutting down. | +| **League mode (anti-AFK)** | Periodically presses a key to reset the idle-logout timer. | +| **Speed mode** | Disables Microbot antiban for faster throughput. More detectable, throwaway accounts only. | +| **Live overlay** | Current level (and levels gained), XP gained, XP/hr, logs burnt, log cost/hr, runtime, target progress, ETA, and a Pause/Resume button. | + +--- + +## Requirements + +- Microbot RuneLite client +- Logs of your chosen type in the bank +- A tinderbox in the bank (used to light a fire when none is nearby) +- A bank to start next to. The Grand Exchange is ideal for the campfire method. +- F2P friendly. No quests or membership required for the standard log types. + +--- + +## How It Works + +1. Stock your bank with the logs you want to burn and a tinderbox. +2. Stand next to a bank. The Grand Exchange is recommended for the campfire method. +3. Set the Method, Log type (or enable Progressive), and any stop conditions, then enable the plugin. +4. Campfire method: the bot finds a nearby campfire or fire, or lights its own, then adds logs until the inventory is empty, banks, and repeats. +5. Line method: the bot finds an open row, lights logs while stepping west, walks back to the start, banks, and repeats. +6. When a stop condition is reached the bot banks its current inventory, then shuts itself down. + +--- + +## Configuration + +**Method** is the main choice. Forester's Campfire is the AFK option and self-sufficient: it lights its own fire if none is present, so it works even when no Forester's Campfire exists nearby. Line firemaking gives higher XP per hour but needs an open area with a clear run of tiles to the west. + +**Log type** and **Progressive** control what you burn. Turn on Progressive to let the bot upgrade logs automatically as your level rises. + +**Maximize log space** squeezes one extra log per trip when a campfire is already available. Banking happens on foot with teleports disabled so the bot never home-teleports away from the bank. + +**Stop conditions** all default to 0 (disabled). Set any combination; the bot stops at the first one met. + +--- + +## Limitations + +- Line firemaking needs an open area with a clear westward run. In crowded or walled spots use the campfire method. +- Forester's Campfires at the Grand Exchange are temporary and burn out. The bot handles this by lighting its own fire when none is found. +- Wintertodt is out of scope; it has a dedicated minigame plugin. + +--- + +## Credits + +Auto Firemaking Plus is a from-scratch Plus build by pjmarz. The line-firemaking logic was adapted from the Microbot leagues firemaking code. diff --git a/src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/assets/card.png b/src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/assets/card.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ca143e7b6f477a0c155f40272e055c7004fa19 GIT binary patch literal 160459 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/assets/icon.png b/src/main/resources/net/runelite/client/plugins/microbot/firemakingplus/docs/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4c7ff18d7ac7b2f10322c013791f41029af5da5e GIT binary patch literal 37031 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 hy_s!=cXbqy);EkRs*r Date: Tue, 9 Jun 2026 18:58:37 -0400 Subject: [PATCH 08/27] feat(microbotdashboardplus): add Microbot Dashboard Plus plugin (v1.2.0) Co-Authored-By: Claude Fable 5 --- .../microbotdashboardplus/DashboardPanel.java | 156 +++++ .../MicrobotDashboardPlusConfig.java | 212 +++++++ .../MicrobotDashboardPlusPlugin.java | 230 ++++++++ .../data/PollSnapshot.java | 141 +++++ .../microbotdashboardplus/data/XpHistory.java | 138 +++++ .../notify/AlertManager.java | 89 +++ .../notify/DiscordNotifier.java | 159 +++++ .../panels/AntibanStatePanel.java | 140 +++++ .../panels/DashboardSection.java | 111 ++++ .../panels/EventLogPanel.java | 122 ++++ .../panels/GuidePanel.java | 93 +++ .../panels/InventoryPanel.java | 90 +++ .../panels/NearbyNpcsPanel.java | 102 ++++ .../panels/PlayerPanel.java | 112 ++++ .../panels/ScriptsPanel.java | 212 +++++++ .../panels/SkillsPanel.java | 324 ++++++++++ .../panels/XpChartPanel.java | 338 +++++++++++ .../poller/GameStatePoller.java | 553 ++++++++++++++++++ .../window/DashboardWindow.java | 418 +++++++++++++ .../microbotdashboardplus/docs/README.md | 95 +++ .../docs/assets/card.png | Bin 0 -> 134037 bytes .../docs/assets/dashboard-bottom.png | Bin 0 -> 102069 bytes .../docs/assets/dashboard-top.png | Bin 0 -> 128411 bytes .../docs/assets/icon.png | Bin 0 -> 33913 bytes .../docs/assets/settings-panel.png | Bin 0 -> 27875 bytes 25 files changed, 3835 insertions(+) create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/PollSnapshot.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/AlertManager.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/DiscordNotifier.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/AntibanStatePanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/DashboardSection.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/EventLogPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/InventoryPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/NearbyNpcsPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/PlayerPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/ScriptsPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/SkillsPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/XpChartPanel.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/card.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/dashboard-bottom.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/dashboard-top.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/icon.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/settings-panel.png diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java new file mode 100644 index 0000000000..d231c071ac --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java @@ -0,0 +1,156 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.plugins.microbot.microbotdashboardplus.window.DashboardWindow; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; +import net.runelite.client.ui.PluginPanel; + +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; +import javax.swing.border.EmptyBorder; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.util.function.Consumer; + +/** + * Right-sidebar plugin panel: compact at-a-glance summary + launcher button + * for the full {@link DashboardWindow}. Mirrors the Hub convention used by + * ShootingStar / AutoBankStander / ActionReplay. + * + *

Subscribes to the {@link GameStatePoller}; updates labels on each + * snapshot. The "Open Dashboard" button calls into the window owner (the + * plugin) to show or focus the floating window. + */ +@Slf4j +public class DashboardPanel extends PluginPanel { + + private final GameStatePoller poller; + private final Runnable openDashboard; + private final Consumer snapshotListener; + + private final JLabel statusValue = new JLabel("--"); + private final JLabel playerValue = new JLabel("--"); + private final JLabel worldValue = new JLabel("--"); + private final JLabel scriptsValue = new JLabel("--"); + + public DashboardPanel(GameStatePoller poller, Runnable openDashboard) { + super(); + this.poller = poller; + this.openDashboard = openDashboard; + + setBorder(new EmptyBorder(10, 10, 10, 10)); + setLayout(new BorderLayout()); + + add(buildTopArea(), BorderLayout.NORTH); + add(buildStatsArea(), BorderLayout.CENTER); + add(buildButtonArea(), BorderLayout.SOUTH); + + snapshotListener = this::applySnapshot; + poller.addListener(snapshotListener); + } + + private JPanel buildTopArea() { + JPanel top = new JPanel(new BorderLayout()); + top.setOpaque(false); + top.setBorder(new EmptyBorder(0, 0, 10, 0)); + + JLabel title = new JLabel("Dashboard"); + title.setForeground(Color.WHITE); + title.setFont(FontManager.getRunescapeBoldFont()); + top.add(title, BorderLayout.NORTH); + + JLabel sub = new JLabel("MicrobotDashboardPlus v" + MicrobotDashboardPlusPlugin.version); + sub.setForeground(Color.GRAY); + sub.setFont(FontManager.getRunescapeSmallFont()); + top.add(sub, BorderLayout.SOUTH); + + return top; + } + + private JPanel buildStatsArea() { + JPanel stats = new JPanel(new GridLayout(0, 1, 0, 4)); + stats.setOpaque(false); + + stats.add(makeRow("Status", statusValue)); + stats.add(makeRow("Player", playerValue)); + stats.add(makeRow("World", worldValue)); + stats.add(makeRow("Active", scriptsValue)); + + return stats; + } + + private JPanel makeRow(String label, JLabel valueLabel) { + JPanel row = new JPanel(new BorderLayout(8, 0)); + row.setOpaque(false); + + JLabel lbl = new JLabel(label); + lbl.setForeground(Color.LIGHT_GRAY); + lbl.setFont(FontManager.getRunescapeSmallFont()); + lbl.setPreferredSize(new Dimension(60, 16)); + row.add(lbl, BorderLayout.WEST); + + valueLabel.setForeground(Color.WHITE); + valueLabel.setFont(FontManager.getRunescapeSmallFont()); + row.add(valueLabel, BorderLayout.CENTER); + + return row; + } + + private JPanel buildButtonArea() { + JPanel buttons = new JPanel(new GridLayout(0, 1, 0, 6)); + buttons.setOpaque(false); + buttons.setBorder(new EmptyBorder(12, 0, 0, 0)); + + JButton openBtn = new JButton("Open Dashboard"); + openBtn.setBackground(ColorScheme.BRAND_ORANGE); + openBtn.setForeground(Color.WHITE); + openBtn.setFocusPainted(false); + openBtn.setFont(FontManager.getRunescapeBoldFont()); + openBtn.addActionListener(e -> { + if (openDashboard != null) openDashboard.run(); + }); + buttons.add(openBtn); + + JButton refreshBtn = new JButton("Refresh now"); + refreshBtn.setBackground(ColorScheme.MEDIUM_GRAY_COLOR); + refreshBtn.setForeground(Color.WHITE); + refreshBtn.setFocusPainted(false); + refreshBtn.setFont(FontManager.getRunescapeSmallFont()); + refreshBtn.addActionListener(e -> poller.refreshNow()); + buttons.add(refreshBtn); + + return buttons; + } + + /** Plugin shutDown calls this. Removes listener so the poller stops feeding us after disposal. */ + public void detach() { + poller.removeListener(snapshotListener); + } + + private void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + if (snapshot.isLoggedIn()) { + statusValue.setText("Connected"); + statusValue.setForeground(ColorScheme.PROGRESS_COMPLETE_COLOR); + } else { + statusValue.setText("Disconnected"); + statusValue.setForeground(ColorScheme.PROGRESS_ERROR_COLOR); + } + playerValue.setText(snapshot.getPlayerName()); + worldValue.setText(String.valueOf(snapshot.getWorldId())); + scriptsValue.setText(snapshot.getActiveScripts() == null ? "0" + : Integer.toString(snapshot.getActiveScripts().size())); + + SwingUtilities.invokeLater(() -> { + revalidate(); + repaint(); + }); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java new file mode 100644 index 0000000000..d391750ae2 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java @@ -0,0 +1,212 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus; + +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigInformation; +import net.runelite.client.config.ConfigItem; +import net.runelite.client.config.ConfigSection; +import net.runelite.client.config.Range; + +/** + * Configuration for the MicrobotDashboardPlus plugin. + * + *

Sections: + *

    + *
  • Behavior - core polling + window open semantics.
  • + *
  • Layout - per-section visibility toggles.
  • + *
  • Notifications - Discord webhook + which events fire.
  • + *
  • Alerts - per-skill level-threshold alerts.
  • + *
+ */ +@ConfigGroup("MicrobotDashboardPlus") +@ConfigInformation( + "

Microbot Dashboard Plus

" + + "

Version: " + MicrobotDashboardPlusPlugin.version + "

" + + "

Aggregate session dashboard. A floating window with nine live-updating panels: Player, Active Scripts, Inventory, Skills, Nearby NPCs, Antiban State, XP Chart, Event Log, and Guide. A green chart-line icon in the right sidebar (while the plugin is enabled) opens the dashboard.

" + + "

" + + "

Behavior

" + + "

1. Auto-open dashboard: opens the floating window automatically when the plugin enables. Untick to launch it manually from the sidebar.

" + + "

" + + "

2. Poll interval: seconds between dashboard refreshes from game state. Lower is more responsive but uses slightly more CPU. Default 5, range 1 to 60.

" + + "

" + + "

3. Nearby NPCs max distance: tile radius for the Nearby NPCs panel. Higher shows more NPCs and polls a little slower. Default 20, range 1 to 200.

" + + "

" + + "

Layout

" + + "

4. Panel toggles: one show or hide switch per panel (Player, Active Scripts, Inventory, Skills, Nearby NPCs, Antiban State, XP Chart, Event Log, Guide). Untick any you do not want in the window. Hide the Guide once you know the panels.

" + + "

" + + "

Notifications

" + + "

5. Discord webhook URL: paste a channel webhook to send alerts to Discord. Leave blank to disable Discord. Keep this URL secret.

" + + "

" + + "

6. Notify on level-up: posts to Discord when any skill levels up.

" + + "

" + + "

7. Notify on session start or stop: posts when the plugin enables or disables. Off by default.

" + + "

" + + "

8. Notify on alert threshold: posts when a configured Alert Threshold is crossed.

" + + "

" + + "

Alerts

" + + "

9. Alert thresholds: comma-separated SKILL:LEVEL pairs, for example MINING:60, WOODCUTTING:80. Use uppercase OSRS skill names. A crossing fires an in-dashboard banner and, if enabled above, a Discord notification.

" + + "

" + + "

10. Skill targets (ETA): comma-separated SKILL:LEVEL pairs, for example MINING:70, AGILITY:60. The Skills section shows an ETA to each target from the current XP per hour. A skill with no target still shows an ETA to its next level while it is being trained.

" + + "

" + + "

Panels of note

" + + "

Antiban State: shows whether the script is running or is being held by an intentional anti-AFK pause such as a micro break, an action cooldown, a global pause, or a blocking event. Use it to tell a real stall from expected behavior.

" +) +public interface MicrobotDashboardPlusConfig extends Config { + + @ConfigSection(name = "Behavior", description = "Window + polling settings", position = 0) + String behaviorSection = "behavior"; + + @ConfigSection(name = "Layout", description = "Which sections to show", position = 1) + String layoutSection = "layout"; + + @ConfigSection(name = "Notifications", description = "Discord webhook + which events fire", position = 2) + String notificationsSection = "notifications"; + + @ConfigSection(name = "Alerts", description = "Per-skill level-threshold alerts", position = 3) + String alertsSection = "alerts"; + + // ------------------------------------------------------------------ + // Behavior + // ------------------------------------------------------------------ + + @ConfigItem( + keyName = "autoOpenDashboard", + name = "Auto-open dashboard on startup", + description = "When the plugin enables, open the floating dashboard window automatically. Untick this if you'd rather launch it manually from the sidebar panel.", + position = 0, + section = behaviorSection + ) + default boolean autoOpenDashboard() { + return true; + } + + @ConfigItem( + keyName = "pollIntervalSeconds", + name = "Poll interval (sec)", + description = "How often to refresh the dashboard from in-process game state. Lower = more responsive, slightly higher CPU. Default 5.", + position = 1, + section = behaviorSection + ) + @Range(min = 1, max = 60) + default int pollIntervalSeconds() { + return 5; + } + + @ConfigItem( + keyName = "npcMaxDistance", + name = "Nearby NPCs max distance (tiles)", + description = "Maximum tile distance for NPCs to show in the Nearby NPCs section. Higher = more NPCs visible, slightly slower poll.", + position = 2, + section = behaviorSection + ) + @Range(min = 1, max = 200) + default int npcMaxDistance() { + return 20; + } + + // ------------------------------------------------------------------ + // Layout (per-section visibility) + // ------------------------------------------------------------------ + + @ConfigItem(keyName = "showPlayer", name = "Show Player", description = "Show the Player section.", position = 0, section = layoutSection) + default boolean showPlayer() { return true; } + + @ConfigItem(keyName = "showActiveScripts", name = "Show Active Scripts", description = "Show the Active Scripts section.", position = 1, section = layoutSection) + default boolean showActiveScripts() { return true; } + + @ConfigItem(keyName = "showInventory", name = "Show Inventory", description = "Show the Inventory section.", position = 2, section = layoutSection) + default boolean showInventory() { return true; } + + @ConfigItem(keyName = "showSkills", name = "Show Skills", description = "Show the Skills section.", position = 3, section = layoutSection) + default boolean showSkills() { return true; } + + @ConfigItem(keyName = "showNearbyNpcs", name = "Show Nearby NPCs", description = "Show the Nearby NPCs section.", position = 4, section = layoutSection) + default boolean showNearbyNpcs() { return true; } + + @ConfigItem(keyName = "showAntibanState", name = "Show Antiban State", description = "Show the Antiban State section. It tells a silent stall apart from an intentional anti-AFK pause such as a micro break or action cooldown.", position = 5, section = layoutSection) + default boolean showAntibanState() { return true; } + + @ConfigItem(keyName = "showXpChart", name = "Show XP Chart", description = "Show the XP-over-time chart section.", position = 6, section = layoutSection) + default boolean showXpChart() { return true; } + + @ConfigItem(keyName = "showEventLog", name = "Show Event Log", description = "Show the Event Log ring buffer section.", position = 7, section = layoutSection) + default boolean showEventLog() { return true; } + + @ConfigItem(keyName = "showGuide", name = "Show Guide", description = "Show the Guide section at the bottom of the dashboard window. Hide it once you're familiar with the panels and config options.", position = 8, section = layoutSection) + default boolean showGuide() { return true; } + + // ------------------------------------------------------------------ + // Notifications (Discord webhook) + // ------------------------------------------------------------------ + + @ConfigItem( + keyName = "discordWebhookUrl", + name = "Discord webhook URL", + description = "Paste a Discord channel webhook URL (https://discord.com/api/webhooks/...). Leave blank to disable Discord notifications. Treat this URL as a secret. Do not share it.", + position = 0, + section = notificationsSection, + secret = true + ) + default String discordWebhookUrl() { + return ""; + } + + @ConfigItem( + keyName = "notifyLevelUp", + name = "Notify on level-up", + description = "Send a Discord message when any skill level increases.", + position = 1, + section = notificationsSection + ) + default boolean notifyLevelUp() { + return true; + } + + @ConfigItem( + keyName = "notifySessionLifecycle", + name = "Notify on session start/stop", + description = "Send a Discord message when the dashboard plugin enables (session start) or disables (session stop).", + position = 2, + section = notificationsSection + ) + default boolean notifySessionLifecycle() { + return false; + } + + @ConfigItem( + keyName = "notifyAlerts", + name = "Notify on alert threshold", + description = "Send a Discord message when any configured Alert Threshold is crossed (see Alerts section).", + position = 3, + section = notificationsSection + ) + default boolean notifyAlerts() { + return true; + } + + // ------------------------------------------------------------------ + // Alerts + // ------------------------------------------------------------------ + + @ConfigItem( + keyName = "alertThresholds", + name = "Alert thresholds", + description = "Comma-separated SKILL:LEVEL pairs. Example: MINING:60, WOODCUTTING:80, FISHING:70. Skill names follow the OSRS API enum (uppercase). Crossings fire an in-dashboard banner and (if enabled) a Discord notification.", + position = 0, + section = alertsSection + ) + default String alertThresholds() { + return ""; + } + + @ConfigItem( + keyName = "skillTargets", + name = "Skill targets (ETA)", + description = "Comma-separated SKILL:LEVEL pairs the Skills section uses for its ETA column. Example: MINING:70, AGILITY:60. Skill names follow the OSRS API enum (uppercase). A skill with no target still shows an ETA to its next level while it is being trained.", + position = 1, + section = alertsSection + ) + default String skillTargets() { + return ""; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java new file mode 100644 index 0000000000..3c54438e82 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java @@ -0,0 +1,230 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus; + +import com.google.inject.Provides; +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.PluginConstants; +import net.runelite.client.plugins.microbot.microbotdashboardplus.notify.AlertManager; +import net.runelite.client.plugins.microbot.microbotdashboardplus.notify.DiscordNotifier; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.plugins.microbot.microbotdashboardplus.window.DashboardWindow; +import net.runelite.client.ui.ClientToolbar; +import net.runelite.client.ui.NavigationButton; + +import javax.inject.Inject; +import javax.swing.SwingUtilities; +import java.awt.AWTException; +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.image.BufferedImage; + +/** + * MicrobotDashboardPlus is part of the Microbot Plus suite. + * + *

The dashboard opens in a native floating RuneLite window. A compact + * sidebar panel lives in the right-hand toolbar; clicking + * Open Dashboard launches the full {@link DashboardWindow}. + * Game state is read in-process via {@link Microbot#getClient()} and the Rs2 + * utility APIs, so there is no embedded HTTP server and no Agent Server + * dependency. + * + *

Known limitations

+ *
    + *
  • Active scripts list is heuristic (enumerates enabled plugins).
  • + *
  • The blocking-event "running" flag has no public getter on the client, + * so the Antiban State panel reads it by reflection and omits it when + * that is not available on the running client version.
  • + *
+ */ +@PluginDescriptor( + name = "[P] " + "Microbot Dashboard Plus", + description = "Native Swing monitoring dashboard for your Microbot session. Floating window plus a compact sidebar panel. No HTTP, no Agent Server dependency.", + tags = {"dashboard", "monitoring", "microbot", "plus"}, + authors = {"pjmarz"}, + version = MicrobotDashboardPlusPlugin.version, + minClientVersion = "2.0.13", + cardUrl = "https://chsami.github.io/Microbot-Hub/MicrobotDashboardPlusPlugin/assets/card.png", + iconUrl = "https://chsami.github.io/Microbot-Hub/MicrobotDashboardPlusPlugin/assets/icon.png", + enabledByDefault = PluginConstants.DEFAULT_ENABLED, + isExternal = PluginConstants.IS_EXTERNAL +) +@Slf4j +public class MicrobotDashboardPlusPlugin extends Plugin { + + public static final String version = "1.2.0"; + + @Inject + private MicrobotDashboardPlusConfig config; + + @Inject + private ClientToolbar clientToolbar; + + private GameStatePoller poller; + private DashboardPanel sidebarPanel; + private NavigationButton navButton; + private DashboardWindow window; + private DiscordNotifier notifier; + private AlertManager alertManager; + + @Provides + MicrobotDashboardPlusConfig provideConfig(ConfigManager configManager) { + return configManager.getConfig(MicrobotDashboardPlusConfig.class); + } + + @Override + protected void startUp() throws AWTException { + // 0. Notification stack. + notifier = new DiscordNotifier(); + notifier.setWebhookUrl(config.discordWebhookUrl()); + notifier.start(); + alertManager = new AlertManager(); + alertManager.setThresholdsFromConfig(config.alertThresholds()); + + // 1. Build the poller. Single-thread executor; starts immediately. + poller = new GameStatePoller(); + poller.setNpcMaxDistance(config.npcMaxDistance()); + poller.setNotifier(notifier); + poller.setAlertManager(alertManager); + poller.setNotificationToggles( + config.notifyLevelUp(), + config.notifyAlerts()); + poller.start(config.pollIntervalSeconds()); + + if (config.notifySessionLifecycle()) { + notifier.send("Dashboard session started."); + } + + // 2. Build the floating window (hidden until shown). + window = new DashboardWindow(poller, config); + + // 3. Build the sidebar panel + register it. + sidebarPanel = new DashboardPanel(poller, this::showWindow); + navButton = NavigationButton.builder() + .tooltip("Microbot Dashboard Plus") + .icon(buildPlaceholderIcon()) + .priority(7) + .panel(sidebarPanel) + .build(); + clientToolbar.addNavigation(navButton); + + // 4. Optional auto-open on enable. + if (config.autoOpenDashboard()) { + showWindow(); + } + + Microbot.log("MicrobotDashboardPlus v" + version + " started (native Swing mode)"); + } + + @Override + protected void shutDown() { + if (notifier != null && config.notifySessionLifecycle()) { + notifier.send("Dashboard session stopped."); + } + if (window != null) { + window.disposeWindow(); + window = null; + } + if (sidebarPanel != null) { + sidebarPanel.detach(); + sidebarPanel = null; + } + if (navButton != null) { + clientToolbar.removeNavigation(navButton); + navButton = null; + } + if (poller != null) { + poller.stop(); + poller = null; + } + if (notifier != null) { + notifier.shutdown(); + notifier = null; + } + alertManager = null; + Microbot.log("MicrobotDashboardPlus v" + version + " stopped"); + } + + @Subscribe + public void onConfigChanged(ConfigChanged event) { + if (!"MicrobotDashboardPlus".equals(event.getGroup())) return; + String key = event.getKey(); + + if (poller != null) { + switch (key) { + case "pollIntervalSeconds": + poller.stop(); + poller.start(config.pollIntervalSeconds()); + break; + case "npcMaxDistance": + poller.setNpcMaxDistance(config.npcMaxDistance()); + poller.refreshNow(); + break; + case "alertThresholds": + poller.setAlertThresholds(config.alertThresholds()); + break; + case "discordWebhookUrl": + if (notifier != null) notifier.setWebhookUrl(config.discordWebhookUrl()); + break; + case "notifyLevelUp": + case "notifyAlerts": + poller.setNotificationToggles( + config.notifyLevelUp(), + config.notifyAlerts()); + break; + default: + break; + } + } + + // Section visibility: any show* key triggers a re-evaluation. + if (window != null && key != null && key.startsWith("show")) { + window.applyVisibility(); + } + } + + private void showWindow() { + if (window == null) return; + SwingUtilities.invokeLater(window::showOrFocus); + } + + /** + * Programmatic 16x16 dashboard icon: a dark background with a small + * "rising chart line" in RuneLite green to evoke the dashboard. + */ + private static BufferedImage buildPlaceholderIcon() { + BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB); + Graphics2D g = img.createGraphics(); + try { + g.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING, + java.awt.RenderingHints.VALUE_ANTIALIAS_ON); + + // Dark rounded background. + g.setColor(new Color(0x2B, 0x2B, 0x2B)); + g.fillRoundRect(0, 0, 16, 16, 4, 4); + + // Subtle border. + g.setColor(new Color(0x44, 0x44, 0x44)); + g.drawRoundRect(0, 0, 15, 15, 4, 4); + + // Rising chart line in RuneLite green. + g.setColor(new Color(0x00, 0xAA, 0x00)); + g.setStroke(new java.awt.BasicStroke(1.5f)); + // Polyline: low-left up to high-right. + int[] xs = {3, 6, 8, 11, 13}; + int[] ys = {12, 9, 10, 5, 4}; + g.drawPolyline(xs, ys, xs.length); + + // Small dot at the right endpoint for emphasis. + g.fillOval(12, 3, 3, 3); + } finally { + g.dispose(); + } + return img; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/PollSnapshot.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/PollSnapshot.java new file mode 100644 index 0000000000..9c3bd37f3c --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/PollSnapshot.java @@ -0,0 +1,141 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.data; + +import lombok.Builder; +import lombok.Value; +import net.runelite.api.Skill; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * Immutable snapshot of all data the dashboard renders in one poll cycle. + * + *

Produced by {@link net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller} + * on each tick or scheduled refresh. Panels read fields directly; no shared + * mutable state between poller and UI. + * + *

Use {@link #empty()} for the "no data yet" initial state. + */ +@Value +@Builder +public class PollSnapshot { + + /** Wall-clock millis when this snapshot was produced. */ + long timestampMillis; + + /** Whether the client was logged in when this snapshot was produced. */ + boolean loggedIn; + + // ------- Player section ------- + String playerName; + int combatLevel; + String gameState; + int worldId; + String profileName; + String positionText; + String animationText; + + // ------- Skills section ------- + /** Per-skill total XP. */ + Map skillXp; + + /** Per-skill level (real, not virtual). */ + Map skillLevels; + + // ------- Active scripts section ------- + List activeScripts; + + // ------- Inventory ------- + /** Inventory items (slot 0..27) with display names + quantities. */ + List inventory; + + // ------- Nearby NPCs ------- + List nearbyNpcs; + + // ------- Antiban + pause state (read in-process) ------- + AntibanState antibanState; + + public static PollSnapshot empty() { + return PollSnapshot.builder() + .timestampMillis(System.currentTimeMillis()) + .loggedIn(false) + .playerName("--") + .gameState("--") + .profileName("--") + .positionText("--") + .animationText("--") + .skillXp(Collections.emptyMap()) + .skillLevels(Collections.emptyMap()) + .activeScripts(Collections.emptyList()) + .inventory(Collections.emptyList()) + .nearbyNpcs(Collections.emptyList()) + .antibanState(AntibanState.builder() + .antibanEnabled(false) + .summary("--") + .build()) + .build(); + } + + @Value + @Builder + public static class ScriptStatus { + String pluginClassName; + String displayName; + String status; // "Running", "Paused", etc. + long runtimeMillis; + } + + @Value + @Builder + public static class InventoryItem { + int slot; + int itemId; + String name; + int quantity; + boolean noted; + } + + @Value + @Builder + public static class NearbyNpc { + String name; + int combatLevel; + int distance; + boolean randomEvent; + } + + /** + * In-process antiban and pause state. Lets a user tell a silent stall + * (everything idle, nothing intentional) from a deliberate anti-AFK pause + * (a micro break or action cooldown is running). + */ + @Value + @Builder + public static class AntibanState { + /** Whether antiban is globally enabled. */ + boolean antibanEnabled; + /** True while an action cooldown is holding the script. */ + boolean actionCooldownActive; + /** True while a micro break is holding the script. */ + boolean microBreakActive; + /** Whether micro breaks are configured to fire at all. */ + boolean takeMicroBreaks; + /** True when every script is globally paused (Microbot.pauseAllScripts). */ + boolean allScriptsPaused; + /** Number of registered blocking-event handlers (login, level-up, death, and so on). */ + int blockingEventCount; + /** + * True if a blocking event is actively running right now. Read by + * reflection; null when the running flag could not be read on this + * client version. + */ + Boolean blockingEventRunning; + /** + * One-line plain reason for the current hold, or "Running" when nothing + * is holding the script. Examples: "Micro break in progress", + * "Action cooldown", "All scripts paused". + */ + String summary; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java new file mode 100644 index 0000000000..6e619d643f --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java @@ -0,0 +1,138 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.data; + +import net.runelite.api.Skill; + +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.EnumMap; +import java.util.Map; + +/** + * Tracks per-skill XP history to compute deltas and rolling XP/hr rates. + * + *

For each skill, maintains: + *

    + *
  • The XP value observed at page-load time (baseline for "Δ since session start")
  • + *
  • A bounded deque of (timestamp, xp) samples within the rolling window + * (default 5 minutes) used to compute XP/hr
  • + *
+ * + *

Thread-safety: record() runs on the client thread while the read methods + * (getSamples, xpPerHour, deltaSinceBaseline, baselineFor) run on the EDT + * during paint. All public methods are synchronized so the per-skill deques + * and baseline map are never mutated and iterated concurrently. + */ +public class XpHistory { + + /** Retention window for the sample deque. Long enough to feed the 24h chart. */ + public static final long RETENTION_WINDOW_MS = 24 * 60 * 60 * 1000L; // 24 h + /** Inner window used for XP/hr rate calculation. */ + public static final long RATE_WINDOW_MS = 5 * 60 * 1000L; // 5 min + + private final Map baselineXp = new EnumMap<>(Skill.class); + private final Map> samplesBySkill = new EnumMap<>(Skill.class); + + /** + * Record an XP observation. First call per skill establishes the baseline. + */ + public synchronized void record(Skill skill, int currentXp) { + baselineXp.putIfAbsent(skill, currentXp); + + long now = System.currentTimeMillis(); + Deque samples = samplesBySkill.computeIfAbsent(skill, k -> new ArrayDeque<>()); + samples.addLast(new Sample(now, currentXp)); + + // Trim samples beyond the long retention window (keeps chart data + // available; XP/hr filters internally for the rate window). + long cutoff = now - RETENTION_WINDOW_MS; + while (!samples.isEmpty() && samples.peekFirst().timestampMillis < cutoff) { + samples.pollFirst(); + } + } + + /** XP gained since the first observation for this skill. */ + public synchronized int deltaSinceBaseline(Skill skill, int currentXp) { + Integer baseline = baselineXp.get(skill); + return baseline == null ? 0 : Math.max(0, currentXp - baseline); + } + + /** + * Extrapolated XP/hr based on the {@link #RATE_WINDOW_MS} rolling window. + * Returns 0 if fewer than 2 samples in that window or if no XP has been + * gained in it. + */ + public synchronized int xpPerHour(Skill skill) { + Deque samples = samplesBySkill.get(skill); + if (samples == null || samples.size() < 2) { + return 0; + } + + long now = System.currentTimeMillis(); + long rateCutoff = now - RATE_WINDOW_MS; + + Sample first = null; + for (Sample s : samples) { + if (s.timestampMillis >= rateCutoff) { + first = s; + break; + } + } + if (first == null) return 0; + + Sample last = samples.peekLast(); + long elapsedMs = last.timestampMillis - first.timestampMillis; + if (elapsedMs <= 0) return 0; + + int xpDelta = last.xp - first.xp; + if (xpDelta <= 0) return 0; + + return (int) ((xpDelta * 3_600_000.0) / elapsedMs); + } + + /** Reset all tracking. Used on plugin reload or "Clear" action. */ + public synchronized void reset() { + baselineXp.clear(); + samplesBySkill.clear(); + } + + /** + * Snapshot of all samples for a skill, oldest first. Used by the XP chart + * for time-series rendering. Returned list is a defensive copy. + */ + public synchronized java.util.List getSamples(Skill skill) { + Deque samples = samplesBySkill.get(skill); + if (samples == null) return java.util.Collections.emptyList(); + java.util.List out = new java.util.ArrayList<>(samples.size()); + for (Sample s : samples) { + out.add(new SamplePoint(s.timestampMillis, s.xp)); + } + return out; + } + + /** Baseline XP for a skill (the first observation we ever recorded). 0 if none. */ + public synchronized int baselineFor(Skill skill) { + Integer b = baselineXp.get(skill); + return b == null ? 0 : b; + } + + private static final class Sample { + final long timestampMillis; + final int xp; + + Sample(long timestampMillis, int xp) { + this.timestampMillis = timestampMillis; + this.xp = xp; + } + } + + /** Public projection of an XP sample for chart use. */ + public static final class SamplePoint { + public final long timestampMillis; + public final int xp; + + public SamplePoint(long timestampMillis, int xp) { + this.timestampMillis = timestampMillis; + this.xp = xp; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/AlertManager.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/AlertManager.java new file mode 100644 index 0000000000..de42ec61a6 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/AlertManager.java @@ -0,0 +1,89 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.notify; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.api.Skill; + +import java.util.Collections; +import java.util.EnumMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * Parses + tracks per-skill level alert thresholds and detects crossings. + * + *

Threshold input format: {@code "MINING:60, WOODCUTTING:80, FISHING:70"}. + * Skill names follow the OSRS API {@link Skill} enum (case-insensitive on + * parse). Levels are integers in [1, 99]. Invalid entries are skipped with a + * debug log. + * + *

State: a set of {@code (Skill, level)} pairs already fired. Crossings + * fire exactly once per (skill, level) pair across the session. + */ +@Slf4j +public class AlertManager { + + private Map thresholds = new EnumMap<>(Skill.class); + private final Set fired = new HashSet<>(); + + public synchronized void setThresholdsFromConfig(String csv) { + // Re-arm the once-per-session dedupe so adjusted or re-added thresholds + // can fire again after the user edits config. + resetFired(); + Map next = new EnumMap<>(Skill.class); + if (csv == null || csv.trim().isEmpty()) { + this.thresholds = next; + return; + } + for (String token : csv.split(",")) { + String t = token.trim(); + if (t.isEmpty()) continue; + int colon = t.indexOf(':'); + if (colon <= 0 || colon >= t.length() - 1) { + log.debug("AlertManager: skipping malformed token '{}'", t); + continue; + } + String skillStr = t.substring(0, colon).trim().toUpperCase(); + String levelStr = t.substring(colon + 1).trim(); + try { + Skill s = Skill.valueOf(skillStr); + int level = Integer.parseInt(levelStr); + if (level >= 1 && level <= 99) next.put(s, level); + else log.debug("AlertManager: level out of range '{}'", level); + } catch (Throwable ex) { + log.debug("AlertManager: invalid token '{}' ({})", t, ex.getClass().getSimpleName()); + } + } + this.thresholds = next; + } + + /** + * Returns true if {@code level} just crossed (i.e. {@code >=}) the + * configured threshold for {@code skill} and we haven't fired the alert + * for that pair yet. Marks the pair as fired. + */ + public synchronized boolean checkCrossing(Skill skill, int level) { + Integer threshold = thresholds.get(skill); + if (threshold == null) return false; + if (level < threshold) return false; + String key = skill.name() + ":" + threshold; + if (fired.contains(key)) return false; + fired.add(key); + return true; + } + + /** Threshold for a given skill, or null if not configured. */ + public synchronized Integer thresholdFor(Skill skill) { + return thresholds.get(skill); + } + + /** Read-only snapshot of configured thresholds. */ + public synchronized Map getThresholds() { + return Collections.unmodifiableMap(new EnumMap<>(thresholds)); + } + + /** Reset fire-state. Used when user changes config or resets the session. */ + public synchronized void resetFired() { + fired.clear(); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/DiscordNotifier.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/DiscordNotifier.java new file mode 100644 index 0000000000..64680628ea --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/notify/DiscordNotifier.java @@ -0,0 +1,159 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.notify; + +import lombok.extern.slf4j.Slf4j; + +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URI; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +/** + * Async Discord webhook sender. + * + *

POST a JSON body {@code {"content": "..."}} to the configured webhook URL. + * Single-thread executor with a daemon worker, so notifications never block + * the poller thread or the EDT. Webhook URL is treated as a secret: never + * logged, never returned in errors, only used internally. + * + *

Discord rate limit is generous (~30/min per webhook); we don't bother + * with backoff. Failures are logged at DEBUG level so a misconfigured URL + * doesn't spam INFO/WARN. + * + *

Usage: + *

+ *   DiscordNotifier d = new DiscordNotifier();
+ *   d.setWebhookUrl("https://discord.com/api/webhooks/...");
+ *   d.send("Mining reached level 60!");
+ *   ...
+ *   d.shutdown();
+ * 
+ */ +@Slf4j +public class DiscordNotifier { + + private static final int CONNECT_TIMEOUT_MS = 4_000; + private static final int READ_TIMEOUT_MS = 4_000; + private static final int MAX_BODY_LENGTH = 1900; // Discord cap is 2000 -- leave headroom. + + private volatile String webhookUrl = ""; + private ScheduledExecutorService executor; + + public synchronized void setWebhookUrl(String url) { + this.webhookUrl = url == null ? "" : url.trim(); + } + + public boolean isConfigured() { + String u = webhookUrl; + if (u == null || u.isEmpty()) return false; + try { + URI uri = URI.create(u); + if (!"https".equalsIgnoreCase(uri.getScheme())) return false; + String host = uri.getHost(); + if (host == null) return false; + host = host.toLowerCase(); + boolean validHost = host.equals("discord.com") || host.equals("discordapp.com") + || host.endsWith(".discord.com") || host.endsWith(".discordapp.com"); + String path = uri.getPath(); + return validHost && path != null && path.startsWith("/api/webhooks/"); + } catch (Throwable t) { + return false; + } + } + + public synchronized void start() { + if (executor != null) return; + executor = Executors.newSingleThreadScheduledExecutor(r -> { + Thread t = new Thread(r, "MicrobotDashboardPlus-Discord"); + t.setDaemon(true); + return t; + }); + } + + public synchronized void shutdown() { + if (executor != null) { + executor.shutdownNow(); + try { executor.awaitTermination(1, TimeUnit.SECONDS); } + catch (InterruptedException ignored) { Thread.currentThread().interrupt(); } + executor = null; + } + } + + /** Fire-and-forget notification. Returns immediately. */ + public void send(String message) { + if (!isConfigured()) return; + if (message == null || message.isEmpty()) return; + if (executor == null) start(); + + // Snapshot URL so the worker doesn't race against setWebhookUrl. + final String url = webhookUrl; + final String body = truncate(message, MAX_BODY_LENGTH); + try { + executor.submit(() -> postSafely(url, body)); + } catch (Throwable t) { + log.debug("Discord submit failed: {}", t.getMessage()); + } + } + + private static void postSafely(String url, String content) { + HttpURLConnection conn = null; + try { + URI uri = URI.create(url); + URL u = uri.toURL(); + conn = (HttpURLConnection) u.openConnection(); + conn.setRequestMethod("POST"); + conn.setConnectTimeout(CONNECT_TIMEOUT_MS); + conn.setReadTimeout(READ_TIMEOUT_MS); + conn.setDoOutput(true); + conn.setRequestProperty("Content-Type", "application/json; charset=utf-8"); + conn.setRequestProperty("User-Agent", "MicrobotDashboardPlus"); + + String payload = "{\"content\":\"" + jsonEscape(content) + "\"}"; + byte[] bytes = payload.getBytes(StandardCharsets.UTF_8); + try (OutputStream os = conn.getOutputStream()) { + os.write(bytes); + } + + int code = conn.getResponseCode(); + // Discord returns 204 No Content on success. + if (code < 200 || code >= 300) { + log.debug("Discord webhook returned {} (not logging URL or body)", code); + } + } catch (Throwable t) { + // Never include the URL in the log message. + log.debug("Discord webhook send failed: {}", t.getClass().getSimpleName()); + } finally { + if (conn != null) conn.disconnect(); + } + } + + private static String jsonEscape(String s) { + if (s == null) return ""; + StringBuilder b = new StringBuilder(s.length() + 8); + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + switch (c) { + case '"': b.append("\\\""); break; + case '\\': b.append("\\\\"); break; + case '\n': b.append("\\n"); break; + case '\r': b.append("\\r"); break; + case '\t': b.append("\\t"); break; + default: + if (c < 0x20) { + b.append(String.format("\\u%04x", (int) c)); + } else { + b.append(c); + } + } + } + return b.toString(); + } + + private static String truncate(String s, int max) { + if (s == null) return ""; + return s.length() <= max ? s : s.substring(0, max - 1) + "…"; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/AntibanStatePanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/AntibanStatePanel.java new file mode 100644 index 0000000000..908e2f639b --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/AntibanStatePanel.java @@ -0,0 +1,140 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import java.awt.Color; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; + +/** + * Antiban state section: shows whether the script is genuinely running or is + * being held by intentional anti-AFK behavior. + * + *

When a session looks stuck this panel tells you whether it is a real + * stall (nothing holding it, so something is wrong) or a deliberate pause (a + * micro break or action cooldown is running, which is expected). It reads the + * in-process antiban flags, the global pause switch, and the blocking-event + * handlers; nothing here touches the disk. + * + *

    + *
  • State - one-line plain reason ("Running", "Micro break in + * progress", "All scripts paused", and so on).
  • + *
  • Antiban - whether antiban is globally enabled.
  • + *
  • Action cooldown / Micro break - the two anti-AFK holds.
  • + *
  • All scripts paused - the global pause switch.
  • + *
  • Blocking events - registered handler count, with "(running)" + * appended when one is executing.
  • + *
+ */ +public class AntibanStatePanel extends DashboardSection { + + private final JLabel state = mkValue(); + private final JLabel antiban = mkValue(); + private final JLabel cooldown = mkValue(); + private final JLabel microBreak = mkValue(); + private final JLabel paused = mkValue(); + private final JLabel blocking = mkValue(); + + public AntibanStatePanel(GameStatePoller poller) { + super("Antiban State", poller); + setSubtitle("(stall vs intentional pause)"); + add(buildGrid(), java.awt.BorderLayout.CENTER); + } + + private JPanel buildGrid() { + JPanel grid = new JPanel(new GridBagLayout()); + grid.setOpaque(false); + + GridBagConstraints c = new GridBagConstraints(); + c.fill = GridBagConstraints.HORIZONTAL; + c.anchor = GridBagConstraints.WEST; + c.insets = new Insets(2, 4, 2, 4); + + int row = 0; + addRow(grid, c, row++, "State", state); + addRow(grid, c, row++, "Antiban", antiban); + addRow(grid, c, row++, "Action cooldown", cooldown); + addRow(grid, c, row++, "Micro break", microBreak); + addRow(grid, c, row++, "All scripts paused", paused); + addRow(grid, c, row, "Blocking events", blocking); + + return grid; + } + + private static void addRow(JPanel grid, GridBagConstraints c, int row, String label, JLabel value) { + c.gridx = 0; + c.gridy = row; + c.weightx = 0; + JLabel lbl = new JLabel(label); + lbl.setForeground(ColorScheme.LIGHT_GRAY_COLOR); + lbl.setFont(FontManager.getRunescapeSmallFont()); + grid.add(lbl, c); + + c.gridx = 1; + c.weightx = 1.0; + grid.add(value, c); + } + + private static JLabel mkValue() { + JLabel l = new JLabel("--"); + l.setForeground(Color.WHITE); + l.setFont(FontManager.getRunescapeSmallFont()); + return l; + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null || snapshot.getAntibanState() == null) { + state.setText("--"); + return; + } + PollSnapshot.AntibanState a = snapshot.getAntibanState(); + + String summary = a.getSummary() == null ? "--" : a.getSummary(); + state.setText(summary); + // Green when genuinely running, gold when intentionally held, gray when + // unknown. Lets the user read the state at a glance. + boolean held = a.isAllScriptsPaused() || a.isMicroBreakActive() + || a.isActionCooldownActive() || Boolean.TRUE.equals(a.getBlockingEventRunning()); + if ("--".equals(summary) || "unavailable".equals(summary)) { + state.setForeground(Color.GRAY); + } else if (held) { + state.setForeground(ColorScheme.PROGRESS_INPROGRESS_COLOR); + } else { + state.setForeground(ColorScheme.PROGRESS_COMPLETE_COLOR); + } + + antiban.setText(a.isAntibanEnabled() ? "on" : "off"); + antiban.setForeground(a.isAntibanEnabled() ? Color.WHITE : Color.GRAY); + + setBool(cooldown, a.isActionCooldownActive()); + setBool(microBreak, a.isMicroBreakActive()); + setBool(paused, a.isAllScriptsPaused()); + + blocking.setText(blockingText(a)); + blocking.setForeground(Color.WHITE); + } + + /** "yes" highlighted gold when an anti-AFK hold is active, "no" muted otherwise. */ + private static void setBool(JLabel label, boolean active) { + label.setText(active ? "yes" : "no"); + label.setForeground(active ? ColorScheme.PROGRESS_INPROGRESS_COLOR : Color.GRAY); + } + + private static String blockingText(PollSnapshot.AntibanState a) { + int count = a.getBlockingEventCount(); + Boolean running = a.getBlockingEventRunning(); + StringBuilder sb = new StringBuilder(); + sb.append(count).append(count == 1 ? " handler" : " handlers"); + if (Boolean.TRUE.equals(running)) { + sb.append(" (running)"); + } + return sb.toString(); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/DashboardSection.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/DashboardSection.java new file mode 100644 index 0000000000..e8e954cd38 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/DashboardSection.java @@ -0,0 +1,111 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.EmptyBorder; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.FlowLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.util.function.Consumer; + +/** + * Base for every dashboard section panel. Provides: + *
    + *
  • A header row that NEVER truncates the title: a {@link GridBagLayout} + * with title + subtitle pinned left (weightx=0), a flex spacer in the + * middle (weightx=1), and controls pinned right (weightx=0).
  • + *
  • BorderLayout body with the section content in the center.
  • + *
  • Auto-registration with the {@link GameStatePoller} on construct and + * {@link #detach()} cleanup on plugin shutdown.
  • + *
+ * + *

The header uses GridBagLayout rather than BorderLayout(WEST/EAST) + + * FlowLayout so the title JLabel doesn't auto-ellipsize when its preferred + * width is calculated tightly against the custom RuneLite font. + */ +public abstract class DashboardSection extends JPanel { + + protected final GameStatePoller poller; + private final Consumer snapshotListener; + private final JLabel subtitleLabel; + private final JPanel headerRight; + + protected DashboardSection(String title, GameStatePoller poller) { + super(new BorderLayout(0, 4)); + this.poller = poller; + setBackground(ColorScheme.DARKER_GRAY_COLOR); + setBorder(new EmptyBorder(8, 10, 8, 10)); + + JPanel header = new JPanel(new GridBagLayout()); + header.setOpaque(false); + + GridBagConstraints c = new GridBagConstraints(); + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.WEST; + c.weightx = 0; + c.weighty = 0; + c.insets = new Insets(0, 0, 0, 6); + + // Title (col 0). + JLabel titleLabel = new JLabel(title); + titleLabel.setForeground(ColorScheme.LIGHT_GRAY_COLOR); + titleLabel.setFont(FontManager.getRunescapeBoldFont()); + c.gridx = 0; + header.add(titleLabel, c); + + // Subtitle (col 1). + subtitleLabel = new JLabel(""); + subtitleLabel.setForeground(Color.GRAY); + subtitleLabel.setFont(FontManager.getRunescapeSmallFont()); + c.gridx = 1; + header.add(subtitleLabel, c); + + // Flex spacer (col 2). + c.gridx = 2; + c.weightx = 1.0; + c.fill = GridBagConstraints.HORIZONTAL; + JPanel spacer = new JPanel(); + spacer.setOpaque(false); + header.add(spacer, c); + + // Controls (col 3). + c.gridx = 3; + c.weightx = 0; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.EAST; + c.insets = new Insets(0, 6, 0, 0); + headerRight = new JPanel(new FlowLayout(FlowLayout.RIGHT, 6, 0)); + headerRight.setOpaque(false); + header.add(headerRight, c); + + add(header, BorderLayout.NORTH); + + snapshotListener = this::applySnapshot; + poller.addListener(snapshotListener); + } + + public void detach() { + poller.removeListener(snapshotListener); + } + + protected void setSubtitle(String text) { + subtitleLabel.setText(text == null ? "" : text); + } + + /** Add an in-header control (right-aligned). */ + protected void addHeaderControl(Component component) { + headerRight.add(component); + } + + /** Called on every snapshot. Always invoked on the EDT. */ + protected abstract void applySnapshot(PollSnapshot snapshot); +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/EventLogPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/EventLogPanel.java new file mode 100644 index 0000000000..92eb710c22 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/EventLogPanel.java @@ -0,0 +1,122 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.DefaultListModel; +import javax.swing.JList; +import javax.swing.JScrollPane; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.ArrayDeque; +import java.util.Deque; + +/** + * Event Log section: rolling ring buffer of the last 10 state-change events + * observed by the dashboard (login / logout / world hop). Spans full width. + * + *

Events are derived from snapshot diffs. The ring is in-memory only. + */ +public class EventLogPanel extends DashboardSection { + + private static final int RING_SIZE = 10; + private static final DateTimeFormatter TIME_FMT = DateTimeFormatter + .ofPattern("HH:mm:ss") + .withZone(ZoneId.systemDefault()); + + private final DefaultListModel model = new DefaultListModel<>(); + private final Deque ring = new ArrayDeque<>(RING_SIZE); + private final JList list; + + private boolean lastLoggedIn = false; + private int lastWorld = -1; + private String lastPlayerName = null; + private boolean firstSnapshot = true; + + public EventLogPanel(GameStatePoller poller) { + super("Event Log", poller); + setSubtitle("(last " + RING_SIZE + ")"); + + list = new JList<>(model); + list.setBackground(ColorScheme.DARKER_GRAY_COLOR); + list.setForeground(Color.WHITE); + list.setFont(FontManager.getRunescapeSmallFont()); + list.setCellRenderer(new EntryRenderer()); + + JScrollPane scroll = new JScrollPane(list); + scroll.setBorder(null); + scroll.getViewport().setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setPreferredSize(new Dimension(780, 140)); + add(scroll, BorderLayout.CENTER); + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + + if (firstSnapshot) { + // Establish baseline without firing events. + lastLoggedIn = snapshot.isLoggedIn(); + lastWorld = snapshot.getWorldId(); + lastPlayerName = snapshot.getPlayerName(); + firstSnapshot = false; + } else { + if (snapshot.isLoggedIn() != lastLoggedIn) { + add(snapshot.getTimestampMillis(), + snapshot.isLoggedIn() ? "Logged in" : "Logged out"); + lastLoggedIn = snapshot.isLoggedIn(); + } + if (lastWorld != snapshot.getWorldId() && snapshot.getWorldId() > 0) { + add(snapshot.getTimestampMillis(), + "World hop -> " + snapshot.getWorldId()); + lastWorld = snapshot.getWorldId(); + } + String n = snapshot.getPlayerName(); + if (n != null && !n.equals(lastPlayerName) && !"--".equals(n)) { + add(snapshot.getTimestampMillis(), "Player: " + n); + lastPlayerName = n; + } + } + } + + private void add(long timestampMillis, String text) { + LogEntry entry = new LogEntry(timestampMillis, text); + if (ring.size() >= RING_SIZE) ring.pollLast(); + ring.offerFirst(entry); + // Rebuild model in order (newest first). + model.clear(); + for (LogEntry e : ring) model.addElement(e); + } + + private static final class LogEntry { + final long timestamp; + final String text; + LogEntry(long t, String s) { this.timestamp = t; this.text = s; } + } + + private static class EntryRenderer extends DefaultListCellRenderer { + EntryRenderer() { setFont(FontManager.getRunescapeSmallFont()); } + + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, + boolean isSelected, boolean cellHasFocus) { + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + if (!(value instanceof LogEntry)) return this; + LogEntry e = (LogEntry) value; + String time = TIME_FMT.format(Instant.ofEpochMilli(e.timestamp)); + setText(time + " " + e.text); + setBackground(ColorScheme.DARKER_GRAY_COLOR); + setForeground(Color.WHITE); + return this; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java new file mode 100644 index 0000000000..9799dc1443 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java @@ -0,0 +1,93 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.JEditorPane; +import javax.swing.JScrollPane; +import javax.swing.border.EmptyBorder; +import javax.swing.text.html.HTMLEditorKit; +import javax.swing.text.html.StyleSheet; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; + +/** + * Guide section: in-dashboard reference for panels + config options. Lives at + * the bottom of the floating window. Default ON; users untick + * {@code showGuide} in the Layout config once they're familiar. + * + *

Content is static HTML rendered into a {@link JEditorPane} so we get + * hyperlinks, bullets, and bold formatting for free. + */ +public class GuidePanel extends DashboardSection { + + private static final String GUIDE_HTML = + "" + + "

Panels (toggle visibility in plugin config → Layout):

" + + "
    " + + "
  • Player: name, combat level, login state, world, profile, session duration, position, animation.
  • " + + "
  • Active Scripts: user-facing Microbot plugins currently enabled, per-plugin runtime, Stop button per row.
  • " + + "
  • Inventory: slot grid with item names + quantities; noted items styled distinctly.
  • " + + "
  • Skills: all 22 skills with current level, total XP, gain since session start, rolling 5-min XP/hr, and an ETA to your target level (or the next level while training).
  • " + + "
  • Nearby NPCs: NPC list sorted by distance, max-distance spinner, random-event NPCs highlighted orange.
  • " + + "
  • Antiban State: tells a silent stall apart from an intentional anti-AFK pause. Shows the current state, antiban on/off, action cooldown, micro break, global pause, and blocking-event handlers.
  • " + + "
  • XP Over Time: Java2D line chart with skill + window selectors (5m to 24h). Selection persists across launches.
  • " + + "
  • Event Log: rolling 10-entry ring buffer of login / logout / world-hop events.
  • " + + "
" + + "

Config options:

" + + "
    " + + "
  1. Auto-open dashboard on startup: open the floating window when the plugin enables.
  2. " + + "
  3. Poll interval (sec): refresh rate from game state (1-60, default 5).
  4. " + + "
  5. Nearby NPCs max distance: filter for the NPC panel (1-200 tiles, default 20).
  6. " + + "
  7. Layout toggles: nine on/off switches, one per panel (including this Guide).
  8. " + + "
  9. Discord webhook URL: paste your channel webhook (field is masked; blank disables Discord).
  10. " + + "
  11. Notify on level-up / session lifecycle / alert threshold: three independent toggles.
  12. " + + "
  13. Alert thresholds: comma-separated SKILL:LEVEL pairs (e.g. MINING:60, WOODCUTTING:80). Crossings show an in-window banner and (if Discord is set) send a notification.
  14. " + + "
  15. Skill targets (ETA): comma-separated SKILL:LEVEL pairs (e.g. MINING:70, AGILITY:60) that drive the Skills ETA column.
  16. " + + "
" + + "

Hide this section by unticking Show Guide in plugin config → Layout.

" + + ""; + + public GuidePanel(GameStatePoller poller) { + super("Guide", poller); + setSubtitle("(hide via Layout config once familiar)"); + + JEditorPane editor = new JEditorPane(); + editor.setEditable(false); + editor.setOpaque(false); + editor.setBorder(new EmptyBorder(4, 4, 4, 4)); + + // Use an HTMLEditorKit with a stylesheet that matches the RuneLite + // dark theme. + HTMLEditorKit kit = new HTMLEditorKit(); + StyleSheet css = kit.getStyleSheet(); + String font = FontManager.getRunescapeSmallFont().getFamily(); + int fontSize = FontManager.getRunescapeSmallFont().getSize(); + css.addRule("body { color: #c0c0c0; font-family: '" + font + "'; font-size: " + fontSize + "pt; }"); + css.addRule("b { color: #ffffff; }"); + css.addRule("p { margin: 4px 0; }"); + css.addRule("ul, ol { margin-top: 4px; margin-bottom: 8px; padding-left: 18px; }"); + css.addRule("li { margin: 2px 0; }"); + css.addRule("code { color: #ffeb91; font-family: monospace; }"); + + editor.setEditorKit(kit); + editor.setText(GUIDE_HTML); + editor.setBackground(ColorScheme.DARKER_GRAY_COLOR); + editor.setForeground(Color.LIGHT_GRAY); + + JScrollPane scroll = new JScrollPane(editor); + scroll.setBorder(null); + scroll.getViewport().setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setPreferredSize(new Dimension(780, 320)); + add(scroll, BorderLayout.CENTER); + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + // Static content; nothing to update. + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/InventoryPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/InventoryPanel.java new file mode 100644 index 0000000000..9097dbca6f --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/InventoryPanel.java @@ -0,0 +1,90 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.SwingConstants; +import javax.swing.border.LineBorder; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.text.NumberFormat; +import java.util.Collections; +import java.util.List; + +/** + * Inventory section. Grid of slot cells with name + quantity, fed from the + * {@link PollSnapshot} (the poller reads items via Rs2Inventory). Noted items + * are styled distinctly. + */ +public class InventoryPanel extends DashboardSection { + + private static final NumberFormat NUM = NumberFormat.getIntegerInstance(); + private final JPanel grid; + + public InventoryPanel(GameStatePoller poller) { + super("Inventory", poller); + + grid = new JPanel(new GridLayout(0, 2, 4, 4)); + grid.setOpaque(false); + + JScrollPane scroll = new JScrollPane(grid); + scroll.setBorder(null); + scroll.getViewport().setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setPreferredSize(new Dimension(380, 360)); + add(scroll, BorderLayout.CENTER); + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + List items = snapshot.getInventory(); + rebuildGrid(items == null ? Collections.emptyList() : items); + setSubtitle(items == null ? "" : "(" + items.size() + ")"); + } + + private void rebuildGrid(List items) { + grid.removeAll(); + if (items.isEmpty()) { + JLabel empty = new JLabel("Inventory empty or unavailable"); + empty.setForeground(Color.GRAY); + empty.setFont(FontManager.getRunescapeSmallFont()); + empty.setHorizontalAlignment(SwingConstants.CENTER); + grid.add(empty); + } else { + for (PollSnapshot.InventoryItem item : items) { + grid.add(makeCell(item)); + } + } + grid.revalidate(); + grid.repaint(); + } + + private JPanel makeCell(PollSnapshot.InventoryItem item) { + JPanel cell = new JPanel(new BorderLayout(4, 0)); + cell.setBackground(ColorScheme.DARK_GRAY_COLOR); + cell.setBorder(new LineBorder(ColorScheme.MEDIUM_GRAY_COLOR, 1)); + + JLabel name = new JLabel(item.getName() == null ? "?" : item.getName()); + name.setForeground(item.isNoted() ? ColorScheme.PROGRESS_INPROGRESS_COLOR : Color.WHITE); + name.setFont(FontManager.getRunescapeSmallFont()); + name.setBorder(new javax.swing.border.EmptyBorder(2, 6, 2, 0)); + cell.add(name, BorderLayout.CENTER); + + JLabel qty = new JLabel(NUM.format(item.getQuantity())); + qty.setForeground(ColorScheme.PROGRESS_COMPLETE_COLOR); + qty.setFont(FontManager.getRunescapeSmallFont()); + qty.setBorder(new javax.swing.border.EmptyBorder(2, 0, 2, 6)); + qty.setHorizontalAlignment(SwingConstants.RIGHT); + cell.add(qty, BorderLayout.EAST); + + return cell; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/NearbyNpcsPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/NearbyNpcsPanel.java new file mode 100644 index 0000000000..465ed5a672 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/NearbyNpcsPanel.java @@ -0,0 +1,102 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.DefaultListModel; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JScrollPane; +import javax.swing.JSpinner; +import javax.swing.SpinnerNumberModel; +import javax.swing.event.ChangeListener; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.util.Collections; +import java.util.List; + +/** + * Nearby NPCs section. JList sorted by distance, with an in-header spinner + * to adjust the max-distance filter (1-200 tiles). Updates {@link GameStatePoller#setNpcMaxDistance(int)} + * immediately so the next poll reflects the new bound. + */ +public class NearbyNpcsPanel extends DashboardSection { + + private final DefaultListModel model = new DefaultListModel<>(); + private final JList list; + private final JSpinner maxDistanceSpinner; + + public NearbyNpcsPanel(GameStatePoller poller) { + super("Nearby NPCs", poller); + + // Header spinner: max distance. + JLabel maxLbl = new JLabel("Max"); + maxLbl.setForeground(Color.LIGHT_GRAY); + maxLbl.setFont(FontManager.getRunescapeSmallFont()); + addHeaderControl(maxLbl); + + maxDistanceSpinner = new JSpinner(new SpinnerNumberModel(poller.getNpcMaxDistance(), 1, 200, 1)); + maxDistanceSpinner.setPreferredSize(new Dimension(60, 20)); + maxDistanceSpinner.addChangeListener((ChangeListener) e -> { + int v = (Integer) maxDistanceSpinner.getValue(); + poller.setNpcMaxDistance(v); + poller.refreshNow(); + }); + addHeaderControl(maxDistanceSpinner); + + JLabel tilesLbl = new JLabel("tiles"); + tilesLbl.setForeground(Color.LIGHT_GRAY); + tilesLbl.setFont(FontManager.getRunescapeSmallFont()); + addHeaderControl(tilesLbl); + + // List body. + list = new JList<>(model); + list.setBackground(ColorScheme.DARKER_GRAY_COLOR); + list.setForeground(Color.WHITE); + list.setFont(FontManager.getRunescapeSmallFont()); + list.setSelectionForeground(Color.WHITE); + list.setSelectionBackground(ColorScheme.DARK_GRAY_HOVER_COLOR); + list.setCellRenderer(new NpcCellRenderer()); + + JScrollPane scroll = new JScrollPane(list); + scroll.setBorder(null); + scroll.getViewport().setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setPreferredSize(new Dimension(380, 240)); + add(scroll, BorderLayout.CENTER); + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + List npcs = snapshot.getNearbyNpcs(); + if (npcs == null) npcs = Collections.emptyList(); + model.clear(); + for (PollSnapshot.NearbyNpc n : npcs) model.addElement(n); + setSubtitle("(" + npcs.size() + " within " + poller.getNpcMaxDistance() + " tiles)"); + } + + private static class NpcCellRenderer extends DefaultListCellRenderer { + NpcCellRenderer() { setFont(FontManager.getRunescapeSmallFont()); } + + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, + boolean isSelected, boolean cellHasFocus) { + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + if (!(value instanceof PollSnapshot.NearbyNpc)) return this; + PollSnapshot.NearbyNpc npc = (PollSnapshot.NearbyNpc) value; + String text = npc.getName() + + (npc.getCombatLevel() > 0 ? " (lvl " + npc.getCombatLevel() + ")" : "") + + " - " + npc.getDistance() + " tiles"; + setText(text); + setForeground(npc.isRandomEvent() ? ColorScheme.PROGRESS_INPROGRESS_COLOR : Color.WHITE); + setBackground(isSelected ? ColorScheme.DARK_GRAY_HOVER_COLOR : ColorScheme.DARKER_GRAY_COLOR); + return this; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/PlayerPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/PlayerPanel.java new file mode 100644 index 0000000000..3d5a65ea08 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/PlayerPanel.java @@ -0,0 +1,112 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.time.Duration; + +/** + * Player section: name, combat level, login state, world, profile, session + * duration, position, animation. Static key-value grid laid out with + * GridBagLayout. + */ +public class PlayerPanel extends DashboardSection { + + private final long sessionStartMillis = System.currentTimeMillis(); + + private final JLabel name = mkValue(); + private final JLabel combat = mkValue(); + private final JLabel loggedIn = mkValue(); + private final JLabel gameState = mkValue(); + private final JLabel world = mkValue(); + private final JLabel profile = mkValue(); + private final JLabel sessionDuration = mkValue(); + private final JLabel position = mkValue(); + private final JLabel animation = mkValue(); + + public PlayerPanel(GameStatePoller poller) { + super("Player", poller); + add(buildGrid(), java.awt.BorderLayout.CENTER); + } + + private JPanel buildGrid() { + JPanel grid = new JPanel(new GridBagLayout()); + grid.setOpaque(false); + + GridBagConstraints c = new GridBagConstraints(); + c.fill = GridBagConstraints.HORIZONTAL; + c.anchor = GridBagConstraints.WEST; + c.insets = new Insets(2, 4, 2, 4); + c.weightx = 0; + + int row = 0; + addRow(grid, c, row++, "Name", name); + addRow(grid, c, row++, "Combat", combat); + addRow(grid, c, row++, "Logged in", loggedIn); + addRow(grid, c, row++, "Game state", gameState); + addRow(grid, c, row++, "World", world); + addRow(grid, c, row++, "Profile", profile); + addRow(grid, c, row++, "Session", sessionDuration); + addRow(grid, c, row++, "Position", position); + addRow(grid, c, row, "Animation", animation); + + return grid; + } + + private static void addRow(JPanel grid, GridBagConstraints c, int row, String label, JLabel value) { + c.gridx = 0; + c.gridy = row; + c.weightx = 0; + JLabel lbl = new JLabel(label); + lbl.setForeground(ColorScheme.LIGHT_GRAY_COLOR); + lbl.setFont(FontManager.getRunescapeSmallFont()); + grid.add(lbl, c); + + c.gridx = 1; + c.weightx = 1.0; + grid.add(value, c); + } + + private static JLabel mkValue() { + JLabel l = new JLabel("--"); + l.setForeground(java.awt.Color.WHITE); + l.setFont(FontManager.getRunescapeSmallFont()); + return l; + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + name.setText(safe(snapshot.getPlayerName())); + combat.setText(snapshot.getCombatLevel() <= 0 ? "--" : Integer.toString(snapshot.getCombatLevel())); + loggedIn.setText(snapshot.isLoggedIn() ? "yes" : "no"); + gameState.setText(safe(snapshot.getGameState())); + world.setText(snapshot.getWorldId() <= 0 ? "--" : Integer.toString(snapshot.getWorldId())); + profile.setText(safe(snapshot.getProfileName())); + sessionDuration.setText(formatDuration(System.currentTimeMillis() - sessionStartMillis)); + position.setText(safe(snapshot.getPositionText())); + animation.setText(safe(snapshot.getAnimationText())); + } + + private static String safe(String s) { + return (s == null || s.isEmpty()) ? "--" : s; + } + + private static String formatDuration(long millis) { + if (millis < 0) millis = 0; + Duration d = Duration.ofMillis(millis); + long h = d.toHours(); + long m = d.minusHours(h).toMinutes(); + long s = d.minusHours(h).minusMinutes(m).getSeconds(); + if (h > 0) return String.format("%dh %02dm %02ds", h, m, s); + if (m > 0) return String.format("%dm %02ds", m, s); + return String.format("%ds", s); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/ScriptsPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/ScriptsPanel.java new file mode 100644 index 0000000000..46b661606c --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/ScriptsPanel.java @@ -0,0 +1,212 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.AbstractCellEditor; +import javax.swing.JButton; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.SwingConstants; +import javax.swing.table.AbstractTableModel; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.JTableHeader; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Active Scripts section. JTable: Plugin / Status / Runtime / Action (Stop). + * + *

Stop button calls {@link Microbot#stopPlugin(Plugin)} for the row's + * plugin. Refresh happens implicitly on the next poll. + */ +@Slf4j +public class ScriptsPanel extends DashboardSection { + + private static final String[] COLUMNS = {"Plugin", "Status", "Runtime", "Action"}; + + private final ScriptsTableModel model = new ScriptsTableModel(); + private final JTable table; + + public ScriptsPanel(GameStatePoller poller) { + super("Active Scripts", poller); + + table = new JTable(model); + table.setBackground(ColorScheme.DARKER_GRAY_COLOR); + table.setForeground(Color.WHITE); + table.setFont(FontManager.getRunescapeSmallFont()); + table.setRowHeight(22); + table.setGridColor(ColorScheme.MEDIUM_GRAY_COLOR); + table.setShowVerticalLines(false); + table.setShowHorizontalLines(false); + table.setFillsViewportHeight(true); + table.setOpaque(false); + + JTableHeader header = table.getTableHeader(); + header.setBackground(ColorScheme.DARK_GRAY_COLOR); + header.setForeground(ColorScheme.LIGHT_GRAY_COLOR); + header.setFont(FontManager.getRunescapeSmallFont()); + header.setReorderingAllowed(false); + + table.getColumnModel().getColumn(0).setPreferredWidth(180); + table.getColumnModel().getColumn(1).setPreferredWidth(80); + table.getColumnModel().getColumn(2).setPreferredWidth(80); + table.getColumnModel().getColumn(3).setPreferredWidth(70); + + TableCellRenderer textRenderer = new TextRenderer(); + table.getColumnModel().getColumn(0).setCellRenderer(textRenderer); + table.getColumnModel().getColumn(1).setCellRenderer(textRenderer); + table.getColumnModel().getColumn(2).setCellRenderer(textRenderer); + table.getColumnModel().getColumn(3).setCellRenderer(new StopButtonRenderer()); + table.getColumnModel().getColumn(3).setCellEditor(new StopButtonEditor()); + + JScrollPane scroll = new JScrollPane(table); + scroll.setBorder(null); + scroll.getViewport().setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setPreferredSize(new Dimension(380, 200)); + add(scroll, BorderLayout.CENTER); + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + List rows = snapshot.getActiveScripts(); + model.update(rows == null ? Collections.emptyList() : rows); + setSubtitle("(" + model.getRowCount() + ")"); + } + + private void stopPlugin(String pluginClassName) { + if (pluginClassName == null) return; + try { + Plugin target = null; + for (Plugin p : Microbot.getPluginManager().getPlugins()) { + if (p != null && p.getClass().getName().equals(pluginClassName)) { + target = p; + break; + } + } + if (target == null) { + log.warn("Stop requested but plugin {} not found", pluginClassName); + return; + } + Microbot.stopPlugin(target); + poller.refreshNow(); + } catch (Throwable t) { + log.warn("Stop plugin failed for {}: {}", pluginClassName, t.getMessage(), t); + } + } + + // ------------------------------------------------------------------ + // Table model + // ------------------------------------------------------------------ + + private static final class ScriptsTableModel extends AbstractTableModel { + private List rows = new ArrayList<>(); + + void update(List newRows) { + this.rows = new ArrayList<>(newRows); + fireTableDataChanged(); + } + + @Override public int getRowCount() { return rows.size(); } + @Override public int getColumnCount() { return COLUMNS.length; } + @Override public String getColumnName(int col) { return COLUMNS[col]; } + @Override public boolean isCellEditable(int row, int col) { return col == 3; } + @Override public Class getColumnClass(int col) { return String.class; } + + @Override + public Object getValueAt(int row, int col) { + PollSnapshot.ScriptStatus s = rows.get(row); + switch (col) { + case 0: return s.getDisplayName(); + case 1: return s.getStatus() == null ? "--" : s.getStatus(); + case 2: return formatRuntime(s.getRuntimeMillis()); + case 3: return s.getPluginClassName(); + default: return ""; + } + } + } + + private static String formatRuntime(long ms) { + if (ms <= 0) return "--"; + long secs = ms / 1000; + long h = secs / 3600; + long m = (secs % 3600) / 60; + long s = secs % 60; + if (h > 0) return String.format("%dh %02dm", h, m); + if (m > 0) return String.format("%dm %02ds", m, s); + return String.format("%ds", s); + } + + // ------------------------------------------------------------------ + // Renderers + editors + // ------------------------------------------------------------------ + + private static class TextRenderer extends DefaultTableCellRenderer { + TextRenderer() { setFont(FontManager.getRunescapeSmallFont()); } + @Override + public Component getTableCellRendererComponent(JTable t, Object v, boolean sel, boolean focus, int r, int c) { + Component cmp = super.getTableCellRendererComponent(t, v, sel, focus, r, c); + cmp.setBackground(ColorScheme.DARKER_GRAY_COLOR); + cmp.setForeground(Color.WHITE); + return cmp; + } + } + + private static class StopButtonRenderer extends JButton implements TableCellRenderer { + StopButtonRenderer() { + setText("Stop"); + setFont(FontManager.getRunescapeSmallFont()); + setBackground(new Color(0x5c2929)); + setForeground(Color.WHITE); + setFocusPainted(false); + setBorderPainted(false); + setHorizontalAlignment(SwingConstants.CENTER); + } + @Override + public Component getTableCellRendererComponent(JTable t, Object v, boolean sel, boolean focus, int r, int c) { + return this; + } + } + + private class StopButtonEditor extends AbstractCellEditor implements TableCellEditor { + private final JButton button; + private String activePluginClass; + + StopButtonEditor() { + button = new JButton("Stop"); + button.setFont(FontManager.getRunescapeSmallFont()); + button.setBackground(new Color(0x7c3939)); + button.setForeground(Color.WHITE); + button.setFocusPainted(false); + button.setBorderPainted(false); + button.addActionListener(e -> { + String target = activePluginClass; + fireEditingStopped(); + if (target != null) stopPlugin(target); + }); + } + @Override + public Component getTableCellEditorComponent(JTable t, Object v, boolean sel, int r, int c) { + activePluginClass = (v == null) ? null : v.toString(); + return button; + } + @Override + public Object getCellEditorValue() { + return activePluginClass; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/SkillsPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/SkillsPanel.java new file mode 100644 index 0000000000..29be9bb5de --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/SkillsPanel.java @@ -0,0 +1,324 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.api.Experience; +import net.runelite.api.Skill; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.XpHistory; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.SwingConstants; +import javax.swing.table.AbstractTableModel; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.JTableHeader; +import javax.swing.table.TableCellRenderer; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.List; +import java.util.Map; + +/** + * Skills section: 6-column JTable. Skill / Level / XP / +Δ / XP/hr / ETA. + * + *

    + *
  • Δ is gain since first observation (set when the poller starts).
  • + *
  • XP/hr is extrapolated from the 5-minute rolling window in {@link XpHistory}.
  • + *
  • ETA is the time to reach a target level, computed from the current + * XP/hr and {@link Experience#getXpForLevel(int)}. The target is read + * from the per-skill targets you set in config; the skill you are + * actively training (the one currently gaining XP) falls back to the + * next level when no target is set.
  • + *
  • Zero values render muted; positive deltas render green.
  • + *
+ */ +public class SkillsPanel extends DashboardSection { + + private static final NumberFormat NUM = NumberFormat.getIntegerInstance(); + private static final String[] COLUMNS = {"Skill", "Level", "XP", "+Δ", "XP/hr", "ETA"}; + private static final Skill[] SKILL_ORDER = buildSkillOrder(); + + private static final String CONFIG_GROUP = "MicrobotDashboardPlus"; + private static final String K_SKILL_TARGETS = "skillTargets"; + + private static Skill[] buildSkillOrder() { + List list = new ArrayList<>(); + for (Skill s : Skill.values()) { + if (s == Skill.OVERALL) continue; + list.add(s); + } + return list.toArray(new Skill[0]); + } + + private final SkillsTableModel model; + private final JTable table; + + public SkillsPanel(GameStatePoller poller) { + super("Skills", poller); + setSubtitle("(Δ since session start · XP/hr 5-min rolling · ETA to target)"); + + model = new SkillsTableModel(); + table = new JTable(model); + table.setBackground(ColorScheme.DARKER_GRAY_COLOR); + table.setForeground(Color.WHITE); + table.setFont(FontManager.getRunescapeSmallFont()); + table.setRowHeight(18); + table.setGridColor(ColorScheme.MEDIUM_GRAY_COLOR); + table.setShowVerticalLines(false); + table.setShowHorizontalLines(false); + table.setFillsViewportHeight(true); + table.setOpaque(false); + table.setSelectionBackground(ColorScheme.DARK_GRAY_HOVER_COLOR); + table.setSelectionForeground(Color.WHITE); + + JTableHeader header = table.getTableHeader(); + header.setBackground(ColorScheme.DARK_GRAY_COLOR); + header.setForeground(ColorScheme.LIGHT_GRAY_COLOR); + header.setFont(FontManager.getRunescapeSmallFont()); + header.setReorderingAllowed(false); + + // Column widths. + table.getColumnModel().getColumn(0).setPreferredWidth(100); + table.getColumnModel().getColumn(1).setPreferredWidth(45); + table.getColumnModel().getColumn(2).setPreferredWidth(75); + table.getColumnModel().getColumn(3).setPreferredWidth(55); + table.getColumnModel().getColumn(4).setPreferredWidth(65); + table.getColumnModel().getColumn(5).setPreferredWidth(80); + + // Renderers. + TableCellRenderer rightAlignMono = new MonoRightRenderer(); + table.getColumnModel().getColumn(1).setCellRenderer(rightAlignMono); + table.getColumnModel().getColumn(2).setCellRenderer(rightAlignMono); + table.getColumnModel().getColumn(3).setCellRenderer(new DeltaRenderer()); + table.getColumnModel().getColumn(4).setCellRenderer(new RateRenderer()); + table.getColumnModel().getColumn(5).setCellRenderer(new EtaRenderer()); + + JScrollPane scroll = new JScrollPane(table); + scroll.setBorder(null); + scroll.getViewport().setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setBackground(ColorScheme.DARKER_GRAY_COLOR); + scroll.setPreferredSize(new Dimension(440, 420)); + add(scroll, BorderLayout.CENTER); + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + model.update(snapshot, poller.getXpHistory()); + } + + // ------------------------------------------------------------------ + // Table model + // ------------------------------------------------------------------ + + private static final class SkillsTableModel extends AbstractTableModel { + private final Object[][] rows = new Object[SKILL_ORDER.length][COLUMNS.length]; + + SkillsTableModel() { + for (int i = 0; i < SKILL_ORDER.length; i++) { + rows[i][0] = capitalize(SKILL_ORDER[i].getName()); + rows[i][1] = "--"; + rows[i][2] = "--"; + rows[i][3] = 0; + rows[i][4] = 0; + rows[i][5] = "--"; + } + } + + void update(PollSnapshot snapshot, XpHistory history) { + Map targets = readSkillTargets(); + for (int i = 0; i < SKILL_ORDER.length; i++) { + Skill s = SKILL_ORDER[i]; + Integer xp = snapshot.getSkillXp() == null ? null : snapshot.getSkillXp().get(s); + Integer lvl = snapshot.getSkillLevels() == null ? null : snapshot.getSkillLevels().get(s); + int rate = history.xpPerHour(s); + rows[i][1] = lvl == null ? "--" : NUM.format(lvl); + rows[i][2] = xp == null ? "--" : NUM.format(xp); + rows[i][3] = xp == null ? 0 : history.deltaSinceBaseline(s, xp); + rows[i][4] = rate; + rows[i][5] = computeEta(s, xp, lvl, rate, targets); + } + fireTableDataChanged(); + } + + /** + * ETA text to the target level for this skill. + * + *

Target selection: an explicit per-skill target wins. Otherwise, + * if the skill is currently gaining XP (rate > 0) we target the next + * level so the skill being actively trained always shows an estimate. + * Skills with no target and no XP gain show "--". + */ + private static String computeEta(Skill s, Integer xp, Integer lvl, int rate, Map targets) { + if (xp == null || lvl == null) return "--"; + + Integer target = targets.get(s); + if (target == null) { + // No explicit target: only the actively-training skill gets a + // next-level estimate. + if (rate <= 0 || lvl >= Experience.MAX_REAL_LEVEL) return "--"; + target = lvl + 1; + } + if (target <= lvl) return "done"; + if (target > Experience.MAX_REAL_LEVEL) target = Experience.MAX_REAL_LEVEL; + if (rate <= 0) return "--"; // need a rate to estimate + + int targetXp; + try { + targetXp = Experience.getXpForLevel(target); + } catch (IllegalArgumentException ex) { + return "--"; + } + int remaining = targetXp - xp; + if (remaining <= 0) return "done"; + + double hours = remaining / (double) rate; + return "L" + target + " " + formatEta(hours); + } + + @Override public int getRowCount() { return rows.length; } + @Override public int getColumnCount() { return COLUMNS.length; } + @Override public String getColumnName(int col) { return COLUMNS[col]; } + @Override public Object getValueAt(int row, int col) { return rows[row][col]; } + @Override public boolean isCellEditable(int row, int col) { return false; } + @Override public Class getColumnClass(int col) { + return (col == 3 || col == 4) ? Integer.class : String.class; + } + } + + /** Hours as a compact human ETA: "12m", "3h 25m", "2d 4h". */ + private static String formatEta(double hours) { + if (hours <= 0 || Double.isNaN(hours) || Double.isInfinite(hours)) return "--"; + long totalMinutes = Math.round(hours * 60.0); + if (totalMinutes < 1) return "<1m"; + if (totalMinutes < 60) return totalMinutes + "m"; + long h = totalMinutes / 60; + long m = totalMinutes % 60; + if (h < 24) return h + "h " + m + "m"; + long d = h / 24; + long remH = h % 24; + return d + "d " + remH + "h"; + } + + /** + * Parse the per-skill targets config (comma-separated SKILL:LEVEL pairs, + * for example "MINING:70, AGILITY:60"). Unknown skill names and bad levels + * are skipped. Returns an empty map when nothing is configured. + */ + private static Map readSkillTargets() { + Map out = new EnumMap<>(Skill.class); + String raw; + try { + raw = Microbot.getConfigManager().getConfiguration(CONFIG_GROUP, K_SKILL_TARGETS); + } catch (Throwable t) { + return out; + } + if (raw == null || raw.trim().isEmpty()) return out; + + for (String token : raw.split(",")) { + String pair = token.trim(); + if (pair.isEmpty()) continue; + int colon = pair.indexOf(':'); + if (colon <= 0 || colon >= pair.length() - 1) continue; + String name = pair.substring(0, colon).trim().toUpperCase(); + String levelStr = pair.substring(colon + 1).trim(); + try { + Skill skill = Skill.valueOf(name); + int level = Integer.parseInt(levelStr); + if (level >= 1 && level <= Experience.MAX_REAL_LEVEL) { + out.put(skill, level); + } + } catch (IllegalArgumentException ignored) { + // Unknown skill name or non-numeric level: skip silently. + } + } + return out; + } + + private static String capitalize(String name) { + if (name == null || name.isEmpty()) return name; + return Character.toUpperCase(name.charAt(0)) + name.substring(1).toLowerCase(); + } + + // ------------------------------------------------------------------ + // Cell renderers + // ------------------------------------------------------------------ + + private static class MonoRightRenderer extends DefaultTableCellRenderer { + MonoRightRenderer() { + setHorizontalAlignment(SwingConstants.RIGHT); + setFont(FontManager.getRunescapeSmallFont()); + } + @Override + public Component getTableCellRendererComponent(JTable t, Object v, boolean sel, boolean focus, int r, int c) { + Component cmp = super.getTableCellRendererComponent(t, v, sel, focus, r, c); + cmp.setBackground(ColorScheme.DARKER_GRAY_COLOR); + cmp.setForeground(Color.WHITE); + return cmp; + } + } + + private static class DeltaRenderer extends DefaultTableCellRenderer { + DeltaRenderer() { + setHorizontalAlignment(SwingConstants.RIGHT); + setFont(FontManager.getRunescapeSmallFont()); + } + @Override + public Component getTableCellRendererComponent(JTable t, Object v, boolean sel, boolean focus, int r, int c) { + Component cmp = super.getTableCellRendererComponent(t, v, sel, focus, r, c); + int delta = (v instanceof Integer) ? (Integer) v : 0; + setText(delta > 0 ? "+" + NUM.format(delta) : "0"); + cmp.setBackground(ColorScheme.DARKER_GRAY_COLOR); + cmp.setForeground(delta > 0 ? ColorScheme.PROGRESS_COMPLETE_COLOR : Color.GRAY); + return cmp; + } + } + + private static class RateRenderer extends DefaultTableCellRenderer { + RateRenderer() { + setHorizontalAlignment(SwingConstants.RIGHT); + setFont(FontManager.getRunescapeSmallFont()); + } + @Override + public Component getTableCellRendererComponent(JTable t, Object v, boolean sel, boolean focus, int r, int c) { + Component cmp = super.getTableCellRendererComponent(t, v, sel, focus, r, c); + int rate = (v instanceof Integer) ? (Integer) v : 0; + setText(rate > 0 ? NUM.format(rate) : "--"); + cmp.setBackground(ColorScheme.DARKER_GRAY_COLOR); + cmp.setForeground(rate > 0 ? Color.WHITE : Color.GRAY); + return cmp; + } + } + + private static class EtaRenderer extends DefaultTableCellRenderer { + EtaRenderer() { + setHorizontalAlignment(SwingConstants.RIGHT); + setFont(FontManager.getRunescapeSmallFont()); + } + @Override + public Component getTableCellRendererComponent(JTable t, Object v, boolean sel, boolean focus, int r, int c) { + Component cmp = super.getTableCellRendererComponent(t, v, sel, focus, r, c); + String text = v == null ? "--" : v.toString(); + setText(text); + cmp.setBackground(ColorScheme.DARKER_GRAY_COLOR); + boolean muted = "--".equals(text); + boolean done = "done".equals(text); + if (done) { + cmp.setForeground(ColorScheme.PROGRESS_COMPLETE_COLOR); + } else if (muted) { + cmp.setForeground(Color.GRAY); + } else { + cmp.setForeground(Color.WHITE); + } + return cmp; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/XpChartPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/XpChartPanel.java new file mode 100644 index 0000000000..d115735316 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/XpChartPanel.java @@ -0,0 +1,338 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.panels; + +import net.runelite.api.Skill; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.XpHistory; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.SwingConstants; +import java.awt.BasicStroke; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.geom.Path2D; +import java.util.List; + +/** + * XP-over-time chart. Custom Java2D paint, no dependency on external charting + * libraries. + * + *

Controls (in section header): skill JComboBox + window JComboBox. + * Default selection: Mining @ 30 minute window. Y axis: XP gained relative + * to the earliest sample in the visible window. X axis: time. + * + *

Spans full width of the dashboard grid. + */ +public class XpChartPanel extends DashboardSection { + + private static final WindowChoice[] WINDOWS = { + new WindowChoice("5 min", 5L * 60_000), + new WindowChoice("15 min", 15L * 60_000), + new WindowChoice("30 min", 30L * 60_000), + new WindowChoice("1 hour", 60L * 60_000), + new WindowChoice("4 hours", 4L * 60 * 60_000), + new WindowChoice("24 hours", 24L * 60 * 60_000), + }; + private static final int DEFAULT_WINDOW_INDEX = 2; // 30 min + + private static final String CONFIG_GROUP = "MicrobotDashboardPlus"; + private static final String K_CHART_SKILL = "chartSkill"; + private static final String K_CHART_WINDOW_INDEX = "chartWindowIndex"; + + private final Skill[] selectableSkills; + private final JComboBox skillCombo; + private final JComboBox windowCombo; + private final ChartCanvas canvas; + + public XpChartPanel(GameStatePoller poller) { + super("XP Over Time", poller); + + selectableSkills = buildSelectableSkills(); + + // Canvas first; lambdas below capture it. + canvas = new ChartCanvas(); + canvas.setPreferredSize(new Dimension(780, 240)); + + // Header controls. + JLabel skillLbl = new JLabel("Skill"); + skillLbl.setForeground(Color.LIGHT_GRAY); + skillLbl.setFont(FontManager.getRunescapeSmallFont()); + addHeaderControl(skillLbl); + + skillCombo = new JComboBox<>(selectableSkills); + skillCombo.setPreferredSize(new Dimension(110, 20)); + skillCombo.setRenderer(new SkillRenderer()); + Skill defaultSkill = restoreSkill(findDefault(selectableSkills, Skill.MINING)); + skillCombo.setSelectedItem(defaultSkill); + skillCombo.addActionListener(e -> { + Object sel = skillCombo.getSelectedItem(); + if (sel instanceof Skill) persistString(K_CHART_SKILL, ((Skill) sel).name()); + canvas.repaint(); + }); + addHeaderControl(skillCombo); + + JLabel windowLbl = new JLabel("Window"); + windowLbl.setForeground(Color.LIGHT_GRAY); + windowLbl.setFont(FontManager.getRunescapeSmallFont()); + addHeaderControl(windowLbl); + + windowCombo = new JComboBox<>(WINDOWS); + windowCombo.setPreferredSize(new Dimension(90, 20)); + windowCombo.setSelectedIndex(restoreWindowIndex()); + windowCombo.addActionListener(e -> { + persistString(K_CHART_WINDOW_INDEX, Integer.toString(windowCombo.getSelectedIndex())); + canvas.repaint(); + }); + addHeaderControl(windowCombo); + + // Body. + JPanel body = new JPanel(new BorderLayout()); + body.setOpaque(false); + body.add(canvas, BorderLayout.CENTER); + add(body, BorderLayout.CENTER); + } + + private static Skill[] buildSelectableSkills() { + java.util.List list = new java.util.ArrayList<>(); + for (Skill s : Skill.values()) { + if (s == Skill.OVERALL) continue; + list.add(s); + } + return list.toArray(new Skill[0]); + } + + private static Skill findDefault(Skill[] skills, Skill preferred) { + for (Skill s : skills) if (s == preferred) return s; + return skills.length == 0 ? null : skills[0]; + } + + // ----------------------------------------------------------------- + // Persistence + // ----------------------------------------------------------------- + + private Skill restoreSkill(Skill fallback) { + try { + String raw = Microbot.getConfigManager().getConfiguration(CONFIG_GROUP, K_CHART_SKILL); + if (raw == null || raw.isEmpty()) return fallback; + Skill found = Skill.valueOf(raw); + for (Skill s : selectableSkills) if (s == found) return s; + return fallback; + } catch (Throwable t) { + return fallback; + } + } + + private int restoreWindowIndex() { + try { + String raw = Microbot.getConfigManager().getConfiguration(CONFIG_GROUP, K_CHART_WINDOW_INDEX); + if (raw == null || raw.isEmpty()) return DEFAULT_WINDOW_INDEX; + int idx = Integer.parseInt(raw); + if (idx < 0 || idx >= WINDOWS.length) return DEFAULT_WINDOW_INDEX; + return idx; + } catch (Throwable t) { + return DEFAULT_WINDOW_INDEX; + } + } + + private static void persistString(String key, String value) { + try { + Microbot.getConfigManager().setConfiguration(CONFIG_GROUP, key, value); + } catch (Throwable ignored) { /* config not ready -- swallow */ } + } + + @Override + protected void applySnapshot(PollSnapshot snapshot) { + // The chart redraws on its own data view; just trigger a repaint. + canvas.repaint(); + } + + // --------------------------------------------------------------------- + // Chart canvas + // --------------------------------------------------------------------- + + private final class ChartCanvas extends JPanel { + + ChartCanvas() { + setBackground(ColorScheme.DARKER_GRAY_COLOR); + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + Graphics2D g2 = (Graphics2D) g.create(); + try { + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + int w = getWidth(); + int h = getHeight(); + + // Background. + g2.setColor(ColorScheme.DARKER_GRAY_COLOR); + g2.fillRect(0, 0, w, h); + + Skill skill = (Skill) skillCombo.getSelectedItem(); + WindowChoice window = (WindowChoice) windowCombo.getSelectedItem(); + if (skill == null || window == null) return; + + XpHistory history = poller.getXpHistory(); + List all = history.getSamples(skill); + long now = System.currentTimeMillis(); + long cutoff = now - window.windowMs; + + // Filter samples within the window. + java.util.List samples = new java.util.ArrayList<>(); + for (XpHistory.SamplePoint p : all) { + if (p.timestampMillis >= cutoff) samples.add(p); + } + + // Chart bounds. + int padLeft = 60; + int padRight = 16; + int padTop = 14; + int padBottom = 28; + int plotW = Math.max(10, w - padLeft - padRight); + int plotH = Math.max(10, h - padTop - padBottom); + + // Axes. + g2.setColor(ColorScheme.MEDIUM_GRAY_COLOR); + g2.drawLine(padLeft, padTop, padLeft, padTop + plotH); // Y axis + g2.drawLine(padLeft, padTop + plotH, padLeft + plotW, padTop + plotH); // X axis + + if (samples.size() < 2) { + drawCenteredString(g2, "Waiting for XP samples in selected window", + padLeft, padTop, plotW, plotH, Color.GRAY); + return; + } + + int baseline = samples.get(0).xp; + int maxDelta = 0; + for (XpHistory.SamplePoint p : samples) { + maxDelta = Math.max(maxDelta, p.xp - baseline); + } + if (maxDelta <= 0) { + drawCenteredString(g2, "No XP gained in window", + padLeft, padTop, plotW, plotH, Color.GRAY); + return; + } + + // Y ticks: 4 horizontal grid lines. + g2.setFont(FontManager.getRunescapeSmallFont()); + g2.setColor(Color.GRAY); + for (int i = 1; i <= 4; i++) { + int yVal = (int) ((maxDelta * (long) i) / 4); + int y = padTop + plotH - (int) ((yVal * (long) plotH) / maxDelta); + g2.setColor(new Color(80, 80, 80)); + g2.drawLine(padLeft + 1, y, padLeft + plotW, y); + g2.setColor(Color.LIGHT_GRAY); + String lbl = formatXpShort(yVal); + int lblWidth = g2.getFontMetrics().stringWidth(lbl); + g2.drawString(lbl, padLeft - lblWidth - 4, y + 4); + } + + // X ticks: 4 vertical positions (~quarter through, half, etc.). + long windowMs = window.windowMs; + for (int i = 0; i <= 4; i++) { + long t = now - windowMs + (windowMs * i / 4); + int x = padLeft + (int) ((plotW * (long) i) / 4); + g2.setColor(new Color(80, 80, 80)); + g2.drawLine(x, padTop, x, padTop + plotH); + g2.setColor(Color.LIGHT_GRAY); + String lbl = (i == 4) ? "now" : (humanAgo(now - t)); + int lblWidth = g2.getFontMetrics().stringWidth(lbl); + g2.drawString(lbl, x - lblWidth / 2, padTop + plotH + 16); + } + + // Line path. + Path2D.Double path = new Path2D.Double(); + boolean first = true; + for (XpHistory.SamplePoint p : samples) { + double xf = (double) (p.timestampMillis - cutoff) / (double) windowMs; + int x = padLeft + (int) (xf * plotW); + int yVal = p.xp - baseline; + int y = padTop + plotH - (int) ((yVal * (long) plotH) / maxDelta); + if (first) { path.moveTo(x, y); first = false; } + else { path.lineTo(x, y); } + } + + g2.setStroke(new BasicStroke(2f)); + g2.setColor(ColorScheme.PROGRESS_COMPLETE_COLOR); + g2.draw(path); + + // Summary text top-right. + String summary = String.format("Δ %s XP · %s window", + formatXpFull(maxDelta), window.label); + g2.setColor(Color.LIGHT_GRAY); + g2.setFont(FontManager.getRunescapeSmallFont()); + int sumWidth = g2.getFontMetrics().stringWidth(summary); + g2.drawString(summary, padLeft + plotW - sumWidth, padTop - 2); + + } finally { + g2.dispose(); + } + } + + private void drawCenteredString(Graphics2D g2, String s, int x, int y, int w, int h, Color color) { + g2.setColor(color); + g2.setFont(FontManager.getRunescapeSmallFont()); + int sw = g2.getFontMetrics().stringWidth(s); + int sh = g2.getFontMetrics().getHeight(); + g2.drawString(s, x + (w - sw) / 2, y + (h - sh) / 2 + g2.getFontMetrics().getAscent()); + } + } + + // --------------------------------------------------------------------- + // Helpers + // --------------------------------------------------------------------- + + private static String formatXpShort(int xp) { + if (xp >= 1_000_000) return String.format("%.1fM", xp / 1_000_000.0); + if (xp >= 1_000) return String.format("%.1fk", xp / 1_000.0); + return Integer.toString(xp); + } + + private static String formatXpFull(int xp) { + return java.text.NumberFormat.getIntegerInstance().format(xp); + } + + private static String humanAgo(long ms) { + long sec = ms / 1000; + if (sec < 60) return sec + "s"; + long min = sec / 60; + if (min < 60) return min + "m"; + long hr = min / 60; + return hr + "h"; + } + + private static final class WindowChoice { + final String label; + final long windowMs; + + WindowChoice(String label, long windowMs) { + this.label = label; + this.windowMs = windowMs; + } + @Override public String toString() { return label; } + } + + private static class SkillRenderer extends javax.swing.DefaultListCellRenderer { + @Override + public java.awt.Component getListCellRendererComponent(javax.swing.JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + if (value instanceof Skill) { + String n = ((Skill) value).getName(); + setText(Character.toUpperCase(n.charAt(0)) + n.substring(1).toLowerCase()); + } + setHorizontalAlignment(SwingConstants.LEFT); + return this; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java new file mode 100644 index 0000000000..dc86bae8f3 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java @@ -0,0 +1,553 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.poller; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.api.Client; +import net.runelite.api.GameState; +import net.runelite.api.NPC; +import net.runelite.api.Player; +import net.runelite.api.Skill; +import net.runelite.api.coords.WorldPoint; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.microbot.BlockingEventManager; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.XpHistory; +import net.runelite.client.plugins.microbot.microbotdashboardplus.notify.AlertManager; +import net.runelite.client.plugins.microbot.microbotdashboardplus.notify.DiscordNotifier; +import net.runelite.client.plugins.microbot.util.antiban.Rs2AntibanSettings; +import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; +import net.runelite.client.plugins.microbot.util.inventory.Rs2ItemModel; + +import javax.swing.SwingUtilities; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +/** + * Background poller that builds a {@link PollSnapshot} on a fixed cadence and + * notifies listeners on the EDT. Reads player state, skills, inventory, nearby + * NPCs, active scripts, and the in-process antiban flags. + */ +@Slf4j +public class GameStatePoller { + + /** Package prefix used to identify Microbot Hub plugins. */ + private static final String MICROBOT_PACKAGE_PREFIX = "net.runelite.client.plugins.microbot."; + + /** + * Catalog of known random-event NPC names. Matched case-insensitively + * against NPC.getName() to flag NearbyNpc.randomEvent=true so the panel + * renderer highlights them orange. Both wiki-disambiguation spellings are + * listed (Bee keeper / Beekeeper, Dr Jekyll / Dr. Jekyll). + */ + private static final Set RANDOM_EVENT_NPC_NAMES = new HashSet<>(Arrays.asList( + "genie", "sandwich lady", "drunken dwarf", "mysterious old man", + "bee keeper", "beekeeper", "count check", + "frog prince", "frog princess", "rick turpentine", + "dr jekyll", "dr. jekyll", + "niles", "miles", "giles", // Mime event NPCs + "freaky forester", "prison pete", // deferred-engagement events + "evil bob", "leo", "pillory guard", "tilt" // teleport-event NPCs + )); + + /** + * Substrings (lower-cased) that mark a plugin as infrastructure rather + * than a user-facing script. Checked against both the display name and + * the simple class name. Lower-cased comparison. + * + *

Captures: Antiban settings, the dashboard itself, Web Walker (utility + * called by other scripts, not run standalone), MInventory Setups + * (configuration helper), test harnesses, and the bare "Microbot" core + * plugin. + */ + private static final String[] INFRA_NAME_SUBSTRINGS = { + "antiban", + "harness", + "web walker", // covers "[M] Web Walker" and any package "WebWalker*" + "webwalker", // covers simple class names without spaces + "minventory", // "[M] MInventory Setups" + "microbot dashboard plus", // the dashboard itself + "test runner", // dev-infrastructure: shouldn't appear as a user script + "testrunner" + }; + + /** + * Bare class simple names always excluded (defense in depth). Distinct + * from display matching since some plugins do not set display names. + */ + private static final Set EXCLUDED_SIMPLE_CLASS_NAMES = new HashSet<>(Arrays.asList( + "MicrobotPlugin", + "MicrobotDashboardPlusPlugin" + )); + + private static boolean isInfrastructurePlugin(String displayName, String simpleClassName) { + String d = displayName == null ? "" : displayName.toLowerCase(); + String c = simpleClassName == null ? "" : simpleClassName.toLowerCase(); + if (EXCLUDED_SIMPLE_CLASS_NAMES.contains(simpleClassName)) return true; + // Exact equals for bare "Microbot" (avoid false positives in containing strings). + if ("microbot".equals(d)) return true; + for (String s : INFRA_NAME_SUBSTRINGS) { + if (d.contains(s) || c.contains(s)) return true; + } + return false; + } + + private final XpHistory xpHistory = new XpHistory(); + private final List> listeners = new CopyOnWriteArrayList<>(); + + /** Class name -> first observed enabled-millis. Resets when plugin disables. */ + private final Map pluginStartMillis = new HashMap<>(); + + /** Per-skill last-observed level for level-up detection. */ + private final Map lastSkillLevels = new EnumMap<>(Skill.class); + private boolean skillBaselineEstablished = false; + + private DiscordNotifier notifier; + private AlertManager alertManager; + private boolean notifyLevelUp = true; + private boolean notifyAlerts = true; + + /** + * Optional UI-side alert callback. Fired with a short message ("Mining + * reached level 60") whenever an alert threshold crosses, regardless of + * Discord configuration. DashboardWindow registers one to drive the + * in-window banner. + */ + private Consumer bannerCallback; + + private ScheduledExecutorService executor; + private ScheduledFuture scheduledTask; + private volatile PollSnapshot lastSnapshot = PollSnapshot.empty(); + private volatile int pollIntervalSeconds = 5; + private volatile int npcMaxDistance = 20; + + public void start(int pollIntervalSeconds) { + this.pollIntervalSeconds = Math.max(1, pollIntervalSeconds); + if (executor != null) return; + executor = Executors.newSingleThreadScheduledExecutor(r -> { + Thread t = new Thread(r, "MicrobotDashboardPlus-Poller"); + t.setDaemon(true); + return t; + }); + scheduledTask = executor.scheduleAtFixedRate(this::tickSafely, 0, this.pollIntervalSeconds, TimeUnit.SECONDS); + log.info("MicrobotDashboardPlus poller started (interval={}s)", this.pollIntervalSeconds); + } + + public void stop() { + if (scheduledTask != null) { + scheduledTask.cancel(false); + scheduledTask = null; + } + if (executor != null) { + executor.shutdownNow(); + executor = null; + } + pluginStartMillis.clear(); + log.info("MicrobotDashboardPlus poller stopped"); + } + + public void addListener(Consumer listener) { + listeners.add(listener); + SwingUtilities.invokeLater(() -> listener.accept(lastSnapshot)); + } + + public void removeListener(Consumer listener) { + listeners.remove(listener); + } + + public PollSnapshot getLastSnapshot() { return lastSnapshot; } + public XpHistory getXpHistory() { return xpHistory; } + + public void setNpcMaxDistance(int distance) { + this.npcMaxDistance = Math.max(1, Math.min(200, distance)); + } + public int getNpcMaxDistance() { return npcMaxDistance; } + + public void setNotifier(DiscordNotifier notifier) { this.notifier = notifier; } + public void setAlertManager(AlertManager alertManager) { this.alertManager = alertManager; } + public void setNotificationToggles(boolean levelUp, boolean alerts) { + this.notifyLevelUp = levelUp; + this.notifyAlerts = alerts; + } + public void setAlertThresholds(String csv) { + if (alertManager != null) alertManager.setThresholdsFromConfig(csv); + } + public void setBannerCallback(Consumer bannerCallback) { + this.bannerCallback = bannerCallback; + } + + public void refreshNow() { + if (executor != null && !executor.isShutdown()) { + executor.submit(this::tickSafely); + } + } + + private void tickSafely() { + try { + PollSnapshot snapshot = buildSnapshot(); + lastSnapshot = snapshot; + detectAndFireNotifications(snapshot); + notifyListeners(snapshot); + } catch (Throwable t) { + log.warn("Poll iteration failed: {}", t.getMessage(), t); + } + } + + // --------------------------------------------------------------------- + // Notification triggers + // --------------------------------------------------------------------- + + private void detectAndFireNotifications(PollSnapshot snapshot) { + if (snapshot == null) return; + + // Level-up detection. Establish baseline only after we're logged in, + // otherwise the login-screen 0 → real-level jump on first poll after + // login fires a "Level up: Attack 0 -> 43" notification for every skill. + Map currentLevels = snapshot.getSkillLevels(); + if (currentLevels != null && !currentLevels.isEmpty()) { + if (!skillBaselineEstablished) { + if (snapshot.isLoggedIn()) { + lastSkillLevels.putAll(currentLevels); + skillBaselineEstablished = true; + } + // Skip notifications until we have a real baseline. + } else { + for (Map.Entry e : currentLevels.entrySet()) { + Skill skill = e.getKey(); + int newLevel = e.getValue() == null ? 0 : e.getValue(); + Integer prev = lastSkillLevels.get(skill); + if (prev != null && newLevel > prev) { + onLevelUp(skill, prev, newLevel); + } + lastSkillLevels.put(skill, newLevel); + } + } + } + + } + + private void onLevelUp(Skill skill, int from, int to) { + String skillName = capitalize(skill.getName()); + + // Alert threshold crossings take priority + use a louder prefix. + boolean alertFired = false; + if (alertManager != null && alertManager.checkCrossing(skill, to)) { + alertFired = true; + Integer threshold = alertManager.thresholdFor(skill); + String alertMsg = skillName + " reached level " + threshold + "!"; + if (notifyAlerts && notifier != null) { + notifier.send("ALERT: " + alertMsg); + } + // Always fire the UI banner on a threshold crossing, even if + // Discord is off or not configured. + if (bannerCallback != null) { + try { bannerCallback.accept(alertMsg); } + catch (Throwable t) { log.debug("Banner callback threw: {}", t.getMessage()); } + } + } + if (!alertFired && notifyLevelUp && notifier != null) { + notifier.send("Level up: " + skillName + " " + from + " -> " + to); + } + } + + private static String capitalize(String s) { + if (s == null || s.isEmpty()) return s; + return Character.toUpperCase(s.charAt(0)) + s.substring(1).toLowerCase(); + } + + private void notifyListeners(PollSnapshot snapshot) { + SwingUtilities.invokeLater(() -> { + for (Consumer l : listeners) { + try { l.accept(snapshot); } + catch (Throwable t) { log.warn("Listener threw: {}", t.getMessage(), t); } + } + }); + } + + // --------------------------------------------------------------------- + // Snapshot construction + // --------------------------------------------------------------------- + + private PollSnapshot buildSnapshot() { + Client client = Microbot.getClient(); + if (client == null) return PollSnapshot.empty(); + + // Inventory + active-scripts/plus-plugins lists must read on the + // client thread for safety (Rs2Inventory hits widgets / item containers). + return Microbot.getClientThread().runOnClientThreadOptional(() -> { + PollSnapshot.PollSnapshotBuilder b = PollSnapshot.builder() + .timestampMillis(System.currentTimeMillis()); + + GameState gs = client.getGameState(); + boolean loggedIn = (gs == GameState.LOGGED_IN); + b.loggedIn(loggedIn); + b.gameState(gs == null ? "--" : gs.name()); + + Player local = client.getLocalPlayer(); + if (local != null) { + b.playerName(safe(local.getName())); + b.combatLevel(local.getCombatLevel()); + WorldPoint wp = local.getWorldLocation(); + b.positionText(wp == null ? "--" : (wp.getX() + "," + wp.getY() + "," + wp.getPlane())); + int anim = local.getAnimation(); + b.animationText(anim < 0 ? "idle" : Integer.toString(anim)); + } else { + b.playerName("--").positionText("--").animationText("--"); + } + + b.worldId(client.getWorld()); + b.profileName(profileName()); + + // Skills. Record XP samples only while logged in; on the login + // screen client.getSkillExperience returns 0, which would otherwise + // become the baseline and inflate every delta after login. + Map xp = new EnumMap<>(Skill.class); + Map levels = new EnumMap<>(Skill.class); + for (Skill s : Skill.values()) { + if (s == Skill.OVERALL) continue; + int currentXp = client.getSkillExperience(s); + xp.put(s, currentXp); + levels.put(s, client.getRealSkillLevel(s)); + if (loggedIn) { + xpHistory.record(s, currentXp); + } + } + b.skillXp(Collections.unmodifiableMap(xp)); + b.skillLevels(Collections.unmodifiableMap(levels)); + + b.inventory(collectInventory(loggedIn)); + b.nearbyNpcs(collectNearbyNpcs(client, local)); + b.activeScripts(collectActiveScripts()); + b.antibanState(collectAntibanState()); + + return b.build(); + }).orElse(PollSnapshot.empty()); + } + + private static String safe(String s) { return s == null ? "--" : s; } + + private static String profileName() { + try { return safe(Microbot.getConfigManager().getRSProfileKey()); } + catch (Throwable t) { return "--"; } + } + + // --------------------------------------------------------------------- + // Inventory + // --------------------------------------------------------------------- + + private List collectInventory(boolean loggedIn) { + if (!loggedIn) return Collections.emptyList(); + try { + List items = Rs2Inventory.items().collect(Collectors.toList()); + if (items.isEmpty()) return Collections.emptyList(); + + List out = new ArrayList<>(items.size()); + for (Rs2ItemModel item : items) { + if (item == null) continue; + out.add(PollSnapshot.InventoryItem.builder() + .slot(item.getSlot()) + .itemId(item.getId()) + .name(safe(item.getName())) + .quantity(item.getQuantity()) + .noted(item.isNoted()) + .build()); + } + return Collections.unmodifiableList(out); + } catch (Throwable t) { + log.debug("collectInventory failed: {}", t.getMessage()); + return Collections.emptyList(); + } + } + + // --------------------------------------------------------------------- + // NPCs + // --------------------------------------------------------------------- + + private List collectNearbyNpcs(Client client, Player local) { + if (local == null) return Collections.emptyList(); + WorldPoint playerWp = local.getWorldLocation(); + if (playerWp == null) return Collections.emptyList(); + + List out = new ArrayList<>(); + for (NPC npc : client.getNpcs()) { + if (npc == null) continue; + WorldPoint npcWp = npc.getWorldLocation(); + if (npcWp == null) continue; + int dist = playerWp.distanceTo(npcWp); + if (dist > npcMaxDistance) continue; + + String name = safe(npc.getName()); + boolean isRandomEvent = RANDOM_EVENT_NPC_NAMES.contains(name.toLowerCase()); + + out.add(PollSnapshot.NearbyNpc.builder() + .name(name) + .combatLevel(npc.getCombatLevel()) + .distance(dist) + .randomEvent(isRandomEvent) + .build()); + } + out.sort((a, b) -> Integer.compare(a.getDistance(), b.getDistance())); + return Collections.unmodifiableList(out); + } + + // --------------------------------------------------------------------- + // Scripts + runtime tracking + // --------------------------------------------------------------------- + + /** + * Active scripts: enabled Microbot Hub plugins minus a static exclusion + * set (Antiban, Microbot core utility, the dashboard itself). Per-plugin + * runtime is tracked from the first time we observe each plugin enabled. + */ + private List collectActiveScripts() { + try { + long now = System.currentTimeMillis(); + Set seenThisTick = new HashSet<>(); + List out = new ArrayList<>(); + + for (Plugin p : Microbot.getPluginManager().getPlugins()) { + if (p == null) continue; + if (!Microbot.isPluginEnabled(p.getClass())) continue; + if (!p.getClass().getName().startsWith(MICROBOT_PACKAGE_PREFIX)) continue; + + String simpleName = p.getClass().getSimpleName(); + String displayName = p.getName(); + if (displayName == null || displayName.isEmpty()) displayName = simpleName; + + if (isInfrastructurePlugin(displayName, simpleName)) continue; + + String className = p.getClass().getName(); + seenThisTick.add(className); + long startMs = pluginStartMillis.computeIfAbsent(className, k -> now); + long runtimeMs = Math.max(0, now - startMs); + + out.add(PollSnapshot.ScriptStatus.builder() + .pluginClassName(className) + .displayName(displayName) + .status("Running") + .runtimeMillis(runtimeMs) + .build()); + } + + // Reset runtimes for plugins that disabled since last tick. + pluginStartMillis.keySet().retainAll(seenThisTick); + + out.sort((a, b) -> a.getDisplayName().compareToIgnoreCase(b.getDisplayName())); + return Collections.unmodifiableList(out); + } catch (Throwable t) { + log.debug("collectActiveScripts failed: {}", t.getMessage()); + return Collections.emptyList(); + } + } + + // --------------------------------------------------------------------- + // Antiban + pause state + // --------------------------------------------------------------------- + + /** + * Reads the in-process antiban and pause flags so a user can tell a silent + * stall (everything idle, nothing intentional) from a deliberate anti-AFK + * pause (a micro break or action cooldown is holding the script). + * + *

Reads the static {@link Rs2AntibanSettings} flags, the global + * {@link Microbot#pauseAllScripts} switch, and the registered + * blocking-event handlers. The "blocking event running" flag has no public + * getter, so it is read by reflection and reported as unknown (null) when + * that fails on the running client version. + */ + private PollSnapshot.AntibanState collectAntibanState() { + try { + boolean antibanEnabled = Rs2AntibanSettings.antibanEnabled; + boolean cooldown = Rs2AntibanSettings.actionCooldownActive; + boolean microBreak = Rs2AntibanSettings.microBreakActive; + boolean takeMicroBreaks = Rs2AntibanSettings.takeMicroBreaks; + + boolean allPaused = false; + try { allPaused = Microbot.pauseAllScripts != null && Microbot.pauseAllScripts.get(); } + catch (Throwable t) { log.debug("read pauseAllScripts failed: {}", t.getMessage()); } + + int blockingCount = 0; + Boolean blockingRunning = null; + try { + BlockingEventManager mgr = Microbot.getBlockingEventManager(); + if (mgr != null) { + try { + java.util.List events = mgr.getEvents(); + blockingCount = events == null ? 0 : events.size(); + } catch (Throwable t) { + log.debug("read blocking events failed: {}", t.getMessage()); + } + blockingRunning = readBlockingEventRunning(mgr); + } + } catch (Throwable t) { + log.debug("read blocking event manager failed: {}", t.getMessage()); + } + + String summary = buildAntibanSummary(allPaused, microBreak, cooldown, + Boolean.TRUE.equals(blockingRunning), antibanEnabled); + + return PollSnapshot.AntibanState.builder() + .antibanEnabled(antibanEnabled) + .actionCooldownActive(cooldown) + .microBreakActive(microBreak) + .takeMicroBreaks(takeMicroBreaks) + .allScriptsPaused(allPaused) + .blockingEventCount(blockingCount) + .blockingEventRunning(blockingRunning) + .summary(summary) + .build(); + } catch (Throwable t) { + log.debug("collectAntibanState failed: {}", t.getMessage()); + return PollSnapshot.AntibanState.builder() + .antibanEnabled(false).summary("unavailable").build(); + } + } + + /** + * The BlockingEventManager keeps its "is an event executing right now" flag + * private with no public getter. Probe it by reflection so we can surface a + * running blocker, and return null (unknown) when the field is absent or + * unreadable on this client version. + */ + private static Boolean readBlockingEventRunning(Object manager) { + try { + java.lang.reflect.Field f = manager.getClass().getDeclaredField("isRunning"); + f.setAccessible(true); + Object v = f.get(manager); + if (v instanceof java.util.concurrent.atomic.AtomicBoolean) { + return ((java.util.concurrent.atomic.AtomicBoolean) v).get(); + } + if (v instanceof Boolean) { + return (Boolean) v; + } + return null; + } catch (Throwable t) { + return null; + } + } + + /** Plain one-line reason for the current hold. Highest-priority cause wins. */ + private static String buildAntibanSummary(boolean allPaused, boolean microBreak, + boolean cooldown, boolean blockingRunning, + boolean antibanEnabled) { + if (allPaused) return "All scripts paused"; + if (microBreak) return "Micro break in progress"; + if (cooldown) return "Action cooldown"; + if (blockingRunning) return "Handling a blocking event"; + if (!antibanEnabled) return "Running (antiban off)"; + return "Running"; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java new file mode 100644 index 0000000000..dd36b92ba7 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java @@ -0,0 +1,418 @@ +package net.runelite.client.plugins.microbot.microbotdashboardplus.window; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.plugins.microbot.microbotdashboardplus.MicrobotDashboardPlusConfig; +import net.runelite.client.plugins.microbot.microbotdashboardplus.data.PollSnapshot; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.AntibanStatePanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.DashboardSection; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.EventLogPanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.GuidePanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.InventoryPanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.NearbyNpcsPanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.PlayerPanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.ScriptsPanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.SkillsPanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.panels.XpChartPanel; +import net.runelite.client.plugins.microbot.microbotdashboardplus.poller.GameStatePoller; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.FontManager; + +import net.runelite.client.plugins.microbot.Microbot; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; +import javax.swing.border.EmptyBorder; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +/** + * Floating Swing window that hosts all dashboard sections. + * + *

Mirrors the RuneLite Var Inspector pattern: a top-level JFrame + * independent of the client window. Lifecycle is managed by the plugin; the + * window closes via {@link WindowConstants#HIDE_ON_CLOSE} so the sidebar + * "Open Dashboard" button can re-show it. + * + *

Layout: 2-column GridBagLayout for the section grid, plus 3 full-width + * sections (Plus Plugins, Event Dismiss Stats, Event Log) that span both + * columns. + */ +@Slf4j +public class DashboardWindow extends JFrame { + + private static final DateTimeFormatter TIME_FMT = DateTimeFormatter + .ofPattern("HH:mm:ss") + .withZone(ZoneId.systemDefault()); + + private final GameStatePoller poller; + private final MicrobotDashboardPlusConfig config; + private final Consumer snapshotListener; + private final List sections = new ArrayList<>(); + + /** Map of section -> the predicate that decides if it's currently visible. */ + private final java.util.Map visibilityPredicates = + new java.util.LinkedHashMap<>(); + + private final JLabel statusLabel = new JLabel("Connecting..."); + private final JLabel lastPollLabel = new JLabel("Last poll: never"); + + /** Alert banner: yellow strip at top, hidden by default, shown when threshold crosses. */ + private JPanel alertBanner; + private JLabel alertBannerText; + + private static final String CONFIG_GROUP = "MicrobotDashboardPlus"; + private static final String K_WIN_X = "windowX"; + private static final String K_WIN_Y = "windowY"; + private static final String K_WIN_W = "windowWidth"; + private static final String K_WIN_H = "windowHeight"; + + public DashboardWindow(GameStatePoller poller, MicrobotDashboardPlusConfig config) { + super("Microbot Dashboard Plus"); + this.poller = poller; + this.config = config; + + setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); + setMinimumSize(new Dimension(900, 600)); + + restoreWindowBounds(); + installBoundsPersistenceListener(); + + JPanel root = new JPanel(new BorderLayout()); + root.setBackground(ColorScheme.DARK_GRAY_COLOR); + root.setBorder(new EmptyBorder(8, 12, 8, 12)); + + // North = header + (hidden) alert banner stacked vertically. + JPanel northContainer = new JPanel(); + northContainer.setLayout(new BoxLayout(northContainer, BoxLayout.Y_AXIS)); + northContainer.setOpaque(false); + northContainer.add(buildHeader()); + northContainer.add(buildAlertBanner()); + root.add(northContainer, BorderLayout.NORTH); + + root.add(buildSectionScroll(), BorderLayout.CENTER); + root.add(buildFooter(), BorderLayout.SOUTH); + + setContentPane(root); + + // Wire poller banner callback once everything's built. + poller.setBannerCallback(this::showAlertBanner); + + snapshotListener = this::applySnapshot; + poller.addListener(snapshotListener); + } + + /** Re-evaluate each section's visibility predicate. Call when config changes. */ + public void applyVisibility() { + SwingUtilities.invokeLater(() -> { + for (java.util.Map.Entry e + : visibilityPredicates.entrySet()) { + boolean visible = true; + try { visible = e.getValue().getAsBoolean(); } + catch (Throwable t) { /* defensive */ } + e.getKey().setVisible(visible); + } + revalidate(); + repaint(); + }); + } + + public void showOrFocus() { + SwingUtilities.invokeLater(() -> { + if (!isVisible()) setVisible(true); + setState(JFrame.NORMAL); + toFront(); + requestFocus(); + }); + } + + // --------------------------------------------------------------------- + // Bounds persistence + // --------------------------------------------------------------------- + + private void restoreWindowBounds() { + Integer x = readInt(K_WIN_X); + Integer y = readInt(K_WIN_Y); + Integer w = readInt(K_WIN_W); + Integer h = readInt(K_WIN_H); + if (w == null || h == null || w < 600 || h < 400) { + // No saved bounds (or sanity-fail) -- use defaults. + setSize(1100, 800); + setLocationRelativeTo(null); + return; + } + setSize(w, h); + if (x != null && y != null && isOnVisibleScreen(x, y, w, h)) { + setLocation(x, y); + } else { + setLocationRelativeTo(null); + } + } + + private static boolean isOnVisibleScreen(int x, int y, int w, int h) { + try { + java.awt.Rectangle visible = new java.awt.Rectangle(); + for (java.awt.GraphicsDevice gd : java.awt.GraphicsEnvironment + .getLocalGraphicsEnvironment().getScreenDevices()) { + visible = visible.union(gd.getDefaultConfiguration().getBounds()); + } + // Require at least 100x100 of the saved window to land inside any monitor. + java.awt.Rectangle saved = new java.awt.Rectangle(x, y, Math.max(100, w), Math.max(100, h)); + return visible.intersects(saved); + } catch (Throwable t) { + return false; + } + } + + private void installBoundsPersistenceListener() { + addComponentListener(new ComponentAdapter() { + @Override + public void componentMoved(ComponentEvent e) { saveBounds(); } + @Override + public void componentResized(ComponentEvent e) { saveBounds(); } + }); + } + + private void saveBounds() { + try { + writeInt(K_WIN_X, getX()); + writeInt(K_WIN_Y, getY()); + writeInt(K_WIN_W, getWidth()); + writeInt(K_WIN_H, getHeight()); + } catch (Throwable t) { + log.debug("saveBounds failed: {}", t.getMessage()); + } + } + + private static Integer readInt(String key) { + try { + String raw = Microbot.getConfigManager().getConfiguration(CONFIG_GROUP, key); + return raw == null || raw.isEmpty() ? null : Integer.parseInt(raw); + } catch (Throwable t) { + return null; + } + } + + private static void writeInt(String key, int value) { + try { + Microbot.getConfigManager().setConfiguration(CONFIG_GROUP, key, Integer.toString(value)); + } catch (Throwable ignored) { + // ConfigManager not yet ready in some lifecycle edge cases; swallow. + } + } + + public void disposeWindow() { + poller.removeListener(snapshotListener); + for (DashboardSection s : sections) { + try { s.detach(); } catch (Throwable ignored) { /* best effort */ } + } + SwingUtilities.invokeLater(() -> { + setVisible(false); + dispose(); + }); + } + + // --------------------------------------------------------------------- + // Layout + // --------------------------------------------------------------------- + + private JPanel buildHeader() { + JPanel header = new JPanel(new BorderLayout()); + header.setBackground(ColorScheme.DARKER_GRAY_COLOR); + header.setBorder(new EmptyBorder(6, 10, 6, 10)); + + JLabel title = new JLabel("Microbot Dashboard Plus"); + title.setForeground(ColorScheme.BRAND_ORANGE); + title.setFont(FontManager.getRunescapeBoldFont()); + header.add(title, BorderLayout.WEST); + + JPanel right = new JPanel(new FlowLayout(FlowLayout.RIGHT, 10, 0)); + right.setOpaque(false); + statusLabel.setForeground(ColorScheme.PROGRESS_INPROGRESS_COLOR); + statusLabel.setFont(FontManager.getRunescapeSmallFont()); + lastPollLabel.setForeground(Color.LIGHT_GRAY); + lastPollLabel.setFont(FontManager.getRunescapeSmallFont()); + right.add(statusLabel); + right.add(lastPollLabel); + header.add(right, BorderLayout.EAST); + + return header; + } + + private JScrollPane buildSectionScroll() { + JPanel sectionGrid = new JPanel(new GridBagLayout()); + sectionGrid.setBackground(ColorScheme.DARK_GRAY_COLOR); + sectionGrid.setBorder(new EmptyBorder(8, 0, 8, 0)); + + // Build real panels. + PlayerPanel player = new PlayerPanel(poller); + ScriptsPanel scripts = new ScriptsPanel(poller); + InventoryPanel inventory = new InventoryPanel(poller); + SkillsPanel skills = new SkillsPanel(poller); + NearbyNpcsPanel npcs = new NearbyNpcsPanel(poller); + AntibanStatePanel antiban = new AntibanStatePanel(poller); + EventLogPanel eventLog = new EventLogPanel(poller); + XpChartPanel xpChart = new XpChartPanel(poller); + GuidePanel guide = new GuidePanel(poller); + + sections.add(player); + sections.add(scripts); + sections.add(inventory); + sections.add(skills); + sections.add(npcs); + sections.add(antiban); + sections.add(xpChart); + sections.add(eventLog); + sections.add(guide); + + // Wire each section to its config-driven visibility predicate. + visibilityPredicates.put(player, config::showPlayer); + visibilityPredicates.put(scripts, config::showActiveScripts); + visibilityPredicates.put(inventory, config::showInventory); + visibilityPredicates.put(skills, config::showSkills); + visibilityPredicates.put(npcs, config::showNearbyNpcs); + visibilityPredicates.put(antiban, config::showAntibanState); + visibilityPredicates.put(xpChart, config::showXpChart); + visibilityPredicates.put(eventLog, config::showEventLog); + visibilityPredicates.put(guide, config::showGuide); + + applyVisibility(); + + // 2-column grid with 3 full-width spans. + GridBagConstraints c = new GridBagConstraints(); + c.fill = GridBagConstraints.BOTH; + c.insets = new Insets(4, 4, 4, 4); + c.weightx = 1.0; + c.weighty = 0; + + addSection(sectionGrid, player, c, 0, 0, 1); + addSection(sectionGrid, scripts, c, 1, 0, 1); + + addSection(sectionGrid, inventory, c, 0, 1, 1); + addSection(sectionGrid, skills, c, 1, 1, 1); + + addSection(sectionGrid, npcs, c, 0, 2, 1); + addSection(sectionGrid, antiban, c, 1, 2, 1); + + addSection(sectionGrid, xpChart, c, 0, 3, 2); + addSection(sectionGrid, eventLog, c, 0, 4, 2); + addSection(sectionGrid, guide, c, 0, 5, 2); + + // Push everything to the top. + c.gridx = 0; + c.gridy = 6; + c.gridwidth = 2; + c.weighty = 1.0; + sectionGrid.add(new JPanel() {{ setOpaque(false); }}, c); + + JScrollPane scroll = new JScrollPane(sectionGrid, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + scroll.setBorder(null); + scroll.getViewport().setBackground(ColorScheme.DARK_GRAY_COLOR); + scroll.getVerticalScrollBar().setUnitIncrement(16); + return scroll; + } + + private static void addSection(JPanel parent, DashboardSection section, GridBagConstraints c, + int col, int row, int span) { + c.gridx = col; + c.gridy = row; + c.gridwidth = span; + parent.add(section, c); + } + + private JPanel buildAlertBanner() { + alertBanner = new JPanel(new BorderLayout(8, 0)); + alertBanner.setBackground(new Color(0xD4, 0xA0, 0x17)); // RuneLite warning gold + alertBanner.setBorder(new EmptyBorder(6, 12, 6, 8)); + + alertBannerText = new JLabel(""); + alertBannerText.setForeground(new Color(0x1E, 0x1E, 0x1E)); + alertBannerText.setFont(FontManager.getRunescapeBoldFont()); + alertBanner.add(alertBannerText, BorderLayout.CENTER); + + JButton dismiss = new JButton("Dismiss"); + dismiss.setFont(FontManager.getRunescapeSmallFont()); + dismiss.setBackground(new Color(0x66, 0x4D, 0x09)); + dismiss.setForeground(Color.WHITE); + dismiss.setFocusPainted(false); + dismiss.setBorderPainted(false); + dismiss.addActionListener(e -> hideAlertBanner()); + alertBanner.add(dismiss, BorderLayout.EAST); + + alertBanner.setVisible(false); + // Bound the height so the BoxLayout doesn't stretch it. + alertBanner.setMaximumSize(new Dimension(Integer.MAX_VALUE, 32)); + return alertBanner; + } + + /** Called from the poller's banner callback (any thread). Switches to EDT internally. */ + public void showAlertBanner(String message) { + SwingUtilities.invokeLater(() -> { + if (alertBanner == null || alertBannerText == null) return; + alertBannerText.setText("🎯 " + (message == null ? "Threshold reached" : message)); + alertBanner.setVisible(true); + revalidate(); + repaint(); + }); + } + + public void hideAlertBanner() { + SwingUtilities.invokeLater(() -> { + if (alertBanner == null) return; + alertBanner.setVisible(false); + revalidate(); + repaint(); + }); + } + + private JPanel buildFooter() { + JPanel footer = new JPanel(new FlowLayout(FlowLayout.LEFT)); + footer.setBackground(ColorScheme.DARKER_GRAY_COLOR); + footer.setBorder(new EmptyBorder(4, 10, 4, 10)); + + JLabel info = new JLabel("v" + net.runelite.client.plugins.microbot.microbotdashboardplus.MicrobotDashboardPlusPlugin.version); + info.setForeground(Color.GRAY); + info.setFont(FontManager.getRunescapeSmallFont()); + footer.add(info); + + return footer; + } + + // --------------------------------------------------------------------- + // Listener + // --------------------------------------------------------------------- + + private void applySnapshot(PollSnapshot snapshot) { + if (snapshot == null) return; + + if (snapshot.isLoggedIn()) { + statusLabel.setText("Connected"); + statusLabel.setForeground(ColorScheme.PROGRESS_COMPLETE_COLOR); + } else { + statusLabel.setText("Disconnected"); + statusLabel.setForeground(ColorScheme.PROGRESS_ERROR_COLOR); + } + + lastPollLabel.setText("Last poll: " + TIME_FMT.format(Instant.ofEpochMilli(snapshot.getTimestampMillis()))); + } +} diff --git a/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md new file mode 100644 index 0000000000..aca1290fa6 --- /dev/null +++ b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md @@ -0,0 +1,95 @@ +# Microbot Dashboard Plus + +![preview](assets/dashboard-top.png) + +Microbot Dashboard Plus is a passive monitoring plugin for the Microbot RuneLite client. It opens a floating Swing window outside the game canvas with nine live-updating panels covering your session state, plus a compact sidebar panel for quick access. No HTTP server, no port binding, and no Agent Server dependency - it reads game state in-process. + +--- + +## Feature Overview + +| Feature | Description | +|---------|-------------| +| **Floating dashboard window** | A native Swing window that opens outside the game, keeping your canvas clear of stacked overlays | +| **Sidebar panel** | A compact summary in the RuneLite right toolbar with status, player, world, script count, and quick-launch buttons | +| **Player section** | Name, combat level, login state, game state, world, profile, session duration, tile position, and current animation | +| **Active Scripts section** | All enabled Microbot plugins with per-plugin runtime and a Stop button per row | +| **Inventory section** | Slot grid showing item names and quantities; noted items styled distinctly | +| **Skills section** | All 22 skills with current level, total XP, session gain, rolling 5-minute XP/hr, and an ETA to your target level | +| **Nearby NPCs section** | NPC list sorted by distance; random-event NPCs highlighted orange | +| **Antiban State section** | Tells a silent stall apart from an intentional anti-AFK pause (micro break, action cooldown, global pause, blocking event) | +| **XP Over Time chart** | Java2D line chart with skill and time-window selectors (5m to 24h) | +| **Event Log section** | Rolling 10-entry ring buffer of login, logout, and world-hop events | +| **Discord notifications** | Optional webhook for level-ups, alert threshold crossings, and session start/stop | +| **Alert thresholds** | Comma-separated SKILL:LEVEL pairs that fire an in-dashboard banner and optional Discord ping when crossed | +| **Skill targets (ETA)** | Comma-separated SKILL:LEVEL pairs that drive the ETA column in the Skills section | +| **Per-section visibility** | Toggle any of the nine panels on or off; the window updates immediately | +| **Auto-open on enable** | Dashboard window launches automatically when the plugin enables (configurable) | +| **Configurable poll rate** | Refresh interval from 1 to 60 seconds | + +![Dashboard window - bottom half](assets/dashboard-bottom.png) + +--- + +## Requirements + +- Microbot RuneLite client v2.0.13 or newer +- No external dependencies - no HTTP server, no port binding, no other plugins required +- Optional: a Discord channel webhook URL for notifications + +--- + +## How It Works + +1. Enable **Microbot Dashboard Plus** from the plugin list +2. A green chart-line icon appears in the right sidebar toolbar +3. Click the icon to open the sidebar panel, then click **Open Dashboard** to launch the floating window (or enable "Auto-open dashboard on startup" to skip this step) +4. The dashboard polls game state on a background thread at the configured interval and updates all visible panels +5. The floating window remembers its size and position across launches +6. Disabling the plugin removes the sidebar icon, the panel, and the floating window cleanly + +![Plugin settings panel](assets/settings-panel.png) + +--- + +## Configuration + +The plugin config has four sections. + +**Behavior** - controls the window and polling: +- Auto-open dashboard on startup (default ON) - launches the floating window when the plugin enables +- Poll interval in seconds (default 5, range 1-60) - how often to refresh from game state +- Nearby NPCs max distance in tiles (default 20, range 1-200) - filter for the NPC section + +**Layout** - nine boolean toggles, one per panel, all default ON. Untick any section to hide it; the window re-evaluates immediately. + +**Notifications** - requires a Discord webhook URL in the field (masked in the UI, treated as a secret): +- Notify on level-up (default ON) +- Notify on alert threshold crossing (default ON) +- Notify on session start/stop (default OFF) + +**Alerts** - two comma-separated `SKILL:LEVEL` lists: +- Alert thresholds, e.g. `MINING:60, WOODCUTTING:80`. Each threshold fires an in-dashboard banner and optional Discord ping exactly once per session. +- Skill targets (ETA), e.g. `MINING:70, AGILITY:60`. The Skills section shows an ETA to each target from the current XP per hour. A skill with no target still shows an ETA to its next level while it is being trained. + +Skill names follow the OSRS API enum (uppercase). + +--- + +## Limitations + +- This plugin observes and reports only - it does not run game logic, schedule scripts, or make decisions +- Not a remote-view tool - lives in the client process with no HTTP server or LAN access +- Not for vanilla RuneLite users - requires Microbot client APIs +- The Active Scripts list is heuristic: it enumerates enabled plugins rather than reading a dedicated script registry +- The Antiban State section reads the blocking-event running flag by reflection; on a client version where that flag is not accessible it shows the handler count without the live running marker +- Skill ETAs need a non-zero XP per hour to estimate; a skill that is not currently gaining XP shows no ETA unless it has already reached its target + +--- + +## Credits + +- Original dashboard concept and Java port: pjmarz +- Iterative development via Claude Code + +For issues or suggestions, open an issue on the Microbot Hub repository. diff --git a/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/card.png b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/card.png new file mode 100644 index 0000000000000000000000000000000000000000..4e17677cf915f01d5b4ebcd58812136a59ac1c40 GIT binary patch literal 134037 zcmeFa2UwKX_B}i^bPyB?Xt1CdG!9r3G*)a_up`4D!hjkq5F-`@QDBT>!5Vcm_67t@!6&~Z5B3OY^)x9w5;Lh#*(tDjay&r$gR(dZ0MD{wW|7nP5q%>#Z?g>)#lwk zJHCEls!eH0L~ia?r?);!onl`*WyWp|FLydwcD~_in<}SY9w#mQv7v56DwYNG#^h@T>uqj158Ve%ppZ^keKe(aZq%OFZrd?jc*~o?) z*XrK*98>PD6-Pckg|B}+rt!^%hT+vc)Opu3+%;uCt&=q@3oZ+PbGJThT4n!UFO+^h z^}{N~I<>pc*JjlvW;(oXQ&+cEbIY&nMd_`o>Pn~F+}#TzUY>ef_jE+Wnhdw1fCzlx zuqx*VWyOyZUa#n-3C^fJ9~u7gLbyX+iSk9sn8>eFgR81%l)WvFte1v8sI1SeKmKBK z>G%~Za&i~0ELu@lceMC?uNM}tixcx|Zkp6pm4=s`71^|@{iU!z`|MwpyJ`a?GHY(+ z)r=4r*u-mYQ7HofI1W^8opS)gvE61c_~ih8QlKZGRfrJa(hXSq$TEBDt^*^aLKELJ>Pw!TX#OTP! z@+YZXxxY15>&Z{ziI4F%hB&rNTJP5Lg4$Z@eAvY(b}{}jPt?y>TWu2t_475Cdr1|m zEBsAxDk-U7(9ZUl5~C}zusPpbD6M!70+EZ<&2E)=tEq=T>ELUw^rz+FAiOpU913Ix@m9y==Cr39 zqVsqMx|N$F9K0bW@@@ z1I0E6IjdTaEo?mn24cxK33SxQuERzh3uJl@FjXA>DEZD|aV~S8s*Sm)h<53*p1$IV zzop85l@JGxt*wqCv$2&V@I2Nicpk }SncUL_$;;}~9=848p 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 b5Yd&arAo&Y_$~b)IXNUze(q8gC)>8mV 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

I@g;xFfSufEIuBMBRAUc=WtiGcf_XpU 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 Cvb!<> literal 0 HcmV?d00001 diff --git a/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/dashboard-top.png b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/dashboard-top.png new file mode 100644 index 0000000000000000000000000000000000000000..26411d408102113cff83d84095069c5d6f3898fe GIT binary patch literal 128411 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 <5J!aXR0&j>m5}G`l8X3QVD!5T3AX6BI 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/icon.png b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d38c4fd561cc403e608886aa0786a3c24bff83ed GIT binary patch literal 33913 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

GWt4noT?QL(vyCMG+T``j@^meNk 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/settings-panel.png b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/assets/settings-panel.png new file mode 100644 index 0000000000000000000000000000000000000000..6185b473061c62826f0079858a32e636c0f18b16 GIT binary patch literal 27875 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 Date: Tue, 9 Jun 2026 19:13:24 -0400 Subject: [PATCH 09/27] fix(cooking): keep uncooked egg cookable on both fire and range Per the wiki, scrambled egg can be made on a range or a fire; only the item ids were wrong. Addresses Copilot review feedback. Co-Authored-By: Claude Fable 5 --- .../client/plugins/microbot/cooking/enums/CookingItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java b/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java index ab21e8eb0a..c1ad2cc2bc 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java +++ b/src/main/java/net/runelite/client/plugins/microbot/cooking/enums/CookingItem.java @@ -63,7 +63,7 @@ public enum CookingItem UNCOOKED_CAKE("uncooked cake", ItemID.UNCOOKED_CAKE, 40, "cake", ItemID.CAKE, "burnt cake", ItemID.BURNT_CAKE, CookingAreaType.RANGE), // Vegetable POTATO("potato", ItemID.POTATO, 7, "baked potato", ItemID.POTATO_BAKED, "burnt potato", ItemID.POTATO_BURNT, CookingAreaType.RANGE), - UNCOOKED_EGG("uncooked egg", ItemID.BOWL_EGG_RAW, 13, "scrambled egg", ItemID.BOWL_EGG_SCRAMBLED, "burnt egg", ItemID.BOWL_EGG_BURNT, CookingAreaType.RANGE), + UNCOOKED_EGG("uncooked egg", ItemID.BOWL_EGG_RAW, 13, "scrambled egg", ItemID.BOWL_EGG_SCRAMBLED, "burnt egg", ItemID.BOWL_EGG_BURNT, CookingAreaType.BOTH), SWEETCORN("sweetcorn", ItemID.SWEETCORN, 28, "cooked sweetcorn", ItemID.SWEETCORN_COOKED, "burnt sweetcorn", ItemID.SWEETCORN_BURNT, CookingAreaType.BOTH), ; From ed9276da4980642cad794248c1e4787827e65f92 Mon Sep 17 00:00:00 2001 From: pjmarz Date: Tue, 9 Jun 2026 19:16:40 -0400 Subject: [PATCH 10/27] refactor(attackrangesplus): skip fill-path build when fill is off, thread-safe weapon map, log AUTO fallback Addresses Copilot review feedback on #477. Co-Authored-By: Claude Fable 5 --- .../AttackRangesPlusCalc.java | 27 ++++++++++++------- .../AttackRangesPlusOverlay.java | 18 +++++++------ 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java index 3898b2382c..e3acf3a64e 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusCalc.java @@ -1,5 +1,6 @@ package net.runelite.client.plugins.microbot.attackrangesplus; +import lombok.extern.slf4j.Slf4j; import net.runelite.client.plugins.microbot.util.combat.Rs2Combat; import net.runelite.client.plugins.microbot.util.combat.weapons.Melee; import net.runelite.client.plugins.microbot.util.combat.weapons.Weapon; @@ -22,6 +23,7 @@ * ({@link WeaponsGenerator#generate()}). That gives the weapon's base reach (no style modifier); * melee weapons resolve to 1 since their stored range is the special-attack range.

*/ +@Slf4j public class AttackRangesPlusCalc { @Inject @@ -31,18 +33,18 @@ public class AttackRangesPlusCalc private static final int RANGED_PREVIEW_RADIUS = 7; private static final int MAGIC_RADIUS = 10; - // Built once from the same data Rs2Combat uses; reused for opponent weapon lookups. - private static Map weaponsMap; - - private static Map weapons() + /** + * Initialization-on-demand holder: the map is built once, thread-safely, on first use. + * Same data Rs2Combat uses; reused for opponent weapon lookups. + */ + private static final class WeaponsHolder { - if (weaponsMap == null) - { - weaponsMap = WeaponsGenerator.generate(); - } - return weaponsMap; + private static final Map MAP = WeaponsGenerator.generate(); } + /** Set once when the AUTO range lookup fails, so the fallback is logged once rather than per tick. */ + private boolean autoRangeFailureLogged; + /** * @return the local player's attack radius in tiles (>= 0). Never throws. */ @@ -64,6 +66,11 @@ public int getPlayerRangeRadius() } catch (Exception e) { + if (!autoRangeFailureLogged) + { + autoRangeFailureLogged = true; + log.debug("Rs2Combat.getAttackRange failed; falling back to melee radius", e); + } return MELEE_RADIUS; } } @@ -78,7 +85,7 @@ public int getPlayerRangeRadius() */ public int getWeaponRadius(int weaponId) { - final Weapon w = weapons().get(weaponId); + final Weapon w = WeaponsHolder.MAP.get(weaponId); if (w == null) { return MELEE_RADIUS; // unknown weapon -> assume melee reach diff --git a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java index 6622059c2c..d8ea0a9555 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java +++ b/src/main/java/net/runelite/client/plugins/microbot/attackrangesplus/AttackRangesPlusOverlay.java @@ -110,8 +110,9 @@ public Dimension render(Graphics2D graphics) lastTick = tick; } + final boolean buildFill = config.showFill(); final boolean havePlayer = playerRegion.update( - local.getWorldArea(), wv, local.getWorldLocation(), cachedPlayerRadius, cameraChanged, tickChanged); + local.getWorldArea(), wv, local.getWorldLocation(), cachedPlayerRadius, cameraChanged, tickChanged, buildFill); boolean haveOpponent = false; if (config.showOpponent()) @@ -129,7 +130,7 @@ public Dimension render(Graphics2D graphics) cachedOpponentWeaponId = weaponId; } haveOpponent = opponentRegion.update( - opp.getWorldArea(), wv, opp.getWorldLocation(), cachedOpponentRadius, cameraChanged, tickChanged); + opp.getWorldArea(), wv, opp.getWorldLocation(), cachedOpponentRadius, cameraChanged, tickChanged, buildFill); } else { @@ -254,7 +255,7 @@ private final class Region private GeneralPath fill; private GeneralPath outline; - boolean update(WorldArea area, WorldView wv, WorldPoint o, int r, boolean cameraChanged, boolean tickChanged) + boolean update(WorldArea area, WorldView wv, WorldPoint o, int r, boolean cameraChanged, boolean tickChanged, boolean buildFill) { if (area == null || o == null || r <= 0) { @@ -271,9 +272,10 @@ boolean update(WorldArea area, WorldView wv, WorldPoint o, int r, boolean camera origin = o; radius = r; } - if (setChanged || cameraChanged || fill == null) + // The fill path is only constructed while the fill is enabled; toggling it on rebuilds once. + if (setChanged || cameraChanged || outline == null || (buildFill && fill == null)) { - buildPaths(wv, o.getPlane()); + buildPaths(wv, o.getPlane(), buildFill); } return outline != null; } @@ -290,9 +292,9 @@ void clear() } } - private void buildPaths(WorldView wv, int plane) + private void buildPaths(WorldView wv, int plane, boolean buildFill) { - final GeneralPath f = new GeneralPath(GeneralPath.WIND_NON_ZERO); + final GeneralPath f = buildFill ? new GeneralPath(GeneralPath.WIND_NON_ZERO) : null; final GeneralPath o = new GeneralPath(); for (WorldPoint tile : set) @@ -310,7 +312,7 @@ private void buildPaths(WorldView wv, int plane) final Point ne = project(cx + HALF, cy + HALF, wv, plane); final Point nw = project(cx - HALF, cy + HALF, wv, plane); - if (sw != null && se != null && ne != null && nw != null) + if (buildFill && sw != null && se != null && ne != null && nw != null) { f.moveTo(sw.getX(), sw.getY()); f.lineTo(se.getX(), se.getY()); From 43355092f8f1da6f1b11565626865ec37196e85f Mon Sep 17 00:00:00 2001 From: pjmarz Date: Tue, 9 Jun 2026 19:19:22 -0400 Subject: [PATCH 11/27] fix(firemakingplus): bank-first stop conditions, snapshot-based tile scans, clearer line scoring Stop conditions now route through the banking cleanup like targetLevel; TileScanner returns its sets from the client-thread call (proper happens-before) and exposes a one-scan fire lookup for findLightableTile. Addresses Copilot review feedback on #478. Co-Authored-By: Claude Fable 5 --- .../AutoFiremakingPlusScript.java | 21 ++++--- .../microbot/firemakingplus/TileScanner.java | 59 ++++++++++++++----- 2 files changed, 55 insertions(+), 25 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java index 75b8f86f5b..9d5d9cbe81 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/AutoFiremakingPlusScript.java @@ -108,19 +108,19 @@ public boolean run(AutoFiremakingPlusConfig config) { return; } - if (config.stopAfterMinutes() > 0 + if (config.stopAfterMinutes() > 0 && !shutdownAfterCleanup && (System.currentTimeMillis() - startTimeMillis) / 60000 >= config.stopAfterMinutes()) { - Microbot.log("AutoFiremakingPlus: reached stopAfterMinutes. Shutting down."); - super.shutdown(); - return; + Microbot.log("AutoFiremakingPlus: reached stopAfterMinutes. Banking then shutting down."); + shutdownAfterCleanup = true; + state = State.BANKING; } - if (config.stopAfterXp() > 0) { + if (config.stopAfterXp() > 0 && !shutdownAfterCleanup) { int currentXp = Microbot.getClientThread().runOnClientThreadOptional(() -> Microbot.getClient().getSkillExperience(Skill.FIREMAKING)).orElse(startSkillXp); if (currentXp - startSkillXp >= config.stopAfterXp()) { - Microbot.log("AutoFiremakingPlus: reached stopAfterXp. Shutting down."); - super.shutdown(); - return; + Microbot.log("AutoFiremakingPlus: reached stopAfterXp. Banking then shutting down."); + shutdownAfterCleanup = true; + state = State.BANKING; } } if (config.targetLevel() > 0 && !shutdownAfterCleanup) { @@ -280,10 +280,13 @@ private Rs2TileObjectModel findCampfire(WorldPoint anchor, int radius) { /** Find a nearby walkable tile with no fire on it, so we can light our own there. */ private WorldPoint findLightableTile(WorldPoint from) { + // One client-thread scan for nearby fires, then cheap local membership checks per offset, + // instead of streaming the tile-object cache once per candidate tile. + java.util.Set fires = TileScanner.fireTilesNear(from, 2); int[][] offsets = { {-1, 0}, {1, 0}, {0, -1}, {0, 1}, {-1, -1}, {1, 1}, {-1, 1}, {1, -1} }; for (int[] o : offsets) { WorldPoint p = new WorldPoint(from.getX() + o[0], from.getY() + o[1], from.getPlane()); - if (Rs2Tile.isWalkable(p) && !TileScanner.hasFire(p)) { + if (!fires.contains(p) && Rs2Tile.isWalkable(p)) { return p; } } diff --git a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java index e03292dbc3..650a164f1c 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java +++ b/src/main/java/net/runelite/client/plugins/microbot/firemakingplus/TileScanner.java @@ -35,26 +35,54 @@ private static TileState classifyTile(WorldPoint point, Set fireTile return TileState.OPEN; } - public static List findFireLines(WorldPoint center, int radius) { - final Set fireTiles = new HashSet<>(); - final Set objectTiles = new HashSet<>(); + /** Snapshot of fire and non-fire object tiles near a point, built on the client thread. */ + private static final class ObjectSnapshot { + final Set fireTiles; + final Set objectTiles; - // Consume the live scene stream on the client thread; the grid loop below is safe off-thread - // because classifyTile's Rs2Tile.isWalkable self-guards to the client thread per tile. - Microbot.getClientThread().runOnClientThreadOptional(() -> { + ObjectSnapshot(Set fireTiles, Set objectTiles) { + this.fireTiles = fireTiles; + this.objectTiles = objectTiles; + } + } + + /** + * Builds the snapshot entirely inside the client-thread call and hands it back as the call's + * result, so the off-thread reader gets fully populated sets with a proper happens-before edge. + */ + private static ObjectSnapshot snapshotObjects(WorldPoint center, int radius) { + return Microbot.getClientThread().runOnClientThreadOptional(() -> { + Set fires = new HashSet<>(); + Set objects = new HashSet<>(); Microbot.getRs2TileObjectCache().getStream() .filter(obj -> obj.getWorldLocation().distanceTo(center) <= radius) .forEach(obj -> { int id = obj.getId(); WorldPoint loc = obj.getWorldLocation(); if (id == FIRE_ID || id == FIRE_ID_ALT) { - fireTiles.add(loc); + fires.add(loc); } else { - objectTiles.add(loc); + objects.add(loc); } }); - return Boolean.TRUE; - }); + return new ObjectSnapshot(fires, objects); + }).orElseGet(() -> new ObjectSnapshot(new HashSet<>(), new HashSet<>())); + } + + /** + * Fire tiles within {@code radius} of {@code center}. One client-thread scan; callers can then + * do cheap local membership checks instead of streaming the cache per tile. + */ + public static Set fireTilesNear(WorldPoint center, int radius) { + return snapshotObjects(center, radius).fireTiles; + } + + public static List findFireLines(WorldPoint center, int radius) { + // The grid loop below is safe off-thread: the snapshot sets are immutable-by-convention + // results of the client-thread call, and classifyTile's Rs2Tile.isWalkable self-guards. + final ObjectSnapshot snapshot = snapshotObjects(center, radius); + final Set fireTiles = snapshot.fireTiles; + final Set objectTiles = snapshot.objectTiles; List lines = new ArrayList<>(); int plane = center.getPlane(); @@ -93,12 +121,11 @@ public static List findFireLines(WorldPoint center, int radius) { } } - // Score lines: balance length vs proximity to start position. - // A nearby shorter line beats a far-away longer one. - lines.sort(Comparator.comparingDouble((FireLine l) -> { - int distance = center.distanceTo(l.getEastEnd()); - return -(l.getLength() - distance * 0.5); - })); + // Score lines: balance length vs proximity to start position (higher score = better). + // A nearby shorter line beats a far-away longer one; sort best-first. + lines.sort(Comparator.comparingDouble( + (FireLine l) -> l.getLength() - center.distanceTo(l.getEastEnd()) * 0.5 + ).reversed()); return lines; } From 059b5460acebf54ddda72052abbf1ebe6ec65930 Mon Sep 17 00:00:00 2001 From: pjmarz Date: Tue, 9 Jun 2026 19:22:37 -0400 Subject: [PATCH 12/27] fix(microbotdashboardplus): bound XP history memory, fix races and stale javadoc Caps XP samples per skill, captures the executor locally in refreshNow, falls back when the alert threshold changes mid-crossing, fixes the full-width-sections javadoc, replaces double-brace init and the banner emoji, and shows -- for the world before login. Addresses Copilot review feedback on #479. Co-Authored-By: Claude Fable 5 --- .../microbotdashboardplus/DashboardPanel.java | 3 ++- .../microbotdashboardplus/data/XpHistory.java | 11 +++++++++++ .../microbotdashboardplus/poller/GameStatePoller.java | 10 +++++++--- .../microbotdashboardplus/window/DashboardWindow.java | 9 +++++---- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java index d231c071ac..beda5b2cd8 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/DashboardPanel.java @@ -144,7 +144,8 @@ private void applySnapshot(PollSnapshot snapshot) { statusValue.setForeground(ColorScheme.PROGRESS_ERROR_COLOR); } playerValue.setText(snapshot.getPlayerName()); - worldValue.setText(String.valueOf(snapshot.getWorldId())); + // World id is 0 before login; show a placeholder instead of a fake-looking "0". + worldValue.setText(snapshot.getWorldId() > 0 ? String.valueOf(snapshot.getWorldId()) : "--"); scriptsValue.setText(snapshot.getActiveScripts() == null ? "0" : Integer.toString(snapshot.getActiveScripts().size())); diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java index 6e619d643f..28e5a9defd 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/data/XpHistory.java @@ -28,6 +28,13 @@ public class XpHistory { public static final long RETENTION_WINDOW_MS = 24 * 60 * 60 * 1000L; // 24 h /** Inner window used for XP/hr rate calculation. */ public static final long RATE_WINDOW_MS = 5 * 60 * 1000L; // 5 min + /** + * Hard per-skill sample cap so memory stays bounded regardless of poll rate + * (24h at a 1s poll would otherwise be ~86k samples per skill). 17,280 covers + * the full 24h window at the default 5s poll; at faster polls the oldest + * samples roll off sooner, which only coarsens the far end of the chart. + */ + public static final int MAX_SAMPLES_PER_SKILL = 17_280; private final Map baselineXp = new EnumMap<>(Skill.class); private final Map> samplesBySkill = new EnumMap<>(Skill.class); @@ -48,6 +55,10 @@ public synchronized void record(Skill skill, int currentXp) { while (!samples.isEmpty() && samples.peekFirst().timestampMillis < cutoff) { samples.pollFirst(); } + // Bound memory regardless of poll rate. + while (samples.size() > MAX_SAMPLES_PER_SKILL) { + samples.pollFirst(); + } } /** XP gained since the first observation for this skill. */ diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java index dc86bae8f3..18a9c375da 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/poller/GameStatePoller.java @@ -190,8 +190,10 @@ public void setBannerCallback(Consumer bannerCallback) { } public void refreshNow() { - if (executor != null && !executor.isShutdown()) { - executor.submit(this::tickSafely); + // Capture locally: stop() can null the field between the check and the submit. + ScheduledExecutorService ex = executor; + if (ex != null && !ex.isShutdown()) { + ex.submit(this::tickSafely); } } @@ -246,8 +248,10 @@ private void onLevelUp(Skill skill, int from, int to) { boolean alertFired = false; if (alertManager != null && alertManager.checkCrossing(skill, to)) { alertFired = true; + // thresholdFor is a separate call; if the config changed in between it can + // return null, so fall back to the level that triggered the crossing. Integer threshold = alertManager.thresholdFor(skill); - String alertMsg = skillName + " reached level " + threshold + "!"; + String alertMsg = skillName + " reached level " + (threshold != null ? threshold : to) + "!"; if (notifyAlerts && notifier != null) { notifier.send("ALERT: " + alertMsg); } diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java index dd36b92ba7..cf37a742d2 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/window/DashboardWindow.java @@ -53,8 +53,7 @@ * "Open Dashboard" button can re-show it. * *

Layout: 2-column GridBagLayout for the section grid, plus 3 full-width - * sections (Plus Plugins, Event Dismiss Stats, Event Log) that span both - * columns. + * sections (XP Over Time, Event Log, Guide) that span both columns. */ @Slf4j public class DashboardWindow extends JFrame { @@ -321,7 +320,9 @@ private JScrollPane buildSectionScroll() { c.gridy = 6; c.gridwidth = 2; c.weighty = 1.0; - sectionGrid.add(new JPanel() {{ setOpaque(false); }}, c); + JPanel filler = new JPanel(); + filler.setOpaque(false); + sectionGrid.add(filler, c); JScrollPane scroll = new JScrollPane(sectionGrid, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, @@ -369,7 +370,7 @@ private JPanel buildAlertBanner() { public void showAlertBanner(String message) { SwingUtilities.invokeLater(() -> { if (alertBanner == null || alertBannerText == null) return; - alertBannerText.setText("🎯 " + (message == null ? "Threshold reached" : message)); + alertBannerText.setText("ALERT: " + (message == null ? "Threshold reached" : message)); alertBanner.setVisible(true); revalidate(); repaint(); From 30db47f2d31dd3f7c6095cdc6fb8e543237be5ee Mon Sep 17 00:00:00 2001 From: bgatfa Date: Wed, 10 Jun 2026 12:52:08 -0500 Subject: [PATCH 13/27] Publish BankOrganizer plugin --- .../microbot/bankorganizer/BankActuator.java | 1119 +++++++++++++++++ .../bankorganizer/BankOrganizerConfig.java | 238 ++++ .../bankorganizer/BankOrganizerOverlay.java | 120 ++ .../bankorganizer/BankOrganizerPlugin.java | 385 ++++++ .../microbot/bankorganizer/BankSnapshot.java | 147 +++ .../bankorganizer/BankSnapshotReader.java | 144 +++ .../bankorganizer/BankTagLayoutConflict.java | 46 + .../BankTagLayoutMoveAction.java | 63 + .../bankorganizer/BankTagLayoutParser.java | 170 +++ .../bankorganizer/BankTagLayoutPlan.java | 58 + .../bankorganizer/BankTagLayoutPlanner.java | 243 ++++ .../bankorganizer/BankTagLayoutTab.java | 60 + .../microbot/bankorganizer/docs/README.md | 7 + .../bankorganizer/docs/assets/card.png | Bin 0 -> 198576 bytes .../bankorganizer/docs/assets/icon.png | Bin 0 -> 60913 bytes 15 files changed, 2800 insertions(+) create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankActuator.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshot.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshotReader.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutConflict.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutMoveAction.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutParser.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlan.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlanner.java create mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutTab.java create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/assets/card.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/assets/icon.png diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankActuator.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankActuator.java new file mode 100644 index 0000000000..330dcb78c1 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankActuator.java @@ -0,0 +1,1119 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.inject.Inject; +import net.runelite.api.Client; +import net.runelite.api.ItemComposition; +import net.runelite.api.Varbits; +import net.runelite.api.widgets.Widget; +import net.runelite.client.game.ItemManager; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.util.Global; +import net.runelite.client.plugins.microbot.util.bank.Rs2Bank; +import net.runelite.client.plugins.microbot.util.inventory.Rs2ItemModel; +import net.runelite.client.plugins.microbot.util.misc.Rs2UiHelper; +import net.runelite.client.plugins.microbot.util.widget.Rs2Widget; + +final class BankActuator +{ + private static final int BANK_GROUP_ID = 12; + private static final int BANK_INSERT_BUTTON_CHILD_ID = 17; + private static final int BANK_TAB_CONTAINER_DYNAMIC_MAIN_INDEX = 10; + private static final int[] TAB_COUNT_VARBITS = { + Varbits.BANK_TAB_ONE_COUNT, + Varbits.BANK_TAB_TWO_COUNT, + Varbits.BANK_TAB_THREE_COUNT, + Varbits.BANK_TAB_FOUR_COUNT, + Varbits.BANK_TAB_FIVE_COUNT, + Varbits.BANK_TAB_SIX_COUNT, + Varbits.BANK_TAB_SEVEN_COUNT, + Varbits.BANK_TAB_EIGHT_COUNT, + Varbits.BANK_TAB_NINE_COUNT + }; + + private final Client client; + private final ItemManager itemManager; + private final BankSnapshotReader snapshotReader; + private final Map itemNameCache = new HashMap<>(); + + @Inject + BankActuator(Client client, ItemManager itemManager, BankSnapshotReader snapshotReader) + { + this.client = client; + this.itemManager = itemManager; + this.snapshotReader = snapshotReader; + } + + boolean ensureBankOpen() + { + if (Rs2Bank.isOpen()) + { + return true; + } + return Rs2Bank.openBank() && Global.sleepUntil(Rs2Bank::isOpen, 5000); + } + + boolean isBankInsertMode() + { + return bankRearrangeMode() == 1; + } + + ActuatorResult ensureBankInsertMode() + { + if (!ensureBankOpen()) + { + return ActuatorResult.fail("Bank is not open."); + } + if (isBankInsertMode()) + { + return ActuatorResult.ok("Bank rearrange mode is already Insert."); + } + + if (!Rs2Widget.clickWidget(BANK_GROUP_ID, BANK_INSERT_BUTTON_CHILD_ID)) + { + return ActuatorResult.fail("Could not click bank Insert mode."); + } + + boolean verified = Global.sleepUntil(this::isBankInsertMode, 2500); + return verified + ? ActuatorResult.ok("Bank rearrange mode set to Insert.") + : ActuatorResult.fail("Bank rearrange mode did not switch to Insert."); + } + + ActuatorResult openMainTab() + { + if (!ensureBankOpen()) + { + return ActuatorResult.fail("Bank is not open."); + } + if (Rs2Bank.getCurrentTab() == 0) + { + return ActuatorResult.ok("Main tab already open."); + } + if (!Rs2Bank.openMainTab()) + { + return ActuatorResult.fail("Could not invoke main tab."); + } + boolean verified = Global.sleepUntil(() -> Rs2Bank.getCurrentTab() == 0, 2500); + return verified ? ActuatorResult.ok("Main tab opened.") : ActuatorResult.fail("Main tab did not become active."); + } + + ActuatorResult openTab(int tabIndex) + { + if (!ensureBankOpen()) + { + return ActuatorResult.fail("Bank is not open."); + } + if (tabIndex == 0) + { + return openMainTab(); + } + if (tabIndex < 1 || tabIndex > 9 || tabCount(tabIndex) <= 0) + { + return ActuatorResult.fail("Tab " + tabIndex + " does not exist."); + } + if (Rs2Bank.getCurrentTab() == tabIndex) + { + return ActuatorResult.ok("Tab " + tabIndex + " already open."); + } + if (!Rs2Bank.openTab(tabIndex)) + { + return ActuatorResult.fail("Could not invoke tab " + tabIndex + "."); + } + boolean verified = Global.sleepUntil(() -> Rs2Bank.getCurrentTab() == tabIndex, 2500); + return verified ? ActuatorResult.ok("Tab " + tabIndex + " opened.") : ActuatorResult.fail("Tab " + tabIndex + " did not become active."); + } + + ActuatorResult dragItemFromTabToNewTab(int itemId, int sourceTab) + { + if (!ensureBankOpen()) + { + return ActuatorResult.fail("Bank is not open."); + } + + ActuatorResult sourceTabOpen = openTab(sourceTab); + if (!sourceTabOpen.success()) + { + return sourceTabOpen; + } + + Rs2ItemModel item = findBankItem(itemId); + if (item == null) + { + return ActuatorResult.fail("Item " + itemId + " is not in the bank."); + } + + int beforeRealTabs = realTabCount(); + if (beforeRealTabs >= 9) + { + return ActuatorResult.fail("All nine real bank tabs already exist."); + } + int newTabIndex = beforeRealTabs + 1; + int beforeCount = tabCount(newTabIndex); + int beforeSourceCount = sourceTab > 0 ? tabCount(sourceTab) : 0; + + if (!Rs2Bank.scrollBankToSlot(item.getSlot())) + { + return ActuatorResult.fail("Could not scroll source item into view."); + } + + Rectangle source = Rs2Bank.getItemBounds(item.getSlot()); + Rectangle target = tabBounds(newTabTargetDynamicIndex()); + if (!inCanvas(source) || !inCanvas(target)) + { + return ActuatorResult.fail("Source or new-tab bounds were outside the canvas."); + } + + int originalQuantity = item.getQuantity(); + Microbot.drag(source, target); + boolean verified = Global.sleepUntil(() -> + tabCount(newTabIndex) > beforeCount + && (sourceTab <= 0 || tabCount(sourceTab) < beforeSourceCount) + && quantityFor(itemId) == originalQuantity, 5000); + return verified + ? ActuatorResult.ok("Dragged item to new tab " + newTabIndex + ".") + : ActuatorResult.fail("New-tab drag was not verified."); + } + + ActuatorResult dragItemFromTabToMainTab(int itemId, int sourceTab) + { + if (!ensureBankOpen()) + { + return ActuatorResult.fail("Bank is not open."); + } + if (sourceTab <= 0) + { + return ActuatorResult.ok("Item is already in main tab."); + } + if (sourceTab > 9 || tabCount(sourceTab) <= 0) + { + return ActuatorResult.fail("Source tab " + sourceTab + " does not exist."); + } + + ActuatorResult sourceTabOpen = openTab(sourceTab); + if (!sourceTabOpen.success()) + { + return sourceTabOpen; + } + + Rs2ItemModel item = findBankItem(itemId); + if (item == null) + { + return ActuatorResult.fail("Item " + itemId + " is not in the bank."); + } + + BankSnapshot beforeSnapshot = snapshotReader.read(); + int beforeMainCount = beforeSnapshot.mainTabCount(); + int beforeSourceCount = tabCount(sourceTab); + int originalQuantity = item.getQuantity(); + if (!Rs2Bank.scrollBankToSlot(item.getSlot())) + { + return ActuatorResult.fail("Could not scroll source item into view."); + } + + Rectangle source = Rs2Bank.getItemBounds(item.getSlot()); + Rectangle target = tabBounds(BANK_TAB_CONTAINER_DYNAMIC_MAIN_INDEX); + if (!inCanvas(source) || !inCanvas(target)) + { + return ActuatorResult.fail("Source or main tab bounds were outside the canvas."); + } + + Microbot.drag(source, target); + boolean verified = Global.sleepUntil(() -> { + if (tabCount(sourceTab) >= beforeSourceCount || quantityFor(itemId) != originalQuantity) + { + return false; + } + try + { + return snapshotReader.read().mainTabCount() > beforeMainCount; + } + catch (Throwable ignored) + { + return false; + } + }, 5000); + return verified + ? ActuatorResult.ok("Dragged item to main tab.") + : ActuatorResult.fail("Main-tab drag was not verified."); + } + + ActuatorResult dragItemFromTabToExistingTab(int itemId, int sourceTab, int tabIndex) + { + if (!ensureBankOpen()) + { + return ActuatorResult.fail("Bank is not open."); + } + if (tabIndex < 1 || tabIndex > 9 || tabCount(tabIndex) <= 0) + { + return ActuatorResult.fail("Destination tab " + tabIndex + " does not exist."); + } + if (sourceTab == tabIndex) + { + return ActuatorResult.ok("Item is already in destination tab " + tabIndex + "."); + } + + ActuatorResult sourceTabOpen = openTab(sourceTab); + if (!sourceTabOpen.success()) + { + return sourceTabOpen; + } + + Rs2ItemModel item = findBankItem(itemId); + if (item == null) + { + return ActuatorResult.fail("Item " + itemId + " is not in the bank."); + } + + int beforeCount = tabCount(tabIndex); + int beforeSourceCount = sourceTab > 0 ? tabCount(sourceTab) : 0; + int originalQuantity = item.getQuantity(); + if (!Rs2Bank.scrollBankToSlot(item.getSlot())) + { + return ActuatorResult.fail("Could not scroll source item into view."); + } + + Rectangle source = Rs2Bank.getItemBounds(item.getSlot()); + Rectangle target = tabBounds(BANK_TAB_CONTAINER_DYNAMIC_MAIN_INDEX + tabIndex); + if (!inCanvas(source) || !inCanvas(target)) + { + return ActuatorResult.fail("Source or destination tab bounds were outside the canvas."); + } + + Microbot.drag(source, target); + boolean verified = Global.sleepUntil(() -> { + if (quantityFor(itemId) != originalQuantity) + { + return false; + } + try + { + BankSnapshot.BankStack moved = stackByItemId(snapshotReader.read(), itemId); + return moved != null && moved.tab() == tabIndex && tabCount(tabIndex) > beforeCount + && (sourceTab <= 0 || sourceTab == tabIndex || tabCount(sourceTab) < beforeSourceCount); + } + catch (Throwable ignored) + { + return false; + } + }, 5000); + return verified + ? ActuatorResult.ok("Dragged item to existing tab " + tabIndex + ".") + : ActuatorResult.fail("Existing-tab drag was not verified."); + } + + FullOrganizeResult runBankTagLayoutDelta(BankTagLayoutPlan plan, boolean forceInsertVariants) + { + if (!ensureBankOpen()) + { + return FullOrganizeResult.fail("Bank is not open.", null, 0, 0); + } + if (plan == null) + { + return FullOrganizeResult.fail("No layout plan was provided.", safeSnapshot(), 0, 0); + } + ActuatorResult insertMode = ensureBankInsertMode(); + if (!insertMode.success()) + { + return FullOrganizeResult.fail(insertMode.message(), safeSnapshot(), 0, 0); + } + + BankSnapshot baseline = snapshotReader.read(); + int originalCount = baseline.stackCount(); + Map originalQuantities = quantityMap(baseline); + if (forceInsertVariants) + { + cacheLayoutItemNames(plan.tabs()); + } + int createdTabs = 0; + int moved = 0; + int sorted = 0; + List steps = new ArrayList<>(); + + Map> actionsByTab = layoutActionsByTargetTab(plan.actions()); + List mainActions = actionsByTab.get(0); + if (mainActions != null && !mainActions.isEmpty()) + { + for (BankTagLayoutMoveAction action : mainActions) + { + if (Thread.currentThread().isInterrupted()) + { + return FullOrganizeResult.fail("Layout organize interrupted.", safeSnapshot(), createdTabs, moved); + } + + BankSnapshot.BankStack currentStack = stackByItemId(snapshotReader.read(), action.itemId()); + if (currentStack == null) + { + return FullOrganizeResult.fail("Could not find " + action.name() + + " before moving it to main.", safeSnapshot(), createdTabs, moved); + } + + ActuatorResult move = dragItemFromTabToMainTab(action.itemId(), currentStack.tab()); + steps.add("Main: " + move.message()); + if (!move.success()) + { + return FullOrganizeResult.fail(joinSteps(steps), safeSnapshot(), createdTabs, moved); + } + moved++; + + BankSnapshot afterMove = snapshotReader.read(); + String verificationError = verifySnapshotUnchanged(originalCount, originalQuantities, afterMove); + if (verificationError != null) + { + return FullOrganizeResult.fail("After moving " + action.name() + " to main: " + + verificationError, afterMove, createdTabs, moved); + } + } + } + + for (BankTagLayoutTab tab : plan.tabs()) + { + List actions = actionsByTab.get(tab.tabIndex()); + if (actions == null || actions.isEmpty()) + { + continue; + } + if (Thread.currentThread().isInterrupted()) + { + return FullOrganizeResult.fail("Layout organize interrupted.", safeSnapshot(), createdTabs, moved); + } + + int startIndex = 0; + if (tabCount(tab.tabIndex()) <= 0) + { + int appendTab = realTabCount() + 1; + if (tab.tabIndex() != appendTab) + { + return FullOrganizeResult.fail("Cannot create missing layout tab " + tab.tabIndex() + + " (" + tab.name() + ") because the next appendable tab is " + appendTab + ".", + safeSnapshot(), createdTabs, moved); + } + + BankTagLayoutMoveAction seed = actions.get(0); + BankSnapshot.BankStack currentSeed = stackByItemId(snapshotReader.read(), seed.itemId()); + if (currentSeed == null) + { + return FullOrganizeResult.fail("Could not find " + seed.name() + + " before creating layout tab " + tab.name() + ".", safeSnapshot(), createdTabs, moved); + } + + ActuatorResult createTab = dragItemFromTabToNewTab(seed.itemId(), currentSeed.tab()); + steps.add(tab.name() + ": " + createTab.message()); + if (!createTab.success()) + { + return FullOrganizeResult.fail(joinSteps(steps), safeSnapshot(), createdTabs, moved); + } + createdTabs++; + moved++; + startIndex = 1; + + BankSnapshot afterSeed = snapshotReader.read(); + String verificationError = verifySnapshotUnchanged(originalCount, originalQuantities, afterSeed); + if (verificationError != null) + { + return FullOrganizeResult.fail("After creating layout tab " + tab.name() + ": " + + verificationError, afterSeed, createdTabs, moved); + } + if (tabCount(tab.tabIndex()) != 1) + { + return FullOrganizeResult.fail("Expected layout tab " + tab.tabIndex() + + " count 1 after seed, got " + tabCount(tab.tabIndex()) + ".", afterSeed, createdTabs, moved); + } + } + + for (int i = startIndex; i < actions.size(); i++) + { + if (Thread.currentThread().isInterrupted()) + { + return FullOrganizeResult.fail("Layout organize interrupted.", safeSnapshot(), createdTabs, moved); + } + + BankTagLayoutMoveAction action = actions.get(i); + BankSnapshot.BankStack currentStack = stackByItemId(snapshotReader.read(), action.itemId()); + if (currentStack == null) + { + return FullOrganizeResult.fail("Could not find " + action.name() + + " before moving it to " + tab.name() + ".", safeSnapshot(), createdTabs, moved); + } + if (currentStack.tab() == tab.tabIndex()) + { + continue; + } + + ActuatorResult move = dragItemFromTabToExistingTab(action.itemId(), currentStack.tab(), tab.tabIndex()); + steps.add(tab.name() + ": " + move.message()); + if (!move.success()) + { + return FullOrganizeResult.fail(joinSteps(steps), safeSnapshot(), createdTabs, moved); + } + moved++; + + BankSnapshot afterMove = snapshotReader.read(); + String verificationError = verifySnapshotUnchanged(originalCount, originalQuantities, afterMove); + if (verificationError != null) + { + return FullOrganizeResult.fail("After moving " + action.name() + ": " + + verificationError, afterMove, createdTabs, moved); + } + } + } + + for (BankTagLayoutTab tab : plan.tabs()) + { + if (Thread.currentThread().isInterrupted()) + { + return FullOrganizeResult.fail("Layout sort interrupted.", safeSnapshot(), createdTabs, moved + sorted); + } + + SortResult sort = sortTabByLayout(tab, forceInsertVariants, originalCount, originalQuantities); + if (!sort.success()) + { + return FullOrganizeResult.fail(sort.message(), safeSnapshot(), createdTabs, moved + sorted); + } + sorted += sort.moves(); + } + + BankSnapshot finalSnapshot = snapshotReader.read(); + String verificationError = verifySnapshotUnchanged(originalCount, originalQuantities, finalSnapshot); + if (verificationError != null) + { + return FullOrganizeResult.fail(verificationError, finalSnapshot, createdTabs, moved); + } + + return FullOrganizeResult.ok("Layout delta moved " + moved + " stacks, sorted " + sorted + + " positions, and created " + createdTabs + + " missing tabs. Bank count/quantities verified.", finalSnapshot, createdTabs, moved + sorted); + } + + private SortResult sortTabByLayout( + BankTagLayoutTab tab, + boolean forceInsertVariants, + int originalCount, + Map originalQuantities) + { + if (tabCount(tab.tabIndex()) <= 0) + { + return SortResult.ok("Tab " + tab.tabIndex() + " does not exist; no sort needed.", 0); + } + + ActuatorResult open = openTab(tab.tabIndex()); + if (!open.success()) + { + return SortResult.fail(open.message(), 0); + } + + ActuatorResult insertMode = ensureBankInsertMode(); + if (!insertMode.success()) + { + return SortResult.fail(insertMode.message(), 0); + } + + int moves = 0; + for (int targetPosition = 0; ; targetPosition++) + { + BankSnapshot snapshot = snapshotReader.read(); + List tabStacks = tabStacks(snapshot, tab.tabIndex()); + List desiredPresent = desiredPresentItemIds(tab, tabStacks, forceInsertVariants); + if (targetPosition >= desiredPresent.size()) + { + return SortResult.ok("Sorted tab " + tab.tabIndex() + ".", moves); + } + + int desiredItemId = desiredPresent.get(targetPosition); + if (targetPosition >= tabStacks.size()) + { + return SortResult.fail("Tab " + tab.tabIndex() + " has fewer stacks than expected while sorting.", moves); + } + if (tabStacks.get(targetPosition).itemId() == desiredItemId) + { + continue; + } + + int sourcePosition = indexOfItemId(tabStacks, desiredItemId); + if (sourcePosition < 0) + { + return SortResult.fail("Could not find item " + desiredItemId + " in tab " + tab.tabIndex() + + " while sorting.", moves); + } + if (sourcePosition < targetPosition) + { + return SortResult.fail("Sorting prefix drifted in tab " + tab.tabIndex() + ".", moves); + } + + BankSnapshot.BankStack source = tabStacks.get(sourcePosition); + BankSnapshot.BankStack target = tabStacks.get(targetPosition); + ActuatorResult drag = dragItemWithinOpenTab(source, target); + if (!drag.success()) + { + return SortResult.fail("Tab " + tab.tabIndex() + ": " + drag.message(), moves); + } + moves++; + + int verifiedPrefixLength = targetPosition + 1; + boolean sortedPrefix = Global.sleepUntil(() -> { + BankSnapshot afterMove = snapshotReader.read(); + return verifySnapshotUnchanged(originalCount, originalQuantities, afterMove) == null + && isOrderedPrefix(afterMove, tab, forceInsertVariants, verifiedPrefixLength); + }, 5000); + if (!sortedPrefix) + { + BankSnapshot afterMove = snapshotReader.read(); + String unchangedError = verifySnapshotUnchanged(originalCount, originalQuantities, afterMove); + if (unchangedError != null) + { + return SortResult.fail("After sorting tab " + tab.tabIndex() + ": " + unchangedError, moves); + } + return SortResult.fail("Tab " + tab.tabIndex() + " order was not verified after moving " + + source.name() + ".", moves); + } + } + } + + private static ActuatorResult dragItemWithinOpenTab(BankSnapshot.BankStack sourceStack, BankSnapshot.BankStack targetStack) + { + if (!Rs2Bank.scrollBankToSlot(sourceStack.slot())) + { + return ActuatorResult.fail("Could not scroll source item into view."); + } + + Rectangle source = Rs2Bank.getItemBounds(sourceStack.slot()); + Rectangle target = Rs2Bank.getItemBounds(targetStack.slot()); + if (!inCanvas(source) || !inCanvas(target)) + { + return ActuatorResult.fail("Source or target slot bounds were outside the canvas."); + } + + Microbot.drag(source, target); + return ActuatorResult.ok("Inserted " + sourceStack.name() + " before " + targetStack.name() + "."); + } + + int realTabCount() + { + int count = 0; + for (int i = 1; i <= 9; i++) + { + if (tabCount(i) > 0) + { + count = i; + } + } + return count; + } + + int tabCount(int tabIndex) + { + if (tabIndex < 1 || tabIndex > TAB_COUNT_VARBITS.length) + { + return 0; + } + return Microbot.getClientThread().runOnClientThreadOptional(() -> + client.getVarbitValue(TAB_COUNT_VARBITS[tabIndex - 1])).orElse(0); + } + + int bankRearrangeMode() + { + return Microbot.getClientThread().runOnClientThreadOptional(() -> + client.getVarbitValue(Varbits.BANK_REARRANGE_MODE)).orElse(-1); + } + + int quantityFor(int itemId) + { + Rs2ItemModel item = findBankItem(itemId); + return item == null ? 0 : item.getQuantity(); + } + + private static Rs2ItemModel findBankItem(int itemId) + { + return Rs2Bank.bankItems().stream() + .filter(item -> item.getId() == itemId) + .min(Comparator.comparingInt(Rs2ItemModel::getSlot)) + .orElse(null); + } + + private int newTabTargetDynamicIndex() + { + return BANK_TAB_CONTAINER_DYNAMIC_MAIN_INDEX + realTabCount() + 1; + } + + private static Widget tabWidget(int dynamicIndex) + { + List tabs = Rs2Bank.getTabs(); + if (dynamicIndex < 0 || dynamicIndex >= tabs.size()) + { + return null; + } + return tabs.get(dynamicIndex); + } + + private static Rectangle tabBounds(int dynamicIndex) + { + Widget tab = tabWidget(dynamicIndex); + return tab == null ? null : tab.getBounds(); + } + + private static boolean inCanvas(Rectangle rectangle) + { + return rectangle != null && Rs2UiHelper.isRectangleWithinCanvas(rectangle); + } + + private static String joinSteps(List steps) + { + return String.join(" ", steps); + } + + private BankSnapshot safeSnapshot() + { + try + { + return snapshotReader.read(); + } + catch (Throwable ignored) + { + return null; + } + } + + private static Map quantityMap(BankSnapshot snapshot) + { + Map quantities = new HashMap<>(); + for (BankSnapshot.BankStack stack : snapshot.items()) + { + quantities.merge(stack.itemId(), stack.quantity(), Integer::sum); + } + return quantities; + } + + private static BankSnapshot.BankStack stackByItemId(BankSnapshot snapshot, int itemId) + { + for (BankSnapshot.BankStack stack : snapshot.items()) + { + if (stack.itemId() == itemId) + { + return stack; + } + } + return null; + } + + private static Map> layoutActionsByTargetTab(List actions) + { + Map> actionsByTab = new HashMap<>(); + for (BankTagLayoutMoveAction action : actions) + { + actionsByTab.computeIfAbsent(action.targetTab(), ignored -> new ArrayList<>()).add(action); + } + return actionsByTab; + } + + private static List tabStacks(BankSnapshot snapshot, int tabIndex) + { + List stacks = new ArrayList<>(); + for (BankSnapshot.BankStack stack : snapshot.items()) + { + if (stack.tab() == tabIndex) + { + stacks.add(stack); + } + } + stacks.sort(Comparator.comparingInt(BankSnapshot.BankStack::allItemsIndex)); + return stacks; + } + + private List desiredPresentItemIds( + BankTagLayoutTab tab, + List tabStacks, + boolean forceInsertVariants) + { + Map present = new HashMap<>(); + for (BankSnapshot.BankStack stack : tabStacks) + { + present.putIfAbsent(stack.itemId(), stack); + } + + if (forceInsertVariants) + { + return desiredPresentItemIdsWithForcedVariants(tab, present); + } + + List desired = new ArrayList<>(); + Set added = new HashSet<>(); + for (int itemId : tab.orderedItemIds()) + { + if (present.containsKey(itemId) && added.add(itemId)) + { + desired.add(itemId); + } + } + return desired; + } + + private List desiredPresentItemIdsWithForcedVariants( + BankTagLayoutTab tab, + Map present) + { + Map> presentVariantsByBase = new HashMap<>(); + for (BankSnapshot.BankStack stack : present.values()) + { + Variant variant = Variant.fromName(stack.name()); + if (variant != null) + { + presentVariantsByBase.computeIfAbsent(variant.baseName(), ignored -> new ArrayList<>()).add(stack); + } + } + for (List variants : presentVariantsByBase.values()) + { + variants.sort((left, right) -> { + Variant leftVariant = Variant.fromName(left.name()); + Variant rightVariant = Variant.fromName(right.name()); + int leftCharge = leftVariant == null ? -1 : leftVariant.charge(); + int rightCharge = rightVariant == null ? -1 : rightVariant.charge(); + int chargeCompare = Integer.compare(rightCharge, leftCharge); + return chargeCompare != 0 ? chargeCompare : Integer.compare(left.itemId(), right.itemId()); + }); + } + + List desired = new ArrayList<>(); + Set added = new HashSet<>(); + for (int itemId : tab.orderedItemIds()) + { + if (added.contains(itemId)) + { + continue; + } + + Variant csvVariant = Variant.fromName(itemName(itemId)); + if (csvVariant != null) + { + List family = presentVariantsByBase.get(csvVariant.baseName()); + if (family != null && !family.isEmpty()) + { + for (BankSnapshot.BankStack variantStack : family) + { + if (added.add(variantStack.itemId())) + { + desired.add(variantStack.itemId()); + } + } + continue; + } + } + + if (present.containsKey(itemId) && added.add(itemId)) + { + desired.add(itemId); + } + } + return desired; + } + + private static int indexOfItemId(List stacks, int itemId) + { + for (int i = 0; i < stacks.size(); i++) + { + if (stacks.get(i).itemId() == itemId) + { + return i; + } + } + return -1; + } + + private String itemName(int itemId) + { + String cached = itemNameCache.get(itemId); + if (cached != null) + { + return cached; + } + + String name = Microbot.getClientThread().runOnClientThreadOptional(() -> itemNameOnClientThread(itemId)).orElse(""); + itemNameCache.put(itemId, name); + return name; + } + + private void cacheLayoutItemNames(List tabs) + { + Set missing = new HashSet<>(); + for (BankTagLayoutTab tab : tabs) + { + for (int itemId : tab.orderedItemIds()) + { + if (!itemNameCache.containsKey(itemId)) + { + missing.add(itemId); + } + } + } + if (missing.isEmpty()) + { + return; + } + + Map names = Microbot.getClientThread().runOnClientThreadOptional(() -> { + Map resolved = new HashMap<>(); + for (int itemId : missing) + { + resolved.put(itemId, itemNameOnClientThread(itemId)); + } + return resolved; + }).orElse(null); + if (names != null) + { + itemNameCache.putAll(names); + } + } + + private String itemNameOnClientThread(int itemId) + { + try + { + ItemComposition composition = itemManager.getItemComposition(itemId); + String name = composition.getName(); + return name == null ? "" : name; + } + catch (Throwable ignored) + { + return ""; + } + } + + private boolean isOrderedPrefix( + BankSnapshot snapshot, + BankTagLayoutTab tab, + boolean forceInsertVariants, + int prefixLength) + { + List stacks = tabStacks(snapshot, tab.tabIndex()); + List desired = desiredPresentItemIds(tab, stacks, forceInsertVariants); + if (desired.size() < prefixLength || stacks.size() < prefixLength) + { + return false; + } + for (int i = 0; i < prefixLength; i++) + { + if (stacks.get(i).itemId() != desired.get(i)) + { + return false; + } + } + return true; + } + + private static String verifySnapshotUnchanged(int expectedCount, Map expectedQuantities, BankSnapshot snapshot) + { + if (snapshot.stackCount() != expectedCount) + { + return "bank stack count changed from " + expectedCount + " to " + snapshot.stackCount() + "."; + } + Map actualQuantities = quantityMap(snapshot); + if (!expectedQuantities.equals(actualQuantities)) + { + return "item quantities changed."; + } + return null; + } + + private static final class Variant + { + private final String baseName; + private final int charge; + + private Variant(String baseName, int charge) + { + this.baseName = baseName; + this.charge = charge; + } + + static Variant fromName(String name) + { + if (name == null) + { + return null; + } + + String trimmed = name.trim(); + if (!trimmed.endsWith(")")) + { + return null; + } + + int open = trimmed.lastIndexOf('('); + if (open <= 0 || open + 1 >= trimmed.length() - 1) + { + return null; + } + + String chargeText = trimmed.substring(open + 1, trimmed.length() - 1); + for (int i = 0; i < chargeText.length(); i++) + { + if (!Character.isDigit(chargeText.charAt(i))) + { + return null; + } + } + + int charge; + try + { + charge = Integer.parseInt(chargeText); + } + catch (NumberFormatException ex) + { + return null; + } + if (charge <= 0) + { + return null; + } + + String baseName = trimmed.substring(0, open).trim().toLowerCase(); + return baseName.isEmpty() ? null : new Variant(baseName, charge); + } + + String baseName() + { + return baseName; + } + + int charge() + { + return charge; + } + } + + static final class ActuatorResult + { + private final boolean success; + private final String message; + + private ActuatorResult(boolean success, String message) + { + this.success = success; + this.message = message; + } + + static ActuatorResult ok(String message) + { + return new ActuatorResult(true, message); + } + + static ActuatorResult fail(String message) + { + return new ActuatorResult(false, message); + } + + boolean success() + { + return success; + } + + String message() + { + return message; + } + } + + private static final class SortResult + { + private final boolean success; + private final String message; + private final int moves; + + private SortResult(boolean success, String message, int moves) + { + this.success = success; + this.message = message; + this.moves = moves; + } + + static SortResult ok(String message, int moves) + { + return new SortResult(true, message, moves); + } + + static SortResult fail(String message, int moves) + { + return new SortResult(false, message, moves); + } + + boolean success() + { + return success; + } + + String message() + { + return message; + } + + int moves() + { + return moves; + } + } + + static final class FullOrganizeResult + { + private final boolean success; + private final String message; + private final BankSnapshot finalSnapshot; + private final int createdTabs; + private final int movedStacks; + + private FullOrganizeResult(boolean success, String message, BankSnapshot finalSnapshot, int createdTabs, int movedStacks) + { + this.success = success; + this.message = message; + this.finalSnapshot = finalSnapshot; + this.createdTabs = createdTabs; + this.movedStacks = movedStacks; + } + + static FullOrganizeResult ok(String message, BankSnapshot finalSnapshot, int createdTabs, int movedStacks) + { + return new FullOrganizeResult(true, message, finalSnapshot, createdTabs, movedStacks); + } + + static FullOrganizeResult fail(String message, BankSnapshot finalSnapshot, int createdTabs, int movedStacks) + { + return new FullOrganizeResult(false, message, finalSnapshot, createdTabs, movedStacks); + } + + boolean success() + { + return success; + } + + String message() + { + return message; + } + + BankSnapshot finalSnapshot() + { + return finalSnapshot; + } + + int createdTabs() + { + return createdTabs; + } + + int movedStacks() + { + return movedStacks; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java new file mode 100644 index 0000000000..f5539e1ef1 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java @@ -0,0 +1,238 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigItem; + +@ConfigGroup(BankOrganizerConfig.GROUP) +public interface BankOrganizerConfig extends Config +{ + String GROUP = "bankorganizer"; + String DEFAULT_LAYOUT_TAB_1 = "banktags,1,Gathering,1511,layout,0,1511,1,1521,2,6333,3,6332,4,1519,5,1517,6,1515,7,1513,8,8778,9,8780,10,960,11,8782,12,32904,13,32907,14,32910,15,19669,16,438,17,440,18,453,19,447,20,449,21,451,22,442,23,444,24,2349,25,2351,26,2353,27,2359,28,2361,29,2363,30,2355,31,2357,32,436,33,31719,34,32892,35,32889,36,31716,37,434,38,1761,39,2922,40,1623,41,1621,42,1619,43,1617,44,1631,45,1625,46,1627,47,1629,48,1607,49,1605,50,1603,51,1601,52,1615,53,1609,54,1611,55,1613,56,1656,57,1639,58,1660,59,1681,60,1683,61,21090,62,21102,63,21105,64,1597,65,1592,66,1595,67,1700,68,1702,69,1759,70,21111,71,21114,72,1757,73,1733,74,1734,75,21504,76,1781,77,1783,78,1785,79,1775"; + + @ConfigItem( + keyName = "showOverlay", + name = "Show overlay", + description = "Show the Bank Organizer status overlay.", + position = 0 + ) + default boolean showOverlay() + { + return true; + } + + @ConfigItem( + keyName = "forceInsertVariants", + name = "Force insert variants", + description = "Group numeric charged variants at the first matching CSV position and sort them high-to-low.", + position = 1 + ) + default boolean forceInsertVariants() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab1Active", + name = "Tab 1", + description = "Use tab 1 when organizing.", + position = 2 + ) + default boolean layoutTab1Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab1", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 1.", + position = 3 + ) + default String layoutTab1() + { + return DEFAULT_LAYOUT_TAB_1; + } + + @ConfigItem( + keyName = "layoutTab2Active", + name = "Tab 2", + description = "Use tab 2 when organizing.", + position = 4 + ) + default boolean layoutTab2Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab2", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 2.", + position = 5 + ) + default String layoutTab2() + { + return ""; + } + + @ConfigItem( + keyName = "layoutTab3Active", + name = "Tab 3", + description = "Use tab 3 when organizing.", + position = 6 + ) + default boolean layoutTab3Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab3", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 3.", + position = 7 + ) + default String layoutTab3() + { + return ""; + } + + @ConfigItem( + keyName = "layoutTab4Active", + name = "Tab 4", + description = "Use tab 4 when organizing.", + position = 8 + ) + default boolean layoutTab4Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab4", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 4.", + position = 9 + ) + default String layoutTab4() + { + return ""; + } + + @ConfigItem( + keyName = "layoutTab5Active", + name = "Tab 5", + description = "Use tab 5 when organizing.", + position = 10 + ) + default boolean layoutTab5Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab5", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 5.", + position = 11 + ) + default String layoutTab5() + { + return ""; + } + + @ConfigItem( + keyName = "layoutTab6Active", + name = "Tab 6", + description = "Use tab 6 when organizing.", + position = 12 + ) + default boolean layoutTab6Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab6", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 6.", + position = 13 + ) + default String layoutTab6() + { + return ""; + } + + @ConfigItem( + keyName = "layoutTab7Active", + name = "Tab 7", + description = "Use tab 7 when organizing.", + position = 14 + ) + default boolean layoutTab7Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab7", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 7.", + position = 15 + ) + default String layoutTab7() + { + return ""; + } + + @ConfigItem( + keyName = "layoutTab8Active", + name = "Tab 8", + description = "Use tab 8 when organizing.", + position = 16 + ) + default boolean layoutTab8Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab8", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 8.", + position = 17 + ) + default String layoutTab8() + { + return ""; + } + + @ConfigItem( + keyName = "layoutTab9Active", + name = "Tab 9", + description = "Use tab 9 when organizing.", + position = 18 + ) + default boolean layoutTab9Active() + { + return false; + } + + @ConfigItem( + keyName = "layoutTab9", + name = "", + description = "RuneLite bank tag or layout CSV for real tab 9.", + position = 19 + ) + default String layoutTab9() + { + return ""; + } + +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java new file mode 100644 index 0000000000..3153da45db --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Point; +import java.awt.Rectangle; +import javax.inject.Inject; +import net.runelite.client.ui.FontManager; +import net.runelite.client.ui.overlay.OverlayLayer; +import net.runelite.client.ui.overlay.OverlayPanel; +import net.runelite.client.ui.overlay.OverlayPosition; +import net.runelite.client.ui.overlay.components.LineComponent; + +class BankOrganizerOverlay extends OverlayPanel +{ + private static final int WIDTH = 232; + private static final Color MUTED = new Color(190, 190, 190); + private static final Color WARNING = new Color(255, 190, 85); + private static final Color STOPPED = new Color(255, 115, 115); + + private final BankOrganizerPlugin plugin; + private final BankOrganizerConfig config; + + @Inject + BankOrganizerOverlay(BankOrganizerPlugin plugin, BankOrganizerConfig config) + { + super(plugin); + this.plugin = plugin; + this.config = config; + setPosition(OverlayPosition.TOP_RIGHT); + setLayer(OverlayLayer.ALWAYS_ON_TOP); + panelComponent.setPreferredSize(new Dimension(WIDTH, 0)); + panelComponent.setBorder(new Rectangle(6, 5, 6, 5)); + panelComponent.setGap(new Point(0, 3)); + } + + @Override + public Dimension render(java.awt.Graphics2D graphics) + { + if (!config.showOverlay()) + { + return null; + } + + BankOrganizerPlugin.OverlayState state = plugin.getOverlayStateSnapshot(); + graphics.setFont(FontManager.getRunescapeSmallFont()); + + panelComponent.getChildren().add(LineComponent.builder() + .left("Bank Organizer") + .right(state.phase) + .rightColor(colorFor(state.phase, state.message)) + .build()); + + if (state.stackCount > 0) + { + panelComponent.getChildren().add(LineComponent.builder() + .left("Stacks") + .right(state.plannedStackCount + " / " + state.stackCount) + .build()); + panelComponent.getChildren().add(LineComponent.builder() + .left("Category tabs") + .right(Integer.toString(state.categoryTabCount)) + .build()); + panelComponent.getChildren().add(LineComponent.builder() + .left("Planned actions") + .right(Integer.toString(state.actionCount)) + .build()); + panelComponent.getChildren().add(LineComponent.builder() + .left("Current tab") + .right(Integer.toString(state.currentTab)) + .leftColor(MUTED) + .rightColor(MUTED) + .build()); + panelComponent.getChildren().add(LineComponent.builder() + .left("Main stacks") + .right(Integer.toString(state.mainTabCount)) + .leftColor(MUTED) + .rightColor(MUTED) + .build()); + + } + + for (BankOrganizerPlugin.DetailLine line : state.detailLines) + { + panelComponent.getChildren().add(LineComponent.builder() + .left(line.left) + .right(line.right) + .build()); + } + + if (state.message != null && !state.message.isEmpty()) + { + panelComponent.getChildren().add(LineComponent.builder() + .left(state.message) + .leftColor(colorFor(state.phase, state.message)) + .build()); + } + + return super.render(graphics); + } + + private static Color colorFor(String phase, String message) + { + String lower = ((phase == null ? "" : phase) + " " + (message == null ? "" : message)).toLowerCase(); + if (lower.contains("failed") || lower.contains("blocked") || lower.contains("stopped")) + { + return STOPPED; + } + if (lower.contains("not implemented") || lower.contains("open your bank") || lower.contains("already")) + { + return WARNING; + } + return MUTED; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java new file mode 100644 index 0000000000..ff9f9f8bfa --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import net.runelite.client.plugins.microbot.PluginConstants; + +import com.google.inject.Provides; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.function.IntFunction; +import javax.inject.Inject; +import net.runelite.api.ItemComposition; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.game.ItemManager; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.ui.overlay.OverlayManager; + +@PluginDescriptor( + name = PluginConstants.BGA + "Bank Organizer", + description = "Organizes real bank tabs from practical item categories.", + tags = {"bank", "organizer", "tabs", "sort"}, + authors = {"bgatfa"}, + version = BankOrganizerPlugin.version, + minClientVersion = "2.0.61", + iconUrl = "https://bgatfa.github.io/Microbot-Hub/BankOrganizerPlugin/assets/icon.png", + cardUrl = "https://bgatfa.github.io/Microbot-Hub/BankOrganizerPlugin/assets/card.png", + enabledByDefault = PluginConstants.DEFAULT_ENABLED, + isExternal = PluginConstants.IS_EXTERNAL +) +public class BankOrganizerPlugin extends Plugin +{ + public static final String version = "1.0.0"; + + @Inject + private BankOrganizerConfig config; + + @Inject + private OverlayManager overlayManager; + + @Inject + private BankOrganizerOverlay overlay; + + @Inject + private BankSnapshotReader snapshotReader; + + @Inject + private BankActuator actuator; + + @Inject + private ItemManager itemManager; + + private final BankTagLayoutParser layoutParser = new BankTagLayoutParser(); + private final BankTagLayoutPlanner layoutPlanner = new BankTagLayoutPlanner(); + + private ExecutorService executor; + private Future task; + private volatile boolean stopRequested; + private volatile OverlayState overlayState = OverlayState.idle("Ready."); + + @Provides + BankOrganizerConfig provideConfig(ConfigManager configManager) + { + return configManager.getConfig(BankOrganizerConfig.class); + } + + @Override + protected void startUp() + { + stopRequested = false; + executor = Executors.newSingleThreadExecutor(); + overlayManager.add(overlay); + overlayState = OverlayState.running("Starting", "Starting Bank Organizer."); + startOrganizer(); + } + + @Override + protected void shutDown() + { + stopRequested = true; + if (executor != null) + { + executor.shutdownNow(); + executor = null; + } + task = null; + overlayManager.remove(overlay); + overlayState = OverlayState.idle("Stopped."); + } + + OverlayState getOverlayStateSnapshot() + { + return overlayState; + } + + private void startOrganizer() + { + if (task != null && !task.isDone()) + { + overlayState = overlayState.withMessage("Already running."); + return; + } + + ExecutorService currentExecutor = executor; + if (currentExecutor == null) + { + return; + } + + stopRequested = false; + overlayState = OverlayState.running("Snapshot", "Reading bank snapshot."); + task = currentExecutor.submit(this::runOrganizer); + } + + private void runOrganizer() + { + try + { + if (stopRequested) + { + return; + } + + overlayState = OverlayState.running("Layout", "Parsing configured bank tag layouts."); + List tabs = layoutParser.parse(config); + if (tabs.isEmpty()) + { + overlayState = OverlayState.idle("No active layout tabs. Enable at least one Layout tab active toggle.") + .withPhase("Blocked", "No active layout tabs."); + return; + } + + List conflicts = layoutPlanner.conflicts(tabs); + if (!conflicts.isEmpty()) + { + overlayState = OverlayState.fromConflicts(conflicts); + return; + } + if (stopRequested) + { + return; + } + + overlayState = OverlayState.running("Bank", "Opening bank."); + if (!actuator.ensureBankOpen()) + { + throw new IllegalStateException("Could not open bank."); + } + if (stopRequested) + { + return; + } + + overlayState = OverlayState.running("Mode", "Checking bank rearrange mode."); + BankActuator.ActuatorResult insertMode = actuator.ensureBankInsertMode(); + if (!insertMode.success()) + { + throw new IllegalStateException(insertMode.message()); + } + if (stopRequested) + { + return; + } + + overlayState = OverlayState.running("Snapshot", "Reading bank snapshot."); + BankSnapshot snapshot = snapshotReader.read(); + if (stopRequested) + { + return; + } + + runBankTagLayoutPlanner(snapshot, tabs); + } + catch (Throwable t) + { + overlayState = OverlayState.idle("Failed: " + t.getMessage()).withPhase("Blocked", "Failed: " + t.getMessage()); + } + } + + private void runBankTagLayoutPlanner(BankSnapshot snapshot, List tabs) + { + IntFunction itemNameLookup = config.forceInsertVariants() + ? itemNameLookup(tabs) + : this::itemName; + BankTagLayoutPlan plan = layoutPlanner.plan(snapshot, tabs, config.forceInsertVariants(), itemNameLookup); + if (stopRequested) + { + return; + } + + overlayState = OverlayState.fromSnapshot("Layout", "Live layout delta organize requested.", snapshot, plan.actions().size()); + runLiveLayoutOrganizer(plan); + } + + private void runLiveLayoutOrganizer(BankTagLayoutPlan plan) + { + if (stopRequested) + { + return; + } + + overlayState = OverlayState.running("Organize", "Moving " + plan.actions().size() + + " listed stacks into " + plan.tabs().size() + " configured layout tabs."); + BankActuator.FullOrganizeResult result = actuator.runBankTagLayoutDelta(plan, config.forceInsertVariants()); + String phase = result.success() ? "Organize OK" : "Blocked"; + if (result.finalSnapshot() != null) + { + overlayState = OverlayState.fromSnapshot(phase, result.message(), result.finalSnapshot(), result.movedStacks()); + } + else + { + overlayState = OverlayState.idle(result.message()).withPhase(phase, result.message()); + } + + } + + private IntFunction itemNameLookup(List tabs) + { + Map names = layoutItemNames(tabs); + return itemId -> names.getOrDefault(itemId, ""); + } + + private Map layoutItemNames(List tabs) + { + Set itemIds = new HashSet<>(); + for (BankTagLayoutTab tab : tabs) + { + itemIds.addAll(tab.orderedItemIds()); + } + + return Microbot.getClientThread().runOnClientThreadOptional(() -> { + Map names = new HashMap<>(); + for (int itemId : itemIds) + { + names.put(itemId, itemNameOnClientThread(itemId)); + } + return names; + }).orElse(Collections.emptyMap()); + } + + private String itemName(int itemId) + { + return Microbot.getClientThread().runOnClientThreadOptional(() -> { + return itemNameOnClientThread(itemId); + }).orElse(""); + } + + private String itemNameOnClientThread(int itemId) + { + try + { + ItemComposition composition = itemManager.getItemComposition(itemId); + String name = composition.getName(); + return name == null ? "" : name; + } + catch (Throwable ignored) + { + return ""; + } + } + + static final class OverlayState + { + final String phase; + final String message; + final int stackCount; + final int plannedStackCount; + final int categoryTabCount; + final int actionCount; + final int currentTab; + final int mainTabCount; + final List detailLines; + + private OverlayState( + String phase, + String message, + int stackCount, + int plannedStackCount, + int categoryTabCount, + int actionCount, + int currentTab, + int mainTabCount, + List detailLines) + { + this.phase = phase; + this.message = message; + this.stackCount = stackCount; + this.plannedStackCount = plannedStackCount; + this.categoryTabCount = categoryTabCount; + this.actionCount = actionCount; + this.currentTab = currentTab; + this.mainTabCount = mainTabCount; + this.detailLines = Collections.unmodifiableList(new ArrayList<>(detailLines)); + } + + static OverlayState idle(String message) + { + return new OverlayState("Idle", message, 0, 0, 0, 0, 0, 0, Collections.emptyList()); + } + + static OverlayState running(String phase, String message) + { + return new OverlayState(phase, message, 0, 0, 0, 0, 0, 0, Collections.emptyList()); + } + + static OverlayState fromSnapshot(String phase, String message, BankSnapshot snapshot, int actionCount) + { + return new OverlayState( + phase, + message, + snapshot.stackCount(), + snapshot.stackCount(), + 0, + actionCount, + snapshot.currentTab(), + snapshot.mainTabCount(), + Collections.emptyList()); + } + + static OverlayState fromConflicts(List conflicts) + { + List lines = new ArrayList<>(); + int shown = 0; + for (BankTagLayoutConflict conflict : conflicts) + { + if (shown >= 8) + { + break; + } + lines.add(new DetailLine("Item ID " + conflict.itemId(), "tabs " + conflict.tabIndexesDisplay())); + shown++; + } + if (conflicts.size() > shown) + { + lines.add(new DetailLine("More conflicts", Integer.toString(conflicts.size() - shown))); + } + return new OverlayState( + "Blocked", + "Resolve duplicate layout item IDs before enabling organizer.", + 0, + 0, + 0, + 0, + 0, + 0, + lines); + } + + OverlayState withMessage(String nextMessage) + { + return new OverlayState(phase, nextMessage, stackCount, plannedStackCount, categoryTabCount, actionCount, + currentTab, mainTabCount, detailLines); + } + + OverlayState withPhase(String nextPhase, String nextMessage) + { + return new OverlayState(nextPhase, nextMessage, stackCount, plannedStackCount, categoryTabCount, actionCount, + currentTab, mainTabCount, detailLines); + } + } + + static final class DetailLine + { + final String left; + final String right; + + DetailLine(String left, String right) + { + this.left = left; + this.right = right; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshot.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshot.java new file mode 100644 index 0000000000..22119c9d46 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshot.java @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +final class BankSnapshot +{ + private final List items; + private final int[] tabCounts; + private final int currentTab; + + BankSnapshot(List items, int[] tabCounts, int currentTab) + { + this.items = Collections.unmodifiableList(new ArrayList<>(items)); + this.tabCounts = tabCounts.clone(); + this.currentTab = currentTab; + } + + List items() + { + return items; + } + + int[] tabCounts() + { + return tabCounts.clone(); + } + + int currentTab() + { + return currentTab; + } + + int stackCount() + { + return items.size(); + } + + int tabbedStackCount() + { + int total = 0; + for (int count : tabCounts) + { + total += count; + } + return total; + } + + int mainTabCount() + { + return Math.max(0, stackCount() - tabbedStackCount()); + } + + static final class BankStack + { + private final int itemId; + private final String name; + private final int quantity; + private final int slot; + private final int allItemsIndex; + private final int tab; + private final boolean stackable; + private final boolean tradeable; + private final boolean geTradeable; + private final boolean equipable; + + BankStack( + int itemId, + String name, + int quantity, + int slot, + int allItemsIndex, + int tab, + boolean stackable, + boolean tradeable, + boolean geTradeable, + boolean equipable) + { + this.itemId = itemId; + this.name = name; + this.quantity = quantity; + this.slot = slot; + this.allItemsIndex = allItemsIndex; + this.tab = tab; + this.stackable = stackable; + this.tradeable = tradeable; + this.geTradeable = geTradeable; + this.equipable = equipable; + } + + int itemId() + { + return itemId; + } + + String name() + { + return name; + } + + int quantity() + { + return quantity; + } + + int slot() + { + return slot; + } + + int allItemsIndex() + { + return allItemsIndex; + } + + int tab() + { + return tab; + } + + boolean stackable() + { + return stackable; + } + + boolean tradeable() + { + return tradeable; + } + + boolean geTradeable() + { + return geTradeable; + } + + boolean equipable() + { + return equipable; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshotReader.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshotReader.java new file mode 100644 index 0000000000..22de962226 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankSnapshotReader.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import javax.inject.Inject; +import net.runelite.api.Client; +import net.runelite.api.ItemComposition; +import net.runelite.api.Varbits; +import net.runelite.client.game.ItemManager; +import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.util.bank.Rs2Bank; +import net.runelite.client.plugins.microbot.util.inventory.Rs2ItemModel; + +final class BankSnapshotReader +{ + private static final int[] TAB_COUNT_VARBITS = { + Varbits.BANK_TAB_ONE_COUNT, + Varbits.BANK_TAB_TWO_COUNT, + Varbits.BANK_TAB_THREE_COUNT, + Varbits.BANK_TAB_FOUR_COUNT, + Varbits.BANK_TAB_FIVE_COUNT, + Varbits.BANK_TAB_SIX_COUNT, + Varbits.BANK_TAB_SEVEN_COUNT, + Varbits.BANK_TAB_EIGHT_COUNT, + Varbits.BANK_TAB_NINE_COUNT + }; + + private final Client client; + private final ItemManager itemManager; + + @Inject + BankSnapshotReader(Client client, ItemManager itemManager) + { + this.client = client; + this.itemManager = itemManager; + } + + BankSnapshot read() + { + return Microbot.getClientThread().runOnClientThreadOptional(this::readOnClientThread) + .orElseThrow(() -> new IllegalStateException("Could not read bank snapshot on the client thread.")); + } + + private BankSnapshot readOnClientThread() + { + if (!Rs2Bank.isOpen()) + { + throw new IllegalStateException("Open your bank before running Bank Organizer."); + } + + List bankItems = new ArrayList<>(Rs2Bank.bankItems()); + bankItems.sort(Comparator.comparingInt(Rs2ItemModel::getSlot)); + + int[] tabCounts = readTabCounts(); + List stacks = new ArrayList<>(); + for (int i = 0; i < bankItems.size(); i++) + { + Rs2ItemModel item = bankItems.get(i); + int itemId = item.getId(); + ItemComposition composition = itemManager.getItemComposition(itemId); + String name = composition.getName(); + if (name == null || name.isEmpty() || "null".equalsIgnoreCase(name)) + { + name = item.getName(); + } + + stacks.add(new BankSnapshot.BankStack( + itemId, + name, + item.getQuantity(), + item.getSlot(), + i, + tabForIndex(i, tabCounts), + composition.isStackable(), + composition.isTradeable(), + composition.isGeTradeable(), + isEquipable(composition))); + } + + return new BankSnapshot(stacks, tabCounts, client.getVarbitValue(Varbits.CURRENT_BANK_TAB)); + } + + private int[] readTabCounts() + { + int[] counts = new int[TAB_COUNT_VARBITS.length]; + for (int i = 0; i < TAB_COUNT_VARBITS.length; i++) + { + counts[i] = client.getVarbitValue(TAB_COUNT_VARBITS[i]); + } + return counts; + } + + private static int mainTabCount(int stackCount, int[] tabCounts) + { + int tabbed = 0; + for (int count : tabCounts) + { + tabbed += count; + } + return Math.max(0, stackCount - tabbed); + } + + private static int tabForIndex(int index, int[] tabCounts) + { + int cursor = 0; + for (int i = 0; i < tabCounts.length; i++) + { + cursor += tabCounts[i]; + if (index < cursor) + { + return i + 1; + } + } + return 0; + } + + private static boolean isEquipable(ItemComposition composition) + { + String[] actions = composition.getInventoryActions(); + if (actions == null) + { + return false; + } + for (String action : actions) + { + if (action == null) + { + continue; + } + String lower = action.toLowerCase(); + if (lower.contains("wear") || lower.contains("wield") || lower.contains("equip")) + { + return true; + } + } + return false; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutConflict.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutConflict.java new file mode 100644 index 0000000000..1873128948 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutConflict.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +final class BankTagLayoutConflict +{ + private final int itemId; + private final List tabIndexes; + + BankTagLayoutConflict(int itemId, List tabIndexes) + { + this.itemId = itemId; + this.tabIndexes = Collections.unmodifiableList(new ArrayList<>(tabIndexes)); + } + + int itemId() + { + return itemId; + } + + List tabIndexes() + { + return tabIndexes; + } + + String tabIndexesDisplay() + { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < tabIndexes.size(); i++) + { + if (i > 0) + { + builder.append(", "); + } + builder.append(tabIndexes.get(i)); + } + return builder.toString(); + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutMoveAction.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutMoveAction.java new file mode 100644 index 0000000000..88207ae90e --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutMoveAction.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +final class BankTagLayoutMoveAction +{ + private final int itemId; + private final String name; + private final int quantity; + private final String layoutName; + private final int sourceTab; + private final int targetTab; + private final int targetSlot; + + BankTagLayoutMoveAction(int itemId, String name, int quantity, String layoutName, int sourceTab, int targetTab, int targetSlot) + { + this.itemId = itemId; + this.name = name; + this.quantity = quantity; + this.layoutName = layoutName; + this.sourceTab = sourceTab; + this.targetTab = targetTab; + this.targetSlot = targetSlot; + } + + int itemId() + { + return itemId; + } + + String name() + { + return name; + } + + int quantity() + { + return quantity; + } + + String layoutName() + { + return layoutName; + } + + int sourceTab() + { + return sourceTab; + } + + int targetTab() + { + return targetTab; + } + + int targetSlot() + { + return targetSlot; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutParser.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutParser.java new file mode 100644 index 0000000000..d53c98ba1d --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutParser.java @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.util.ArrayList; +import java.util.List; +import java.util.TreeMap; + +final class BankTagLayoutParser +{ + List parse(BankOrganizerConfig config) + { + List tabs = new ArrayList<>(); + addIfActive(tabs, 1, config.layoutTab1Active(), config.layoutTab1()); + addIfActive(tabs, 2, config.layoutTab2Active(), config.layoutTab2()); + addIfActive(tabs, 3, config.layoutTab3Active(), config.layoutTab3()); + addIfActive(tabs, 4, config.layoutTab4Active(), config.layoutTab4()); + addIfActive(tabs, 5, config.layoutTab5Active(), config.layoutTab5()); + addIfActive(tabs, 6, config.layoutTab6Active(), config.layoutTab6()); + addIfActive(tabs, 7, config.layoutTab7Active(), config.layoutTab7()); + addIfActive(tabs, 8, config.layoutTab8Active(), config.layoutTab8()); + addIfActive(tabs, 9, config.layoutTab9Active(), config.layoutTab9()); + return tabs; + } + + private static void addIfActive(List tabs, int tabIndex, boolean active, String csv) + { + if (!active) + { + return; + } + + BankTagLayoutTab tab = parseOne(tabIndex, csv); + if (tab != null) + { + tabs.add(tab); + } + } + + static BankTagLayoutTab parseOne(int tabIndex, String csv) + { + if (csv == null || csv.trim().isEmpty()) + { + return null; + } + + List tokens = parseCsv(csv); + if (tokens.size() < 5) + { + throw new IllegalArgumentException("Layout tab " + tabIndex + " is too short to be a bank tags CSV."); + } + + String name = tokens.size() > 2 ? tokens.get(2) : "Layout " + tabIndex; + int iconItemId = parseIntOrDefault(tokens.size() > 3 ? tokens.get(3) : "", -1); + int layoutIndex = indexOf(tokens, "layout"); + List itemIds = layoutIndex >= 0 + ? parseLayoutItemIds(tabIndex, tokens, layoutIndex) + : parsePlainBankTagItemIds(tabIndex, tokens); + + return new BankTagLayoutTab(tabIndex, name, iconItemId, itemIds); + } + + private static List parseLayoutItemIds(int tabIndex, List tokens, int layoutIndex) + { + TreeMap bySlot = new TreeMap<>(); + for (int i = layoutIndex + 1; i + 1 < tokens.size(); i += 2) + { + Integer slot = parseInt(tokens.get(i)); + Integer itemId = parseInt(tokens.get(i + 1)); + if (slot == null || itemId == null || itemId <= 0) + { + continue; + } + bySlot.put(slot, itemId); + } + + List itemIds = new ArrayList<>(bySlot.values()); + if (itemIds.isEmpty()) + { + throw new IllegalArgumentException("Layout tab " + tabIndex + " has no item IDs in its layout section."); + } + return itemIds; + } + + private static List parsePlainBankTagItemIds(int tabIndex, List tokens) + { + List itemIds = new ArrayList<>(); + for (int i = 4; i < tokens.size(); i++) + { + Integer itemId = parseInt(tokens.get(i)); + if (itemId != null && itemId > 0) + { + itemIds.add(itemId); + } + } + + if (itemIds.isEmpty()) + { + throw new IllegalArgumentException("Layout tab " + tabIndex + " has no item IDs."); + } + return itemIds; + } + + private static int indexOf(List tokens, String value) + { + for (int i = 0; i < tokens.size(); i++) + { + if (value.equalsIgnoreCase(tokens.get(i).trim())) + { + return i; + } + } + return -1; + } + + private static Integer parseInt(String value) + { + try + { + return Integer.parseInt(value.trim()); + } + catch (NumberFormatException ex) + { + return null; + } + } + + private static int parseIntOrDefault(String value, int fallback) + { + Integer parsed = parseInt(value); + return parsed == null ? fallback : parsed; + } + + private static List parseCsv(String csv) + { + List tokens = new ArrayList<>(); + StringBuilder current = new StringBuilder(); + boolean quoted = false; + for (int i = 0; i < csv.length(); i++) + { + char ch = csv.charAt(i); + if (ch == '"') + { + if (quoted && i + 1 < csv.length() && csv.charAt(i + 1) == '"') + { + current.append('"'); + i++; + } + else + { + quoted = !quoted; + } + } + else if (ch == ',' && !quoted) + { + tokens.add(current.toString().trim()); + current.setLength(0); + } + else + { + current.append(ch); + } + } + tokens.add(current.toString().trim()); + return tokens; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlan.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlan.java new file mode 100644 index 0000000000..5df31e35b1 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlan.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +final class BankTagLayoutPlan +{ + private final List tabs; + private final List actions; + private final int matchedStacks; + private final int unlistedStacks; + private final int unlistedActiveTabbedStacks; + + BankTagLayoutPlan( + List tabs, + List actions, + int matchedStacks, + int unlistedStacks, + int unlistedActiveTabbedStacks) + { + this.tabs = Collections.unmodifiableList(new ArrayList<>(tabs)); + this.actions = Collections.unmodifiableList(new ArrayList<>(actions)); + this.matchedStacks = matchedStacks; + this.unlistedStacks = unlistedStacks; + this.unlistedActiveTabbedStacks = unlistedActiveTabbedStacks; + } + + List tabs() + { + return tabs; + } + + List actions() + { + return actions; + } + + int matchedStacks() + { + return matchedStacks; + } + + int unlistedStacks() + { + return unlistedStacks; + } + + int unlistedActiveTabbedStacks() + { + return unlistedActiveTabbedStacks; + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlanner.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlanner.java new file mode 100644 index 0000000000..a2d9de481d --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutPlanner.java @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.function.IntFunction; + +final class BankTagLayoutPlanner +{ + List conflicts(List tabs) + { + Map> tabIndexesByItemId = new TreeMap<>(); + if (tabs == null) + { + return Collections.emptyList(); + } + + for (BankTagLayoutTab tab : tabs) + { + for (int itemId : tab.uniqueItemIds()) + { + tabIndexesByItemId.computeIfAbsent(itemId, ignored -> new ArrayList<>()).add(tab.tabIndex()); + } + } + + List conflicts = new ArrayList<>(); + for (Map.Entry> entry : tabIndexesByItemId.entrySet()) + { + if (entry.getValue().size() > 1) + { + conflicts.add(new BankTagLayoutConflict(entry.getKey(), entry.getValue())); + } + } + return conflicts; + } + + BankTagLayoutPlan plan( + BankSnapshot snapshot, + List tabs, + boolean forceInsertVariants, + IntFunction itemNameLookup) + { + if (tabs == null || tabs.isEmpty()) + { + throw new IllegalArgumentException("No bank tag layouts are configured."); + } + + Map targetByItemId = new HashMap<>(); + Set activeTabIndexes = new HashSet<>(); + for (BankTagLayoutTab tab : tabs) + { + activeTabIndexes.add(tab.tabIndex()); + List ids = tab.orderedItemIds(); + for (int slot = 0; slot < ids.size(); slot++) + { + targetByItemId.putIfAbsent(ids.get(slot), new Target(tab, slot)); + } + } + if (forceInsertVariants) + { + addForcedVariantTargets(snapshot, tabs, targetByItemId, itemNameLookup); + } + + List actions = new ArrayList<>(); + int matched = 0; + int unlisted = 0; + int unlistedActiveTabbed = 0; + for (BankSnapshot.BankStack stack : snapshot.items()) + { + Target target = targetByItemId.get(stack.itemId()); + if (target == null) + { + unlisted++; + if (activeTabIndexes.contains(stack.tab())) + { + unlistedActiveTabbed++; + actions.add(new BankTagLayoutMoveAction( + stack.itemId(), + stack.name(), + stack.quantity(), + "Main", + stack.tab(), + 0, + -1)); + } + continue; + } + matched++; + if (stack.tab() == target.tab.tabIndex()) + { + continue; + } + actions.add(new BankTagLayoutMoveAction( + stack.itemId(), + stack.name(), + stack.quantity(), + target.tab.name(), + stack.tab(), + target.tab.tabIndex(), + target.slot)); + } + + return new BankTagLayoutPlan(tabs, actions, matched, unlisted, unlistedActiveTabbed); + } + + private static void addForcedVariantTargets( + BankSnapshot snapshot, + List tabs, + Map targetByItemId, + IntFunction itemNameLookup) + { + Map targetByVariantBase = new HashMap<>(); + for (BankTagLayoutTab tab : tabs) + { + for (int itemId : tab.orderedItemIds()) + { + Target target = targetByItemId.get(itemId); + if (target == null) + { + continue; + } + + String name = itemNameLookup == null ? "" : itemNameLookup.apply(itemId); + Variant variant = Variant.fromName(name); + if (variant == null) + { + continue; + } + + Target existing = targetByVariantBase.get(variant.baseName()); + if (existing == null || target.before(existing)) + { + targetByVariantBase.put(variant.baseName(), target); + } + } + } + + for (BankSnapshot.BankStack stack : snapshot.items()) + { + Variant variant = Variant.fromName(stack.name()); + if (variant == null) + { + continue; + } + + Target target = targetByVariantBase.get(variant.baseName()); + if (target != null) + { + targetByItemId.put(stack.itemId(), target); + } + } + } + + private static final class Target + { + private final BankTagLayoutTab tab; + private final int slot; + + private Target(BankTagLayoutTab tab, int slot) + { + this.tab = tab; + this.slot = slot; + } + + private boolean before(Target other) + { + if (tab.tabIndex() != other.tab.tabIndex()) + { + return tab.tabIndex() < other.tab.tabIndex(); + } + return slot < other.slot; + } + } + + private static final class Variant + { + private final String baseName; + + private Variant(String baseName) + { + this.baseName = baseName; + } + + static Variant fromName(String name) + { + if (name == null) + { + return null; + } + + String trimmed = name.trim(); + if (!trimmed.endsWith(")")) + { + return null; + } + + int open = trimmed.lastIndexOf('('); + if (open <= 0 || open + 1 >= trimmed.length() - 1) + { + return null; + } + + String chargeText = trimmed.substring(open + 1, trimmed.length() - 1); + for (int i = 0; i < chargeText.length(); i++) + { + if (!Character.isDigit(chargeText.charAt(i))) + { + return null; + } + } + + try + { + if (Integer.parseInt(chargeText) <= 0) + { + return null; + } + } + catch (NumberFormatException ex) + { + return null; + } + + String baseName = trimmed.substring(0, open).trim().toLowerCase(); + return baseName.isEmpty() ? null : new Variant(baseName); + } + + String baseName() + { + return baseName; + } + } +} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutTab.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutTab.java new file mode 100644 index 0000000000..173abde593 --- /dev/null +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankTagLayoutTab.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2026, bgatfa + * All rights reserved. Redistribution and use in source and binary forms, with + * or without modification, are permitted provided the copyright notice is kept. + */ +package net.runelite.client.plugins.microbot.bankorganizer; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +final class BankTagLayoutTab +{ + private final int tabIndex; + private final String name; + private final int iconItemId; + private final List orderedItemIds; + private final Set itemIds; + + BankTagLayoutTab(int tabIndex, String name, int iconItemId, List orderedItemIds) + { + this.tabIndex = tabIndex; + this.name = name == null || name.trim().isEmpty() ? "Layout " + tabIndex : name.trim(); + this.iconItemId = iconItemId; + this.orderedItemIds = Collections.unmodifiableList(new ArrayList<>(orderedItemIds)); + this.itemIds = Collections.unmodifiableSet(new HashSet<>(orderedItemIds)); + } + + int tabIndex() + { + return tabIndex; + } + + String name() + { + return name; + } + + int iconItemId() + { + return iconItemId; + } + + List orderedItemIds() + { + return orderedItemIds; + } + + Set uniqueItemIds() + { + return itemIds; + } + + boolean containsItemId(int itemId) + { + return itemIds.contains(itemId); + } +} diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md new file mode 100644 index 0000000000..5a680b1edd --- /dev/null +++ b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md @@ -0,0 +1,7 @@ +# Bank Organizer + +Organizes bank tabs from configured item layouts. + +## Setup + +Enable the plugin from Microbot Hub, configure the available options, and start it only after confirming the bank state is ready. diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/assets/card.png b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/assets/card.png new file mode 100644 index 0000000000000000000000000000000000000000..9082d1f14ec4aee6c301efcc4ef1a9f83d97562d GIT binary patch literal 198576 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

mb? zH(WYxOD&F{%0fz}BO_#im}y9anZcH#%+SnAcrM|hhaCTa>p%2@D&IZ#z3v#zNsWW0 zn3dFbJl7WIj5;Wg@vIQNWTd&!#@{c5>Jx}kI=*CIx>);VYUcI4P!)RqN~1TF!Xy`l zE|yxps*Rxz#u=g{mm*3Jdk$Jne^_Tl zr$Y8@O5QhfXw4f7JQyr*gutOW>!nD0r$J!U6Z3uQ7Inx0Bn^dzuY!u2g!HCM70 z1>KO0OmV7bhnmM~9V3$!90pZfcr{gA?gVr;RE;0SAv2aH6dHClpY%HPF&EL}(ALxJ z3`w)jhl`-kon;}Ogl&wzd+31=yoZCJTo;w%;{6j7*^eXa^tu>W3CbGT5(@0}QqV3o z-ZB~%f+aF007X=y+Z~|jsfpjPLX{1f%QYRKPsf<_=SeF_7}X$2(H``%m-LYNOp5~T zy}mdV>KXtm1nicL8k_ZSVeBT@?&TVv8A>XBs?%{yeL62)x(r#_gLFxZ(c`X7=P5HRGYLWmxZ64yRnwoOOx86EXtPsqp;K zxKT!U=}G~)q0UWn^y3sw%Z0^Gz0bhfH0xeh-RC$ybifGvQR7p&Z;c%{<7W&f{+-5O zFG?la8u|{Vso;6s@4WTtIAZ3hWHI7QewL+EnZK1LZ+aZ*fN-WuhCCs(DnnD_@E2B> z)X5LNu4!){HAgCI6UTz}8;tOqb&%u4_lv6jX&p2f1H#q1{RDR1N61XuDaT|Ux@5+J zOi~;_LYd2+$AFaVebwh&p6cTpa{V{{mW5t z^7wg8;gV`=Z=8)B?Oq?d{XQZuq1`K9GAAGt|?ZNRfbIQ9X>rx(07owbPLHAt}A z?aREZ*MnhWt$kyt8G{UKp`!ea$u|)5;g$Y0nV(fPMQZED$rZ>84HHM=s zk}~ux1r-{^=sGq$Tj}6r0BZR3&UtM*PoWXcfJ>(v$;{|CXSM(DcXA- zcy9Y_%LLJeneFd5*;Wo=eYxP`Q|kYoxOu`dun)+z^LZ`rk+| zjj$EM4?Q>xj_^eonG}mxGDP~{zGDpoQOe;VG}5qRRUE{MQ@9BF9R#oDCU zt_?dVk=X@$y8~DQ#e^V*tCfPK^8x}*%|cc5={RGn7Q93vERzk_h>`daj^`i`N<>d0ASs36rB&9H({UQ6jc1h!?wI;?Qr$ah zZ90pw<@uOt>Mz_2rxW^L5NbAVYqfi5+NihhA~#k)9BQMpDem0 z|5&WCRm2w5pA>Ogz;--@wHg|Yx@Nr@*TEsg!?F;Dq39mtw=@<73TXNJv)&7Izw?r6 z22%EfL4rZV?2v;XP-9?_ZU+V}lq+WqMu-ASCf8EFNXu^=2{bGI$dm^8c6!tc^qyNVTI z@FEk{cBhMOF#wiIgbi1+7F!~#+ZQ8d)oYHy0WOm+Rj*}M;auI>>%nq-+_>=^TCFD5R&2CdKBCwX zCylV@I3_^`ap1BlqS08wjqA&Z5|!oH-Q5&u2Ai?bV4hi*P71$R5Xw^;Z(Q?w{S?jC z3hrII4&SqJ{kn_1a6u9!+9w=4>SIbBEQpm4aP9haG?!EmtJB^QJ?8B!HS41>dB)c! zv;S`IcHspzJa_jwG-@?mTX#^aD;*TbWTtd5O*vk4`2Ba z3|5Y(QwyR?#}#wEG|)S}NGO+=R@P)~Yt(G4U-b|tszDyt!GvpIVu=psg#*_Mac#YZ zX48^Ae0OI9yL){Jf;Q@h*O#8=dXEws{q5dh*z}R~+t;rwiv#LA>}3O_+DTydZmB!c7n25z-d~r0}X#M5GtlQk3wa* zsxUZh7l<=eNSNd$Yr!P_dLn(gWKQ};$s&!BqEs#f66AV5R##VLZt)@?ZveY(Wf11M zEr!cp8|e2PL^O_e8_aAeeQcxf|x`P4G?obCkBv}rhFkG&OF@rROW#tl~&MG?imtk!(bp(EBW2v=- zX0svlbEi#*m^y09_^@H!Zo5Fg&%hr!O@T1v@Z?Anm0hQi$G5nbUWO)ZRhg2|KU9Vp zL`MDdT=XmmYFJ%amB34q1D`w?!O`-}Mz0Tax|qjmS>`aK~CL0 z|2ays05)?pnHcItSq|j6t}Hd+d8!EBtTDX8;ZIm_={QKwGj%-6v4wR{s>{TwU6MfW$5-J0GU8$zhO!8)*S@&>?K>F({%-qb#g>I35uwYXuQAXz-=h#)bJvV z!K@?ohYBZ)r@pHuITs8n^ZXyChCfcl1t0u{*@e*v^6~F>d%z0dF4=IHvCs~fq#YBW zyE#DCQ}r1fXRm1s-g3;jkPOFkINH9;2En;0QjEUr{oVMVy}{^x&hsdu9mG{bKf=X!_PS!|FE6=5kDt3Er()>(lSbE8Ju?-ow2T=?^IVMPAP1(< zj|sn+m5T7RBB?avbkN`^a|GmMZaCWLHTXd36|eZ5chm$3*aLzN!`J~8g^w|`j}(Co z>69oZx?T|G-SE?34EHbckqeG&3ZoDi~GF+y+XB#Sxdl6>|Q_iyyzuzg(_vh&d=S-Na? z^L63r25LMC30{my1U@4*t|Q|onI(>2#&M+4$H8_E9l!n8dN6^5xh^c&UN;G2t-=IZ zi0W4w(9vic!`WvXQ#xy^uLPk~Sw?2CRO88YL8>M<7@p%2uT7IM!vohQ(^cB@WFAwb zNL=fnszFfMIA+l}cAU54I;e}#CmF&>Rk#-=?M=H;mP$sT39-WN?&R&X_ zK7M?$<#a|PCrYa1f7E-nsr|5uvBGcWNpfkRs95J{^N~r8j>|BXvM5S)ki${EzN6OU zeFou#EaJUR^*7EC&NH9x#%duKCM9~g%vukC^I=c{4AF+%d;@^NxJ!R3>7&> z)tMJyBx!RsO{_BXM&n1PZOj>)!6=zomo9LAA5@dG|4(YXjMFAj)gh~)`h?Lti8SZT zsL_Dp7_v#3iZGvLtnJim(_9b*2N0F$|B1uFW^7Y*P(k|?teHVSj+dFkNssXPo4HRZiyU8lCO%^aoy$F2na-opT*Q?c5A$s?s7bS?KF?YLrgJ4?%KjVG zaWfU%rccN5u5#?>X>@7Y@23?7b5eCJvY=GPkIsRA#e>7T7YPyQ@TUGAoj8u6WH^qx zFq3*(gb8s*`fQ3RtMr9cQJc#YHj!gE8`Yn4Tbs`DnW)G-$AC&x$i~@dHsNcWFGVOI zjYHAv4V?`ZnMP5BIF7}TQB=Cmph6ub+|&sxVDv9%IJ6Y@BpNNlh`T`2GW7eAE+Wqm zCov*DhBQ{BAX6}GqX5onbm^k^nS-2-X+m8SW27McW-7HXCfhb-`O1~k+e2SF8wuig zfWbiNAjkDWb?~Trod^5QL6Lkyfw*rlE0m@(p434`>#I6Q=d4R|2aYq12TCxuy(oTo@ zf;_^iVZA>Kc%Uv!i%1V|=&&@W`DvX_mrS%|n65UQ*s?NcXHB;&m1{N`3mS$s(%J%f zTuRZriAW7IME)@@=3;pf&Tj7LJ`r448O@>7F&yuTa1pKrJ{t8tZwu^NWU9u&|lNUc23qF&p&z z=ycj*?9qVc_z^p9jDa!zD31<6PTLzVRAzNHEDM3>iqjemdf3?5z{<)B*4EY}I$L$v z=#+^Lim?}?)9GL^=xbw{H8j3<^cGZ3o3)#|HmRt*=wO*)bK@ymt(NE@sfA7RMFw7I z6z}bI)p(|<%-?Reqk{&8z}b9qU00orN|gUX_lq-hHmHMP;37&(bUSTqZ*PkZUb%8b z&tVh5B7C$E9i%bMaib1KQBQtXEdYG&=w1BUBr?n#I-&!Ktk=^{TK$JL_G9)7-+v6Q zkDdf%DvsDiuT3*K98+#y+qF|ujR&PbFO!jF?r%|qixLZ^a$zb^laLrap>bt)qf#s` z26F{kCAiw0opsf*hLI>SwAH;5ja4sz)dIM};zj5Uoi(E%`u&-%XE^C~ z_GFP1>=2Q8eq>d-X=IlR1s{7GFcM|%c@!;Gg>4*nL(j*bf-#+lP#v|dOf#^j200En z#@Mlrka_rze~XX^Dj znvFVwz*{tw-l=qH7NOoOx9ZZc?$P6iXe}+_#TQ@1+S=;S_@zz`1_L~OvLU+_sVDn` zKK9zX0?Y9IK*n5p?NpjB4zKqZ`Z(=7i!AKBRI9OPNrFy$51%9%UViyyG5CT&^(0aI zOezs&Qh7>8=p@D7-mXOGY2cBWiG3492WQFhE~q{od9KO82KP68VjzATYwBRH*Vj78z)OU7Tj?M_x3t7LT$3P<#0^d`W@5{pr>hW}!TpGF^GJ5sc(ODV7j5@F> zj!@z1hJC~AO|=$=$IK=x_$rQ_eAk-&@`@@;#T;Y-s3$ozbRwA9h~fzMZa1*p3gD4D z+^_(Vv%i;MYbTP1cTcx=Wo&C@KDI$v?O zD>}Hmyo_2c)EOTJ2WTMo)Vis)kVZ3gmyvwxVc@&)T??G<_9E)iF|!y5vTf$lc*}D}?jh~@o$3}ttY38tI$39%n$#OhvH_jO4 zWHyto;q5lIwl=Y}yfk!rRny{3GLzIhVS&K4!= ztcsMKHjo_=!8#}-ajbDUX{2^SpJ?QA{FoUc6=o+Mpq=)GnM!#`B>x87z>#8boBM;N zwiPaZ4O0`?S~VML76c7PGvAr%x@GN|H6=3RZR2cZrc|@uM2YK8(g-iyxq(-nUq!v< zYlabKJ~C|YM)>qW2M?cg#qp4Wz%oTYQVl1s5R=@(f=xY^QRCRBwE zhl=hIp2qqO1zjz(DUeUw8ZJ7 zf9E^2XD+WUokmW&HZ6|3L8J{g|Kid(NXM2cyV7~Ws1DmmP0?+qKaehwgjGm^#VSy% zSGrqkr-B9Hq{OwoQ7;I?wq!Qrp$s8WmQcVN1}1j6tY#^U5Kgt@0d0@Y2AlqsLifkw zX)(&@{P5>>IKvFFvD3yNN>Eq@&?wv!$c8JBd4XFoTn&w8l&$XnspDg&=r1pFXQH*niSEg zxVBb9yT^uC1s*)<;o;*h;yA!^t2Ttg7{^yw*iKlKdRf*cW5gL+MHM7r6t56Sr24CR zU-;Vf`?gg`WR%9rykwE|sd_z>gRV)S10L5j$lNs$K1(|Dk~VV00wmn^CQVDjkcP?( z1*exqmuA`LbPS&`>+ll$BV>7mv)X4a&0@uUvweZ$b_QU_Ud&w3cqL6`8C^KFkk+^*(a z!!gs5DuXygDhvCbGpt85gf7bQ7zGVjhY$pzq7}{vr|iLBs=>CXgA1}YRd4K|_vhqn z7%~^7gUXTMI1UM2DsXTaKW5il5A`~Aa3ICwo>M=y4o+K}_^V$7>J7ljEVOq^Br~d- zKt5|FY8EhvAiZoX&Xo|T2Q~(6Wgnh&04;~Cd=_efH9D3#@dE90#}QZ3`m=s|3jLN~ z8AG5}BR(oo{R8d8-ny=ARe=XTiEDENWxHj=4;|@% z?Sx#=*rE!shf&W`^>yH$%0bgzHYH=>C@;dIBJ%Szm|gWeP5p+zhjgQwgT|ngrgj!e zHs0yvNHz-8iV!WKP;>-;X~uD`GHh@-`{xAK6UEr=_pnQ4YXENDmTZpWt0<^I&kX!* zn8_HW$4AH2f1^Vu*$id7m<3RcVWnAO^~Z1}uE2vBp-F-0X$H3+pb^v&2EmY4agpWd z=b&L0uB#vzUDjyyML(n?y)+6_#0Tweiq9W*@&2cZHHb&1BjSql%Pzc`M7E@PmPEJ| zjV=(L%ITO~n~wV2S&DR-&kJct=h!ZqO)@3<(mi%sK!lqt4HZ(BHk&Ph7LaMlwM*1P zPpGdiOO$J-IX#0&LppW`^K-P8Y^=TnEWI2dECxu1!^nt93OA17W-&ZFMV(!HEf0I! zF*@BCEz)p$-t^AIN8QH^#_l3G8^dhj#NQNLH&Fl^2{)IrNequD^Mt}?V{PcXK$`Ie$!b_7aAdf|3E zLY^gP)_erMcVz9sA~+kv>zGq!gJdq;BS_%TXthQGWnG@Wei{=BQ6@kmH3nE&Td#xCpmheCPj{;r(dFo*!O`n{TFg#}Dw6UjQF%6maVW z?z{@TdC$jt-^uaworCSJLxs+aKGqlShH|X;$ndjZ``mHGow;Iv!dp@)u@a6~;<;B# zyz^BTS7Hah_&)H5ABp&dn#q*lp|@oN&8s<{ zzXPmwTzuze3VRf;X87u_1?YZc;r`PM>$iXx?%LS-9?)%-c;#&egMU>DHd9)0A9cO5 zaM2hWh_lfzBa~qQJ5t%je% z4L#VTwDnbuhK$dV=bo62%x;8?F6;43$@o=_APAEgis6NiJ0fMK*sh8QureEN!yOi@ zo+faAUZNs(im+gsa6GtaCTWSEzrTZzKid!o?BRtw z%UEifdXGZtJ>rD)hdBoFGJO9H1nhZo9GSW{jjs{s*+W2#xPteXqSue%hjrY(b_0!O zOLc>-4DhJKE%nbq?s~%W-|e~5ql0S(yFdG-Vw!uVWeBMl!A^T|AKsN5&%IU0-LHmd z-O1tQU3e?x<`<6uX_BGd+C{wFLAe(J-4v;xqC3bi=%t9W908kTRT_>RC=(LI1U2_nZP2cgI=kN?r{m6 zj*2dwScJHxz+R^h%MEbr)^%LDvM$}S$Hq_AK2;>HGQi9dvF^nk1{v8!n=N-p;4(BA z7f7F~f12jJp6FcMv-1M|D3Q+gD{E`Ge*LCoF2?Lm9e6S@bXEVNf-iL5NUV`0sslNl zUS`kEoGxE8Zq(7`D0_rslIit??fkCQ*2|n#3TbH!5Ut3|`pTitErp!jH zePC+Fg5wrgzXQDeb>ME-#%dq<-p4?y8kb6@;KoZOzVtQV>$fa?Vp;g(Keo`ZXk3)2 z>A_GN2aqJC*zYtRr8i8$LQ@)YdqBL`nrYNTMqv0^8#tCQq597F^2+Y1EcEpW1-0GCIb{mK!jZ!Z9klTDyM{M(2HX&8xN(RbZO&ikZN$C{Z*k-R9ULK}y}O}+BU zqY~+EfwIpiwy!!P)5|7IVcrz42k29EW0`a|7$u?c+V1wT+wLK864;!0V}+pO4!|K7 zFvR1UU!}R9SE0zIJ;O;}r4$*i!j%)~w+oXU+REWto{Fe)1J~oX;HWCy6QV#A#j;84 zTZkmks~Xj1S&8>Q*+oJIu%4&oHer5c{QeFya#`Qdc^h7OH# zJh|DL4OWe@FUATtUX>{kDE-N)StjK?#^e+*7>=D#FDDVuO0f2-kLSPM!p&F6_QUS& zG5jlJ1Y)42KskuvJ8gtPA9*7|v6~?*Q`CAT(!@fP#_%E+Uc(<|YY)Bj3#MnC2`+p@ zpDgtmrGs&rW93Q%H*eh#xEZ_Y2+&XWG2ze~!3tF3| z{(a7wBnrob&PI}z2x?7Sy>$eN@hP^|8*CBQ3$i=`ZXJIx5T4g0PjA^ zar+Ae-g?=?b2S@Z=05KOAAib#TZuAIBny6+;j4c$K=1PuH?BBnG;GAXB|iDE#Lqq} zP>$UT z7lALm;!9&^KH|+^SoqP0IeK}H7r*3SbqTP#1#Ug(A&Y^h?^*cs4>QEtPCwT^90#6o zMkozE{N5h1+BufK;NadL*!XC#kVVQ53*39rkx2Q|hs=Da23CYwwXWuP<24U0V(v>| z`+kW}KLIwP0Q;v(8A@zc+8gg1b-7Lha-8oqM$Of?YIq=c_0{KdT=U=q&;$0VOs}_E} zZR62`Knjb_$(aMN%EDn-QQ68(fog)uE@xBrhUFMHi);zzGYug!aZ3f+ZWR z>#pnt-G>9%0}G8B$KTn1|1;7fPrauzlF4lE@NdV+-czVM+*~;>wKaCl=BA_AsKha* z4kAP8Cvck?0>6aK=BEt!^(^=uMq^50{*z-(rZ~>aXg;AXoh~}B)C;Yn7&3vztvn;veI4tfttSgVA$mUwN=!{dLMqt-0Zsx#{VEG+}e zO|IJo>i0@~qF(DKG+5x-Y*b;sl;D-$-#pk6^JZ46&ape3DDgt@O~%7Z5HoY^wx5`^j3klUbnGa zvruc57<^*k`?-bheOzGec8TBmPfM(PPVdgf=0_#&@20r-HQ?@g|8bcDxA2ysB0w)_Q|`h zNES$&O9$e!haGI~4CHxcvXK|VO}HOrux(EqlG1Y20(jUnTfkzt>V__tuWJRR2s~_H zeR&;@-bf`$U+Bnak|A?4A&wvyJtNY6uL~(|GG!(^!RlIomDM#g8;yOiMl;{J#&H~F z&oLPe$B}G#i3a+;9^!cS%@+f_@kN|Mvp_?xPgmy%_)bKM3*si!Sbe zu5nPjX174lN^!T@z<2(;0zdjF$8K68TuJepuiAKdHNfxvzYF});|%L>#P~n_S1w+? zZDS`^!Rcn{;=}iC{P*w0cX~rc+PPnN`y@H{x)s5|jK<{DZLtV$fw-6CBG`!wX?FIuc)ySO? z0cg(fi!4+%4jYTanHkEg3~pUDGPHcAFm)z}83rk$pTLP3W-hZgNwiPF*7ixI2f}!L zhd$2aGp-md#<(25rJ1leewq+wAq_)=u_e8*G^4X~y!PT1tgV_tcfI&)n&7I#ktC`P zgY_4LND(LAAEelAGpZFM&q_F91C3fBP{JSlWJ8>cVSSa(ibx8bjVZ$xYAo(01I#=C z#OEZ_YT(ocN=&zd*RJE<`n|DdS_u7gF8w*^@R3S67rcCeZrH_=*Fwv0;=>0Y zVq^C)9J@fH=AQ_fcb-nhVKNIWNostG9JXJgvFxF??7}lN*CG?R<7&^L3agxPJV+$r z1{R8l5!Xxt6@hm$3g)wxgX$@b1ACZEvI%kBl<2%)ptf3I>9sDFf9;9>usSH=Xn9%+ zELrKF{yi??@8xiA(OS_1SG2S&@3GT6DXv#qwJ{j=dF#_jbm`dVrGv#N z6Ke*75Fr~!5@I~Hfkp)$uGuwJ7FfN+d6P^yYdIKv%;3d2>VXQ@o>U0gUwyvBOSf$J z_Z@8S+VDCyI%SG4f7!*q|96?##aU+IqfbhF{#l7^0PH=qu<4XoUA19t&1N|>2>zr0 zP~h{&C3pBHa>h@;)O4%la+K% zc76P-|1QCL%fa;(pkAs$becd*H-7H7fp`C;#0G0I1dPQ+5_t4+DTCJm;MalHi@=?> zjo!dAh=Z)Wieb=yIJv9OPS>oM#YVp_dS8(UF?&7)0h(!woS6S8lXQ^uZP4q#p(T_K z!&DS;pj2ItGDP(F>C6R%2FcjD^eSs2`6j}yf~xzo8pF@&pH=EaIsPdY?(;H+Xc!Y? z%g*5|OCIjtUcsH4Ewq}d{={(353_1=aSHMxtW^A&((xc1i;iK6y>5(+tpT=n5^Qeo zYMmm)z=y{yT$Kt|-K}gyo=;~(bu&JxleP$wOV{BHgF%MSZ{n5bU&E{SzJNNp7b{ZO zC2}iAZqw-~)W5AyTxV@^vOmQ;A+0c%LYr*v_1PvQ2&v_D1+Us=SSPghC;cJUE zE(ggZ^ko*2CW&z(1^2=A9Jjt2;O1KaoaKsv#3eB+VI>8tPQ~Gn-4Jy@4_W=FC0YQR)n&>Ke`(0uniJE)_I%Djb{qo!K@1&9Hpgb}nlg zA(Wo)OA}9ijtqYNv_Qx@gj2FDo$Rj806R5BIBt7;eH4}}buZVhT|+3H?UlnZRxds( z0Mx`dqh2S<;ZQwc8jYqzM`70iN|F<*ztZgH7EX17>T^;!>3J0BDj(edhCSN2u`4gLz(n8*~v31|YpME>S zH^1UbL$y~z8$aK%@U&av1wF-RK-X4seC_Y&_&cu#@Y#35chPFNc=z*3`l>^sK5{Uo zn@Tiq1OM6o##NQ~mZ}qZ^fRE(6_V|>&q}Pr-|`#>D@#q41U5rW4LhhjtCc z;qP3s=!}$_grEx1F;RSz!7yW3d4Ej!yaol*y&P7;rh{ZBnW3feL2`~5aT<7$U}qCt zS*_!(FRY7$EK$0#o-d}rUe#>mg0Hm|J4>L7A;tN~e5@{qSZ=X@%O0Yrtuh$4A|h~z ze-ssN&m{4lBRHIh-+O>_A>>tJg2y1=fw-LCBKtwtyfW>4h!vXNyy z#S6~|xb~upn`;(c{JJM~#X;Q@iv2GvIrvF`mSb^_9N~alDzNSHb7hXDB@4de;L(E; z+sh@a*MPeX8y~b;gO=m!nu8*;vAdT6%N4XtWZ{?p*2n+#&l7y>f1cvy7hSYJvCvLR z+*`MBvu5FbLL^Xz+gCj7ePp3Oz_aRbaPnE`w{86V{TTnnTRwWZi{z1oM;lBfjl>BG ztlmrUw|=dKKmLCf_{DAk|89!E`Ym4=GLCiH9Fiv5d0gUu_@^0uxltn05&MMnWpRdE zGr*%H9eP~ygJHGt;nSG#lvbk#&vOOW*pCx*q8_4tgv>33{w#G1nP9mC6jk^@X^deN zlcOUd)V1uc%j*qv>X8NE=7g2P+@VbC8qTzOQlS5Niu|dC(5j){sEeU<61w5jreY5g zjtgrd)>f8;=_g8abfZ2xdtH=P0jI7Ew1S4Rcwsu@Ggb#M!jO@cj&MI=rJ}=Dr}13r zM9lk`T%4=*8>7b~(3oT=$KaC`&LBW@nY~L?ME1C2ao!tH)oEuTUQ3E{NALjkJoUIp z<~kV^L*nz(yI5w04f8c3CD0!aVX z2}-!McbpOl>qE%+=axen?2DFz*n>_YtcxO(pR<r=bpcV<<&au zAVcXSh@3|lSer<*R0mlKftMDUjV1RcT&D%AEMSv{nO)imE2?>DEjQ8abg;9tgTPyX z@74BY*%witjw?coo)@Z#sZe|~pgiiWbP#ONI2?+G-Z*U&&?<*(0RxU?u`A$vg}@_^ zD-1HWUMR8d*?8}FfIs}B6q_XFaSNF81a(Uz3xL5B3q7mEt1lGzt*^TH?!yFYuNQbJ^zrXM%dvaf{u2x9 zaA+Nm2Eb?U6)3)0;@7eo{^(B%Ja}B7xS>Bp#bV@X3AhqCD3U_xa7o+MY(N|n(a9OQ zV5;ac(EilMFS86+S1tVVNh#OBug3$`6X5WRRz^HGq$@XptLqjbVzuVH7SN!hr%pb2 z8l=P@4q{K>RoNiJZl1~ly4U+;+S%P)q?08A5EedR; zfsK+;e$$Qo09-ty)LAb_IdI^I9>TyAWAUIU^P$Vwti{YWEX4La1e%YVa4RnO zj7Vke6j?u&j_q!fJuoKfF-*on*K(*aRE`BHfeSi(G*kjZkE_4W4#q-PH+>9+I*|qU z-2z@|qt*=I$+aDCC@#uCR4SwR!Rai}2vZAv<#shCuD}e)s$^-0Lm0eDfd{cErHM$T ziK4#U-XS9!H}FD=!A+ACK>})u=Bh%C7ZWaQfPU(RF2$p|cLaNtTv=Vmt?M^Y(@>0Q zQibsi!wSQmJM7=$qE&06-&n$v?I*$_Mrc)-FOIQ1FQUA}yY)D&Qbx19@4IBX<(iZlt*RYZ*LeTfwPNz`-`$vWFr`QO4}KRKOV&uwomfy^TEYBPT@7 z&rrl{j>S5f489Y?ic`e9@vyg!=&N-;`g9)thv~V|>BVTZmT=|D6~#(*NE0dpho+2W z)O9Tf_mrYk|Moq9*bI<$o!qZTn|s_LWIT0k)j|7H;Nu_Vc=wY6G0?RU{IOA{ z_>FJbu)+}WmW7}Hd5NDrfn+ki^SuH7(Knk|`-+Fmaj^3q@WXctJc&v)B3nuo@}R(- zuVna7-tiFzgo*+me7D5MAKB>k3S7Mz<6D2Lj_3Nm6p#MmJEfq7+Bq=j0v(sZ7E`-r zVQ;HMpS4@(?3cQyRYZ9Rafx0}H8Lq;3wxhC_{Bz!m-;q7dR$6TxX(TseRbn$WFxun z;s+l`c>UWR?xl*grRdq%=&Ox8OD*&}if(jNXlltZ`Z?RkYg)S0#?B)bzx@XTeEXd` z{`PAwNEpFB8z25C$4}qQk)=SVT_V;Bz-V^A!%AvPXgFCbvfBk}Uk3i(|IEcN|D?cA z_n56=%X(4*0&!HL*DVFZN=57LmWYnQVJwuPGNG7ewGg;X43YqyJ|}1wQ8yE272A_; z8{_>S_6_=|D4H-W7QEC7;EHf?T4?> zh~0lY)d5}%Mb;y*f#WGqRp%kvHx);YxKT#w_Bt`HtcI$nR#P%ljI$wiMRYhc#~W*|1Q~WdPBG{YP-EbNou91* zbvBL(w-+5`v^`7VHh{*uBlk>agIS(^QrQ>AGP^?uMAvR{F9>Woj^8BSocnwVKXKuP zbB$NdMfO+v9M51TOI+z>s4bURemTR++ijG&f`%E}XXnT0HIkug{r*+`>8`hFqr zqD=ZIk`i`Oz)1>$PnU54FU$~R8G;B%3pPEaBcu1JvvxKnex8Mx#=L}mvQO4aFW*wN z8;1m3#>BvOhjkpfhLFLpLam3~KUmAr?RJFy%J*zEO;-LG*UH`&Pu_Fz-S_jgU{c$@cZo??G4(V4*rb6Rw7|C;K7F_9`6BZV&hN01MJ;a(RJFppTC#kai>J? zxcKS!fRF7QTRraKHg=x^|Ms6{*nK*(i7&j<_^c1m4CW7Zfx**UCTD-k!*~A20`JBd zK6t{Lg7kOz#ZN43S_Qf>kbUOhcmH*c*RI>rnWMKs3flr(TflZ^p?G592j4AG-p?gU zO36|ipS%m~I0d$MtfBJ|bshZh4>I`O94qYF&Ff0p?HGtN8=DVG{PFMP*lZWl2@KW1{R z$uS?8>aRhtI-RBr8B?=qCWf5Xbm1*Ia2mEmmSoeBD%%OXclF_L&n3NgUZPGOaOp@{ zh*{STRUv+HP`1LOSK~Y44?PR@>6WTI<9-R(0c(imc zl6*>0xRFwiv5wZ~Wc6a5M#8jCL+LuQT0*0`|~2xr2 zH`~}82G6q=%-LX6Ib!rOE^&3`2424Vih@$P&X5LoQikeciZ-eS;IM#FJ%gHG6Ixxu zI68wp^sEB4pfOVuyUQR-zle{|;nhm1xmdd9>z)~02c=D&`Sj>}l^PBeB+yw6Q^P?x z6}$VA&XpVgvV%P@K~kvh*`#Oo__>R?=Q$s%AhmT8V~`K9`m%%DUkb2v!&5bW2W8kM zoQ-NqQ)P{G6E+73S`LL^8#DyT;N_FhCG!NZHDI^brrDX^+p_J5^z8cwSB9jW6G$5#c#cq~6)M#(`O=K@b> z0EPjw_70Z25Z=G(;732m@OUr|aUwxb_o0hFe7K+SicZ(g6Uebdb{%YfGzB8nv+?Ld z;L(RuShETn4?mKBn4_Z4YyRHoI0yLvXCbaI6rI9Aq__C=GvMiGqnHf6{-6G_ygU3{ zvg_c(UEo8Ix(mPn`0!6{`F*Nv+4#v8|1o->S&z@&+aLd-ff#Li`0j6yGf1cf)dC({ z*nT`ZP7yo!+4rl*u<_uRz=K~_uf@T;e`1bhW9OH^=fh(=`2O$aCo-hPHq(6%y72&! zJpdYoMBBm}KKx||HjC)(5k^o9WQcO*~BTjafE)+M;@ebYc~8f2jMjjE+GWElVX{v1x95o zsu;B?2j+M)B1MOT4N8Q}KvQT=u}b*aWH(3AEu~=_AuyN81mvR5Vm_g5>_&L+!#&h% z9(ML3gn^6e>vb%*0tN5W&a!gybe6-`MdWP!ndEr7*~dqpwek6*0pirg(o#d5FFG$Y z1Wo40M3qlc3v|}dv*X~OWt$PmSR#R!R&50@+Db!x6`{=CX>VgtX2@D~{W)A}F&)`+D?|N?h1KUnp~96+MTNXVIUOUZ zW;#rr(GXgt3&)w=C~1sjh00#~WG=J?h8t%z`aCqrfMuw}7X(W`S=)5fXIbMD#W4~) zf`28$&A02g^>z)-t1N^)VqrGU+8A+$cI3=>T7+;oSib2Y9mLq&i7|*>q~Fns33nQJ0<&@u(7O%G%E$Z#UgyC(opfNMY_k&@EpntDu;-ia`HI% z|FidJF|w`Mc_8-fdG8ozV+`vVn<|T zW<+E}WaPQEF7jrc%!obwvG)4c@U3qF2BwR#?tN~UJzcHXXP03OGUr3HfzQ}NqBn;@ z9OIM}Z-`*s=0@m9M&0E`>s8sMO5X(jSk2tfJ#h>`hS|L;0Fg=Jx`HB&y+DKXYeto| zXOl-w*z6qbr|5r>!Hp`&23dqIgGEiV-fIpvk~Bpp3~>_mQEYM8js?T9CD5=NmNbRQ zWpVACiVUC*5n?ri@Sth%sA_fx8z`leo~r5WVmRyYV6sVeM-BH4Cy?pvV;RF6AgmUV z?V~I`acKYS`$w`~&8CB&`SNYN_1ZQXfh|2VEMc>EfJ3i~Lct*EoP=?T=LZA);QbSP z^jRNSVZ-$tX%^J*JWaD)caVoYHP@s|R~2DZ%1F05z+USv-hKVcc<0r3Bsg$gvI1S= z=?!57qhF1h$VbpBZsMM!pjAu^c9yURlVb>0j`p~B4LJn=~+5D*kC2Y7*;h@#Y6p$y2zh} zs@bJ3mdK1k$WPoVL%(cd$a#X+E1!$iAdU)h{bT@Y-ZSf-NU1AHigwkV5dVlZwIJVIOMsjnoWlT085k=YZa?>3^&I>k= zn@F+-+=A6zT&paaU!>j0vK(O+V|&}it3TVo_A4&jfCDryxhYY*aah_g(>&RTFI3nD z{Fa60Eer7xDP9M#%>b66dTlmYF3L&^Br>JV%dq=)fO}sK;0CJEoZt<#3HnZJXrO!V4EuhhxL>*(1SJD&u-1>!VA z+x7AA;X{GYvIkA+l=^cJIRo&s(%ax@5sP73552j+<@)b+zEB@)XU6JRb}4M^zl(qR5jdRZ92Pbh}ZNC@?Ht+yK{RRaY~3mj`u(A z5o@Rm8Le$#AIH5iPz zW#9GD44QCRfpFDC-I+6%^}71-yUy-uN=Q-;b52nkufOs-K6?5g9`An!$I4+_4VmIQ zIsN%Mb!k=^PQzyPp=Ao(M5t`5-i=vgNGWXADjS-i%2J6IekY`gbk1Yb$7L>34mZmY zxa)&tENh=r2@$5B3b;)Z{u6l=l0VY$3XLzEl&7; zp5XX{V{p6zgAP_nH=c@lO3=Y)m`M}Paw6Q$4b;F$-Ya#8FHguqr9v|$wPP?@C6x}L z;#cGv(l}HL zl?Vx!L=1#xONEj2pP5kCt4OT?nq8EyJO)~$0TJ|XZ1%=HZKEi5V418!X0Yvw4MPjff6&(7_%ZA?=n{BhND)x|`Xv30?R|z)Oc_XtB z?a(>vhcS-(J%mOCY?ZLu75(burck?S!lGO@s&NABB;b#kdDB3`NtF&HlPCS(e75xf za_t;TbAn>Dl3;}nx)_P-IC`_uGZ%)}GRG${VX2n+5%4Nl**NL-(IE>+D~G*f!Xm4e zG)12CzH*$_b@(Xj9$gJvBiwArR546QRku|I9c+|lwW#6>myJtaT)jb#uh#db3NPJr zZJ`on&|n(GhAYUyCr=}U|K>9Up4xuD(V4OGj+&lr+OF^HKeL^IOMf= zeVNZeT|Dg!WLbB&nnGuNlZ5&ch6%cHAO0&jUip~-x8L;Cv#6nuwSK&Fjw1gbGRo=3 zadF<5ebzz9C;*`&8EjkFdQf6OCYY!%eF(nWxE38-bf2S;Y@{28NUadBeBHytZ~AZ> z4BF0CdM9OwW~>aM${&yZHe646j;q0ne6D>%f*ac}Q5a+->Iz}U?siLpj!l<(f|WWr z2xD}jK3cDrxc?0wJDgd8K&GQ+o zblEGMaz6~w%Li!OcZH2g+m_+XhRH%jt*UX(VMXfHgi=Bu=MxyNp+GjI;-Ruw+(7K6 zi83NdQ;IxeiRflIe$#}N8q2ldIt`?aK&l-q|NrEpj=(qS&nKN>-*3PVnC0Z`2v&Ji zGxJ#NI_EW9+hcsmW}$;EX50vmOcDccKKKIOdF>rxWnr_k!XJ-UE~mpesy>eT@V^=t zy1L0;4#z^dXwm`0|OJe-`Z2qIE+KaCI>F7mC0>NQ&KOSSAo5h zNZAh<#VFb_Uio@c!O>clN+`{6CwlhA&;_qo*M~hE7>BDd;lh5ymIZIeM0hfgnK8{~ zj+;g*CaH+`da8k80t0iUX-qO=n3T-N}#KMWLs*P(nOy1SSDu~-hls# zgTySP3Du1ZH2sSk?=O|Aa&X=71fJd+I=-qonT>f2J~+EZi)@}OrE{pItzI{c7k%3O zoYALiE+@}po8+;rhCz{QJ_rIhoTy7U)#SZa&fECGYSpx1Cx?dTjhL%O!3Ht;icM~B zYY$nT;qi;lkd}#}hRoEI_c0%7Lv-nU1{YQRrGw`+EI1w+dn$UlSwsg|wJ+UwpkSpH zjH(JYB*V7k}kQA)sdBjon8ciWG?0P)u6!q(DG8*OUdkNT04+*|>^%P?hci zMl*u<#tHm)(yCw5fZ?U2%mi5NnB`hHmYrX-h08(;K?tGc0*O&nL>iofb-nC;XZ$Al z-{$Of>!iV*4yoD@xk`EYTIHOeL$la)`XRzHf!Q*o=Ri;YE-OYUY29N3ZdKVJs}vo% z%v8)%Q=PZUFXsDFVomECuat7x(ORYcjf&DQ$q~Is5x*d=vVvK$cdI03+C*L$NC~?< zr|EgD-$(xr>zQ8KOCscM0mmaF6)8hBOsZOhVR1(r-^b>(sBSgzBwBWbcs4^OiUheoi=1dB!=Brd%5OIU43C z^=T9CcP`tcv%r!>P(vTjb?&G9dgz#pWkc)Gpn9;OW^&k;C5&=p!itgzr~MPeafX2v zqt$ffb2@YF8@#qd=XOZVI_AR7P#>r{b;Dtuqoz~cG_I$P7xM2?Djme^`#UA_UMfsu z)>Z(^UHw4CtL}4}tx&I>B$O%$0nIneFhQ?3fZg^*2iFm7EJvzm*U4dSMKE@2P+B3HTg{beR09K!+wXWdEDLl` zS#1lX+Ol-ouO&mT417L?N%D=j`6~w-#%2W_%$f*wV3gn_>?3v(*jpU_qZ&$umX$B8 z(!unR*^eQl7P_H%=m3x3+$6U;Gy0|GlBfNO3z>F0GMe0xaui{S=xK)Jg=*q5^zb*E z3{?RPlQR}7e|>hpX=OtAPL!lVA>7MDl#K!&=ai6NznT(04BkeqNMkOR{G@wTs`p6s zqINU7e5;*B3C?2G_&0PQ4FlT4EY=eh}Nbk;U0CxcYM3`Bcj7u~Rjpw)o8fU{Na&(hAzB#esH4KdZU>!jl4NzkuV;4>lUJm6};ef{s!J7-SA& zwIgGHO=bI7vGfQHGB5~9u^Az4xB?4YCF|GKU{vFxbkITx8{tWg=ror~(aa6^RiaCW z{WVjk`T#YIs$%}q|5l_1?CDVbFj-h4K8}$j4sy?yxjP$JR68TQL^f)(H!2@Mf+tQ4 zX9ef{%RlpQsc)K^c>>a`p}5q=A$uhCQF>xH-^4`RB4bsGFpSX*9O;FbC1JI0HmYeN z)o;$*K!LcMAs%E1h@4oJa0}N|#AzXZ*46_DgQElo`w;@iM$Ss}h7I4{q-(iO*@!N$ zWn_FdLaL3OLiP|gil6rTh^+*rPY8}m!KvxtRhmk9!ZIyy zByLuf1=SEQIPQwYi|Z%rBC|9`)tzAgrSD5hw-Z)CO|_F_W!(btL56HFn$D>%3NS-k z=9U=M_;zkGuIa#YJY{$%64qB)fK77}Dd!B%eraWzZ4zgT&rRS7o#Tg}y)XFdcAJf} z+jBU38v8v8fK{cf4yjUKlGWBUvNE)8APvuHo(cV=Y1zn2LmJwrLeDo$pLlP+=OQ;6 zh+brP`n?FjmV?HwL>x1Tu7gP5Mm2{+L4njf4uzSos!tqJsS2aQbd!WR;$DGtK--}R z4+^RBRyiPJbuhB!2!l0C`gd5Be)ip1hV!*Y%L2LEF##P}|d@~0Zwt@!IG{V7864-%(SATXfw{pY+ zHvJD`i#hY7mt%08A?oB9oaX30&5`s-bmEE*(hf3{z6pNJO^~wu90eT9f>9Y8_UTE5 zBg=)G8lJkzY*508@{th|Ltevw)@DW2z1I4_<=YvU^N5v%5TA6vK>C8%tnp~Yu`Fru zZEOc4$G94*<5c*2!htqpEfwu3t3)~Jy67yVCDN{%o>QN%F@i%?zZ(V?)7MXDIL9^! z4Q=7)bXp>P!CsAVc!HvibtSXR&3=f6k&H93qkyn$E^7fd7=!COX1i5C*!0CP$Preso=QS6ve6>;i{bFd)sHuEpKSxc@y8o(5 zJTNQDK04Zuun<0n`}6}Wc{vrpR2Q)@n=#cHvN*0DEZoEulo^2XIqh(JJ6jI(YQ> z6mTNk{X&4-Zw1xg#}j|kL~shj#KFYzYd;H(c(sPfKsn6a7b$wrOJsc;t`(r+Hv~SZ zAXFEfbJ$OPH8HOKc2)!p!$&VFark~0?lwdRKq%3d}_mK=zMeSC1ZsodajRKlc>ddu|9A*9QseiBj6%Di+ z&e*#1Sz$(p*TsGY8Io8#zLarSlo{Qm&*f#5a!%VMRSt_&z)hrSB15RUy$%8|7)}Ov zhz}Z5&uQKC(@`2l#e~J7cwrQxH|XNDcZ%cQF%C`+aMC-G#DnX*;^?tDsi=r=jy?&b zimBYfL^>!Do~Gy@CkpQ5s)o>E)kma$)fz9ahq5WBZ(@Wb(A`hbd6uDn0JvztbJZ*u+C;lzsJkhm2r(=mHIei(3{I2|QZ0u% zIPs8^uCpt*FYo}uQ6CGT2urZ71&Flid zNyGXG`79Ds^@PeFAiX}+K|-LbSJ(bO5*c1h3S6>h@=Np%)x>sIfJPO`u%p)QeDlD@Cff{wct2s8AEg-g%yoWE_>@ibTUMZx{^Q`lGtOi+VcXA>!I0dO1WL|;1lb_ zf77`;uepBdvSDzTmrW*FMCP$ge9oDvkK+M;^3jj+;&5LE^xeCCAGdaHjT&+*NQKO4 z8A~`!X7j6xMw&`fct7mpxXU18ABU$0=ni`5g*~K2idN7P9hE_g)*NI78>CNM6PJA) zS&oyBGra!?9bpODe&FKn7yJrZq9G~u2IuiWzZf>2D;q0pa&(jj1wu|1f0p9(Ng@t& zbjqx<1J?`$3db2He3n_^T}HoixuTwpbAt}cMButePfL9A@A`0>2AX@0%r)UuaJ7Cl zxYRibmmzYL4q#d!jS7MNNJV2m#mSQto#(0aizFQbW$3}*Y6`TFYsWoBbPzX7WUnEu zbXwx@CkaY)#8KXT=&B)owemOhI>)+T^ zDX*db$G%MQG(*Bw%J3s>Ub%D_)pX-IeKXY?|9RK7Y|&-!yLYw_CnaK;f3cENjh&Nl z58F0Xv_B>5e(t)hSmxCwzKR*Vtv2U8_%Z>TMri7>7r37Du0m(7xp_*~b7H~tKc^(7 zR~OK35FBO`WQ@7x3eNLYf(;=IaBS@EG|?Lz<6r&ZzY>VWgS!v#?XUhEthYzb9@(Sl zSg;yF2;MlxQY72 z0f+5I1B2MalRxa?C%=CRw{7ChpKrn6QWT}i(NnVvoCf<$=H9yjzWnQ3xc?=8SS6As<(4Ib?ey>D`f7+&Avw(pB>e(|qZGX(6>J=Tn&9C5 zM6&a&s03aEt-Wo5mO4yw(N3;;2Eww0mH+Kl1A~Ey5C2scKlq&!nW+BOUuwbM*0|g% zFd=<2v-T31s%p^Wr!3F0ILbK&M;ZD@3^o!ReVAbX{ZyQ3&k4|KZo%_7Lx+1c;ke_D z_?i7=S%{GH6nsX%N#COuCQ*E`YfW@M?Bn-;@ItB@55CdB*Z=wsb{{z-9dy|!U+G}2 z>N~7V@-&1|B_*OBpI^0xy~7m8A9MW@gr_-d61DgZw07F!>(Ks@mc5QTcv+;>Yi(?v zZCcvkzq1vID@-J>Z|KX4(5GFL?Q)Q`RRqE23g)+?Pka9J=|DB6-^&`6F$@HlJWwwhN~Lnc|SQF zbhvH~m;F;2eaA(fHBhEDiUIKa zdl~*+?{L_!#$eE^}unvZ=vjY>aeybsR7;IJa$-_aQ3jQM%wbKlPqa4Sd zC8C4uH%P-0`M^d{O|<9Qd7dXa$Y5g~vm>VJl3sv$^?hQWV*uvDK_hD*C#8P|oPJo~ zyZ_`AZnJugttyvq{$dl`58aUiT|L8`NkaIZ*1_(+(!uBNMM(NN(t!yxYoO^Ve?WAQ zwpUk%HpJIirj%p<*eu($G)UFCyw5s1y2f(+5Q#9EwO`QM4fh$WQc8hdtNDp$t-_x(psG3S?=H!C-)Hr-SaGi>HTA z@nrw8G>LO_4FVsn_V$qSRbkJUF!N;t;8nu(=Gd?-!gB%{fHpWB;FG6)Wa z3`xy9EJsxOUvroxD}S5`b4~AghQkk1oP5ffg(=S6R!e0=`FTnIh&U=!*6%9&+_IAm zlQ#UEYhobU^ch6CG6*tEVjTWpAdF^WGHe5_+ZkNnME^()XB$?9*qoay_)19TpW{rv zAAgYI@cja5$aP{yxrso6Uaf@~wp(Zf9Kx4j@GQjfC;cHRfecJ} z3<=Bv33{tHYaNuVyn_EQ@MVv|;RhMI&sh1fq?)m_wI%CE{bQw02ODdFH&5*kUF`Fk zOs?_Ytl~Bsiok+sg#IAH^FQqi;YC>m96PV(Qfb>eOvhnc#fbfkYsWPl9OpRtD8Dq{S~FMXS#`TUaz=eXhe@vhPlzwBV+ zx~4DIuXj?Zt{dVoDfR1H^x9@w+gXo2d92DGSxAhRK$q&z;u(nG1{x);PYdf(_5RCb zmg7%;PFJ=~B!(;0{FpdSg`tiC2#?92L$RnRHmS+$V9>!nh9pUl6&bRUo3!$D2=9}O zs5FNU$?U{QnWag5z8k4I0qWwW{%uvl=b623agriV5+vl?m#D3T)k?#H$LXQO-n^v8Zjj3T)vjwka!sB+b8PJBu1z)S;hxC^0E)ISD>40LrXgTSba8Ew;=b!lGF z*Qj+cVINhTAj#O1LE7~K&Q=1emBA3+)$up0CVL=bFG9+`L#2a8&R#&Hs;p55N7;A@ zKBmEQrx>CuO{bs6S8>I??jl>9<&_R{{n+@;fP$lO{S3}-0?ShbI%ChUp0Pn4OxQpU z4kv?|G!$aPW+j;v^p-*%RJtc?xncTrRllhm{!p&mHt}zr?g0Bor`T@!_|{in!>wCw z#Izl0DiBNEm&7l&%05MPF?;~Ry)+tUUFmged4|LtPlmw(na@Vh)Ox0(Qo-uliOY9YpNnM;b&zXUuc}>o zSz4c_InW!h*G)oJD7-ge+_GHhO-QJNvMvRp(2z=7me+J}+~f{*(6I=c@}=iWt(ks? z72;t?w78C0WoLe|THDKK&NnRSmtye2FL6He6yfs{{VbiXgSGGMb>n=iMx!CjQ&v^g z;IS3dd2>)4*XB3j^7~(ABIK%~YSW9#oDR*h`Zu&J&0#r5IaZ37zlP0xQy-f8c`sV) zrC-e&E!E0V5cumFrGebY2#fEUMVFg*y0}-bYX54t0SPUV0kQr6{LQMw)__nKpkV|xs zFgI3)7`#ZYRaK1~uHzh+w$vwb2}!8)svGs+$lCE4uKIi=D_$6INhO{YNb<|BQ`tc> zeF}VZ!*%fUvd>*FE$#(3yh;ag)zG6cc*Q!E`x>&+brytcbv7>3r6rONoH1A{4qk_U z+CW3ON=A*f!^;-1P0P1aqsie4o2{-uGN#@r+jpT@to+%f`tnx4$x+dE+{M|C(R99>g)mdPRj7l=#)l;xP1{^b9%aD9z z(Tg~*=W5OH;YDndhK=ceN!7x2B;eKkMWYj(T~nh*qduvFGi9fjZJ(CqTU@fw)oqj3 zK@kqfB|$_%f{ht3S#0O#5a4JzvjW$(*Oi-tWVlT1t1$eWcf+f2GRCOumuRSFxze>e ziYqe4=Vc|v&U@W5LDzZdH7_C9SV!2;Az43i zhT5i~4o*Z6a@1+-dCoPcKaT!-ll-R3y&A5ifiNAxPi7wuU}nv#;)h5w&_xt7KD)x?MmL%HQT0HWf`{Vr#iM` zxo)(|IbzN_V_+Up8>+FC2YOY|7l{DR>)kjHGr4)6-{(TEs!!+Y(h}udeX4Y6@-Nrf zxOJmt85{BybqOohrwg-cQ}kxoXt{!GdFkZ}`ZNj@uBZj8woUTC^KH|aU;orLZIo@A zOE0R7#!qe2=UWW<-{ysMHXF<8P`YK6V(K?MoG@Me@3K>zTf*HCoSMc^Ps%*36Q37Z zl|Efrm#X6#8>&l`pJsv9s7uu!E;>a$*w{o}y3jUl=Kgcz^=UHb(E7xG7B91H`l&vx z-Zt^aAvWn^r+w3PiSkq1bbY#1*C$>4xQ-yuT*oIZxU%YNm~Ea`W}6Xiu(49k_uyUh z@=eJI)US0@uF04|m*jQB|J_h2m!nHF9_n+cPea>OuY{dro6c3Vmqheu@>5+}l0Lo6 zwh1qnZJN~mO}M5phtZh9Hoe4hlXPigZ4)N+=^E7L>MT_=ioUTSp0Dzt1Bi)&T zfXiNF%ogPv7rk}^mrB^i)|YFXf{Nj*0pzRx^0@&ePa`KN&jL4 zuXp8+wZ7jQpi5``rtAK2F0oDGhrVn9$9b|zFrU=w{e9(}M0xA92g7sf3Agf9{Ze8@uAN%Lm9x$*Xq)OfcAfS~ z&E!xXTsdX_i3|h2qCVXe6Q%ECp6gZZdZQto>UZjASw9Z-TcIwg^VELEX504ZtjLuP zPCCCbKjy3smK$JuZp1!UUR|GVOu#WVL3<8`*d)c7=6K8_=Q#!o9dn7n#-)z$24qPt zntE)^!Ng!}z}gy1GCb4t>89z@bsOO`6SS9Yn`X4uw2yI;A&g^WwW(ozH#b@G`v-w{ ze$jKbOFsYnRW@rZu(-nUmTE69An?%o#P#F4MNxt%NyjdP4vOd42s{^#@D8t7Zjx=9 zaEzlkMHnS0it)*HoZ{?xoN#}>4z5I>R(QX&>~r%48zs^#M;IqaIKgvtQlVz1?ll4z zHpgMV^^~2g`Lu`U=nqhr; zR5~bO6rmr6;NjoZ<=OnOmo7t~_Ssuq^x;{DgLsjX zIB!f+S`SxZ(=6S@wNHa8uF^Kqx$E^Klt{6&pvZ-)c!jah92xkCGU^4{Y!F$kI}R5Vd{<@*OVH^7t!4wBYhUUx zZ;D;IOyBE&U(_}c0yKzN*@)3-7}(zSk!MA znK4_js6Nedd~PzbAs0D3$C35Zr=o+CrnxvhYJJrj&Z|!vezi(2>CzWDYo;y6c==7{4A-ClyjlNiUxF~TU6eh#LYR~B^4 zy3bXwU4?C$N9gR)j!_5i-u3X!uicUTKpB7zT8C}A z^8K!OLuT(4on_0)@!F$py!Nm?)WImul@1<9I69&ZDwtnT!GxBz&q)>JnswQP2DF1F3=?o1>fpq=R(QY5f{tCA z7_-@?d39+SVlQ=J=lGznE9jW@YU$HG2?q% zEy0$mhPG00(4BsWL7c#`EVP>ecG>|r+vdDV$M9n3ytk>BKXLq7f~Q#w3?Tt?m$EMq zee2hq4Kl7#m$>eH9s}RP>yNf@?@m)?MbiTPL4p?t1GL*AnvD?q2N62G65H(teD7=m zU>03E&ps_nm)0&7^un?X+};cD?mK(ptT3TMr}^+`fER}$UbI5&??>nlLgYn>ovr5F z6`-Z>bBmngii9E4&MA$$Wr1eH#@lb~pcyzwnORN?bbB%O4+hw3yLhob!1Mh`^mA|9 zy3k?1vHDcWT-POugA$%^%JciBcWw=^GhJ4}B@@8!FIlIg&IeSYgYV_$+YRiLrmE?BI+25J$%mk}Suqoh@m^-*jD~ z+%&%lqDxqt*yS}C;o(~rIOkP@j(MZG%T6=x`t@7RFbfU;w;pCLZnlFcMJJ5Vm4L&P z)4SE?L1+3TjBt`fvI)f~U@)_40>0}AoMV`=sLIguUhh@(X_2*Arap0fSpDg7jRq0I zG=WKsbCSur5RNuT5}ZUK2B``-3X|C^6AiB_rB4ew=DhxMGuXrb&1QtD`pl*i1ApOj zAXs=Co~r`SWyx5kYk~J))h1rAZ5kbkP^sM=ANTJzs=kC0{eCKyu^_PFdp2I|_b>=^ z!Gklq$0Em>4BrAD%}lmw0|LYIgqO(7d#mN*-knC}KobU(!}Bb-9-GE(L}7-5qb`cV zLaW8;wo@RCS4gz2Lzk`subTRN4{Zhe3vArl^|7<d*fIwn4S(nS;( zXf+xz&9k;_DCad{-vE8mQs3t;5>>5YpMinxEf@Fhj&v|d3OJ4l*R>G%HoDye$0wmc zC#5%wI(Sava_;M0K|eKQ6+t0*1S;SHAs5$8FM zs}N>ViFZCc?V?wt$O8ize|K_<;aGWY6fFnd-6qFBqKI;w5PO>C*xPE$L$94DU5%N! z|84lgV*0dBU7CC^?^&8F(+r(nh{IkVu~WimI5_O|aFkX!TmH|pV6+`H0w2f<^!pjI z!xP-y-A1e7S51SnUBmEoHGR71t@G%U;J5P}-TnZl-5!b}A8YWgeUtm&YBsR9(-t_z zc{Ht8k)h)|kvMVgrw;T9sko%U|GYws@`!8tDY*7fH7-Is7v6Q0#lRM>o+YT8(^Cj zIhWG2N(U?bt5|WBE{g7{^;K)E-bWoABn2$1sNlFGzx5{T(|JGm>C9f0i!=aUixT}qEmmy^X?$) z3^r!EoLZouPd7a6=&ZRkrzYt3BXp7&sc*pWEtrmltSDjRTtD?5!?R#F9hk1A45n!! zHBy{}p&Vzc;ZN=9xJZ^={i5-fO3h#Z$0_i}Yh)8k@`C}l>QgnNL`K+v_2gkS| z%Y2TkqmsI6Q8cazI^9s9p^oQ_-O+IU>R$qVA+|okNymb{-GF5>fpUclS)py3=U8)B znJXIC-XKP&JCMXf{UEZhRKc1iz)(&Iv-T-E-5zYC0juE+``2!=KFwmACKW|Di<8h{ z5GL4a`{F25hR*X)4~t>Y%e7AXAso|$wH3fJ*#Ny6wrQQc9a3EvXfmOqtopF$v6k!_ zTfb4#fO}Iy6v0UcmOR7mM)jC3qDw204X{nKihbqg!Uf*5^lHN;LC2~WcGW7SFplYP zP|onYq>f{wvcPu?$pVreyfcW69pz5H|09`gnjR&-zpl*p3a;sVX(Iey*1}C2KIk>&_mYJ&t;Ax%T}q zLz0$oT~B5lkos0Jffw?u&np}29L})L{4AuYK1va%1q{=M z@B8w+>O&|8xu~-ADl0N5-2)b?+wba{`xQhCLz;X$Ho-uII}d zat|0**(!%mt)U8dsjF6$B1_fG3061^!`Uc@Z%meGo9cfTcC;jwK!eTAW~GDmSueUb zX6P)Vgk^KB9C_~f{wTI2dEh$s)q;&B>(n}W>(Wd;!(p5wFAX$(rGw&kR0;O6K!Zt9 zlkhYbW|RopfHOOUOv6)f?~RZ-b!p>*jq6~kS{IgeJ@CzS4VBH@LzRsGxN6IhuA}>KBPE zNJ?P40Uqq#gX@~OeXBu3g^YS96;KS@FXwX6+~sH$Sa?y#_ude z#u{U-m%@UHGL4b<3UL;bJVzfH5Lj@wU6`zFNT-#d8p4Nzh^BwybaDtikP>LWkF=Md z-D<)iGZUR@tWIXel+GD!(CH(@jPR(a$cBx7I^al(66Rn4H?m~&?PduQr-a#ZU@>50 zYE-Hk+@n?JpSsku*UOxtVOel@Jjp2bP9r!58-YErSAQ-T{#cjwBKo8-+i@JjFjL&S zyMw!T)KDs^Y*g^6dX;1NU4~gH2TuPy&t)5*^I$_Al2xNj^l!VdjRy}NiVg$~1D(EE zZL9{e+`wSqpwo8|#$10JjYd=SE>2P$A0J{c7)W)a(O{Bc!RK&^w&^M|&)GGU#q}E4 z+1bPH?haZ_L$ajL_gST5R@p$D0w-Mu{jflsu`1_dYukhulg4y_)6-MQK(|^Acol=( zTx+-j+qBHg^m*r%$@Xc6IAvd6fLC650NXa;1tyM8OmuAq6ol^?==JSN2MH^+(Q3C~ zy9SaZ#=$`-lcCwu#R{G1;HK!)4Ck+#>-lVxvWbL528}ju-?}5g?$#D{&cw3=)&D}r znE~5r&p|&T8o`9)2H4u>GhCq8>&O?`Ah)-qadxJ?;JO^dWu8~>!3Ht5hdJ79kkk9M^fpg==ZxwlN5oksG6&7d8snb9bb6v&(S`& z5KEP@Ar9iQ$GTrju%Umx>bWbHq|@F2r)dnd9oVjdK*`$E=odf~<_LRzlxd+T0Cqjt zEfMY3j-<^Y~_J3gZ&{KH{u|pI45~tco({{mSL1*=ACHiGK0vC;1vh+{_}ZH7rm2B)y8ikv_ysYg|TbM9)>vTf5Eq(aCK znZG>Wm&yeL|Kl#57`1-78Fer)5QaA5B$LDpA!(+WRt@B=)N$=qwN4)EIc(X?ntNUQ z+=VYw6%osE&}cTr1~EYU^jQhhP=90cA&xDCp@}F`I%ry~=u+X5VZ*spL~})(y$L?m zTn^%ee?0%M`WYotR}ciEgFNry3DD~+_>|~aUZU3rqR18)pnC3^2vn?qOyrnmDbK$o zuPzCC*X=irooSip)v!lGMO|0yAnn&620r>s?Jn{RGcbuv3?bxhVV|2%>_s-BRXK=DlXahS8kFmb8@p6Eaz^_Jq9R4J z8Nh9O6?JWuBB4XuA+|I_5@#?o1I?f*FrbOcs~}Y~(2Ib5391qz&6j-8qbAlh8N$E`X;Ya zYgo)(C74p)zM?*Zs>h_%X!&nF}`(py#OV8+Bj{q%(H8Hi%zj1IEGp_}n@O?I-x=9A%_ z&yyrwmAx=#e4aKn5ps#x>oI(kIn_VMujDsuoPK2sFize>Wbe^-GS!A#AGt zX0CMGe?$YvdQv`8}7oi7pt^QnjiI|m+04BL3jq@wr$Iv zI&oORUf58csNlY2MTqOiuSD?kYS@@Qp0b@cQk|~s>~XuF)Co-^EZyR=eo_$<{YwPK zQV5;yImcdO(6Q`H?X0#*+ke}>NC$KIy<%I^I>_})s-PF2PthO?a};n)TR%y>FbdJE zU$lc+Dv-X6&#`LInprN}r>;wvE|TF9mTjCisH$DH!>&*!7jHvud>yh(W2_)O=2%Yw zze^B878?mTa#-GYW}fd67*Pc!swY;YpjrQTDrb3K&i}Q_qP-2ZJ{Fb6SEX(K-sZ3& zqXE0&2CRC8YHR8WLgJRB_kU;&UEzXEOQO{eWZiNN_FW{2Cj3CKgv*#U(}*7s(wX-b06CG5^0zSXuFtacht$N;~RHS_9?ghz2sgajOH#VT?*WiEk6V%W$HP9PuOkcW`14V3y- z&AhHPNZGIgM0=;1yGV_@?Za-mDB>IiL82A*LYy5|M(Tmwh38UZ$dyCCT&V|&v%H#_ zVU^V^aD0-Y)v&SMR`Uo(m5z}^JT>!MId#O;#&IUj2c2lLwbTY)YSb60>wx$=tt;*lZi9LQHa5yhcFD~Zvts! zW_8u^M*aS9{USQZd$$PJOVI6haqr$e(Lp}LdXS>3q8aFR6`L1zu;16~M;$B$(#Cb1 z$*EaXpDwDJ&8bh5x-|aB*=@5~>7Y>-vVQIM7PhvwgtAo!y|jtc&0cqavg}Ln5rqTv z`+Y=FB!8>JiEg4UEh@APGK(sMJeORPyLa!R*=!E0x;kKE6{FXq4iX|B%WFg0!GyH# zr~;K4KRK-sOR!DL(xvN^%k}9pjNfv^UbkN`ZFAbBrk3jxm8~01;S@ubS5sfB0AQ?# zpmLVw-+WJ+qf8Y1LbCXkh(k!HnvIubhMh9P9D=>?8?%!^Xt&1 z(YjR=U~AKftMp#=rTZ7Eb*Z}H8KiOj$T}i_uL2VVL!(nZ19-mv%wDs@ZB%mywp&f% zfdAfmC&DHFGhf?-W2&ZB+FgMUB#A$~PT`pO^TYFn*_`a;m4Tvq) zZkvR@G4SMr==VvnN;d?=1H zofI+)H3AM^Ta@B!iMq7Ly^cEAZ1@5<>zo|o$3M>S@Zm!|c<_pHek&cMLu@~Jj>Ds4 z2{@uC#?jHCID5PeHcK}f4S4Qm>0r6y>~V@T$%JiXZ_k2hSi*D_#i6WMtKly+ zknX0)qP9t8mzmu&k@Zr^z@MC);PkX3fw0ch@wrdpNHFx0?W?k-Og?xX2L<|4P2&6n zyXvty_amQCMbEvz1?}wQel=HL_PPI1Yv?()Jkt!o)cT!@16&`x7R3s-B7^JLgCLE% znFJ+tQUc$XEHwjd$;DigZ5vi77tG=>Ug0p%i4(->sW`!>r<`fx4IK{#y-5-Yq)#CufDV4n-#&otksoF^N7=7*~ZpHu2iuOCTJdvbDw)6)~7 zX4Q6&b~1`1Sw{vRTsM`mC)1K*x8i!cE-RkHT-I{r2KY^^gmWFEXn^D6W6{A*XRoR{ zj&v|hVoAD)4px0c+@lmbSY-ztQ;0Jb^-mVIO)s$+#!CdLnpG~k=XE_c;uy|yoeM;S zW1CGy6DPyh(o79s$}^k{1_-6eQJp}t^^O6Hy#*B|u5y+udfX~wNBY_`*CQ}2HHeNc zYa+)jBxob&j6Y8Bz;>Ar#iURbMkL3SU!91_kHq)`jKT3r;aS^aYR@9rN(h)RU}- zzpHv!G^9$08F~ZI+4m%kVOu%cTfl?+%(RobFvo|V3=k)rrf$M7UDz^-_$Fx0dTo=i zy+H+T+-Udr_a$q`b(6mpIl826&bYZ&XOpSoj#M`2FuS%1SDG$IoCH(PwP2=d(l#w3 z`qcAeTxTf;s=q1NPp{X*!NGw9(yZQTNFdji4j&z5t;c)~on*p?=%l!|AzzzNyfxOi z&*|r%fozhoa&e4y`-Pf#Z`O6NTQxq9l1(}@FS8H0hL#GVFXPP^-peBTG&xIaPJLR1 z2{LO=F`rfHAg_x-uRb4jkkv`Gvnye+!F6smn*u9xEdw6AW|ydgH^Of+>TGfmj*pJ; z{CP_fDk|~9*-*JasF*C&$5VZ8uD~cg*HLzmIygtbQ8$V6RI6*I_@{D{AytdW&;-hv!~ZtB^eZ>m4ZK(q~WyfYLhi)+GJ(DuVA1q z*QN7LTs6d#HEw0*F$BK75%L;e`+12cf)2@*-(!1`VdtcxzDL2 zLaK&=4xj%~4}ylD(pJzea=pl|=4c(fB-j|cm(fiP&ppS5&aF!mKVEwLMI#ewXigHu ztV-sifP;xIvU$mMR1jRD(iLVaO9BlIWxXEA@oN00xsF;fcuAj?^rw|)bWk^kE7nA1 z3mt6-Z58mUTw=LYU0T>SeNOhdWyzAqrzlv4;{(n#UzH9|N~q9c(f6?YzoLhS$2V=j z^MEW;eC3lIF<12;1+SQ^3F6&BC`0`?sLJHVxD~){vYKIyW!4#JSZusvc7zV}@Na5T zCmS;A&Ey(BBf z9A{#$X*$44Mphy@j!=ddYyl->H%|%h729Jb4!4?rjcHQ^5fZIdwb8qqX#~2?YYVkE+JKp`*+y5%l?j7zQV{r;PZYrrf9lWIoCD~nZXo2 zt~^geCv5aw4IO36g6H`|hM+8CR#Y(y%~X9gR;NqLl0`1jvJJG`2KH_lXtscOIEO>! zLx*iz)yxw@Ug$ux^5Hw4H1OXPmtfiZoT@fdY(ds|^LHKUse=&9vIWW~!AX+9a{#jj zf7v8`GL}ttF!{RL-Y0gE2|!8wX_lokuaaPccAvopXK=6q+P7U;%=}%KtjKSga49ai zgi#`(PJ*HPFV*pst>oX?GejK>qY$3$!!+$-z_uzsaAAGAuGFl-YB=>0$YUVeBu8zE z*kk<#R}{hAHi37326))A1nRTYc8Jr zX^GEH3dH%83s_Ki#hlp6VB@4eK#!DzO$!$BppFHrVatSYi(w$)6IJhkID!Qiv7$09 z4GAEIpBw`g6yhY774&DwY^7&vTu>e?ObaEyIF0u-M)Yg|Co$1%w-uFVh2t2b&|S`w z%q?^x*w@nOhdAyJkh%tpmV%sFfg^+cRB)k#iW-bc54;;*cm=5Le`Z(@hH+D#0?2tW97N6z{1 zeo(=n^u4Osi{III&}y-&5#aSl4cy-I1i#Hmuc`;ckbs51=fR#ni_sf|vL0ki8-si; zau2wfGHIJ+P*qVVwk3}kZU(|+i&GPfMTX9vSz4C2az3jx1}R(@;w476aEYTHNZ>mG8PLUJVFrZ*8I1?Fh`pHA@7 zlt8CY!$U8E0?vJ2%qP4?rt~BkUNR9=;O=V%Ub$=I#dk`4+FuQg`m$uX=}0o;_`t(= zOMH!)sI3BTzF{NYH}L#ffle3rpeXT^_e#Vj6>zlR;!o$*W>o1FH(2T=p}AaOal$o| z4sq!@r}V1VPaaE8=M`nCj-i8U34m&S*ZiBbLD(f4yE(r4GbV};3cTn-pib4TspANH zlzRO1u3F2g_aj~_tjiAv` zOi8s5M>{Pl^QWe16E`2l1EifyP2SB5INV&WVM&I%v?OPxhSh<8& zCcggl2Htwh5S+K~X&5Q{V=~xw49|+$uaK&j$5$4M_noaXR~QkthfPeBI*UfRnj z&EN$A+FQF)xfniM!^WHO0gHv`U<*+gB92ZFc@EON6dkxs#m!MBWU8)W|_oZD% zk6P{7{XvA%Fmdbl9c*uJk2O21ZBel!>WVR+ac1Wkp!9lOA%aQL7W_i>A6$nlbKR#N z-#CBICiIz5UM4Vi_wGnAHoktk+N)OG*U01@1IW6g?B49A4n~EpiQpF;}p${YsAehKX4|{^jpv zcuFUl3ul!G+67*H=zu{hKc~|dz~OO;FfY*90(Nd0u+tLTZ3}S+_+&pvX zeM9;(q>;J8u}CSg$Pr|T%*wzBAqBH2q}f}7jwuF~(5N_Y(QCG(Eu2%wh4NJ*DqZq8 zKdVESQchakv=sP(4A^4RmNW{^fFGZ+M7^l+`nY*^`w{j}x`@pJ)|RUvPnyeh*bRO0 zvBs(tRlvbHCZ?|BySM~3ue!M~np5v&~mtalN;ogB`yTd*`O=r)*M42qw zOWJ<*B~AI9V>w|fhA*Ng4?%M_a!~eF4U%F%CBn0vo1^(VY%JIQbiF;qn@t58( zkbGd`@kt?mu1;oG#X)r+)$fOB0r}-9`Aw<&0V;vbXRpRQSizacIA^K~n$sxp<}W7r ztCov@{(B|fdosR1>cqP~=b2|@Q<}!tc~OR0!fO?H>*q53r~iqMT@F<r}9TH^Jum-v;xW?<_%@a~%qp8siyzx&%6zWO&xyt!54q2r)c*!aWW&+!lcB*nXb zDZ_vE-wR-;s$B8(j|}|R|02V8o}~EF&ztzQzhU9>vnf#3Qp!I$2( z@$RcOPCf+w?QfR&XMYxB_kM=I^S@}|yZ_q^fAB2Eul{WZ+gXmS9C+(p2ZMtW-}@~C zfB#>`0t=gE?dU}G`Z10>J;~0;LffjQeMi@&lVidJO zZNm*oVVCIu66`Ao86?uvV5ut6*fFP7DXI@3PclT$`UpSm zA~0QeA zvuPvfaoY0$oo)fwYQaA9xqQBaPn=M+7JMdMY;SKVR-4fa6n$pOM(A7|J&#~{snF74 zR`4r+N_z9SPFXgTRVPiR34<_JLV5(1!z>i!!Z@j((^*+mE=McSJUoC zNj|Q5BWNJs*+H76==Vc`Ryh`jE-p!z2qA7|cV(B2>-MH!8ZPe+r;1dCn^43 z(Z^r;c?)0sx{tl@oV{MxD)COk!|(k@hQIrd`}o!`mH3;#zJ)LSo{8@yg+Q||5;`0q z*{J#h91jMFi&V1S9!hvc3dgYdA*h~=LSc;)%abryPZpO4Q8G;Vkg}HWGHFJx{ARM+ zq`oWfvpn{N*wRlxh!0DZscEBUImiq(Y)6DyY12f;uYQW?`2bEIXzVs+(AYX*Ko_!6 zB^kPdNP0F-lZdgJ${g|Dm{}5!OdGLTHpL2NcJ|jIGFjZQ1gch4!vN*aQz8ekbHquf zIikY>q9;AHZ{I=S`4VtkHw~v=72YkKST}Xh4|AM!)tmymqG{Cq8@y)W?zbyet4z&| zkWzLPc@FW)D8+$mHf%Av-ENG2R${wF7}lu4?{h2Fx_Z8i?HvWDQrKk$2O(cLwxbwU3}vk zyV%=p5k)_76JM3%Wi^uoC&h05}5j6O{sY?({B78*!Y-UZovn_HnSEjnvF~E{E*nRZ`()7w!>JoTAek;C^ct zckbTB_RhB0!13(8>XDIoPn;dNe!*~ zGvcH~76O0rPc1lZj<5V$j{o@ATzvC^i+o_ia$Hb@C$#%z~B6}CY+QcNhN;xn+E>TzfN#cB>0uT<>A3D;GGuu+Ru21PD}jx ze{J9&{9b~{D)8{j|U@BgSow+rllWZ>XuOWa{}`*hSSG|kx2Pi0B=@T7+>Y2aK_dJX~y z*b9K|z=YxEu#8;Dk;=kEFL%&0eKjpZN*4xl*TG^))AIL+BV2zUz#YH_0nZOHX2(Dw#G|i^kA)`yo!c1H>p`w_Irg zH>Hwe!EjXoC6tcr)0sR#Jq8(qMW=jPx}jX|x7K(+{M`hKN?T2N(GZY7EU|K5W|Cj_ z=XrL*718YRId3<82_&99kC3K4lyA0h_qHb)CEHfb%|-Q@3v?8_@+PIH9cee1(+jqxkri(I{K!W`UoQ_Rs zP@boiv**i@#hqObpM3lrC&yh_W`V$K&X)k#0LsRB%leX0W~SHze2e4-E`o+9&d1rX zrBHOvD5cV-f(?EVTEGCCjlQhZ(T)@Dmy5$Ay&N|z7@n8qNkOHUEGV(HRpPC;QvCeS zcZY^hJ$a-PPOCtJbfu-N6MJ7yPZAtFG;se(1Mj^TqI2Arc-M1l`1?)Kr4?Kb*M!;m z-XO+nZ@h&E4<1y*62~cKN6*Nk5UPHG z9no>;;8IthQD=o!_VEh5FiXmphNdalx$G?|`;rQHj(Me?HhtUD&)YWyhF@+M_-p^E zjf4Lx!%6qSXYxbjQbU{G%M-|2RXpO!3uU zH1YK}eEjbJt-$YomSX!+jQ{@M*ut0JGw{6^WO4-F*>muNKg;pI`MnTte=En|`s>^H z<3BR+p_k$>|DuoQ-?Q+$|1d%DZh^1AW8?7mZT!JcO4!FX(taQRfz`xs|GN@D_$WtK z=J+N|Y?&5{0|Wo-|9y;GUyJZR{^f0alX|B`WG80 zSkh`(xOc}v=Z|vb+Y!T?0ntD;ch{99i8y3O&5~e)`c@mj5%45b&Q2a#I65uxYEYux zGH}2MItBWjQgGFz4vPy;pr%n#%meaqSQE}_?VJ(c6D#G+5+F6`Ox0*+&j~to=GY}g zUe2lE1d}HASXZJEP8$fD;U*02_0|@ z*_8A!z{>fpnu6(I6H1lH17Bg|YjtQ<1sT6?X1i<5b!si@FPLViuE1|TO;jR|4ulQY zu?2_C08TE1RKe`u&{%k8m!#pl!k=)>Wc|3D~R4j z0g|kg*D+{0dyeY5S&_;ZBu2>C@Kgym4Gs_^buKF?`W|045gV0e2;&5{>)`Fz@8X?z zUd7f{W8!r=@`4kwZQ=7T_;YR}NmUlQ1cxrBc=7zG>SxFWM?cRjgjMO%tWL_j!G=IP z(+qfdQ>;e+oL_~-wx7{C0h7XHrv#6tLqfq(Fu89qBLaB|B1 zvP5!J;`srSA*J}8ghM_4A@HM*N_=))pz&IP`*&@$`zGG|IFm}XwQu4CDPDio#K(QY z$AITgfFJ(=`0Pa~eHkZzrNG_Wz*D=xo@wHP&ww9&P@?VUxYaHZ6c+jsV4oN`>=YPS zCH7yGI6N)kHPl{xdPSGsiD~ zJHUs(S>jVRi9by7i$7;x3Qw981`-h$vk7cF2BN%#X%}ev#NQi;;`tw>DTGAl{{1p% zoBv{_W2fCv3`WczaX=6Z^la*Z!t-SwgD2&=(qCo(AcL(m)6{UnI4N;Uf%}xhOnnt( zsIK2}IwZb#nBgD4Hl5^WpF$R9DB=QE#ec1bzfHZzOJv!)MC08IykW+!7%(%eAZ3Ix zG02eD@fTJVa4<;YGRXRsL*^=3%eTBB}<0%MRAO0`w{ws6!-3UXgA5dZwd1h4L*YmW<2SLB=V)4 z;O(}Hy`4!6t-4N4W11!j3X?2N;gF}^5GbF5XBn=e9KOr+X~_ZXs)ctWL#@(GKD)i! zJNWuHzJRyhdi9KhD;YpOw3g~JG?;lI*#P@uDz1OR(&%h+t_0P35NBwT++bdBW!btk z!^XadgDAnO1Zxpqf6K$K{n{P8{yL`&yIRAhzE43gRE2{*Y^us($aL&h%f`cp9+EW1 zlgE9ywk^zY!h(pGPt+RbNHPYz30{BG!_WW1Hoo|7L*RS0SE|oQ@>Am(dsa4C9pabg z8E7<3xLzSPL6br(wHM|ReL4fjTXj{vQ1CL^tRQftZ^IfU>k=5?H0+|P0<#B(1M3oT zr-n|m%sb(itwdo(lpU%gVSCJ*Kgwf{Rh&!L5TK6e!-}Z zuo{}E=R=Wr#kPly=A_9rkR$LNxD!;@v)HB~X+`~ag@MkIiSPc~5}nf=Z@!V>*MC01 zU;Nm@zx>|$$D*U(I{_ln=Q6?QmuPI2c;g)d|IvS9A*MZdY~1qQXXU%!2fE!7 zWeTKy10j>=go)WDyugrQyW1^bXU7yu^v)&BQ#vVra>Aj*K;8pF=3E^Gh2A7tZ-t}! zP}+A&yuR(?-+nK_5Ap)9wsIumIL`hAa$%D$aP%BF`HKa9{tFg<|49M&VUE{tdx(Ez z;Kf0S#-q!wX$&VbF=t`?W$J;^HB{wj4Lz-Mgbxmfu5Fj4IP_#%h{;$LCWyjB=x~d+ ziNdzUxlIg9G6NOa-st>Q4|tK4(x6@VuXVqiFb!`P}Cz2!}sGG1ex>i1rt zV4_c`OHDOR+_S5|tOk>+H@aN3hG~hU6C-@mgBcROpk|lom(H^elMUXh5Sh#2IK!#q zoo+16-masXzh8Y2NKXbYK1o!t5yd$=ofLyGM}D`IfaA<_BH33p$v90Tw03Nv)MXD- z&PqwfUZxbi{s1T&Xg0jr)?{7DkR^yvXoj&k9IrgMgLl9D7T$RMA$GR6&b+qj#2Qzr zVa%&GUh2{A?iL1v7)OU)bh~|cc2ih#jCu8Gsdu`XY_ysg!Ax<1t!*1`zSTyHnM`r^ zhGDZli~L{b2ZjMhH4&T5(WyAhCR%L<8Jtees*%cCOHlU`HW~4G>kmTs%?w}oqK9w) z+&12Mr-hvz@6rnB@KLTRw_HoE-~Ib8;s|*0oV3FwT)U|VG1lPlY833cggrk|oS`2j z@EZXh-MNdct)>KPrkTRFPhc2bFO7*DUdkU$k)d4I8!(boYTj{j`>fuh1tOpgLCzIK~uj zS#*>P3SwscDx*Q@OJbsbT;lObg0KIIiTfq6b(<3q3`Cg}CXwfcOhry>5O8sj1lCc_ zz~H|_6Z@Z)_>*Tbe(_g*G@jeQUWrD>!gt><@vKwg^~{iK7*1d;4S{8`G+ZTLrBae4 zDoPdF+^|F{RDtR`Ou4S=mWU(d6mp#umqNqE>qX@VJT--xC2O)bSOWtCGFub|qCSui z8bJI!8-;=ihf^GAU6N2i0u3W4kgGozu(Co1G||#!j)UA%ELX#Jg{s+nTuPK#f%tHM z@+3vWZJ-hOVkED+7uWS^84e>e^X*muKkyJGg-mHjKNI6t8U=DQMVaQXi0$-kX`CMm z7^}*Unxj&pWYAVvFu9I$vxKNA+`VM{s^D|1-D9F*P-m*MeuDVL0734ewcV1|HtV^pBLJ7hsL9^Y&qgU_a-FM#}wPm9$azt?=jtU_eo2*ZhG7FrFL0cHd z*trdS`6~^4^=n&bZ!x<(sW7APLSspl-5WVqe4bUn;UNqQ93BjC+RG&fP}1xZWzq!fShuO%dNINyWbj{D#;*+Ie9+)O{o8=7yCr(h3MujMcWKYWvmYAxty>9x z@pT{fG6TmSTKMCm0-t^+J|vO@13&(LiTG#~apb9q$3HeOpy3;+-;qV*_yzEL|02bM zzwF}PJq8yp{_GD5eCH?<%1CqkT=|PF_|4D(T12#9R>zHMoXuMs{w-6>E1FmhL z>AUF183x37z6fEv7F^P)(HK?U*yM&NC=(fcDvb*gd@us@${0IHP+BH>jRvAdOCUqy zWS_@2RShj-)r1W$l2s*?qsq{zo2$KX!EDGfFywkhgu-+(vjHhLhHSEp6AVscp=xy+ z4m=vChHjppc0me`Ms_PP9#JlEH_k+146Y1bbzZY-*1W)RBP^{<6^A$>bnM$#0mlOO ziS-EYk)>(|n7mn5G6*Gj`hq~eSR4)pQ@Roo$C<$Yn8lwo+v>h)j2RT#c;nRu?%fV# z8oABq*<$dbu=aE;S?!?OI?SS8XFtM{gAJLAZJNTY!b;axyDe*cnH~(Y%0nD;1rZ`k zi|Y2rrnAqDfHu14 zj1^AZJg(tY{Lbp#ty``nkDfkF5k?_A+PMk?zKQy@D3nD}ESG4t9NfC?VQZUkp7Xqt z(flV_gPPMPI#@N~vk#`#B$Jw|M^FcuM6k&C^0EXQWIg2ivBG8+Xtheb{(6pYe>+B5 z#zXj2QAA?Pl7xdL3F$5og$mMA6g^~FC~Lz$n1nrt30c2#IBqI7luf*8p353aztIf} zcttMQ2dR6#L4=b|i2JWR#Jzj>gfv4>6`v-0#>9~5rWRO)IU~=+EOVRgs~(I znnX7&7;LEf0UW=;{nvpn?-_XI(1aJ5cmNmQ{j9`s4>0>c;R27oWZ+xJ7M^`v;IK3# z0dDHVbzvYrGV$@pB_6zz;TL|zM(c^XGSb@q@NoQVXx2L}G|pIG=q)SK9J*k}MhG4S*!{8`bYQPRl7cm9zjD`CocXEe^Nh|77HK#Iq>11>*KJR;NW-uAu|ruokcdj_XoiD5@;HU<5F2aCFgt#!^}0Y~ z1aJ$OX^J3^uv@aTh(?TAdlLiKM=sN8&ifQ6e{Y;=c0Mn+cwHEBUYASAMBs|UP;??O zJ{-7LFve(mFiFYE41VRzoXx7#u7oWge3COYxt@O#7!R{D(~6Xc%IrcbZ_-YgL)kWh<8xO>mR z8*etSyUXk{aqbt{f9faq!?UCpy2>Fm!%Yi&w;Y5KKPP7QP55MOS;f7qv1em+Qo?{( z{o=&>9FJae@zt-|_|m(vBF{+Fd>4KtiK~LHgw6Rml9;el9bj;(IA2qYzTy&tfug@= zRe3N_RW@N-TE-;BHOje3H&QGYT!&PGj`r3T_V)JRvNSN`aaG`}DjdoNYDkrZlF3BZ z1*tcZBtaPV5hb=F(%`di%m0^LLdnR7|;{pdM@a#t> z-up_4SHEb&>|2QY7ETUIeDXnoV;++oMyZL93E?^h;!T^wA#|cQXmj60nb&XPn$vM0 z*L*kXBjwPgmV@S_HoUz6rf*B5GdB@t&ILYIf1)l(ELlZ~ttf)c$(^ljgnk2sWvgbY z3CZJJn#G05smdmZRG9pwe(p=8=#;EGp%F=nZrDReHYCz2-wM!p(1z1?g^h}7&oax^ z8rG^s6DXFEFpI@CVKX{mWv-uq`9BR&X~Pd8JT6ss{0luokJDGsj86gZV3dE zL+6!gU?Ungk_bf>B92QOpQLC86&!^bBFDh(Jr6-(quq3bic|ucVLyVN88e|%i+U9s zK=(RHeNB#d22x*m;{m?;&3EzW(R~F6;)^D)v%;4S`#6S!CzTAL1r_-~(D3ofE4Spe zAAR@)y*xv^Njl@ppV4*nz+5%hprb-qq#u~r+ER_WtQ4xzS@oWcX=f>Gkg8GhxWK6< zo5)=@KhuFBG`B#M<_JieJDgH|{rZGOD@0j_C=Ov*kyMC&{^xh`;6X#6JeS_r6ni+V z8dV2j??ogA zGw2i1GoStd_`m-^0Cf|=w}I%;#_#?!;CKI7J*jQsxBg3huP2`kq#YaI{nx;E|8+J6 z3TfjH{y+S#|7PO($0q(C|3wNXDDlm|mgB7?z(4&51^(@ias;Jk);z*tICDpcPlRuAj4Kj+-Zq0 zXd$=9v5s_-IT?HKaR+uptZo2@@Q-tPqc=t5aV>Imdl60s10)Rt&Q?PhY1}POf(>0A z5;zpuk;K`hu~HB+`Mk~vv}L-uL??>zihUtmZ8C$6y^e#SItd1!bdWv^(QpC;GdA;H zc7OHn>-rp|vc(2`*O55}ZZ(}=uB9yDyN2{Gb$cm(_>)t7@$D^XE@uY5)#T=4Adm^= zWKdJkDcLkiooQAMpqeM3D^HUsy_+>3L8icF8BR|7XtV;n_6GYlUdO%rw*^XYuA`?T zUT(%L6;*6=^{)}Mg+mx^nOxrpT+v@PO-5OPKqxpb$U07ZH#W7=eh|U16TI^UA3yu; z7Vh4qqg=59iRdcFq$mfb{w1)gVe`0&+y-)|gp(WaeG_-@xLRcJD&t+8@Aj6TI`5i*J0hiMQTl4}v2wYTq|t1gg5rz=GfP&k}?%$f&9y ztahlGCj71f4pubOY$Iat=`5>eb7s0}XD`ao-vqx&`!tvVt)K(d z-p%7ghatkpU2M5cG}s6zl&+hb>62h1&jmtt8inYU3B27F{B3VEmt+F3te{ccJ!=Dx z7)UU%&_T&$@S)Ky(j%iBXN@zfFHP1<5IySwhlJAXNJG0gfX4Fl={hp6+R+#ZdyZV0 zE6M7{X>Wi>4;s>3PBtKB>J-tys6wV_4NF*brb{;c6K`uF@QH&aEGUx3xO&r@^ba|t zlDsLMaAe@h#aX#^cL!hl+S_>jwMX!ShSIqUWwchqid*f=9OLv?&?@$EG@Aj!Fhzfm zh@qA@37(>|-b|BssYr02(I$p?<1G)r{42Y7_^^pUdf4g}qN(pz z-*kq#Y8+R^NR?Gq!JF!v<8aVMRfXzxOLY4&%%&^Jm}RNeTD*~oeV-MKeiUP`S>VfG z*}}KKy^S_28zh)XRiLVpCDb)Csi}a&u~k+-bqTLxPX-<0TvgRFt{YQ;1yT-Gtq5oM zULKot{)8WK7~Vou*Bj(F2^BMYDF+GmZtdWWH{U`d2&57*DYl)#^J18$%FuI7xu<(F z@YKM7vnn!O-B753!eC#GN?uVHJ&yqgt40yRkWKi3%y*hx!nHv2mVpE*fn)&u>2H*H z=RYg)-})cf_!~LrGkJLWqXNJC|4i|L!Z_b}As6dQMNPRWbaInx#*LMk$&+4)ZWg0x zTkwgoWfrRPQqRnMko~ke51ryFm=L&-&ij!a0X9y}0HLAqk}{24f)^mSY-G8in!>B$ zcdBYtW%{!cM#Xx=zSLDu;ayahq>rE|gaPBA+e7RE-rW}LEmkyCzs0#;gHDiYsJsLr zqek$t!G}YqPi0sr(o|1|5{?enleUGuf>jVTa8O7AYy+MiEV#h^UHG>p7`6+W=O$$G zTsre4TPSsoF)wGr2)!^fecV(>%wEFo!Tus1Na!^!+`kuyBmVSxg5#5LRJyLNiSt2r zx0|wg%%UTDU8Y^{Iz(t(t7*Ef=ZT~21?qo1$Z`Y^$>r^j%uZCF-tWt!Zp>e3mR z@pBwaWQXV=*~~b*h4zZi9T_wGeWhcgYoxBIeU#5Xn|9d;D9PLEbw$BuUP7%@rGqw; z=LiB5Z@(SDwqtzyX&=2_4%ceJGHX=hH%LSW#ST(u7}#^|Tp=ouUaBgvpz!BLBgEZ1 zhiEk8+A-)Gk#^a~vuAq};9vNu451d*uR)2EBeL(`EZcOR*mP)T`CK+R=$Lf^>$>4$+Q;SEkuH;! zjb5H04@_8X2X>PKs3rnF4SuI1QxvfC6t?DJtFuj2J4DKW!m^Q@jtr2IA=@%_yuvkB zow^3I`a`G|okZS3Zk| zs_BmB3cxb_o8}VNPOxmi6$Fd@AS{(gz&GIo@i;u}BF*9pbD__A{BwSuN4Q2b^bMaB zn+2Y~h|%q)qZm&o?1w|{6^{Pi9YQ-SY24jzD@GB1Ce2{9{@j>*q&UuFbh;dVS)##= z)hv~cYl3|8ni>2?NrFeO-oxu}JV1+l^ClVQ6vlYsLeCsysCzX)i^eT0C`(n{sBp`k z?_z7a3IFH>X_}zZ>&vaTo2oiFvn*lFuA;H3%BrX>ISqSf&%hVH*uaB_f#U1e_I#2J zt@i)=kE5QK%2Ae#Jf~%o9j(S%#h}A6#G$->+rjY>5G9ek&U3tthY-uM$pcn3sj_z{ zj!_^MI2tQNBx{hlB@%4RQf1RjRkdGL0f_F0kp_I3DPhR7yt`xLMT5=M1Dtj_%?v_W z&Y)vnS!mxr=S~(0Ho{o3mfgN%;tO9O)1?dBHDL<79O0p?a@5aIhxe)dVmP_FLJsJE z$Xte8RYWQTrBs4yK;VS?FjT=B_xvKuP?Th7Qk3m#Ru2%z7P{RA z4iA8%BUXGPcw2#J{8fUDsl=9Ra`cPbz`>Ie2j^MWm!PNGp67$v&GP)n&e( z0mn(NkGyHY-U?tfNxD4JZaTGQo`VQk^$WnsGc?i|L0UB{)gJ~HEld-U=OOe12{=fD zD-^BzycNsR&vjLv(Gl&@o zltExFvt~`#>?BIHEzf0>i?a+r`_3bL;R~;$)ou^xMvQcOvbpyQHae?LSRnrH_Mq_zLG z`TLw=j?2&wBY2GjU;p|oeDj-I0;N)LzFDsS{MXc*##KMZhy{!!5v-;(o2029NHt2b z+KW^^a5&|(H0Y8}sB;uxT4430L;XI017 z`70e1YuF$ALb!e${ww_>Rb^nE(7x$U*^E*x3TKvddm&86#_JEa@!*vfnyo~FsO{|m z?%p|p=PCb1RVxa(ZYprIx=_dVc4IV~sZ^CzuWE%NsIq@*E!BLqqHqyK20r`D!tea{ zsX+X;nx4$STGS5KQ$M3$ZkU5#Zf-(k7Ww@4aMWa;4Q7#y3`@3bE~Rrqhs5-lC0Ayt zni(WVc9R%RS-`Atw02n_$WnN$+191H)S_xOD=h<&WgvIdG;VF&YISnyabPnw1Cl(- zB;atiJ@^lr$PY8gH2Q43K9{ro`qo`2_hf!UjCxmyqR(?Ny2u=d%^@_Fiyu?8a( zgD+9YXeNTr_;I2+g-lj#Cg(MHcLQW4>6T-7G3jB0xopCwKYjHLU0`FR95zkG#8Om) z7tgtgA_g8mjU+4e;GU1bX9KhePw1aVP2_|f@T=d?aLNILLM_Q`m#{p~BA3FgZR7SW4hZw7R5z3(A`p!FZ*?ZQmbV}NJRE?f>2XJ2%pPuUHF59m9-civlIB!W zb9!zm6tF8_fm*OpUO|^s(8lK346T-ld-pu-Y?JkWx|oUe(iINGANbZ5KDFz*mb2(!Y*U$3``MO*Lr;8*d4*K;-gSOsj@FUS(md( zDs>IR0VK6^$oo`Nde%)4?GI2SoG{Dj@Fomq?7OiHbmDvoetxx^I(IFX1-6vml>h+% z07*naR3}&!-Q;;2I-9$9wwq|k06$gYo+e}x>GpdtUL>;FvdS@JB4HCWGo^tozvrMb z;?IvxQ=vN~+=l0|8CWh!mzFA3z@VTKY;-4-Wg3)9z3wbqi+=wktVIX7X`G?sp(Kan68g6GvrNOk=Lo{s-r=6h|nAG71 z8jh>k(<+FXZp3f4Y}~sa$nZe+e~^5lKVTESBNMdOAxqhLs;$@eGu*w~$E%M4*qGa2-7vAQ`iY+{b6sao zqH+j~G;FD3akwDA22Z+(p7ur=*3y8RlO4zv>Ny$6cHU(2i|)66eT%Ny#QXKUlI|cv zhgfCbgh$$2Hit>KZZ({;yyQs3W}4|vgzDRfQw$Lz;laBORAK|ARd zWv@bE!M9n8cV&V$eI~|4#%21nreH%(wWQ-{pP0dbWIHdaa1$wusR zXGG6xG1Ub6q=f6uGN^R)e)U=n1JyLc3hpS*v7T#Uj@D0lUR=^)+cI0CM21dhAg{TW zVRj4d*J9Qy9hBx{PHWB;;mY(+`@FO0;NJDiMP?!qOP*vY#W2fTP0{z5W2c z+fuVRa6?41NtsOcaZe-*)oPO-w0S~HoR^}9U-&`;X)?h3@AoCy=h~{$ys)g%i7)jj z7e2tv>g%`~0r@f}l5e71^dZjJWJPD0S=!D(u~MOF!)ZIP{0cHqHErt#WFjt7+d-;! z;t>v9XFltj2%!`8po((v@EwsW8`TT2_H0{2w+^~0zat2@^ zm5Pf#Z3~_g;Is=I6Dk!K)i6ONuFH~qB&uO1C9*6eu~p>f;jP{;*%WDiZTs0%zDecHKXxheY>=i|*>&TLP{85a%cSF4UrN$i2R!s-Tn5uLDr=D+F zBNFswBf4xohk_L&o=#7i<{DB5*WHV-=sP{fLFRclIxGYpw!M?%?%nzJK_MHF44`a6 z$a8f1A&z=In7b~_CarRTBF?Jpk(%qEJutO#Y9Oeta*Qe*daAQ* z4z-yQ`l572Bu@*3PkI=9+7rlBUD#OK^c!g2YS$4V0tIm@N>>&S=J_D&Z4=sWpF}Jz zvhF-4C$S%Q`-q(aW{Z^#L)K3ca#d3;8@P2)He91BKoj~~y?*+l^y|c_sArZ(GdbeJ z5Q9&CNQd_qYj=vJ(S7D zp3D9iW|}S8aI0eHMo1m@Qx`g}&4wB_`q{^Q{BCjt-}mtFVS9$7)~g^YnK0_(P+wN9 z(xKOt7sE9S!ve?08J;{zaIjBGY#&?OZF<+p3Wc?wsxBKe;hvYkeyX<7M4ZO>z27|% zc+Tr@?8-BARnen|r01a8s)%PGF-8>TI6Y1A{CR>8KZ+2?B!y_f^E?!#DKO$y&6QZD zZK4j+HaV_^AN{C{Bss?RRs;9$w&ps{$gbC}bGX-35antODV$P1=;y+&^x0=Ijt&_( z2WYpO675n)SuNUh;d9`Vg4t>#j6?kUf8UdS)wkbnOuq7xBaQ5I9feSz2%s9s*>h9k z=s3ZX#}S@CkMZnTf=@n85rsCItsS^F=ckzRp378lnYuKuloNiFhKOC&Z`uUgbde0H zP2}d6ke#L&H-#2=MyYex&vrd3Gt}@1vGLK1GQ?3dqFL1r@tB5Gw9?d%-qxsr#dz_)xdL=Q#^_R6(w%9IbSLh zlj%1}&dau3#gHkQL~^vNo+kB}D*pS(3S@%$r%xgn3^JsDgG26oIF2XTsv$-374B;p zkiWVp+`MYy?)N#hx{o+YkS1vj5;dOJpT34?f2aDh4C&KgAQMH2z@~b=K8}vMc=6%{ zhli)KR<7%cPO@4+B*-SsOuS5&=u{Q9iKGW~IvM)CL>f?0gIk?F;;6b&Yf!6_I2B7! zRmtFgdKN+$=IC@Yfv!Az9^>iL6sISAZvf8?6w_C=ewV5GvUO=znM_bHup;~>$t-kE zRS-bBWMP1-Dr9GMZnD-iUgc1Y_oK=sonJx*2VsF;Hy1kB7cXK7)}B2}k)o;{-uCg^sV6bs;aZ1`6?xUM09%Sd=}eF#HDY|8zSLO5vn>iD{E z<+e8Tx9t24YW<-iV#}m zSkkBR*=J7>4nhPC4?8<;c?O3rip+SaRWyc2(AT3&8H&}8tSd>9BIN9u4g-x2j`?-c zlb~ZTNYHF@NFoC>Rwy~NbHm_N=P9=m4h}LLA2ZiQkpE4bu9|=1F4|V$vZwu@#1+b!3G`XgM%EW z9Rpii4bef88L&#uHC$P8eyNS(BN0YO&a+BOJbpaD_rHGv*R`ZE{_b5u{8TUG_*Zp7 zl^s)6wow91XXDvh!^!pxb`K5`SwrgJ{(gqzBUXYuG#d@6025t6ma26o4VK|INivhf z8JqFYXKsmgQXjiveEA{&_0H2#CX__Jl1S3JqJYdp^% zn)@Es47Iv+0{HNMb2{7S+{by96@Y`&05+ zRk_@_!rERGaOm^M_lpuJGpsu|zBoz68BJ0)icOqg1wtNnW;{vXN+)g_##6%#M9Mjz zk&ARmei%RCRh=4{rhAD#jTMB(PrkCH*3S;JsC_;oX)d3yaMHVEYf*unto3EOw4i;x z>e>=>&7gpl7~Az^PR9NFxA66^e-UrL{hHd21t!JpZ^a^2Iml{I7#V6ZazvT6CG1c zJum06L6+B3-7c;4gw%X@h1Z3ew+y<~=l&6zH`^sV|1$}&SC&R(V}Y66+caB`aB zCVbC>=dxFef#cX{sio@EDs2;kQ&tgkByjx{UH}Pr zzxAzc{FT3QYZ#DG??yUUccAGotLhSUkeT>yhq{-lbv((izn|cvk3xL#{y<(+mJV#Y z373ci*=tA{KE5xnRiEU47r?}a|Eo#$S*zfR1UWGbJ4Itl4KsZA-4=fJS8w6oeScgB z1u|QIhPfW8*g)!ElH?c+a#^?2(?q@#e)j37k*pto&e_~=a^Pu0bdbzcdat+$nlz7X zTE*Iyb@=%?*LRr@K5ugPGF{>`c+wr<#lb1ITOPjk)z@(AR$J)S(==7{#VTKnU)uNM zbEARc+{5(+%kSA^OB917ehOqMsh`v7P2(3CfQxSQj8bx8Hn6|r%yV;DRC&SmUz8!> z-v}jXHawvc6bjK<0*NuDJpbtDU6U>aUjz|Y^z%3uMs?YH7SW~ZL80?c+EKQoX!594 zDwJ-T!S6Vmf`B|3esqWO(M!;cq%7JIbP#}KiI53wwyVK4! z`9{52UU6-Cot%o!fa&z)MBo4nKxmksKR=Y$@cumC$J=kcirw992|Pv&X>6od4Wq1R z5T4cP^zi)ovGi!19Cu_G;_2x?-~|RawcSM{VE+T>=1dPZ^jch39c|V%<>$+wiJMNp zQ%EJkaSG&FS8&?`*C5%YYvR$X0bYN-DcSpxv!WbU!dB?W5gXq*Rj{8=K8XZ&K`7AS zVS!%Hk*qz}j}R6%yV5Zdcxi3@%0+c)jr{m3U{%l&2C;Oy1`+V|vsCmc?1w1IBmCqi zJ-I+SclTSOM%?U@kf@rN*@)ZivI3OilTSl&lG*Qae4OLx&_Eb@axBiA zVHJ|PM;%-w*w_?NLrNXQ32=IxBVq>qMS(m$MIvm3O4nHRc=OFBUVXKJpi!UXu1E(8 z(Lpvc(^1awoc#r#gwkiwp$;At7z`AhFrkpXAHWqDP_@q(GdF0Fk{XACy#a?xw&_QBU|n=Xh8Z1z8L~e0X#LFZtF_ic#+NE{JT$YsZWetKo_&^@YiqKOhewL# zYu-esI*Bjg^D}vm(s<9xTg}_kRgH_@H}knxWSewSA@E(f2M(V~;}k#n@h5oy{ZAAj z2OFfD4RJ~yJ-i3kbF1^IL3ZTf&$0ylK_8t?7u`+|j~^f4(@$RroQlHvGwt@4vLklY zTwlSc=FTc_m?NWLX^wo@idwqBLJT>eE30%$DbVxb&$}Yzwj4!B&c8oq^^TfsZ2?2o8tI5 zk;>4MC$Z=t`(28HRUua(d@`I)h+3?RgS8uE_f-YbLc{X}UPT?G9{ro&KOGK2B%SiZ zN4`9dZ@iw5I_pK4WMHpricTk$#_*%VOsZ<{y%z~>HcD0|8!|Le%_LIK@Nf;Qz-1G` z%JT#pS{AyG^Y*z7vHK)t9lypI?sD3NPYYCx8~X4}iZNrh2^ZY2z?f#dc?GpttjxS> zM|_?@Lzi36ea!{E_|x7u7C^0KgPZcXUipwW^BGu`j3r|(c}A}CNvzs7$&f-i5V@km z4#Nn8ej-&lo_sKf@tyCyhfh9vB0UTB5{u9|a%N8wV=xG%`J7Bt-EJgVKLzpg5Con; ze^dodIeOf9jVs!wwaEqNl%UNbya^Jtg`t6yV@@$vRbf>G32}O&CX@f)wf52wcN+f{hDFR3>b*u>r|7sRR=O>R3oKQiqagfEal8 z4ytSG^)mea?;YcZKj>5yj`}?**aLeF*|QOa1&)qNbUHS&j8H5Gu2T_?RM0aX!5KE_ z-+WQz7Ob?E0)ZY3fTOM&=1P6wB=tZ2_k=jcXf)~G*6*4XjvO%?n?(l;bh}(bLo)KJ zDnvG~Ksm=%MNOE%YJ+^wATDl@-^9cqnbR1|Cpn)z3;ixDx4A%0d5=*<`2G=o@cquj z`cVZ5;mH-1TvU=EWX_*AEO#Wy@_567gVbM7_GdA(y;$OZ59D!A5F1{|~W z0?aGAN;7%Y)6O&Po>v}V&7e@FST1e6;}1g)JMVEBm z-zV?Co>W@oeixN7`%n{!aVs69{;@BLYf=;$;-oLlx%spQPhO*;j-0&h%WN5D;}we` z`xh8|C^jqY7!R2P*Qigc-RB71cU$ zMwA)XYOtFAY-WK;YTI-ZMQRt74l)xg0UW<_6Q;2LNZ?EI2Hndh zPG1#dh!(HIHm$u}G@^60z#yw~WD5(i;lqT23{6eq)Cxxo)TCF#vqv=atg2Pi&6G`r z09|#TQ`Kq)3DiMTIj9^?N*y#xutk52bh0j$4jMxpwBc5L8oIi>&@kASM2zA8Zl26P zB5Ix{&JA6ZMd?e+%ewvR=UDLC#@>Gk!_&G%U&7K2<9TqZX)oPSU0PJ1F4HCb8aY0$ zE*CL8t#fTxy1C91ysqJ%mE){WM!MxDa#FQ2+oxZ2!Sk&lE5nA;CD|t25ZlDV*!A^u zJT!byRgQ|;Zj4TzhW*Taa@>6TB$;*n51X@vnv!j%4$h(z)Isg+)t7LYw&|h(_Bw3S z7_(?KFGj>-0>PI?Wd^*L1-<(Hb;{+NEQ{=Olj}!zEtdaYds57*j=McD+f{*X$YPb(|;9K0R29Ba4t-jm#cwI)Q)}L+ATxo zp@`cQxoAD+)u(xM=_;S6hCE!TOX@@yUf&}6JgG}lPO~)Gblaqz4}W5Q%tf|oat_RO z>r-6^j74qJ6(9^;56!-J&S}O(mTv(^@1?U%HJ#G)gD%q+t$MmTG#!O?{kCaQU0QUX z(>f>wYBPxLjlKxhx@r1!k*%KhTF>kwl@10I>2Bkk6KFeV%&JS*V4FtB*!B2LC2o!` z)ny2&s$bu%>ojwvV@)#m`RBzVT*KjwMep@04MI~f<`;``!96dcPuHzWo2XA$m06%( zE4{rL;RBO;@Y2|(icv^6#t%28a~5^o3~4t)m+I_g6+6@nZ+WR~)1-4VugpVWauf7v zDb@9v3##4YuhT}joURwM9;5!AYyW(Hs!tOyTqDax z%@SYLHc1k;e$4BTX#@DG|DBsf#Lbg+>C&ur=_1>t^|EBHgYjzMfTA!*a%UZUK z>I7_({N;)TE>|sH|bg@ zMU|kh$^$q5I$fj-7c(MUevD~4c#~w4v(cNPPj$P3bC{#_>+0`0_ZU-*@-*9Y6LsmP z%BI;S{hC?y;>OsfIoI|k+opAq(addEF7tn0V%v1XE_q`8S3q@-CHOqXS-lubhRn>2 zhm97S_}25TaWVsU(ZhD3OyKcWA&aQcNl7fnB+9pF8Imb3J-D^f}#R zU0PKDd!cQ*f?c_6pIg*6eJ=L7b&O4z`GpHqIaX+!$|o94O%66LDv_N#qzN}y7AXl{g*B@#OIf!KF3VoJw&fKoGz-Y4t<}uBG^3tgCD_<> z+jP<9bjCJS*R*M$_o|(kne^!lk;V8q)bG@cjjPI{4&o-Q?PZCb^X=SxYq$~F=xdns zb=msqqRf>ObJr+mkS(iTL*0b4BHO$U+jNl_*JPVEL6_#5!?8&hJda2Z$~EB+m*wEE z^O`PwY;>vlDpC5vsp#u}aOw`?x^-z2?tiItm`lpmZqk~}B3YKpSAAlu9%f}*mJIw` zwcKQV;so+k*6{2Q1P%-2phONDTSS(TecW{0#MfmxCkSU}{3OmQQ95XCgf1;=BUY{7 zoSrSuaW#Q?D13%ZPRF*Z!GYLVDX(##<>a9nDUwQdBkNb+K~jdDk@a@s_!cmvvTcm@ZvMu(1wV1x|VXLOK*DftX@Lc2MQ{bB=b)2I>o5*W~mf(_cf{vbxD*RM6{t7~Df z)@}y!Ws=b7CDx^dWrK8SUa{wb=hSZC!gp^Y*t}>#wZHdFoEc1;HI+m-0pGP3u5{>o7+%ASue;7*V~9q%;P2G4L6{&; z5*TI*vn*xZxQ478<%I7 zg=Pu3)IrnSDBCnwpXLfq&8iUBFG(YLh8goJ9aL*rl(_^NmSw^B95|M>8CA0>>oIc@ zV1e^pBpanmbBax4Gm}gN5qdMMZ?5ayAkX`-FPp;nc@r8zl|3-3|8y=vJ?J{iD)@1h zf!A?SQv%X4ecBLR(!UmiSe9q9egcW9HX5n?7{+*3>tz?wtqqWiY*Y2Qu1lY$1{);= zK5%&4#nzUEcfW88jlf2npT8<#J3Q%Nch|u;zi>~S zVOET|ej#0qa)?BM=k zg4=uBumb<;)yk_%ZF=}7?sJd|JMYgEue**1r`|(&?MkuED$levA8W2u zS=B+5z_v^@8@_y}(1B)IljZfIEa17WY%t6!tonK{S{GvzbgBAbSpE%T$!u+JHQ*AT zTfHuhQ(3<#Nd=D32z<1g-tr&%wGAPfILjt6m@Gh#eBHXFe^*u+ysXF&1TNlueH(Xf z1xV8ZNkVu*io@dw&kqLJKZq3Us$Zhj^hMuZM%y&6(0ybjg9*>Ow;TBCmv19Y3Ry!s zdq<}c_76ksAA~sV@VOkI$bDJEW!ffzWNg4bH}T_4$6|6MFLJb+0lxV59s=K1I+*6@ z^%5K$hj?)i;@~hsIEW;3ztsxFww)`VE8C=W&<_l}a=(c$fAQ9s4j!I_qJuB?Lv*?d z`p0L#5qQ%Nw*j_k-F}m%NIKt=rUIj0&Tu%D<@?J$^A;Dot&+ za$vambO(KO`aKCag4Bm$s0f)2TT9O>Y?v-x6l_SghmCD{jzJWo*Y6`rV%WBU%w^V8 zg&biNqdVv!Od{Bpjl9fY+om{)%pNZ5`Cr$%ohccwX@J|@vL@Qd|Boa!2r#MBkT9U#~nO=IzV2S2pYa52rhgU=dex2b!MZNRJ~`QasOTu+iiEKgPm@I zX48>1Z1^_*?E43Zk^+J6gE^}6*6(v?n~V~!V`6v5$Ey#N4iXAP9c;dEhC2A(`zI2( z!L;D{o;<^6Drf7w?ip;;nl40;6pe<1hxc2u27HF8gU2V4(!r(+&+Xy8pPV3!3ba}c zIM(v~hpEu04c_aFSzn6H7yI1H+#m<>Jly3h56wCod^e$-r5<2N#^9veM;H$PGeK6E zI6NUUNrfrp3!Mc1b}nx!(*)hHFJ)uh^mhGsvp#(q4>nYT?;woO>GzS95o|ZZX|G$Y zU*+&x84NE)qgkRXSXvKpa9m<B2R zmi*q%OJpf4j21l4hVSwB%$gdA<@Y6Qi%>n>XkEIBJ_)Q*SiP7K0W8aa>zc!7mG|d4 zTtBsjOvnq1m60P(OL#V5ZO9rdY@03#HZI%em|#+UE^57;F&$)v-jaW-HME9oU{T7d zQmGt1?f1zf!fF!bZ7|MJhBNJ`b`KrHdX2lA~#J!?^tCdJmAc0>BI=kK=lF@)%(&c zL%$y@D5USev~MVu{)+m~m;JlBEM^kB_FH@vcYxrQXIreY?%TOiyMI!K!*&Eq7|sIOs# z(&%(UnDAhF4y;x8bNqC#TdCMLacP%fgqJC+b`YiHsA)7O&MS-#6?{kF1!*d@o83Vd zj+?>_O4wE0;4}=Be64I8kl#C=%3N7?3CjlJeu`c+kY|n$Hz6Gxw8tzYV*F+HK`}8j zth#qgF#?Ujs0KY`WeC4fz;U@gfN2{jhU;g@?`-*-A#5eg1X@msL1%y>EG3XLTvBw- z0k7J?#r|o~v0$)K5TBf(7ZQ3G3lvYDr)tww0Y;rENI5Fh$FgKIc`TVeW|vKK#CUU4 zgV!;cL7&7?$#Uf^4`OLBwX9JPFK?f4n7Njk03(fa4Ehm##~99-*wp1%l}Nywu%{(P zFHB%q7VNR$O9g0UQB-TFbl0+Nltqe=4zsOw(Ac<2(W-5e?&Bl7SGOM{D@s@v=WL9g z#j)qNRE%kS)|rn_x%T}Co^8M~y@e7`OS_lh|JEy{VrH{=ug|`WR4Ql=osUYDlpW;W zT&-g@N5wQ*X-m-W58!gIWrf2f#B{TC@TamWTHI@p^RDi56Ks%sKIOw2BF#q`QW`UE z0D(W!%U;6OS*au2`wP^JU3xxUYJQ8L<3}q;P@H5z=Z9n(Xmco!C;0} z<|Ldwm*oJq$Hu}8Nkll7A(@*7;Z?J2G#dnCT-U~alXPjOYp;S0O`+KvkV4ZytGy$- zw!O0@{XWzSKF)+N%9l{QDtppwwvc3*{9bxI!dTXW&-q-kp&RqCs(y(+F+sqrGGRTA z*Fey)u(#(UXf$N4gi=_qAJ>wJ)6#(J`Pgb32%TKc)gL4hjI>++m0*smlyg_%3W+u9 zAPFt{VM4-SY;Etrbu8>`Z;3M}I#=l+^-R%{0)}a$-D+0vj$2uCHqMzRcFwJ<)ql! zCPq?a@R{v1iI)^-`TXubW)K=}3#O5y^CHHXkoxciNrQL>RoU(eYj2c12_DJ<8=z5DmYQQp}$ z;RhCa14B6~83Q{5Va)ZiP?WAPf!)4sfOFZRD8&AYXGqf&K~OdC8aGRq78O1FWe}y< z-noSb4@Oz#BqVappTQ| z1LT=v2%FYGzDi=9>lErB6DCnwV(->1+`W4bL118O#}d1zk_Oa41A~Y(%@(qZ`(=Q= zTP@K+Ch+$6pCRo=aP8F)X-s1`TvjrE7W!&q1D~l?$m&AH6&c~r%bX2`U(BTOyBGIh zH&VFv2reKBN(fLA;qWv?$=+|XfXl3Wqm;^qyhaBcEQzyY=Yl6y1u;P3^K~?$Y`QGq zBUy?bhX^^y&SqUa(ZYrhy)Qw%sf=0PQ!`vu+n$I>Vm;g6i%W|;Atg->5 z1@QQJi5Eu-%EGD|ot1762t!Boh1EvaZ*5gZ_We?`G0;h@?JNCZ*B z6?oMOrg*PdmlhJKVkjMST~Bn7gqdLs{Nxk03n;o~8-vh5zi%Rp93;7df_o)<;8Yc} zsO+Fu01o$KbFi5VFUk#OQV(9T*DdCBjVUlbjg?o_xf7~ zmm~F+S?Tk*VNT6O*~5!$6IqoUdLNwKk^s*S$KNLy=g2~qW|C1Ry>d}(s>k>6GF^3X}xXRk&N<5M}5_wbFwU@i6iUBucAy)6q&4{!quBda=_i7 z4dg-xahcB+^G7Can$kf!d*O@mbET<+glm{OmCmJtpBH`PBzNuu%tYrZVB553bEURP z*3X1xJMzVKI675dV>%eI!jY=ySoAKDwNyW=XPAL6*H4lLOOH6#pi2vi>Jv4GI>=yc z@ND#VMb^S$sP@nfmX#eOfd-#pCK9NBTz_FZT6O>U#J{h54PV-TW95uX^1q*ce6vZ_ z7|spXt!U(`0D^NNcJ4TEToWfR5@b<+_Os(ZB^yv>_Ag40>V$q(0hsG5FDMhQQlBo= zB~3-jHMA^Y39+gMQVGJOVcf?3*G(LG3A#tjMoqhcs=`rKi!KbTs;Pj+25-vCl(8wy zOM0${^qUu)@21!$UM`rmdCu1|{yo9MaMPOjf* z4O!7uj0GbdOpqqAJlmRG?K)+0O8jz;iEH2I6f50&!qV%3R4u^6{&^QV$-;J2!2#sE z31P7@EdJd^I>>}IX()7d*nh!5#by7&h)aE{Xou)L$N|qg?X$Q}to=ne`pNaPxbcpH z4G9Vy1A%K{w{+lnY$7kmsu&C~EcU;!`JQWiNrgxZMOm&Cr@IL<&h}OReL0iCtO`MA z4{<@Tv59h#ZDOFSndCT3laBMqQBiLc2f5m43p&bKh9pVkiw=vXko;Uq^$bac!{Qp+ zQ#XBaMhxQVRj{U<oDrGq3Zs1I}<>L4LOStci!U@cQ?CpwtWS(Z*{ z+*FxnW@dkrS})CVHcbZ=G?IiahCHua%aQ)2RknWp>$eeplSWNk@(fc4O_qOTn!C1x zdi_{!yTNwwJiiGyXP;YLz_BUd*3Vhb#-&+OVVa`ht3D!T+$(4mvsY|L&0`Zqtf?~O zovPv6w_v)&-6|F&t6I>US=E{`R(&Dr9MhhJp_6#iL{})R(V7i=TO@EZ(Au#PG)&}C zj*{3Fq2^QYGSjnQH*}>$<*`^T{ zD=9|@g8_DScHntlMX6cMi^x?~ve)ZLHG`0hFbWZcp)@>mjoGYQr{VlOh-8)xl~pzj zLZ)I_i)NFoc`8e)v&nQ$27|DowPxQ&jF3>&Fchbma3W28y{V#~on`NJ+#765G3QaA zsDmT|p>FD|yN2!cdVSGBI(b|>zCMZ~`P=7B2X&xpRXWIrmCq!55P~3(#^t&Wa?N@@ z(#flUgS|u4L9QYH#zYrw!MbD8$(k zyG&72>o;7higik@X+7wuGSa4r!cr_lDl=HEpMXX$7aouA)#sS~+RKf5{-%kV^^)P} zq$^Z~`Uw?HRZA@!L%Zo?yWJeY^scH8{RGWc8xI~l7&hRm!HEUJD8lJ!7iEXfG=q;WI-OH_o_TJi zgB2z2%Keh%>(ZhkG~d35kOVkK2YBLnxPAK$UU}sedA_v{s!F7R)6`lGFO%FDfNu;A1%D8dHGHXL`q#Ss~sNdj>oGLS~ z;ZAgtRWAaBp{gW{Ls|}A8 ztzxExjxec6b>^Ml$wNxyAI;2K#c>P@{|+VRc6(w%0T)x(nvpp$mdb@*vx(Z z3^F&(5vmEHKjc&&3?gJn3?s`%$b;%(C96ud<&+*{FL)nw*_{xAzzMW9Mf|W{5^U4ZGC>eTwvJ5ojiw-lZ>?>?|zLGAj;IjB! z`W_qY3!HR2#CRi)qLJOJJ`;Y|`-AjkrPRRzk|Yv#D+U{)gY3gx0mIiKqQDFjS2Aw^ zVw}B`O}MwUK&p(FB-q%P8@WUTzs(8Q)il%NZVyqK44WKfm{6I)bMK@3k@qA%(fapgTY2w(ZNDhJ4|M1NY`lrF~3*GoO@Tf1_x11A|?Y3hc2lhVZA{g z8K+qd*;i6E)Uc{j=xW9=*x)+W;AHhXs0S&-819lAQ)S}KpMx;3aA~;Fc6%Xu-5zc? zZ8SMZO=tP!t3a6M=tdcmG{Mm^hc+2#_#TXQ6Q1YHHg)|v*KUUC*R$Ft*+f|}E675X z;`rzo`!Dtpw!+%xnxot8Dh$1@7F7_IMk7EY2*hb5m8PSemCuPtwM=eUK~_4Q4h{|u zY7NlJ9>#HksDfNoU8nM1*K^ToHQ{?MT-#LBiZ5mcU%RX_8?Bn1)pT&$$0!YPbaaUQ z7hB@M>1R=(EWNG-yQAwW#Hl8PP3s`1W!u#r^m*y$5Mq%^2U#&YJw3(2!M+gY3e>7P zVk~`E@vw@bk_m=5%UnY`-DHuZ4z8-d@5=D=6@9Lnq=ov`@Aq+dc!>5^TUBkVeo9gg zGstDIR_g!CQj#<6c1waa1{Z@{;9OD1xPm zWc#ITx?D`8o*>?5wm8ofe!C1&+L=TFk{LDt-!|YkEjYe{_6#%g)+p;<^-Kv4jo8X#Wva;V^gK}KFt=IYrUwWG~+KkL>ZH3gOv#3NZpI&Mi3BeP?`D2DeE zuq^J{@LOtPI9aMxAXfEfRQ6#qK#=ugfa0k&)WO{>H)@PpXeNKSxuUCZbne0k?Y$k` z*>d4n%;GBuTE>7Q$>G~6x>5T7XYbE~WXaO=Kv0A5z%7`?{ z%9-V}McR3+EHVMPx~SPY3UYCp4V?}jGj@bolv#SUH|6qs$&eQFz%K=3ai!TGHRt&y za-{Fm!C-WkUKOxVnpuQof747?pO(vUp*GqS2C5 z4Nd*NW}EP1YWM?tL4v(@Pa4?q-Uv0SE&~cHT@ZV*nB(*iPo)$@0&{6cBT3D2)7RzM zrZYpEy1=dSEP-Vkuue$2Kg&eO`N7Xs)losIMj{R>*;n#a%WEoH0nmvlcy69N z!!uOJ7to&e1&i9nLOL%};@Xrf+bpk?hYe`00_bb#`s@O$ey>|O>K@=3I<|LmaXyYa zPV&$gW`=7orudKkcQt(bA0+s#cT)_Kc}*sRnFPP^_bfQ?82IY1C-}kM0nyYkf)2@& zgfTk3KKkJRrWeC9a+tOTyP?Bzb@_SZ7+2v_W$vVu+$`pyXk;f&Nr7*aDo6n%lJ}Km zjcJ!p8!%Y%%+cRVvG*`R9-3%2Yeg2PTyRI5R5>mx*y#2KX!m#%D& z?4lYZ^H(TS4T<4H5_1J|#-@Di{%UB$>QC9TL||~--|HV)8RRF zxVC#d?m~I21+0sRT}g*_rQV|EwRHSc>8up!Vx{9rHxk|lVOBwu3QvYAOv50ocpueU zR+b6faKy1$v~ijZU1iOUvLG9yDG8iKVtpN?oIZ)#oTFzjBq9Qbu%OCB>b3M`TXGMfCEZ1y88`BGa|0pjG?Thb+QFS=rF3FlPxVnh+N%SDCay(}h;3EIrHibP~QtIX|V^nK;W__sUn4 z+9XBAjjv;6h}6EQo9!8 z^FO2E^GkL7SN|x+Qy~;QUk}ZZqX;?qdxwFQC#6P^WPa^S4GxNi!^Rg#KLp-@>;P5-7BT~%;WLJxBcIw{&u zGT4TLm6etpbCNH8VUQPrkEO%z;r+0S`ih2H%Y@~aDrgYM)bWlh*?LPu?oqyv#PK5Q z%(<1IZ^8*KD_m<1sg0lVD$$*{tq z`biY9t2o1spJ1y`E=LSQ%cZKpY<=h}`BHwE>>SI%ri?r;oke1u7fF8eq-&FsXr;tx z3f*Mzu9T(>RyZo3>L~lHvhsBHnvE8cIKu9354x5KaoRc!Ty)`VX|^HVo1<8gB}<-% zOOA()T!$%1C8|59*TqQ&C(DJCma-p*;~;fwB4gU^_*iPz;5xZ*87_L9r(EgK29r!W zJiE3hFg;Q0Dx!v=qG2fmYY-}Aqt#j#h!88tj-|-^C1c@PwWs3_ZHPvQH8mQH4 zQZXCrB~b>(1wV-E7XuE${0992x?zA;ozMS#`9tSvOD7#78JwtOlkK=@G?gT7HR&V? zPq~pIV58uMtr9Ox8jyF?sM#tZ#l7^Lu3h?^xe(sSFlQ)I=78VL5g+GRXLOCv+AznJ z^ba5MK#_nurV>z=$`rn{{Jm~aoqQYb(DSIb4@n8nv487*UvmtrY}c&b zF`awDXjrXrm0X+Ss(Y>8zi9!kR}ilWp9z4F>PB>2Es~s6&|p=rUuH=*&jdT|o&+13 z6-h?ku#2jMR5AcP1I#FgF4C%1Y$elo#U@dZ1d?LW7m_InR+bKP*+81`y3#^McT^Rb z{-KT_aibNiz(MO!M8O46CMhc$eLuw0ojoL)53i-ct`$|Bk^sIh3Yap=`z>BZsa#ul zGRnYG+RH$7-j$60H2-&!Go#E|f;}x~5ML-X71-SqZ8R4EiBa18qYQj?h}>ZrNW)(7c>GVX&WPPPsNO@lT zI87pi^XU5#I{g66r4`(~`68Bb_!%L_`UUG=-C9utaPlM~9U* zaDAqo<#11sjF|5|oz6i#rqZ?qZ2duqevn{kWeqoO+!6w_`dh^Y)zKy36&o~7ajN-m zE(dfL<0J>$pA0!1&zL=(WXS%WX4u;8!tt88`_gS}Ub+O^vXyLl<#nU=&rncWfzzr? z6Kydp);#W~^SZXv1{=qemc;q8g>X{EQ z|9PK_+=sP0G5+Si@8QOp0X^05*0(Zz?e{ahwwGY_T87X6k^%F*3?F{QLGX@-fBp3k z#_b$;ZfRK0bX;Gv@Xoh${Nvvav3@tk-}>t{+*mcBC%~J3lH+TCkl^+1_yeOE8CI^w z_=Ugh;MJQJtPFVcdXBICyA*%+G(~+S#xMP6bv*iGA0K&z8GHkeehB>GS2O&{y9vzY z6fb@@#sBgzHsJ?3I&T5)x{e2LsbIxhP4LPmfWQ9pHMo+^244St;I{yHK!?A+nP59g z@XF^j+`W@yE!A;j!@_%ip5q_=+gMc&{1BZUwc`5-lMp5=5{@p5{;?^!C;Ts1rN4q zR}`@>HbPgGA(G7kk$3D5d_a#S(8#m>xc?)sbs_?jg_o>)IwaC8F_&YD*cIonc&$Db z*;cQQWVjsNtrR;C6BwEc)A7VX7nsK>m2u7k!XS=ClA_ZaAg-v@j9mvY@mb*r4oDuS zqT0x!=rr4og_>o<;{DTcF?2W24V`c@$u65V*49>GmksOK>`I<%CF9C3=|;}KGf84mLYP@pT|O6zLdqL5BE zvz0CNOrG}`_EtKNlT}o5$|McR;8aUmSy`4&&z#?K?;yv3%@Ro{Hwqh6j-ryWmH;^` zY>@lV#PmJS@G6E>e1^j)g;zJRyu5;Xtv-SS4cC5l#g0_BY=Pn`E|wzY7ck^v4(D=R z=ZOe8q3V+K#|haJCq$+hSXx@a=H?}=tgMI)RzXy%{}4NhD=@x->T(VZxQ;9EK2cH| z1h5SchI4Xw>2U`AEXUEX_XhB1f1csH4^_*8C;%Rlo5Q~ss0cxV2rM0liv+gZ3zOv~ zk2Wt7;Bh`oyvvr5k=LjpOMoCEdWBULm5d+GCvz%cj@)8$Sw|exHb+Tt24QhZxj^R`WEJHoyEeoIggn@^TGvG>wpZ$`9_V+b>?Ou${yD2_FM~NS*li~Jl;HN(0VE5a= zpWI7O+l=s2pR3`e`x@f=z|wk-S6?!b{aDBE{Z4|1Ps^^%F}nQ$+TAV!s;SVzXc@6m zilWO*#1pv$gz!k?xk^`YO?FZ8FmmJ)os>jwm4R13C^(gFL6nvFP%7eSE|7$>&xROS zWz*ofNEY{dbe2^+U~^xYKAI%WK*jzePH947FLAq)~kuv;_d zxYI+--X$viS&Y%Sm6MV~&ofaDDM`LK>jQ(rie6&wvEvRYeIL z;k2nr8#zNY%YtXA#1q%tjGNNFh~xQ$SCvxrQJf0Ij6EQzdZq%_iX&Kb7H1DF3FgUB zD4b;`To}Mn{DJdF$9kd@!D7Rx$_4m@L5Cm2*z5MOvburw%}uPVuE<(A21k=;m*@MXm*Cx+cEy;U#Vfq(SbO}!yjt+lW%2sV>`k6%^V;7yas10 z$18Uobl%MID}R{4UykvGPh0rV3#RyLG`a2*;OqY`LH^MMw+9Bk@onJVUJhqD!3RI8 zHST!W_%J1RGz{uzthD5*IIS7O{rzJ37Ah#|a*FGni}=k!c9`G~D~4hCld|1a!@9 z*TB8kbUb-IM=#2-(u=YAv+7vOUms67r-_b7Z)+Gl&C%{=sBb5zwKRO>u7fpQ!%h(? zwjUVy_MgPqaT2Vo>$rZ+z?Dltd@aWZEF1s)HxvBnPKL|7DK6j2kT7$*l412aa7{Py zZ@!w~+dCv-5!4`tNW@bE`E{@|Mtd}iR{6uX^1`hFj|7Q*#1Sf-Ae zYoP8Ka4lU3k%ZxpyOC)*67mTQeihGr(H&cWI%N+D$)J=$i3?a5bpA{@RMnWX1l^e9KI5RHMHm%H_EF-)auV3mh>y;! zrc@6kUBI1`pTU$A+=%^G0WMFD@eb~sPaaQY^(#d2N`<4mja)h>Qk{y~)Er9<_DwLP zcf#BnWt|a(L1AnY35feWAFfUT2o)$*X>Mf&PMx0F6+;38afT_0E8kV{nzEOSZNhV1 zWX&3~IFt&8mS@BAE$^m`6EkQqZ5Ni~7V1K?U;8{1KdLGs^UC-P$L=w z@@na*um?{P$I|JU&ImVL;^zAU3!aw2Gk~YNy9h~uHUWV~RtaK1T@NvR9mz5a zr_HkDZ)M_<&#=p5o})Z2X#}JIcwWI*Ojx0(+5WAl7$Zj8utDWXsl#-_2VWk-8b>wALMxQFhi;(`0ytU zTw67;{a%K2EyLZrI&jaxPL!izC-~?~F7DmSu+_`Zx}4$eiyE#c8h$4~-aa?{-8l}E zAM8P+s-#jiFqVbL#|T1YotdLbNc7RT#HG1`oiM_uK5xTwbl5E$*Do9B_cd_2>K8nW zhwtR*#VXk^B77Op-2=9sQ$%Tw$8P{n z+JH+~Oe05Q1-P=R;nknka2+Hn8(4KUXyg(&DwyH*KYd(Wf0>1gnc*mc1@Z+P4Yit% zIyo+^p5&_MhLr1=^du=<7By}R#mZpPm)4B9J1Ug8A}B;R>?P3ha@9Y zNCp?((`jV9XDNF#VlfWkbquQ=#b;J|&G5%+27XFVA)F?WE}rik&NDk*Le-c#3jF{^ zmSDAM!?T!)S0|zqS78wi=ZKIfZYH$rxPT5t(p)SlxHn(8o5GQcj?*(d>P#G?k z>UqnnW7Bf69IGA&@|v=%c&;2hwZ^Idj(J3~s0@;OshAdp=!GG|$dV?WB5a~PTa~k8 zjiO_{!1@LeZojyS_4N(a=&!O?$oC?ntoB+3qbik{?84FJv)EnNSRjy*bzv4-%GiC_DT2<;?8{ZfM4n;zQl zX!zQf6XdrN^fL`hZ@GA5JHy%!bNHVCE^la9c?zsv*0JOmc=}q7-DBFy1ywj^H+CU> zM!*~20Dk!!DehCH%E-~U5#tM=*YJg93%Z%ZTTk%0Uoh};rXytkhkA}yT}LpDM{vj> z{;js2;PZdk#LKCsj@8JqRM#=6UO0awA$%ppr@pA+!z~?ptRwb-)s}{wrHv_L?A8l! zgU-3wG5y!7x)6OM9dMh#m1{cs#X__7I`G!L44ojy%H;9sxEDlQ^fUDQ1W`gbkOtpW zbH~lGMzS|O431P~_%Z?h>*8dWi-hnxG7Y(1-m_o`hCMrm8Tvx&STgmc#{a|}4>=tL z|A5#-dgrnzj8Iy08~Zl(N|(mN7CA1?+~l|cbo(j%FdJ5OY+D6Ol5=8UMRln-MV_ia zjab@DvdRk5Bhta93T!ix<||K9$@-KH{)$lsY|}>hGRg@j0_{?pPMO6y6H?wBAq)%_ zxT#WN*wHeqv>Y^D6IP*jK8nA}()#GVg#YmU42-41A*4u^f%5s4#Ms$YC30r@soKH^ zDxET!dROd?2sJHN;yLa)@%^R=A!gCaQ z;Jjn~a*rGT{Dkwc#BRAus49%)-Z5$^zV)SPP*e;@8sCqB|=_9w+#$l$k12? z2A48iX25?V$EP=RXtslmCg7#O(vpVV90>Y3-g^z`((j{RQ_Dg06%+a*)WCCa8>Jr- z1O5X8Z~8GdE}OW#lVR%6562%<0fh&a%Z6o`=_)oHx|N}EEyhp3)WE;{ zza{wQdkLJo5&rUDv9Tha@{EHHubrcDJ;u+x+{CZ{mofhMUIO>!2*3D?HkR{=(ypGP zb~(l;?lkfGuK-{9lNj;!7@z-3IzGN}guDwEj|hkcK;QzGR(0%ja;#himTCnA%m;cq z!0SKE@yq{Rf*-a^l@#T`T3(KuQyy6c9Ib{TFA}yCM9gTiLv{o|qO2&8P!^X9kYs~Z zmWhq}O1?%>>`|F?RzM75Sy<%&G*(thb*3^)P@snPWiuvMIG!fS(c4Ke=rH)PU{D3- zkgC^7#=-VfWQz{jq`2tN@#5bl6PKDr)hL2Lpj;sDK%FXc!3Vm8 zt)(Qkl%2=Rv~iJnFBQAwx(W!bQ0F8eX|`8<#gWCtg{GaT7_C@<-Wt zNkU{MuO|GD0kh2g0H*H2WQA^CV}YDRh38IX4r|^LUfQ@Ma=7Fa9Cm@Fqr&8b;&3P> z8$zoHZEQIn`ay`Deu%(xQBPFo=b@cV+CUW&b%FLY75Z|-_0R?f0V|9#YMO;>&1Kv! z2>1JsUsQ1=DK+|^I!CEgsH0&!2+~9X={_r=x&wo4pBLPoPBMgZDSd-tScF7T+T8WT zz8Gkvet;wlr7Fo_g9>Ss{*KZFHi@m0oi9kw5&#nxWDA@qPGYpX0~neI(;b)AJ(n@X zmWp4`ZIr?yw82KRCY2!)#mVVA^74kkhO#|XJGmbeZ z)bsAQfp7hOhHtzx!qXi2(J724oMqq>Kcx%(Acro&!~Ms=_J9qAro4}PU<#9va91e_mmeCMJ8ThFv0 z<6LYA`N^UjYnOprmWGXw7`Sm&hu^ML5{iaRV@D}|Km47jE$PU^3~QG)yy)oI{HTeW zR}3NYltZw8#d-52$I_aHn=k6{UNZ6WEge>`$XHF`7Rze+=Kg^|Me~`QwADTwp6^Dx%;6V_e z*YCma`%*;_jG_@MN#LTfC&KnY#|jk23Hc_772iq}}axv0*R zMDy|KMiQw;b={{1Y@-gZ;fcdseNA~&XSP5dfdS^PseZI-G|{NlB!k}V_0aDyCrqUX z21|--B#rzi-8``$s)ek8ys#5ERUVj4cZ&Iz_*L~QA(U;}rA*>anXKo6#DML|+cA*T zu)Mq^PLAT-oZ%?utel`>yfkTmM_fl4lybgocF>*RZj8=1(o0vNwnB(2vbg#pZ+`7?>u^hPN$2SYYL8ju8-n`EtS`>&z{aw zxS){G^?E}pnGd^dbh@!*=xuwyI^eO^rUj`; zmZQ8rQAi6I+=p0Q*}zLL-bI6g5Bxj%R-F!ly*8pSM3f{5(^$SUx7FIb43oi0mO+<> zpX~htxVA05b=sXh?C$Ksb2PY4eQb~4cRl;iB`3ePsq5+)Jj;TBVGx#5na>nR8H25| zt9bdEsnSMpRB9TDZ=A2U3DeRaPU;WJ2rlBrRb-6g~^Wa{YYWS;$g{MEz@br;77K@nFMJ8{;4>at4&%y8B4)E81-o+RGmWjQ$G(36${D|Z@ z31&3(_Hy{lg3AY?uDfsYcRC(E)bZ=T)x-b!@2%jKfran>4)ESR4UY#rzJYhY6T_38qMiC0^1cBN*o1v`gkB5 zjC$Qby=97C_atg;_)m%K3Mo@RmBr04NQhLN2DmyhkC_(o8%8PQY5NtcGcob?G2jt9 zZV^(WG6!dYAw4O)L!4O3tP;~{W-zq6IQH!0kYypdZ9*nu*p7}y(?Gpx9=zy^?dHf6 z1!GBiDe^!O?yb5Glcb#rfgICFQ08iyTrJPh?;_24xk^U*y*cgIhkg{upAhsjXYP|>{+W&9e1wF z`#ACW1d2ixF7^#FvD9o~l@gFPRelaj&sVEFWoB97muc&s>!4mEcY|8=iuml3ut+Y~ z$uIY?8yP{0>0~E>V=A*YhP2aBF29x7Rk{P#U--6P2&6d`P0CR)LXfV?l-rFtS`Z zDGkTP8lgs%*X;WO-D5Z7Gqb08%T3M_@RS+mG?P7sfd;>nTHcgEZ3vfCu+;s3SI`!h z8G6GOwL@m|**C{YXY31enziX1#_*~N0W3n?ZSU0ga@2jAF3?;C z*7^l$oPFbZQ$Cb3q0NuKt7GrSI$mq0_}phKw7(T&XQ2K@KbL#t@C4e5DWKV7UPD{HvDwyxw^CnT9CFSFb{%Ro)>IrLGMG-KeVqaj&-4fi{H@cjUuXTx!A;n8Sk zU{CXQ5NAPf#8l!6BMH=~?nSaZgRUbhoTJlJW_x6dLcXU&scnlt9kO4JmB8|51V}7U zuu)aEt7d)$#mq*e5d(u9OO}I8%f>pz9E4n7@HNOFa6BZIEpRF(3>kz`Fhi8)VqbVz z%&O{HD*d*MG=r9As2e5%*AoRSKa3T8^oT0kMcC3zV@d^vyceo^?Y8^4e)BFaUAhFP zP^Oycx`s{vO4}O|$N5=_N*I84JB1$%q)ORr5bkz1$txzLnbf`hY2Y)TGw?s9GGhX4 z-2?v3KaTM2KojvHHh!kZ$Jeq4hwn3Ku3>B2#DD+acJQD5{TBXnNkM@n4cGOKh36l_*}9BjQ9(zO=N{bpLULyiBKm z|KX*ZcOr}7XsU(=Mqb2V^m_JY;Mde?%`^o4@n0p;sN1g`F4E8yyj_*hH2N^*8X1U8 z8QGNUKWMN_$Yw#kURPu`B1tdW^{fm;nTT?xO+)d)j@=8C7UWzOvp6##(_TJB;yj;RCf*`@IYcJr#FTafISFQ-*bTUI*7p5+Sx@fO;B@M&FrQRUOL`2e<6GaiE&kaA_OC zbB0cGQMJnm!^l<8!Qh&|kGS?GnKaL`DY&7X?EcRRs!-i;W`c4Fc{N41=cC^ZaBF!T zFRgE4z0r{Sojiv8YXTceNMv;=9KHI^W7KU2mzymZgC05qUlMu^uXXZutfKZbcYCTF z|Dbd44_g&eq&7iRE5HN{d@ zQGHimOh}Xx&kwq7^m~1HHWNO|i7v0K~-Ab&3V41l^#WqZ?|#YdU`UArthG>OJKE zS3jKMMcu+5{>vQS_+bRAk>JjUGW`6P8u;ly(ed>sOr!&QTN(C#oZ-PE-~luF6VK8j z!KkXkJVu|8gGWViNXDE>sKX;p_FJ2yQROqhE9U7WDz%S9cpQVshuutIHHqmn(ONg* zH3=Ci_y(dr#U?_zlDsXzup~YgK>Fzy&vGpveu4GqB3nG>P5eIP&x1LQZw19s>kFvfxdj}>7;{+X zxHd_AFY0N5C?dVExrVzpZc4DxYBuEAo&F)0#9Rgp6YVuCyp9qcWSeXpSd*ae!Pb^2 z1rd@_6pV(~^DK_6aP*Qe#hP2k)y5KG2c12sq%bpX*~OZ8 z4t~?T#WN%o9A&*gqmO5>_Z2NMTOu&~;}N(Y-QGRSLp zdsu0DFwda-I1}mJ9iY2CtsbtfcjwXgzXu&)Py6UiNs0b2=il7Nh=WP-JuNCAy19`dU=6Lm6qNtvlB zd_%r$&`Gg%FGhFEK+UPcwcSxMsW@h}QdS*{6Le_uxwACQY}9tACyTkItB&7v2q}Tf z%~CZoRN@4(ZWIJ^$~|_21l#=>{X~ab^Hcz9=-@t3`rRsHda?IAkF{y!q%n(?qSGDV z^4bPI_~MJWefKi#n*xXyK^Hyp`Yil?^!^?8(8t9&{3S+216m zL@B#LA3}gWWXx-yJ4v814y8)b?fO`CYIt??Dz3Da(4Zn*83`N!qbbAOQMg;yxhvV` zO7P2ojoscY-4K}cz>h`5z@FO7?b#WuP!i5(rfgumgga{+SgzG%{^%o67Fep~0;^&Y zst7!as)qz3SqdXDU>aqWgMD)poQj_kVOJ$Ym-9$CRuHm_IboQUEX*9%rn6iNrY2~G z#7#(Kghp!_FW$L}rKOf6F!v4iBO}CYs455;se+!#{8nsk1hG<86RC2L3+sA{FVgFv z-40N9Ot`l4U7qEUMi7CbhwMQ9^BQh{N~zxvrSa$gF2Rp|s%z$OTM4eLx(MIVu(Ow* z?bkf?p9+$d~lsP$Z)~V9K5nx>dy&Le(<(U3Qk% zrB?#ggO2KfaNIGE(q8%SkhB*@3EJ#BjsV_rj@mLIXsiMi(3A;}Rv`33KpUw|NOM4G zuu%pU%6XQlE`qWW&#Wc6sH6#A-c^!^<%dj2TF}oB`vy#}?9M)Nu+;<{F+WG#_jwFv zfyomnwc>*?kktR*$T#U(& z&ST6g16YOYRITwBA+(h@9Ujb};wR#gZlBK={uzW5@aq3(IO zytam|P8;2BABIM!h{+0du9>cV!G=iTQq?BcM1GYpAgWXygfv&5lOp(*$+BuTz6>s8 z-U$CIAVDc1RdiOk&KU-Bt|c+E^ojso5$2oAJ~zu=U$v!!st~g&1F7b+wr60o(Uc02 z>ZMaEpv`g@l`=;W^s4FxXO_K>6qln;j*?eHCl0aK?!wgTut+F>hP^%Eo+T+Pm?ELP zQm-q)0&QfUy#KQIMrnnrf-c=;o@nth6Ac^F6GDuGQ)i@CNKDp);Uy z1>rDC^j9m$#b+`D(f7b$W8R<5KK_R4!^AJsw3Q5QA%8AsE?>^IHc4Rm0rU#bm2+lf zsy`V64z^npk(eUcBCvlECE*+!uuMyi&)2h2DoOZ+S6SlCKD#4JG(394z#n`y$IYuL zY9hr9bhb78=ueWOv7d%`VBmY-0Me}#kGlD6Ym@w^Oj4_H5uwPw5cF(tgo-CoJ`jhU z;?M|vf%Ltn%HI|d`{Xt9rG!!WVTfKdKxRa!w}AR8)q4)OqjFv2yba41#oQ>c-pEH` z{|-vDN@YV4z7=-2=)xT{P$BH7%o-HGuNYw2U3}gF$GiqJ8bK5ZtRzSWu$wuS)=k*8 zN=0LGR3K9VFD-)!A=4LgK_WE&qt-N8;76)A#gsGX2r}fHzd}hvK7%SXq-Yo^>Qu*^ zzXP9#bIe+cpn+*%WvMPs7_)B!zmJ|D$_4sN(6LFS$xT(+8XZ11CwkgX&`UI!whPyD zCF{<4ILTZbHqLr&5~SFSYm@ZcAgm-xu+nT|ZFvQ*=czs;BsQ1n8|(|%t|XK&?vH}s{6PpFqsIdZwet*CM#0&+~+2)ao=kvzMphWWYCnv$&eqw z29su`(sRTG7uPUqE~_@MQ4lPh*(;sfYqo>cEJKh)*zI-Uvihz=dLPv~gWW$}B&BX476uTk9H}%!N^_qf3=ZlJJ8V zX5D(Gd%$qSp@HvyJ;!&2hCXGmS>UdTZ+>-TYqN~1Egj{9FNQ4cJQm}Lh@E2`0r%`e z0}k7bx%iM&y4UMLV`XDWgVP|1ae~lSIY#zuLsEu+zIdjNAI7Qk2v_mkWae_{7fI-xUyPTuGOemUi z$_}e4Nx)X#(+HO_f=2N>D?i2G2~}gos7Oeu00YHmL9qZKJ{08qRCPjUr*}%C%7Qvq z5Bul|uYNw-DV;=dE=a7E$^?Uk8UouEjChzPcy}j+mZzmEvl@J^bsMJR3bvNc+d-9$ zF)qsm+S6&*CRN#CwK5RJo)6!-i!EtFz3SwNWz2!acd-2K7qqrN1%wHNN zxU;f}TWjlZO-te5XSvqO*W~k9R)foARH;@as%ccV}(w)BC7b|dfHA_F|wdpJd zGv@<8M7uM<<=PT%tgKI3Nj*komE^TgNb9GGu1qn8y1Xd70XCH*(q6w!m;#etpRR-M> zhx@0l_7{OyNwZ#t9}1C>=cWXA(g4_U;M)$idmi3t@1mDysC%Z^>a?Wqd5=Z#n+^&( zCfBC(j6KZrWV7#kcsQyzy(orq)Zg;sEu5TVX3_?Mk9s|a+hEt_(#a_tUm-FVnWnPp zKpsX6=nNF5ovnoTuu8&`uXuQw%C_(cE?`E&WsuI$sw|vRS~!8IVYOC))Tcf;l@c^5 zD_8GlXdcD)i>Q7m2QQJ#Zjc37Zn^@as=^kgU00cKI_R29+b7RM9GNouCrpj+DZ0PQ z97{t%g;|sNi*xyReMw2>C252>R??Bx>pt@7I>qC+@AH|HlSngiEXuLE(yWgq>;8a! zPMFP7*}CCt3A3m>a9vjg8%338YO=Eus9f}Oe%!Tb%!Z20We`S)qYN)xzKk2!uAx@1 ztLnz2GSC!v?JEH@h1W!K#xMi`}_*)hRzsAG4?vryjX z*cx|+j-u*vpNO9R3*Hj0w3ekCws3^X{J?=t!YXGS&S6FEtIWz5eI)286E-93DKXIO z2jfz@GC|MpBM6D9SJmBlB;Q8 z;w{yR5oNQ7Bz#?mXIoN{>IIJ3wz`mENbc@AEd?92TCt>sNzZ7mDOhXIFr z=8ir_StHsXsf|L9VhdK!a`C`3Xd}-i9w@T4?Z&9r3xvU8=c=qtqomKpt*1;zF=(S` z%0|73%~~C16pI9`5k;_ke+)i#*kDf+Yf=nHpaWCzjwFtI9%_bxcXzfBNCQSD4H&ds zET?GF_7@2;qD@(wN+0yx`f$waTnEY*9x{g2TU`7YGn9i~bJX99|CIN|Xgy`0jGQ=7 z<)97kR+_}9Pn*>SJ;IKa35ej593{hJO z`l)p2=8Nj8HYoOf^j$vz3Y@@FM@s0*C?1S)*RC>uvW99PNQ0!*R3tXl23uzA`JLEvKg>|0l(sY=n!hc{ zb<#ZgBxi9Ch40uJMuBd*i480++AinNiz9*`6LB#ITlo_tb zWS2gxf1u!`e8vP0o}KBrMa+P3$Sj5*(Z|wZUm&#aqW8M|g!`O! zo+?$^899nmk9$(){2VhN2c3N)v3a`V7iB?a0Cqb)gn5A4vIeiI7Z996ajNuAIW273 zM>;_flZc~R!Y-=UIhnv>=DiF`ipFZpDGWaaW~qY=gIV~ikznAuXwpq zAWm}$)OH`mc=B$D$fx?3ib|4*eN$}dgwDoTgyNRPr+KVBlaI@Zj(Ni8rzq}7P(i1L z+;VrKk>W7$D6?~%;|19er*=J_+uBs9`V`vm0%bYYgEMOQSFOFP4E;!@N@bOc>@t1h9h<8w*y(l=GRsU*L(_%L#pSRm82+d7?~7WCi+e9C5+mf}5QuX4`^)O)@UlkI zxO5sbk<%n}R6$ng=%pDQ%3NjXEej1oGvX9`dmUJ-HJG|J+h;g;TdKV8n894x2zFY} zjj>}*es0CT%fNSJkJUu|c<`&f6E?{Thl{mZ1KlJ{q3f%YC5w_t_k_>2p6uz^BYQt7!)N%{XYeHIOb%<;70B3v0P1s+IdraKL>n!raPf zq=J~iWQX}Zd{Z>@E-v|5L{Kovni#ZO#xrh^X zf*YRehkD4lOa8=ZKMpE~#Bq$iNZ|Hhda3k@aB6fUO1QwtD6%5p;P)XhnSU#t|H@oa zB6s-Da$_i*J?Zliq=@~A-I!#feukX~DcX;VUlhk`)IB&}O*RTiNGw2#s#Nt7qP^co znEP;>Ky$?uD3kCkimVYwHO3e-zcS?@gwEo}k~}^2i@K5s?F0dq+!|VLA;VV$9)~(F714_^r@9C_#F0*m3d)en zF}eqypAaMpB(V8vlDNnSP1DZPmiE7I)*wVs{eEw_GVg?*DMARp_;gi6% zPCBMJidCO~xPTpS`HClzqSN=$>GxnYG9iic;UwWnmO3WYnSCpIV#p$2^xBY(QY+Mw z3I}4yCE$?8bmhs^g~>lz5lC|EKBQ9|sZQc!_h3o}V5#K|e;u2&VzqE{S7Gjy4y5O6hQ@ZueE`+hGt^@?(Y*SjEure#?o0#Nc7v>9zl-Raps`zM8gj2%NA=wSO;JlXFvS(_yA zG7YpEo@6G!^P?Y%_I{(@z}k!f$G8($p1Jb-LM5mAIu(Rx@WV(NUOm~~!5|DphSzaz zA#QScVTJN6KZkkP67R28bL1Y|VSpbzeklBumV0^sxytuU6SOEI`yt`J{3_*eD-K>M z0WbU;W|V^f?Jz`c7--b%$aD*FTEb~AZl9a!*yI7&CYG9Ygh7NKJ$)?PvY)znTNJoX zGxqo47_X{JFC_9`f&g2C9wPE$>UG!-ZBUo}>^KSLd9F=|{(WNb-s&|^?C!~+3;ppU zkxgzo?(F9+A-q%k&QSnYl_ysHJfbAQAPTWJ7@(U(?7)gz%|))6f-;!wV^<9hkHfp2 z$J`z?cu%fvVYyXD6vTLEZ%b_BBUi5-|6oPwH9xc}OCouWK@?%nAE3t|I|#8o=wpy2 zs8h7Va*$*i^FSvqavWt#3qQ2k)~4gy(&7ai$1v=R3OZ&z+hoFGlBamsvC0e);SW@h zk^T|=6p^0}du>cQ$FgXZkdzWXTHW}n74ON_t&$z3!#vmnl7XwL6_vMB<;HS6)TFUi z+1*slDY+44C+KN2eEyGLfn7HYq`8imy&U>q2^6gIo z7NvCJ;s-#`wvYzn&ZBhPbzFGVxi^hrU?GqY(fOYaN86YDn*95WP`}ABcF2VY5~q*J zOS_Pze9mhVAx@5C3ODQN&JG@LZzBi;Ni>ve)HE)~WM7pcOQux9;s^se z$lV^c+Z}AT+vta(lqg+RIvfjTxwf3Zp7ImmdQY3&ql7D5VAtN%&9EN3!Xar?lr#X3x z!Z(<9UF;VG*w`L)#RmIPBsN&xc1Le0LyPf)DB0JF{gnYoA)l^#rKnEiVH~4J8}tWa zg99p#P~pp^@P;GmfJgc`XJk)@9^!!CbAR?+P5PL0IzIYN2wS8tM}E*O`$5Ug5_PJv zpUbZ9xg>SiwY?qq*y{DLI~br7h6tHzu`TgyEK5O9FLG!Xxz}mO{G1D)=e$PIK5h=< zBqX{Md?2R@I*#3dP&@hcbKz*zTrvLLZWn%Eb<&(X?&#-n2$baFrlm{{xQ-F_m)(b5 z)NA#EpgwvH9d#0{NbptK-<8s!Qq~=hV=5ILsR-bB<1}{6YxRg_)qqZ)5}*SqqfTDi z_-8b_$YDFniNNf@^OZrLIFqdS)ZjMl5n)>!EwFTyRM+isLib^r(bEP5lNFI^!SEt( z>Id1xd0Rq@hDJG8?9*E#}WF2 z0owgO+TE@wQ*C#;==2A07-;azW-~igT{{X6G)!3FaCPQH zX7I}gFa>+G#PXyPuE=T|p^L-U7yqeRwghBl&l2g88* zEXh-`ilAwZB6VlF$g>I}?F{FS!!#^7wg-<{<7p5x!d4Ec2F=x$rhG2t=TXIvF7l>6 z_1e$zn$Hf3sXBm@12ymm_||v7C(qsL@)BOWejV2?T^c&WiZD9LzKw{fm4*k!M#cUL zK@zRjtKa26Ld+)$9Osv-G(wBo>t%t9bWXc4A zZSr^pzEgtT!qH=}wmay{{IRORN(U9cY|m8zuVak@-V*vd+>fyEgEm$79At5ZxA(Th zRv4_&247s?7_+k~%yDc~xLAB49cWgY)Eug+P-%m7$P-QwpJC6DU_;s9**eQ7@|)Bf z4}FdJ9F_^sv(ZZ;{Mo&C<+v zvOxxHoLlzjuskMRT!D6#{h!LF#}_%uN8miKLp$-w^7DsOo!CJZm7FtWq+$XMHWqco8C1X6&jLHe5W9Icdjn5Kk3sOnjb3Q7NKh5XE#P zaOOj0T`Bd-&u?<^DhcNEcg%(v#uMg7-WKq^<;Ms?Oso2kJ&tO z4k(dZ$`MaO`O0L%L2J{#dl~-cdu9Kvz0??E64c zFQrS%&o--8h1hjioRnAytaOeE{b6Q#$M0h|@CBMdk}JC+lXO2O=X}_Op2BmO%RYC& zGs9n5g$?%l0bbjAEKu6bdP|(%ULzRJ6{{Vq^|~|%oF+aj{J5MpsGK}zk#`HMJgY)G zGMBNejh^G6(QL@)!^BouT^oY{FW{JF=iDpnH3z;Q;c>5ncfuXiEE~O;HaL2)=*TX) zp4ege`?8Wz4pxPfqa2G3w+Z_Rd~~Bwg0`K|mw6`Vs?N;3Q`#T{$D^n1w28c<>}kpy zj(iCZLp~AUhz)-4=>uU>T^>-rTf?&J$&2WUu;Q`o)ueh|I=FqD zf97m(%PRHKq~R>adO5R@|}TAdaff8aO=V&+Wtbj<5G(OPkiYg5_SvmZp#6GPWc)X4R5 zoKbT`&&6jx_EB8f+*F;yMQuuv_Og_HT_Ozn19ZC`>~*`i|Kus&d-MqHUSFK(jCUgy z67oxJfg6_afx~31&(fCU+nnY&juZH7!WPCzQw>(Gp{9?x2y~Wjtghk3we^D3TlOQz z5PrsNC>;|*f9NPb>a_8s*A;jMMJ9BM-Pn~fk*aK%m8|H|_p2@NK1VyEm_Tn3BBl*y zI$Q?21u2DV8H2TtTzLTiyFf(08;wTMU!%N6;^XP$r3yL~QieRl!)_Z7JA3fs2$@9J zgdUNnp~12(1*IzH@34k-r@gmXMn1#3RGdbApYnckrPxR@h*D%JTQceJM9D=B$1rhs zV-q)5Rt4@?9!G3Ypl7MT*-9HEnVB}Y)9)c=K+NZticW+*Tc!jZ4wD8&b?B(d#t5df zn0}LLh8jyFL$N_V!}(|<92s|C);f-HC%k+LpQLt z)|7^_R9YnmxeTWHRo=gFZ3?TTU`2WD^82iW2IokU3`tBSz!>Zmf8ucwm5r0&UC%mr zn`It^qK{&`f8<``_8W*mME1>tC7RX!8v{}5;DJQ4wmlA+l*=3!6gRFOQ-wMo=k z=sd6rm*nXC5q9==;QORAs%s(Cs^-)aqz7YD0WH9pn&o=a6DVqlSFXcZ8R zNv;O7%5+wkou|XH?f21+S!L4TIUX8KW(?Q{{w0w5D{hrKWm)CUs+9NGkr zgK#}Qznnt`Z?wVPC=ln>F&#APtO_Y^Wyw1oB00``%rV$F=~#$_|1pO4rO$sV#|bMO zvpS+@^03VK0bkU_&TX7Dvo^y$4XQbZ}GfQt+=`76Fs0;`@ouR6|jO^69M44FUnMiIwEpg)Gl zjh12$BUP(sZ*7_?5j@N=Dx2dxg$XMcsxK5txIu4#G*SD#Hl<3;`BRxo!hQ%@X~^6W zMnxeMA?8*Zo6gM!&v>63{xHMZ#FuftsQyJh6?@#o#WPI%i-T~w4Hg`{(gvvtN&6$m zKvmXM?;gh{$y%vIO5pY!?sLipGkK1ggyC~6bDG2m`#zF5R_8tB8Rq0r(4p3B4#g1& z;j^uA`T2b|c)|PJiTx&=-9C5N@z1rwQ8tn~?pU-1c(TJ{^>^noF6z8f#<5UabAD(} zIu_ENCg<`zKhrT;s>QdZqwMMZVoOrVH0V$;V-Hw_Q5I@HS{@_F*|2KLX+_4_kWM)Q zA+qfu>_?!Hg_A7AX8rkHn|P%R2n^ehAj`^B0K$MHG)OF^1D)-Y{4S4PcE_QUOs)%| zXQgtI1Rmwj$GPYQT$}ctrE*?XO{asaY|xQ_P4Qc3gJGlz*Qk1_}SNDhO*Prd|ZcX zQ|{Xq;fSNeBNXIEm(Rell(VA#a2#mhF{?P|Ij6IbdCTCfw87kfXEzb0Y&>`LAw)cb zSowmdA)iITZ5v+3Gh$08fq0hHFV%!kajvLd*r>abwP)q+&~p}wOq@I0D%6u^eTJWt zeXgMX6#NRxU0c#Lmunzx@UY8KLVkR9DY07#GR}Y)eq4wAq9MaLYi`IH4Re&wIA_P; zc^L;`YR_>op0`1rHXHpDTbi#uy`ODKj-d{OXK_?Xs-hl8-T*W9GfZ)bQ7$1=^Rgv8 zL-sUA@|C_PrevJ$S>~^Fx+fK=o>5ym$tbh2@=fNC&=gT*o#|s4v%&Z2+BEhIYf89* zHZ{{TTsqxzlu&>6ZIBQ>^0ubUh{C0fRo@E!=CLcg&)8n4se@qdV?lxq4pa5Beg2^# z7ctIbF+S>{DY2#H1s!G1=c+S*lJP#Zr@7ctnKnA;&*f_l{rmVu9cC>*v8DY(pcKd1 zIL}Dt@znNoge}QS%GVwAw-c;Qr2{w84mx_An-xAIYf~9O%sdMDQtgb_rXz)4=D0SU z#<3Ib#W9^_POcs+d245M+6jd}t2CQa&$Znmzr*mgYCgS$sdt=1*+t?8p0MZF)cMb92c|PZ{|!ZRvR& z2inv7WdhD&ykG1|+hjJ*!`XGUgotny${Uk`Cpq(X-{*prG5W+j>iJ5 zO@~$|pOdxeCu2V2B)zZCY#d4$JBKlAIaWIg(>Lus)$^PL>srAi9w)1DSaX_vr+AK@ ztpo3a&iXkis+^TA$@}JDOXYD6n~%w?<#Fukc^OBN51*5@>BJcPldetA9$IQH<9Xia zn>dr3;ZhDc{rm8I+G=~>Ge~Z@b z`Jlo1JE#xLJm>H{_PG;P#!k65mG`pfHaKQa3%1W4cOBffHmQTmda|GFa|<$_iGX8Y ziS4YK)Xe>bXAh4#i)zJjui{yK)XvhLF5H&R$)3tn9EcJ*=6RlHTVl6oKZwxl`-s!= zu3?6*qvpD3HoU2lr5A2b3$Qjxr{Xw8ZxCP*1Y>_=4%2mPG-@s!$Ey7P*&JuJHqi$A zeu!>wfOIVCU}tOtb(ojj_1IZ_}{xI*egU z=jxk}ajxgomgwk3Q35{*;YR`DBvo0yj9YFl4aM>-6Gz3dO_|ThX}C~(n$t5PaGt`D zj&nPFPm-hvf)GLIBM3v}S(zzS*A>UHbatlwSf-(Ttmo98PBIu^L}7v;2oS^p(li^J zLzCU?kc-o2TP6(EqI{ukY4X^|JHYYRCI-B;J)brhM8iydmS^HH(?(50ho?F6z1o%i zxlXRlc$>7jFp3a_fjq}*?$kQSVX`A7`|KDxEZdas?2EoOsW+eS{MusJ$2`X*47)na z@`HXRZ|Hs4*JI{jW9%7F`sS0SJsE7CW@A3Izr%u$qZZ?Go~Ei8&2bLT>!CkvjNeZ+ zD_J~l#j)u?Gt1ZR4v;39WS5tk9_lss)L9$3hG$G}@Gx7-i;Z@#(}U&Yc=2WvmZc+( zGemJJUtySFFi7xpr;XL+25PReKX`i%*QQw?mn_TB9|Q>F5UVRT?k+bF#hEyOGJg!_ z{0!Z}K&nSe4G)fOJ(u=$lEFFPTPLdExqL!RYG(_FIhSr*~ahKp9Si6}~k&v6)~@Pib4-JaMWD;*5n7G;#Mq>D;2 z^Soi4NOjHiG<@Xd8j^%_mm!W)gc8ir1_NyEC0JQ%pyt@;vZtPAZ93g~^JjK#IlRx8gY^!2-V-%Ih78M>)MMm2glgdC4-!%QtDn z@O0b9?p_36<}Vi;B;0Qi_wM|h_aAYXqZqcGB_r(Y1=!kRA}faP2U7XqzI#~EaVBfi zv$*jr&=~F9P> z#~8CN#FG6?GWb!9oq>-?0w^7=JV!$V?851#oiITWB?)$e0O^W@+O<_c2jXoXgU5Yj zy;N+C+4+l~fyH@_Rk=Qg>l(OvrGcxL>yk00!`B}~c(UcA*&qkO$J_69(dlO}3`6Wm zdrsEdeeczd_g>nbVd_|2adGG75|WhU=UkkcO9tsHoH0l;^-&~e| z%Q~23l5}Cf+pPO|^tg|E4+jXN3@)p^M|{4g^_#}t`;!mr%!bKGF7HbG-HL9)d6vhtIZ&XTJFL<)otu$r~HT=5VM3kXOK< zt<|y>41&*LoJu7!<5vc$bdWET=P}|`*`faaTh7KuQJv(R+f^H66*tKR;zvFf=a1iC zdow{A0b!Dh{TYUO_dMu%x6HA2+a?S*r7IFU6L_c~$XE}s! zCa9M-s4d<;cb=nk?71!4mX2oA5{`zdu4iCTJWUjzgH_76-|HY|1tiJgSeneAb{=cf z0{C;!>v-mCeHZoc3`c>%n`_WoH2{GhB4_TK%381;oJ~+oBDvg}QP{g)a@Zep)2hED%csY9AE|R$Tlr<9Ea@h48 zj-wp(*blJN;rwZ6z&%;eagH*3C5(!djcyWSU<1vU)?s=kqIL-X&0X|5A+jVxt^sY| zN6aj9-A3!hRd`pLj4&{`-$r<^11B?JIF2~VhLOT_j5CK2F7n|0k$XVM9qozPR%t*hxE8uxjy zr&&f-g1NLo&L5x4Jl98aC|@c|FY{PD%lw~8T5(^EQKt>gnS_6uao%gM*kGIpERsKq z?NPA6C~XkR2KhH3k!MPkE=kerN6_jP97_p7JnOdfejeuY07|-W$E655&hqfGgiT^J zI4YXe3PzPFs8qj?R107_bXwE{uNgVg@=`SoCX?B&J|y{QIx*1!+I>wP_Ew`d<}e=_ zY@G2toMx12BKs1p8Z%F$Yvz3uBGo2TDjq<0Vwg@2)1>p5!sH@Zyw5N-n64%;4=$dX zmLt|9wEeC)nyqFHj%A)`gFcS{me)A&BkaW?k|i7U8!fmSbp%^|`1jk$2dQiXJ@S0G zVP0B->zXiY7MzU+%$kj)A0Z>@FN}~S%$6pw3>`UKI95&0Bfj1=!u^qxu(GWXhH5i5sW5{27|Lk+3jz*$x-xq<0g!=&Jp=yIg zuv^YyR-B7A$fT8JP{GQDr7L*fvusZ%siX|o$xdG>Q$fLM$F8k9kNL=Uqu7UKXkvpV z`F#tto}Hy~RdsM(3z*dE`RMcr@20O&u|br!r(RnIB*H@?ybl z>3QTU9(S0k1o-SK3@yx-hWP=&a(}Ky%_x-y=qN(2_%va3BWTw%!_ABT*ShH++Do|2{sIp z>1~+03bL5R>J0|y2VG=(gu1K4wAKB1O=C2FQ*P0)Gzm_6TYYo`g*VrrG}%v7>6p_Z zG!42SBvJ-fQG|XR!Ch%#>E%nvNZ{Lfg5KLZ@H88`Yauo@=q(40TkEh|E_4&HYATS@ z3=LMphOy)z4PvB75o;NYB!b;nn}cl`LQvgDK7B^*X_k?fdh-DZxCxS6gX6mJTn~nB z46~!M!4{3!7_@RYBr7am%Is+}k0-mBIor|^8~eOAbnZ>Oe`bgY?a>X2GI+2Z zTm8Lo^u{vFIba$lY}-MaGNT$xwO5H|D7oSH%TU}bDknwo!xU+*%ly?mSJtCyhF;mA zg7xuJwjCE{5GkU07zxCd+lW-X&)c3Zf~#3v59fqIM&FMVyv%aoxh`zetW+x}ZIB5n z3zp>|4V8l0AdH}MKV2{a`C0Q|#Rf$VoKm$nI59Cq8wnYgc9(JSa5zF1kca`x2Z!nGx*&;!p8}&Tv~l7*%X8Z>)+0Bsb^n-7fs757SLydHSdfUd|sAGlwwP zc+AE+5KysXZ%@v*(rUn%Q6BNE?P=^p2d%!`1jy@%2XN|5crUELySxO$RgPYH^Rh>;0> zopukJ;o$1E8)!BgSX(i$vSJHIC@bcVIB$VaNtMw+v)RJ6E6WHXW=KQq?mU$Y>*e*O z{T+;-5qsh|Np*ufKC1sTn#;I#`!Z}>!?hPI3Esp86GB~-4JP9Fu>qis%a<;rwWQ1b z(`oNux7`PFPpY=hsy&_L+;n!I>~vw-9&X;eBeLI@HcT{Iwt8l1gPcRopFG3d8w@Nh zE#n2OB8-3_7+|lnC;QOV%@w?#{3hC9r_Uyd8ComrSX*01qo(8X6-#W5e-|4}G9?1R zIm|Ul7+kt^1nw)i z5d`QC`pAp`x*jWsw`gv~vZS94knAO3E>Mmeaio_$ySP}RuC`si?yeH;~>Ft-j}1p zT&dYx1?)P)95y9l@Yu$MeIt97aVM7smToe;UE!+c>y&cV#!PR~ax z$>4dcm>DO2ZWlqIVU|(yFu0L6O$#e4t6~GZ{)bP1-L~3{(^Q8aXlQqG^alolC=~*) z=K@+p_=cu>B(U<75?-aqle3I-wWTxI&_xj~PGK85>h&g;mzUwVK&KD9@lKgp))6H- zI-Lx?9+NJKK!RA=g-#N0DxZO_(+<^IDER{I*|MjT45?yLbcAz_tIyUQglqe ziStM96|0e~uC1)BfEpxWqTwyhAM%k6_JK|pVuKVX;hb|GqexZSm=FwTn}r~Ww#dOo z)t;W?eeSqpdfN3_3_6ZE7X996aKzqHcC{CF;Wnu$uS4TvMQ4{QR<0rJN9cA!q!A%J zIht#lf>BioYJ4eQU#@cUeu-T6oma~lbP#J!zDJIjivjy|oa$yS#-7S%VY{6+j9LPx z4v~1|+$flthAhd^-{~Upl><{>2E00CQyI%L=+!w?^H;^=m!pVH#KDnrG8Ifxz{#aR zvJgWNZ8MR-O}M7BqpNEUFP=X;D|OUfSVH6GDy*i9oY|)+k@;h#BTq8~Py6V;xrN5f z6g z1RgvghPkLD3D1MD7XvZ-y~L^Xn#gsM%u~rQGxJ9qiW5R87jyAClMTI?KQ2}5I!vdT zj>}FvN2gc5rr=!#I>NvbVk(=iL8CfGC~#C}NYm6n#DGnzNE4@7%qgAY(4=xEHV8Vz zz`GBXJgLl|IMpV6pEj5vp|K%_ro|GlvDzu}x!emle+NKH=QXA(QJwLq-j1BNSewfK zv2tb!)X|Yj#@0?QNrO`Ti^;0NKtmMSNMgdDIe%12Q$O?XbgCKj(w-&X_Y4}{u`jv8 zH8lyXE!M%_0C?;ED5|6lMxlWqFx4|$*dRcnz9O1S;9IPNx}_2avtGh^S2o7%>ABwL zjyKHr+YLW6qrfxL;SjR2W5BKv?nH;VaCW64!T+Z4+o@y$ly<*9jTx|gbt-gqc-L3pU24jN(Gm78wP3gw>}5~B z`1@e1hu~2M_G%5y7uSVvK)#3YHnHW?shkqpqnPF1_KqstOy0l;cpM9wJR6U zsJW-Qfs0hjIo2quiFVQTnpaGxO|ipEp@&2qV`k#%*pYjXG8jw}dH#oj2Pb$I&w~SV z*4aZgD>Z3PmQ}!imD5pntYpnX#u64Bi)mUdtLa zC8g6`4$0ytngqU_KN8E+G?w|J^UV1z*Rmmv@Hwh%XfyB{xF1**8{|AtB%>S>P>9XZ z294rpKGU(-V)YqbXk5>k+TdvZII7REB26X53CMqOvi! zRV06g_PH6y;lT3eIOv$C`&S9#&t%ZCWuRf$Mp4}$TuQ-t3?f-1V-F#yk^DV2ifV`^ zn4Tg#UmR0GE++0JD*}?|^^puBC3(oIU5R&Qrc_h>vFCOakUL#B#967@ z%ShI>B1nE?hROrtoGiidLcPB#`O)IHgt4HAZD3lD1l95Nvjgi1D+Nf!oeR9GSu zgW1yeyBwvexEipibT(!FR0T*yApAZ)f2zt+ox-!8&2#y*%5`kUmvYY#ftIN@s1k$x zoq|a+a8q;0XP6H2^J0T1T1$$(lF#r#HYiC0Mj(ZFfh1uPWrIl^?X$s!8^^GxRlp`XHyyYD%puqq z{(OdxVyQ|a!IW)?Qy2F_^xoQmwd6_w!XTGDI5Ohm!*qNt&;h&UBD=gK%2mRLi8ACd zD;=5y8*wi{@11QV-2fESbafLBv#h!)nN)H?7D$?Yu0uU%DzmH{k_4XTNv598%SgYU z0f%}Ip%+wD3c~yke9dtc=FY8{bcSo|^EMc6{$!kR?8{or zp*%l^UmbFK3*JWQcoa^pR4K~r3m3qIID4fORJ>6#`E(o^c+k0XxM>%9?jdC-i?Uty z7M}H>W9Yb7IMG_As!|ptMYpeflMYT+U*WHovv)O%;>Sf zXn&iyW@5p{46+@<9jCp<|u$|3$Mb$#5wL{H(@V*^-(9 z1q~2Kq~LFGAro$bHXdx0y-8G+Lz+@ZHebuBVpTZa<=-V(nf+P{6xPfh^(?kDFA3*^ zcmTXVtLC6}cXJ3m6PxS?@E>;MJ*}74B-KFdEia)_uZuk@ z1)Nwm(}xcq7qEf|olYD5eot(bj!nH@hvQhKUco}x)7*)@Q?7@B=~A=Y+1fK`OD7#%<7y&h zouk{{#hXzi0ms_vngp?>!%Q3G+WGj=<6+Rdx3?=9dOCQtKe0hu+2C2OO(z}u&Oe81 zlH#{%U}dR}y>5WF-+B|Pt82J>SJ@z+TMP-~13Y~AsBoSWajrRstWYx8WuW3o|C9Gu zDqPku%GeG<>~24i&-nK37qPy+Rs^uz1(Xf?g8)zTr$x{kjM-qT)kLjU6G)qW#x~8=~|2Q^ef}R*M~U9pnj9f=8 z3hY8Q6@eEdVv}@G2!U~ILeX>;q+RfBo@kw&82hS!2W+H#oh1SoYye0HWDifDJ{3pB zmIi9-UCbhv&>z)xTtPRO5v7bN16^r8X%^~0&zLQZk(rO7cq2AwXcB0pNg^5et*tFA zEiJ+Gs1`J`!9l+#xOsVA3$YT~D4o2a4YE1xoNe&5_B6GUJV(cj%RZYPG7-g!4>R<% zK@K)_ErT}72eT`-*j@=&Wz$ot_0?(;;MtZAyOc-Qo;`ayNtHu_Hi3du!7G+(?)Elq zuqAU+`T?{(Rx`Nvl~TD3)(BnWGt6d-j!hm{VT1a`u1yy*@@Jn@ZOZyOx6V zLRND$X@V$tW}~cdRH_#|RzF zs5>IHEJLRx?)Z&T5?2>3R(5*U5p^R`s~SA$z^Z$wU0H!yvxVb9&PKS?lke_Y1I?E% zOEqM0e;2{K+X&N0ESP@4M@%0klaunMgBGOP}H^-!?%OV6F zCwb!u0&@j_46wbuEkP_30p&AH8zh8Eg5Du|LxMpaN1zwBx}=o zk9=_xBC`xrGPlPNLRrL)^w zs~e`MAyuJ2be3(8Fc+0=SLaYaldn-}o~^Ef?-$+y1CGPtK!j6uiJdG0j!OH0a|t@e zuKSn}GzM!=cG}WwgBnO?Ek*MZ=gU!ijq)=gghwQC>4=Piuo70qUL0fBA%R-a^Mo73 zF`3OJeWX19fv+oHd`?a1*Z^^RuZJYhV6N3rdua`|8_S|LCA=RxS`vwku1{T_%HomF z(R+Ivy?1uuU0#N})`a0%^18U=qkn%FX&9q+Z3WKis4F&qX5bb+Xk)88z*?3IRA&D7 zIhxBwaTrTndg+AF$tyF<^7kSbRGXcuI1%^E_*azE3TIi`?i}F=pQk+y&v#DQLnW)p z#0ypC)cRN|1eI4ZD(sdOTFzIlGV{kwqMT-JI;$~{&zBivewFt#exC)wSDe5?oP8eaI^8YF_9}~GIf+roy>Kcm`%%0YsW_?Dg0w|m} zR((qwET7@AwR`LtR)fhFsZeTXBZGU`+9cO)5?-f@|K&ZUv67cQZ}F^r0r$CC$9Vr} zZg8erSVn7$%7`bilC@mS@=mS{LSrUzq!lh?U}>G8ja@%CA=A{P2ZQi~k8@v#JfN17 z;KQFY@WB^teE(l%_|xtEk(|mjs}AD5K_96R07g6vDy&-ZFc!)f!=QtG*@l_<66RCD zf!Hy&Z01*N8p2r+$N6yfvN(&(z_QU_288_#{as>|Y}D%xEM~W7$qJTpd-O{WJ;p5W zXGN$Vgy{4J2-5*_JA$U?Fg+@E83NnUHI+dw=Sb$SB-sy1V6(TXi-1$3{A5L70HVjJm%(g>4Z2vOqY|$#I6hNOk^H zRj6>5%fA$JSURmF#VQrzFp#YtMbo#GRp)^SU-@f-g%#@iyrnWJ$v#xMM=hpj);@SX3b*v*e|Uk73y znH|p2SOPXL>v)$fZTG!`&2AF({Xn2Ube8Q#4wud7=m0VUPlC5(IZITIx(ZzsOmpbc zCxhsB#oZWQ79GMO@EBg_P>tybqZB{8z@iQ^4E8cu8cV?~>F~<{=CDy_!nIRJ97o#| zxfXAG_}OC&=?)wx=m!z@!T@RAfxTRpdo}6AS_V=o zO6?5Lzuy*ahPzgizcFejM}trnt8PITJc_BR8n&xClXI#>Nl6n}Rqe{M*n(jz@w+67 z(Z9bVO#>PCHoQ8VS`E5kNoMFE0_8Aqea5zQmP0aNg#wVF5#CcPR8~|lTfSy|BQ{`~ z7Mjgg!R_e4&@$8<6M3QRb zMiw)uaNy)kxJc36+Y{xbxAWSX>%7SUmCu5TZfSB!^6DsWe(- zip|PI^1~_AHHX-G{-cl&mnLE2I95tuGQrtsQAm*D&QBS*{k0>go-XcQcmu{vm#V1HPkz#S}#t2MZrbqN}RCp`@AwWV7)g9*Lph@C|# z29MhEy>^wquOp+f0JBpJNEn=M_Yidkuo|9JJ=mSR`~XBQmvFxzLfj9ef~46s)%>Zz z<4&8-sy#8FF2ur4Itgbg3UTPEDLEaok{QDB>bSao2@T;BP>;Uyc^Bzr>85QMNG((8 z)LW+FcCmS4nuGZZ;ZIlYOU5(cxSS*rp*pZo$R}bG#SAf%P0|nGgg0?UvchL=gA~megfZ%k7B((j z7PTq)Tg3)dvZ%~Ft8UP)=fdckN}@E*#0E_^>(m#+mW~^|o*0UnWZ3Jl8LER9u3y8( z#s+N5o_L1Ue@YG(tC36`aQ)}Y!Z?wJr}SflXI>oqS+b>>$C%7MeUS_UKSC7eSXo)a z=A|oAx!7-mqxn!lhfxH_hT_LWsmx*7zxXWe>44k9U>CUm{TzSzdWyB{89x5S1RuI< z;K#cuuHDVCv6N%o*0E7H@y-u({JTGo(Yg}jul&4+HJ5D*fH%LD;k!S|5G<#-`yx<( zV&S*GlOor1)GsIa!cV){`c95_cVgW5n1)Y&(1x9B2)n?Kzmel>ZzRaA46po*hE*51 zRM)X$8+iSDIezEQ7eC@KtL4Db+1`6E$2Y&4vH4PhFMbjD%tz~}eGM3BIcn<( zKK*GMS5^$@sfH)-i7`n>=jc*%j|=-7HI#}8l2aj%`ha5HSY zkm094#Ry$mhWUVtWEq|Djd==y9jiuFDS|j z895t{!hdsKIU%a|i>@jvv|X+Hit*9t6^T#jUFeJ#}->4|W4OhsNlHgDYmgy1N zL{{;Pt7da?5RdpQWbUE_13GFA7p=S3aOJZf#QNRqupCcSh*mw7Afb$F;3G4e(3}Kl z0NNhyErQvtBMC$JNeU~BVCrl-IqGu!tc~L)D9U*Z;}pwl4P3c$RWkI-xhqr4syjRF zu4;p3nkd+d*dSG_)Ot8?&iGk4hw~boBL@B4w_8hfT)A=u%gZZLEgGV!il%jD?5c`GAH$eVD~ElR*EnDqKo(bNrop{id!Gn@X<{j$$cFUc)mdKU=}@qHHVe0N`1fNK9oIH zgco5c-^;R7yz&VRx3240s%fY%<+ybjXhb@G^E(Nes|kMYKk%?s(~&nc*ee-czGlG9 zb9DYJfxVvMgP+iGWnGi(d1Euh3#N|f_cFY(o8#I`IX?dd9j(VY{GJA5H;3(I`0y8X zyvXc9M@RdShI>wBVp9!q+r<5y7@JpE4%X1lGc45&Xq_C7c4OSSu?y>Bb;pI&mPyWXYkKz;`_!RI{AJ?&J>F99{PPBX`V==m&b%fm7O>h*Mtjv zR8djl?+s=*BbD(Lg{iXgQOzDoX{mS*t0fkdA5@h_zC`}EKu=Y!Ei3jfI?LUy6iMHL z=hWendoV&~O&*cLwnN2zCUKc@@apXbKOur+L}Zxo+-i1EAAK zC$7S^{y)GT=W&S8PEDhIU^bsLtam_QKM;7$JhSgFEY8>nbV+<5D zO?oGsGKj6t@Of|V2NaqQ93p|u>IJLSOAYaO(~|I9I(zK@Ld1bb$RBx}224GNK@~g4 zLaymW#eV_a<1<)CRpLWQvvTjzpddaaEV4|N9_8q0F>bwV zq7|C>?O#suopy|CuO#^U|EY}+UeVFrWC1M4|fE}2-@f$#nxLnq7O>KQhh9=`gkIUa7uSa~(ZFMQF&2R`oLo8M8# zur%Ou=HVayj}iQh0Dt$FYPkKfiPwIh!KV&?=-{9JHz~SShC5#h@E?D!iJPx!c(|vW z=o$?84@~@{e;%Wq<)|&^LI_{ZE&S$}Gko^KlovYpKq~A4A69erkP{# zR*tvZ89sAO!;+apUyX5hqlwph8DcxZCq80gQ@8MM|N9hwycOfh2V(qh{D_|;)fe}^S3no?l)uTw`2UmFPgX| zfG9Pu%zktSKDzxr{Gg9aqnw@w&obayy7b2=b)|)ep=(I^)&j=G4EadOp~A_i!ljDO zEo0(^zazYe>qw*=VO|P};XbntvcQezF4YNH%MnY3BZn60aB8kJEh{S<(?%74e&DFA zuhU+8=mSwKf@uK@==A#1&?`=SsZvSbhyr#)?u76z^n;H&>?(fLHOpMmp;48NoD(-? zK`xJ1-W(xB!61X*&e7O#q`NAiLnT!2p!++^L5Pm$YDlvbJKJrMoAE9;h1{(wgKQRA zRLmFv*vi;MwJT$?pjHH73L3?~>!}XiC3)O{)o@`g)uiDh`)|aShA4;;JncXyLE1E= zhleOxu|mZv%abnpaRg%k)aX8A@Tq zF^pJ;li8BxW79QzU?A2)BnUC+s!qE}LaCrbh|kBdr*pXf1A~pD_+YGBd>G z^Ac9?UPrCfRKZ4}48%`TptLD7_@SunDRn+Wf)P5)_G%MpoT2|<8$m$n>;gVJaa|`} zo67f|cUH0NvVPQ%N(T1dts}UqQZle0p8S${ii8EfcT39iivvND~cD z@8!79YJ*Iaj$Tj0H~%!ktyfIkGBtSXCft^efY;yAvHdv1V>iJ^Z|k`KG{MU^UEKdV z(6=(I)`4aWEWH4H@`j1lnvO6`@WOQy-|DK0+2eO|Jb09k`N9`zOS24flJ(C8dF`%- zTOTm+`CLP`3w-;_IsVy~V`RjV1vY;FcN1*1bX>cs!S(1BYtWh+S{f@0KoDs7^KT~T zwR6OwhR5w38(t32HSorJK(`lTd+Jq ztknQ}0EBjq+bQoF!D!TGRu0f^RD8DNhS%Cx{)0Y-%0aSw!={il#YgS6;V6z8G)g2K4 zDA59i0qqTZq)6b@6v>+^V-(PmIgp^E_+B*p69=^{?UWvCNkBR(TGA$}9xMY*zT}8% z2|rWvtf$Ix9MXNDig&3gFe+yKglpv4a!lRkYgsk%pwl0|uc80;jzF*&aI{{|rBcGm3e~G(U4#FS z1a(yg^c-dkInT`gYbUlP;eTn1AuA}EQQ{}qIIU5`+T|5oy0ck)<|?Bo(5W<$o-t|h zMdyzJ$Dr@RSux=**|_({eYBtK!qhX=T~+ZojV%>daHeA_RAI&;4hYM*3Eq1s6s) zMWt}5wFE=c(e3WR$Wtse-9r;!7iLT94947<{cB|)6MG^jd7GWfJ3 zk9d|v512w4yp#}Ea^h^DO2L>EPLx6;_w@vXtdrUj{fw1sz^xZ_ywrEl+q3a&|0Kru zcQRz&wAbf?-uand%J5fjy5g5|9W;C4*Ah5-4t>5>`HqpIho2JVfdY|W%$Y;MtH}G@C(0a;6tBq z@#^nt_?Dl;s%QAs4WnTvAN7ym|%|M25Y z$+qjJ4LvjPBSfdV5#q$7Z5?|au++*Vn$&UwZ~Z94-X$Fm1|dH2aSPd|fv0a~c-+Ym ztmkl6fzN)-z=yxYvS$$_41ljCDKhd^F6H?2Cro_lZ<&%rCsx1nILFthjaDXm#unh= z6%~YY9nCs%v#F5xM4gA7bL|vHqPQ6~OBa&1I86oFR>>3)cA?Rq6Q5TgD7hjx3o@Wg z)$yz7URuh%3T&WqJp%1IVD7TXz_@VUrajNcZc2KDZ+}pczI+ewnT@BY_LK#QKq!XN z&1JT(JV`lk%-nMhM7%)Fks^Q>i8_l&@uea;WsfkFT%GuK?B8U8K;v1 z8HSq(zqlDvam+M?BuG7PG*h>fX$MJMcMa!|Y> zNfEUp_>X!>x}lKB(77*_1T?$@DNmSp^eJWd-d z`WP*;EuCgar|UdLl4ZiXAm@MzRdm=Cw6Xm7Rh3Qt$H2Fgd}Z>)V801dGW3)eR`TQ- z!Z=qvgotM?`XrIG^*wcZZSQZ0M-`4Q$wG3-tjPQjonE3XWLo{!O_{C2zCV z7T$Ui;p zVNXlZj}w@NhNYS*oB_FwEJM!h0QZvNqF#9alAU9qq5j52PIw!Y9j}yum20dx&Ib(| ze(YyL8rPvV=_8wqox>;>A}&64ItbE@6o^7i6r^H3g>IyZZ^TLr@0*grqDCVaCnfbe zoC^hK5tSgBPZbr2#g36~M_i74hWS%UCb`TZZP2#)S)V2 zNRWgPqOPwLtHMM$9VDh_OD=jnA88oDVsC)Jlpvb&rAGxF#~stMb3=&M93?76#+5`# z!UJ>-tC!aC>L*{t3pcM#f5QRxRjMg5TWY(uINbCJ2SJR6XNtX_@OiUM9@Q zmtR!=GA$b^GIaV8THNoYG(Xx<_u10|*wRUcpc1ki?Y=L{XjiXYmwY%< zkC**8_{G4D61f?n!8?NgK%?fskxuVeyun9@kIX8t0!<)b^%n5TXH49=uH*4rh5G8A zhP}6SJh%${h1A3A{|4ypQ4LGO!!XAO?*gCvfQjGzaZ&^l8sacN{@OH*I4<6v#sZG= zLd%3Pal=oZqT>JJV-k!1U8Iozcj%Y{d5 zIT}9r83UJ>4ZI_i=F^QhGVsQ`5q|nh9o_8P zwG1EnkcllH(C(!8)eF%e&XG|Jh;=r?v8YT%SW6Lhl*XiBDy)c<4Kk(-!SUzVdz2v9HQ<^gi`RrS zc-k>Fb2IsxiaOe14*`P>*R`>+x`bx4E_2xT`{=g2^5i;hj(Up=(?JJQn?NZKOnEvk zisWZ7faBsYEp4olr-zX03bMH0PO*EBk(-Ov)#kX)_`YKv{kV_us!quDkP>VZW3Sss zCrjYIxF%h|JKui-J2p^vNZ!+7th-o##8F)I>A z+JL>R)djrWrGa#v5Uz2J|#_M{}M%qcS+M*5G zvz7Gs-ShFFFk|;Lhmy0%xb}Q#wuPIo+``Kr{Qx#DZNQw;bgtY~hd)=O>PkMB<=9xi zye4z{^!^rh_x50$OR!D*Ty1GythMK7!r0( z136We1XiWsR@`i*X;-4U1|KHzI+SKUQEBnwBu`n1*dy;}wSkS#egKy~^9mZ5)&vhf zb;#TfLyyt#%3#B@(Yk$E*5JWAkFnS3z_yyOEayV)>8$3KNg6_UJG~I~<}$9|xQV5e zWwD_|&#`C4Lh23E2x$@{4MW6!2t+A1tQK62i4!H!UN*RMy&9I5SEQ%O_VzYxeHpgt z4jV8YI-W84+zKE}o=1}G88D1AEvDPd2vS8^;Zo^KeJA{AxPKRlU#$4Xb`JZr$(P~z z4>?Y*1bDc1l&u)X{>;B80BLrTv!*N1*75M$Hh%5n9sJ$@Qw@JNHL?4)4!^76aiaLR zysu6d`2LRu`1h_f@Wa<=cR75`!q>hW!~KOEfAjy~;eQgFl0WV4YWN@iL4Y?U$tmc^ z<3EBIY)|7A4(Y?7d|5ixd7@$WJ>ZQWW_a;ufjdnT-+9f!*WUE;*}vo9XEF=$1m0}t=uw@sXW~!(C_(*8z`ysua`AJ4 zAs?*Y)A6tV>kvO~Tll@-4e^(M7Wg~=xrM(Sv8%F%C-;DV{f{HOw`b!wzT)FQ{A>;X zi_e&N^j;3^0*?t%neg*1ZhQtGK=L?D!5;>pEjZdJjIp&HO7LMhIvh_m0W8O4FA0fS z1tMAYP|;v#>fvL6k&t*^cE>*KIVw9*`x(;6gjchKEN+<^jPo+c8S8vpoL$!vhzaMA zFl7 z;Aj@~L5AKNTW~M61d_sxF%`jBc?)*>2%h$3E~x}W9tc&c=p~z;qinL2(cS9HTx)TT zhFcS*DpsLH6(P)#_Cg6Z7{KJN2|v!UI|$HBGkA_Y+lD+bU#A(TkrfnYSsE>-uss*c z>&v)wbyMIN2X)6)W>(GCSDtm993@j=RrP)Y+mCh-hM~YRl7cjOB3qJwEMC@>q+~)) zeM3j*OsblR@K);AH_&)t0~R?j)8M1!_hBPcRVgZeA=0Fl33sJ|sNF;FJxz$aboLyJ z^52VTOQ#uJzX+v@iCVa{1n<+g5t|lzbbOH^)J&wgfh^XM2JCwUWUhvsYH7NTn90ak z69J9H)R4qF63Z0mc@}C2_Cg^((^;HzA@@wjlpNkvC>2Tey+MRla|x?!>$3ipRf}n3 z)HHFl?x_mVsH1y{OyGLZXw-%8#-uI%6x*DH3C@3zhy0^I)NudXIikJ&!1UPH@u$D3 z;rqxiXsh4RPi)^e@azB29N(H_-hrb3my%bM6 z2S*(Ikhgze;h%LgxKWII4^*FyG}Q6vbqoLGzfRz6Yq;Oe6%RPo@#HPwD-rPC4-%Al z)i~1d&?jb9$Gz|8_^m;P@2ykHRs}zUF0jogmQ|Fm0{`NEil&pJx5K%}k?IL{+f!sp zxhGnb9Ms_227<^%&yUgTcQNStuxt&rCSZA`8r2c$THYQT{E?iMYiQ76$}|K<4&PL2 zF4+tYl%S7_Y6Br&lq;_KdgFP;`HhkvF?odtokubr(iDgbjfa|RqaP;d^#|zpVzAil z)(ok<*~5*qa=uCsQT|C9CXxuvbwrvG7iGtae(-^drTkF^Ev0NJ7e@NubO@(%+K!=? zbR36ra!5d6nrPNMXn~I1r#=iAsJS)yy-x_3RJc;a?EpzTM0BrQ*OwR#PWMiZXv9S}5C zlL;k!piI`6*?Kz5ig#nXmO!g?!$g!22hN6})NGpFmZqQmgkvmvIsFNw8W*!kWq@R* zfg7K^i_MSSfi1m&DixZ^_w9pJRq)@USXE@{ZBv?BGON&k=LrUWC@O)&&dwrgT53RVR*}RI7b+* z_+11%eMiF+N}o@8tFC2moD3VQCSLzehP{C3mLiE6>DYPzY|)3Eyai3e&O_y^JZrIIb3F9^XRL>o9mioNfR7%dr>}-5oTbk40=QEIw&JmV2R&n#? zTiCq3Aq_Og;8N9V$tPe`1!-~|&#YhtB%H5qtRPD=1U+9WP@YvEJMOHuB(FWi{g3SZ zsC6NqS%F6dY^+AB&SqD22&?M~V8q1Rmo*8&N8KiTK5!gs(OI2zrzKi)x4-?4lP0a7+(+L3~~$TPjDf zElwTNrkqJPdA8z2n)Q))F_IEKe2kJUDycXMItng_o(a5?aAm^O$iWQ@5f)#JS<`3PQB&ciT@8y{)eo!uuUoJ7=%(WpOcaPhV+ z6U(hSVo^k5CMrf|)9fPH>A`Gyuv#@yDzKO8&~EAy z#3ezb1P-WnV--QNsL@%_ttQMmf$~7wWwT2SA($D=C14b;2XXauC*lmjZeQllZ8U{o zsG36^Z_Hw*^M2e}*$9GIoMoq3$JG~K!0iv*#_Gmup@cO3jAO*eN{+7N8I_wYAw{-h zV|jfENu1!ly$%Lxilk8!NZ|>TAx}*noM}VLk5}DbV#Hc)!o9Hxr&SlHqFSJwT&h)d zqr9FG^g`elR8-^p<%{AHTvH7g#FJA&Eg-Q!gB3)mGXOpysy)ftbY7$C+_19Yvu_F4 z`HdEqKmH=tK6VGSwWR`*cEqTrh^tlLO3=Z8t#)NicwYV8`|$k~X_Gv#)6K(d&e7q` z=}xtc7ritBA=)PhYYw~@FJtwScd>l;sx&?%pD52&g@b_yzq7B91Qq4)*w{2y!G#Jo zl+>^UBdmf9BG|1O>}Cy*pX?#%1c)eJz{aTy7HAxWYS0dl!KGM%p<7s8T@h6;;a^o2 zsHr|tX?x{*IFuM>QnpAMNa9sTUcjtOle`d1i2c2Oh*sT(Q3#xr&t-nju-eJ<9VoXw zQ90@F>iF}o0I%QA5EebLo>w1yEZ~?G*0RVqwP*#VX$zs?9K#6hejh>R!&}Kw7k-BZ zx1qxz34GY`ng`I8zK5`DYf(II0l1`8XC9OWnxGex0gLwbxSbw!;u>> zo2K;lNPV>tCy#sB-S&lGDK9DPP@oJc726a+m@oqhC>*pApLlJW^Jl`flgWeKZXb=+ z7H+V!j&dWfegs*EFDf6?|Q4~L3N?8Bk!NRu3Xl))oxuDULq z^El|VvwS|~I>FDr?}zZIQUCHaT>6<0p|QRq0p|!XrYb=DHudr%$_htO(U1y9(UXIu z@toDY)PUhy@HUqba1Gw-LhB{4&4$3<4x7T0u4m^FY)HUH8>C$5l~rv1%&S=a;4RcP zmSNcY#TO19)u4C8iy2mmY*TvgkVKxdN<vLv3jWwTROM(6qsBKagOf z{>pW%ee&*z`;xNbx+SGnWk*zzR7#Q(c%+0-sQ{y_W~l0i3OHExhzErY#)8N2&%hnuLvKbqb9b3=klR9J^_n|rGYh^Z+!A8#?AV__{iBVg&V7U{7 ziK_LL9kNTuLMqsd_(vIdW{KInFDM$|6$-lYclP-hW}zy0QOWA`a`bmHG)We(Q)bRk zov|zPQuV_R8r7^qc}-(eJ43WT%?2kwA0<1QN)y0-I6!QKXtoTv4HdA-aVCYT1ZGhL zY~?gd5%*0rR@t519zrx0DBc(jezr>g zT~&Pyl4@NWnM)Er<+>EaLM>Fwh9~zZqaeqrb!1VKSSI+9p)w1!S$D} z!Z^fV7W=PrBjwU<}pqYbSN8)kuKNJymM6oHfe0il`_fz zhZS=5peha;SI|OYJBLyOm6Cvjg%|U;;E3D zgUZPlz2+Qe9L2{z3ydvGj(go62FU<+Gl#cq!KkQFO&c=TMF;KSD~slITKT{N7%<=< zfgE%UHOWrP8Ya@M%7Kx9qxhXP!Yj|A#9d%pN?oaHwflmAY1dcHL?2)mhuPBPd8Yka zf{lc7xB<4i9q4X?)|x57n!u%I7{fqBdYDw|u9a#>^`g|h6;%$FJK3DE*jrg?QI!<+ zV*W@qVW-j*YY_)~UaTzDVGMli-s{OCP6a6jOV!IJ+-bR0gFXnb^Qa>Y{FvSJuB}L> zSmwYqk*5m!GMq*Ra%nmY4CwrEa&+53n6Ha z93+I>j*fzyeNP_tVHOZw7|fRD&=U9Z@6jn{ar_|r4INSxI%H)15*pun~G^j$A6+8_wPf=%dRYxAD zY}#1L)fSFQ3F|2vCYDXSN@sSMcNTs}rn33$e^OMFhE2bUpyNzR<8#cm@E+NWvcYad zY%ol*0>X7noj%wIc2>NuDX+`n=mui;r`hUbuOG;U;#_K?aeWykAqNuJW{BDY_>bCB z#h~nH?b<5rrc*dFw0TEf7qe>epe+h7>djPONMVYOy^WOJw+mA5O!u|#hZ!g11aCu8 z+2{=d$t+*H`vPu$;0Bs4!gExxG3h)^I?E+=s(Rwm@f#7wOD%fUao4g;ICRV{6LA`2 zx7`z^KL&=Bvp&v!U-Z7jXWD1KgD?U%may{C+gQ4JdDt&vno}^8tUjO|ToRnMqSG@2 zF+!;{stZYllM=b6@Q`YkSCDLV(T_q{Is*=GxIUf8mgMzkKdaSQVUx-3AjH4`mOgw7 zYahD}t438I)`yP%jLVwF=-;Y(TP9j)$DBvPSwyjleI*F3s=3fy3n4OW(+0B~E3G;# z267iUj**!b%PENVdwvMx+8UNVdK>j?Yhokhu?=O^r!`-g+|R~f0m?4LhDG#6&1%Un z;{54#M`Uw5y#QKU!%C}$M$J8U&+#;VlR&B1sIwo4%&l#c@QWO#lJlJH29JH&=d`gM8L?hKG*Z29&M|eP_j+Ae zjRcK`A$)^T$xJ!=bYjJ6E#A+7!Oqmzw83n9YyuP$P>IB?%6bizT`T1}k-+62 z(;TJ+Az0^niX=;fm~~Wo{-BD)vF7CjwnU{P@;3TW7t710C?0VEFSAUXjD2vb%212{ zNcyolc-vg3L@&Gu?&MoF&{9p^)z3`A5Zg}B09`k;NXlry(*_5el zW<_Rx!?NHm)n#sbB>ca(g#j|O8ic_eoH;ynRFu2Ule-afO$t7 z>mR?1=CyUn)bmazD@0TG6(yNbeRzimgz-0zL=E^SlXBNh4}L!sIcRpxu1U|HqFRT= z=WcLN@PS>$b=Sl7>sPRR?FwSYMq=s+mMw%=Tx8y8PgLBE{dXscyk#3$A_O;A2#xUz z9l!QG#}b2`cOK)d2VX(I<6~v1rl8~(U`t1h6Rj%~^wx}>uW%CS^wn}z3*25cH;vHoWfUYIc&ns2NWvg&eNJ+CIlc@(f{ zFoV^q;m!vp`llI2=L6J{qUj!B({gR<$vGk&!ZkdM5u`;VXnc|s@?^n@#;CpT;r$;y zmglX81M|QY_=;R-N*z0db;nkPlYWfBv$pi(pu^Gl{#|$v??~o@O#@p`?#uhao-bcq z;QQ#NWEE0Hyk@P2rf1{9-2;Jq&C3GrZ8a_Qkx)b%p5qCes&3>o#3d06Si^k{IxKAk==v@5ezUJd(x+?NRdTkZz4j0Y)c}Pi>^#N zZnH>8?W7e(ajBLgwFsqRW}{T>O9&dfAJ^&!1=AW?yqbc>%nR>6L#?I$3$I`je!r_yLvbiLu0|xb#4(4#^ zeab8y{xZ8s+gC};M)cz&_&>gfP{X(Fnm8NWPgjycaV~e@^=r&VQU8f}9*1flTXh}8 z4O%OWeP6(aWPKjb3s}a*$L-8ZU-H^MoQ?A5v!Jg(93zMWSY9TX4T;2arxRR`;^gPi zG5!OaG1n^YvZg)TbEBaFFp;5z#ew-%4M%DU2 z;kb3=vpkkHi-qL2WHDGMPCCel4Z`YmSS>aXW2S?QL5?t386<%56diN9Bdz=-6IcRt z{6M;oHyh4!ob!&?CJpf+W?rCFISgan_pARWlX{AeUV2L8czQxw%sSkri=+ET2u1;h z-4T4k3q}SG8g}9Q?MtqLxz|PUlEqm7K%4!P0?wkHjdFBZdg$b}9Ap<_cB7skGiyj= z!ma3l)P*9~ywgH74AJckagPPi!iT+vE|u7f#{%d@G{fu4 z={+aU_-rVwzwBe#ALhWr(Z}D%$T$%agBtQWoH-ltRo14uym89=fLg{C&*Mp`}*sbj_gUKT|8jbN>VtU{1N zadzRAqCj%)8jLb4ma3WsxbHQE$%+P`hGnTja@DXg>G&AD=)qtV-(~c1@wl$EHf=m|`2tQ=>QbzsKsqwdj7Cw*p$$J` z>1|j?4MahN;c$cl&l33FRCB}243r)0b&K{n$x_k@mByLAJRCw&Rx~sw`%Jmh_yig> z)kv}Q(2%v7W5a!LC~QmPvp!tYfM?e)r5WD5E?pgd%|dR{(q=5~9t9xAv?h(PE?&o? z>zgHgm_8uSyyeiyL_2Y;%OYI#upyrt`dy4hV>CTW;8okS6<4vF3j5%ab8(#_j8p=g z;{Z_*!fKXkQMMpbkk9@nY{XbMaQM+9(fz^cH}FidE2~M-+RH; z9gdlWRWHhA<=rLA!m>$I1i1H5yP<{54Ww`F4hD!YM%_+evdEc5+Zu9Jn8`V8N6_ne z)U!m{Iwg6X$Glnusoy|`Q76H$lL%C%crAy#q`nOclYSeFDzf7#G2q<%cSh-2HnQ@+ zFLZuozmmZaqi~3<9>Q`mn2eSSY)nxDPjyk3GL76J(|VwbSth53Q7aiN<+n>Ac!qG4 z%J_xjN%4%n#w0LNiyA79m`A7WIyVVN8tmovOywr}bws*d+ZGP81mjMC^Uq(c@Fq3_ zG|_l;ge(Sv^U;J3cg}I%!$a9f!mf`*3dz-Xm-&h62vTFAbZ%eHX5eQ8lH!P!_^>lMdQCBLR$K(a5j{YVw7q)7^sND7y;`?hGRrwq%tdYQwRWr zWTL_>Y14H?HV(P=y>8>|^Dp7J4&0wSx#XRC?rJd1#Hdr)`3bXEI+f*6e@ife%tLI( zHt@yR!IKN)`WFp-`0W9r{s=*Lfbnq~ac>06q_eGH z&k~Q^)HGdIK)y>O)0n=3sXD|lbQEZpx4G2WScSWI2Ol<1X6gbB}Uz`H|(dE&G%O2!V; zT;#Z~Y+Yv;=u3HH;qOVDNbNvET)&kGBM+T{V$Aa9K#JON^2TBeOZQm*kYd~y+-ERk zO$Ps;DH=2kDbQ^;TQZjAXtb~h)pPu4wdefWBKPgE=^T&^$LO366xH97xhCUlo5%tM z=Nq#)yfaUnh#meNZm#L)4};4zDDcu1Kj`QL-o2oXs+l$O=*)YaPnp2P8aX1 z0^u}PJzzp+gxH7UO$TXr4A(HxYBhucHY522b_2(_Ov(Y6dBRT4E%u8DBDDYTwZIe~ z|LhagNLyVTHSf1+DX*O(x$~wYTS^Dn^p2U`NQ`9vw1@FY8^K8jRtz*f6|`c=tP1;Y zQCz>|5b8#Q%?#@`oW1xCXZ0G6e)tG?o;+G(u8?R%I~Vf;ANrwnFhMj95OfCc-*hlO z=>UBnZp}iY;fc;FA|Ipjc9YagSalp2Ebk5&*&d}x)9i^CgdU92k2)MQ zT+%#FI~OutL|?tkls+Hoa_Gp_;n<3{m(JXz zu5iC=6F;7FoQ3UC7z!L>G#Fvn8i^6j;%*v**^yI$*4;9>mOhIHh zE1hHB(x>c-ywF_N9pny(AShY87Q~1KK7!5={#h5J*ECc*z#xEEx8SjVid7euHdB}s z*0`r#Hu)=l=wf+7s_HO}80pwY*dM|ljD-4IY7%TxOqUpficH$HC`Y#xjM0rya~-6S zM<%(jJAmKrOVh;B@i~GwUARUao@2wY@;OS%@GY%@i^k<2=h9*um- zYA{eRcy)@=t20FB1GqI4UXC!J{*k!g(rLOSecHGfmj?`Pk}P&ODo~lfs|i9H1x>EocCBs;x{cxS8G^Gu!u9}}M3qf=4Q7W3C#8NVhQM|1X_uLe zx%*t6p>{0`NpFNVpFf4gd%AmogCD#P_l|=274EriX?!8^JAv~_Ia{ov$q8}!{So}r zE{4bF7`{x9O38I28bvR~k(UXVL8>Z}(mFF;j5=tHuDw>d5K9(`#MxP{+ zIBKDG)ZTPN2gl!a5p}48BbZTw#vwb6v*SJO8U`_z>)^bXcAdRkM^;sbYV3*2#rVyy zex4x-=e$ytO?`2nja8kEoka8&XgJfO~Am*(Dx%5 zug4!e!e_tud;HDceyq0Eyx`un3EveR83u)8)+3<+C&;CcKi^dIEHo5z{6jDijV)} zUxX@G-Ir!!BAu-&O6C|UV@#J5BfqS1mQSjNk@tn$fFlw)! zBTyvaBjp&fD|RGK8Zq)gK7MpI`p@5>`}A8eni;|7*d4VFBnZJ?Ib;u%toinaXYROc z!bsFQ*k{dP5W-JVcn=Qo_}71jAN|`uO@ac2LW7y$1 z4rJVVUmm0L^rbi>u4UtpK`n>b@;V%g@X^ic;5>c0Oqb-Iu5b;6e3CqXI@lqM+^XaL zXCLFEfB$D3e(-*wZ>k}u%Dk25aH1U!>CPS^9_Fw!(ZN3a^FI3Dyq0;)-`TH+FusFk zQ}$}nK`U=5u;#T-jZf8_4r2$T6j_E&e}p%uT^zL>{OqS6;{N>u>E2GAX4XlsGkj1-5*X^dW&fNf7Q9NWL9oSt>p zj>U#W8lBP5sM9b|2HtgK(fH3IG?i19Ny=Rty1QbYs*-_dEQkO}6mEsfq=A#VwxW5i zt7d}=dZ99GI-18uSX|e*ZV7~I%MRV9gxBaWI+}1njSWJCFl#$^{LTQQ<1=)=_!hmdkCBWcr2Rl3frev>4tfruXl7A&wUwyyj`lf4>QI-) zqb!Dx!W90qQ#}8#-{Sax{+Jtjb-4Eq@x5Ptiq_-z6a{sOwnY93m9=s<{IedqUw$in zHaMQ?Fhp$_p=Eo@$;hMfoX0i;1bcASrXX(D*jTj=Hd0ff>owL3v`0Am-BXOtI{9ZQ z9enSzk8tmkAHX?ipT~ zbo(k$@YM<0e|{m5%WN3J3{o734id^oc1=rVzjbEgx;IkcOvl?GrZDrMx-##pU&Tw` zm8`m<3(3c>H-Do-19eRiSPd8EDO#%aq$net84~5g%nJ?gVQy5+KwM-fuKYfO&_YKd zc~N4>Ikb^Hd#B~-R5eFoTC%C)Q&mgBCVcFYe*ElPeErvN)ax|^%~n&4w9pS=JI(}x zK|?uB5yc?}!vVV8u4Fb&UcAQ1vlEO4W9fX{@R~Tf=M~u!g+0FnMs-7UNou1k6L$}r zXf+xbM=APmx_JHUI4_`OXKM%Hc~5?CJiI#v%a90j93vc#RYa5y$4OgQa|VRSur|nb zaVVYO6;qJZ*=T2@0-o){S+yecg<08F!-418@S_YvKS1yIUm=JTGaPAb8}Hwh=62CA zD7ujs7Bu%Heo(?Nrsz?-*Bs6$xQLDQ49kc5Q&k&pKO{uNQ8UmMmLp!m?A_5Z zAuqqw9YisVD1{lNu!Ksv2Fo&qgrbb`o)BeJU~Rf4dr*08q7FucFo+H&h?q5EpvI~p zyXyhe!I?XjzW1pr5NDL19qdW@Oa`hN>6Xoj4zkuovjA49$?2x{I%ZiTGUl;{Dh$;e z);f6L0MtWsz79$aLJ&#)kkY{nR;r9+%d$iVrJHyjaN+!2!c(wWyXgwLbXAdcFlXr` zoIEBRhu7ekz@ZC}_3*-VD>lBA%#_r@I7K~7VUsI{4xh<6ObU7uJmg*7HIf6HmrcQ| zR%mM$Juyx@w;RN7g~6(`bV3s$Kfu~M?k*{Dh&<0cr0bMA+2x)zNHTDTc!#dhNJav@e`Dr-bA^+w7^}u^>F}?UG0H z%J82XqB3jgk|GE&V7fFe>Qb{M4o8}b@i#gdiZM8+1~%vESMg@DH#x2guj%H{QbJag zv%zt!N+xX+&c>{WzSuO%T(~44;26>vP7(}Gds0(4TT578BekJrvY@%)344-qZdF#u zEJft^J${>7o64eeklnz^rf202n=-h@?0>_8*+U1^4^)}6LIu=$ zTQ{)*T`Jzb>|^lmNF^PPZ7jm?vXm8iUt_oTNwp|bwwH@}H}$CsdbsVi3A(scpij!U z755@zF}y3;5AB335=BEygOT`dMZc^Wy=Ga{Zn{kAL=I)pw5)>rX73kqBv{yO!?oyy zFk-s=yo&fijUU;~YBOV4d0o239MPG58fOw&uj_~;o0PheH42l<>j^o2%nY%EIE}nX z-=PYu=UZH3B=bO3)D1ZE@#7D>?!dE58NXSl&6uZyQlmkFjJ!r;i}dN2Wq5YE<`zT` z^@)=uI+!Ygh9Dx0^pdN}Y0*jSz{H5wK|PO+J*-W)ay>B@wKFl^vPJk-W-zbYI{Cb( z_h=z)8d7#E)1taxZ+?7tRiMAkwMiGh>pL;)HXK{Q4OZ#xRm&rV`^3oab8XVFF-IP?!!R5 zH3Ii5MHl0BzlSBWZeIrCRdwlB`}V6(%NFoux^&amCW-dx`@7^;^gjJAI2)_#lJ3b; zU$H1wI~|M0(5UL#v?UcRYJXPbr!2+~H(Z}K*0W>6pl7bQHc3=|1E2l2*iDn#pVhUh z3OZQ+e%IBfdHbDF{8;{3+mLBp()AbH*DZ6a5${E^=9l#r%&|(!y5GIAWajK`F}T&G zo2yS%)1@oOy85IYh$?1qsw9^=q_Yl(9DBp{X_u7g0Tu!2{_Bj%yX5c|qI)FHKDT5{ zsy0ql-s_6Y(Yqk|x@0VP>0J`@f+tn6S#zzLjcVP>TOq4NW~(aKt^c{9w_RDe$+|?j zttYFFEP}HveNTnCYz|gQpQ4Tx0C=2zkikkqQ4of|o0b(81uYAVHW3zK64cIINKqhKQ0=Z)(?IQbyix6X zfF7ZsMUN0JTD5E+M7=`G0trfPbJEg^8kjR5|Cu@GXQ0b(D^>IZrLwD2iKWoy)^;fH zNDqAs(2LJ@sw$RDu1X7^^?TIsuuQ$3HgEmD|2O)xxvC@eO>)Xn+68M;ICen;Y^2~@8D8#-)VU;?t{7VMq28io$7`^7DqpR% zwe&dDGz^E^+C)L@KEZWO+1mcvs8#n@cjh8Z4$4gTi|0L$LEs7++Vft|Jg;#9z6Y7D zyaRM6S!pmzxLyDN>}p9wK~#904{X2joUh!EiXhaOfhJ%fT>o42MIQmW^D_ zK^O#x;{>*CLDO`(Uy{VIZ5vS(W6$1UcR68QP+$H_@Q+U<_?k@w*Bp6AIt>V^T|^U`@V<=(#UOJAIvBYoj| z@cux8BuQj!oVUSXAaldMa85N1C>Bcy!a&xJ>%uwq{j86+tXsd|m+|m(t|#Y_W9j$0 z2*X(V7{{@UyI3qp-#D+lhTj?WQP<%(7F^epdFDK_v5&k5-|G+hur2n{mOitOg<=tL z6d??ww2#JU9{IPXYch}AGaQ?|Z`&{p6TMy!K^US~$olBXnpw7m!1ra}@H^}y*NPj2 zYv6e<+@UM|Qhkh(%jISKoo)}dWl0~oF6@7)SVRRPGEH>5J!qPi z?$1c}8Gr9~yXhV*$aC07t{?l!Ipud8+d={eO|fweIH&G#DA)2Dj*sK?gAl!L4~A*V z8uB{MNvT{(=P?+~<76L&4tssMzv^QsYsq!uJo4G>6W7EfL8!^sVdx}c3x4d&K)FeE zof{O=F-d=9TSbS{=7@2kaz zJcpCbrieC@-{Sf`9XQ?4xd| zc~t$fglTdd=4f1|FaY*P`Y7|0K8yV#)0BIv`86EQNqU`W3DIN>g!5>zKZd#&Kj%hO zYru6htn|B`KNlm`kakx%>GvS(u} zmV=8-$k5dLe3lT2$+c9>McrQ=0Z4-jqxtyZ4}Xxz zGu2j>i#R!4Z4*z?0fpHMD>A8fPIun)DqQS zT|*KBe&EaZGo~V&lK0bjz1ql}gsdl-^dtKs=2){HsCne)d2)DrskN^ zRUqHtoN+qXHxjs-eC~-*=7Yq+&Cf2zP?K(IM#>lzBUOD=(vJ`}>6Z5!t+o1G5sN0{ z7ABQmAuQQe>Kb8UDn@23uIjT=u*d^SmZ&oKGGSS^B_f{Gx7h_wVJqR|sH zBY^?cK@x)>Mu>t?jWlHlmZ>I7-IEKKPHsxz+yscm3#gtIL+1p`v!l^Ou^Hr?mY(i} zNERWRbS+8bROSR`jSJ?;sgrILZlX9=%N_%vP#K>Sr+tj4`X~e)`r~=Z`k2I{6F5od zE1O3Wu+DMI7|8$?(ekNs=Qu<(Irs8C-j7UC&6}=Kx=^PZpXX$pJKaVhi6c@cJl~4L z1o3zp6^~BmPS!9T+jJkZofSb#6p?Zs_aLq?+O@_yNa-7ri$nV;+)~b)PN2QM`u}B|h=8>nl+!Ld<&hE#%aDEN0 zuRKdVS58?|Nnh%)8}GNoNT3;j8BpT;RT^|MUOdk{IeE#e_ zru{UGY!3LWXf&53WSzr~$k;=enWU&w65!{GF$!Ig4x&()p`ycVt<^p=OL^f>xV)uH zm}u|<7eg$Im07`2G-wRp5gxCT0kMN3K3GtDgKm7Y7*vJ)aZ0kg+aZ*?s6h8`Ntju@TD>G>$$oRdW2 z-`y+=HysSUB?mO83zw7p%ol{sri(LqT9Gp=(YW5~px1YmcuFQ9l1C(yRV?JNvso22 zzzY<&yp^`7-vDwsWduE~w?+KqTxWI!GA)Xz8`UDpr965AcLj#Kj(*SCBRqL%f637x zHbkS{6$WOBG|3YyL72pFY#TdU6*-;z18+jTdvkMb+sbfSZ*Z-XvKdVFn7z(mi5`{>#JkxO2qanab6aZkOnM#Ben zA)fHN+clhME%drWG0cd#O+#fAq2BDG!wosJI5*We&zx^XNYj1h?~PVh#>I_!XLkcf zr%f4)(&g1P1J}i|ydT~|k1yXN?8iye!uD204h#16tkI!>tv0ym)c9|WVuIp-K>;oPFlNVF1WZf#7K|m7MYd;=vyYCkn>lo zMImzjEe0L2iztgNH*V(gxbc=6>7>u;BgvG=t;r=x=!1cWGqkb4Q^Vd?O(vQmQRZdf zPx@Wi|9K}w*2ep0Y{kBI_eb7~>1WDm)9K6myIYER9iO&RtG;?R{r8;jN&CQ!x6CD! z_I|S8?3L$JB<+a7lPU`LLaW^yF=-J`#p=&JLfgh_k5`_DbM&)9pVRwj(?(}XhNs*k zyPMeEuHfi2#?V#q0g8brPm=O1Xv?o{wolG|XJq}G8dtQ!w&EOidIS01Mzw^U?Fvq) zGENx4xkvcQJRFlv&qSGd<5|=X63S_#g;uMJYAKJM%?fxBWGDWu>2$MAHdZ7XuuGBW zw1IZJn-X>`On|2-KWCpQVzbX9Q_>~<<~sR71lJ4Y9+}T|OL z7`iw-X$ZmaprDEsrWCnMzf(WgNFt_<^U`xdE#l}qD>X6c&0oWc0C<|)r{W&Znf-{BrfB6PZpxYSTB7ZAtgsThMr&3ym8kMZS~pG(MRA#W@H zbJod=xLqnT(`rgP5WNGmK(5mgtp=BgD?q<#>f-D#uMX{jhX(?qeruvMj> zkG?C0q{aOoZOThd77?R6J?MspN~wSxgOYB!32~)z_p%2#^<^3;B@{Ssi-rAadxUP> zQ1n@P_{t?)=4|MN==5SageV!%%R`1a@ipXf7D|P@FbqYcm${S^^aewq0c>qlC1SHb z@#C`EnbAkIqA^v$Tp>s{5BO{S| zo;-PiJG*<5^KkI`HC`T=!fAuhN4M{)fRoYf5^;Ia)jDr3XAOUsHTI#^>BEuO>|3!@ zjt&qK7a1qlgQsmN=fH8e5ijpQ_2_oDk8-JS<$g$9e19kbV0)V-)XI6W?R@j9f#U{q zBOEc>(J-dT{G`#VNrEARgnF)6%b5?dEVJu&hsZM*BMnAUwxaQ=JFi_N#>@NsvaI{W z`>}*)iNsXzcF^*A82ULlUFMl2=mi7x`~mEM(YL@RrCEvSIo~Lyl37q1U1p@_lZTJ+ z=)prYS}pwhKlu~9K0HLTaSGS%BTwC6iQC+S6_><6aGCtTNGi2>v&6!`sKSI^fKRrn zs6`%P8X!3^4QK{2n!1CXVgbq(ovg&Mr<;;Qs9Q+_QxxLP{ys{jqHMfwyMu$HLs`VE zpNugWx(sPfLtJOvzvSpSCyW1Hx*NCB_!yP!qijTp7E4r{Z80YVa05@SVgHxEAaQzUS)U~^@vjHb(ORPMJfFZv}2PeWfb9v@9OdCs+%X&Sr zxijLvXy05!3#0F59+Z)!t@eAp(?KifATGve54%WuT_lvqnfFkoDj48o(3G!iRVy$h z{CUnx<(`Z~P9@em5XRbSw?vPVD7Z9#fGPw<)6H5*F@f8&;V*0| zo;<<8^+cT9+$y0Mhd4d$ppdul;O-_$MMvi2vtJ#d-F0C*w&=FE&^zfLRZS9qxtLS= z3mUT?eMDLgn_C+~V6w~C4pgU&}<+nq!&vf9whuXvLc-Jnj%4LR+J%e3c}yJ$3) zI6<{iK^WeZ_oh)pPk@WUz|uD!{nOWXiKvRN%*BgPK>d%$@H0WTd+{B zl_ZVYunm~ZY)sR(vkX#70>goeC<-L5o{U3F*NDxg%DbL!o;zn4#o6d|aoS<9mdc^v z^SAs8s>LFj{T^CTA9_`TZfA!07#jJKBx{USMZ>25KgLO;4O26*wOLNDzglFWNp8rb z2QhSc%=OmrJ3spwnyn`O=I{O*c9kdIVt3EF8$F4%^!fqAiYM*1Y4FQPA7rj|0sBwx zivCwBRgf4K>h2I>r;Pz4P9(LLX-W)sO0H@A(oro{WHSw2S0oQf&S9>7qT=6Wjz;s8 zTAT_wrU0cbM1LH~=lh~MFh7JTPYg-A2~kT3o7^kine#+N<*wp&f%Nb3!%ggLmqd;7 zh9U0W*~a#E89)B%J86KD$~9L~%lajkafHFRNxHLXh$PkO4Ds}J6V1+0LZBJuO|f4H zKTUO&t!^JjttOIU2#p7- zLGq4q=5|nj)kU03pl@lyv_@-UMyWkXQvb#tIv$F-7+xH~4PudMY-5f`Y02J6B%sAW z2UCL~IpY>~cXvd;{q(aOXg`^W1-j8jw;aWPZd{eatin#CAV9!qEb7%>2;0eHcXt<+ zav27VKDv!ow~N>H7KS|^MvgJ^Md75^Z;C;(Pb7Ydz)aI+cqsp4lNg8z+UJXepC!jg z6q=TZ{UAq>hFv!mY++y=^Ce(qCBnk`GSQfPqqb#Mx>970fO09S9Q80?4^CNd2LmqCMJBqL5k6fkdJF%vRpsx%xU{pi9F2;^bu*x#z)xZXp%-xW1erP5q{ zXefDfqVE@yowE3I?+Or$WYF@b2BQcVcXXAJoL-mRP<;NTE@S2}vL4Abv&o&K-&3h` zg=T*Ct17{rC$Z3o z$v_$}K=ZVT0Rv+Q9oOoL`;aNsV!$Pmkww%Y9Y$W0U@jgkvY(a^pXWu^&C=Z%$R>41 zavUTgdLc5S9x(}uNtuVBrtSduT-s z4B`L*Bl5gHJmT`@D(H8cI6XZ@82Tuc3b0KI-q$Dmta)yLT)vF=-+fQKCA8)W@uvwf zlu{JFn!*{7jYN1f!g{5UWU?28$dm*?{Jz1^MY&WGqhN11L{WUy8R*3|T8hv_%kuYs z@EiE={`>zE2Bm#`@$z$ots`h44xx^RkG8S7y(_u;jm9aSKR-s`5z$8NEF~ET98Wsd z7%`dja0t)!<#%Q2R@eYno$t(*+wBsoA;Hd8NeGe*lmtt#3nfiKbpFqup9v$@H11mu z`Eo%{{MjO{knkt{T|9C7jdHS0jT%A^VVDP^WXlve}|VZpUUK^ z{Qvbe_LW8|&kga`<9(cVI{57H07Kswpo34!yZFP0PtfwZ_=|QI{V;(|J*^6~eV|@f z#9yIHWX;4c{Y$yKKv<<=nWEFDIzRRJYFSxg$6?Y6mPs*$6i1JuXle_fZcfn6LSJDk zLI5dO0mHbszv>qq_aA?Z@}uwIPd@)8o}M1#Q52w(ilU`*9y{BcB3_13UjdUwx(E>tG)VE@u@dHXtV`FRs z-GDR-M*RR$V#B;(9TpzEa*)x>GlUleXu4gvF%hIRBo<&74d}Ke=u3+DQxz+XF;2aG z@{4V1xL+_(GZnheuA`%1YIx~I=pm6{r-e=S7D?w4@z zg@(T$M(9Qw9@sH7N(t=&Ja34t%}qJ^wRI4Gs{3;J$(Tr>`@1`0fT96XMCJ7KCzvDw zE@#ttsX_^6UJ8^sN;~FvZN)r@KHD#rB+AiqU9nPA!r*?tt|=hm>D3bK#W6OcE(}0%fGkQ;B=8xlexJEEQ38fA#QhkyNzhwUN;|oBjJ$Z_f9yS>kV09gctcqwOqtOtBH{CMFLIkA%_^7wu!?S z`1hRv$3BUUCjgLmK87wuJZ{`IpZtO$#~5rEwaO;G^U+7h5l+0{9}zz{5dF^7=Vu#< z!wY;_9ED^{QPxmK)-=X}(O%`!0JT~T1J6UhKS16oiywPkW@s%3c3mDjKE@C;jr&0H44K=Zf(*B!vp92gee zt|=y@ocv>85Vmg)8hC!(LA6>_h{>{#R%@K2daH|*P6Kg1gzjk2b2^wOMg~S=7jhyK zlSshvsZadIfT}UPfdfCeG}E~ zis;kr{^Cj0kWDai3!Cig7TNL^_s+wn=+HYVMyqeHs$l=os;wSje%ahRty2 z>m3%R>sbhW3$11ut#$#Mn?u-i@6h*7kyjw9)6H}PO^{<91D+l!{P;LT(Cy-G6ypOY zhupA-pnig%+<$-}t=oZ*Bn)sm?8EjW1QF9i`x9Y8N`zvVZLvUW@#;1U@gGQm4O5~c zClO>a6@Y)S*aPQB3_EF9s^n)!s<;O2CrV{fR$XBTDFd+*6XillY!`V6S2jfqk1d8R zuik|5_<{KSRbdRq!4EKOpF#I}(1tCTtwXfqK7JMV#jmf7QiLK81599LjE|Co z^fe~&E89iC=i&2Tz7pV!2lt4ds0@Mh-qafdIkA~_mrIL$TsFx}>*ZzC`)Tl#6JIR# zWZ+~bN`2x_dzPV#p?VDCt!hl@FdPRPJIWn+c5sH%c315&O~>cY>nP^Cc<<3RwyOm( zD0W>Ht*NB%)%G|UjzB1%N^aecVKDeNG?Fb0m@A?iUO(Sn715qo?0 zMg*G$fAD9w+mhUW=0>m5lwl^8Fyrm59en)Z2f_sCf*M8prCTMdpO8V4XD=GGo<4gj zMK!+j(T5^Mn5oFB;wem#Bp9z=DV4CbwSjK0Cz+V0Q9#~S@feqPcD!d9KS8PE-rX8X zB~|q$9KOVh|MLGtwb=rOJroBmu=2r6ivMY9bOsZptkEhEM`{J|eOY!|oD~i}8O)29 zXEKhxoyy4A+#k>g>tX2nsMlSY560|YGzNagHKfay`2{2bi$=ecs55AB5*4M5NbCY* z2|z()X9ZU>CZOUkX#1#cRpqK)D~DmH54Z0MGieVZeERhXY(v8^q+XtrARG;<8Ujbm*4g$*k2re0i`LsmxOazOo~chYl>!#e#d>T4 z65HP<@$2}0p@^Dkq8G*R5)CJV0iK>V(ME!vWnmabcxV3(-g*2sTAGf2zlXCkdIQEG zzp`-+TM~*?BG7ENXLIwW8;Q7Dsp84QhjPLP%wv}mF%|z)^oMvRR-GlLzI^%=&tJYA zRb%<&qmN)QDv>&O!oU?07j;uhT!OpX+o;!@IBPag4Dte(O@H{jK2P;Fg{Gpr$@N^k z^X@(T;XnLC?B2PH!LWyuS6|}no6k@QeTkQ#K~q)nQDL%KNEO5#CY-S$NWu_(}K~ z)V0#%wUNzBPEqj`WNO1$9Z>qUhEla8c8as3I^6zH(0zE)_J*7{1I1EF7!^r#zWr!k zP_p`4ssORFkYT`!bVQmC&jB0_*rHKH*Uj!#KRVt_Oi<1g_5%KewEtBg&i zR6|R`{Kf{tjMk-yjZ{jSh|rxX1!W_8x@ZJNw zbMGGh?azOXle1%Z9_#&$V{wax0ty9cVbN&wo}ZTa6P3(Fdt^GTIx)x6kSyDTsLRuc zI01~Hq`#a{r@Fg zm9{)W*48PdDEAyy1pX&XA?v?XG|H;koJTz#&6&<@RAnO(8vuzqV*t7`+NmiY`@RK_ zpx_|(L-aZWY;IT6Tzf@8yq3v7jgtn>4(rP8xmg)muqcg{3wbeWB4LnLa&E5E$w*O; z&oc)uJ0aybZl{yOFbweWum{J{;BO}4qI4(Sdy`Yj_bC}jmg>wSQ`C~#nTq-`;+`(v zqpVz<+74GgetE!~y2*l)%%1YFyL$%5aYZGNj)*l}xqZ_4P@>C3_js~o(OQ{lGlLi7 zPno)fxNX#1Be-1`Tb_=0^97U)Lx{gabXniWH?D_+FosnwqFgRX#25`!G`_Vv9h{yX z3m8YWT2+Bc8CIU?l05$vw?98mN@N^u^VI6B^5A`JZfxT2{=PcJM|t6j0mw_L?I+7-Z;UpPF~}VJH%a!8FDPZ>PazD@iSW{?myfS#(R9& z7$f{jojZG!zmUxf{qfM1F)gzTC|gDdh8T4o-w&RJW^$dC!<7wIVdnT4)^AWh5KB8>*aL zT8HrT)v2gVIhyIkGM}k$Gdo1o3aXd$cCPAErBp;dUqE-@!s_bcML9b20VjY_V5H$V zQ%9I$_T_ZK@;Xp70Uo!5h+ek&l1R{xk#r4IH!30_3V1Ig7Z)H5P4+aikz~NRlPT-w z{{3f&0vox4i}&AqhMg@&)G;ebSzj4r|NP~vltZgvl|_&WSuE4oC^M>tIl5L(qEv(? z@%uebi2sv(3468%KMBzeLLB-&o)2A|FaV@fK&e_0$gk~u0mbSDw##KST21r@U2JV_ z!Lhl4Cg57Ax28ok$9E!ej2gk>f?7>0|EOkXGgcXN>{^>8I58wIlL&+cv(y~};fq+V>jJ@q0eDnMn zJl{-#HqM^}Q`mMYkWJ0AoWg0oK?Y1I2FVC^p@f~?`{;N+j(aU=(E#`EZi@@H(_&Vm zx?e7DV}EZ8?T(LrkCl-%lq*bHGI4s=6~bcte;U&)--%PgnKVX^q{RsldW!fbpt)61 zQ#17dC^di{fs8qesxn$1Ww&4^CVl+053rn8uilhXzPe4c=LpS{CXQYl%6BT8l~JBR zj^X1p+KTi=g5Y|_i}%PSUN0F3i9HJmGjW7j%Cozyl3v zX&R2S1YH^Q%rnyo73qb~V<GrA&xQznKgqw7e4e;vqYwYju!J@T3CI0Ni)@--&&5IXuidM=+Fs)k& zMT~23Bpme9U;Yx0A3cW4ZVqtx{7^{?QG(NhQ}mhQyHSGWu=+L2Ydf$B5He8F zgleB?7s9FQ7ksA1mHs09kXfp(z;|i11=K8!N;6z9#5V0;wv+w#rfxG1){Anb4)!WGI<+hbJdeSH4=U zsOTy|2pT_3sRb;8xY&p~IgJ^5E3wRL1K>A`72L5+bmAe7d>=1d9|w_-px~fdWRA9> zN;3r>cB-3rRzJnhUp`Zof9495Rf(yQP?imDX0~Vl&Md~~?1LjC6J0Z^-1SDainrfV zXg}g&OIwym<3|Lh>`6ci>kHDttU{*LR7qu6x`lk!v@ZyNNvBIhW!3M@Ur(m9v%QU% zhll9)0Gow1ruvq-z2*^`LPqA9R#3@z(^NLs>C>( z;~0_&`0792qb*h4RLVV!K>4b==3zq(lGd7uZqoTULfg91qJIWpC7_^Lka3(8xH)b+>ri$0*fGXdSmP7`P(3kN3!|#I=aoj;3CSzuE2KY}iIv z4qz3DM>vVmrB+|6S!Z*Q1^XmGBTCR?U|Fmx`$klK7z;vaE~WF>PoVjb_zJ?}jf|m} z>i?5k%={}&*?cMCCk*wKQ!bPM8*b`)y^g)zZG}3LQps#ZmD%TUN1nG%su7cTJFNk> zLko|b5(aT7C;wB|#q-cbQqG}VElF&+isfdq22W52eWth?dHIaYNFAK9@~sN$&Ln4? z=vNlnyl8^5p{0f?vBHXOt&8+Q5D*&YCKp~T&Gb^7p5oQPp@2{lKAH=p1laVx>0?LP zfg^l(6_cK26_Ux63MJ9ART^>1G$u>$o%2Si9Z)XhO=>tI6-h9f4&1-9f%`iZ zl@83nAclaa*bAJ$a;1cVW5`xbt=;=LFGYI_Kp-lP_s1w z2c?=JlKRAcPz>r~HZXFL&Z`bA)omuC+{oE^`hWBEnTVnkv6TTZHK;A&c2L0>DKX6y z*66hQDD-1|XqQnoiQDhunLEHMx~hcu%VGet4P~4e8N7528&bei5q+lPt5no@l4$6(d-#+8_~-C^7x(Yo z7d(YlqmI4(2V$A$28(qAz0x+^sD-L9I>ll7eINaPV}j|V59e6ZA|HoGb$s#lDcY^B zi2Q`gk0gjaCrr6gE=eXErIriBfyIZfqf#kKA=Y1fbtHR`Yugzz5sf~27PYj5QfTdu zLJwQjjWnB&k`bi_b!*jZcj6#H6vU!uQ|&30@?xYDPZ6nZ znfaa^Ldv*UNoW`{15rVwON<17vH|4TKLaSSmctyo9>2kRcwuJ0(j{Av(SU}dOP_iA zTO}P~mCs_m05ZSKo3M-spbj6Q$2sI-N(>M~4mFj%CYfGggqN>hi&cATa|5=Wa;H_) zjyVN7d)+>Y{RE#lWmF6kPu(7#dIPi>FjCB+QdKSv+f2)M&kRC3ENeBE%ci=t20*uw z!74@YRYfD?si-;X`aJnxA04Th@#PX|v{xJdyckJhF|0h^d*^M*D+oMKbk#z!D5;~= zR~2e(U&4jOsJBAKCD+x-S*Yq|blQFVhyU>BLIlcpZsKRZQ^eyRC3vs8g>I`MZc{-a zl0q)iwr;*Z7^nmt^>>11Yls&I4b*xYUd6YkKo$Ib*=1mz0EQJe zdxU^fz_g`uSs^)Pz!x+Gr^RaIATpJ^b}|fD09eu_A2u?F3M*K5nTxNGcxlAms8&?g zXv#QEgZEx>&!k^we_OpF+{A-f$Ov(q6T;(3D*R{~`dR`(QA|&vjFvKom7FOQ^TQZP zpichCOW>b{2)nU}6MC!|4C`GOV%cA9yDJIz{1?nHW(o@ZrxgEv92_zsgbUpi@r$mY zkwyE8jb9}p4LU=7Y*evt+xX?6i_gO$dNz?xb0}AM@|)t~xKV`MB|9v+@X z^W95Y5v_I?r)M-J@zEZP|NWQPzyDWw_xs;NP_5y`uj+{1I=bbWl6EGb&8UNa{mmg- zoq>WgOIUZ#$4Olo_y}Uc7zMQf8NRE=o`MIhWSZjr%XFXRb8`BNB1hYf#KmV$8Wnw* z!K{sPwKF|fXW20awUUD&lbU!~(UV{pQu3XWnUudwRSsd&6YIQc<5x)7EOc_#ZNW2L zm<4_MbLKgO3A*eqF*PSq$J4amjGnSXIUF$7KLrOMfm4m>TQEa~wnQ%m)0LH)nyK2? zGX}Dm+;p^dbAulq9pjf@e2G@44M&i6Sy1Eprz(?1h|sd38HfmSEbO$r@unjJvu%Sk+@o`h}h5i43}tO3igQ=gn|&R=ZRbK zFaGi`#j^d$#~)#9Lj|iSWZJ9GIeqq=PNOuP+FFSN~t2Ew@S>J&}S!pUZvM$0#-VQ6WZ9+ zt+U_B2$bPVAN|c2!+BZ6rqK;VIuX#CG$759oPsf>twBfx=ZYXEeiBHsPdrqixpIGF zCY>+EF`OL8Txog;Xgx+Ire9;UVyS{+B|i##7B?v+pv?6u(%bb0W)fG8Za(I^fA#dK z82?yElh#>=Xi^-%&W7a4&q}>o+ryq_;_Jx6aTFk5EQzs?!4sAtHJm1+YTsOAjJHiN z(wom zxcv`)`)49?35>afpIv2GsJko`6GS!F+&aKRVlTwY?*^UTdoOKDx1_EP{)fqUw@sDwIR>k+(i9<^Leh=-YA zB!0y`zXjBvWQ$wE!RuEd-v8(~zAu0nN5{wb+fP43Z!kciKwo}A5yJ% ?)MeK`3t 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 Date: Wed, 10 Jun 2026 20:36:44 -0500 Subject: [PATCH 21/27] Delete src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/card.png --- .../plugins/microbot/bankorganizer/card.png | Bin 198576 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/card.png diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/card.png b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/card.png deleted file mode 100644 index 9082d1f14ec4aee6c301efcc4ef1a9f83d97562d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198576 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

mb? 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 Date: Wed, 10 Jun 2026 20:37:17 -0500 Subject: [PATCH 22/27] Delete src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/icon.png --- .../plugins/microbot/bankorganizer/icon.png | Bin 60913 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/icon.png diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/icon.png b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/icon.png deleted file mode 100644 index 17f533758a5786b9998a0c70c9180b7a26d2ab26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60913 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 ?)MeK`3t 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 Date: Fri, 12 Jun 2026 19:03:04 -0400 Subject: [PATCH 23/27] feat(microbotdashboardplus): pet drop alert (banner + Discord), from community feedback (v1.2.1) Co-Authored-By: Claude Fable 5 --- .../MicrobotDashboardPlusConfig.java | 25 +++++++++++---- .../MicrobotDashboardPlusPlugin.java | 32 ++++++++++++++++++- .../panels/GuidePanel.java | 2 +- .../microbotdashboardplus/docs/README.md | 4 ++- 4 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java index d391750ae2..845a906b16 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusConfig.java @@ -39,14 +39,16 @@ "

" + "

6. Notify on level-up: posts to Discord when any skill levels up.

" + "

" + - "

7. Notify on session start or stop: posts when the plugin enables or disables. Off by default.

" + + "

7. Notify on pet drop: banner plus Discord post when you receive a pet (detected from the funny-feeling game messages).

" + "

" + - "

8. Notify on alert threshold: posts when a configured Alert Threshold is crossed.

" + + "

8. Notify on session start or stop: posts when the plugin enables or disables. Off by default.

" + + "

" + + "

9. Notify on alert threshold: posts when a configured Alert Threshold is crossed.

" + "

" + "

Alerts

" + - "

9. Alert thresholds: comma-separated SKILL:LEVEL pairs, for example MINING:60, WOODCUTTING:80. Use uppercase OSRS skill names. A crossing fires an in-dashboard banner and, if enabled above, a Discord notification.

" + + "

10. Alert thresholds: comma-separated SKILL:LEVEL pairs, for example MINING:60, WOODCUTTING:80. Use uppercase OSRS skill names. A crossing fires an in-dashboard banner and, if enabled above, a Discord notification.

" + "

" + - "

10. Skill targets (ETA): comma-separated SKILL:LEVEL pairs, for example MINING:70, AGILITY:60. The Skills section shows an ETA to each target from the current XP per hour. A skill with no target still shows an ETA to its next level while it is being trained.

" + + "

11. Skill targets (ETA): comma-separated SKILL:LEVEL pairs, for example MINING:70, AGILITY:60. The Skills section shows an ETA to each target from the current XP per hour. A skill with no target still shows an ETA to its next level while it is being trained.

" + "

" + "

Panels of note

" + "

Antiban State: shows whether the script is running or is being held by an intentional anti-AFK pause such as a micro break, an action cooldown, a global pause, or a blocking event. Use it to tell a real stall from expected behavior.

" @@ -162,11 +164,22 @@ default boolean notifyLevelUp() { return true; } + @ConfigItem( + keyName = "notifyPetDrop", + name = "Notify on pet drop", + description = "Fire the in-dashboard banner and (if a webhook is set) a Discord message when you receive a pet, detected from the funny-feeling game messages.", + position = 2, + section = notificationsSection + ) + default boolean notifyPetDrop() { + return true; + } + @ConfigItem( keyName = "notifySessionLifecycle", name = "Notify on session start/stop", description = "Send a Discord message when the dashboard plugin enables (session start) or disables (session stop).", - position = 2, + position = 3, section = notificationsSection ) default boolean notifySessionLifecycle() { @@ -177,7 +190,7 @@ default boolean notifySessionLifecycle() { keyName = "notifyAlerts", name = "Notify on alert threshold", description = "Send a Discord message when any configured Alert Threshold is crossed (see Alerts section).", - position = 3, + position = 4, section = notificationsSection ) default boolean notifyAlerts() { diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java index 3c54438e82..6476628af4 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/MicrobotDashboardPlusPlugin.java @@ -2,6 +2,8 @@ import com.google.inject.Provides; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.ChatMessageType; +import net.runelite.api.events.ChatMessage; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; @@ -57,7 +59,7 @@ @Slf4j public class MicrobotDashboardPlusPlugin extends Plugin { - public static final String version = "1.2.0"; + public static final String version = "1.2.1"; @Inject private MicrobotDashboardPlusConfig config; @@ -150,6 +152,34 @@ protected void shutDown() { Microbot.log("MicrobotDashboardPlus v" + version + " stopped"); } + /** + * Pet-drop detection. The game announces a pet via one of three "funny feeling" + * game messages; matching on those needs no inventory or NPC scanning. Fires the + * in-window banner always (when enabled) and Discord when a webhook is set. + */ + @Subscribe + public void onChatMessage(ChatMessage event) { + if (event.getType() != ChatMessageType.GAMEMESSAGE) return; + if (config == null || !config.notifyPetDrop()) return; + String msg = event.getMessage() == null ? "" : event.getMessage().toLowerCase(); + + final boolean backpack = msg.contains("something weird sneaking into your backpack"); + final boolean duplicate = msg.contains("funny feeling like you would have been followed"); + final boolean follower = msg.contains("funny feeling like you're being followed"); + if (!backpack && !duplicate && !follower) return; + + final String text = backpack ? "Pet drop! It went to your inventory." + : duplicate ? "Pet drop! (you already own it, check your collection log)" + : "Pet drop! It is now following you."; + if (window != null) { + window.showAlertBanner(text); + } + if (notifier != null) { + notifier.send("PET: " + text); + } + Microbot.log("MicrobotDashboardPlus: " + text); + } + @Subscribe public void onConfigChanged(ConfigChanged event) { if (!"MicrobotDashboardPlus".equals(event.getGroup())) return; diff --git a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java index 9799dc1443..969670d48d 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java +++ b/src/main/java/net/runelite/client/plugins/microbot/microbotdashboardplus/panels/GuidePanel.java @@ -44,7 +44,7 @@ public class GuidePanel extends DashboardSection { "
  • Nearby NPCs max distance: filter for the NPC panel (1-200 tiles, default 20).
  • " + "
  • Layout toggles: nine on/off switches, one per panel (including this Guide).
  • " + "
  • Discord webhook URL: paste your channel webhook (field is masked; blank disables Discord).
  • " + - "
  • Notify on level-up / session lifecycle / alert threshold: three independent toggles.
  • " + + "
  • Notify on level-up / pet drop / session lifecycle / alert threshold: four independent toggles.
  • " + "
  • Alert thresholds: comma-separated SKILL:LEVEL pairs (e.g. MINING:60, WOODCUTTING:80). Crossings show an in-window banner and (if Discord is set) send a notification.
  • " + "
  • Skill targets (ETA): comma-separated SKILL:LEVEL pairs (e.g. MINING:70, AGILITY:60) that drive the Skills ETA column.
  • " + "" + diff --git a/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md index aca1290fa6..5ec1ca54cc 100644 --- a/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md +++ b/src/main/resources/net/runelite/client/plugins/microbot/microbotdashboardplus/docs/README.md @@ -20,7 +20,8 @@ Microbot Dashboard Plus is a passive monitoring plugin for the Microbot RuneLite | **Antiban State section** | Tells a silent stall apart from an intentional anti-AFK pause (micro break, action cooldown, global pause, blocking event) | | **XP Over Time chart** | Java2D line chart with skill and time-window selectors (5m to 24h) | | **Event Log section** | Rolling 10-entry ring buffer of login, logout, and world-hop events | -| **Discord notifications** | Optional webhook for level-ups, alert threshold crossings, and session start/stop | +| **Discord notifications** | Optional webhook for level-ups, pet drops, alert threshold crossings, and session start/stop | +| **Pet drop alert** | In-dashboard banner plus optional Discord ping when you receive a pet, detected from the funny-feeling game messages | | **Alert thresholds** | Comma-separated SKILL:LEVEL pairs that fire an in-dashboard banner and optional Discord ping when crossed | | **Skill targets (ETA)** | Comma-separated SKILL:LEVEL pairs that drive the ETA column in the Skills section | | **Per-section visibility** | Toggle any of the nine panels on or off; the window updates immediately | @@ -65,6 +66,7 @@ The plugin config has four sections. **Notifications** - requires a Discord webhook URL in the field (masked in the UI, treated as a secret): - Notify on level-up (default ON) +- Notify on pet drop (default ON; also fires the in-dashboard banner without a webhook) - Notify on alert threshold crossing (default ON) - Notify on session start/stop (default OFF) From ac8625f94294c6f0242ae934447036db5f92b8d5 Mon Sep 17 00:00:00 2001 From: Alex <45095641+runsonmypc@users.noreply.github.com> Date: Fri, 12 Jun 2026 19:34:45 -0400 Subject: [PATCH 24/27] fix(GotrPlugin): stop idle stalls in Guardians of the Rift The plugin would stand idle mid-game. Three root causes, all addressed: - Query-API migration dropped auto-walk: `cache.query().interact(id, action)` clicks at the player's tile and does not walk into range, so any out-of-range object interaction silently no-ops every tick. Route object interactions through a walk-first helper that web-walks when >51 tiles away and hands off to click-to-walk once close (restores legacy behaviour). - repairCells() locked the loop: it looked up the shield pylons by a name filter (`contains("cell_tile")`) that never matches a real object name, so the query was always empty, yet the method returned true unconditionally. That short-circuited the main loop at `if (repairCells()) return;` on every tick whenever a powered cell was held, leaving the bot frozen until the next game start. Match pylons by object id via CellType.GetShieldTier, and only return true when a cell is actually placed/used. - Static state leaked across plugin restarts; reset it in run() so a restart behaves like a first start. Also removed a per-tick blanket Rs2Walker.setTarget(null) that churned the walker and spammed the log. Verified live: full mine -> craft -> portal -> craft cycle with no stalls, including while holding a powered cell. Bump version to 1.5.6. --- .../plugins/microbot/gotr/GotrPlugin.java | 2 +- .../plugins/microbot/gotr/GotrScript.java | 148 ++++++++++++------ 2 files changed, 104 insertions(+), 46 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java index 7f552ea253..3b6d59d0eb 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java @@ -41,7 +41,7 @@ ) @Slf4j public class GotrPlugin extends Plugin { - public static final String version = "1.5.4"; + public static final String version = "1.5.6"; @Inject private GotrConfig config; diff --git a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java index c36c592c6c..f45f5e6a53 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java @@ -107,6 +107,23 @@ private void initializeGuardianPortalInfo() { public boolean run(GotrConfig config) { this.config = config; + // Static (and singleton-instance) state persists for the whole JVM session and leaks + // across plugin disable/re-enable (see docs/PLUGIN_DEBUGGING_NOTES.md §5). Reset it here + // so a restart behaves like a first start instead of inheriting a stale state machine. + shouldMineGuardianRemains = true; + isInMiniGame = false; + isFirstPortal = true; + state = null; + nextGameStart = Optional.empty(); + timeSincePortal = Optional.empty(); + elementalRewardPoints = 0; + catalyticRewardPoints = 0; + useNpcContact = true; + initCheck = false; + optimizedEssenceLoop = false; + guardians.clear(); + activeGuardianPortals.clear(); + greatGuardian = null; mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> { try { if (!Microbot.isLoggedIn()) return; @@ -122,8 +139,6 @@ public boolean run(GotrConfig config) { initCheck = true; } - Rs2Walker.setTarget(null); - if (!Rs2Inventory.hasItem("pickaxe") && !Rs2Equipment.isWearing("pickaxe")) { log("You need to have a pickaxe before you can participate in this minigame."); return; @@ -243,7 +258,7 @@ private boolean waitingForGameToStart(int timeToStart) { // Return to large mine if we were there before if (!isInLargeMine() && shouldMineGuardianRemains) { if (Rs2Walker.walkTo(new WorldPoint(3632, 9503, 0), 20)) { - Microbot.getRs2TileObjectCache().query().interact(ObjectID.RUBBLE_43724); + interactObject(ObjectID.RUBBLE_43724); return true; } } @@ -261,33 +276,42 @@ private boolean waitingForGameToStart(int timeToStart) { private boolean repairCells() { Rs2ItemModel cell = Rs2Inventory.get(CellType.PoweredCellList().stream().mapToInt(i -> i).toArray()); - if (cell != null && isInMainRegion() && isInMiniGame() && !shouldMineGuardianRemains && !isInLargeMine() && !isInHugeMine()) { - int cellTier = CellType.GetCellTier(cell.getId()); - List shieldCells = Microbot.getRs2TileObjectCache().query() - .where(o -> o.getName() != null && o.getName().toLowerCase().contains("cell_tile")) - .toListOnClientThread(); - - if (Rs2Inventory.hasItemAmount(GUARDIAN_ESSENCE, 10)) { - for (Rs2TileObjectModel shieldCell : shieldCells) { - if (CellType.GetShieldTier(shieldCell.getId()) < cellTier) { - Microbot.log("Upgrading power cell at " + shieldCell.getWorldLocation()); - shieldCell.click("Place-cell"); - sleepUntil(() -> !Rs2Player.isMoving()); - return true; - } + if (cell == null || !isInMainRegion() || !isInMiniGame() || shouldMineGuardianRemains || isInLargeMine() || isInHugeMine()) { + return false; + } + int cellTier = CellType.GetCellTier(cell.getId()); + // Identify the shield pylons by object id (CellType.GetShieldTier knows them all and + // returns -1 for anything else). The previous filter matched on a name containing + // "cell_tile", but the real pylon objects aren't named that, so the query always came + // back empty — yet the method still returned true unconditionally below. That made the + // main loop short-circuit at `if (repairCells()) return;` on every tick whenever a + // powered cell was held, leaving the bot standing idle until the next game start. Match + // by id, and only claim the tick when we actually place/use a cell. + List shieldCells = Microbot.getRs2TileObjectCache().query() + .where(o -> CellType.GetShieldTier(o.getId()) >= 0) + .toListOnClientThread(); + + if (Rs2Inventory.hasItemAmount(GUARDIAN_ESSENCE, 10)) { + for (Rs2TileObjectModel shieldCell : shieldCells) { + if (CellType.GetShieldTier(shieldCell.getId()) < cellTier) { + Microbot.log("Upgrading power cell at " + shieldCell.getWorldLocation()); + shieldCell.click("Place-cell"); + sleepUntil(() -> !Rs2Player.isMoving()); + return true; } } - Rs2TileObjectModel cellToUse = shieldCells.stream() - .filter(o -> o.getId() != ObjectID.CELL_TILE_BROKEN) - .findFirst().orElse(null); - if (cellToUse != null) { - cellToUse.click(); - log("Using cell with id " + cellToUse.getId()); - sleep(Rs2Random.randomGaussian(1000, 300)); - sleepUntil(() -> !Rs2Player.isMoving()); - } + } + Rs2TileObjectModel cellToUse = shieldCells.stream() + .filter(o -> CellType.GetShieldTier(o.getId()) > 0) + .findFirst().orElse(null); + if (cellToUse != null) { + cellToUse.click(); + log("Using cell with id " + cellToUse.getId()); + sleep(Rs2Random.randomGaussian(1000, 300)); + sleepUntil(() -> !Rs2Player.isMoving()); return true; } + // Nothing to place — don't pretend we handled the tick, or the loop will never craft. return false; } @@ -314,7 +338,7 @@ private void takeUnchargedCells() { } } - Microbot.getRs2TileObjectCache().query().interact(ObjectID.UNCHARGED_CELLS_43732, "Take-10"); + interactObject(ObjectID.UNCHARGED_CELLS_43732, "Take-10"); log("Taking uncharged cells..."); Rs2Player.waitForAnimation(); } @@ -338,7 +362,7 @@ private boolean usePortal() { private boolean depositRunesIntoPool() { if (config.shouldDepositRunes() && Rs2Inventory.hasItem(runeIds.stream().mapToInt(i -> i).toArray()) && !isInLargeMine() && !isInHugeMine() && !Rs2Inventory.isFull() && !optimizedEssenceLoop) { if (Rs2Player.isMoving()) return true; - if (Microbot.getRs2TileObjectCache().query().interact(ObjectID.DEPOSIT_POOL)) { + if (interactObject(ObjectID.DEPOSIT_POOL)) { log("Deposit runes into pool..."); sleep(600, 2400); } @@ -362,7 +386,7 @@ private boolean enterAltar() { } private boolean craftGuardianEssences() { - if (Microbot.getRs2TileObjectCache().query().interact(ObjectID.WORKBENCH_43754)) { + if (interactObject(ObjectID.WORKBENCH_43754)) { state = GotrState.CRAFT_GUARDIAN_ESSENCE; sleep(Rs2Random.randomGaussian(Rs2Random.between(600, 900), Rs2Random.between(150, 300))); log("Crafting guardian essences..."); @@ -373,7 +397,7 @@ private boolean craftGuardianEssences() { private boolean leaveLargeMine() { if (isInLargeMine()) { - Microbot.getRs2TileObjectCache().query().interact(ObjectID.RUBBLE_43726); + interactObject(ObjectID.RUBBLE_43726); Rs2Player.waitForAnimation(); log("Leaving large mine..."); state = GotrState.LEAVING_LARGE_MINE; @@ -416,13 +440,13 @@ private boolean craftRunes() { if (Rs2Inventory.hasItem(GUARDIAN_ESSENCE)) { state = GotrState.CRAFTING_RUNES; optimizedEssenceLoop = false; - Microbot.getRs2TileObjectCache().query().interact(rcAltar.getId()); + interactObject(rcAltar, null); log("Crafting runes on altar " + rcAltar.getId()); sleep(Rs2Random.randomGaussian(Rs2Random.between(1000, 1500), 300)); } else if (!Rs2Player.isMoving()) { state = GotrState.LEAVING_ALTAR; Rs2TileObjectModel rcPortal = findPortalToLeaveAltar(); - if (Microbot.getRs2TileObjectCache().query().interact(rcPortal.getId())) { + if (interactObject(rcPortal, null)) { log("Leaving the altar..."); sleepUntilTrue(GotrScript::isInMainRegion,100,10000); sleep(Rs2Random.randomGaussian(750, 150)); @@ -437,7 +461,7 @@ private boolean craftRunes() { private static boolean waitForMinigameToStart() { if (!isInMainRegion()) { Rs2TileObjectModel rcPortal = findPortalToLeaveAltar(); - if (rcPortal != null && Microbot.getRs2TileObjectCache().query().interact(rcPortal.getId())) { + if (rcPortal != null && interactObject(rcPortal, null)) { state = GotrState.LEAVING_ALTAR; return true; } @@ -446,13 +470,13 @@ private static boolean waitForMinigameToStart() { if (state != GotrState.WAITING) { state = GotrState.WAITING; log("Make sure to start the script near the minigame barrier."); - Microbot.getRs2TileObjectCache().query().interact(ObjectID.BARRIER_43849, "Peek"); + interactObject(ObjectID.BARRIER_43849, "Peek"); } return state == GotrState.WAITING; } private static boolean enterMinigame() { - if (Microbot.getRs2TileObjectCache().query().interact(ObjectID.BARRIER_43700, "quick-pass")) { + if (interactObject(ObjectID.BARRIER_43700, "quick-pass")) { Rs2Player.waitForWalking(); state = GotrState.ENTER_GAME; GotrScript.shouldMineGuardianRemains = true; @@ -479,10 +503,10 @@ private boolean mineHugeGuardianRemain() { } if (!Rs2Inventory.isFull()) { if (!Rs2Player.isAnimating()) { - Microbot.getRs2TileObjectCache().query().interact(ObjectID.HUGE_GUARDIAN_REMAINS); + interactObject(ObjectID.HUGE_GUARDIAN_REMAINS); Rs2Player.waitForAnimation(); if (!Rs2Player.isAnimating()) - Microbot.getRs2TileObjectCache().query().interact(ObjectID.HUGE_GUARDIAN_REMAINS); + interactObject(ObjectID.HUGE_GUARDIAN_REMAINS); } } else { if (Rs2Inventory.allPouchesFull()) { @@ -493,7 +517,7 @@ private boolean mineHugeGuardianRemain() { Rs2Inventory.fillPouches(); sleep(Rs2Random.randomGaussian(Rs2Random.between(600, 1200), Rs2Random.between(100, 300))); if (!Rs2Inventory.isFull()) { - Microbot.getRs2TileObjectCache().query().interact(ObjectID.HUGE_GUARDIAN_REMAINS); + interactObject(ObjectID.HUGE_GUARDIAN_REMAINS); } } } @@ -518,13 +542,13 @@ private void mineGuardianRemains() { if (!isInLargeMine() && !isInHugeMine() && (!Rs2Inventory.hasItem(GUARDIAN_FRAGMENTS) || getStartTimer() == -1)) { if (Rs2Walker.walkTo(new WorldPoint(3632, 9503, 0), 20)) { log("Traveling to large mine..."); - Microbot.getRs2TileObjectCache().query().interact(ObjectID.RUBBLE_43724); + interactObject(ObjectID.RUBBLE_43724); if (sleepUntil(Rs2Player::isAnimating)) { sleepUntil(GotrScript::isInLargeMine); if (isInLargeMine()) { sleep(Rs2Random.randomGaussian(Rs2Random.between(2000, 2400), Rs2Random.between(100, 300))); log("Interacting with large guardian remains..."); - Microbot.getRs2TileObjectCache().query().interact(ObjectID.LARGE_GUARDIAN_REMAINS); + interactObject(ObjectID.LARGE_GUARDIAN_REMAINS); sleepGaussian(1200, 150); } } @@ -538,7 +562,7 @@ private void mineGuardianRemains() { checkPouches(Rs2Random.between(1, 20) == 2, Rs2Random.between(100, 600), Rs2Random.between(100, 300)); repairPouches(); - Microbot.getRs2TileObjectCache().query().interact(ObjectID.LARGE_GUARDIAN_REMAINS); + interactObject(ObjectID.LARGE_GUARDIAN_REMAINS); sleepGaussian(1200, 150); } } @@ -552,7 +576,7 @@ private void mineGuardianRemains() { Rs2Combat.setSpecState(true, 1000); } repairPouches(); - Microbot.getRs2TileObjectCache().query().interact(ObjectID.GUARDIAN_PARTS_43716); + interactObject(ObjectID.GUARDIAN_PARTS_43716); sleepGaussian(1200, 150); // we can assume that if the player is mining within the startTimer range, he will get enough guardian remains for the game shouldMineGuardianRemains = false; @@ -561,7 +585,7 @@ private void mineGuardianRemains() { } private void leaveHugeMine() { - Microbot.getRs2TileObjectCache().query().interact(38044); + interactObject(38044); log("Leave huge mine..."); Global.sleepUntil(() -> !isInHugeMine(), 5000); @@ -765,6 +789,40 @@ public static void resetPlugin() { Microbot.getClient().clearHintArrow(); } + /** + * Walk-first object interaction. + * + *

    The migrated Queryable API ({@code cache.query().interact(id, action)}) resolves + * {@code nearestReachable()} and clicks at the player's current tile — it does NOT walk into + * range. Legacy {@code Rs2GameObject.interact(id, action)} auto-walked when the target was + * more than 51 tiles away. After the query-API migration GOTR lost that auto-walk, so any + * interaction issued while out of range silently no-ops every tick and the bot just stands + * there (see docs/PLUGIN_DEBUGGING_NOTES.md §3). This restores the legacy behaviour: web-walk + * when far, hand off to the game's click-to-walk once close. + */ + private static boolean interactObject(int id) { + return interactObject(id, null); + } + + private static boolean interactObject(int id, String action) { + return interactObject(Microbot.getRs2TileObjectCache().query().withId(id).nearest(), action); + } + + private static boolean interactObject(Rs2TileObjectModel obj, String action) { + if (obj == null) return false; + WorldPoint playerLoc = Rs2Player.getWorldLocation(); + WorldPoint objLoc = obj.getWorldLocation(); + if (playerLoc != null && objLoc != null && playerLoc.distanceTo(objLoc) > 51) { + log("Object " + obj.getId() + " is " + playerLoc.distanceTo(objLoc) + " tiles away, walking into range..."); + Rs2Walker.walkTo(objLoc); + return false; + } + // In click range: drop any lingering web-walk target so the game's click-to-walk drives + // the final approach, then interact. + Rs2Walker.setTarget(null); + return (action == null || action.isEmpty()) ? obj.click() : obj.click(action); + } + public static Rs2TileObjectModel findRcAltar() { return Microbot.getRs2TileObjectCache().query().withIds( ObjectID.ALTAR_34760, ObjectID.ALTAR_34761, ObjectID.ALTAR_34762, ObjectID.ALTAR_34763, ObjectID.ALTAR_34764, @@ -784,7 +842,7 @@ public static boolean leaveMinigame() { return true; // Already outside the minigame, successfully left } if(isInLargeMine()) { - Microbot.getRs2TileObjectCache().query().interact(ObjectID.RUBBLE_43726); + interactObject(ObjectID.RUBBLE_43726); Rs2Player.waitForAnimation(); sleepUntil(()-> !isInLargeMine()); if (isInLargeMine()){ @@ -793,7 +851,7 @@ public static boolean leaveMinigame() { } } - Microbot.getRs2TileObjectCache().query().interact(ObjectID.BARRIER_43700, "quick-pass"); + interactObject(ObjectID.BARRIER_43700, "quick-pass"); Rs2Player.waitForWalking(); sleepUntil( ()-> {return !(!isOutsideBarrier() && isInMainRegion());}, 200); GotrScript.isInMiniGame = !isOutsideBarrier() && isInMainRegion(); From 59fa46b7d67c0d00a214d7fc8e174513ed3d0a41 Mon Sep 17 00:00:00 2001 From: Alex <45095641+runsonmypc@users.noreply.github.com> Date: Sat, 13 Jun 2026 12:05:43 -0400 Subject: [PATCH 25/27] fix(GotrPlugin): always deposit crafted runes at the end of a round Runes were only deposited from the !shouldMineGuardianRemains (crafting) branch. When a round ends the chat handler sets shouldMineGuardianRemains = true, so the loop switches to the mining branch and waitingForGameToStart() intercepts the between-rounds lobby tick entirely -- the deposit call was never reached and runes carried into the next round. The !isFull guard also skipped depositing a full inventory of crafted runes (the typical end-of-round state). - depositRunesIntoPool(): drop the !isFull and !optimizedEssenceLoop guards that suppressed depositing, and make it freeze-safe -- return true only when the deposit pool actually exists (walk-first toward it / click it), else return false so the loop never locks up holding runes. - waitingForGameToStart(): deposit any held runes before prepping/mining for the next game, so end-of-round runes are banked reliably. Bump version to 1.5.7. --- .../plugins/microbot/gotr/GotrPlugin.java | 2 +- .../plugins/microbot/gotr/GotrScript.java | 30 ++++++++++++++----- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java index 3b6d59d0eb..3dbd787f09 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrPlugin.java @@ -41,7 +41,7 @@ ) @Slf4j public class GotrPlugin extends Plugin { - public static final String version = "1.5.6"; + public static final String version = "1.5.7"; @Inject private GotrConfig config; diff --git a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java index f45f5e6a53..c5f856f767 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/gotr/GotrScript.java @@ -248,6 +248,11 @@ private boolean waitingForGameToStart(int timeToStart) { if (getStartTimer() > Rs2Random.randomGaussian(35, Rs2Random.between(1, 5)) || getStartTimer() == -1 || timeToStart > 10) { + // A round just ended (or hasn't started yet) and this path runs instead of the + // craft branch — bank any crafted runes into the pool before prepping for the next + // game, so we never carry runes over. + if (depositRunesIntoPool()) return true; + // Only take cells if we don't already have them if (!Rs2Inventory.hasItem("Uncharged cell")) { // If in large mine and need cells, leave first @@ -360,15 +365,24 @@ private boolean usePortal() { } private boolean depositRunesIntoPool() { - if (config.shouldDepositRunes() && Rs2Inventory.hasItem(runeIds.stream().mapToInt(i -> i).toArray()) && !isInLargeMine() && !isInHugeMine() && !Rs2Inventory.isFull() && !optimizedEssenceLoop) { - if (Rs2Player.isMoving()) return true; - if (interactObject(ObjectID.DEPOSIT_POOL)) { - log("Deposit runes into pool..."); - sleep(600, 2400); - } - return true; + if (!config.shouldDepositRunes() + || !Rs2Inventory.hasItem(runeIds.stream().mapToInt(i -> i).toArray()) + || isInLargeMine() || isInHugeMine()) { + return false; } - return false; + if (Rs2Player.isMoving()) return true; + // Walk-first interaction, but only claim the tick when the pool actually exists — otherwise + // return false so we never lock the loop standing around holding runes. Dropped the old + // !isFull / !optimizedEssenceLoop guards: they skipped exactly the end-of-round case, where + // a full inventory of crafted runes would otherwise never be deposited and carried into the + // next round. + Rs2TileObjectModel pool = Microbot.getRs2TileObjectCache().query().withId(ObjectID.DEPOSIT_POOL).nearest(); + if (pool == null) return false; + if (interactObject(pool, null)) { + log("Deposit runes into pool..."); + sleep(600, 2400); + } + return true; } private boolean enterAltar() { From 10c1dc9867510de00ca29ee65a8e92568be6ebb6 Mon Sep 17 00:00:00 2001 From: runsonmypc Date: Sun, 14 Jun 2026 13:55:35 -0400 Subject: [PATCH 26/27] fix(karambwan): fairy ring interaction, remove isInteracting, deposit scrollboxes - Filter Zanaris fairy ring query by FAIRY_RING_ID instead of grabbing nearest untyped tile object (was clicking wrong object) - Remove broken isInteracting() gate from fishing loop - Add scrollbox depositing during banking --- .../karambwans/GabulhasKarambwansScript.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java b/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java index ab99202a8b..864df96eae 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java @@ -86,7 +86,7 @@ public void shutdown() { private void fishingLoop() { while (!Rs2Inventory.isFull() && super.isRunning()) { - if (!Rs2Player.isInteracting() || !Rs2Player.isAnimating()) { + if (!Rs2Player.isAnimating()) { if (Rs2Inventory.contains(ItemID.TBWT_RAW_KARAMBWANJI)) { interactWithFishingSpot(); Rs2Player.waitForAnimation(); @@ -138,6 +138,11 @@ private void useBank() { Rs2Bank.depositAll("Scroll"); Rs2Inventory.waitForInventoryChanges(2000); } + if (Rs2Inventory.contains("scrollbox") || Rs2Inventory.contains("Scrollbox")) { + Rs2Bank.depositAll("scrollbox"); + Rs2Bank.depositAll("Scrollbox"); + Rs2Inventory.waitForInventoryChanges(2000); + } if (Rs2Inventory.contains(ItemID.FISH_BARREL_OPEN) || Rs2Inventory.contains(ItemID.FISH_BARREL_CLOSED)) { Rs2Bank.emptyFishBarrel(); Rs2Inventory.waitForInventoryChanges(2000); @@ -174,17 +179,9 @@ private void walkToFish() { Rs2Walker.walkTo(zanarisRingPoint, 3); Rs2Player.waitForWalking(); - // Ensure the fairy ring at Zanaris is actually loaded before trying to interact. - sleepUntil(() -> Microbot.getRs2TileObjectCache().query().nearest(zanarisRingPoint, 3) != null, 5000); + sleepUntil(() -> Microbot.getRs2TileObjectCache().query().withId(FAIRY_RING_ID).nearest(zanarisRingPoint, 3) != null, 5000); - var zanarisRing = Microbot.getRs2TileObjectCache().query().nearest(zanarisRingPoint, 3); - boolean interacted = false; - if (zanarisRing != null) { - // Prefer the explicit last-destination option, fall back to a generic interact if needed. - interacted = zanarisRing.click("Last-destination (DKP)") - || zanarisRing.click("Last-destination") - || zanarisRing.click("Use"); - } + boolean interacted = Microbot.getRs2TileObjectCache().query().interact(FAIRY_RING_ID, "Last-destination (DKP)"); if (interacted) { waitTillPlayerNextToFishingSpot(); From 7b46dc90bc71838f937f286c4d5fab85ddb86839 Mon Sep 17 00:00:00 2001 From: runsonmypc Date: Sun, 14 Jun 2026 16:15:15 -0400 Subject: [PATCH 27/27] fix(karambwan): Zanaris fairy ring interaction, remove isInteracting, deposit scrollboxes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix Zanaris fairy ring: correct object ID (29560), coordinate (4434 not 4435), and action text ("Last-destination" not "Last-destination (DKP)") - Use tile object cache with nearestOnClientThread() — Rs2GameObject.getAll() does not find the Zanaris fairy ring - Remove broken isInteracting() check from fishing loop (upstream unreliable) - Add scrollbox depositing during banking - Bump version to 1.2.1 --- .../karambwans/GabulhasKarambwansPlugin.java | 2 +- .../karambwans/GabulhasKarambwansScript.java | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansPlugin.java index ae5ec4543a..d50647e105 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansPlugin.java @@ -25,7 +25,7 @@ ) @Slf4j public class GabulhasKarambwansPlugin extends Plugin { - public static final String version = "1.2.0"; + public static final String version = "1.2.1"; @Inject private GabulhasKarambwansConfig config; diff --git a/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java b/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java index 864df96eae..95d5d395e3 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/karambwans/GabulhasKarambwansScript.java @@ -28,9 +28,11 @@ @Slf4j public class GabulhasKarambwansScript extends Script { - public static final int FAIRY_RING_ID = 29228; + // Zanaris fairy ring object ID — Rs2GameObject.getAll() does NOT find it; use the tile object cache. + public static final int FAIRY_RING_ID = 29560; public static final int SPIRITUAL_FAIRY_TREE_ID = 35003; - private final WorldPoint zanarisRingPoint = new WorldPoint(2412, 4435, 0); + // Fairy ring is at 4434, not 4435 — off-by-one causes findObjectByLocation to miss it. + private final WorldPoint zanarisRingPoint = new WorldPoint(2412, 4434, 0); private final WorldPoint fishingPoint = new WorldPoint(2899, 3118, 0); private final WorldPoint bankPoint = new WorldPoint(2381, 4455, 0); private GabulhasKarambwansConfig config; @@ -179,9 +181,16 @@ private void walkToFish() { Rs2Walker.walkTo(zanarisRingPoint, 3); Rs2Player.waitForWalking(); - sleepUntil(() -> Microbot.getRs2TileObjectCache().query().withId(FAIRY_RING_ID).nearest(zanarisRingPoint, 3) != null, 5000); + sleepUntil(() -> Microbot.getRs2TileObjectCache().query().withId(FAIRY_RING_ID).nearestOnClientThread() != null, 5000); - boolean interacted = Microbot.getRs2TileObjectCache().query().interact(FAIRY_RING_ID, "Last-destination (DKP)"); + // Action is "Last-destination", NOT "Last-destination (DKP)" — the code suffix is not part of the action text. + boolean interacted = Microbot.getRs2TileObjectCache().query() + .withId(FAIRY_RING_ID) + .nearestOnClientThread() != null + && Microbot.getRs2TileObjectCache().query() + .withId(FAIRY_RING_ID) + .nearestOnClientThread() + .click("Last-destination"); if (interacted) { waitTillPlayerNextToFishingSpot();

    mb? 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 ?)MeK`3t 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 Date: Wed, 10 Jun 2026 13:01:23 -0500 Subject: [PATCH 14/27] Publish BankOrganizer plugin --- .../bankorganizer/BankOrganizerConfig.java | 49 ++---- .../bankorganizer/BankOrganizerOverlay.java | 120 ------------- .../bankorganizer/BankOrganizerPlugin.java | 165 ++---------------- 3 files changed, 37 insertions(+), 297 deletions(-) delete mode 100644 src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java index f5539e1ef1..582d8626dc 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerConfig.java @@ -15,22 +15,11 @@ public interface BankOrganizerConfig extends Config String GROUP = "bankorganizer"; String DEFAULT_LAYOUT_TAB_1 = "banktags,1,Gathering,1511,layout,0,1511,1,1521,2,6333,3,6332,4,1519,5,1517,6,1515,7,1513,8,8778,9,8780,10,960,11,8782,12,32904,13,32907,14,32910,15,19669,16,438,17,440,18,453,19,447,20,449,21,451,22,442,23,444,24,2349,25,2351,26,2353,27,2359,28,2361,29,2363,30,2355,31,2357,32,436,33,31719,34,32892,35,32889,36,31716,37,434,38,1761,39,2922,40,1623,41,1621,42,1619,43,1617,44,1631,45,1625,46,1627,47,1629,48,1607,49,1605,50,1603,51,1601,52,1615,53,1609,54,1611,55,1613,56,1656,57,1639,58,1660,59,1681,60,1683,61,21090,62,21102,63,21105,64,1597,65,1592,66,1595,67,1700,68,1702,69,1759,70,21111,71,21114,72,1757,73,1733,74,1734,75,21504,76,1781,77,1783,78,1785,79,1775"; - @ConfigItem( - keyName = "showOverlay", - name = "Show overlay", - description = "Show the Bank Organizer status overlay.", - position = 0 - ) - default boolean showOverlay() - { - return true; - } - @ConfigItem( keyName = "forceInsertVariants", name = "Force insert variants", description = "Group numeric charged variants at the first matching CSV position and sort them high-to-low.", - position = 1 + position = 0 ) default boolean forceInsertVariants() { @@ -41,7 +30,7 @@ default boolean forceInsertVariants() keyName = "layoutTab1Active", name = "Tab 1", description = "Use tab 1 when organizing.", - position = 2 + position = 1 ) default boolean layoutTab1Active() { @@ -52,7 +41,7 @@ default boolean layoutTab1Active() keyName = "layoutTab1", name = "", description = "RuneLite bank tag or layout CSV for real tab 1.", - position = 3 + position = 2 ) default String layoutTab1() { @@ -63,7 +52,7 @@ default String layoutTab1() keyName = "layoutTab2Active", name = "Tab 2", description = "Use tab 2 when organizing.", - position = 4 + position = 3 ) default boolean layoutTab2Active() { @@ -74,7 +63,7 @@ default boolean layoutTab2Active() keyName = "layoutTab2", name = "", description = "RuneLite bank tag or layout CSV for real tab 2.", - position = 5 + position = 4 ) default String layoutTab2() { @@ -85,7 +74,7 @@ default String layoutTab2() keyName = "layoutTab3Active", name = "Tab 3", description = "Use tab 3 when organizing.", - position = 6 + position = 5 ) default boolean layoutTab3Active() { @@ -96,7 +85,7 @@ default boolean layoutTab3Active() keyName = "layoutTab3", name = "", description = "RuneLite bank tag or layout CSV for real tab 3.", - position = 7 + position = 6 ) default String layoutTab3() { @@ -107,7 +96,7 @@ default String layoutTab3() keyName = "layoutTab4Active", name = "Tab 4", description = "Use tab 4 when organizing.", - position = 8 + position = 7 ) default boolean layoutTab4Active() { @@ -118,7 +107,7 @@ default boolean layoutTab4Active() keyName = "layoutTab4", name = "", description = "RuneLite bank tag or layout CSV for real tab 4.", - position = 9 + position = 8 ) default String layoutTab4() { @@ -129,7 +118,7 @@ default String layoutTab4() keyName = "layoutTab5Active", name = "Tab 5", description = "Use tab 5 when organizing.", - position = 10 + position = 9 ) default boolean layoutTab5Active() { @@ -140,7 +129,7 @@ default boolean layoutTab5Active() keyName = "layoutTab5", name = "", description = "RuneLite bank tag or layout CSV for real tab 5.", - position = 11 + position = 10 ) default String layoutTab5() { @@ -151,7 +140,7 @@ default String layoutTab5() keyName = "layoutTab6Active", name = "Tab 6", description = "Use tab 6 when organizing.", - position = 12 + position = 11 ) default boolean layoutTab6Active() { @@ -162,7 +151,7 @@ default boolean layoutTab6Active() keyName = "layoutTab6", name = "", description = "RuneLite bank tag or layout CSV for real tab 6.", - position = 13 + position = 12 ) default String layoutTab6() { @@ -173,7 +162,7 @@ default String layoutTab6() keyName = "layoutTab7Active", name = "Tab 7", description = "Use tab 7 when organizing.", - position = 14 + position = 13 ) default boolean layoutTab7Active() { @@ -184,7 +173,7 @@ default boolean layoutTab7Active() keyName = "layoutTab7", name = "", description = "RuneLite bank tag or layout CSV for real tab 7.", - position = 15 + position = 14 ) default String layoutTab7() { @@ -195,7 +184,7 @@ default String layoutTab7() keyName = "layoutTab8Active", name = "Tab 8", description = "Use tab 8 when organizing.", - position = 16 + position = 15 ) default boolean layoutTab8Active() { @@ -206,7 +195,7 @@ default boolean layoutTab8Active() keyName = "layoutTab8", name = "", description = "RuneLite bank tag or layout CSV for real tab 8.", - position = 17 + position = 16 ) default String layoutTab8() { @@ -217,7 +206,7 @@ default String layoutTab8() keyName = "layoutTab9Active", name = "Tab 9", description = "Use tab 9 when organizing.", - position = 18 + position = 17 ) default boolean layoutTab9Active() { @@ -228,7 +217,7 @@ default boolean layoutTab9Active() keyName = "layoutTab9", name = "", description = "RuneLite bank tag or layout CSV for real tab 9.", - position = 19 + position = 18 ) default String layoutTab9() { diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java deleted file mode 100644 index 3153da45db..0000000000 --- a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerOverlay.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2026, bgatfa - * All rights reserved. Redistribution and use in source and binary forms, with - * or without modification, are permitted provided the copyright notice is kept. - */ -package net.runelite.client.plugins.microbot.bankorganizer; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Point; -import java.awt.Rectangle; -import javax.inject.Inject; -import net.runelite.client.ui.FontManager; -import net.runelite.client.ui.overlay.OverlayLayer; -import net.runelite.client.ui.overlay.OverlayPanel; -import net.runelite.client.ui.overlay.OverlayPosition; -import net.runelite.client.ui.overlay.components.LineComponent; - -class BankOrganizerOverlay extends OverlayPanel -{ - private static final int WIDTH = 232; - private static final Color MUTED = new Color(190, 190, 190); - private static final Color WARNING = new Color(255, 190, 85); - private static final Color STOPPED = new Color(255, 115, 115); - - private final BankOrganizerPlugin plugin; - private final BankOrganizerConfig config; - - @Inject - BankOrganizerOverlay(BankOrganizerPlugin plugin, BankOrganizerConfig config) - { - super(plugin); - this.plugin = plugin; - this.config = config; - setPosition(OverlayPosition.TOP_RIGHT); - setLayer(OverlayLayer.ALWAYS_ON_TOP); - panelComponent.setPreferredSize(new Dimension(WIDTH, 0)); - panelComponent.setBorder(new Rectangle(6, 5, 6, 5)); - panelComponent.setGap(new Point(0, 3)); - } - - @Override - public Dimension render(java.awt.Graphics2D graphics) - { - if (!config.showOverlay()) - { - return null; - } - - BankOrganizerPlugin.OverlayState state = plugin.getOverlayStateSnapshot(); - graphics.setFont(FontManager.getRunescapeSmallFont()); - - panelComponent.getChildren().add(LineComponent.builder() - .left("Bank Organizer") - .right(state.phase) - .rightColor(colorFor(state.phase, state.message)) - .build()); - - if (state.stackCount > 0) - { - panelComponent.getChildren().add(LineComponent.builder() - .left("Stacks") - .right(state.plannedStackCount + " / " + state.stackCount) - .build()); - panelComponent.getChildren().add(LineComponent.builder() - .left("Category tabs") - .right(Integer.toString(state.categoryTabCount)) - .build()); - panelComponent.getChildren().add(LineComponent.builder() - .left("Planned actions") - .right(Integer.toString(state.actionCount)) - .build()); - panelComponent.getChildren().add(LineComponent.builder() - .left("Current tab") - .right(Integer.toString(state.currentTab)) - .leftColor(MUTED) - .rightColor(MUTED) - .build()); - panelComponent.getChildren().add(LineComponent.builder() - .left("Main stacks") - .right(Integer.toString(state.mainTabCount)) - .leftColor(MUTED) - .rightColor(MUTED) - .build()); - - } - - for (BankOrganizerPlugin.DetailLine line : state.detailLines) - { - panelComponent.getChildren().add(LineComponent.builder() - .left(line.left) - .right(line.right) - .build()); - } - - if (state.message != null && !state.message.isEmpty()) - { - panelComponent.getChildren().add(LineComponent.builder() - .left(state.message) - .leftColor(colorFor(state.phase, state.message)) - .build()); - } - - return super.render(graphics); - } - - private static Color colorFor(String phase, String message) - { - String lower = ((phase == null ? "" : phase) + " " + (message == null ? "" : message)).toLowerCase(); - if (lower.contains("failed") || lower.contains("blocked") || lower.contains("stopped")) - { - return STOPPED; - } - if (lower.contains("not implemented") || lower.contains("open your bank") || lower.contains("already")) - { - return WARNING; - } - return MUTED; - } -} diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java index ff9f9f8bfa..20e8104119 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java @@ -8,7 +8,6 @@ import net.runelite.client.plugins.microbot.PluginConstants; import com.google.inject.Provides; -import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -20,13 +19,13 @@ import java.util.concurrent.Future; import java.util.function.IntFunction; import javax.inject.Inject; +import lombok.extern.slf4j.Slf4j; import net.runelite.api.ItemComposition; import net.runelite.client.config.ConfigManager; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.microbot.Microbot; -import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( name = PluginConstants.BGA + "Bank Organizer", @@ -40,6 +39,7 @@ enabledByDefault = PluginConstants.DEFAULT_ENABLED, isExternal = PluginConstants.IS_EXTERNAL ) +@Slf4j public class BankOrganizerPlugin extends Plugin { public static final String version = "1.0.0"; @@ -47,12 +47,6 @@ public class BankOrganizerPlugin extends Plugin @Inject private BankOrganizerConfig config; - @Inject - private OverlayManager overlayManager; - - @Inject - private BankOrganizerOverlay overlay; - @Inject private BankSnapshotReader snapshotReader; @@ -68,7 +62,6 @@ public class BankOrganizerPlugin extends Plugin private ExecutorService executor; private Future task; private volatile boolean stopRequested; - private volatile OverlayState overlayState = OverlayState.idle("Ready."); @Provides BankOrganizerConfig provideConfig(ConfigManager configManager) @@ -81,8 +74,7 @@ protected void startUp() { stopRequested = false; executor = Executors.newSingleThreadExecutor(); - overlayManager.add(overlay); - overlayState = OverlayState.running("Starting", "Starting Bank Organizer."); + log.info("Starting Bank Organizer."); startOrganizer(); } @@ -96,20 +88,14 @@ protected void shutDown() executor = null; } task = null; - overlayManager.remove(overlay); - overlayState = OverlayState.idle("Stopped."); - } - - OverlayState getOverlayStateSnapshot() - { - return overlayState; + log.info("Bank Organizer stopped."); } private void startOrganizer() { if (task != null && !task.isDone()) { - overlayState = overlayState.withMessage("Already running."); + log.info("Bank Organizer is already running."); return; } @@ -120,7 +106,7 @@ private void startOrganizer() } stopRequested = false; - overlayState = OverlayState.running("Snapshot", "Reading bank snapshot."); + log.info("Reading bank snapshot."); task = currentExecutor.submit(this::runOrganizer); } @@ -133,19 +119,18 @@ private void runOrganizer() return; } - overlayState = OverlayState.running("Layout", "Parsing configured bank tag layouts."); + log.info("Parsing configured bank tag layouts."); List tabs = layoutParser.parse(config); if (tabs.isEmpty()) { - overlayState = OverlayState.idle("No active layout tabs. Enable at least one Layout tab active toggle.") - .withPhase("Blocked", "No active layout tabs."); + log.warn("No active layout tabs. Enable at least one layout tab active toggle."); return; } List conflicts = layoutPlanner.conflicts(tabs); if (!conflicts.isEmpty()) { - overlayState = OverlayState.fromConflicts(conflicts); + log.warn("Resolve duplicate layout item IDs before enabling organizer: {} conflict(s).", conflicts.size()); return; } if (stopRequested) @@ -153,7 +138,7 @@ private void runOrganizer() return; } - overlayState = OverlayState.running("Bank", "Opening bank."); + log.info("Opening bank."); if (!actuator.ensureBankOpen()) { throw new IllegalStateException("Could not open bank."); @@ -163,7 +148,7 @@ private void runOrganizer() return; } - overlayState = OverlayState.running("Mode", "Checking bank rearrange mode."); + log.info("Checking bank rearrange mode."); BankActuator.ActuatorResult insertMode = actuator.ensureBankInsertMode(); if (!insertMode.success()) { @@ -174,7 +159,7 @@ private void runOrganizer() return; } - overlayState = OverlayState.running("Snapshot", "Reading bank snapshot."); + log.info("Reading bank snapshot."); BankSnapshot snapshot = snapshotReader.read(); if (stopRequested) { @@ -185,7 +170,7 @@ private void runOrganizer() } catch (Throwable t) { - overlayState = OverlayState.idle("Failed: " + t.getMessage()).withPhase("Blocked", "Failed: " + t.getMessage()); + log.warn("Bank Organizer failed: {}", t.getMessage(), t); } } @@ -200,7 +185,7 @@ private void runBankTagLayoutPlanner(BankSnapshot snapshot, List itemNameLookup(List tabs) @@ -271,115 +253,4 @@ private String itemNameOnClientThread(int itemId) } } - static final class OverlayState - { - final String phase; - final String message; - final int stackCount; - final int plannedStackCount; - final int categoryTabCount; - final int actionCount; - final int currentTab; - final int mainTabCount; - final List detailLines; - - private OverlayState( - String phase, - String message, - int stackCount, - int plannedStackCount, - int categoryTabCount, - int actionCount, - int currentTab, - int mainTabCount, - List detailLines) - { - this.phase = phase; - this.message = message; - this.stackCount = stackCount; - this.plannedStackCount = plannedStackCount; - this.categoryTabCount = categoryTabCount; - this.actionCount = actionCount; - this.currentTab = currentTab; - this.mainTabCount = mainTabCount; - this.detailLines = Collections.unmodifiableList(new ArrayList<>(detailLines)); - } - - static OverlayState idle(String message) - { - return new OverlayState("Idle", message, 0, 0, 0, 0, 0, 0, Collections.emptyList()); - } - - static OverlayState running(String phase, String message) - { - return new OverlayState(phase, message, 0, 0, 0, 0, 0, 0, Collections.emptyList()); - } - - static OverlayState fromSnapshot(String phase, String message, BankSnapshot snapshot, int actionCount) - { - return new OverlayState( - phase, - message, - snapshot.stackCount(), - snapshot.stackCount(), - 0, - actionCount, - snapshot.currentTab(), - snapshot.mainTabCount(), - Collections.emptyList()); - } - - static OverlayState fromConflicts(List conflicts) - { - List lines = new ArrayList<>(); - int shown = 0; - for (BankTagLayoutConflict conflict : conflicts) - { - if (shown >= 8) - { - break; - } - lines.add(new DetailLine("Item ID " + conflict.itemId(), "tabs " + conflict.tabIndexesDisplay())); - shown++; - } - if (conflicts.size() > shown) - { - lines.add(new DetailLine("More conflicts", Integer.toString(conflicts.size() - shown))); - } - return new OverlayState( - "Blocked", - "Resolve duplicate layout item IDs before enabling organizer.", - 0, - 0, - 0, - 0, - 0, - 0, - lines); - } - - OverlayState withMessage(String nextMessage) - { - return new OverlayState(phase, nextMessage, stackCount, plannedStackCount, categoryTabCount, actionCount, - currentTab, mainTabCount, detailLines); - } - - OverlayState withPhase(String nextPhase, String nextMessage) - { - return new OverlayState(nextPhase, nextMessage, stackCount, plannedStackCount, categoryTabCount, actionCount, - currentTab, mainTabCount, detailLines); - } - } - - static final class DetailLine - { - final String left; - final String right; - - DetailLine(String left, String right) - { - this.left = left; - this.right = right; - } - } } From 49992b6ffffb31d333815caea183a83d2448fc3e Mon Sep 17 00:00:00 2001 From: bgatfa Date: Wed, 10 Jun 2026 13:13:26 -0500 Subject: [PATCH 15/27] Update README.md --- .../client/plugins/microbot/bankorganizer/docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md index 5a680b1edd..2774b76d9c 100644 --- a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md +++ b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md @@ -1,7 +1,7 @@ # Bank Organizer -Organizes bank tabs from configured item layouts. +Organizes bank tabs using bank tab CSVs like https://runetags.com/ ## Setup -Enable the plugin from Microbot Hub, configure the available options, and start it only after confirming the bank state is ready. +Start with the bank open and your tabs marked as active with valid CSVs. From 24e700895fc133213573770e68fc3d6e29d2a8fe Mon Sep 17 00:00:00 2001 From: bgatfa Date: Wed, 10 Jun 2026 20:26:50 -0500 Subject: [PATCH 16/27] Publish plugin docs at Pages root --- gradle/project-config.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/project-config.gradle b/gradle/project-config.gradle index c7966524ee..36f66e6096 100644 --- a/gradle/project-config.gradle +++ b/gradle/project-config.gradle @@ -8,7 +8,7 @@ project.ext.JDK_VENDOR = 'ADOPTIUM' // Common project paths project.ext.PLUGINS_SOURCE_PATH = 'src/main/java/net/runelite/client/plugins/microbot' project.ext.PLUGINS_RESOURCE_PATH = 'src/main/resources/net/runelite/client/plugins/microbot' -project.ext.DOCS_OUTPUT_PATH = 'public/docs' +project.ext.DOCS_OUTPUT_PATH = 'public' // Relative path for source set project.ext.PLUGINS_INCLUDE_PATH = 'net/runelite/client/plugins/microbot' From 055b15cbbb1f2f5003e2daf066fe8edf4a253f7e Mon Sep 17 00:00:00 2001 From: bgatfa Date: Wed, 10 Jun 2026 20:27:30 -0500 Subject: [PATCH 17/27] Publish BankOrganizer plugin --- .../client/plugins/microbot/bankorganizer/docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md index 2774b76d9c..5a680b1edd 100644 --- a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md +++ b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md @@ -1,7 +1,7 @@ # Bank Organizer -Organizes bank tabs using bank tab CSVs like https://runetags.com/ +Organizes bank tabs from configured item layouts. ## Setup -Start with the bank open and your tabs marked as active with valid CSVs. +Enable the plugin from Microbot Hub, configure the available options, and start it only after confirming the bank state is ready. From 240c59ed6fcd3b2955a50307d2696f7265746aec Mon Sep 17 00:00:00 2001 From: bgatfa Date: Wed, 10 Jun 2026 20:28:28 -0500 Subject: [PATCH 18/27] Publish BankOrganizer plugin --- .../client/plugins/microbot/bankorganizer/docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md index 5a680b1edd..2774b76d9c 100644 --- a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md +++ b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/docs/README.md @@ -1,7 +1,7 @@ # Bank Organizer -Organizes bank tabs from configured item layouts. +Organizes bank tabs using bank tab CSVs like https://runetags.com/ ## Setup -Enable the plugin from Microbot Hub, configure the available options, and start it only after confirming the bank state is ready. +Start with the bank open and your tabs marked as active with valid CSVs. From a8c34722917c02b98c325393a41024978f6d389b Mon Sep 17 00:00:00 2001 From: bgatfa Date: Wed, 10 Jun 2026 20:35:14 -0500 Subject: [PATCH 19/27] Restore docs output path --- gradle/project-config.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/project-config.gradle b/gradle/project-config.gradle index 36f66e6096..c7966524ee 100644 --- a/gradle/project-config.gradle +++ b/gradle/project-config.gradle @@ -8,7 +8,7 @@ project.ext.JDK_VENDOR = 'ADOPTIUM' // Common project paths project.ext.PLUGINS_SOURCE_PATH = 'src/main/java/net/runelite/client/plugins/microbot' project.ext.PLUGINS_RESOURCE_PATH = 'src/main/resources/net/runelite/client/plugins/microbot' -project.ext.DOCS_OUTPUT_PATH = 'public' +project.ext.DOCS_OUTPUT_PATH = 'public/docs' // Relative path for source set project.ext.PLUGINS_INCLUDE_PATH = 'net/runelite/client/plugins/microbot' From 2e6ad087b9e25a9d86a647b733ec2de8bfcbc1ce Mon Sep 17 00:00:00 2001 From: bgatfa Date: Wed, 10 Jun 2026 20:35:20 -0500 Subject: [PATCH 20/27] Publish BankOrganizer plugin --- .../bankorganizer/BankOrganizerPlugin.java | 4 ++-- .../plugins/microbot/bankorganizer/card.png | Bin 0 -> 198576 bytes .../plugins/microbot/bankorganizer/icon.png | Bin 0 -> 60913 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/card.png create mode 100644 src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/icon.png diff --git a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java index 20e8104119..ab7c52d416 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/bankorganizer/BankOrganizerPlugin.java @@ -34,8 +34,8 @@ authors = {"bgatfa"}, version = BankOrganizerPlugin.version, minClientVersion = "2.0.61", - iconUrl = "https://bgatfa.github.io/Microbot-Hub/BankOrganizerPlugin/assets/icon.png", - cardUrl = "https://bgatfa.github.io/Microbot-Hub/BankOrganizerPlugin/assets/card.png", + iconUrl = "", + cardUrl = "", enabledByDefault = PluginConstants.DEFAULT_ENABLED, isExternal = PluginConstants.IS_EXTERNAL ) diff --git a/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/card.png b/src/main/resources/net/runelite/client/plugins/microbot/bankorganizer/card.png new file mode 100644 index 0000000000000000000000000000000000000000..9082d1f14ec4aee6c301efcc4ef1a9f83d97562d GIT binary patch literal 198576 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